
:root {
  --black: #000000;
  --white: #ffffff;  
  --nudgee-royal: #00539B;   
  --nudgee-navy:  #1E4273;   
  --nudgee-ink:   #0b1b33;   
  --nudgee-gold:  #857040;   
  --gold-accent:  #c9a15b;  
  --nudgee-light: #EAE8E3;   
  --button-dot:   #CDA770;   
  --gold-linear: linear-gradient(135deg, #C9A15B 40%, #FFDBA7 100%);
   --gold-btn: linear-gradient(135deg, #FFDBA7 0%, #C9A15B 100%);  
  --font-display: "Playfair Display", "Georgia", "Times New Roman", serif;
  --font-head: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-body: var(--font-head);
  --transition: all 0.4s ease; 
  --container-max: 1920px;
  --pad: 160px;
}

/* AOS safety net: main.js skips AOS.init() when the OS asks for reduced motion
   (e.g. Windows "Animation effects" off), but aos.css still hides every fade
   element, so content such as the Discover cards stayed invisible. Show the
   same end state .aos-animate would apply. Same specificity as aos.css; this
   file loads after it. */
@media (prefers-reduced-motion: reduce) {
  [data-aos^=fade][data-aos^=fade] {
    opacity: 1;
    transform: translateZ(0);
  }
}

html.has-opening,
html.has-opening body {
  overflow: hidden;
  overscroll-behavior: none;
}

/* =================================================================
   BASE SCAFFOLD
   ================================================================= */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  font-family: var(--font-body);
  background: var(--nudgee-light);
  color: var(--nudgee-navy);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }

.container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--pad);
}

/* preview-only spacer so the page scrolls (real sections replace this) */
.page-spacer { height: 1800px; }

/* =================================================================
   MODULE: .site-header  (transparent bar over the hero)
   Doc: a STICKY variant appears only on scroll-UP — blue @ 60% + blur.
   Crest left; right cluster = Book a Tour + search + menu.
   ================================================================= */
.site-header {
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 90;
  transition: background 0.35s ease, backdrop-filter 0.35s ease, transform 0.35s ease;
}
.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 34px;
  padding-bottom: 20px;
}
.site-header .crest {
  height: 112px;
  width: auto;
  aspect-ratio: 135 / 148;   /* crest svg is preserveAspectRatio="none" — pin the ratio */
  transition: height 0.35s ease;
}

/* Sticky state — fixed, revealed on scroll-up, 60% ink + background blur */
.site-header.is-fixed {
  position: fixed;
  background: rgba(11, 27, 51, 0.6);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  box-shadow: none;
}
.site-header.is-fixed .container {
  padding-top: 7.38px;
  padding-bottom: 7.38px;
  padding-left: var(--pad);
  padding-right: calc(var(--pad) + 13.5px);
}
.site-header.is-fixed .crest { height: 91px; }
.site-header.is-fixed .header-actions {
  gap: 0;
}
.site-header.is-fixed .header-actions .btn-tour:nth-child(1) {
  width: 155px;
  margin-right: 46px;
}
.site-header.is-fixed .header-actions .btn-tour:nth-child(2) {
  width: 142px;
  margin-right: 39px;
}
.site-header.is-fixed .icon-search {
  width: 52px;
  height: 52px;
  margin-right: 21px;
}
.site-header.is-fixed .icon-search .ico-search {
  width: 16px;
  height: 16px;
}
.site-header.is-fixed .icon-menu {
  width: 53px;
  height: 53px;
}
/* hidden by default when fixed; shown only while scrolling up */
.site-header.is-fixed.is-hidden { transform: translateY(-100%); }

.header-actions {
  display: flex;
  align-items: center;
  gap: 26px;
}

/* Gold-dot text button (Book a Tour / Enrol Now) — borderless, per Figma.
   Hover (Figma 541:1237): lead dot fades out, label slides left, and a gold
   circle with a white arrow fades in on the right. 0.3s ease-out. */
.btn-tour {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 36px;
  padding: 0 18px 0 29px;               /* left: lead dot · right: reserve gap + arrow */
  border: 0;
  font-family: var(--font-head);        /* Poppins Bold */
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.48px;
  text-transform: uppercase;
  color: var(--nudgee-light);
  background: transparent;
  white-space: nowrap;
  cursor: pointer;
}
.btn-tour__dot {
  position: absolute;
  left: 4px; top: 50%;
  transform: translateY(-50%);
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--button-dot);
  transition: opacity 0.3s ease-out;
}
.btn-tour__label {
  display: inline-block;
  transition: transform 0.3s ease-out;
}
.btn-tour::after {
  content: "";
  position: absolute;
  right: 0; top: 50%;
  transform: translateY(-50%) scale(0.55);
  width: 34px; height: 34px;
  border-radius: 50%;
  background: url(../images/arrow-white.svg) center / 16px no-repeat, var(--gold-linear);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}
.btn-tour:hover .btn-tour__dot { opacity: 0; }
.btn-tour:hover .btn-tour__label { transform: translateX(-25px); }
.btn-tour:hover::after { opacity: 1; transform: translateY(-50%) scale(1); }
@media (prefers-reduced-motion: reduce) {
  .btn-tour__dot, .btn-tour__label, .btn-tour::after { transition: none; }
}

.icon-btn {
  width: 52px; height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}
/* search: small thin magnifier, not filling the click box.
   Default stroke = cream; on hover it recolours to the gold-linear
   gradient paint (Figma Search Variant2 105:1349). */
.icon-search .ico-search { width: 23px; height: 23px; }
.icon-search .ico-search path {
  stroke: var(--nudgee-light);
  transition: stroke 0.25s ease;
}
.icon-search:hover .ico-search path { stroke: url(#goldStroke); }

/* menu: thin gold ring + three white bars (Figma 541:1170 Default).
   Hover (Variant2) fills the circle with the gold-linear + soft glow. */
.icon-menu {
  flex-direction: column;
  gap: 4px;
  border-radius: 50%;
  border: 1px solid rgba(201, 161, 91, 0.65);
  background: transparent;
  /* Figma prototype: hover → Variant2, smart-animate, ease-out, 300ms */
  transition: background 0.3s ease-out, border-color 0.3s ease-out, box-shadow 0.3s ease-out;
}
.icon-menu span {
  width: 21px; height: 2px;
  background: var(--white);
  border-radius: 1px;
  position: relative;         /* keep bars above the gold fill */
  z-index: 1;
}
.icon-menu:hover {
  border-color: transparent;
  background: var(--gold-linear);
  box-shadow: 0 0 14px rgba(201, 161, 91, 0.45);
}

/* =================================================================
   MODULE: .mega-menu  (full-screen nav overlay — Figma 541:749)
   90% navy overlay + backdrop blur over the page. Parent nav (serif,
   active/hover = italic gold), child pages incl. 3rd level, For Parents
   icon grid; Book a Tour / Enrol Now footer.
   ================================================================= */
.mega-menu {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: flex;
  flex-direction: column;
  padding: 34px var(--pad) 40px;
  /* fade in; the bg photo zooms out and the contents rise (see below) */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.5s ease, visibility 0s linear 0.5s;
}
.mega-menu.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.55s ease, visibility 0s;
}

/* background photo (Figma 541:748) with a 90% navy overlay + blur (541:749) */
.mega-menu__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.mega-menu__bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  transform: scale(1.12);
  transition: transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.mega-menu.is-open .mega-menu__bg img { transform: scale(1); }
.mega-menu__bg::after {
  content: "";
  position: absolute; inset: 0;
  background: rgba(11, 27, 51, 0.9);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
.mega-menu__top,
.mega-menu__inner,
.mega-menu__footer { position: relative; z-index: 1; }
/* hide the page header while the menu is open (menu has its own top bar) */
body.menu-open .site-header { opacity: 0; pointer-events: none; }

/* staggered reveal of the menu contents once the panel has slid in */
.mega-menu__top > *,
.mega-menu .mm-parent,
.mega-menu .mm-child,
.mega-menu .mm-forparents__title,
.mega-menu .mm-plink,
.mega-menu__footer .btn-tour {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.5s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.mega-menu.is-open .mm-parent,
.mega-menu.is-open .mm-child,
.mega-menu.is-open .mm-plink,
.mega-menu.is-open .mm-forparents__title,
.mega-menu.is-open .mega-menu__top > *,
.mega-menu.is-open .mega-menu__footer .btn-tour {
  opacity: 1;
  transform: none;
}
/* per-item stagger (applies only while open; closing snaps back fast) */
.mega-menu.is-open .mega-menu__top > *:nth-child(1) { transition-delay: 0.22s; }
.mega-menu.is-open .mega-menu__top > *:nth-child(2) { transition-delay: 0.28s; }
.mega-menu.is-open .mm-forparents__title { transition-delay: 0.32s; }
.mega-menu.is-open .mm-parent:nth-child(1) { transition-delay: 0.26s; }
.mega-menu.is-open .mm-parent:nth-child(2) { transition-delay: 0.31s; }
.mega-menu.is-open .mm-parent:nth-child(3) { transition-delay: 0.36s; }
.mega-menu.is-open .mm-parent:nth-child(4) { transition-delay: 0.41s; }
.mega-menu.is-open .mm-parent:nth-child(5) { transition-delay: 0.46s; }
.mega-menu.is-open .mm-parent:nth-child(6) { transition-delay: 0.51s; }
.mega-menu.is-open .mm-parent:nth-child(7) { transition-delay: 0.56s; }
.mega-menu.is-open .mm-child:nth-child(1) { transition-delay: 0.40s; }
.mega-menu.is-open .mm-child:nth-child(2) { transition-delay: 0.45s; }
.mega-menu.is-open .mm-child:nth-child(3) { transition-delay: 0.50s; }
.mega-menu.is-open .mm-child:nth-child(4) { transition-delay: 0.55s; }
.mega-menu.is-open .mm-child:nth-child(5) { transition-delay: 0.60s; }
.mega-menu.is-open .mm-child:nth-child(6) { transition-delay: 0.65s; }
.mega-menu.is-open .mm-plink:nth-child(1) { transition-delay: 0.42s; }
.mega-menu.is-open .mm-plink:nth-child(2) { transition-delay: 0.47s; }
.mega-menu.is-open .mm-plink:nth-child(3) { transition-delay: 0.52s; }
.mega-menu.is-open .mm-plink:nth-child(4) { transition-delay: 0.57s; }
.mega-menu.is-open .mm-plink:nth-child(5) { transition-delay: 0.62s; }
.mega-menu.is-open .mm-plink:nth-child(6) { transition-delay: 0.67s; }
.mega-menu.is-open .mm-plink:nth-child(7) { transition-delay: 0.72s; }
.mega-menu.is-open .mm-plink:nth-child(8) { transition-delay: 0.77s; }
.mega-menu.is-open .mm-plink:nth-child(9) { transition-delay: 0.82s; }
.mega-menu.is-open .mm-plink:nth-child(10) { transition-delay: 0.87s; }
.mega-menu.is-open .mm-plink:nth-child(11) { transition-delay: 0.92s; }
.mega-menu.is-open .mm-plink:nth-child(12) { transition-delay: 0.97s; }
.mega-menu.is-open .mega-menu__footer .btn-tour:nth-child(1) { transition-delay: 0.60s; }
.mega-menu.is-open .mega-menu__footer .btn-tour:nth-child(2) { transition-delay: 0.66s; }

@media (prefers-reduced-motion: reduce) {
  .mega-menu, .mega-menu * { transition-duration: 0.2s !important; }
  /* cancel only the reveal/zoom motion — a blanket transform:none also removed
     positioning transforms (button dots dropped 9px, close X became a dash) */
  .mega-menu__bg img,
  .mega-menu__top > *,
  .mega-menu .mm-parent,
  .mega-menu .mm-child,
  .mega-menu .mm-forparents__title,
  .mega-menu .mm-plink,
  .mega-menu__footer .btn-tour { transform: none !important; }
}

.mega-menu__top {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 26px;
}
/* close button — gold circle with an X */
.mega-menu__close {
  position: relative;
  width: 53px; height: 53px;
  border-radius: 50%;
  border: 1px solid rgba(201, 161, 91, 0.65);
  background: transparent;
  cursor: pointer;
  /* Figma prototype (541:751): hover → Variant2, smart-animate, ease-out, 300ms */
  transition: background 0.3s ease-out, border-color 0.3s ease-out, box-shadow 0.3s ease-out;
}
.mega-menu__close span {
  position: absolute;
  left: 50%; top: 50%;
  width: 20px; height: 2px;
  background: var(--white);
  border-radius: 1px;
  z-index: 1;              /* keep the X above the gold fill */
}
.mega-menu__close span:nth-child(1) { transform: translate(-50%, -50%) rotate(45deg); }
.mega-menu__close span:nth-child(2) { transform: translate(-50%, -50%) rotate(-45deg); }
/* hover (Variant2): fill circle with gold-linear + soft glow, X stays white */
.mega-menu__close:hover {
  border-color: transparent;
  background: var(--gold-linear);
  box-shadow: 0 0 14px rgba(201, 161, 91, 0.45);
}

/* three columns */
.mega-menu__inner {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(380px, 515px) minmax(320px, 460px) minmax(360px, 1fr);
  column-gap: 114px;
  align-content: start;
  padding: 64px 0 20px;
}

/* For Parents / Main Menu toggle — mobile-only (shown in the ≤991 block) */
.mm-toggle { display: none; }
/* left — parent sections (serif; active/hover = italic gold) */
.mm-parents {
  grid-column: 1 / span 2;
  position: relative;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(380px, 515px) minmax(320px, 460px);
  column-gap: 114px;
}
.mm-forparents {
  grid-column: 3;
  justify-self: end;
  width: min(480px, 100%);
}
.mm-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.mm-list--level-1,
.mm-list--level-2,
.mm-list--level-3 {
  display: flex;
  flex-direction: column;
}
.mm-list--level-1 {
  grid-column: 1;
}
.mm-list--level-2,
.mm-list--level-3 {
  display: none;
}
.mm-item--level-1 > .mm-list--level-2 {
  position: absolute;
  top: 10px;
  left: calc(min(515px, 100%) + 114px);
  width: min(460px, calc(100% - 629px));
}
.mm-item--level-1.is-active > .mm-list--level-2,
.mm-item.is-open > .mm-list--level-3 {
  display: flex;
}
.mm-link {
  display: flex;
  align-items: baseline;
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
}
.mm-parent {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(30px, 2.6vw, 48px);
  line-height: 1.25;
  min-height: 80px;
  padding: 10px 0;
  white-space: normal;
  color: var(--nudgee-light);
  transition: color 0.25s ease;
}
.mm-parent:hover,
.mm-parent.is-active,
.mm-item--level-1.is-active > .mm-parent { font-style: italic; color: var(--gold-accent); }

/* middle — child pages of the active section */
.mm-children {
  gap: 12px;
  margin: 0;
  padding: 0;
  border-left: 0;
}
.mm-child {
  font-family: var(--font-head);        /* Poppins */
  font-weight: 300;                     /* Light */
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.54px;
  color: var(--white);
  transition: color 0.25s ease;
}
.mm-child--head,
.mm-item--level-2.has-children > .mm-child { font-weight: 500; }   /* Medium */
.mm-list--level-3 {
  gap: 12px;
  margin: 12px 0 12px;
  padding-left: 32px;
}
.mm-child--3rd {
  display: inline-flex;
  align-items: baseline;
  gap: 12px;
  font-size: 16px;
  line-height: 1.55;
  letter-spacing: 0.48px;
  color: rgba(255,255,255,0.88);
}
.mm-arrow { display: inline-block; color: var(--gold-accent); font-weight: 400; }
.mm-child:hover { color: var(--gold-accent); }
.mm-item--level-2.is-active > .mm-child { color: var(--gold-accent); }
.mm-item.has-children > .mm-link::after {
  content: none;
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  margin-left: 12px;
  margin-top: 0.35em;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.7;
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.mm-item.has-children.is-open > .mm-link::after {
  transform: rotate(225deg);
  opacity: 1;
}

/* right — For Parents icon grid */
.mm-forparents__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(28px, 2.4vw, 42px);
  color: var(--nudgee-light);
  text-align: center;
  margin-bottom: clamp(24px, 3vh, 40px);
}
.mm-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 3vh, 44px) 40px;
}
.mm-plink {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
}
/* gold line-icons — inline SVG, stroke = currentColor so they inherit the
   gold and can recolour on hover. Height fixed; width from the viewBox. */
.mm-plink__icon { height: clamp(36px, 4.2vh, 44px); width: auto; color: var(--gold-accent); transition: color 0.25s ease; }
.mm-plink:hover .mm-plink__icon { color: #FFDBA7; }
.mm-plink span {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: clamp(14px, 1.6vh, 16px);
  line-height: 1.25;
  letter-spacing: 0.48px;
  text-transform: uppercase;
  color: var(--white);
  transition: color 0.25s ease;
}
.mm-plink:hover span { color: var(--gold-accent); }

/* footer — Book a Tour / Enrol Now */
.mega-menu__footer { display: flex; gap: 40px; }

/* =================================================================
   MODULE: .search-overlay  (search has its own menu — Figma 544:1879)
   Same bg photo + 90% navy blur as the mega-menu; serif italic gold
   "Search" heading, one underlined query field, gold SEARCH submit.
   Opens from either search icon; fades in with the same bg ken-burns.
   ================================================================= */
.search-overlay {
  position: fixed;
  inset: 0;
  z-index: 320;                 /* above the mega-menu */
  display: flex;
  flex-direction: column;
  padding: 34px var(--pad) 40px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.5s ease, visibility 0s linear 0.5s;
}
.search-overlay.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.55s ease, visibility 0s;
}

/* bg photo + 90% navy + blur (mirrors the mega-menu treatment) */
.search-overlay__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.search-overlay__bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  transform: scale(1.12);
  transition: transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.search-overlay.is-open .search-overlay__bg img { transform: scale(1); }
.search-overlay__bg::after {
  content: "";
  position: absolute; inset: 0;
  background: rgba(11, 27, 51, 0.9);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}

/* top bar — close only (X on the right) */
.search-overlay__top {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: flex-end;
}

/* centred search block in the upper third */
.search-overlay__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1068px;
  margin: 0 auto;
  padding-top: 9vh;
}
.search-overlay__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-style: italic;
  font-size: 48px;
  line-height: 1.25;
  color: var(--gold-accent);
  margin-bottom: 46px;
}

/* query row: input (left) + gold SEARCH submit (right) over a thin rule */
.search-form {
  display: flex;
  align-items: center;
  gap: 32px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(234, 232, 227, 0.4);
}
.search-form__input {
  flex: 1 1 auto;
  min-width: 0;
  background: transparent;
  border: 0;
  outline: 0;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.3px;
  color: var(--white);
}
.search-form__input::placeholder { color: rgba(234, 232, 227, 0.85); opacity: 1; }
.search-form__input::-webkit-search-cancel-button { -webkit-appearance: none; }

.search-form__submit {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 11px;
  background: transparent;
  border: 0;
  cursor: pointer;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--white);
}
/* gold circle + navy magnifier */
.search-form__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px; height: 30px;
  border-radius: 50%;
  background: var(--gold-linear);
  transition: box-shadow 0.3s ease-out, transform 0.3s ease-out;
}
.search-form__icon svg { width: 15px; height: 15px; }
.search-form__icon svg path { stroke: var(--nudgee-ink); }
.search-form__label { transition: color 0.25s ease-out; }
/* hover: brighten the circle (glow) + label to gold, 300ms ease-out */
.search-form__submit:hover .search-form__icon {
  box-shadow: 0 0 14px rgba(201, 161, 91, 0.5);
  transform: scale(1.06);
}
.search-form__submit:hover .search-form__label { color: var(--gold-accent); }

/* results (Figma 544:2039) — hidden until a search is submitted */
.search-results {
  display: none;
  margin-top: 34px;
}
.search-overlay.has-results .search-results { display: block; }
.search-results__count {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.2px;
  color: var(--nudgee-light);
  margin-bottom: 8px;
}
/* scroll area + custom thin gold scrollbar (Figma 544:2040 track / 2041 thumb).
   Native bar is hidden; a JS-driven track + thumb overlay mirrors the design so
   it renders identically across browsers/OS (not overlay-hidden). */
.search-results__scroller { position: relative; }
.search-results__list {
  list-style: none;
  margin: 0;
  padding: 8px 40px 8px 0;      /* right room for the custom bar */
  max-height: 46vh;
  overflow-y: auto;
  scrollbar-width: none;        /* Firefox: hide native */
  -ms-overflow-style: none;
}
.search-results__list::-webkit-scrollbar { width: 0; height: 0; display: none; }
/* custom bar: ~5px track pinned to the right, gold thumb */
.search-results__bar {
  position: absolute;
  top: 8px; right: 0; bottom: 8px;
  width: 5px;
  border-radius: 999px;
  background: rgba(234, 232, 227, 0.12);
  opacity: 0;
  transition: opacity 0.25s ease;
}
.search-results__bar.is-active { opacity: 1; }
.search-results__thumb {
  position: absolute;
  left: 0; top: 0;
  width: 100%;
  min-height: 32px;
  border-radius: 999px;
  background: var(--gold-linear);
  cursor: grab;
}
.search-results__thumb:active { cursor: grabbing; }
.search-result { padding: 22px 0; }
.search-result__title {
  display: block;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 28px;
  line-height: 1.2;
  color: var(--nudgee-light);
  margin-bottom: 8px;
  transition: color 0.25s ease;
}
.search-result__title:hover { color: var(--gold-accent); }
.search-result__url {
  display: block;
  font-family: var(--font-head);
  font-size: 17px;
  color: var(--gold-accent);
  margin-bottom: 10px;
  word-break: break-all;
}
.search-result__snippet {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.5;
  color: rgba(234, 232, 227, 0.7);
  /* single-line truncation like Figma */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (prefers-reduced-motion: reduce) {
  .search-overlay__bg img,
  .search-form__icon,
  .search-form__label { transition: none; }
}

/* =================================================================
   MODULE: .opening  (opening animation — sits OVER the hero)
   Doc: animated infinity loop + a video playing behind a TEXT MASK
   that grows until the video fills the screen; triggers on scroll.
   The infinity stays animated but crops toward a corner afterward.
   Motion/video is verified in Chrome (headless can't play video).
   ================================================================= */
.opening {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 200;
  /* transparent — the mask svg below is the ink plate; the hero's YouTube
     banner video (behind this fixed overlay) plays inside the letters */
  background: transparent;
  overflow: hidden;
  transition: opacity 0.8s ease, visibility 0.8s ease;
}
.has-opening .opening { display: block; }
.opening.is-done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* ink plate with the headline knocked out; the letters grow to fill screen */
.opening__mask { position: absolute; inset: 0; width: 100%; height: 100%; }
.opening__masktext {
  font-family: var(--font-head);
  font-weight: 800;
  font-size: 90px;
  letter-spacing: 1px;
  transform-box: fill-box;
  transform-origin: center;
  transform: scale(1);
  transition: transform 1.4s cubic-bezier(0.72, 0, 0.24, 1);
}
.opening__masktext--mobile { display: none; }
.opening.is-revealing .opening__masktext { transform: scale(16); }

/* the gold infinity, crest and scroll hint all fade as the video takes over */
.opening__crest,
.opening__scroll {
  transition: opacity 0.6s ease, transform 0.9s ease;
}
.opening.is-revealing .opening__crest,
.opening.is-revealing .opening__scroll { opacity: 0; }

/* animated gold infinity — centred, looping around the headline */
/* now an <image> inside the reveal-masked group; position/size via SVG attrs */
.opening__crest {
  position: absolute;
  left: 50%; top: 74%;
  transform: translate(-50%, -50%);
  width: 96px;
  aspect-ratio: 135 / 148;   /* crest svg is preserveAspectRatio="none" */
  height: auto;
}

.opening__scroll {
  position: absolute;
  left: 50%; bottom: 34px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.opening__scroll-line {
  width: 1px; height: 46px;
  background: linear-gradient(to bottom, rgba(201,161,91,0), var(--gold-accent));
}
.opening__scroll-label {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-accent);
}

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

/* =================================================================
   MODULE: .hero  (loaded homepage hero — under the opening overlay)
   Navy, infinity tagline left-of-centre, Open Day promo card.
   ================================================================= */
.hero {
  position: relative;
  min-height: 100vh;
  max-height: 1080px;
  background: var(--nudgee-navy);
  overflow: hidden;
}
/* Hero video embed, sized to COVER the hero (16:9, no letterboxing). */
.hero__video {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
/* DORMANT — retained for the local-MP4 rollback (see index.html .hero__video).
   A native <video> covers with object-fit, so it needs none of the vw/vh 16:9
   maths the live iframe rule below requires. */
.hero__video-el {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border: 0;
  pointer-events: none;
}
/* LIVE — the hero is a YouTube iframe. YouTube always letterboxes to its own 16:9,
   so a 100%x100% iframe would show bars on any other viewport ratio; oversizing and
   centring it fakes object-fit:cover. Whichever of the two min-* wins is the axis
   that overflows. */
.hero__video iframe {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 100vw;
  height: 56.25vw;          /* 16:9 based on viewport width */
  min-height: 100vh;
  min-width: 177.78vh;      /* 16:9 based on viewport height */
  border: 0;
  pointer-events: none;
}

/* Homepage video sound state — Figma 2409:553 / 2409:554. */
.hero__sound {
  position: absolute;
  right: calc(var(--pad) + 12px);
  bottom: 37px;
  z-index: 4;
  width: 137px;
  height: 46px;
  padding: 0;
  border: 0;
  background: transparent;
  display: inline-flex;
  align-items: center;
  gap: 15px;
  color: var(--nudgee-light);
  cursor: pointer;
  opacity: 1;
  transition: opacity 0.2s ease;
}
.hero__sound:hover { opacity: 0.82; }
.hero__sound:focus-visible {
  outline: 2px solid var(--gold-accent);
  outline-offset: 4px;
}
.hero__sound-icon {
  display: block;
  flex: 0 0 27px;
  width: 27px;
  height: 27px;
  color: var(--gold-accent);
}
.hero__sound-icon--on { display: none; }
.hero__sound[aria-pressed="true"] .hero__sound-icon--off { display: none; }
.hero__sound[aria-pressed="true"] .hero__sound-icon--on { display: block; }
.hero__sound-label {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 16px;
  line-height: 25px;
  letter-spacing: 0.48px;
  text-transform: uppercase;
  white-space: nowrap;
}

/* dark bottom gradient for headline legibility over the video */
.hero__gradient {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(to top,
    rgba(11, 27, 51, 0.85) 0%,
    rgba(11, 27, 51, 0.35) 22%,
    rgba(11, 27, 51, 0) 48%);
}

/* headline, bottom-left — exact Figma outline (541:1169), cream fill via currentColor */
.hero__headline {
  position: absolute;
  z-index: 3;
  left: var(--pad);
  bottom: 72px;
  margin: 0;
  color: var(--nudgee-light);
}
.hero__headline-svg { display: block; width: 313px; height: auto; }
/* mobile-only fixed bottom CTA bar (Enrol Now / Book a Tour) — hidden on desktop/tablet */
.mobile-cta-bar { display: none; }

/* =================================================================
   MODULE: .welcome  (royal-blue intro band)
   Doc: blue infinity animation cropped into the right; the gold accent
   words shift white -> gold on load; everything else already loaded.
   ================================================================= */
.welcome {
  position: relative;
  background: var(--nudgee-royal);
  color: var(--nudgee-light);
  padding: 150px 0;
  overflow: hidden;
}
.welcome__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 80px;
  align-items: center;
}
.welcome__heading {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 64px;
  line-height: 1.2;
  color: var(--nudgee-light);
}
.welcome__heading p {
  margin: 0;
  font: inherit;
  line-height: inherit;
  color: inherit;
}
/* gold accent words — animate cream -> gold on load (doc) */
.welcome__heading .gold,
.welcome__heading span[style*="color"] {
  color: var(--gold-accent);
  animation: word-to-gold 1.2s ease 0.3s both;
}
@keyframes word-to-gold {
  from { color: var(--nudgee-light); }
  to   { color: var(--gold-accent); }
}
.welcome__text {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--nudgee-light);
  max-width: 648px;
}
/* "MORE ABOUT US" — gold dot + label (borderless) */
/* Welcome CTA reuses the header Book-a-Tour button (dot → arrow on hover) */
.btn-tour--welcome { margin-top: 34px; }
.welcome__buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 24px;
  margin-top: 34px;
}
.welcome__buttons .btn-tour--welcome { margin-top: 0; }

@media (prefers-reduced-motion: reduce) {
  .welcome__heading .gold,
  .welcome__heading span[style*="color"] { animation: none; }
}

/* =================================================================
   MODULE: .discover  (Discover the Nudgee Experience — Figma 541:638)
   Full-bleed campus photo, serif heading + intro, three glass cards.
   Doc: 4 states — default, then per-box hover lifts the card, swaps to
   solid royal blue and reveals body + Learn More.
   ================================================================= */
.discover {
  position: relative;
  overflow: hidden;
  min-height: 1080px;
  height: 1080px;
  display: flex;
  padding: 0;
  background: var(--white);
  color: var(--white);
}
.discover__bg {
  position: absolute;
  inset: 60px;
  z-index: 0;
  overflow: hidden;
  border-radius: 10px;               /* inset photo panel */
}
/* stacked layers: base + per-state photos (.dbg) and deep-etch subjects (.dsubj),
   with a gradient wash between them so the subjects stay bright (doc's 2-image
   treatment). Hovering a card cross-fades to that state via :has(). */
.dbg, .dsubj {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.55s ease;
}
.dbg--default, .dsubj--default { opacity: 1; }
.discover__wash {
  position: absolute; inset: 0;
  /* Figma 541:828 — vertical navy overlay, dark from 24% fading to transparent */
  background: linear-gradient(180deg, rgba(11, 27, 51, 0.8) 24.316%, rgba(11, 27, 51, 0) 100%);
}
.discover:has(.disc-card[data-cat="junior"]:hover) .dbg--default,
.discover:has(.disc-card[data-cat="junior"]:hover) .dsubj--default,
.discover:has(.disc-card[data-cat="senior"]:hover) .dbg--default,
.discover:has(.disc-card[data-cat="senior"]:hover) .dsubj--default,
.discover:has(.disc-card[data-cat="boarding"]:hover) .dbg--default,
.discover:has(.disc-card[data-cat="boarding"]:hover) .dsubj--default { opacity: 0; }
.discover:has(.disc-card[data-cat="junior"]:hover) .dbg--junior,
.discover:has(.disc-card[data-cat="junior"]:hover) .dsubj--junior,
.discover:has(.disc-card[data-cat="senior"]:hover) .dbg--senior,
.discover:has(.disc-card[data-cat="senior"]:hover) .dsubj--senior,
.discover:has(.disc-card[data-cat="boarding"]:hover) .dbg--boarding,
.discover:has(.disc-card[data-cat="boarding"]:hover) .dsubj--boarding { opacity: 1; }
/* slow Ken-Burns zoom in/out while in view. The bg photo AND its deep-etch
   subject must zoom together (same origin/timing) or the subject ghosts. */
@keyframes discKen { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } }
.discover.is-inview .dbg,
.discover.is-inview .dsubj { animation: discKen 16s ease-in-out infinite; transform-origin: center; }
@media (prefers-reduced-motion: reduce) {
  .discover.is-inview .dbg, .discover.is-inview .dsubj { animation: none; }
}
.discover__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 100%;
}
.discover__head {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 60px;
  align-items: start;
}
.discover__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(44px, 4.6vw, 68px);
  line-height: 1.06;
  color: var(--white);
  max-width: 9em;
}
.discover__intro {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  color: var(--white);
  max-width: 500px;
  margin-left: auto;
}

/* cards row — anchored to the section bottom, left ~half */
.discover__cards {
  list-style: none;
  margin: auto 0 0;
  padding: 0 0 56px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;                     /* Figma 541:831-833: 3×366px cards over ~1148px */
  max-width: 1148px;
  align-items: end;
}
.disc-card {
  position: relative;
  display: flex;                 /* let __inner fill the card so content can center */
  border-radius: 10px;           /* Figma 10.468px */
  overflow: hidden;
  min-height: 366px;             /* Figma 541:831 — 366px square (grows on hover) */
  cursor: pointer;
  background: rgba(238, 232, 217, 0.55);   /* Figma cream translucent glass */
  -webkit-backdrop-filter: blur(40px);
  backdrop-filter: blur(40px);
  border: 0;
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1),
              min-height 0.45s cubic-bezier(0.16, 1, 0.3, 1),
              background 0.4s ease, border-color 0.4s ease;
}
.disc-card__link {
  display: flex;
  flex: 1;
  min-width: 0;
  border-radius: inherit;
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0.25);
}
.disc-card__link:focus-visible {
  outline: 3px solid var(--white);
  outline-offset: -5px;
}
.disc-card__inner {
  flex: 1;                       /* fill the card height (min-height enforced above) */
  padding: 28px 26px 26px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}
.disc-card__title {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: clamp(30px, 2.6vw, 42px);
  line-height: 1.08;
  color: var(--white);
}
.disc-card__sub {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 18px;
  color: var(--white);
  margin-top: 8px;
}
/* body + Learn More: hidden until hover */
.disc-card__body {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.55;
  color: var(--nudgee-light);
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.45s ease, opacity 0.35s ease, margin 0.4s ease;
}
.disc-card__more {
  align-self: center;
  margin-top: 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: max-height 0.45s ease, opacity 0.35s ease, margin 0.4s ease;
}
/* hover (Figma 541:872): grow upward to 434, translucent royal glass (keeps the
   backdrop blur), reveal body + Learn More. Hover-only — no :focus-within, so a
   click/tap doesn't lock the card in the enlarged state. */
.disc-card:hover {
  min-height: 434px;
  background: rgba(0, 83, 155, 0.85);
  border-color: transparent;
  box-shadow: none;
}
/* keep content vertically centred on hover (no bottom void) */
.disc-card:hover .disc-card__inner { justify-content: center; }
.disc-card:hover .disc-card__body { max-height: 14em; opacity: 1; margin-top: 18px; }
.disc-card:hover .disc-card__more { max-height: 60px; opacity: 1; margin-top: 22px; pointer-events: auto; }

/* circular seal watermark, bottom-right (Figma imgFrame2 — 255x254) */
.discover__crest {
  position: absolute;
  right: 72px; bottom: 48px;
  z-index: 1;
  width: 252px; height: 252px;
  aspect-ratio: 1 / 1;
  opacity: 0.6;
  pointer-events: none;
}

/* Desktop composition (Figma 541:638): 60px white frame around a 1800x960
   image stage. The default background and deep-etched foreground share the
   same crop but remain separate CMS-driven image layers. */
@media (min-width: 1441px) {
  .discover__bg .dbg--default,
  .discover__bg .dsubj--default {
    inset: auto;
    left: -14.79%;
    top: -50.18%;
    width: 129.58%;
    height: 161.97%;
    max-width: none;
    object-fit: cover;
  }
  .discover__bg .dsubj--default {
    /* Figma's foreground layer is clipped at 1477.559px of the 1800px stage. */
    clip-path: inset(0 25.24% 0 0);
  }
  .discover__bg .dbg:not(.dbg--default),
  .discover__bg .dsubj:not(.dsubj--default) {
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .discover__inner {
    max-width: none;
    height: 100%;
    padding: 0;
  }
  .discover__head {
    position: absolute;
    left: 160px;
    right: 160px;
    top: 160px;
    grid-template-columns: 784px 648px;
    gap: 168px;
  }
  .discover__title {
    max-width: 784px;
    font-size: 68px;
    line-height: 1.2;
  }
  .discover__intro {
    max-width: 648px;
    margin: 26px 0 0;
    font-family: var(--font-head);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: 0.48px;
  }
  .discover__cards {
    position: absolute;
    left: 160px;
    bottom: 113.447px;
    grid-template-columns: repeat(3, 366.383px);
    gap: 24.427px;
    max-width: none;
    margin: 0;
    padding: 0;
    align-items: end;
  }
  .disc-card {
    width: 366.383px;
    min-height: 366.383px;
  }
  .discover__crest {
    right: 100px;
    bottom: 100px;
    width: 255px;
    height: 254px;
  }
}

/* The full desktop head is 1600px wide at the 1920px Figma frame. Between the
   tablet breakpoint and that frame, let both text columns shrink so the intro
   cannot extend beyond the clipped image stage. Values resolve back to the
   original 160px / 168px desktop spacing at 1920px. */
@media (min-width: 1441px) and (max-width: 1919px) {
  .discover__head {
    left: clamp(120px, 8.333vw, 160px);
    right: clamp(120px, 8.333vw, 160px);
    grid-template-columns: minmax(0, 1.21fr) minmax(0, 1fr);
    gap: clamp(96px, 8.75vw, 168px);
  }

  .discover__title {
    min-width: 0;
    font-size: clamp(52px, 4vw, 68px);
  }

  .discover__intro {
    min-width: 0;
    max-width: none;
  }

  /* Cards and crest keep the Figma 1920 proportions (px / 19.2 = vw) so the
     crest cannot slide over the Boarding card below 1920px. */
  .discover__cards {
    left: 8.333vw;
    grid-template-columns: repeat(3, 19.082vw);
    gap: 1.272vw;
  }
  .disc-card {
    width: 19.082vw;
    min-height: 19.082vw;
  }
  .disc-card:hover {
    min-height: 22.604vw;
  }
  .disc-card__inner {
    padding: 1.458vw 1.354vw 1.354vw;
  }
  .disc-card__title {
    font-size: 2.1875vw;
  }
  .discover__crest {
    right: 5.208vw;
    width: 13.281vw;
    height: 13.229vw;
  }
}

@media (prefers-reduced-motion: reduce) {
  .disc-card, .disc-card__body, .disc-card__more { transition: none; }
}

/* =================================================================
   MODULE: .paths  (Find Your Path to Shine — Figma 541:587)
   Dark navy section: gold eyebrow, serif heading, lead, filter pills,
   featured image + filterable card carousel with gold arrows, NC stripe.
   ================================================================= */
.paths {
  position: relative;
  overflow: hidden;
  background: var(--white);          /* white below — cards straddle the navy edge */
  color: var(--nudgee-light);
  padding: 96px 0 72px;
}
/* navy panel over the top — stops at ~half the card track (Figma) */
.paths::before {
  content: "";
  position: absolute; left: 0; right: 0; top: 0;
  height: calc(100% - 296px);
  background: linear-gradient(118deg, #0a1830 0%, #12294a 100%);
  z-index: 0;
}
/* NC vertical stripe (Figma 541:604 "Mask group") — far-right strip: blue
   horizontal bars behind a left→right alpha gradient mask, at 50% opacity, over
   the navy region only. The bar image is the exported Figma asset; the mask
   reproduces the node's gradient (transparent to 42.3%, opaque by 99.5%) so the
   bars fade in from the content edge toward the screen edge. */
.paths__stripe {
  position: absolute; top: 0; right: 0;
  height: calc(100% - 296px);
  width: 17.5%; max-width: 336px;
  /* Figma 541:606 image transform on the 336x809 frame: w 112.03% (=376px),
     h 437.82% (=3543px), offset left -12.03% (-40px) / top -20.18% (-163px). */
  background: url(../images/paths/nc-stripe.png) -40px -163px / 376px 3543px no-repeat;
  opacity: 0.5;
  -webkit-mask-image: linear-gradient(90deg, transparent 42.3%, #000 99.5%);
          mask-image: linear-gradient(90deg, transparent 42.3%, #000 99.5%);
  pointer-events: none;
  z-index: 0;
}

.paths__top {
  position: relative;
  z-index: 2;
}
.paths__intro { max-width: 784px; }   /* Figma 541:591/592 — ~6/12 columns (784px) */
.paths__eyebrow {
  display: inline-block;
  font-family: var(--font-head);
  font-weight: 400;                    /* Figma 541:593 — Poppins Regular */
  font-size: 18px;
  line-height: 1.55;
  letter-spacing: 0.54px;
  color: var(--gold-accent);
  margin-bottom: 16px;
}
.paths__title {
  font-family: var(--font-display);
  font-weight: 400;                    /* Figma 541:591 — Playfair Regular (was 500) */
  font-size: clamp(40px, 4.6vw, 68px);
  line-height: 1.2;
  color: var(--nudgee-light);
  margin-bottom: 22px;
}
.paths__lead {
  font-family: var(--font-body);       /* Poppins */
  font-weight: 400;
  font-size: 16px;                     /* Figma 541:592 */
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--nudgee-light);          /* #EAE8E3, full opacity */
  max-width: 784px;
  margin-bottom: 32px;
}

/* filter pills */
/* Figma 541:622 — gradient outline matching the Show-All fill. Painted as a
   border-box gradient with a navy padding-box on top, so the pill keeps its
   radius (border-image would square the corners) and needs no extra element
   (the ::before/::after are the mobile dropdown chevron). */
.paths__filters {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px;
  border-radius: 999px;
  border: 1px solid transparent;
  background:
    linear-gradient(#0b1b33, #0b1b33) padding-box,
    var(--gold-btn) border-box;
}
.paths__filter {
  border: 0;
  background: transparent;
  cursor: pointer;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--nudgee-light);
  padding: 11px 22px;
  border-radius: 999px;
  white-space: nowrap;
  transition: color 0.25s ease, background 0.3s ease;
}
.paths__filter:hover { color: var(--gold-accent); }
.paths__filter.is-active {
  color: var(--nudgee-ink);
  background: var(--gold-btn);         /* Figma 541:622 — #FFDBA7 → #C9A15B */
}
/* "Personalise for my child" (same #curPersonaliseOpen button + #curModal as the
   curriculum page) under the filter pill. .paths__top is pointer-events:none at
   tablet widths, so the wrapper opts back in. Every layout below that positions
   by fixed px shifts by the added 84px (24px gap + 60px button) only when the
   button is rendered. */
.paths__personalise {
  margin-top: 24px;
  pointer-events: auto;
}

/* featured deep-etch boy — absolutely positioned to fill the navy panel:
   head near the top, feet at the navy bottom edge (296px from section bottom).
   Sized by HEIGHT; the PNG's ~45% transparent left overflows behind the intro. */
.paths__feature {
  position: absolute;
  z-index: 2;
  top: 26px;
  bottom: 296px;                     /* = navy panel bottom edge */
  right: 2.5%;
}
.paths__feature > img {
  display: block;
  height: 100%;
  width: auto;
  max-width: none;
}
/* Below 1920 the fixed-height student slid left over the 784px text column
   (client, ~1467-1650px). Scale his height with the viewport (642px at 1920 =
   33.4375vw), keeping the feet on the navy edge. */
@media (min-width: 1441px) and (max-width: 1919px) {
  .paths__feature {
    top: auto;
    height: 33.4375vw;
  }
}
/* 1920+: top/bottom anchoring would grow him by the button's 84px — keep the
   Figma 1920 size with his feet on the navy edge. */
@media (min-width: 1920px) {
  .paths:has(.paths__personalise) .paths__feature {
    top: auto;
    height: 642px;
  }
}
/* gold prev/next arrows, over the feature's lower-right */
.paths__arrows {
  position: absolute;
  /* 340px up from the feature's stable bottom edge (296px above the section
     bottom) keeps the arrows ~20px clear of the card rail at every desktop
     width; a percentage drifted under the cards as the feature box resized. */
  right: 4%; bottom: 340px;
  display: flex;
  gap: 12px;
  z-index: 3;
}
/* Figma 541:628/629. Default: gold circle (light→gold gradient) + white arrow.
   Hover (Variant2): gradient flips (gold→light) + soft drop shadow, no scale. */
.paths__arrow {
  width: 52px; height: 52px;
  border-radius: 50%;
  border: 0;
  background: linear-gradient(135deg, #FFDBA7 0%, #C9A15B 60%);
  color: var(--white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s ease-out, box-shadow 0.3s ease-out;
}
.paths__arrow svg { width: 22px; height: 22px; }
.paths__arrow:hover {
  background: var(--gold-linear);            /* #C9A15B 40% → #FFDBA7 */
  box-shadow: 0 0 12px rgba(0, 0, 0, 0.25);  /* feGaussianBlur 6 @ 25% black */
}

/* card carousel */
.paths__track-wrap {
  position: relative;
  z-index: 2;
  margin-top: 46px;
}
.paths__track {
  display: flex;
  gap: 22px;
  list-style: none;
  margin: 0;
  padding: 6px var(--pad);
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
  touch-action: pan-y;
}
.paths__track::-webkit-scrollbar { display: none; }
.path-card {
  position: relative;
  flex: 0 0 auto;
  width: 336px;
  height: 448px;
  border-radius: 18px;
  overflow: hidden;
}
.path-card > img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
/* royal-blue gradient (Figma: transparent @50% → rgba(0,85,162,.85) @81%) */
.path-card::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0, 31, 60, 0) 50%, rgba(0, 85, 162, 0.85) 81%);
}
.path-card__foot {
  position: absolute;
  left: 24px; right: 20px; bottom: 22px;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.path-card__cat {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.05;
  color: var(--white);
}
/* gold-ring arrow button (Figma imgArrowRight) */
.path-card__arrow {
  flex: 0 0 auto;
  width: 52px; height: 52px;
  border-radius: 50%;
  background: url(../images/path-arrow.svg) center / 100% 100% no-repeat;
  color: var(--white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.3s ease-out, color 0.3s ease-out;
}
.path-card__arrow svg { width: 20px; height: 20px; }
/* hover: tile zooms in + arrow overstate (fills gold) — doc */
.path-card:hover > img { transform: scale(1.05); }
.path-card:hover .path-card__arrow {
  background: var(--gold-linear);
  color: var(--nudgee-ink);
}
.path-card.is-hidden { display: none; }
/* load: tiles fade in when the section scrolls into view */
.path-card {
  opacity: 0;
  transition: opacity 0.5s ease-out;
}
.paths.is-inview .path-card { opacity: 1; }
.paths.is-inview .path-card:nth-child(2) { transition-delay: 0.04s; }
.paths.is-inview .path-card:nth-child(3) { transition-delay: 0.08s; }
.paths.is-inview .path-card:nth-child(4) { transition-delay: 0.12s; }
.paths.is-inview .path-card:nth-child(5) { transition-delay: 0.16s; }
.paths.is-inview .path-card:nth-child(6) { transition-delay: 0.20s; }
.paths.is-inview .path-card:nth-child(7) { transition-delay: 0.24s; }
/* while dragging, disable the child pointer + snap transitions */
.paths__track.is-dragging { cursor: grabbing; scroll-behavior: auto; }
.paths__track.is-dragging .path-card { pointer-events: none; }
@media (prefers-reduced-motion: reduce) {
  .path-card { opacity: 1; transform: none; transition: none; transition-delay: 0s !important; }
}

/* =================================================================
   SHARED bits
   ================================================================= */
.social-ic {
  width: 34px; height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  background: var(--nudgee-royal);
  color: var(--white);
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.social-ic svg { width: 18px; height: 18px; }
.social-ic:hover { transform: translateY(-2px); }
/* gold-dot text link (royal) — Figma 541:642: Default dot→label, Variant2 hover
   flips to label→gold arrow-circle (same behaviour as .btn-tour) */
.link-dot {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 36px;
  padding: 0 18px 0 29px;              /* matches .btn-tour: left lead dot · right arrow */
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.48px;
  text-transform: uppercase;
  color: var(--nudgee-royal);
}
.link-dot__dot {
  position: absolute; left: 4px; top: 50%;
  transform: translateY(-50%);
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--button-dot); flex: 0 0 auto;
  transition: opacity 0.3s ease-out;
}
.link-dot__label { display: inline-block; transition: transform 0.3s ease-out; }
.link-dot::after {
  content: ""; position: absolute; right: 0; top: 50%;
  transform: translateY(-50%) scale(0.55);
  width: 34px; height: 34px; border-radius: 50%;
  background: url(../images/arrow-white.svg) center / 16px no-repeat, var(--gold-linear);
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}
.link-dot:hover .link-dot__dot { opacity: 0; }
.link-dot:hover .link-dot__label { transform: translateX(-25px); }
.link-dot:hover::after { opacity: 1; transform: translateY(-50%) scale(1); }
@media (prefers-reduced-motion: reduce) {
  .link-dot__dot, .link-dot__label, .link-dot::after { transition: none; }
}

/* =================================================================
   MODULE: .voices  (Voices of Nudgee testimonial carousel — 541:639)
   ================================================================= */
.voices { position: relative; background: var(--white); padding: 60px 0 84px; overflow: hidden; }
/* cream band, inset (Figma) — square corners; text sits inside it.
   bottom inset = 60px so the space below the band matches the 60px side margins. */
.voices__band {
  position: absolute; left: 3.1%; right: 3.1%; top: 186px; bottom: 60px;
  background: var(--nudgee-light); z-index: 0;
}
.voices__wrap {
  position: relative; z-index: 1;
  max-width: 1800px; margin: 0 auto; padding: 0 64px;
  display: flex; align-items: center; gap: 26px; min-height: 600px;
}
.voices__intro { flex: 0 0 36%; align-self: start; margin-top: 244px; }   /* reduced to widen the video card (Figma 541:639) */
.voices__eyebrow { display: block; font-family: var(--font-head); font-weight: 400; font-size: 18px; line-height: 1.55; color: var(--gold-accent); margin-bottom: 14px; }
.voices__title { font-family: var(--font-display); font-weight: 400; font-size: clamp(44px, 4.6vw, 68px); line-height: 1.2; color: var(--nudgee-royal); margin-bottom: 18px; }
.voices__lead { font-family: var(--font-head); font-weight: 400; font-size: 16px; line-height: 1.74; letter-spacing: 0.48px; color: #000; }
/* shield crest watermark, bottom-left. crest.svg is the REVERSED (white)
   mono crest, so darken it with a filter to show on the cream band. */
/* shield crest, faint white watermark (uploaded crest-voices.png) */
.voices__crest {
  position: absolute; left: 56px; bottom: 30px;
  width: 250px; height: auto;
  z-index: 1; pointer-events: none;
  opacity: 0.9;
}
/* Keeps the desktop arrows as flex siblings; mobile turns this into the
   positioning context for the slider and its controls. */
.voices__stage { display: contents; }
/* arrows flank the card, raised to the quote-mark level */
.voices__arrow {
  flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%;
  border: 1px solid rgba(201,161,91,0.6); background: transparent; color: var(--gold-accent);
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
  align-self: center; margin-top: -46px; z-index: 3;
  transition: background 0.3s ease-out, color 0.3s ease-out, border-color 0.3s ease-out;
}
.voices__arrow svg { width: 22px; height: 22px; }
.voices__arrow:hover { background: var(--gold-linear); color: var(--nudgee-ink); border-color: transparent; }
/* Slick carousel — the big active testimonial card */
.voices__slider { flex: 0 0 clamp(400px, 30vw, 528px); min-width: 0; align-self: start; margin-top: -60px; }   /* Figma card = 528px */
.voices__slide { outline: none; }
.voices__card {
  background: var(--white); border: 1px solid rgba(0,83,155,0.4);
  border-radius: 22px; padding: 18px;
}
/* Figma 541:936 — square video (height = width) */
.voices__video { position: relative; border-radius: 14px; overflow: hidden; aspect-ratio: 1 / 1; background: var(--nudgee-ink); }
.voices__video--clickable { cursor: pointer; }
/* YouTube player, cover-cropped to fill the portrait card */
.voices__yt { position: absolute; inset: 0; background-size: cover; background-position: center; overflow: hidden; }
.voices__cover { display: block; width: 100%; height: 100%; object-fit: cover; }
.voices__ytframe { width: 100%; height: 100%; }
.voices__yt iframe {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  height: 100%; width: 177.8%;      /* 16:9 video covering a 1:1 box */
  pointer-events: none;             /* clicks go to the play button */
  border: 0;
}
.voices__play {
  position: absolute; right: 16px; bottom: 16px;
  width: clamp(104px, 8.125vw, 156px); height: clamp(104px, 8.125vw, 156px); border-radius: 50%;
  border: 0; background: rgba(0, 83, 155, 0.88); color: var(--gold-accent); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: transform 0.25s ease, background-color 0.25s ease;
}
.voices__play::before {
  content: "";
  position: absolute;
  inset: 11%;
  border: 1px solid var(--gold-accent);
  border-radius: 50%;
}
.voices__play::after {
  content: "";
  position: absolute;
  top: 34%;
  left: 39%;
  width: 29%;
  height: 32%;
  background: var(--gold-accent);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.voices__sound-icon { display: none; }
.voices__play:hover,
.voices__play:focus-visible {
  background: var(--nudgee-royal);
  transform: scale(1.05);
}
.voices__play:focus-visible { outline: 2px solid var(--white); outline-offset: 3px; }
.voices__body { padding: 22px 14px 10px; }
/* quote mark — actual Figma glyph (SVG), 54x45 gold */
.voices__mark { display: block; width: 54px; height: 45px; background: url(../images/quote-mark.svg) no-repeat center / contain; margin-bottom: 16px; }
.voices__quote { font-family: var(--font-head); font-weight: 400; font-size: 20px; line-height: 1.74; letter-spacing: 0.6px; color: #000; }
.voices__name { font-family: var(--font-display); font-weight: 400; font-size: 38px; line-height: 1.1; color: var(--nudgee-royal); margin-top: 20px; }
.voices__year { font-family: var(--font-head); font-weight: 700; font-size: 16px; line-height: 1.09; color: var(--gold-accent); margin-top: 14px; }   /* Figma — more space above the year label */
/* queue — staggered peek thumbnails of the upcoming videos */
.voices__queue { flex: 1 1 auto; position: relative; align-self: stretch; min-width: 220px; }
.voices__peek {
  position: absolute; width: 170px; height: 181px;
  border-radius: 20px; overflow: hidden; border: 0;
  padding: 0; background: none; cursor: pointer;
  transition: transform 0.3s ease;   /* Figma — inactive videos have no stroke or drop shadow */
}
.voices__peek img { width: 100%; height: 100%; object-fit: cover; display: block; }
.voices__peek.is-empty { visibility: hidden; pointer-events: none; }
.voices__peek--top { top: 320px; right: 2%; }
.voices__peek--bottom { top: 560px; right: 37%; }
.voices__peek:hover { transform: translateY(-4px); }

/* Only the fluid >1440 layout needs the extra top gap; the <=1440 composition
   already carries the Figma above-band spacing (band top 234px) in its own block.
   A white border (not margin) fills the gap: a margin would expose the cream
   page background (body is --nudgee-light) above the video. The border keeps the
   video/band in the exact same position while painting the gap white. */
@media (min-width: 1441px) {
  .voices { border-top: 96px solid var(--white); }
}

/* =================================================================
   MODULE: .journey  (A journey of growth — 541:662)
   ================================================================= */
.journey { position: relative; overflow: hidden; min-height: 888px; display: flex; color: var(--white); }
/* fixed-attachment background: the photo pins to the viewport and the section
   scrolls over it like a window */
.journey__bg { --journey-position: var(--journey-position-cms, center center); position: absolute; inset: 0; z-index: 0; overflow: hidden;
  background-color: var(--nudgee-ink);
  background-image: var(--journey-bg-large, url(../images/sections/journey-bg.jpg));
  background-position: var(--journey-position);
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed; }
@media (min-width: 1921px) {
  .journey__bg {
    background-image: var(--journey-bg-xlarge, var(--journey-bg-large, url(../images/sections/journey-bg.jpg)));
  }
}
.journey__bg-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: var(--journey-position);
  opacity: 0;
}
/* Figma 541:662 gradient overlay — exact stops: #06233C at 50% / 12% / 12% / 40% */
/* Figma 1659:507 — black left-to-right scrim: darker behind the copy, clear over the right of the photo */
.journey__bg::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90.107deg, rgba(0,0,0,0.6) 0.181%, rgba(0,0,0,0) 64.961%); }
.journey__inner { position: relative; z-index: 1; display: flex; flex-direction: column; width: 100%; padding: 126px var(--pad) 117px; }
.journey__title { font-family: var(--font-display); font-weight: 400; font-size: 68px; line-height: 1.2; color: var(--white); max-width: 706px; }
.journey__foot { margin-top: auto; max-width: 659px; }
.journey__body { font-family: var(--font-head); font-weight: 400; font-size: 16px; line-height: 1.74; letter-spacing: 0.48px; color: var(--white); max-width: 659px; margin-bottom: 56px; }
.journey__cta { margin-top: 0; }

/* iOS does not reliably support fixed backgrounds. Mirror the Image Divider
   fallback by pinning a real image to the visual viewport and translating it
   from JavaScript while the section crosses the viewport. */
@media (max-width: 767px) {
  .journey[data-parallax].is-ios-parallax .journey__bg {
    background-image: none !important;
    background-attachment: scroll !important;
  }
  .journey[data-parallax].is-ios-parallax .journey__bg-image {
    inset: 0 0 auto;
    height: 100vh;
    height: 100lvh;
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transform-origin: top center;
    backface-visibility: hidden;
    will-change: transform;
  }
}

@media (min-width: 768px) and (hover: none) and (pointer: coarse) {
  .journey[data-parallax].is-ios-parallax .journey__bg {
    background-image: none !important;
    background-attachment: scroll !important;
  }
  .journey[data-parallax].is-ios-parallax .journey__bg-image {
    inset: 0 0 auto;
    height: 100vh;
    height: 100lvh;
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transform-origin: top center;
    backface-visibility: hidden;
    will-change: transform;
  }
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce),
       (min-width: 768px) and (hover: none) and (pointer: coarse) and (prefers-reduced-motion: reduce) {
  .journey[data-parallax].is-ios-parallax .journey__bg-image {
    inset: 0;
    height: 100%;
    min-height: 0;
    transform: none;
    will-change: auto;
  }
}

@media (max-width: 1199px) {
  .journey__bg {
    background-image: var(--journey-bg-medium, var(--journey-bg-large, url(../images/sections/journey-bg.jpg)));
  }
}

/* =================================================================
   MODULE: .news  (The Nudgee Spirit / Latest News — 541:594)
   ================================================================= */
.news { background: var(--white); padding: 126px 0 123px; }   /* Figma 541:594 — ~126px above, ~123px below to the next module */
.news__head { text-align: center; margin-bottom: 49px; }
.news__eyebrow { display: block; font-family: var(--font-head); font-weight: 400; font-size: 18px; line-height: 1.55; color: var(--gold-accent); margin-bottom: 10px; }
.news__title { font-family: var(--font-display); font-weight: 400; font-size: 68px; line-height: 1.2; color: var(--nudgee-royal); }
.news__social { display: inline-flex; align-items: center; gap: 10px; margin-top: 26px; }
.news__hash { font-family: var(--font-head); font-weight: 400; font-size: 16px; letter-spacing: 0.48px; color: var(--nudgee-royal); margin-left: 6px; }
.news__hash strong { font-weight: 700; }
.news__social .social-ic { width: 39px; height: 39px; }
.news__social .social-ic svg { width: 23px; height: 23px; }
.news__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.news-card { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 376 / 501; }
.news-card a { display: block; height: 100%; }
.news-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; }
/* hover (Figma 754:1115): image zooms + a 60% black overlay fades in + heart/like count */
.news-card::after { content: ""; position: absolute; inset: 0; border-radius: 20px; background: rgba(0,0,0,0.6); opacity: 0; transition: opacity 0.4s ease; pointer-events: none; z-index: 1; }
.news-card__like { position: absolute; top: 36px; left: 50%; transform: translateX(-50%); z-index: 2; display: inline-flex; align-items: center; gap: 5px; color: var(--white); opacity: 0; transition: opacity 0.4s ease; pointer-events: none; }
.news-card__heart { width: 25px; height: 22px; flex: 0 0 auto; }
.news-card__count { font-family: var(--font-head); font-weight: 700; font-size: 16px; letter-spacing: 0.48px; line-height: 1; }
.news-card:hover img { transform: scale(1.12); }
.news-card:hover::after,
.news-card:hover .news-card__like { opacity: 1; }
.news__links { display: flex; gap: 40px; margin-top: 84px; }

/* =================================================================
   MODULE: .tours  (2026 College Tours CTA — 541:640)
   ================================================================= */
.tours { position: relative; overflow: hidden; min-height: 838px; background: #06233c; }
/* ---- image slider (Slick): each slide owns its image + overlay + panel ---- */
.tours__slider { height: 838px; }
.tours__slider:not(.slick-initialized) .tours__slide + .tours__slide { display: none; }
.tours__slider .slick-list, .tours__slider .slick-track { height: 100%; }
.tours__slider .slick-slide { height: 838px; }
.tours__slide { position: relative; height: 838px; overflow: hidden; }
.tours__slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.tours__overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(6,35,60,0.5) 0%, rgba(6,35,60,0.12) 29%, rgba(6,35,60,0.12) 70.32%, rgba(6,35,60,0.4) 100%); }
/* The active image and glass text panel use restrained opacity fades rather
   than animating every text child independently. */
.tours.is-inview .slick-active .tours__slide-img,
.tours.is-inview .slick-active img {
  animation: toursImageIn 0.55s ease-out both;
}
.tours.is-inview .slick-active .tours__overlay {
  animation: toursOverlayIn 0.55s ease-out both;
}
/* ---- carousel dots (over the image, bottom, left of the panel) ---- */
.tours__dots { position: absolute; z-index: 4; bottom: 5.5%; left: 54%; }
.tours__dots .slick-dots { display: flex; align-items: center; gap: 15px; margin: 0; padding: 0; list-style: none; }
.tours__dots .slick-dots li { width: 11px; height: 11px; }
.tours__dots .slick-dots button { display: block; width: 11px; height: 11px; padding: 0; border: 0; border-radius: 50%;
  background: #83817B; font-size: 0; line-height: 0; color: transparent; cursor: pointer;
  transition: background 0.3s ease; }   /* Figma 541:640 — inactive dot, solid, no transparency */
.tours__dots .slick-dots button::before { display: none; }
.tours__dots .slick-dots .slick-active button { background: #FFFFFF; }   /* active dot, solid white */
/* ---- glass panel (one per slide, unique content) ---- */
.tours__panel {
  position: absolute; z-index: 2; top: 6%; bottom: 5.5%; width: 34.7%;
  background: rgba(0,83,155,0.55);
  -webkit-backdrop-filter: blur(25px); backdrop-filter: blur(25px);
  border-radius: 10px; color: var(--white);
  padding: 48px 36px; display: flex; flex-direction: column; justify-content: center;
  opacity: 0;
}
.tours__panel--left { left: 2.76%; right: auto; }
.tours__panel--right { right: 2.76%; left: auto; }
.tours__eyebrow { display: block; font-family: var(--font-head); font-weight: 400; font-size: 32px; line-height: 1.55; color: var(--gold-accent); margin-bottom: 2px; }
.tours__title { font-family: var(--font-display); font-weight: 400; font-size: 68px; line-height: 1.2; color: var(--white); margin-bottom: 22px; }
.tours__body { font-family: var(--font-head); font-weight: 400; font-size: 16px; line-height: 1.74; letter-spacing: 0.48px; color: var(--white); margin-bottom: 20px; }
.tours__body--strong { font-weight: 700; }
.tours__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 12px; }
.tours__cta { align-self: flex-start; margin-top: 0; }
.tours__slider:not(.slick-initialized) .tours__slide:first-child .tours__panel {
  opacity: 1;
  transform: none;
}
.tours.is-inview .slick-active .tours__panel {
  animation: toursPanelIn 0.5s ease-out 0.1s both;
}
@keyframes toursImageIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes toursOverlayIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes toursPanelIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .tours__slide img,
  .tours__overlay,
  .tours__panel {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    animation-delay: 0s !important;
    transition-delay: 0s !important;
  }
}

/* =================================================================
   MODULE: .site-footer  (754:1062)
   ================================================================= */
.site-footer { position: relative; min-height: 697px; overflow: hidden; background: var(--nudgee-ink); color: var(--nudgee-light); padding: 50px 0 10px; }
/* ---- reveal: the footer video plays inside the giant watermark text,
        with the animated infinity loop behind it (Figma 754:1062) ---- */
.footer__reveal { position: absolute; left: -8px; bottom: -16px; z-index: 0; width: 55.5%; pointer-events: none; }
@media (min-width: 1921px) {
  .footer__reveal {
    left: calc((100% - var(--container-max)) / 2 - 8px);
    width: 1065.6px;
  }
}
/* the watermark is a text-shaped window onto the footer video. The mask is the
   watermark outlined to vector paths in Poppins ExtraBold (footer-mask.svg) —
   text nodes don't rasterise as an external mask, outlined paths do. */
.footer__watermark {
  position: relative; z-index: 1; display: block; margin: 0;
  width: 100%; aspect-ratio: 7676 / 2230;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='7676'%20height='2230'%20viewBox='0%200%207676%202230'%20fill='%23fff'%3E%3Cpath%20transform='translate(0,700)%20scale(1,-1)'%20d='M703%20353Q703%20251%20657.5%20171.0Q612%2091%20528.5%2045.5Q445%200%20335%200H56V705H335Q446%20705%20529.5%20660.5Q613%20616%20658.0%20536.0Q703%20456%20703%20353ZM504%20353Q504%20440%20455.0%20487.5Q406%20535%20320%20535H252V173H320Q406%20173%20455.0%20220.0Q504%20267%20504%20353Z'/%3E%3Cpath%20transform='translate(710,700)%20scale(1,-1)'%20d='M252%20705V0H56V705Z'/%3E%3Cpath%20transform='translate(993,700)%20scale(1,-1)'%20d='M35%20219H244Q247%20182%20266.0%20165.0Q285%20148%20315%20148Q342%20148%20359.5%20161.5Q377%20175%20377%20199Q377%20230%20348.0%20247.0Q319%20264%20254%20285Q185%20308%20142.5%20329.5Q100%20351%2068.5%20392.5Q37%20434%2037%20501Q37%20569%2071.0%20617.5Q105%20666%20165.0%20691.0Q225%20716%20301%20716Q424%20716%20497.5%20658.5Q571%20601%20576%20497H363Q362%20529%20343.5%20545.0Q325%20561%20296%20561Q274%20561%20260.0%20548.0Q246%20535%20246%20511Q246%20491%20261.5%20476.5Q277%20462%20300.0%20451.5Q323%20441%20368%20425Q435%20402%20478.5%20379.5Q522%20357%20553.5%20316.5Q585%20276%20585%20214Q585%20151%20553.5%20101.0Q522%2051%20462.5%2022.0Q403%20-7%20322%20-7Q199%20-7%20120.0%2051.5Q41%20110%2035%20219Z'/%3E%3Cpath%20transform='translate(1588,700)%20scale(1,-1)'%20d='M383%20712Q515%20712%20605.0%20641.5Q695%20571%20721%20450H510Q491%20490%20457.5%20511.0Q424%20532%20380%20532Q312%20532%20271.5%20483.5Q231%20435%20231%20354Q231%20272%20271.5%20223.5Q312%20175%20380%20175Q424%20175%20457.5%20196.0Q491%20217%20510%20257H721Q695%20136%20605.0%2065.5Q515%20-5%20383%20-5Q279%20-5%20199.0%2040.5Q119%2086%2075.5%20167.5Q32%20249%2032%20354Q32%20458%2075.5%20539.5Q119%20621%20199.0%20666.5Q279%20712%20383%20712Z'/%3E%3Cpath%20transform='translate(2321,700)%20scale(1,-1)'%20d='M32%20355Q32%20459%2080.5%20541.5Q129%20624%20212.0%20670.0Q295%20716%20394%20716Q494%20716%20576.5%20670.0Q659%20624%20707.0%20541.5Q755%20459%20755%20355Q755%20251%20707.0%20168.5Q659%2086%20576.0%2039.5Q493%20-7%20394%20-7Q295%20-7%20212.0%2039.5Q129%2086%2080.5%20168.5Q32%20251%2032%20355ZM556%20355Q556%20439%20512.5%20487.5Q469%20536%20394%20536Q318%20536%20275.0%20487.5Q232%20439%20232%20355Q232%20272%20275.0%20223.5Q318%20175%20394%20175Q469%20175%20512.5%20224.0Q556%20273%20556%20355Z'/%3E%3Cpath%20transform='translate(3083,700)%20scale(1,-1)'%20d='M742%20705%20499%200H248L4%20705H214L374%20196L533%20705Z'/%3E%3Cpath%20transform='translate(3805,700)%20scale(1,-1)'%20d='M252%20548V433H477V284H252V157H507V0H56V705H507V548Z'/%3E%3Cpath%20transform='translate(4328,700)%20scale(1,-1)'%20d='M413%200%20273%20260H252V0H56V705H365Q450%20705%20509.0%20675.5Q568%20646%20598.0%20594.5Q628%20543%20628%20479Q628%20407%20588.5%20352.5Q549%20298%20473%20275L632%200ZM252%20394H349Q389%20394%20409.0%20413.0Q429%20432%20429%20468Q429%20502%20408.5%20521.5Q388%20541%20349%20541H252Z'/%3E%3Cpath%20transform='translate(0,1455)%20scale(1,-1)'%20d='M587%20705V549H399V0H203V549H17V705Z'/%3E%3Cpath%20transform='translate(579,1455)%20scale(1,-1)'%20d='M687%20705V0H491V283H252V0H56V705H252V440H491V705Z'/%3E%3Cpath%20transform='translate(1297,1455)%20scale(1,-1)'%20d='M252%20548V433H477V284H252V157H507V0H56V705H507V548Z'/%3E%3Cpath%20transform='translate(1986,1455)%20scale(1,-1)'%20d='M252%20705V0H56V705Z'/%3E%3Cpath%20transform='translate(2269,1455)%20scale(1,-1)'%20d='M709%200H513L252%20394V0H56V705H252L513%20306V705H709Z'/%3E%3Cpath%20transform='translate(3009,1455)%20scale(1,-1)'%20d='M534%20705V549H252V425H460V276H252V0H56V705Z'/%3E%3Cpath%20transform='translate(3545,1455)%20scale(1,-1)'%20d='M252%20705V0H56V705Z'/%3E%3Cpath%20transform='translate(3828,1455)%20scale(1,-1)'%20d='M709%200H513L252%20394V0H56V705H252L513%20306V705H709Z'/%3E%3Cpath%20transform='translate(4568,1455)%20scale(1,-1)'%20d='M252%20705V0H56V705Z'/%3E%3Cpath%20transform='translate(4851,1455)%20scale(1,-1)'%20d='M587%20705V549H399V0H203V549H17V705Z'/%3E%3Cpath%20transform='translate(5430,1455)%20scale(1,-1)'%20d='M252%20548V433H477V284H252V157H507V0H56V705H507V548Z'/%3E%3Cpath%20transform='translate(0,2210)%20scale(1,-1)'%20d='M32%20355Q32%20459%2080.5%20541.5Q129%20624%20212.0%20670.0Q295%20716%20394%20716Q494%20716%20576.5%20670.0Q659%20624%20707.0%20541.5Q755%20459%20755%20355Q755%20251%20707.0%20168.5Q659%2086%20576.0%2039.5Q493%20-7%20394%20-7Q295%20-7%20212.0%2039.5Q129%2086%2080.5%20168.5Q32%20251%2032%20355ZM556%20355Q556%20439%20512.5%20487.5Q469%20536%20394%20536Q318%20536%20275.0%20487.5Q232%20439%20232%20355Q232%20272%20275.0%20223.5Q318%20175%20394%20175Q469%20175%20512.5%20224.0Q556%20273%20556%20355Z'/%3E%3Cpath%20transform='translate(762,2210)%20scale(1,-1)'%20d='M349%20238H252V0H56V705H349Q434%20705%20493.5%20675.0Q553%20645%20583.0%20592.0Q613%20539%20613%20470Q613%20406%20583.5%20353.5Q554%20301%20494.5%20269.5Q435%20238%20349%20238ZM413%20470Q413%20547%20330%20547H252V394H330Q413%20394%20413%20470Z'/%3E%3Cpath%20transform='translate(1373,2210)%20scale(1,-1)'%20d='M349%20238H252V0H56V705H349Q434%20705%20493.5%20675.0Q553%20645%20583.0%20592.0Q613%20539%20613%20470Q613%20406%20583.5%20353.5Q554%20301%20494.5%20269.5Q435%20238%20349%20238ZM413%20470Q413%20547%20330%20547H252V394H330Q413%20394%20413%20470Z'/%3E%3Cpath%20transform='translate(1984,2210)%20scale(1,-1)'%20d='M32%20355Q32%20459%2080.5%20541.5Q129%20624%20212.0%20670.0Q295%20716%20394%20716Q494%20716%20576.5%20670.0Q659%20624%20707.0%20541.5Q755%20459%20755%20355Q755%20251%20707.0%20168.5Q659%2086%20576.0%2039.5Q493%20-7%20394%20-7Q295%20-7%20212.0%2039.5Q129%2086%2080.5%20168.5Q32%20251%2032%20355ZM556%20355Q556%20439%20512.5%20487.5Q469%20536%20394%20536Q318%20536%20275.0%20487.5Q232%20439%20232%20355Q232%20272%20275.0%20223.5Q318%20175%20394%20175Q469%20175%20512.5%20224.0Q556%20273%20556%20355Z'/%3E%3Cpath%20transform='translate(2746,2210)%20scale(1,-1)'%20d='M413%200%20273%20260H252V0H56V705H365Q450%20705%20509.0%20675.5Q568%20646%20598.0%20594.5Q628%20543%20628%20479Q628%20407%20588.5%20352.5Q549%20298%20473%20275L632%200ZM252%20394H349Q389%20394%20409.0%20413.0Q429%20432%20429%20468Q429%20502%20408.5%20521.5Q388%20541%20349%20541H252Z'/%3E%3Cpath%20transform='translate(3382,2210)%20scale(1,-1)'%20d='M587%20705V549H399V0H203V549H17V705Z'/%3E%3Cpath%20transform='translate(3961,2210)%20scale(1,-1)'%20d='M248%20705V296Q248%20239%20274.5%20208.0Q301%20177%20355%20177Q409%20177%20436.5%20208.5Q464%20240%20464%20296V705H660V296Q660%20199%20619.0%20130.5Q578%2062%20507.5%2027.5Q437%20-7%20351%20-7Q265%20-7%20197.5%2027.5Q130%2062%2091.5%20130.0Q53%20198%2053%20296V705Z'/%3E%3Cpath%20transform='translate(4648,2210)%20scale(1,-1)'%20d='M709%200H513L252%20394V0H56V705H252L513%20306V705H709Z'/%3E%3Cpath%20transform='translate(5388,2210)%20scale(1,-1)'%20d='M252%20705V0H56V705Z'/%3E%3Cpath%20transform='translate(5671,2210)%20scale(1,-1)'%20d='M587%20705V549H399V0H203V549H17V705Z'/%3E%3Cpath%20transform='translate(6250,2210)%20scale(1,-1)'%20d='M252%20705V0H56V705Z'/%3E%3Cpath%20transform='translate(6533,2210)%20scale(1,-1)'%20d='M252%20548V433H477V284H252V157H507V0H56V705H507V548Z'/%3E%3Cpath%20transform='translate(7056,2210)%20scale(1,-1)'%20d='M35%20219H244Q247%20182%20266.0%20165.0Q285%20148%20315%20148Q342%20148%20359.5%20161.5Q377%20175%20377%20199Q377%20230%20348.0%20247.0Q319%20264%20254%20285Q185%20308%20142.5%20329.5Q100%20351%2068.5%20392.5Q37%20434%2037%20501Q37%20569%2071.0%20617.5Q105%20666%20165.0%20691.0Q225%20716%20301%20716Q424%20716%20497.5%20658.5Q571%20601%20576%20497H363Q362%20529%20343.5%20545.0Q325%20561%20296%20561Q274%20561%20260.0%20548.0Q246%20535%20246%20511Q246%20491%20261.5%20476.5Q277%20462%20300.0%20451.5Q323%20441%20368%20425Q435%20402%20478.5%20379.5Q522%20357%20553.5%20316.5Q585%20276%20585%20214Q585%20151%20553.5%20101.0Q522%2051%20462.5%2022.0Q403%20-7%20322%20-7Q199%20-7%20120.0%2051.5Q41%20110%2035%20219Z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='7676'%20height='2230'%20viewBox='0%200%207676%202230'%20fill='%23fff'%3E%3Cpath%20transform='translate(0,700)%20scale(1,-1)'%20d='M703%20353Q703%20251%20657.5%20171.0Q612%2091%20528.5%2045.5Q445%200%20335%200H56V705H335Q446%20705%20529.5%20660.5Q613%20616%20658.0%20536.0Q703%20456%20703%20353ZM504%20353Q504%20440%20455.0%20487.5Q406%20535%20320%20535H252V173H320Q406%20173%20455.0%20220.0Q504%20267%20504%20353Z'/%3E%3Cpath%20transform='translate(710,700)%20scale(1,-1)'%20d='M252%20705V0H56V705Z'/%3E%3Cpath%20transform='translate(993,700)%20scale(1,-1)'%20d='M35%20219H244Q247%20182%20266.0%20165.0Q285%20148%20315%20148Q342%20148%20359.5%20161.5Q377%20175%20377%20199Q377%20230%20348.0%20247.0Q319%20264%20254%20285Q185%20308%20142.5%20329.5Q100%20351%2068.5%20392.5Q37%20434%2037%20501Q37%20569%2071.0%20617.5Q105%20666%20165.0%20691.0Q225%20716%20301%20716Q424%20716%20497.5%20658.5Q571%20601%20576%20497H363Q362%20529%20343.5%20545.0Q325%20561%20296%20561Q274%20561%20260.0%20548.0Q246%20535%20246%20511Q246%20491%20261.5%20476.5Q277%20462%20300.0%20451.5Q323%20441%20368%20425Q435%20402%20478.5%20379.5Q522%20357%20553.5%20316.5Q585%20276%20585%20214Q585%20151%20553.5%20101.0Q522%2051%20462.5%2022.0Q403%20-7%20322%20-7Q199%20-7%20120.0%2051.5Q41%20110%2035%20219Z'/%3E%3Cpath%20transform='translate(1588,700)%20scale(1,-1)'%20d='M383%20712Q515%20712%20605.0%20641.5Q695%20571%20721%20450H510Q491%20490%20457.5%20511.0Q424%20532%20380%20532Q312%20532%20271.5%20483.5Q231%20435%20231%20354Q231%20272%20271.5%20223.5Q312%20175%20380%20175Q424%20175%20457.5%20196.0Q491%20217%20510%20257H721Q695%20136%20605.0%2065.5Q515%20-5%20383%20-5Q279%20-5%20199.0%2040.5Q119%2086%2075.5%20167.5Q32%20249%2032%20354Q32%20458%2075.5%20539.5Q119%20621%20199.0%20666.5Q279%20712%20383%20712Z'/%3E%3Cpath%20transform='translate(2321,700)%20scale(1,-1)'%20d='M32%20355Q32%20459%2080.5%20541.5Q129%20624%20212.0%20670.0Q295%20716%20394%20716Q494%20716%20576.5%20670.0Q659%20624%20707.0%20541.5Q755%20459%20755%20355Q755%20251%20707.0%20168.5Q659%2086%20576.0%2039.5Q493%20-7%20394%20-7Q295%20-7%20212.0%2039.5Q129%2086%2080.5%20168.5Q32%20251%2032%20355ZM556%20355Q556%20439%20512.5%20487.5Q469%20536%20394%20536Q318%20536%20275.0%20487.5Q232%20439%20232%20355Q232%20272%20275.0%20223.5Q318%20175%20394%20175Q469%20175%20512.5%20224.0Q556%20273%20556%20355Z'/%3E%3Cpath%20transform='translate(3083,700)%20scale(1,-1)'%20d='M742%20705%20499%200H248L4%20705H214L374%20196L533%20705Z'/%3E%3Cpath%20transform='translate(3805,700)%20scale(1,-1)'%20d='M252%20548V433H477V284H252V157H507V0H56V705H507V548Z'/%3E%3Cpath%20transform='translate(4328,700)%20scale(1,-1)'%20d='M413%200%20273%20260H252V0H56V705H365Q450%20705%20509.0%20675.5Q568%20646%20598.0%20594.5Q628%20543%20628%20479Q628%20407%20588.5%20352.5Q549%20298%20473%20275L632%200ZM252%20394H349Q389%20394%20409.0%20413.0Q429%20432%20429%20468Q429%20502%20408.5%20521.5Q388%20541%20349%20541H252Z'/%3E%3Cpath%20transform='translate(0,1455)%20scale(1,-1)'%20d='M587%20705V549H399V0H203V549H17V705Z'/%3E%3Cpath%20transform='translate(579,1455)%20scale(1,-1)'%20d='M687%20705V0H491V283H252V0H56V705H252V440H491V705Z'/%3E%3Cpath%20transform='translate(1297,1455)%20scale(1,-1)'%20d='M252%20548V433H477V284H252V157H507V0H56V705H507V548Z'/%3E%3Cpath%20transform='translate(1986,1455)%20scale(1,-1)'%20d='M252%20705V0H56V705Z'/%3E%3Cpath%20transform='translate(2269,1455)%20scale(1,-1)'%20d='M709%200H513L252%20394V0H56V705H252L513%20306V705H709Z'/%3E%3Cpath%20transform='translate(3009,1455)%20scale(1,-1)'%20d='M534%20705V549H252V425H460V276H252V0H56V705Z'/%3E%3Cpath%20transform='translate(3545,1455)%20scale(1,-1)'%20d='M252%20705V0H56V705Z'/%3E%3Cpath%20transform='translate(3828,1455)%20scale(1,-1)'%20d='M709%200H513L252%20394V0H56V705H252L513%20306V705H709Z'/%3E%3Cpath%20transform='translate(4568,1455)%20scale(1,-1)'%20d='M252%20705V0H56V705Z'/%3E%3Cpath%20transform='translate(4851,1455)%20scale(1,-1)'%20d='M587%20705V549H399V0H203V549H17V705Z'/%3E%3Cpath%20transform='translate(5430,1455)%20scale(1,-1)'%20d='M252%20548V433H477V284H252V157H507V0H56V705H507V548Z'/%3E%3Cpath%20transform='translate(0,2210)%20scale(1,-1)'%20d='M32%20355Q32%20459%2080.5%20541.5Q129%20624%20212.0%20670.0Q295%20716%20394%20716Q494%20716%20576.5%20670.0Q659%20624%20707.0%20541.5Q755%20459%20755%20355Q755%20251%20707.0%20168.5Q659%2086%20576.0%2039.5Q493%20-7%20394%20-7Q295%20-7%20212.0%2039.5Q129%2086%2080.5%20168.5Q32%20251%2032%20355ZM556%20355Q556%20439%20512.5%20487.5Q469%20536%20394%20536Q318%20536%20275.0%20487.5Q232%20439%20232%20355Q232%20272%20275.0%20223.5Q318%20175%20394%20175Q469%20175%20512.5%20224.0Q556%20273%20556%20355Z'/%3E%3Cpath%20transform='translate(762,2210)%20scale(1,-1)'%20d='M349%20238H252V0H56V705H349Q434%20705%20493.5%20675.0Q553%20645%20583.0%20592.0Q613%20539%20613%20470Q613%20406%20583.5%20353.5Q554%20301%20494.5%20269.5Q435%20238%20349%20238ZM413%20470Q413%20547%20330%20547H252V394H330Q413%20394%20413%20470Z'/%3E%3Cpath%20transform='translate(1373,2210)%20scale(1,-1)'%20d='M349%20238H252V0H56V705H349Q434%20705%20493.5%20675.0Q553%20645%20583.0%20592.0Q613%20539%20613%20470Q613%20406%20583.5%20353.5Q554%20301%20494.5%20269.5Q435%20238%20349%20238ZM413%20470Q413%20547%20330%20547H252V394H330Q413%20394%20413%20470Z'/%3E%3Cpath%20transform='translate(1984,2210)%20scale(1,-1)'%20d='M32%20355Q32%20459%2080.5%20541.5Q129%20624%20212.0%20670.0Q295%20716%20394%20716Q494%20716%20576.5%20670.0Q659%20624%20707.0%20541.5Q755%20459%20755%20355Q755%20251%20707.0%20168.5Q659%2086%20576.0%2039.5Q493%20-7%20394%20-7Q295%20-7%20212.0%2039.5Q129%2086%2080.5%20168.5Q32%20251%2032%20355ZM556%20355Q556%20439%20512.5%20487.5Q469%20536%20394%20536Q318%20536%20275.0%20487.5Q232%20439%20232%20355Q232%20272%20275.0%20223.5Q318%20175%20394%20175Q469%20175%20512.5%20224.0Q556%20273%20556%20355Z'/%3E%3Cpath%20transform='translate(2746,2210)%20scale(1,-1)'%20d='M413%200%20273%20260H252V0H56V705H365Q450%20705%20509.0%20675.5Q568%20646%20598.0%20594.5Q628%20543%20628%20479Q628%20407%20588.5%20352.5Q549%20298%20473%20275L632%200ZM252%20394H349Q389%20394%20409.0%20413.0Q429%20432%20429%20468Q429%20502%20408.5%20521.5Q388%20541%20349%20541H252Z'/%3E%3Cpath%20transform='translate(3382,2210)%20scale(1,-1)'%20d='M587%20705V549H399V0H203V549H17V705Z'/%3E%3Cpath%20transform='translate(3961,2210)%20scale(1,-1)'%20d='M248%20705V296Q248%20239%20274.5%20208.0Q301%20177%20355%20177Q409%20177%20436.5%20208.5Q464%20240%20464%20296V705H660V296Q660%20199%20619.0%20130.5Q578%2062%20507.5%2027.5Q437%20-7%20351%20-7Q265%20-7%20197.5%2027.5Q130%2062%2091.5%20130.0Q53%20198%2053%20296V705Z'/%3E%3Cpath%20transform='translate(4648,2210)%20scale(1,-1)'%20d='M709%200H513L252%20394V0H56V705H252L513%20306V705H709Z'/%3E%3Cpath%20transform='translate(5388,2210)%20scale(1,-1)'%20d='M252%20705V0H56V705Z'/%3E%3Cpath%20transform='translate(5671,2210)%20scale(1,-1)'%20d='M587%20705V549H399V0H203V549H17V705Z'/%3E%3Cpath%20transform='translate(6250,2210)%20scale(1,-1)'%20d='M252%20705V0H56V705Z'/%3E%3Cpath%20transform='translate(6533,2210)%20scale(1,-1)'%20d='M252%20548V433H477V284H252V157H507V0H56V705H507V548Z'/%3E%3Cpath%20transform='translate(7056,2210)%20scale(1,-1)'%20d='M35%20219H244Q247%20182%20266.0%20165.0Q285%20148%20315%20148Q342%20148%20359.5%20161.5Q377%20175%20377%20199Q377%20230%20348.0%20247.0Q319%20264%20254%20285Q185%20308%20142.5%20329.5Q100%20351%2068.5%20392.5Q37%20434%2037%20501Q37%20569%2071.0%20617.5Q105%20666%20165.0%20691.0Q225%20716%20301%20716Q424%20716%20497.5%20658.5Q571%20601%20576%20497H363Q362%20529%20343.5%20545.0Q325%20561%20296%20561Q274%20561%20260.0%20548.0Q246%20535%20246%20511Q246%20491%20261.5%20476.5Q277%20462%20300.0%20451.5Q323%20441%20368%20425Q435%20402%20478.5%20379.5Q522%20357%20553.5%20316.5Q585%20276%20585%20214Q585%20151%20553.5%20101.0Q522%2051%20462.5%2022.0Q403%20-7%20322%20-7Q199%20-7%20120.0%2051.5Q41%20110%2035%20219Z'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: left center; mask-position: left center;
  -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
  overflow: hidden; background: var(--nudgee-navy);
}
/* mp4 cover-cropped to fill the full watermark width (through the last letter of
   OPPORTUNITIES); scaled up a touch so the subject reads larger */
.footer__video { position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center 42%; transform: scale(1.15); transform-origin: center;
  display: block; }
.footer__video--poster { z-index: 0; }
.footer__video--embed {
  z-index: 1; top: 50%; right: auto; bottom: auto; left: 50%;
  width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0;
  transform: translate(-50%, -50%) scale(1.15);
  opacity: 0; transition: opacity 0.3s ease;
}
.footer__video--embed.is-ready { opacity: 1; }
.footer__inner { position: relative; z-index: 1; min-height: 637px; }
.footer__top { display: grid; grid-template-columns: 42.4% 25.65% 31.95%; gap: 0; align-items: start; }
.footer__brand img { width: 376px; height: auto; aspect-ratio: 376 / 120; display: block; }
.footer__ct { font-family: var(--font-display); font-weight: 400; font-size: 24px; letter-spacing: 0.72px; color: #FFFFFF; margin-bottom: 18px; }   /* Figma 754:1062 — white, no transparency */
.footer__link { display: block; font-family: var(--font-body); font-size: 16px; line-height: 1.85; letter-spacing: 0.48px; color: #FFFFFF; }
a.footer__link:hover { color: var(--gold-accent); }
.footer__social { display: flex; gap: 10px; margin-top: 18px; }
/* footer social (Figma 541:612): light circle + royal glyph; hover inverts to
   royal circle + light glyph (Variant2–5 = each icon on hover) */
.footer__social .social-ic { width: 39px; height: 39px;   /* Figma 754:1062 — 39px circle, ~10px gap */
  background: var(--nudgee-light); color: var(--nudgee-royal);
  transition: background 0.3s ease-out, color 0.3s ease-out; }

.footer__social .social-ic[aria-label="Facebook"] svg  { width: 9.7px;  height: 21px; }
.footer__social .social-ic[aria-label="Instagram"] svg { width: 19.1px; height: 19.1px; }
.footer__social .social-ic[aria-label="LinkedIn"] svg  { width: 17.4px; height: 17.4px; }
.footer__social .social-ic[aria-label="YouTube"] svg   { width: 23.7px; height: 16.7px; }
.footer__social .social-ic:hover { background: var(--nudgee-royal); color: var(--nudgee-light); transform: none; }
.footer__right { display: contents; }
.footer__actions {
  grid-column: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 11px;
  padding-top: 5px;
}
.footer__actions .btn-tour { margin-right: -18px; padding-left: 24.948px; padding-right: 18px; }
.footer__actions .btn-tour__dot { left: 0; width: 16.216px; height: 16.216px; }
.footer__col--respect { grid-column: 3; margin-top: 42px; }
.footer__respect { font-family: var(--font-head); font-weight: 400; font-size: 16px; line-height: 1.74; letter-spacing: 0.48px; color: #FFFFFF; max-width: 512px; }   /* Figma — white, no transparency */
/* legal aligns with the In Respect column (3rd). */
.footer__legal {
  position: absolute;
  left: var(--pad);
  right: var(--pad);
  bottom: 4px;
  display: grid;
  grid-template-columns: 42.4% 25.65% 31.95%;
}
.footer__legal-row { grid-column: 3; display: block; }
.footer__legal p { font-family: var(--font-head); font-weight: 400; font-size: 14px; line-height: 1.58; color: rgba(234,232,227,0.6); letter-spacing: 0.42px; text-transform: uppercase; text-align: left; margin: 0; }
/* Figma 1760:577: 52px circle with a GRADIENT gold outline
   (135deg #FFDBA7 -> #C9A15B @60%), up arrow + 15px gold "Top" label. The border
   is painted with a padding-box(navy)/border-box(gradient) pair so the round
   corners are preserved (border-image would square them). */
.footer__top-btn {
  position: absolute; top: 5px; right: var(--pad); display: inline-flex;
  flex: 0 0 52px;
  width: 52px; min-width: 52px; height: 52px; aspect-ratio: 1 / 1; border-radius: 50%;
  border: 1px solid transparent;
  background: linear-gradient(var(--nudgee-ink), var(--nudgee-ink)) padding-box,
              linear-gradient(135deg, #FFDBA7 0%, #C9A15B 60%) border-box;
  color: var(--gold-accent); cursor: pointer;
  font-family: var(--font-head); font-weight: 700; font-size: 15px; line-height: 1.55; letter-spacing: 0.45px; text-transform: uppercase;
  transition: color 0.3s ease-out;
}
.footer__top-icon {
  position: absolute; top: 30.18%; left: 50%;
  width: 14.799px; height: 7.364px;
  background: currentColor;
  -webkit-mask: url('../images/icon-top-arrow.svg') center / contain no-repeat;
  mask: url('../images/icon-top-arrow.svg') center / contain no-repeat;
  transform: translate(-50%, -50%) rotate(-90deg);
}
.footer__top-label {
  position: absolute; top: 39.22%; right: 10.05%; bottom: 20.09%; left: 10.05%;
  display: flex; flex-direction: column; justify-content: center;
  text-align: center;
}
/* hover: fill with the same gold gradient, dark glyph/label */
.footer__top-btn:hover {
  background: linear-gradient(135deg, #FFDBA7 0%, #C9A15B 60%) border-box,
              linear-gradient(135deg, #FFDBA7 0%, #C9A15B 60%) padding-box;
  color: var(--nudgee-ink);
}

/* =================================================================
   MODULE: .promo  — floating Open Day CTA (Figma 2373:507–515)
   Fixed bottom-right. Two states via class: .promo--big (255×286 card) and
   .promo--small (compact thumbnail); .promo--hidden removes it. JS toggles them.
   ================================================================= */
.promo {
  position: fixed;
  right: 32px; bottom: 32px;
  z-index: 150;   /* above page content, below the opening intro (200) + menu/search (300) */
  /* Figma size is the minimum: longer CMS copy grows the card downwards from the
     image instead of being clipped by the fixed height */
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  width: 255.205px; min-height: 285.504px;
  border-radius: 5px;
  overflow: hidden;
  box-shadow: 0 0 24px rgba(0, 0, 0, 0.25);
  color: var(--nudgee-light);
  /* hidden until scrolled past the hero top (JS toggles .is-visible when scrollY > 100) */
  opacity: 0;
  transform: translateY(14px);
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.4s ease,
              width 0.5s cubic-bezier(0.16, 1, 0.3, 1), height 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.promo.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.promo--clickable { cursor: pointer; }
.promo__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 25%; }
.promo__grad { position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.85) 75.654%); }
.promo__content { position: relative; z-index: 2;
  padding: 48px 7px 9.157px 13px;   /* top padding only shows on grown cards */
  transition: opacity 0.3s ease; }
.promo__title { font-family: var(--font-display); font-weight: 400; font-size: 36px; line-height: 1; margin: 0 0 12px;
  text-wrap: balance;   /* even lines: "Nudgee / Boarding Life", not a lone last word */ }
.promo__text { font-family: var(--font-body); font-size: 16px; line-height: 1.224; margin: 0 0 18.515px; }
.promo__cta { height: 25px; }
.promo__cta.btn-tour { padding-left: 24.948px; margin-top:10px;}
.promo__cta .btn-tour__dot { left: 0; width: 16.216px; height: 16.216px; }
/* the LEARN MORE reuses .btn-tour (gold dot → arrow-circle on hover) */

/* control buttons — the × and ↗ are self-contained Figma SVGs (white circle +
   gold #C9A15B glyph, 541:1300 / 541:1307), so the button itself is transparent */
.promo__collapse, .promo__expand {
  position: absolute; top: 9px; right: 9px; z-index: 3;
  width: 19px; height: 19px; padding: 0; border: 0; background: none; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: opacity 0.3s ease, transform 0.2s ease;
}
.promo__collapse:hover, .promo__expand:hover { transform: scale(1.1); }
.promo__collapse svg, .promo__expand svg { width: 100%; height: 100%; display: block; }
.promo__close {
  position: absolute; right: 8px; bottom: 8px; z-index: 3;
  padding: 2px 7px; border: 0; border-radius: 3px; cursor: pointer;
  background: rgba(35, 31, 32, 0.2);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  font-family: var(--font-body); font-weight: 400; font-size: 10px; line-height: 1;
  letter-spacing: 0.5px; text-transform: uppercase; color: #fff;
  transition: opacity 0.3s ease, background 0.25s ease;
}
.promo__close:hover { background: rgba(35, 31, 32, 0.55); }
/* the label itself is only ~42x13, and the thumbnail around it forwards taps to
   the CTA — extend the hit area so a near miss still closes the popup */
.promo__close::before {
  content: "";
  position: absolute;
  inset: -12px -14px;
}

/* --- big state: show content + collapse, hide the small-state controls --- */
.promo--big .promo__expand, .promo--big .promo__close { opacity: 0; pointer-events: none; }
/* --- small state: a 65×65 rounded thumbnail (Figma 541:1306). overflow is
   visible so the expand icon straddles the top-right edge and CLOSE straddles
   the bottom-left edge (each half in / half out of the image). --- */
.promo--small { width: 65px; height: 65.097px; min-height: 0; overflow: visible; }
.promo--small .promo__content { position: absolute; inset: auto 0 0 0; }
.promo--small .promo__content, .promo--small .promo__collapse { opacity: 0; pointer-events: none; }
.promo--small .promo__img, .promo--small .promo__grad { border-radius: 5px; }
.promo--small .promo__grad { background: linear-gradient(180deg, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.5) 100%); }
.promo--small .promo__expand { top: -9px; right: 4px; }          /* half above the top edge */
.promo--small .promo__close { left: -18px; right: auto; bottom: 4px; }  /* half off the left edge */
/* --- hidden --- */
/* .promo{display:block} in the <=767 block is declared later with the same
   specificity, so a single class here lost and the popup stayed on screen
   after CLOSE on mobile. Two classes keep the dismissal winning everywhere. */
.promo.promo--hidden { display: none; }
@media (prefers-reduced-motion: reduce) { .promo { transition: none; } }

/* =================================================================
   RESPONSIVE  (max-width scale-down)
   ================================================================= */
/* ---- 1441px+ : laptop -> large desktop mega-menu ------------------------
   The base tracks (minmax(380,515) / minmax(320,460) / minmax(360,1fr) with
   a fixed 114px gutter) need ~1610px of inner width, so on a 1470-1512px
   laptop (13"-14" Mac) they collapsed to their minimums and the grid
   overflowed the right gutter -- the quicklinks column ran to within ~20px
   of the screen edge. Worse, the child-page column was absolutely positioned
   at a hard-coded 515px + 114px while column 2 actually started at 380 + 114,
   leaving a ~135px dead gap between the section list and its pages.
   Two fr-proportional tracks keep every boundary in the same ratio at any
   width (1089:397 outer, 515:460 inner = the 1920 design exactly), and the
   child column is derived from that same ratio so it can never drift. */
@media (min-width: 1441px) {
  .mega-menu {
    padding-left: clamp(80px, 8.4vw, 160px);
    padding-right: clamp(80px, 8.4vw, 160px);
  }
  .mega-menu__inner {
    --mm-gap: clamp(56px, calc(11.1vw - 99px), 114px);   /* 114px at 1920 */
    grid-template-columns: minmax(0, 1089fr) minmax(340px, 397fr);
    column-gap: var(--mm-gap);
  }
  .mm-parents {
    grid-column: 1;
    grid-template-columns: minmax(0, 515fr) minmax(0, 460fr);
    column-gap: var(--mm-gap);
  }
  .mm-forparents { grid-column: 2; }
  /* 515 / (515 + 460) = 0.52821 -- locked to the .mm-parents track ratio */
  .mm-item--level-1 > .mm-list--level-2 {
    left: calc((100% - var(--mm-gap)) * 0.52821 + var(--mm-gap));
    width: calc((100% - var(--mm-gap)) * 0.47179);
  }
}

/* ---- 1440: tablet / landscape iPad (Figma tablet frame 995:378 @1366) ----
   Desktop LAYOUT is kept (columns, cards, Voices peek thumbs, desktop footer);
   only the type + gutters scale down: section headings 52px (News stays 68px,
   centred), path-card labels 26px, gutters 84px, body 16px (unchanged).
   Applies ~1200–1440; desktop (>1440) and the ≤991 stack are untouched. */
@media (max-width: 1440px) {
  :root { --pad: 84px; }
  .site-header .crest { height: 104px; }
  .welcome { padding: 120px 0; }
  .welcome__heading { font-size: 52px; }
  .discover__title { font-size: 52px; }
  .paths__title { font-size: 52px; }
  .voices__title { font-size: 52px; }
  .journey__title { font-size: 52px; line-height: 1.2; }
  .tours__title { font-size: 52px; }
  .path-card__cat { font-size: 26px; }
  /* .news__title stays 68px (Figma tablet keeps the big centred News heading) */
}
@media (min-width: 992px) and (max-width: 1440px) {
  .mega-menu__inner {
	padding-top:10px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(240px, 0.9fr);
    column-gap: clamp(28px, 3vw, 44px);
  }
  .mm-parents {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: clamp(28px, 3vw, 44px);
  }
  .mm-item--level-1 > .mm-list--level-2 {
    left: calc(50% + clamp(14px, 1.5vw, 22px));
    width: calc(50% - clamp(14px, 1.5vw, 22px));
  }
  .mm-forparents {
    justify-self: stretch;
    width: 100%;
    min-width: 0;
  }
  .mm-grid {
    column-gap: clamp(16px, 2vw, 28px);
  }
  .mm-plink {
    min-width: 0;
	gap:10px;
  }
  .mm-plink span {
    max-width: 100%;
    overflow-wrap: anywhere;
	font-size:12px;
  }

}
@media (min-width: 992px) and (max-height: 850px) {
  /* Keep all 12 parent tiles visible on short desktop/landscape screens. */
  .mm-forparents__title {
    font-size: 30px;
    margin-bottom: 16px;
  }
  .mm-grid {
    row-gap: 12px;
  }
  .mm-plink {
    gap: 6px;
	margin-bottom:10px;
  }
  .mm-plink__icon {
    height: 32px;
  }
  .mm-plink span {
    font-size: 14px;
    line-height: 1.2;
  }
}
@media (min-width: 992px) and (max-height: 760px) {
  .mega-menu {
    padding-top: 24px;
    padding-bottom: 24px;
  }
  .mega-menu__close {
    width: 44px;
    height: 44px;
  }
  .mega-menu__inner {
    padding-bottom: 12px;
  }
  .mm-parent {
    min-height: 54px;
    padding-block: 5px;
    font-size: clamp(28px, 2.5vw, 34px);
    line-height: 1.2;
  }
  .mm-forparents__title {
    margin-bottom: 12px;
    font-size: 28px;
  }
  .mm-grid {
    row-gap: 11px;
  }
  .mm-plink {
    margin-bottom:10px;
  }
  .mm-plink__icon {
    height: 28px;
  }
  .mm-plink span {
    line-height: 1.15;
  }
  .mega-menu__footer {
    flex: 0 0 36px;
    align-items: center;
  }
}

/* The desktop Tours stage is 838px tall in the full composition. On shorter
   laptop screens, scale the whole Slick stage to the viewport so the image,
   panel, actions and pagination remain visible together. */
@media (min-width: 1200px) and (max-height: 869px) {
  .tours {
    --tours-compact-height: clamp(600px, calc(100vh - 32px), 838px);
    height: var(--tours-compact-height);
    min-height: var(--tours-compact-height);
  }

  .tours__slider,
  .tours__slider .slick-list,
  .tours__slider .slick-track,
  .tours__slider .slick-slide,
  .tours__slide {
    height: var(--tours-compact-height);
  }

  .tours__panel {
    top: 5%;
    bottom: 5%;
    padding-top: clamp(32px, 5vh, 40px);
    padding-bottom: clamp(32px, 5vh, 40px);
  }
}

@media (min-width: 1200px) and (max-width: 1440px) {
  /* welcome tablet (Figma 995:378): 1366×423 blue band with 84px gutters */
  .mm-item--level-1 > .mm-list--level-2 {
    width: 280px;
  }

  .welcome { height: 423px; min-height: 423px; padding: 0; }
  .welcome__inner {
    height: 100%;
    grid-template-columns: minmax(0, 686fr) minmax(0, 480fr);
    gap: clamp(24px, 2.34375vw, 32px);
    align-items: start;
    padding-top: 57px;
  }
  .welcome__heading { font-size: clamp(46px, 3.807vw, 52px); line-height: 1.2; }
  .welcome__body { min-width: 0; margin-top: 13px; }
  .welcome__text { max-width: 480px; font-size: 16px; line-height: 1.74; letter-spacing: 0.48px; }
  .btn-tour--welcome { margin-top: 22px; }
  .welcome__buttons { margin-top: 22px; }
  .welcome__buttons .btn-tour--welcome { margin-top: 0; }

  /* discover tablet (Figma 998:2784): inset photo panel, compact cards + crest */
  .discover {
    height: 891px;
    min-height: 891px;
    display: block;
    padding: 0;
    background: var(--white);
  }
  .discover__bg {
    inset: 42px 42px auto;
    height: 807px;
    overflow: hidden;
  }
  .discover__wash {
    background: linear-gradient(180deg, rgba(11, 27, 51, 0.8) 24%, rgba(11, 27, 51, 0) 100%);
  }
  .discover__inner {
    height: 100%;
    max-width: none;
    padding: 0;
  }
  .discover__head {
    position: absolute;
    left: 84px;
    right: 84px;
    top: 84px;
    grid-template-columns: minmax(0, 1.227fr) minmax(0, 1fr);
    gap: clamp(48px, calc(100vw - 1200px), 135px);
  }
  .discover__title {
    max-width: 583px;
    font-size: 52px;
    line-height: 1.2;
  }
  .discover__intro {
    max-width: 475px;
    margin: 20px 0 0;
    font-family: var(--font-head);
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: 0.48px;
  }
  .discover__cards {
    position: absolute;
    left: 84px;
    /* bottom-anchored (85px above the section bottom = the Figma 530px top for a
       276px card), so a hovered card grows UPWARDS and stays inside the photo
       panel instead of spilling onto the white below it */
    top: auto;
    bottom: 85px;
    grid-template-columns: repeat(3, 276px);
    gap: 32px;
    max-width: none;
    margin: 0;
    padding: 0;
    align-items: end;
  }
  .disc-card,
  .disc-card:focus-within {
    width: 276px;
    height: 276px;
    min-height: 276px;
    border-radius: 10px;
    background: rgba(238, 232, 217, 0.55);
    -webkit-backdrop-filter: blur(40px);
    backdrop-filter: blur(40px);
    border-color: transparent;
    box-shadow: none;
  }
  /* hover reveal also runs on small laptops (Figma's tablet frame had it off) */
  .disc-card:hover {
    width: 276px;
    height: auto;
    min-height: 344px;
    border-radius: 10px;
    background: rgba(0, 83, 155, 0.85);
    border-color: transparent;
    box-shadow: none;
  }
  .disc-card__inner,
  .disc-card:hover .disc-card__inner,
  .disc-card:focus-within .disc-card__inner {
    padding: 30px 18px;
    justify-content: center;
  }
  .disc-card__title {
    font-size: 32px;
    line-height: 1.55;
  }
  .disc-card__sub {
    font-size: 18px;
    line-height: 1.09;
    margin-top: 0;
  }
  .disc-card__body { font-size: 15px; line-height: 1.5; }
  .disc-card:hover .disc-card__body {
    max-height: 12em;
    opacity: 1;
    margin-top: 14px;
  }
  .disc-card:hover .disc-card__more {
    max-height: 60px;
    opacity: 1;
    margin-top: 16px;
    pointer-events: auto;
  }
  .disc-card:focus-within .disc-card__body,
  .disc-card:focus-within .disc-card__more {
    max-height: 0;
    opacity: 0;
    margin-top: 0;
    pointer-events: none;
  }
  /* the 3 x 276px card row is a fixed 892px from the panel's left edge in this
     band, so at 1200px the crest has to stay small or it sits on the last card
     (the old 173px one did). But a fixed 120px then HALVED against the 191px
     the >=1441 block gives at 1441 (13.281vw), which reads as a shrunken seal
     on a maximised 1440 Mac. Interpolate instead: 120px at 1200 -> 191.25px at
     1440, matching 13.281vw exactly at the boundary. The viewport grows faster
     than the crest, so the gap to the card row only widens (44px at 1200,
     213px at 1440). `right` stays 60px: measured from the 42px panel inset
     that's an 18px edge gap here vs 15px at 1441, so the seal doesn't jump
     sideways either. */
  .discover__crest {
    width: clamp(120px, calc(29.69vw - 236.3px), 191.25px);
    height: auto;
    right: 60px;
    bottom: 60px;
    opacity: 0.6;
  }

  /* paths tablet (Figma 995:378 / 998:2800): 633px navy field with compact card rail */
  .paths {
    height: 771px;
    min-height: 771px;
    padding: 0;
    background: var(--white);
  }
  /* everything here is absolutely positioned, so the optional curriculum button
     below the rail needs the section to be taller (keeps the same 72px bottom
     gap). Only when the CMS button is present. */
  .paths:has(.paths__track-wrap .link-dot) {
    height: 875px;
    min-height: 875px;
  }
  .paths::before {
    height: 633px;
    background: #0b1b33;
  }
  .paths__stripe {
    /* keep the base bar image + gradient mask; only the box dimensions change */
    top: 0;
    right: 0;
    width: 336px;
    max-width: none;
    height: 633px;
    opacity: 0.5;
    z-index: 1;
  }
  .paths__top {
    position: absolute;
    left: 0;
    right: 0;
    top: 46px;
    padding-left: 84px;
    padding-right: 84px;
    z-index: 3;
    pointer-events: none;
  }
  .paths__intro {
    width: 784px;
    max-width: 784px;
  }
  .paths__eyebrow {
    font-size: 18px;
    line-height: 1.55;
    margin-bottom: 16px;
  }
  .paths__title {
    font-weight: 400;
    font-size: 52px;
    line-height: 1.2;
    margin-bottom: 22px;
  }
  .paths__lead {
    max-width: 784px;
    font-family: var(--font-head);
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: 0.48px;
    color: var(--nudgee-light);
    margin-bottom: 55px;
  }
  .paths__filters {
    /* Figma 998:2809 is 697px wide, but .is-active adds min-width:168px, so the
       Sport/Academic states need ~714px — grow rather than spill the pill. */
    min-width: 697px;
    width: auto;
    max-width: 100%;
    height: 58px;
    padding: 2px;
    gap: 0;
    border-radius: 38px;           /* gradient outline inherited from the base rule */
    pointer-events: auto;
  }
  .paths__filter {
    height: 52px;
    /* 38px pushed the widest state (Sport active) past the 697px bar; the pills
       then share the bar evenly so none of them leaves a gap at either end */
    padding: 0 32px;
    flex: 1 1 auto;
    font-size: 16px;
    letter-spacing: 0;
  }
  .paths__filter.is-active {
    min-width: 168px;
  }
  .paths__feature {
    top: 0;
    left: 392px;
    right: auto;
    bottom: auto;
    width: 974px;
    height: 633px;
    overflow: hidden;
    z-index: 2;
    pointer-events: none;
  }
  .paths__feature > img {
    display: block;
    position: absolute;
    left: 265px;
    top: 26px;
    width: auto;
    height: 570px;
    max-width: none;
    z-index: 1;
  }
  .paths__arrows {
    right: 185px;
    top: 286px;
    bottom: auto;
    gap: 10px;
    z-index: 4;
    pointer-events: auto;
  }
  .paths__arrow {
    width: 52px;
    height: 52px;
  }
  .paths__track-wrap {
    position: absolute;
    left: 0;
    right: 0;
    top: 373px;
    margin-top: 0;
    z-index: 3;
  }
  .paths__track {
    gap: 33px;
    padding: 11px 84px 9px;
  }
  .path-card {
    width: 275px;
    height: 326px;
    border-radius: 20px;
    box-shadow: 0 0 24px rgba(0, 0, 0, 0.25);
  }
  /* cards follow the CMS structure order at every width — the old nth-child
     order rules came from the static mockup's placeholder cards */
  .path-card__foot {
    left: 19px;
    right: 10px;
    bottom: 10px;
  }
  .path-card__cat {
    font-size: 24px;
    line-height: 1.3;
  }
  .path-card__arrow {
    width: 52px;
    height: 52px;
  }
  .path-card__arrow svg {
    width: 20px;
    height: 20px;
  }

  /* voices tablet (Figma 999:550): fixed 1366 composition with 84px margins */
  .voices {
    height: 1020px;
    min-height: 1020px;
    padding: 0;
    background: var(--white);
  }
  .voices__band {
    left: 0;
    right: 0;
    top: 234px;
    bottom: auto;
    height: 786px;
    background: var(--nudgee-light);
  }
  .voices__wrap {
    display: block;
    max-width: none;
    height: 1020px;
    min-height: 1020px;
    margin: 0;
    padding: 0;
  }
  .voices__intro {
    position: absolute;
    left: 85px;
    top: 326px;
    width: 376px;
    margin: 0;
  }
  .voices__eyebrow {
    font-size: 18px;
    line-height: 1.55;
    margin-bottom: 11px;
  }
  .voices__title {
    width: 376px;
    font-size: 52px;
    line-height: 1.2;
    margin-bottom: 24px;
  }
  .voices__lead {
    width: 376px;
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: 0.48px;
  }
  .voices__crest {
    left: 85px;
    top: 765px;
    bottom: auto;
    width: 183px;
    opacity: 0.9;
  }
  .voices__stage {
    display: block;
    position: absolute;
    inset: 0;
  }
  .voices__slider {
    position: absolute;
    left: 496px;
    top: 48px;
    width: 480px;
    height: 802px;
    flex: none;
    margin: 0;
    max-width: none;
    align-self: auto;
  }
  .voices__slider .slick-list,
  .voices__slider .slick-track,
  .voices__slider .slick-slide,
  .voices__slide {
    height: 802px;
  }
  .voices__card {
    width: 480px;
   /* height: 802px; */
    padding: 18px;
    border: 2px solid var(--nudgee-royal);
    border-radius: 27px;
  }
  .voices__video {
    width: 442px;
    height: 431px;
    aspect-ratio: auto;
    border: 2px solid var(--white);
    border-radius: 20px;
  }
  .voices__play {
    right: 10px;
    bottom: 10px;
  }
  .voices__body {
    padding: 20px 6px 0;
  }
  .voices__mark {
    width: 54px;
    height: 45px;
    margin-bottom: 16px;
  }
  .voices__quote {
    width: 436px;
    font-size: 18px;
    line-height: 1.74;
    letter-spacing: 0.54px;
  }
  .voices__name {
    font-size: 38px;
    line-height: 1.1;
    margin-top: 18px;
  }
  .voices__year {
    font-size: 16px;
    line-height: 1.09;
    margin-top: 4px;
  }
  .voices__arrow {
    display: inline-flex;
    position: absolute;
    top: 879px;
    width: 52px;
    height: 52px;
    margin: 0;
    z-index: 5;
  }
  .voices__arrow--prev {
    left: 840px;
    right: auto;
    top:auto;
    bottom:150px;
  }
  .voices__arrow--next {
    left: 924px;
    right: auto;
    top:auto;
    bottom:150px;
  }
  .voices__queue {
    position: absolute;
    inset: 0;
    min-width: 0;
    pointer-events: none;
  }
  .voices__peek {
    width: 170px;
    height: 181px;
    border-radius: 20px;
    pointer-events: auto;
  }
  .voices__peek--top {
    left: 1112px;
    right: auto;
    top: 432px;
  }
  .voices__peek--bottom {
    left: 1008px;
    right: auto;
    top: 661px;
  }

  /* news tablet: keep the 39px Figma circles, but enlarge the SVG marks inside */
  .news__social .social-ic svg {
    width: 28px;
    height: 28px;
  }
  .news__links {
    margin-top: 31px;
  }
}
/* In the 1200-1440 layout the full-size deep-etch student crowds the lead text
   and filter (designer/client feedback). Start him at a fixed x clear of the
   copy and scale his height with the viewport (460px at 1366), feet kept on the
   596px baseline; his shoulder may crop at the right edge near 1200. */
@media (min-width: 1200px) and (max-width: 1440px) {
  .paths__feature > img {
    left: 429px;
    top: calc(596px - 33.67vw);
    height: 33.67vw;
  }
  /* arrows follow him onto his right shoulder, clamped inside the viewport */
  .paths__arrows {
    top: 300px;
    right: auto;
    left: min(calc(429px + 23.85vw), calc(100vw - 542px));
  }

  /* personalise button: push the navy field, student (arrows sit inside him) and rail down 84px */
  .paths:has(.paths__personalise) { height: 855px; min-height: 855px; }
  .paths:has(.paths__personalise):has(.paths__track-wrap .link-dot) { height: 959px; min-height: 959px; }
  .paths:has(.paths__personalise)::before,
  .paths:has(.paths__personalise) .paths__stripe { height: 717px; }
  .paths:has(.paths__personalise) .paths__feature { top: 84px; }
  .paths:has(.paths__personalise) .paths__track-wrap { top: 457px; }
}
@media (max-width: 1199px) {
  :root { --pad: 64px; }         /* smaller landscape tablets: tighten the gutters */
  .welcome__inner { gap: 60px; }
  .journey { min-height: 760px; }
  .journey__inner { padding: 100px var(--pad) 96px; }
  /* headings inherit the 52px tablet sizes from the ≤1440 block */
  /* The 784px desktop text column (6/12) would run the lead under the featured
     student at this width; keep the narrower tablet measure until the layout
     stacks at 991. */
  .paths__intro { max-width: 600px; }
}

/* Bridge the tablet and desktop Journey heights without changing the 1200px+
   Figma composition: 760px at 992px scales continuously to 888px at 1200px. */
@media (min-width: 992px) and (max-width: 1199px) {
  .journey {
    min-height: clamp(760px, calc(61.5385vw + 149.538px), 888px);
  }
}

/* Paths tablet: keep the deep-etch student within the right side of the navy
   panel and scale the carousel cards between their desktop and phone sizes. */
@media (min-width: 768px) and (max-width: 1199px) {
  .paths {
    padding-top: 72px;
    padding-bottom: 64px;
  }
  .paths::before,
  .paths__stripe {
    height: calc(100% - 205px);
  }
  .paths__top {
    padding-right: var(--pad);
    padding-left: var(--pad);
    pointer-events: none;
  }
  .paths__intro {
    position: relative;
    z-index: 3;
    width: min(54%, 560px);
    max-width: none;
  }
  .paths__feature {
    top: 0;
    right: 0;
    bottom: auto;
    width: 58%;
    height: 510px;
    overflow: hidden;
    aspect-ratio: auto;
    pointer-events: none;
    z-index:1;
  }
  /* Scale the student with the viewport (feet stay behind the cards at 526px)
     so he clears the lead text and filter pill. */
  .paths__feature > img {
    position: absolute;
    top: calc(526px - 34vw);
    right: -5%;
    width: auto;
    height: 34vw;
    max-width: none;
  }
  .paths__filters {
    pointer-events: auto;
  }
  .paths__arrows {
    top: 325px;
    right: var(--pad);
    bottom: auto;
    gap: 10px;
    pointer-events: auto;
  }
  .paths__arrow {
    width: 44px;
    height: 44px;
  }
  .paths__track-wrap { margin-top: 42px; }
  .paths__track {
    gap: 18px;
    padding: 6px var(--pad) 10px;
  }
  .path-card {
    width: 260px;
    height: 308px;
    border-radius: 14px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.22);
  }
  .path-card__foot {
    left: 16px;
    right: 10px;
    bottom: 10px;
  }
  .path-card__cat {
    font-size: 24px;
    line-height: 1.35;
  }
  .path-card__arrow {
    width: 42px;
    height: 42px;
  }
  .path-card__arrow svg {
    width: 17px;
    height: 17px;
  }
}
/* personalise button: at 992-1199 the student's feet tuck behind the rail, so he
   (and the arrows inside his box) follow it down; at 768-991 he stays above the
   filter row and only the arrows move, keeping the same gap to the cards. */
@media (min-width: 992px) and (max-width: 1199px) {
  .paths:has(.paths__personalise) .paths__feature { top: 84px; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .paths:has(.paths__personalise) .paths__arrows { top: 409px; }
}
/* 768-991: the filter pill spans most of the width, so the student sits above
   its row instead of behind it, fading out at the bottom. */
@media (min-width: 768px) and (max-width: 991px) {
  .paths__feature > img {
    top: calc(390px - 34vw);
    -webkit-mask-image: linear-gradient(180deg, #000 78%, transparent 100%);
            mask-image: linear-gradient(180deg, #000 78%, transparent 100%);
  }
}
/* ---- 991: columns stack (tablet) ---- */
@media (max-width: 991px) {
  :root { --pad: 40px; }
  .site-header .crest { height: 92px; }
  .hero__headline-svg { width: 260px; }

  /* welcome: single column; infinity arc drops to a subtle bottom-right decoration */
  .welcome { padding: 96px 0; }
  .welcome__inner { grid-template-columns: 1fr; gap: 40px; }
  .welcome__heading { font-size: 50px; }

  /* discover: stack head + cards into one column. No hover on touch, so each card
     shows its content permanently (royal, body + Learn More visible). */
  .discover { height: auto; min-height: 0; padding: 78px 0 0; }
  .discover__head { grid-template-columns: 1fr; gap: 22px; }
  .discover__intro { max-width: none; margin-left: 0; }
  .discover__cards { grid-template-columns: 1fr; gap: 18px; max-width: none;
    margin: 42px 0 0; padding-bottom: 64px; align-items: stretch; }
  .disc-card { min-height: 0; background: var(--nudgee-royal);
    -webkit-backdrop-filter: none; backdrop-filter: none; border-color: transparent; }
  .disc-card__body { max-height: 16em; opacity: 1; margin-top: 16px; }
  .disc-card__more { max-height: 60px; opacity: 1; margin-top: 20px; pointer-events: auto; }
  .discover__crest { width: 150px; height: 150px; right: 28px; bottom: 22px; opacity: 0.4; }
  .discover.is-inview .dbg, .discover.is-inview .dsubj { animation: none; } /* save battery on mobile */

  /* paths: stack intro above the featured image */
  .paths__top { grid-template-columns: 1fr; gap: 32px; }
  .paths__intro { max-width: none; }
  .paths__feature { aspect-ratio: 16 / 9; }

  /* journey */
  .journey { min-height: 620px; }
  .journey__inner { padding: 84px var(--pad) 72px; }
  .journey__title { font-size: 46px; line-height: 1.14; }

  /* voices: stack intro over the single card; drop the peek thumbs + side arrows */
  .voices { padding: 56px 0 64px; }
  .voices__band { left: 16px; right: 16px; top: 24px; bottom: 24px; }
  .voices__wrap { flex-direction: column; align-items: stretch; gap: 0;
    min-height: 0; padding: 46px 32px 40px; }
  .voices__intro { flex: none; margin: 0 0 28px; }
  .voices__arrow, .voices__queue { display: none; }
  .voices__slider { flex: none; width: 100%; max-width: 420px; margin: 0 auto; align-self: center; }
  .voices__crest { display: none; }

  .news__title { font-size: 52px; }
  .news__grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }

  .tours, .tours__slider, .tours__slider .slick-slide, .tours__slide { height: 780px; min-height: 0; }
  .tours__panel { top: auto; bottom: 0; right: 0; left: 0; width: 100%;
    border-radius: 0; padding: 34px var(--pad) 40px; justify-content: flex-start;
    background: rgba(0,83,155,0.8); }
  .tours__title { font-size: 44px; margin-bottom: 16px; }
  .tours__eyebrow { font-size: 26px; }
  .tours__dots { left: 50%; transform: translateX(-50%); right: auto; bottom: auto; top: 20px; }
 
  .footer__top { grid-template-columns: 1fr 1fr; gap: 40px; }
  .footer__brand { grid-column: 1 / -1; }
  .footer__actions { grid-column: auto; }
  .footer__col--respect { grid-column: 2; margin-top: 0; }
  .footer__legal { position: static; left: auto; right: auto; bottom: auto; display: block; width: auto; margin-top: 44px; }
  .footer__legal-row { grid-column: auto; display: block; }
  .footer__reveal { width: 92%; left: 4%; bottom: 18px; }
  .site-footer { padding-bottom: 320px; }
  .mega-menu { padding: 18px var(--pad) 16px; }
  .mega-menu__inner { grid-template-columns: 1fr; gap: 0; align-content: start;
    overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 16px 0 16px; }
  .mm-parents { display: block; grid-column: auto; position: static; }
  .mm-forparents { grid-column: auto; justify-self: auto; width: auto; }
  .mm-parent {
    min-height: 51px;
    font-size: 24px;
    line-height: 1.25;
    padding: 0;
    white-space: normal;
    cursor: pointer;
    align-items: center;
  }

  .mm-item--level-1 > .mm-list--level-2 { position: static; top: auto; left: auto; width: auto; }
  .mm-children { display: none; gap: 10px; padding: 6px 0 16px 18px;
    border-bottom: 1px solid rgba(234,232,227,0.16); margin-bottom: 6px; }
  .mm-item.is-open > .mm-children { display: flex; }
  .mm-child { font-size: 16px; line-height: 1.55; }
  .mm-child--3rd { font-size: 15px; line-height: 1.5; }
  .mm-list--level-3 { padding-left: 20px; }
  .mm-forparents { display: none; margin-top: 4px; }
  .mm-forparents__title { text-align: left; font-size: 24px; margin-bottom: 26px; }
  .mm-grid { gap: 30px 12px; }
  .mm-plink span { font-size: 15px; letter-spacing: 0.45px; }
  .mega-menu__footer {
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
    gap: clamp(12px, 4vw, 24px);
    padding-top: 18px;
    flex-direction: row-reverse;
    justify-content: center;
    align-items: center;
  }
  .mega-menu.is-parents-view .mm-parents { display: none; }
  .mega-menu.is-parents-view .mm-forparents { display: block; }
  .mm-toggle { display: inline-flex; align-items: center; gap: 9px;
    position: absolute; left: 0; top: 50%; transform: translateY(-50%); z-index: 2;
    background: none; border: 0; padding: 0; cursor: pointer;
    font-family: var(--font-head); font-weight: 700; font-size: 15px;
    letter-spacing: 0.45px; text-transform: uppercase; color: #cda770; }
  .mm-toggle__ico { display: inline-flex; width: 16px; height: 16px; transition: transform 0.3s ease; }
  .mm-toggle__ico svg { width: 100%; height: 100%; }
  .mega-menu.is-parents-view .mm-toggle__ico { transform: rotate(180deg); }  
  .search-overlay__inner { padding-left: var(--pad); padding-right: var(--pad); }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .site-footer { min-height: 0; padding-bottom: 320px; }
  .site-footer .footer__inner { min-height: 0; }
  .footer__top { grid-template-columns: 1fr 1fr; gap: 40px; }
  .footer__brand { grid-column: 1 / -1; }
  .footer__actions { grid-column: auto; }
  .footer__col--respect { grid-column: 2; margin-top: 0; }
  .footer__legal {
    position: static;
    left: auto;
    right: auto;
    bottom: auto;
    display: block;
    width: auto;
    margin-top: 60px;
  }
  .footer__legal-row { grid-column: auto; display: block; }
  .footer__reveal { width: 92%; left: 4%; bottom: 18px; }
}

@media (min-width: 1200px) and (max-width: 1279px) {
  .site-footer { min-height: 760px; }
  .site-footer .footer__inner { min-height: 700px; }
}

/* Keep the acknowledgement centred in the available third-column space
   between the footer CTAs and legal copy on laptop/compact desktop screens. */
@media (min-width: 1200px) and (max-width: 1536px) {
  .footer__right {
    grid-column: 3;
    display: flex;
    flex-direction: column;
    height: 589px;
  }
  .footer__right .footer__actions { grid-column: auto; flex: 0 0 auto; }
  .footer__right .footer__col--respect {
    grid-column: auto;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: center;
    min-height: 0;
    margin-top: 0;
  }
}

@media (min-width: 1200px) and (max-width: 1279px) {
  .footer__right { height: 630px; }
}

@media (min-width: 1280px) and (max-width: 1399px) {
  .footer__right { height: 567px; }
}

/* Discover follows the mobile composition throughout the tablet range: the
   image is a separate top band and the content/cards flow below it. */
@media (min-width: 768px) and (max-width: 1199px) {
  .discover {
    --discover-tablet-bg-height: clamp(300px, 35vw, 420px);
    --discover-crest-size: 120px;
    --discover-crest-inset: 20px;
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: 0;
    padding: 0 0 56px;
    background: var(--nudgee-ink);
  }

  .discover__bg {
    position: relative;
    inset: auto;
    height: var(--discover-tablet-bg-height);
    flex: 0 0 auto;
    border-radius: 0;                /* full-width band here */
  }

  .discover__inner {
    height: auto;
    padding: 42px var(--pad) 0;
  }

  .discover__head {
    position: static;
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .discover__title {
    max-width: 12em;
    font-size: clamp(44px, 4.4vw, 52px);
    line-height: 1.2;
  }

  .discover__intro {
    max-width: 720px;
    margin: 0;
    font-size: 16px;
    line-height: 1.74;
  }

  .discover__cards {
    position: static;
    display: flex;
    grid-template-columns: none;
    max-width: none;
    margin: 36px 0 0;
    padding: 0 0 10px;
    gap: 16px;
    align-items: stretch;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-overflow-scrolling: touch;
  }

  .discover__cards::-webkit-scrollbar {
    display: none;
  }

  .disc-card,
  .disc-card:hover,
  .disc-card:focus-within {
    flex: 0 0 clamp(238px, 28vw, 300px);
    width: auto;
    height: 230px;
    min-height: 230px;
    scroll-snap-align: start;
    border-color: transparent;
    border-radius: 10px;
    background: var(--nudgee-royal);
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  .disc-card__inner,
  .disc-card:hover .disc-card__inner,
  .disc-card:focus-within .disc-card__inner {
    justify-content: center;
    padding: 24px 22px;
  }

  .disc-card__title {
    font-size: 28px;
  }

  .disc-card__sub {
    margin-top: 4px;
    font-size: 16px;
  }

  .disc-card__body,
  .disc-card__more {
    display: none;
  }

  /* keep the seal inside the photo band. The offset is derived from the band
     height + the crest's own size, so it holds across 768-1199 and cannot
     desync if either value is retuned (the old fixed -70px on a 120px crest
     hung 50px of it below the band onto the navy). */
  .discover__crest {
    top: calc(
      var(--discover-tablet-bg-height) - var(--discover-crest-size) - var(--discover-crest-inset)
    );
    right: var(--pad);
    bottom: auto;
    width: var(--discover-crest-size);
    height: auto;
    opacity: 0.5;
  }
}

/* ---- 767: mobile / tablet-portrait (Figma mobile frame is 360px, 30px gutters) ---- */
@media (max-width: 767px) {
  :root { --pad: 30px; }
  .site-header .container { padding-top: 20px; }
  .site-header .crest { height: 72px; }
  .header-actions .btn-tour { display: none; } /* nav CTAs collapse into the menu on mobile */
  .header-actions { gap: 14px; }
  .icon-btn { width: 44px; height: 44px; }
  .site-header.is-fixed .container {
    padding-top: 8px;
    padding-bottom: 8px;
    padding-left: var(--pad);
    padding-right: var(--pad);
  }
  .site-header.is-fixed .crest { height: 59px; }
  .site-header.is-fixed .header-actions { gap: 21px; }
  .site-header.is-fixed .icon-search {
    width: 52px;
    height: 52px;
    margin-right: 0;
  }
  .site-header.is-fixed .icon-menu {
    width: 53px;
    height: 53px;
  }
  .promo {
    right: 16px; bottom: 84px;
    /* wider than the 176px Figma card so the copy stops stacking into 1-2 words
       per line; still leaves a clear margin on the narrowest phones */
    width: min(240px, calc(100vw - 96px)); min-height: 196px;
    border-radius: 6px;
    z-index: 130; /* below the fixed mobile CTA bar, but placed above it */
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
  }
  .promo__img { object-position: center 24%; }
  .promo__grad { background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.85) 75.654%); }
  .promo__content { padding: 38px 10px 12px 12px; }
  .promo__title { font-size: 24px; line-height: 1; margin-bottom: 7px; }
  .promo__text { font-size: 11px; line-height: 1.35; margin-bottom: 10px; }
  .promo__cta { height: 28px; font-size: 12px; letter-spacing: 0.36px; }
  .promo__cta.btn-tour { padding-left: 22px; padding-right: 14px; }
  .promo__cta .btn-tour__dot { width: 14px; height: 14px; left: 2px; }
  .promo__cta::after { width: 28px; height: 28px; background-size: 13px; }
  .promo__collapse, .promo__expand { top: 7px; right: 7px; width: 20px; height: 20px; }
  .promo__close { font-size: 9px; right: 6px; bottom: 6px; padding: 2px 6px; }
  .promo__close::before { inset: -16px -18px; }   /* >=44px touch target */
  .promo--small { width: 58px; height: 58px; min-height: 0; right: 18px; bottom: 86px; }
  .promo--small .promo__expand { top: -9px; right: 3px; }
  .promo--small .promo__close { left: -17px; bottom: 3px; }

  /* iOS WebKit misplaces CSS-transformed SVG text inside masks. Use a pre-sized
     mobile mask so the headline remains centred in Safari and Chrome on iPhone. */
  .opening__masktext--desktop { display: none; }
  .opening__masktext--mobile {
    display: inline;
    letter-spacing: 0.55px;
    transform: none;
  }
  .opening.is-ios-webkit.is-revealing .opening__masktext--mobile { transform: none; }
  /* the opening loop is a landscape SVG blown up by the portrait `slice` scale —
     shrink it around its own centre so it doesn't sprawl the whole screen */
  /* hero (mobile 562:4611): centred headline over a wide gold loop + bottom CTA bar */
  .hero__headline { left: 50%; right: auto; transform: translateX(-50%);
    bottom: 92px; width: 300px; text-align: center; }
  .hero__headline-svg { width: 300px; margin: 0 auto; }
  /* Fixed bottom CTA bar: hidden initially and while moving down; JS adds
     .is-visible only after a deliberate upward scroll. */
  .mobile-cta-bar { display: flex; align-items: center; justify-content: space-between;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 140;
    height: 64px; padding: 0 30px; background: var(--nudgee-ink);
    opacity: 0; transform: translate3d(0, 100%, 0); pointer-events: none;
    transition: transform 0.3s ease-out, opacity 0.3s ease-out;
    will-change: transform, opacity; }
  .mobile-cta-bar.is-visible {
    opacity: 1; transform: translate3d(0, 0, 0); pointer-events: auto;
  }
  .mobile-cta-bar .btn-tour { display: inline-flex; font-size: 15px; }
  @media (prefers-reduced-motion: reduce) {
    .mobile-cta-bar { transition: none; }
  }

  /* welcome (mobile 547:2080): 36px heading, 16px body */
  .welcome { padding: 72px 0; }
  .welcome__heading { font-size: 34px; }   /* homepage section headings are 34px on mobile */
  .welcome__text { font-size: 16px; }
  /* welcome loop keeps the bottom-band placement from ≤991 (Figma 547:2612) */

  /* discover (mobile 547:2047): photo becomes a top band, dark section below holds
     the heading/body/cards; cards become a compact horizontal-scroll row */
  .discover { --discover-mobile-bg-height: 234px;
    display: flex; flex-direction: column; background: var(--nudgee-ink);
    height: auto; min-height: 0; padding: 0 0 44px; }
  .discover__bg { position: relative; inset: auto;
    height: var(--discover-mobile-bg-height); flex: 0 0 auto; overflow: hidden; border-radius: 0; }
  /* Mobile keeps the two-layer composition from Figma 675:757/675:758: the
     background photo carries the navy linear blend (.discover__wash) and the
     deep-etch PNG sits on top of that blend so the students pop forward — the same
     model as desktop, not a flat single image.
     Both default layers share Figma's image transform (w 157.85% / h 161.97%,
     offset -18.02% / -50.18%), which zooms ~1.58x into the group. It is expressed
     as height + auto width, NOT width%, so the aspect ratio stays locked at every
     phone width (the band width tracks the viewport but its height is fixed 234px,
     so a percentage width would stretch the image on anything wider/narrower than
     the 360px design frame). height/top percentages resolve against that fixed
     234px, so the zoom and vertical crop are stable across devices. */
  .discover__bg .dbg--default,
  .discover__bg .dsubj--default {
    inset: auto;
    left: -18.02%;
    top: -50.18%;
    width: auto;
    height: 161.97%;
    max-width: none;
    opacity: 1;
  }
  /* No hover on touch: drop the three hover-state photos AND their deep-etch PNGs
     from the render tree entirely, so phones decode only the default pair instead
     of eight large bitmaps. */
  .discover__bg .dbg:not(.dbg--default),
  .discover__bg .dsubj:not(.dsubj--default) { display: none; }
  .discover.is-inview .dbg, .discover.is-inview .dsubj { animation: none; }
  .discover__inner { padding: 26px var(--pad) 0; }
  .discover__head { grid-template-columns: 1fr; gap: 14px; }
  .discover__title { font-size: 34px; line-height: 1.2; }
  .discover__intro { font-size: 16px; line-height: 1.74; max-width: none; margin-left: 0; }
  .discover__crest { width: 79px; height: auto; right: 30px;
    top: calc(var(--discover-mobile-bg-height) - 88px); bottom: auto; opacity: 0.5; }
  /* compact horizontal-scroll cards (Figma 675:817-826): 238×193 tiles, title + sub only */
  .discover__cards { display: flex; grid-template-columns: none; overflow-x: auto;
    gap: 10px; max-width: none; margin: 28px 0 0; padding: 0 var(--pad) 10px;
    align-items: stretch; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
  .discover__cards::-webkit-scrollbar { display: none; }
  .disc-card { flex: 0 0 238px; height: 193px; min-height: 193px; scroll-snap-align: start;
    background: var(--nudgee-royal); -webkit-backdrop-filter: none; backdrop-filter: none;
    border-color: transparent; border-radius: 10px;
    transition: background 0.4s ease, border-color 0.4s ease; }
  /* Touch browsers can retain :hover after a tap, and focusing a card link would
     fire the desktop :focus-within expansion. Keep the tiles at ONE stable size in
     every interaction state — no grow, no sticky expand, no focus-within lock. */
  .disc-card:hover, .disc-card:focus-within {
    height: 193px; min-height: 193px; box-shadow: none; }
  .disc-card__inner { justify-content: center; padding: 22px 20px; }
  .disc-card__title { font-size: 24px; }
  .disc-card__sub { font-size: 16px; }
  /* mobile shows only the title + subtext — the description and Learn More are
     hidden (Figma 675:818-826; designer doc: hide description, tap to navigate) */
  .disc-card__body, .disc-card__more { display: none; }

  /* paths (mobile 547:3122 / 547:3246): 30px gutters, a compact filter,
     238x284 cards and a 10px rail gap. The navy field finishes behind the
     cards, leaving the lower card edge on white exactly as in the mobile frame. */
  .paths { padding: 118px 0 97px; }
  .paths::before { height: auto; bottom: 192px; }
  .paths__stripe { display: none; }
  .paths__top { padding-left: var(--pad); padding-right: var(--pad); z-index: 4; }
  .paths__intro { width: 100%; max-width: 300px; }
  .paths__eyebrow { font-size: 18px; line-height: 1.55; margin-bottom: 19px; }
  .paths__title { font-size: 34px; line-height: 1.2; margin-bottom: 30px; }
  .paths__lead { font-size: 16px; line-height: 1.74; margin-bottom: 28px; }

  /* Figma's mobile filter is shown as a collapsed, single-value control. The
     existing buttons become a vertical popover when JS adds .is-open. */
  .paths__filters { position: relative; width: 211px; height: 49px;
    display: flex; flex-direction: column; flex-wrap: nowrap; padding: 2px;
    overflow: hidden; border-radius: 26px; z-index: 5; }
  .paths__filters.is-open { overflow: visible; border-radius: 26px 26px 10px 10px; }
  .paths__filter { flex: 0 0 43px; width: 100%; height: 43px; padding: 0 38px 0 16px;
    font-size: 15px; text-align: center; color: var(--white);
    background: var(--nudgee-ink); }
  .paths__filter.is-active { order: -1; background: var(--gold-btn); }
  .paths__filters.is-open .paths__filter:not(.is-active) {
    border-radius: 0; border-top: 1px solid rgba(234, 232, 227, 0.16); }
  .paths__filters.is-open .paths__filter:last-of-type { border-radius: 0 0 10px 10px; }
  .paths__filters::before, .paths__filters::after {
    content: ""; position: absolute; right: 18px; z-index: 2;
    width: 6px; height: 6px; border-top: 1px solid var(--white);
    border-right: 1px solid var(--white); pointer-events: none; }
  .paths__filters::before { top: 15px; transform: rotate(-45deg); }
  .paths__filters::after { bottom: 14px; transform: rotate(135deg); }

  /* The deep-etch student occupies the upper-right photo field in the mobile
     composition; text remains above it through the existing z-index stack. */
  .paths__feature { top: 0; right: 0; bottom: auto; width: 100%; height: 258px;
    aspect-ratio: auto; overflow: hidden; z-index: 1; pointer-events: none; }
  .paths__feature > img { position: absolute; top: 8px; right: -74px;
    width: auto; height: 270px; max-width: none; opacity: 0.62;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 52%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 52%, transparent 100%); }
  .paths__arrows { display: none; }

  .paths__track-wrap { margin-top: 30px; }
  .paths__track { gap: 10px; padding: 0 var(--pad); scroll-snap-type: x mandatory;
    /* without this, snapping aligns the first card to the scrollport edge and
       swallows the gutter, so it sat flush to the screen edge */
    scroll-padding-left: var(--pad);
    -webkit-overflow-scrolling: touch; touch-action: pan-x pan-y; }
  .path-card { width: 238px; height: 284px; border-radius: 10px;
    scroll-snap-align: start; box-shadow: 0 0 24px rgba(0, 0, 0, 0.25); }
  .path-card__foot { left: 10px; right: 10px; bottom: 10px; }
  .path-card__cat { font-size: 22px; line-height: 1.55; }
  .path-card__arrow { width: 33px; height: 33px; }
  .path-card__arrow svg { width: 14px; height: 14px; }

  /* voices (mobile 552:3797 / 552:3809): the cream band stops behind the card;
     the card and controls continue over the section's white lower field. */
  .voices { height: 935px; min-height: 935px; padding: 0;
    background: var(--white); }
  .voices__band { left: 0; right: 0; top: 0; bottom: auto; height: 758px;
    background: var(--nudgee-light); }
  .voices__wrap { height: 935px; min-height: 935px; padding: 42px var(--pad) 45px;
    overflow: visible; }
  .voices__intro { margin: 0 0 20px; position: relative; z-index: 2; }
  .voices__eyebrow { font-size: 18px; margin-bottom: 11px; }
  .voices__title { font-size: 34px; margin-bottom: 36px; }
  .voices__crest { display: block; width: 134px; height: 122px;
    left: auto; right: 10px; top: 22px; bottom: auto; opacity: 0.5; }
  .voices__stage { display: block; position: relative; flex: 0 0 599px;
    width: 100%; height: 599px; }
  .voices__slider { flex: 0 0 100%; width: 100%; max-width: none; height: 599px;
    margin: 0; align-self: stretch; }
  .voices__slider .slick-list { width: 100%; height: 599px; }
  .voices__slider .slick-track, .voices__slider .slick-slide { height: 599px; }
  .voices__slide { width: 100%; height: 599px; }
  .voices__card { width: 100%; height: 599px; padding: 10px;
    border: 2px solid var(--nudgee-royal); border-radius: 10px; }
  .voices__video { width: 100%; height: 269px; aspect-ratio: auto;
    border: 2px solid var(--white); border-radius: 10px; }
  .voices__play { right: 10px; bottom: 10px;
    z-index: 3; touch-action: manipulation; }
  .voices__body { padding: 20px 10px 8px; }
  .voices__mark { width: 31px; height: 26px; margin-bottom: 14px; }
  .voices__quote { font-size: 16px; line-height: 1.74; letter-spacing: 0.48px; }
  .voices__name { font-size: 22px; margin-top: 20px; }
  .voices__year { font-size: 16px; }
  .voices__arrow { display: inline-flex; position: absolute; top: auto; bottom: 10px;
    width: 34px; height: 34px; margin: 0; background: var(--white);
    border-color: var(--gold-accent); z-index: 5; touch-action: manipulation; }
  .voices__arrow svg { width: 16px; height: 16px; }
  .voices__arrow--prev { left: auto; right: 50px; }
  .voices__arrow--next { left: auto; right: 10px; }

  /* news (mobile 552:4003): 46px centred heading, 18px eyebrow, horizontal-scroll cards */
  .news { padding: 56px 0; }
  .news__eyebrow { font-size: 18px; }
  .news__title { font-size: 34px; }   /* homepage section headings are 34px on mobile */
  /* Vertical padding gives the 24px tile shadow room to render; the matching
     negative margin pulls the row back so the tiles keep their position (a
     scroll container clips overflow on BOTH axes once overflow-x is auto). */
  .news__grid { display: flex; grid-template-columns: none; overflow-x: auto; gap: 12px;
    padding: 24px var(--pad); margin: -24px calc(-1 * var(--pad));
    scroll-snap-type: x mandatory; scroll-padding-left: var(--pad);
    -webkit-overflow-scrolling: touch; }
  .news__grid::-webkit-scrollbar { display: none; }
  .news-card { flex: 0 0 237px; scroll-snap-align: start;
    box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.25); }   /* Figma 552:3999 — subtle drop shadow */
  .news__links { justify-content: center; margin-top: 40px; }

  /* journey */
  .journey { min-height: 568px; }
  .journey__bg {
    --journey-position: 13.44% 0;
    background-size: cover;
  }
  .journey__inner { padding: 25px var(--pad) 26px; }
  .journey__title { font-size: 34px; line-height: 1.2; max-width: 313px; }
  .journey__foot { max-width: 300px; }
  .journey__body { font-size: 16px; line-height: 1.74; margin-bottom: 8px; max-width: 300px; }
  .journey__cta { font-size: 15px; letter-spacing: 0.45px; }
  .tours, .tours__slider, .tours__slider .slick-list,
  .tours__slider .slick-track, .tours__slider .slick-slide,
  .tours__slide { height: 700px; min-height: 0; }
  .tours__slide img {
    inset: 0 0 auto; width: 100%; height: 280px; object-fit: cover;
    object-position: center center;
  }
  .tours__overlay {
    inset: 0 0 auto; height: 280px;
    background: linear-gradient(0deg, rgba(0,0,0,0.4) 0.21%, rgba(0,0,0,0) 67.63%);
  }
  .tours__panel {
    top: 280px; bottom: 0; left: 0; right: 0; width: 100%;
    padding: 24px var(--pad) 74px; border-radius: 0; justify-content: flex-start;
    background: var(--nudgee-royal); -webkit-backdrop-filter: none; backdrop-filter: none;
  }
  .tours__eyebrow { font-size: 22px; line-height: 1.55; margin-bottom: 2px; }
  .tours__title { font-size: 34px; line-height: 1.2; margin-bottom: 22px; width: 330px; max-width: none; white-space: nowrap; }
  .tours__body { font-size: 16px; line-height: 1.74; letter-spacing: 0.48px; margin-bottom: 20px; }
  .tours__cta { margin-top: 0; font-size: 15px; letter-spacing: 0.45px; }
  .tours__dots {
    top: auto; left: 50%; bottom: 16px; right: auto; transform: translateX(-50%);
  }
  .tours__dots .slick-dots { gap: 15px; }
  .tours__dots .slick-dots li,
  .tours__dots .slick-dots button { width: 13px; height: 13px; }
  .tours__dots .slick-dots button { background: #83817B; }
  .tours__dots .slick-dots .slick-active button { background: #FFFFFF; }
  
  .site-footer { min-height: 985px; padding: 24px 0 50px; background: var(--nudgee-ink); }
  .site-footer .footer__inner { min-height: 961px; padding-left: 10px; padding-right: 10px; }
  .footer__top { display: block; text-align: center; }
  /* Figma 2630:616 — the WORDMARK is centred on screen, with the crest hanging
     off to its left. The lockup is one SVG whose wordmark centre sits at 69.07%
     of its width, so centring the image and shifting it back 19.07% of its own
     width centres the wordmark at any phone width. */
  .footer__brand { display: block; margin: 0 auto 29px; text-align: center; }
  .footer__brand img { width: min(215px, calc(100% - 100px)); margin: 0 auto; transform: translateX(-19.07%); }
  .footer__col { display: flex; flex-direction: column; align-items: center; margin: 0 auto 31px; }
  .footer__col--contact { margin-bottom: 23px; }
  .footer__actions {
    align-items: center;
    width: max-content;
    max-width: 100%;
    margin: 0 auto 31px;
    padding-top: 0;
  }
  .footer__col--respect { margin-top: 0; }
  .footer__ct {
    font-size: 18px; line-height: 1.74; letter-spacing: 0.54px;
    color: var(--white); text-align: center; margin-bottom: 8px;
  }
  .footer__link {
    font-family: var(--font-body); font-weight: 400; font-size: 14px; line-height: 1.74;
    letter-spacing: 0.42px; color: var(--white); text-align: center;
  }
  .footer__social { justify-content: center; gap: 10px; margin-top: 17px; }
  .footer__social .social-ic { width: 39px; height: 39px; background: var(--white); color: var(--nudgee-royal); }
  
  .footer__respect {
    max-width: 340px; margin: 0 auto; text-align: center;
    font-weight: 400; font-size: 14px; line-height: 1.74; letter-spacing: 0.48px; color: var(--white);
  }
  .footer__legal {
    position: absolute; left: 10px; right: 10px; top: 719px; bottom: auto;
    display: block; width: auto; margin: 0; text-align: center;
  }
  .footer__legal-row { display: block; padding-top: 0; }
  .footer__legal p {
    text-align: center; font-size: 14px; line-height: 1.58;
    letter-spacing: 0.42px; color: var(--white);
  }
  .footer__siteby-sep { display: none; }
  .footer__siteby { display: block; margin-top: 2px; }
  /* Back to top sits beside the crest at the top of the footer on mobile */
  .footer__top-btn {
    position: absolute; top: 12px; right: 10px;
    width: 52px; height: 52px;
    color: var(--gold-accent);   /* border stays the gradient from the base rule */
    font-size: 15px; line-height: 1.55; letter-spacing: 0.45px;
  }
  .footer__reveal { width: 100%; left: 0; bottom: 0; }
  .footer__watermark { background: var(--nudgee-navy); }
  .footer__video { display: block; }
}

/* ---- 575: small phones ---- */
@media (max-width: 575px) {
  
  .search-overlay__title { font-size: 40px; margin-bottom: 34px; }
  .search-form { gap: 18px; }

  .site-footer { padding-bottom: 0; }

}

/* ---- 400: narrow phones (360–400) ---- */
@media (max-width: 400px) {
  .paths__filter { font-size: 14px; }
  .footer__brand img { width: min(240px, calc(100% - 100px)); }   /* clears the Top button */
  /* mega-menu footer CTAs stack full-width */
  /* menu footer stays a single row down to 360 (Enrol Now + Book a Tour fit the width) */
  .search-form__label { display: none; }  /* icon-only submit to save room */
  .search-form__submit { gap: 0; }
}

/* =================================================================
   PAGE: General Page
   Figma 581:714. Scoped to general-page.html so the homepage modules and
   their breakpoint fixes remain untouched.
   ================================================================= */
body.general-page-body {
  background: var(--white);
}

body.general-page-body .site-header .container {
  padding-top: 41px;
}

body.general-page-body .site-header.is-fixed .container {
  padding-top: 7.38px;
  padding-bottom: 7.38px;
  padding-left: var(--pad);
  padding-right: calc(var(--pad) + 13.5px);
}

body.general-page-body .site-header .crest {
  height: 148px;
}

body.general-page-body .site-header.is-fixed .crest {
  height: 91px;
}

.general-page {
  overflow: hidden;
  background: var(--white);
  color: var(--black);
}

.gp-container {
  width: min(1056px, calc(100% - (var(--pad) * 2)));
  margin: 0 auto;
}

.gp-hero {
  background: var(--white);
}

.gp-hero__intro {
  position: relative;
  height: 549px;
  overflow: hidden;
  background: var(--nudgee-royal);
}
.gp-hero__content {
  position: relative;
  z-index: 1;
  width: min(1056px, calc(100% - (var(--pad) * 2)));
  height: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  padding-bottom: 51px;
  text-align: center;
}

.gp-hero__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 82px;
  line-height: 1.2;
  color: var(--nudgee-light);
  margin-bottom: 18px;
}

.gp-breadcrumbs {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  text-transform: uppercase;
  color: var(--nudgee-light);
}

.gp-breadcrumbs span:last-child {
  font-weight: 700;
}

.gp-hero__image {
  position: relative;
  height: 871px;
  overflow: hidden;
}

/* Video banner (generalPage useVideoBanner): the embed fills the same box as the
   banner image. Container query units give the hero's cover maths a box to work
   from, so the 16:9 embed crops instead of letterboxing at any banner size. */
.gp-hero__image--video { container-type: size; }
.gp-hero__video {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: var(--nudgee-navy);
  pointer-events: none;
}
.gp-hero__video iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  border: 0;
  pointer-events: none;
}
@supports (width: 1cqw) {
  .gp-hero__video iframe {
    width: 100cqw;
    height: 56.25cqw;        /* 16:9 from the banner width */
    min-height: 100cqh;
    min-width: 177.78cqh;    /* 16:9 from the banner height */
  }
}
/* sound toggle sits inside the banner rather than the viewport corner */
.gp-hero__sound.hero__sound {
  right: var(--pad);
  bottom: 24px;
}
@media (max-width: 767px) {
  .gp-hero__sound.hero__sound {
    right: 16px;
    bottom: 14px;
    width: auto;
    height: 38px;
    gap: 10px;
  }
  .gp-hero__sound .hero__sound-icon { flex-basis: 22px; width: 22px; height: 22px; }
  .gp-hero__sound .hero__sound-label { font-size: 14px; }
}

/* Default general-page banner: Figma desktop image overlaps the blue intro. */
@media (min-width: 1441px) {
  .gp-hero--default .gp-hero__content {
    padding-bottom: 124.88px;
  }

  .gp-hero--default .gp-hero__image {
    margin-top: -94.06px;
  }
}

/* Long page titles: the blue band keeps its design height as a minimum and grows
   downward, with the content starting below the absolutely positioned header,
   instead of the bottom-anchored title running up under the logo. The
   alternative banner has its own absolute layout and is excluded. */
.gp-hero:not(.gp-hero--alternative) .gp-hero__intro {
  display: flex;
  flex-direction: column;
  min-height: max-content;
}
.gp-hero:not(.gp-hero--alternative) .gp-hero__content {
  flex: 1 0 auto;
  height: auto;
  padding-top: 209px;            /* header height */
}
@media (max-width: 1440px) {
  .gp-hero:not(.gp-hero--alternative) .gp-hero__content { padding-top: 181px; }
}
@media (max-width: 991px) {
  .gp-hero:not(.gp-hero--alternative) .gp-hero__content { padding-top: 153px; }
}
@media (max-width: 767px) {
  .gp-hero:not(.gp-hero--alternative) .gp-hero__content { padding-top: 130px; }
}

.gp-hero__slider,
.gp-hero__slider .slick-list,
.gp-hero__slider .slick-track,
.gp-hero__slider .slick-slide,
.gp-hero__slider .slick-slide > div,
.gp-hero__slide {
  width: 100%;
  height: 100%;
}

.gp-hero__slider:not(.slick-initialized) .gp-hero__slide:not(:first-child) {
  display: none;
}

.gp-hero__slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 43%;
}

.gp-hero__slider.slick-initialized .gp-hero__slide img {
  transform: scale(1);
  transition: transform 6.5s ease-out;
  will-change: transform;
}

.gp-hero__slider.slick-initialized .slick-active .gp-hero__slide img {
  transform: scale(1.04);
}

@media (prefers-reduced-motion: reduce) {
  .gp-hero__slider.slick-initialized .gp-hero__slide img {
    transition: none;
  }

  .gp-hero__slider.slick-initialized .slick-active .gp-hero__slide img {
    transform: none;
  }
}

.gp-editor {
  padding: 115px 0 94px;
}

.gp-pullquote {
  position: relative;
  margin: 0 0 69px;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.47;
  letter-spacing: 0.96px;
  color: var(--gold-accent);
}

.gp-pullquote::before {
  content: "";
  position: absolute;
  top: 51px;
  right: calc(100% + 32px);
  width: 401px;
  height: 1px;
  background: var(--gold-accent);
}

.gp-two-col {
  display: grid;
  grid-template-columns: 680px 332px;
  gap: 44px;
  align-items: start;
}

.gp-copy {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}

.gp-copy h2,
.gp-copy h3 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.2;
  color: var(--nudgee-royal);
}

.gp-copy h2 {
  font-size: 68px;
  margin: 0 0 25px;
}

.gp-copy h3 {
  font-size: 48px;
  margin: 0 0 22px;
}

.gp-copy h4,
.gp-form-section h4 {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.55;
  color: var(--nudgee-royal);
  margin: 76px 0 22px;
}

.gp-copy h5 {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.55;
  color: var(--nudgee-royal);
  margin: 0 0 25px;
}

.gp-copy p + p {
  margin-top: 28px;
}

.gp-copy a:not(.link-dot) {
  color: var(--gold-accent);
}

.gp-copy ul,
.gp-table ul {
  margin: 0;
  padding-left: 24px;
}

.gp-copy p + ul,
.gp-table p + ul {
  margin-top: 28px;
}

.gp-copy li,
.gp-table li {
  padding-left: 0;
}

.gp-richtext::after {
  content: "";
  display: block;
  clear: both;
}

.gp-copy.gp-richtext > h1,
.gp-copy.gp-richtext > h2 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.2;
  color: var(--nudgee-royal);
}

.gp-copy.gp-richtext > h1 {
  margin: 0 0 25px;
  font-size: 68px;
}

.gp-copy.gp-richtext > h2 {
  margin: 62px 0 22px;
  font-size: 48px;
}

.gp-copy.gp-richtext > h3 {
  margin: 76px 0 22px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.55;
  color: var(--nudgee-royal);
}

.gp-copy.gp-richtext > h4 {
  margin: 62px 0 25px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.55;
  color: var(--nudgee-royal);
}

.gp-copy.gp-richtext > h5 {
  margin: 48px 0 20px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.55;
  color: var(--nudgee-royal);
}

/* Full Text Editor headings use bottom spacing only. Keep the existing
   level-specific bottom margins above and in the mobile rules below. */
.gp-editor .gp-copy.gp-richtext > :where(h1, h2, h3, h4, h5, h6) {
  margin-top: 0;
}

.gp-editor .gp-copy.gp-richtext > h1 { margin-bottom: 48px; }
.gp-editor .gp-copy.gp-richtext > h2 { margin-bottom: 42px; }
.gp-editor .gp-copy.gp-richtext > h3 { margin-bottom: 36px; }
.gp-editor .gp-copy.gp-richtext > h4 { margin-bottom: 32px; }
.gp-editor .gp-copy.gp-richtext > h5 { margin-bottom: 28px; }
.gp-editor .gp-copy.gp-richtext > h6 { margin-bottom: 24px; }

@media (max-width: 767px) {
  .gp-editor .gp-copy.gp-richtext > h1 { margin-bottom: 32px; }
  .gp-editor .gp-copy.gp-richtext > h2 { margin-bottom: 28px; }
  .gp-editor .gp-copy.gp-richtext > h3 { margin-bottom: 24px; }
  .gp-editor .gp-copy.gp-richtext > h4 { margin-bottom: 22px; }
  .gp-editor .gp-copy.gp-richtext > h5 { margin-bottom: 20px; }
  .gp-editor .gp-copy.gp-richtext > h6 { margin-bottom: 18px; }
}

.gp-richtext blockquote {
  position: relative;
  margin: 0 0 69px;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.47;
  letter-spacing: 0.96px;
  color: var(--gold-accent);
}

.gp-richtext blockquote::before {
  content: "";
  position: absolute;
  top: 51px;
  right: calc(100% + 32px);
  width: 401px;
  height: 1px;
  background: var(--gold-accent);
}

.gp-richtext blockquote p {
  margin: 0;
}

.gp-richtext ol {
  margin: 0;
  padding-left: 24px;
}

.gp-richtext p + ol {
  margin-top: 28px;
}

.gp-richtext li + li {
  margin-top: 8px;
}

.gp-richtext figure.image {
  position: relative;
  display: table;
  max-width: 100%;
  overflow: hidden;
  border-radius: 10px;
  margin: 40px 0;
}

.gp-richtext figure.image:has(> figcaption)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 70%, rgba(0, 0, 0, 0.8) 100%);
  pointer-events: none;
}

.gp-richtext figure.image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
}

.gp-richtext figure.image-style-align-left,
.gp-richtext figure.image-style-align-right {
  margin-top: 8px;
  margin-bottom: 40px;
}

.gp-richtext figure.image-style-align-left {
  float: left;
  margin-right: 44px;
}

.gp-richtext figure.image-style-align-right {
  float: right;
  margin-left: 44px;
}

.gp-richtext figure.image-style-block-align-center {
  margin-right: auto;
  margin-left: auto;
}

.gp-richtext figure.image figcaption {
  position: absolute;
  left: 2px;
  right: 9px;
  bottom: 12px;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--gold-accent);
  text-align: left;
}

.gp-richtext figure.image figcaption::before {
  content: "";
  width: 19px;
  height: 1px;
  flex: 0 0 auto;
  background: currentColor;
}

/* Shared horizontal scrollbar for CMS tables. A visible recessed track behind
   the darker thumb makes it clear that wide tables can be swiped horizontally. */
figure.table {
  scrollbar-width: auto;
  scrollbar-color: #66727a #d9dde0;
}

figure.table::-webkit-scrollbar {
  height: 14px;
}

figure.table::-webkit-scrollbar-track {
  border-radius: 999px;
  background: #d9dde0;
  box-shadow: inset 0 1px 3px rgba(6, 35, 60, 0.28);
}

figure.table::-webkit-scrollbar-thumb {
  min-width: 48px;
  border: 3px solid transparent;
  border-radius: 999px;
  background: #66727a;
  background-clip: padding-box;
}

figure.table::-webkit-scrollbar-thumb:hover {
  background-color: #3f4d57;
}

figure.table::-webkit-scrollbar-corner {
  background: transparent;
}

figure.table.is-table-scroll-enhanced {
  scrollbar-width: none;
}

figure.table.is-table-scroll-enhanced::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.table-scroll-cue {
  position: relative;
  width: 100%;
  height: 14px;
  margin-top: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: #d9dde0;
  box-shadow: inset 0 1px 4px rgba(6, 35, 60, 0.32);
  cursor: pointer;
  user-select: none;
}

.table-scroll-cue[hidden] {
  display: none;
}

.table-scroll-cue__thumb {
  position: absolute;
  top: 3px;
  left: 0;
  height: 8px;
  min-width: 48px;
  border-radius: 999px;
  background: #52616b;
  box-shadow: 0 1px 2px rgba(6, 35, 60, 0.28);
  cursor: grab;
  touch-action: none;
  will-change: transform;
}

.table-scroll-cue__thumb:hover {
  background: #3f4d57;
}

.table-scroll-cue__thumb.is-dragging {
  cursor: grabbing;
  background: #263b48;
}

.table-scroll-cue:focus-visible {
  outline: 2px solid var(--nudgee-royal);
  outline-offset: 3px;
}

.gp-richtext figure.table {
  clear: both;
  width: 100%;
  max-width: 100%;
  margin: 41px 0 0;
  overflow-x: auto;
}

.gp-richtext figure.table table {
  width: 100%;
  min-width: 720px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0 5px;
}

.gp-richtext figure.table th,
.gp-richtext figure.table td {
  padding: 18px 16px;
  border: 0;
  background: #f9f9f8;
  vertical-align: top;
  text-align: left;
}

.gp-richtext figure.table th {
  font-weight: 700;
  line-height: 1.55;
  color: var(--nudgee-royal);
  vertical-align: middle;
}

.gp-richtext figure.table td > :first-child {
  margin-top: 0;
}

.gp-richtext figure.table td > :last-child {
  margin-bottom: 0;
}

.gp-image-card {
  position: relative;
  width: 332px;
  height: 436px;
  overflow: hidden;
  margin-top: 70px;
  color: var(--gold-accent);
}

.gp-image-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gp-image-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 0.8) 95%);
  pointer-events: none;
}

.gp-image-card figcaption {
  position: absolute;
  left: 5px;
  right: 30px;
  bottom: 12px;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
}

.gp-image-card figcaption span {
  width: 19px;
  height: 1px;
  background: currentColor;
  flex: 0 0 auto;
}

.gp-copy--wide {
  margin-top: 62px;
}

.gp-table {
  margin-top: 41px;
  display: grid;
  row-gap: 5px;
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
  background: transparent;
  border: 0;
}

.gp-table__row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 0;
  background: #f9f9f8;
  border: 0;
}

.gp-table__row > div {
  min-height: 101.92px;
  padding: 17.93px 16px;
  border: 0;
}

.gp-table__row--head {
  min-height: 73.555px;
}

.gp-table__row--head > div {
  min-height: 73.555px;
  display: flex;
  align-items: center;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.55;
  letter-spacing: 0.48px;
  color: var(--nudgee-royal);
  padding-top: 0;
  padding-bottom: 0;
}

.gp-table__row--body {
  min-height: 233.327px;
}

.gp-table__row--body > div {
  min-height: 233.327px;
}

.gp-copy--after-table {
  margin-top: 26px;
}

.gp-text-link {
  color: var(--nudgee-royal);
}

.gp-text-link--download {
  margin-top: -2px;
}

.gp-form-section {
  margin-top: 63px;
}

.gp-form-section h4 {
  margin: 0 0 31px;
}

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

.gp-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 512px));
  gap: 18px 32px;
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}

.gp-field {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.gp-field--no-label {
  padding-top: calc(1.74em + 10px);
}

.gp-field input,
.gp-field select,
.gp-field textarea {
  width: 100%;
  border: 0;
  border-radius: 10px;
  background: var(--nudgee-light);
  font: inherit;
  color: var(--black);
}

.gp-field input,
.gp-field select {
  height: 55px;
  padding: 0 12px;
}

.gp-field select {
  appearance: none;
  color: #767676;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--gold-accent) 50%),
    linear-gradient(135deg, var(--gold-accent) 50%, transparent 50%);
  background-position:
    calc(100% - 22px) 22px,
    calc(100% - 12px) 22px;
  background-size: 10px 10px;
  background-repeat: no-repeat;
}

.gp-field textarea {
  min-height: 139px;
  resize: vertical;
  padding: 8px 12px;
}

.gp-field ::placeholder {
  color: #767676;
  opacity: 1;
}

.gp-field--full {
  grid-column: 1 / -1;
}

.gp-field--radio {
  display: block;
  border: 0;
  padding: 0;
  margin: 0;
}

.gp-field--radio legend {
  margin-bottom: 10px;
}

.gp-field--radio label {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-right: 34px;
  color: #767676;
  vertical-align: middle;
}

.gp-field--radio input {
  width: 37px;
  height: 37px;
  margin: 0;
  flex: 0 0 37px;
  appearance: none;
  border: 0;
  border-radius: 50%;
  background: var(--nudgee-light);
  display: inline-grid;
  place-content: center;
  padding: 0;
}

.gp-field--radio input::before {
  content: "";
  width: 22px;
  height: 22px;
  border-radius: 50%;
  transform: scale(0);
  background: var(--black);
}

.gp-field--radio input:checked::before {
  transform: scale(1);
}

.gp-submit {
  justify-self: start;
  grid-column: 1 / -1;
  margin-top: 10px;
  border: 0;
  background: transparent;
  color: var(--nudgee-royal);
  cursor: pointer;
}

.gp-form-section .freeform-form {
  box-sizing: border-box;
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}

.gp-form-section .freeform-form .freeform-row {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 18px 32px;
  margin: 0 0 18px;
  padding: 0;
  font: inherit;
  color: inherit;
}

.gp-form-section .freeform-form .freeform-row > [class*="freeform-col-"] {
  float: none;
  min-width: 0;
  width: auto;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.gp-form-section .freeform-form .freeform-row > .freeform-col-1 { grid-column: span 1; }
.gp-form-section .freeform-form .freeform-row > .freeform-col-2 { grid-column: span 2; }
.gp-form-section .freeform-form .freeform-row > .freeform-col-3 { grid-column: span 3; }
.gp-form-section .freeform-form .freeform-row > .freeform-col-4 { grid-column: span 4; }
.gp-form-section .freeform-form .freeform-row > .freeform-col-5 { grid-column: span 5; }
.gp-form-section .freeform-form .freeform-row > .freeform-col-6 { grid-column: span 6; }
.gp-form-section .freeform-form .freeform-row > .freeform-col-7 { grid-column: span 7; }
.gp-form-section .freeform-form .freeform-row > .freeform-col-8 { grid-column: span 8; }
.gp-form-section .freeform-form .freeform-row > .freeform-col-9 { grid-column: span 9; }
.gp-form-section .freeform-form .freeform-row > .freeform-col-10 { grid-column: span 10; }
.gp-form-section .freeform-form .freeform-row > .freeform-col-11 { grid-column: span 11; }
.gp-form-section .freeform-form .freeform-row > .freeform-col-12 { grid-column: span 12; }

.gp-form-section .freeform-form .freeform-label {
  display: block;
  margin: 0 0 10px;
  font: inherit;
  font-weight: 400;
  color: var(--black);
}

.gp-form-section .freeform-form .freeform-label.freeform-required::after {
  margin-left: 4px;
  color: var(--gold-accent);
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input:not([type="radio"]):not([type="checkbox"]):not([type="file"]) {
  display: block;
  width: 100%;
  min-height: 55px;
  padding: 0 12px;
  box-sizing: border-box;
  border: 0;
  border-radius: 10px;
  background-color: var(--nudgee-light);
  font: inherit;
  color: var(--black);
  resize: vertical;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] textarea.freeform-input {
  min-height: 140px !important;
  padding-top: 8px;
  padding-bottom: 8px;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] select.freeform-input:not([multiple]) {
  appearance: none;
  color: #767676;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--gold-accent) 50%),
    linear-gradient(135deg, var(--gold-accent) 50%, transparent 50%);
  background-position:
    calc(100% - 22px) 22px,
    calc(100% - 12px) 22px;
  background-size: 10px 10px;
  background-repeat: no-repeat;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input::placeholder {
  font: inherit;
  color: #767676;
  opacity: 1;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input:focus {
  border: 0;
  outline: 2px solid var(--gold-accent);
  outline-offset: 2px;
}

.gp-form-section .freeform-form .input-group-one-line {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 34px;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .input-group-one-line label {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  padding: 0;
  color: #767676;
  vertical-align: middle;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input[type="radio"],
.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input[type="checkbox"] {
  display: inline-grid;
  width: 37px;
  height: 37px;
  flex: 0 0 37px;
  place-content: center;
  margin: 0;
  padding: 0;
  appearance: none;
  transform: none;
  border: 0;
  background: var(--nudgee-light);
  cursor: pointer;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input[type="radio"] {
  border-radius: 50%;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input[type="radio"]::before {
  content: "";
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--black);
  transform: scale(0);
  transition: transform 0.2s ease;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input[type="radio"]:checked::before {
  transform: scale(1);
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input[type="checkbox"] {
  border-radius: 6px;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input[type="checkbox"]::before {
  content: "";
  width: 9px;
  height: 17px;
  border: solid var(--black);
  border-width: 0 3px 3px 0;
  transform: rotate(45deg) scale(0);
  transition: transform 0.2s ease;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input[type="checkbox"]:checked::before {
  transform: rotate(45deg) scale(1);
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input.freeform-has-errors,
.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-input:has(+ .freeform-errors) {
  border: 1px solid #b42318;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-errors {
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

.gp-form-section .freeform-form .freeform-row [class*="freeform-col-"] .freeform-errors > li {
  margin: 0;
  font: inherit;
  font-size: 14px;
  color: #b42318;
}

.gp-form-section .freeform-form [data-freeform-controls] {
  display: block;
  margin-top: 10px;
  text-align: left;
}

.gp-form-section .freeform-form [data-freeform-controls] > div,
.gp-form-section .freeform-form [data-freeform-controls] > div > div {
  display: block;
  text-align: left;
}

.gp-form-section .freeform-form [data-freeform-controls] button[data-freeform-action="submit"] {
  position: relative;
  display: inline-flex;
  float: none;
  align-items: center;
  min-height: 36px;
  margin: 0 !important;
  padding: 0 44px 0 29px;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: 0.48px;
  text-transform: uppercase;
  color: var(--nudgee-royal);
  cursor: pointer;
}

.gp-form-section .freeform-form [data-freeform-controls] button[data-freeform-action="submit"]::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 50%;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--button-dot);
  opacity: 1;
  transform: translateY(-50%);
  transition: opacity 0.3s ease-out;
}

.gp-form-section .freeform-form [data-freeform-controls] button[data-freeform-action="submit"]::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: url(../images/arrow-white.svg) center / 16px no-repeat, var(--gold-linear);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-50%) scale(0.55);
  transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}

.gp-form-section .freeform-form [data-freeform-controls] button[data-freeform-action="submit"]:hover {
  border: 0;
  background: transparent;
  color: var(--nudgee-royal);
}

.gp-form-section .freeform-form [data-freeform-controls] button[data-freeform-action="submit"]:hover::before {
  opacity: 0;
}

.gp-form-section .freeform-form [data-freeform-controls] button[data-freeform-action="submit"]:hover::after {
  opacity: 1;
  transform: translateY(-50%) scale(1);
}

.gp-form-section .freeform-form [data-freeform-controls] button[data-freeform-action="submit"].freeform-processing::before {
  position: static;
  width: 11px;
  height: 11px;
  margin-right: 10px;
  border: 2px solid;
  border-color: transparent transparent var(--nudgee-royal) var(--nudgee-royal);
  background: transparent;
  opacity: 1;
  transform: none;
  animation: freeform-processing 0.5s linear infinite;
}

.gp-form-section .freeform-form [data-freeform-controls] button[data-freeform-action="submit"].freeform-processing::after {
  display: none;
}

.gp-form-section .freeform-form [data-freeform-controls] button:disabled {
  border: 0;
  background: transparent;
  color: var(--nudgee-royal);
  opacity: 0.55;
}

.gp-form-section .freeform-form-success,
.gp-form-section .freeform-form-errors {
  margin: 0 0 20px;
  padding: 15px 20px;
  border-radius: 10px;
  font-family: var(--font-head);
}

.gp-form-section .freeform-form-success {
  border: 1px solid #2e6b49;
  background: #edf6f1;
}

.gp-form-section .freeform-form-errors {
  border: 1px solid #b42318;
  background: #fff1f0;
}

.gp-form-section .freeform-form-success p,
.gp-form-section .freeform-form-success ul {
  font: inherit;
  color: #20563a;
}

.gp-form-section .freeform-form-errors p,
.gp-form-section .freeform-form-errors ul {
  font: inherit;
  color: #8f1d14;
}

.gp-read-next {
  position: relative;
  overflow: hidden;
  background: var(--nudgee-light);
  padding: 94px 0 101px;
}

.gp-read-next::before {
  content: "";
  position: absolute;
  left: 0;
  top: 122px;
  width: max(23px, calc((100% - 1056px) / 2 - 46px));
  height: 1px;
  background: var(--gold-accent);
}

.gp-read-next__inner {
  display: grid;
  grid-template-columns: 376px 1fr;
  gap: 168px;
  align-items: start;
}

.gp-read-next h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.2;
  color: var(--nudgee-royal);
}

.gp-read-next h2 span {
  display: block;
  color: var(--gold-accent);
}

.gp-read-next__links {
  display: grid;
  grid-template-columns: repeat(2, 240px);
  gap: 11px 32px;
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}

.gp-read-next__links a:hover,
.gp-read-next__links .is-current {
  font-weight: 700;
  color: var(--nudgee-royal);
}


.feature-events {
  position: relative;
  padding: 96px 0 110px;
  background: var(--white);
  overflow: hidden;
}

.feature-events__title {
  width: min(1056px, calc(100% - (var(--pad) * 2)));
  margin: 0 auto 48px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.55;
  text-align: center;
  color: var(--nudgee-royal);
}

.feature-events__stage {
  position: relative;
}

.feature-events__slider { outline: none; }
.feature-events__slide { outline: none; }

.feature-events__card {
  position: relative;      /* anchor for the whole-tile click target below */
  display: flex;
  align-items: stretch;
  height: 394px;
  margin: 0 16px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--nudgee-ink);
  transition: opacity 0.4s ease;
}

.feature-events__media {
  position: relative;
  flex: 0 0 48%;
  overflow: hidden;
}

.feature-events__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.feature-events__content {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 40px 44px 32px;
  color: var(--white);
}

.feature-events__name {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 42px;
  line-height: 1.25;
  margin: 0 0 12px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.feature-events__datetime {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  margin: 0 0 20px;
}

.feature-events__datetime strong { font-weight: 700; }

.feature-events__desc {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: rgba(255, 255, 255, 0.85);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.feature-events__foot {
  margin-top: auto;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.feature-events__tag {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
}

.feature-events__tag-icon {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  display: inline-flex;
  transform: rotate(-45deg);
}

.feature-events__tag-icon svg { width: 100%; height: 100%; }

.feature-events__link {
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  display: inline-flex;
  transition: transform 0.3s ease;
}

.feature-events__link svg { width: 100%; height: 100%; }
.feature-events__link:hover { transform: scale(1.08); }
/* the whole featured tile is the link (the arrow inside is a decorative span),
   so a click anywhere on the card opens the event */
.feature-events__card--link {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.feature-events__card--link:hover .feature-events__link { transform: scale(1.08); }
.feature-events__card--link:focus-visible {
  outline: 3px solid var(--gold-accent);
  outline-offset: 3px;
}

/* dimmed peek cards (Figma 898:1641 / 898:1642 — 80% white wash) */
.feature-events__slide:not(.slick-current) .feature-events__card {
  position: relative;
}

.feature-events__slide:not(.slick-current) .feature-events__card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.8);
  pointer-events: none;
}

/* prev/next controls — reuse the site's gold-ring arrow convention (.voices__arrow) */
.feature-events__arrow {
  position: absolute;
  top: 50%;
  z-index: 3;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 1px solid rgba(201, 161, 91, 0.6);
  background: rgba(11, 27, 51, 0.35);
  color: var(--white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s ease-out, color 0.3s ease-out, border-color 0.3s ease-out;
}

.feature-events__arrow svg { width: 20px; height: 20px; }
.feature-events__arrow:hover { background: var(--gold-linear); color: var(--nudgee-ink); border-color: transparent; }
.feature-events__arrow--prev { left: 24px; }
.feature-events__arrow--next { right: 24px; }

.feature-events__dots .slick-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  margin: 40px 0 0;
  padding: 0;
  list-style: none;
}

.feature-events__dots .slick-dots li { width: 11px; height: 11px; }

.feature-events__dots .slick-dots button {
  display: block;
  width: 11px;
  height: 11px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(0, 83, 155, 0.25);
  font-size: 0;
  cursor: pointer;
  transition: background 0.3s ease;
}

.feature-events__dots .slick-dots button::before { display: none; }
.feature-events__dots .slick-dots .slick-active button { background: var(--nudgee-royal); }

/* =================================================================
   MODULE: .events-toolbar  (filter pills + search — Figma 898:1599–1613)
   Each pill is its own bordered/filled rectangle (unlike curriculum's
   .cur-cats, which groups pills inside one shared bordered container).
   No live filtering yet — simple single-select active-state toggle only,
   ready to drive the events grid once it's built.
   ================================================================= */
.events-toolbar {
  background: var(--white);
  padding: 5px 0 56px;
}

.events-toolbar__row {
  width: min(1600px, calc(100% - (var(--pad) * 2)));
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}

.events-toolbar__filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}

.events-filter {
  border: 1px solid #ffdba7;
  border-radius: 999px;
  background: #f5f5f5;
  color: var(--nudgee-ink);
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.48px;
  text-transform: uppercase;
  white-space: nowrap;
  padding: 15px 24px;
  cursor: pointer;
  transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
}

.events-filter:hover {
  box-shadow: 0 6px 16px rgba(30, 66, 115, 0.12);
}

.events-filter.is-active {
  background: var(--gold-btn);
}

.events-toolbar__search {
  flex: 1 1 auto;
  max-width: 512px;
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 16px;
  border: 1px solid #ffdba7;
  border-radius: 999px;
  background: #f5f5f5;
  padding: 14px 28px;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.events-toolbar__search:focus-within {
  border-color: transparent;
  box-shadow: 0 0 0 2px var(--gold-accent), 0 6px 20px rgba(30, 66, 115, 0.14);
}

.events-toolbar__search-icon {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  color: var(--button-dot);
  display: inline-flex;
  transition: color 0.3s ease;
  /* it is a submit button now — drop the UA button chrome */
  padding: 0;
  border: 0;
  background: none;
  -webkit-appearance: none;
          appearance: none;
  cursor: pointer;
}
.events-toolbar__search-icon:focus-visible {
  outline: 2px solid var(--gold-accent);
  outline-offset: 3px;
  border-radius: 50%;
}

.events-toolbar__search-icon svg { width: 100%; height: 100%; }

.events-toolbar__search:focus-within .events-toolbar__search-icon {
  color: var(--gold-accent);
}

.events-toolbar__search-input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  outline: none;
  background: transparent;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.54px;
  color: var(--nudgee-ink);
}

.events-toolbar__search-input:focus {
  outline: none;
  box-shadow: none;
}

.events-toolbar__search-input::placeholder {
  color: var(--nudgee-ink);
  opacity: 1;
}

/* =================================================================
   MODULE: .events-grid  (event tiles — Figma 898:1244/1245/1463/1465/1472)
   Vertical card: photo top, cream body, navy footer bar. The footer reuses
   the slider's .feature-events__tag / __tag-icon / __link classes — same
   ticket icon + gold-ring arrow, just re-parented into its own navy bar.
   ================================================================= */
.events-grid {
  background: var(--white);
  padding: 0 0 120px;
}

.events-grid__row {
  width: min(1600px, calc(100% - (var(--pad) * 2)));
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 32px;
}

.event-tile {
  position: relative;      /* anchor for the whole-tile link overlay */
  display: flex;
  flex-direction: column;
  flex: 0 1 calc((100% - (32px * 2)) / 3);
  border-radius: 10px;
  overflow: hidden;
  background: var(--nudgee-light);
  transition: transform 0.4s ease;
}

.event-tile[hidden] {
  display: none;
}

.event-tile:hover {
  transform: translateY(-4px);
}

.event-tile__media {
  position: relative;
  display: block;
  aspect-ratio: 512 / 312;
  overflow: hidden;
}

.event-tile__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.event-tile:hover .event-tile__media img { transform: scale(1.05); }
.events-grid__empty {
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  color: var(--nudgee-navy);
  margin: 0 0 28px;
}
.events-grid__empty a { color: var(--nudgee-royal); text-decoration: underline; text-underline-offset: 3px; }
/* whole-tile click target (the media and arrow inside are no longer links) */
.event-tile__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
}
.event-tile__overlay:focus-visible {
  outline: 3px solid var(--gold-accent);
  outline-offset: 3px;
}

.event-tile__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  padding: 32px 20px 28px;
}

.event-tile__title {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.55;
  color: #0055a2;
  margin: 0 0 20px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.event-tile__datetime {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
  margin: 0;
}

.event-tile__datetime strong { font-weight: 700; }

.event-tile__venue {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
  margin: 0;
}

.event-tile__foot {
  margin-top: auto;
  background: var(--nudgee-ink);
  color: var(--white);
  padding: 20px 20px 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.event-tile__foot .feature-events__tag { font-size: 16px; }
.event-tile__foot .feature-events__link { width: 44px; height: 44px; }

@media (max-width: 1440px) {
  body.general-page-body .site-header .crest {
    height: 120px;
  }

  body.general-page-body .site-header.is-fixed .crest {
    height: 91px;
  }

  .gp-container,
  .gp-hero__content {
    width: min(1056px, calc(100% - 168px));
  }

  .gp-hero__title {
    font-size: 82px;
  }
}

@media (max-width: 1199px) {
  .gp-container,
  .gp-hero__content {
    width: min(900px, calc(100% - 128px));
  }

  .gp-hero__intro {
    height: 460px;
  }

  .gp-hero__image {
    height: 620px;
  }

  .gp-two-col {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 36px;
  }

  .gp-image-card {
    width: 300px;
    height: 394px;
  }

  .gp-copy h2,
  .gp-hero__title {
    font-size: 52px;
  }

  .gp-copy.gp-richtext > h1 {
    font-size: 52px;
  }

  .gp-read-next__inner {
    grid-template-columns: 320px 1fr;
    gap: 72px;
  }

  .gp-read-next::before {
    width: max(23px, calc((100% - 900px) / 2 - 46px));
  }

  .gp-read-next__links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .feature-events__card { height: 340px; }
  .feature-events__name { font-size: 34px; }
  .feature-events__content { padding: 32px 34px 26px; }
  .feature-events__arrow { width: 44px; height: 44px; }
  .feature-events__arrow svg { width: 17px; height: 17px; }
  .feature-events__arrow--prev { left: 12px; }
  .feature-events__arrow--next { right: 12px; }

  .events-toolbar__row { width: min(900px, calc(100% - 128px)); }
  .events-toolbar__search { max-width: 400px; }

  .events-grid__row { width: min(900px, calc(100% - 128px)); gap: 24px; }
  .event-tile { flex-basis: calc((100% - (24px * 2)) / 3); }
  .event-tile__title { font-size: 26px; }
}

@media (max-width: 991px) {
  body.general-page-body .site-header .crest {
    height: 92px;
  }

  .gp-container,
  .gp-hero__content {
    width: calc(100% - 80px);
  }

  .gp-hero__intro {
    height: 400px;
  }

  .gp-hero__image {
    height: 460px;
  }
  .gp-pullquote {
    font-size: 28px;
  }

  .gp-richtext blockquote {
    font-size: 28px;
  }

  .gp-two-col {
    grid-template-columns: 1fr;
  }

  .gp-image-card {
    width: min(332px, 100%);
    margin-top: 10px;
  }

  .gp-table__row {
    grid-template-columns: 1fr;
  }

  .gp-table__row--head {
    display: none;
  }

  .gp-table__row > div,
  .gp-table__row--body > div {
    min-height: 0;
  }

  .gp-table__row > div::before {
    content: "Table Heading";
    display: block;
    margin-bottom: 8px;
    font-weight: 700;
    color: var(--nudgee-royal);
  }

  .gp-form {
    grid-template-columns: 1fr;
  }

  .gp-form-section .freeform-form .freeform-row {
    grid-template-columns: 1fr;
  }

  .gp-form-section .freeform-form .freeform-row > [class*="freeform-col-"] {
    grid-column: 1;
  }

  .gp-field--no-label {
    padding-top: 0;
  }

  .gp-read-next__inner {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .gp-read-next::before {
    width: 23px;
  }

  .feature-events { padding: 72px 0 84px; }
  .feature-events__title { font-size: 28px; margin-bottom: 36px; }
  .feature-events__card { height: 300px; margin: 0 10px; }
  .feature-events__name { font-size: 28px; margin-bottom: 8px; }
  .feature-events__datetime { font-size: 14px; margin-bottom: 12px; }
  .feature-events__desc { font-size: 14px; }
  .feature-events__content { padding: 26px 26px 20px; }
  .feature-events__foot { padding-top: 14px; }
  .feature-events__tag { font-size: 13px; }
  .feature-events__link { width: 44px; height: 44px; }

  .events-toolbar { padding-bottom: 44px; }
  .events-toolbar__row { width: calc(100% - 80px); }
  .events-toolbar__search { max-width: 100%; flex: 1 1 100%; margin-left: 0; order: 3; }

  .events-grid { padding-bottom: 90px; }
  .events-grid__row { width: calc(100% - 80px); gap: 24px; }
  .event-tile { flex-basis: calc((100% - 24px) / 2); }
}

@media (max-width: 767px) {
  body.general-page-body .site-header .crest {
    height: 93px;
  }

  body.general-page-body .site-header .container {
    padding-top: 17px;
  }

  body.general-page-body .site-header .header-actions {
    gap: 21px;
  }

  body.general-page-body .site-header .icon-search {
    width: 52px;
    height: 52px;
  }

  body.general-page-body .site-header .icon-search .ico-search {
    width: 16px;
    height: 16px;
  }

  body.general-page-body .site-header .icon-menu {
    width: 53px;
    height: 53px;
  }

  body.general-page-body .site-header.is-fixed .container {
    padding-top: 8px;
    padding-bottom: 8px;
    padding-left: var(--pad);
    padding-right: var(--pad);
  }

  body.general-page-body .site-header.is-fixed .crest {
    height: 59px;
  }

  .gp-container,
  .gp-hero__content {
    width: calc(100% - 60px);
  }

  .gp-hero__content {
    padding-bottom: 15px;
  }

  .gp-hero__intro {
    height: 357px;
  }

  .gp-hero__title {
    font-size: 36px;
    line-height: 1.2;
    margin-bottom: 13px;
  }

  .gp-breadcrumbs {
    flex-wrap: wrap;
    gap: 0 10px;
    font-size: 12px;
    line-height: 1.74;
    letter-spacing: 0.36px;
  }
  .gp-hero__image {
    height: 360px;
  }

  /* Default general-page banner: revised Figma mobile composition (360px). */
  .gp-hero--default .gp-hero__intro {
    height: 357.07px;
  }

  .gp-hero--default .gp-hero__content {
    padding-bottom: 85.12px;
  }
  .gp-hero--default .gp-hero__image {
    height: 240px;
    margin-top: -67.31px;
  }

  .gp-editor {
    padding: 90px 0 48px;
  }

  .gp-pullquote {
    margin-bottom: 54px;
    font-size: 24px;
    line-height: 1.47;
    letter-spacing: 0.72px;
  }

  .gp-pullquote::before {
    display: none;
  }

  .gp-read-next::before {
    display: block;
    top: 44px;
    width: 23px;
  }

  .gp-copy {
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: 0.48px;
  }

  .gp-copy h2 {
    font-size: 36px;
    line-height: 1.2;
    margin-bottom: 17px;
  }

  .gp-copy h3 {
    font-size: 32px;
    line-height: 1.2;
    margin-bottom: 17px;
  }

  .gp-copy h4,
  .gp-form-section h4 {
    font-size: 24px;
    line-height: 1.55;
  }

  .gp-copy h5 {
    font-size: 18px;
    line-height: 1.55;
    margin-bottom: 14px;
  }

  .gp-copy.gp-richtext > h1 {
    font-size: 36px;
    line-height: 1.2;
    margin-bottom: 17px;
  }

  .gp-copy.gp-richtext > h2 {
    margin-top: 39px;
    margin-bottom: 17px;
    font-size: 32px;
    line-height: 1.2;
  }

  .gp-copy.gp-richtext > h3 {
    margin-top: 39px;
    margin-bottom: 13px;
    font-size: 24px;
    line-height: 1.55;
  }

  .gp-copy.gp-richtext > h4 {
    margin-top: 34px;
    margin-bottom: 14px;
    font-size: 18px;
    line-height: 1.55;
  }

  .gp-copy.gp-richtext > h5 {
    margin-top: 30px;
    margin-bottom: 12px;
    font-size: 16px;
    line-height: 1.55;
  }

  .gp-richtext blockquote {
    margin-bottom: 54px;
    font-size: 24px;
    line-height: 1.47;
    letter-spacing: 0.72px;
  }

  .gp-richtext blockquote::before {
    display: none;
  }

  .gp-richtext figure.image-style-align-left,
  .gp-richtext figure.image-style-align-right {
    float: none;
    margin: 34px 0;
  }

  .gp-richtext figure.table {
    margin-top: 28px;
  }

  .gp-richtext figure.table table {
    min-width: 680px;
  }

  .gp-image-card {
    width: 300px;
    height: 394px;
    margin-top: 0;
  }

  .gp-image-card figcaption {
    left: 9px;
    right: 9px;
    bottom: 0;
  }

  .gp-copy--wide {
    margin-top: 39px;
  }

  .gp-copy h4 {
    margin-top: 4px;
    margin-bottom: 13px;
  }

  .gp-table {
    width: 506.784px;
    max-width: none;
    margin-top: 28px;
    margin-left: -30px;
    row-gap: 4px;
    overflow: visible;
  }

  .gp-table__row {
    width: 506.784px;
    min-height: 205.073px;
    display: grid;
    grid-template-columns: repeat(3, 147.314px);
    column-gap: 14.735px;
    align-items: start;
    box-sizing: border-box;
    margin-bottom: 0;
    padding: 19px 0 18px 30px;
    background: #f9f9f8;
  }

  .gp-table__row--head {
    display: grid;
    min-height: 73.555px;
    padding-top: 0;
    padding-bottom: 0;
    align-items: center;
  }

  .gp-table__row--body {
    min-height: 482.198px;
  }

  .gp-table__row:nth-child(3) {
    min-height: 207.311px;
  }

  .gp-table__row:nth-child(4) {
    min-height: 205.073px;
  }

  .gp-table__row > div {
    min-height: 0;
    padding: 0;
  }

  .gp-table__row--head > div {
    min-height: 0;
    padding: 0;
    display: flex;
    align-items: center;
    font-size: 16px;
    line-height: 1.55;
    letter-spacing: 0.48px;
    color: var(--nudgee-royal);
  }

  .gp-table__row--body > div {
    min-height: 0;
  }

  .gp-table__row > div::before {
    content: none;
    display: none;
  }

  .gp-copy--after-table {
    margin-top: 34px;
  }

  .gp-text-link {
    min-height: 36px;
    align-items: center;
  }

  .gp-text-link--download {
    margin-top: 0;
  }

  .gp-form-section {
    margin-top: 72px;
  }

  .gp-form-section h4 {
    margin-bottom: 20px;
  }

  .gp-form {
    gap: 10px;
  }

  .gp-form-section .freeform-form .freeform-row {
    gap: 10px;
    margin-bottom: 10px;
  }

  .gp-field {
    gap: 8px;
  }

  .gp-field input,
  .gp-field select {
    height: 55.423px;
  }

  .gp-field textarea {
    min-height: 139.094px;
  }

  .gp-field--radio label {
    display: inline-flex;
    margin-right: 8px;
    margin-bottom: 0;
    gap: 7px;
  }

  .gp-field--radio legend {
    margin-bottom: 10px;
  }

  .gp-field--radio input {
    width: 36.961px;
    height: 36.961px;
    flex-basis: 36.961px;
  }

  .gp-field--radio input::before {
    width: 21.64px;
    height: 21.64px;
  }

  .gp-submit {
    margin-top: 10px;
  }

  .gp-read-next {
    padding: 24px 0 28px;
    min-height: 433px;
  }

  .gp-read-next h2 {
    font-size: 32px;
    line-height: 1.2;
  }

  .gp-read-next__links {
    grid-template-columns: 1fr;
    gap: 12px 0;
    line-height: 1.74;
  }

  .gp-read-next__links .is-current {
    color: #0055a2;
  }

  .gp-read-next__inner {
    gap: 36px;
  }

  .feature-events__card {
    flex-direction: column;
    height: auto;
    margin: 0 6px;
  }

  .feature-events__media { flex: 0 0 auto; aspect-ratio: 343 / 200; }

  .feature-events__content { padding: 22px 22px 18px; }

  .feature-events__name { font-size: 24px; }

  .feature-events__desc { -webkit-line-clamp: 2; line-clamp: 2; }

  .feature-events__arrow { top: 38%; width: 38px; height: 38px; }
  .feature-events__arrow svg { width: 15px; height: 15px; }
  .feature-events__arrow--prev { left: 4px; }
  .feature-events__arrow--next { right: 4px; }

  .events-toolbar { padding-bottom: 36px; }
  .events-toolbar__row { width: calc(100% - 60px); gap: 12px; }
  .events-toolbar__filters { gap: 10px; }
  .events-filter { font-size: 13px; padding: 12px 18px; }
  .events-toolbar__search { max-width: 100%; flex: 1 1 100%; margin-left: 0; order: 3; padding: 12px 20px; gap: 12px; }
  .events-toolbar__search-input { font-size: 15px; }
  .events-toolbar__search-icon { width: 18px; height: 18px; }

  .events-grid { padding-bottom: 64px; }
  .events-grid__row { width: calc(100% - 60px); gap: 24px; }
  .event-tile { flex-basis: 100%; }
  .event-tile__title { font-size: 24px; margin-bottom: 14px; }
  .event-tile__body { padding: 24px 18px 22px; }
  .event-tile__foot { padding: 16px 16px 16px 20px; }
  .event-tile__foot .feature-events__tag { font-size: 14px; }
  .event-tile__foot .feature-events__link { width: 38px; height: 38px; }
}

body.event-detail-body .site-header {
  background: var(--nudgee-royal);
}

.event-hero {
  height: 233px;
  background: var(--nudgee-royal);
}

.event-detail {
  display: flex;
  min-height: 597px;
  background: var(--nudgee-ink);
}

.event-detail__panel {
  flex: 0 1 50.83%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 32px;
  padding: 48px var(--pad);
  color: var(--white);
}

.event-detail__title {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 68px;
  line-height: 1.25;
  color: var(--white);
  margin: 0;
}

.event-detail__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.event-detail__meta {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.event-detail__meta-item {
  display: flex;
  align-items: center;
  gap: 22px;
}

.event-detail__meta-icon {
  flex: 0 0 auto;
  width: 41px;
  height: 41px;
  color: var(--gold-accent);
}

.event-detail__meta-icon svg { width: 100%; height: 100%; }

.event-detail__meta-item p {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--white);
  margin: 0;
}

.event-detail__meta-item strong { font-weight: 700; }

.event-detail__book {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.48px;
  text-transform: uppercase;
  color: var(--nudgee-light);
  transition: color 0.3s ease;
}

.event-detail__book-icon {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  display: inline-flex;
  transform: rotate(-45deg);
}

.event-detail__book-icon svg { width: 100%; height: 100%; }
.event-detail__book:hover { color: var(--gold-accent); }

.event-detail__media {
  flex: 1 1 49.17%;
  overflow: hidden;
}

.event-detail__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.back-to-events {
  background: var(--nudgee-light);
  padding: 30px 0;
}

.back-to-events__link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  letter-spacing: 0.48px;
  text-transform: uppercase;
  color: var(--nudgee-royal);
}

.back-to-events__icon {
  flex: 0 0 auto;
  width: 19px;
  height: 8px;
  display: inline-flex;
  transition: transform 0.3s ease;
}

.back-to-events__icon svg { width: 100%; height: 100%; display: block; }
.back-to-events__link:hover .back-to-events__icon { transform: translateX(-6px); }

@media (max-width: 1440px) {
  .event-hero { height: 190px; }
  .event-detail { min-height: 480px; }
  .event-detail__title { font-size: 52px; }
}

@media (max-width: 1199px) {
  .event-hero { height: 165px; }
  .event-detail { min-height: 420px; }
  .event-detail__panel { gap: 24px; padding: 36px var(--pad); }
  .event-detail__title { font-size: 44px; }
  .event-detail__meta-icon { width: 34px; height: 34px; }
  .event-detail__meta-item { gap: 16px; }
}

@media (max-width: 991px) {
  .event-hero { height: 140px; }
  .event-detail { flex-direction: column; min-height: 0; }
  .event-detail__panel { flex: 1 1 auto; order: 2; padding: 40px var(--pad); }
  .event-detail__media { flex: 1 1 auto; order: 1; aspect-ratio: 991 / 500; }
  .event-detail__row { flex-direction: column; align-items: flex-start; gap: 24px; }
}

@media (max-width: 767px) {
  .event-hero { height: 108px; }
  .event-detail__panel { padding: 32px var(--pad); gap: 20px; }
  .event-detail__title { font-size: 32px; line-height: 1.2; }
  .event-detail__media { aspect-ratio: 4 / 3; }
  .event-detail__meta-icon { width: 30px; height: 30px; }
  .event-detail__meta-item p { font-size: 14px; }
  .event-detail__book { font-size: 14px; }

  .back-to-events { padding: 22px 0; }
}
.page-modules { background: var(--white); }
.pm-module { padding: 80px 0; }
.pm-container { width: min(1600px, calc(100% - (var(--pad) * 2))); margin: 0 auto; }
.pm-gallery {
  --gal-w: clamp(450px, 47.92vw, 920px);  /* image width (920 @1920) */
  --gal-h: clamp(300px, 31.94vw, 613px);  /* image height (613 @1920) */
  --gal-gap: clamp(16px, 1.67vw, 32px);   /* space between images */
  --gal-inset: clamp(20px, 3.13vw, 60px); /* block left inset (60 @1920) */
  --gal-stage: clamp(96px, 19.38vw, 372px); /* left gutter before carousel (372 @1920) */
  --gal-arrow: clamp(42px, 2.7vw, 52px);  /* arrow circle diameter */
  --gal-panel-offset: clamp(36px, 3.75vw, 72px);
  --gal-panel-bottom: clamp(18px, 1.51vw, 29px);
  padding: clamp(72px, 5.52vw, 106px) 0 clamp(54px, 4.17vw, 80px);
}
.pm-gallery--slim {
  --gal-w: clamp(320px, 33.75vw, 648px);
  --gal-h: clamp(240px, 22.5vw, 432px);
}

.pm-gallery__heading {
  width: min(1056px, calc(100% - (var(--pad) * 2)));
  margin: 0 auto clamp(42px, 3.02vw, 58px);
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(36px, 3.33vw, 48px);
  line-height: 1.2;
  color: var(--nudgee-royal);
}

.pm-gallery__panel {
  position: relative;
  background: transparent;
  margin-left: var(--gal-inset);
  padding: 0 0 var(--gal-panel-bottom);         /* bottom cream band under caption */
  overflow: hidden;                             /* clip the right-side peek */
}

.pm-gallery__panel::before {
  content: "";
  position: absolute;
  top: var(--gal-panel-offset);
  right: 0;
  bottom: 0;
  left: 0;
  background: var(--nudgee-light);              /* #EAE8E3 cream block */
  z-index: 0;
}

/* carousel offset right of the left arrow gutter */
.pm-gallery__owl {
  position: relative;
  z-index: 1;
  margin-left: var(--gal-stage);
}
.pm-gallery__owl .owl-stage {
  display: flex;
  align-items: flex-start;
}
.pm-gallery__owl .owl-item {
  flex: 0 0 auto;
}

.pm-gallery__item {
  width: var(--gal-w);     /* size to the image so autoWidth measures the crop */
  max-width: 88vw;
  margin: 0;
}
.pm-gallery__item.is-portrait {
  display: inline-block;
  width: auto;
  vertical-align: top;
}
.pm-gallery__link {
  display: block;
  border-radius: 0;        /* square corners — no radius anywhere */
  overflow: hidden;
  cursor: zoom-in;
}
.pm-gallery__owl.owl-carousel .owl-item img,
.pm-gallery__item img {
  display: block;
  width: 100%;
  max-width: 88vw;
  height: var(--gal-h);
  object-fit: cover;
  border-radius: 0;
}
.pm-gallery__item.is-portrait .pm-gallery__link,
.pm-gallery__owl.owl-carousel .owl-item .pm-gallery__item.is-portrait img,
.pm-gallery__item.is-portrait img {
  width: auto;
  max-width: 88vw;
  height: var(--gal-h);
  object-fit: contain;
}
.pm-gallery__link,
.pm-gallery__owl.owl-carousel .owl-item img,
.pm-gallery__item img {
  border-radius: 10px;
}
.pm-gallery__caption {
  margin: clamp(10px, 0.9vw, 16px) 0 0;
  font-family: var(--font-head);   /* Poppins */
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--nudgee-navy);       /* #1E4273 */
}
.pm-gallery__caption::before {
  content: "\2014";               /* em-dash lead, gold */
  color: var(--gold-accent);
  margin-right: 10px;
}

/* nav arrows — bottom-left, in the cream gutter, aligned to the image bottom */
.pm-gallery__nav {
  position: absolute;
  left: clamp(24px, 5.15vw, 99px);
  top: calc(var(--gal-h) - var(--gal-arrow));
  display: flex;
  gap: clamp(8px, 0.68vw, 13px);
  z-index: 2;
}
.pm-gallery__arrow {
  width: var(--gal-arrow);
  height: var(--gal-arrow);
  padding: 0;
  border: 1px solid var(--gold-accent);
  border-radius: 50%;
  background: transparent;
  color: var(--gold-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  -webkit-transition: background 0.3s, color 0.3s;
  -o-transition: background 0.3s, color 0.3s;
  transition: background 0.3s, color 0.3s;
}
.pm-gallery__arrow svg { width: 46%; height: auto; }
.pm-gallery__arrow:hover,
.pm-gallery__arrow:focus-visible { background: var(--gold-accent); color: var(--white); }
.pm-gallery__arrow.is-disabled { opacity: 0.35; cursor: default; }
.pm-gallery__arrow.is-disabled:hover,
.pm-gallery__arrow.is-disabled:focus-visible { background: transparent; color: var(--gold-accent); }

/* ---- Shared gallery lightbox ---- */
.glightbox-container,
.glightbox-container .goverlay,
.glightbox-mobile .goverlay {
  background: var(--nudgee-light);
}
.glightbox-clean .gslide-description,
.glightbox-mobile .glightbox-container .gslide-description {
  background: transparent;
  position: relative;
  bottom: auto;
  flex: 0 0 auto;
  max-height: none;
  padding: 22px 20px;
  overflow: visible !important;
}
.glightbox-clean .gslide-title,
.glightbox-clean .gslide-desc,
.glightbox-clean .gslide-desc *,
.glightbox-mobile .glightbox-container .gslide-title,
.glightbox-mobile .glightbox-container .gslide-desc,
.glightbox-mobile .glightbox-container .gslide-desc * {
  color: var(--nudgee-royal);
}
.glightbox-clean .gprev.disabled,
.glightbox-clean .gnext.disabled,
.glightbox-clean .gprev:disabled,
.glightbox-clean .gnext:disabled {
  pointer-events: none;
  cursor: default;
}
.glightbox-container.pm-video-lightbox .gprev,
.glightbox-container.pm-video-lightbox .gnext { display: none !important; }
.glightbox-container.pm-video-lightbox,
.glightbox-container.pm-video-lightbox .goverlay,
.glightbox-container.pm-video-lightbox .gslide-video,
.glightbox-container.pm-video-lightbox .gvideo-wrapper {
  background: var(--nudgee-navy);
}

/* ---- shared module bits ---- */
.pm-eyebrow { display: block; font-family: var(--font-head); font-weight: 700; font-size: 16px;
  letter-spacing: 1.2px; text-transform: uppercase; color: var(--gold-accent); margin-bottom: 16px; }
.pm-section-title { font-family: var(--font-display); font-weight: 400; font-size: 48px; line-height: 1.2;
  color: var(--nudgee-royal); margin: 0 0 44px; }
.pm-section-title--light { color: var(--nudgee-light); }
.pm-btn { margin-top: 30px; }

/* ---- Photo Gallery grid ---- */
.pm-gallery-grid {
  padding: clamp(72px, 5.52vw, 106px) 0 clamp(54px, 4.17vw, 80px);
}
.pm-gallery-grid--mosaic {
  padding-bottom: clamp(54px, 3.75vw, 72px);
}
.pm-gallery-grid--square {
  padding-top: clamp(54px, 3.75vw, 72px);
}
.pm-gallery-grid__heading {
  margin-bottom: clamp(60px, 3.85vw, 74px);
}
.pm-gallery-grid--square .pm-gallery-grid__heading {
  margin-bottom: clamp(68px, 4.55vw, 87px);
}
.pm-gallery-grid__grid {
  width: 100%;
}
.pm-gallery-grid--mosaic .pm-gallery-grid__grid {
  --pm-grid-gap: clamp(18px, 1.67vw, 32px);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-flow: row dense;
  gap: var(--pm-grid-gap);
  align-items: stretch;
}
.pm-gallery-grid__item {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
  background: var(--nudgee-light);
}
.pm-gallery-grid--mosaic .pm-gallery-grid__item {
  display: block;
  width: 100%;
  min-width: 0;
}
.pm-gallery-grid--mosaic .pm-gallery-grid__item.is-portrait {
  grid-row: span 2;
  aspect-ratio: 512 / 728;
}
.pm-gallery-grid--mosaic .pm-gallery-grid__item.is-wide {
  grid-row: span 1;
  aspect-ratio: 512 / 342;
}
.pm-gallery-grid__link {
  position: relative;
  display: block;
  width: 100%;
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  border-radius: 10px;              /* mosaic tiles are item + link on one <a> */
  cursor: zoom-in;
}
.pm-gallery-grid__link.has-caption::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,0) 75%, rgba(0,0,0,0.8) 95%);
}
.pm-gallery-grid__item img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 0;
}
.pm-gallery-grid--mosaic .pm-gallery-grid__item img {
  height: 100%;
}
.pm-gallery-grid__caption:not(.sr-only) {
  position: absolute;
  left: clamp(22px, 1.7vw, 33px);
  right: clamp(22px, 1.7vw, 33px);
  bottom: 0;
  z-index: 2;
  pointer-events: none;
  margin: 0;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: clamp(16px, 1.04vw, 20px);
  line-height: 1.4;
  letter-spacing: 0.48px;
  color: var(--gold-accent);
}
.pm-gallery-grid--square .pm-gallery-grid__grid {
  --pm-square-gap: clamp(18px, 1.67vw, 32px);
  --pm-square-size: min(376px, calc((100vw - (var(--pad) * 2) - (var(--pm-square-gap) * 3)) / 4));
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--pm-square-gap);
}
.pm-gallery-grid--square .pm-gallery-grid__item {
  flex: 0 0 var(--pm-square-size);
  width: var(--pm-square-size);
  aspect-ratio: 1 / 1;
}
.pm-gallery-grid--square .pm-gallery-grid__link,
.pm-gallery-grid--square .pm-gallery-grid__item img {
  height: 100%;
}

@media (max-width: 767px) {
  .pm-gallery-grid {
    padding: 56px 0;
  }
  .pm-gallery-grid--mosaic,
  .pm-gallery-grid--square {
    padding-top: 56px;
    padding-bottom: 56px;
  }
  .pm-gallery-grid__heading,
  .pm-gallery-grid--square .pm-gallery-grid__heading {
    margin-bottom: 32px;
  }
  .pm-gallery-grid--mosaic .pm-gallery-grid__grid {
    grid-template-columns: 1fr;
    grid-auto-flow: row;
  }
  .pm-gallery-grid--mosaic .pm-gallery-grid__item.is-portrait,
  .pm-gallery-grid--mosaic .pm-gallery-grid__item.is-wide {
    grid-row: span 1;
  }
  .pm-gallery-grid--square .pm-gallery-grid__grid {
    --pm-square-size: calc((100vw - (var(--pad) * 2) - var(--pm-square-gap)) / 2);
    justify-content: flex-start;
  }
}
@media (min-width: 1200px) {
  .page-modules > .pm-module:not(.pm-divider) + .pm-editorial,
  .page-modules > .pm-editorial + .pm-module,
  .page-modules > .pm-editorial + .gp-read-next {
    margin-top: clamp(60px, 5vw, 96px);
  }
}

.pm-editorial {
  --editorial-bg: var(--white);
  --editorial-heading: var(--nudgee-royal);
  --editorial-text: var(--black);
  --editorial-line: var(--gold-accent);
  position: relative;
  overflow: hidden;
  padding: clamp(104px, 7.1vw, 136px) 0;
  background: var(--editorial-bg);
}
.pm-editorial--white { --editorial-bg: var(--white); }
.pm-editorial--grey { --editorial-bg: var(--nudgee-light); }
.pm-editorial--blue {
  --editorial-bg: var(--nudgee-royal);
  --editorial-heading: var(--white);
  --editorial-text: var(--white);
}
.pm-editorial--navy {
  --editorial-bg: var(--nudgee-ink);
  --editorial-heading: var(--white);
  --editorial-text: var(--white);
}
.pm-editorial__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(360px, 0.72fr);
  grid-template-areas: "media content";
  align-items: center;
  column-gap: clamp(76px, 7.3vw, 140px);
  min-height: clamp(540px, 37vw, 710px);
}
.pm-editorial--image-right .pm-editorial__inner {
  grid-template-columns: minmax(360px, 0.72fr) minmax(0, 1.06fr);
  grid-template-areas: "content media";
}
.pm-editorial__content {
  grid-area: content;
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 512px;
}
.pm-editorial__title::before {
  content: "";
  position: absolute;
  top: 40px;
  right: calc(100% + 26px);
  width: 143.297px;
  height: 1px;
  background: var(--editorial-line);
}
.pm-editorial__eyebrow {
  margin: 0 0 8px;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.55;
  color: var(--gold-accent);
}
.pm-editorial__title {
  position: relative;              /* anchors the ::before gold line to the title */
  margin: 0 0 55px;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 68px;
  line-height: 1.2;
  color: var(--editorial-heading);
}
.pm-editorial__lead {
  margin: 0 0 24px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 22px;
  line-height: 1.74;
  letter-spacing: 0.66px;
  color: var(--editorial-text);
}
.pm-editorial__copy {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--editorial-text);
}
.pm-editorial__copy p { margin: 0; }
.pm-editorial__copy p + p { margin-top: 21px; }
.pm-editorial__copy ul,
.pm-editorial__copy ol {
  margin: 0;
  padding-left: 24px;
}
.pm-editorial__copy p + ul,
.pm-editorial__copy p + ol,
.pm-editorial__copy ul + p,
.pm-editorial__copy ol + p {
  margin-top: 21px;
}
.pm-editorial__copy li + li { margin-top: 8px; }
.pm-editorial__copy li::marker { color: var(--gold-accent); }
.pm-editorial__cta { margin-top: 30px; }
.pm-editorial--blue .pm-editorial__cta,
.pm-editorial--navy .pm-editorial__cta { color: var(--white); }
.pm-editorial__media {
  grid-area: media;
  position: relative;
  z-index: 1;
  width: 100%;
  min-width: 0;
  margin: 0;
}
.pm-editorial--one-image .pm-editorial__media {
  aspect-ratio: 1.12 / 1;
}
.pm-editorial--two-images .pm-editorial__media {
  height: clamp(560px, 39vw, 750px);
}
.pm-editorial__image {
  display: block;
  object-fit: cover;
  border-radius: 10px;
}
.pm-editorial--one-image .pm-editorial__image--primary {
  width: 100%;
  height: 100%;
}
.pm-editorial--two-images .pm-editorial__image {
  position: absolute;
}
.pm-editorial--two-images .pm-editorial__image--primary {
  top: 0;
  width: 79%;
  height: 76%;
}
.pm-editorial--two-images .pm-editorial__image--secondary {
  bottom: 0;
  z-index: 2;
  width: 47%;
  height: 44%;
}
.pm-editorial--image-left .pm-editorial__image--primary { left: 0; }
.pm-editorial--image-left .pm-editorial__image--secondary { right: 0; }
.pm-editorial--image-right .pm-editorial__image--primary { right: 0; }
.pm-editorial--image-right .pm-editorial__image--secondary { left: 0; }

@media (min-width: 1200px) {
  .page-modules > .gp-hero + .pm-editorial,
  .page-modules > .pm-divider + .pm-editorial {
    margin-top: clamp(60px, 5vw, 96px);
  }
  .pm-editorial {
    min-height: var(--editorial-height, 1036px);
    padding: 0;
  }
  .pm-editorial__eyebrow { margin-bottom: 17px; }
  .pm-editorial__title { margin-bottom: 94px; }
  .pm-editorial__lead { margin-bottom: 34px; }
  .pm-editorial__cta { margin-top: 41px; }
  .pm-editorial__inner,
  .pm-editorial--image-right .pm-editorial__inner {
    position: relative;
    width: 100%;
    max-width: 1920px;
    height: var(--editorial-height, 1036px);
    min-height: 0;
    display: block;
    margin: 0 auto;
  }
  .pm-editorial__content {
    position: absolute;
    top: var(--editorial-content-top, 52px);
    z-index: 3;
    max-width: none;
  }
  .pm-editorial--image-right .pm-editorial__content {
    left: 160px;
    width: 784px;
  }
  .pm-editorial--image-left .pm-editorial__content {
    left: 968px;
    width: 648px;
  }
  .pm-editorial--image-right .pm-editorial__lead,
  .pm-editorial--image-right .pm-editorial__copy {
    width: 648px;
    margin-left: 136px;
  }
  .pm-editorial--image-right .pm-editorial__copy {
    width: 513px;
  }
  .pm-editorial--image-right .pm-editorial__cta { margin-left: 136px; }
  .pm-editorial--image-right .pm-editorial__title,
  .pm-editorial--image-left .pm-editorial__title,
  .pm-editorial--image-left .pm-editorial__lead,
  .pm-editorial--image-left .pm-editorial__copy { width: 648px; }
  .pm-editorial--image-right .pm-editorial__content::before {
    right: auto;
    left: -160px;
  }
  .pm-editorial--image-left .pm-editorial__content::before {
    right: calc(100% + 17px);
    left: auto;
  }
  .pm-editorial__media,
  .pm-editorial--one-image .pm-editorial__media,
  .pm-editorial--two-images .pm-editorial__media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
  }
  .pm-editorial__image,
  .pm-editorial--one-image .pm-editorial__image--primary,
  .pm-editorial--two-images .pm-editorial__image,
  .pm-editorial--two-images .pm-editorial__image--primary,
  .pm-editorial--two-images .pm-editorial__image--secondary {
    position: absolute;
    display: block;
    object-fit: cover;
  }
  .pm-editorial__image--primary,
  .pm-editorial--one-image .pm-editorial__image--primary,
  .pm-editorial--two-images .pm-editorial__image--primary {
    top: var(--editorial-primary-top, 0px);
    width: var(--editorial-primary-width, 892px);
    height: var(--editorial-primary-height, 842px);
  }
  .pm-editorial--image-right .pm-editorial__image--primary {
    right: 0;
    left: auto;
    width: min(var(--editorial-primary-width, 892px), calc(100% - 840px));
    border-radius: 10px 0 0 10px;
  }
  .pm-editorial--image-left .pm-editorial__image--primary {
    right: auto;
    left: 0;
    border-radius: 0 10px 10px 0;
  }
  .pm-editorial--two-images .pm-editorial__image--secondary {
    bottom: var(--editorial-secondary-bottom, 54px);
    z-index: 2;
    width: 460px;
    height: 460px;
    border-radius: 10px;
  }
  .pm-editorial--image-right .pm-editorial__image--secondary {
    right: auto;
    left: 892px;
  }
  .pm-editorial--image-left .pm-editorial__image--secondary {
    right: auto;
    left: 348px;
  }
}

/* News modules use the same Editorial design without the fixed 1920px axes. */
@media (min-width: 1200px) {
  .news-detail__module-slot .pm-editorial {
    min-height: 0;
    padding: clamp(104px, 7.1vw, 136px) 0;
  }
  .news-detail__module-slot .pm-editorial__inner,
  .news-detail__module-slot .pm-editorial--image-right .pm-editorial__inner {
    position: relative;
    display: grid;
    width: min(1600px, calc(100% - (var(--pad) * 2)));
    max-width: none;
    height: auto;
    min-height: clamp(540px, 37vw, 710px);
    margin: 0 auto;
    grid-template-columns: minmax(0, 1.06fr) minmax(360px, 0.72fr);
    grid-template-areas: "media content";
    align-items: center;
    column-gap: clamp(76px, 7.3vw, 140px);
  }
  .news-detail__module-slot .pm-editorial--image-right .pm-editorial__inner {
    grid-template-columns: minmax(360px, 0.72fr) minmax(0, 1.06fr);
    grid-template-areas: "content media";
  }
  .news-detail__module-slot .pm-editorial__content,
  .news-detail__module-slot .pm-editorial--image-right .pm-editorial__content,
  .news-detail__module-slot .pm-editorial--image-left .pm-editorial__content {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    max-width: 512px;
  }
  .news-detail__module-slot .pm-editorial__eyebrow {
    margin-bottom: 8px;
    font-size: clamp(18px, 1.15vw, 22px);
  }
  .news-detail__module-slot .pm-editorial__title,
  .news-detail__module-slot .pm-editorial--image-right .pm-editorial__title,
  .news-detail__module-slot .pm-editorial--image-left .pm-editorial__title {
    width: auto;
    margin-bottom: clamp(40px, 3.2vw, 55px);
    font-size: clamp(48px, 3.55vw, 68px);
  }
  .news-detail__module-slot .pm-editorial__lead,
  .news-detail__module-slot .pm-editorial__copy,
  .news-detail__module-slot .pm-editorial--image-right .pm-editorial__lead,
  .news-detail__module-slot .pm-editorial--image-right .pm-editorial__copy,
  .news-detail__module-slot .pm-editorial--image-left .pm-editorial__lead,
  .news-detail__module-slot .pm-editorial--image-left .pm-editorial__copy {
    width: auto;
    margin-left: 0;
  }
  .news-detail__module-slot .pm-editorial__lead {
    margin-bottom: 24px;
    font-size: clamp(18px, 1.15vw, 22px);
  }
  .news-detail__module-slot .pm-editorial__cta,
  .news-detail__module-slot .pm-editorial--image-right .pm-editorial__cta {
    margin-top: 30px;
    margin-left: 0;
  }
  .news-detail__module-slot .pm-editorial__media,
  .news-detail__module-slot .pm-editorial--one-image .pm-editorial__media,
  .news-detail__module-slot .pm-editorial--two-images .pm-editorial__media {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
  }
  .news-detail__module-slot .pm-editorial--one-image .pm-editorial__media {
    aspect-ratio: 1.12 / 1;
  }
  .news-detail__module-slot .pm-editorial--one-image .pm-editorial__image--primary {
    position: static;
    width: 100%;
    height: 100%;
    border-radius: 10px;
  }
  .news-detail__module-slot .pm-editorial--two-images .pm-editorial__media {
    height: clamp(560px, 39vw, 750px);
  }
  .news-detail__module-slot .pm-editorial--two-images .pm-editorial__image {
    position: absolute;
  }
  .news-detail__module-slot .pm-editorial--two-images .pm-editorial__image--primary {
    top: 0;
    width: 79%;
    height: 76%;
  }
  .news-detail__module-slot .pm-editorial--two-images .pm-editorial__image--secondary {
    top: auto;
    bottom: 0;
    width: 47%;
    height: 44%;
  }
  .news-detail__module-slot .pm-editorial--image-right .pm-editorial__image--primary {
    right: 0;
    left: auto;
    border-radius: 10px;
  }
  .news-detail__module-slot .pm-editorial--image-right .pm-editorial__image--secondary {
    right: auto;
    left: 0;
  }
  .news-detail__module-slot .pm-editorial--image-left .pm-editorial__image--primary {
    right: auto;
    left: 0;
    border-radius: 10px;
  }
  .news-detail__module-slot .pm-editorial--image-left .pm-editorial__image--secondary {
    right: 0;
    left: auto;
  }
}

@media (max-width: 1199px) {
  .pm-editorial {
    padding: 88px 0;
  }
  .pm-editorial__inner,
  .pm-editorial--image-right .pm-editorial__inner {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.78fr);
    column-gap: 64px;
    min-height: 500px;
  }
  .pm-editorial--image-right .pm-editorial__inner {
    grid-template-columns: minmax(300px, 0.78fr) minmax(0, 1fr);
  }
  .pm-editorial__title {
    margin-bottom: 28px;
    font-size: 44px;
  }
  .pm-editorial__eyebrow { font-size: 15px; }
  .pm-editorial__lead {
    font-size: 16px;
    line-height: 1.55;
    letter-spacing: 0;
  }
  .pm-editorial__copy {
    font-size: 14px;
    line-height: 1.7;
    letter-spacing: 0;
  }
  .pm-editorial__content::before {
    top: 44px;
    width: 90px;
  }
  .pm-editorial--two-images .pm-editorial__media { height: 520px; }
}

@media (max-width: 991px) {
  .pm-editorial {
    padding: 72px 0;
  }
  .pm-editorial__inner,
  .pm-editorial--image-right .pm-editorial__inner {
    grid-template-columns: minmax(0, 1.04fr) minmax(270px, 0.8fr);
    column-gap: 44px;
    min-height: 440px;
  }
  .pm-editorial--image-right .pm-editorial__inner {
    grid-template-columns: minmax(270px, 0.8fr) minmax(0, 1.04fr);
  }
  .pm-editorial__title { font-size: 38px; }
  .pm-editorial__lead { font-size: 14px; }
  .pm-editorial__copy { font-size: 13px; }
  .pm-editorial--two-images .pm-editorial__media { height: 430px; }
  .pm-editorial__content::before {
    right: calc(100% + 18px);
    width: 38px;
  }
}

@media (max-width: 767px) {
  .page-modules > .pm-imagetext + .pm-accordion { padding-top: 48px; }
  .pm-editorial { padding: 60px 0; }
  .pm-editorial__inner,
  .pm-editorial--image-right .pm-editorial__inner {
    grid-template-columns: 1fr;
    row-gap: 42px;
    min-height: 0;
  }
  .pm-editorial--image-left .pm-editorial__inner,
  .pm-editorial--image-right .pm-editorial__inner {
    grid-template-areas: "media" "content";
  }
  .pm-editorial .pm-editorial__media { order: 1; }
  .pm-editorial .pm-editorial__content {
    order: 2;
    max-width: none;
  }
  .pm-editorial__content::before { display: none; }
  .pm-editorial__eyebrow {
    margin-bottom: 10px;
    font-size: 14px;
  }
  .pm-editorial__title {
    margin-bottom: 24px;
    font-size: 36px;
  }
  .pm-editorial__lead {
    margin-bottom: 22px;
    font-size: 15px;
  }
  .pm-editorial__copy {
    font-size: 14px;
    line-height: 1.65;
  }
  .pm-editorial__cta { margin-top: 25px; }
  .pm-editorial--one-image .pm-editorial__media { aspect-ratio: 1 / 0.88; }
  .pm-editorial--two-images .pm-editorial__media { height: min(116vw, 500px); }
  .pm-editorial--two-images .pm-editorial__image--primary {
    width: 82%;
    height: 76%;
  }
  .pm-editorial--two-images .pm-editorial__image--secondary {
    width: 50%;
    height: 43%;
  }
}

/* ---- Accordion (native details) ---- */
.page-modules > .pm-imagetext + .pm-accordion {
  padding-top: clamp(64px, 5.2vw, 100px);
}
.pm-accordion:not(.pm-accordion--full) { padding-bottom: 45px; }
.pm-accordion--full { padding-top: 24px; }
.pm-accordion__grid {
  width: min(1328px, calc(100% - (var(--pad) * 2)));
  display: grid;
  grid-template-columns: minmax(0, 512fr) minmax(0, 648fr);
  gap: clamp(64px, 8.75vw, 168px);
  align-items: start;
}
.pm-accordion .pm-eyebrow {
  margin-bottom: 22px;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.55;
  letter-spacing: 0.54px;
  text-transform: none;
}
.pm-accordion__title {
  margin: 0 0 27px;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 48px;
  line-height: 1.2;
  color: var(--nudgee-royal);
}
.pm-accordion__intro,
.pm-accordion__intro p,
.pm-accordion__intro ul,
.pm-accordion__intro ol {
  margin: 0;
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}
.pm-accordion__intro p + p,
.pm-accordion__intro p + ul,
.pm-accordion__intro p + ol,
.pm-accordion__intro ul + p,
.pm-accordion__intro ol + p {
  margin-top: 18px;
}
.pm-accordion__intro ul,
.pm-accordion__intro ol {
  padding-left: 24px;
}
.pm-accordion__intro li + li { margin-top: 8px; }
.pm-accordion__grid > .pm-accordion__list { margin-top: 18px; }
.pm-accordion__list { border-top: 1px solid var(--nudgee-light); }
.pm-accordion__item { border-bottom: 1px solid var(--nudgee-light); }
.pm-accordion__item.is-animating {
  overflow: hidden;
  will-change: height;
  transition: height 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}
.pm-accordion__item summary {
  min-height: 78.68px;
  padding: 20.74px 0;
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.55;
  color: var(--nudgee-royal);
}
.pm-accordion__item summary::-webkit-details-marker { display: none; }
@property --pm-accordion-rotate-transform {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

.pm-accordion__icon {
  position: relative;
  flex: 0 0 37px;
  width: 37px;
  height: 37px;
  border-radius: 50%;
  background: var(--gold-linear);
  box-shadow: inset 0 0 0 20px var(--nudgee-light), 0 0 0 rgba(0, 0, 0, 0);
  transition: box-shadow 0.3s ease-out;
}
.pm-accordion__icon::before,
.pm-accordion__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14.673px;
  height: 1.565px;
  background: var(--black);
  transform-origin: center;
  transition: --pm-accordion-rotate-transform 0.3s ease-out,
              scale 0.3s ease-out,
              background-color 0.3s ease-out,
              opacity 0.3s ease-out;
}
.pm-accordion__icon::before {
  --pm-accordion-rotate-transform: -180deg;
  transform: translate(-50%, -50%) rotate(var(--pm-accordion-rotate-transform));
}
.pm-accordion__icon::after {
  --pm-accordion-rotate-transform: 90deg;
  opacity: 1;
  scale: 1 1;
  transform: translate(-50%, -50%) rotate(var(--pm-accordion-rotate-transform));
}
.pm-accordion__item[open] .pm-accordion__icon::after {
  opacity: 0;
  scale: 0 1;
}
.pm-accordion__item[open] .pm-accordion__icon::before {
  --pm-accordion-rotate-transform: 0deg;
}
.pm-accordion__item.is-closing .pm-accordion__icon::after {
  opacity: 1;
  scale: 1 1;
}
@media (hover: hover) and (min-width: 1025px) {
  .pm-accordion__item:not([open]) summary:hover .pm-accordion__icon {
    box-shadow: inset 0 0 0 20px rgba(234, 232, 227, 0), 0 0 12px rgba(0, 0, 0, 0.25);
  }
  .pm-accordion__item:not([open]) summary:hover .pm-accordion__icon::before,
  .pm-accordion__item:not([open]) summary:hover .pm-accordion__icon::after {
    background-color: var(--white);
  }
  .pm-accordion__item:not([open]) summary:hover .pm-accordion__icon::before {
    --pm-accordion-rotate-transform: -90deg;
  }
  .pm-accordion__item:not([open]) summary:hover .pm-accordion__icon::after {
    --pm-accordion-rotate-transform: 180deg;
  }
  .pm-accordion__item[open]:not(.is-closing) summary:hover .pm-accordion__icon {
    box-shadow: inset 0 0 0 20px rgba(234, 232, 227, 0), 0 0 12px rgba(0, 0, 0, 0.25);
  }
  .pm-accordion__item[open]:not(.is-closing) summary:hover .pm-accordion__icon::before {
    --pm-accordion-rotate-transform: -180deg;
    background-color: var(--white);
  }
}
.pm-accordion__panel { padding: 4px 0 44px; }
.pm-accordion__panel p {
  max-width: 1056px;
  margin: 0;
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}
.pm-accordion__panel p + p,
.pm-accordion__panel ul + p,
.pm-accordion__panel ol + p {
  margin-top: 18px;
}
.pm-accordion__panel h1,
.pm-accordion__panel h2 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.2;
  color: var(--nudgee-royal);
}
.pm-accordion__panel h1 {
  margin: 0 0 25px;
  font-size: 68px;
}
.pm-accordion__panel h2 {
  margin: 62px 0 22px;
  font-size: 48px;
}
.pm-accordion__panel h3 {
  margin: 76px 0 22px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.55;
  color: var(--nudgee-royal);
}
.pm-accordion__panel h4 {
  margin: 62px 0 25px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.55;
  color: var(--nudgee-royal);
}
.pm-accordion__panel h5,
.pm-accordion__panel h6 {
  margin: 48px 0 20px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.55;
  color: var(--nudgee-royal);
}
.pm-accordion__panel ul,
.pm-accordion__panel ol {
  margin: 18px 0 0;
  padding-left: 24px;
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}
.pm-accordion__panel li + li {
  margin-top: 8px;
}
.pm-accordion__panel a:not(.link-dot) {
  color: var(--gold-accent);
}
.pm-accordion__panel .link-dot {
  margin-top: 24px;
}
.pm-accordion__panel blockquote {
  margin: 24px 0;
  padding-left: 20px;
  border-left: 2px solid var(--gold-accent);
  font-family: var(--font-display);
  font-size: 20px;
  line-height: 1.47;
  color: var(--gold-accent);
}
.pm-accordion__panel blockquote p {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
.pm-accordion__panel figure.image {
  max-width: 100%;
  margin: 24px 0;
}
.pm-accordion__panel figure.image img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}
.pm-accordion__panel figure.table {
  clear: both;
  width: 100% !important;
  max-width: 100%;
  margin: 41px 0 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.pm-accordion__panel figure.table table {
  width: 100%;
  min-width: 720px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0 5px;
}
.pm-accordion__panel figure.table th,
.pm-accordion__panel figure.table td {
  padding: 18px 16px !important;
  border: 0 !important;
  background: #f9f9f8;
  text-align: left;
  vertical-align: top;
}
.pm-accordion__panel figure.table th {
  font-weight: 700;
  line-height: 1.55;
  color: var(--nudgee-royal);
  vertical-align: middle;
}
.pm-accordion__panel figure.table td > :first-child {
  margin-top: 0;
}
.pm-accordion__panel figure.table td > :last-child {
  margin-bottom: 0;
}
.pm-accordion__cta { margin-top: 32px; }
.pm-accordion--full > .pm-container { width: min(1056px, calc(100% - (var(--pad) * 2))); }
.pm-accordion--full .pm-accordion__list { margin-top: 54px; }

@media (prefers-reduced-motion: reduce) {
  .pm-accordion__item.is-animating {
    transition: none;
  }
  .pm-accordion__icon,
  .pm-accordion__icon::before,
  .pm-accordion__icon::after {
    transition: none;
  }
}

/* ---- Image Text Box ---- */
.pm-imagetext {
  --it-background: var(--white);
  --it-title: var(--nudgee-royal);
  --it-copy: var(--black);
  --it-content-top: 195.209px;
  position: relative;
  height: auto;
  padding: 80px 0;
  overflow: hidden;
  background: var(--it-background);
}
.pm-imagetext__inner {
  position: relative;
  z-index: 1;
  width: min(1600px, calc(100% - (var(--pad) * 2)));
  height: auto;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 168px;
}
.pm-imagetext--image-left .pm-imagetext__inner { justify-content: flex-start; }
.pm-imagetext--image-right .pm-imagetext__inner { justify-content: flex-end; }
.pm-imagetext--image-left .pm-imagetext__media { order: -1; }
.pm-imagetext__media {
  flex: 0 0 784px;
  width: 784px;
  height: 784px;
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
}
.pm-imagetext__media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}
.pm-imagetext__body {
  flex: 0 0 512px;
  width: 512px;
  margin-top: 0;
  color: var(--it-copy);
}
.pm-imagetext__eyebrow {
  margin: 0 0 14.5px;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.55;
  color: var(--gold-accent);
  text-transform: uppercase;
}
body.home-page .pm-imagetext__eyebrow { text-transform: none; }
.pm-imagetext__title {
  margin: 0 0 27.205px;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 48px;
  line-height: 1.2;
  color: var(--it-title);
}
.pm-imagetext__copy,
.pm-imagetext__copy p {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: inherit;
}
.pm-imagetext__copy .pm-imagetext__lead { font-weight: 700; }
.pm-imagetext__copy p + p { margin-top: 27.84px; }
.pm-imagetext__copy ul,
.pm-imagetext__copy ol {
  margin: 0;
  padding-left: 24px;
}
.pm-imagetext__copy p + ul,
.pm-imagetext__copy p + ol,
.pm-imagetext__copy ul + p,
.pm-imagetext__copy ol + p { margin-top: 27.84px; }
.pm-imagetext__copy li + li { margin-top: 8px; }
.pm-imagetext__copy h2,
.pm-imagetext__copy h3,
.pm-imagetext__copy h4,
.pm-imagetext__copy h5 { margin-bottom: 27.84px; }
.pm-imagetext__cta { margin-top: 33.76px; }
.pm-imagetext__actions {
  margin-top: 33.76px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 32px;
}
.pm-imagetext__actions .pm-imagetext__cta { margin-top: 0; }
.pm-imagetext--light {
  --it-background: var(--nudgee-light);
  --it-content-top: 158.379px;
}
.pm-imagetext--royal {
  --it-background: var(--nudgee-royal);
  --it-title: var(--white);
  --it-copy: var(--white);
  --it-content-top: 205.523px;
}
.pm-imagetext--ink {
  --it-background: var(--nudgee-ink);
  --it-title: var(--white);
  --it-copy: var(--white);
  --it-content-top: 209.593px;
}
.pm-imagetext--royal .pm-imagetext__cta,
.pm-imagetext--ink .pm-imagetext__cta { color: var(--white); }

@media (min-width: 1441px) and (max-width: 1919px) {
  .pm-imagetext__inner {
    display: grid;
    grid-template-columns: minmax(0, 512fr) minmax(0, 784fr);
    gap: clamp(72px, 8vw, 168px);
  }

  .pm-imagetext--image-left .pm-imagetext__inner {
    grid-template-columns: minmax(0, 784fr) minmax(0, 512fr);
    grid-template-areas: "media body";
  }

  .pm-imagetext--image-right .pm-imagetext__inner {
    grid-template-areas: "body media";
  }

  .pm-imagetext__media {
    grid-area: media;
    width: 100%;
    max-width: 784px;
    height: auto;
    min-width: 0;
    aspect-ratio: 1 / 1;
  }

  .pm-imagetext--image-left .pm-imagetext__media { justify-self: start; }
  .pm-imagetext--image-right .pm-imagetext__media { justify-self: end; }

  .pm-imagetext__body {
    grid-area: body;
    width: 100%;
    max-width: 512px;
    min-width: 0;
    align-self: center;
  }
}

@media (max-width: 1440px) {
  .pm-imagetext {
    height: auto;
    padding: clamp(54px, 4.17vw, 60px) 0;
  }
  .pm-imagetext__inner {
    gap: clamp(72px, 8vw, 115px);
  }
  .pm-imagetext__media {
    flex: 1 1 784px;
    width: auto;
    height: auto;
    aspect-ratio: 1 / 1;
    margin-top: 0;
  }
  .pm-imagetext__body {
    flex: 1 1 512px;
    width: auto;
    align-self: center;
    margin-top: 0;
  }
}

@media (max-width: 1199px) {
  .pm-imagetext {
    height: auto;
    padding: 72px 0;
  }
  .pm-imagetext__inner {
    width: calc(100% - (var(--pad) * 2));
    height: auto;
    flex-direction: column;
    gap: 44px;
  }
  .pm-imagetext__media,
  .pm-imagetext__body {
    flex: 0 0 auto;
    width: 100%;
  }
  .pm-imagetext .pm-imagetext__media {
    order: 1;
    height: auto;
    margin-top: 0;
    aspect-ratio: 1 / 1;
  }
  .pm-imagetext .pm-imagetext__body {
    order: 2;
    align-self: auto;
    margin-top: 0;
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .pm-imagetext .pm-imagetext__media {
    aspect-ratio: 3 / 2;
  }
}

@media (max-width: 767px) {
  .pm-imagetext { padding: 60px 0; }
  .pm-imagetext__inner { gap: 36px; }
  .pm-imagetext__eyebrow {
    margin-bottom: 10px;
    font-size: 18px;
  }
  .pm-imagetext__title {
    margin-bottom: 22px;
    font-size: 36px;
  }
  .pm-imagetext__copy,
  .pm-imagetext__copy p { font-size: 15px; }
  .pm-imagetext__copy p + p { margin-top: 24px; }
  .pm-imagetext__copy p + ul,
  .pm-imagetext__copy p + ol,
  .pm-imagetext__copy ul + p,
  .pm-imagetext__copy ol + p { margin-top: 24px; }
  .pm-imagetext__copy h2,
  .pm-imagetext__copy h3,
  .pm-imagetext__copy h4,
  .pm-imagetext__copy h5 { margin-bottom: 24px; }
  .pm-imagetext__cta { margin-top: 28px; }
  .pm-imagetext__actions {
    margin-top: 28px;
    gap: 16px 24px;
  }
  .pm-imagetext__actions .pm-imagetext__cta { margin-top: 0; }
}

/* ---- Image Divider ---- */
.pm-divider {
  --divider-overlay: 0%;
  --divider-overlay-color: var(--nudgee-ink);
  --divider-position: center center;
  position: relative;
  isolation: isolate;
  height: auto;
  min-height: clamp(560px, 46.3vw, 889px);
  padding: 0;
  overflow: hidden;
}
.pm-divider__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

.pm-divider--image-only .pm-divider__media[data-aos="fade-zoom-in"] {
  opacity: 0;
  transform: translateZ(0) scale(.6);
  transition-property: opacity, transform;
}
.pm-divider--image-only .pm-divider__media[data-aos="fade-zoom-in"].aos-animate {
  opacity: 1;
  transform: translateZ(0) scale(1);
}
.pm-divider__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--divider-position);
}
.pm-divider[data-parallax] .pm-divider__bg {
  opacity: 0;
}
.pm-divider[data-parallax] .pm-divider__media {
  background-repeat: no-repeat;
  background-position: var(--divider-position);
  background-size: cover;
  background-attachment: fixed;
}
.pm-divider__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--divider-overlay-color);
  opacity: var(--divider-overlay);
  pointer-events: none;
}
.pm-divider--left .pm-divider__overlay {
  background: linear-gradient(90deg, color-mix(in srgb, var(--divider-overlay-color) var(--divider-overlay), transparent) 34.864%, transparent 50%);
  opacity: 1;
}
.pm-divider--right .pm-divider__overlay {
  background: linear-gradient(270deg, color-mix(in srgb, var(--divider-overlay-color) var(--divider-overlay), transparent) 35.051%, transparent 50%);
  opacity: 1;
}
.pm-divider__frame {
  position: relative;
  z-index: 2;
  width: 100%;
  height: auto;
  min-height: inherit;
  display: flex;
  align-items: center;
  padding: clamp(30px, 2.65vw, 51px) clamp(30px, 3.125vw, 60px);
}
.pm-divider--left .pm-divider__frame { justify-content: flex-start; }
.pm-divider--right .pm-divider__frame { justify-content: flex-end; }
.pm-divider--center .pm-divider__frame { justify-content: center; }
.pm-divider__content {
  width: clamp(460px, 34.73vw, 667px);
  height: auto;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: clamp(104px, 7.8vw, 150px) clamp(32px, 1.77vw, 34px) clamp(32px, 1.77vw, 34px);
  border-radius: 10.468px;
  background: rgba(0, 83, 155, 0.55);
  backdrop-filter: blur(25px);
  color: var(--white);
}
.pm-divider__eyebrow {
  margin: 0 0 24px;
  font-family: var(--font-head);
  font-size: clamp(24px, 1.67vw, 32px);
  font-weight: 400;
  line-height: 1.55;
  color: var(--gold-accent);
}
.pm-divider__title {
  margin: 0 0 24px;
  font-family: var(--font-display);
  font-size: clamp(46px, 3.55vw, 68px);
  font-weight: 400;
  line-height: 1.2;
  color: var(--white);
}
.pm-divider__copy {
  max-width: 528px;
  margin: 0;
  font-family: var(--font-head);
  font-size: clamp(14px, 0.84vw, 16px);
  font-weight: 400;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--white);
}
.pm-divider__cta {
  align-self: flex-start;
  margin-top: clamp(28px, 2vw, 38px);
  color: var(--white);
}
.pm-divider__cta .link-dot__label { color: inherit; }
.pm-divider--center .pm-divider__content {
  width: min(528px, calc(100% - 48px));
  height: auto;
  align-self: center;
  padding: 0;
  border-radius: 0;
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  text-align: center;
  justify-content: center;
}
.pm-divider--center .pm-divider__copy { margin-right: auto; margin-left: auto; }
.pm-divider--center .pm-divider__cta { align-self: center; }

@media (min-width: 1025px) {
  .pm-divider--center .pm-divider__frame {
    align-items: flex-start;
    padding-top: 198px;
  }
}

@media (max-width: 1024px) {
  .pm-divider {
    height: auto;
    min-height: clamp(520px, 60vw, 640px);
  }
  .pm-divider__frame { padding: 30px; }
  .pm-divider__content {
    width: min(480px, 48vw);
    padding: 74px 36px 36px;
  }
  .pm-divider__eyebrow { font-size: 20px; }
  .pm-divider__title { font-size: clamp(40px, 4.8vw, 50px); }
  .pm-divider__copy { font-size: 14px; }
}

@media (max-width: 767px) {
  .pm-divider {
    height: auto;
    min-height: 620px;
  }
  .pm-divider__frame {
    min-height: inherit;
    padding: 24px;
  }
  .pm-divider__content {
    width: 100%;
    height: auto;
    min-height: 470px;
    padding: 76px 28px 38px;
  }
  .pm-divider__eyebrow {
    margin-bottom: 20px;
    font-size: 18px;
  }
  .pm-divider__title {
    margin-bottom: 22px;
    font-size: 40px;
    line-height: 1.08;
  }
  .pm-divider__copy {
    max-width: 100%;
    font-size: 14px;
  }
  .pm-divider__cta { margin-top: 28px; }
  .pm-divider--center { min-height: 540px; }
  .pm-divider--center .pm-divider__content {
    width: 100%;
    min-height: 0;
  }
  .pm-divider--image-only { min-height: 360px; }
}

/* ---- Link Tiles ---- */
.pm-linktiles { background: var(--white); }
.pm-linktiles__heading {
  width: min(1056px, calc(100% - (var(--pad) * 2)));
  margin-right: auto;
  margin-left: auto;
}
.pm-linktiles__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-rows: auto;
  align-items: stretch;
  gap: clamp(18px, 1.56vw, 30px);
}
.pm-linktile {
  --tile-bg: transparent;
  --tile-hover: transparent;
  --tile-text: var(--white);
  --tile-hover-text: var(--white);
  position: relative;
  isolation: isolate;
  min-width: 0;
  min-height: clamp(112px, 7.92vw, 152px);
  display: flex;
  overflow: hidden;
  border-radius: 10px;
  background-color: var(--tile-bg);
  color: var(--tile-text);
  text-decoration: none;
  transition: background-color 0.35s ease, color 0.35s ease;
}
.pm-linktile--third { grid-column: span 2; }
.pm-linktile--two-thirds { grid-column: span 4; }
.pm-linktile--full { grid-column: 1 / -1; }

.pm-linktile--blue { --tile-bg: var(--nudgee-royal); --tile-hover: var(--nudgee-navy); }
.pm-linktile--gold {
  --tile-bg: var(--gold-accent);
  --tile-hover: var(--nudgee-light);
  --tile-hover-text: var(--nudgee-royal);
}
.pm-linktile--grey {
  --tile-bg: var(--nudgee-light);
  --tile-hover: var(--nudgee-royal);
  --tile-text: var(--nudgee-royal);
  --tile-hover-text: var(--white);
}
.pm-linktile--navy { --tile-bg: var(--nudgee-ink); --tile-hover: var(--nudgee-royal); }

.pm-linktile__media {
  position: relative;
  z-index: 0;
  display: block;
  min-width: 0;
  overflow: hidden;
}
.pm-linktile__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.001);
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.pm-linktile__wash {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(11, 27, 51, 0) 38%, rgba(11, 27, 51, 0.82) 100%);
  pointer-events: none;
}
.pm-linktile__content {
  position: relative;
  z-index: 2;
  min-width: 0;
  padding: clamp(22px, 1.67vw, 32px);
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
}
.pm-linktile__eyebrow {
  display: block;
  margin-bottom: 5px;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: clamp(11px, 0.73vw, 14px);
  line-height: 1.35;
  letter-spacing: 0.42px;
}
.pm-linktile__title {
  display: block;
  max-width: 100%;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: clamp(18px, 1.25vw, 24px);
  line-height: 1.25;
  letter-spacing: 0.24px;
}

/* A one-third image tile is the square, full-image treatment from row 2. */
.pm-linktile--image.pm-linktile--third { aspect-ratio: 1 / 1; }
.pm-linktile--image.pm-linktile--two-thirds { aspect-ratio: 2 / 1; }
.pm-linktile--image.pm-linktile--full { aspect-ratio: 3 / 1; }
.pm-linktile--image .pm-linktile__media { position: absolute; inset: 0; }
.pm-linktile--image .pm-linktile__content { position: absolute; inset: 0; }

/* Media + colour treatments establish the same shared row height as a third-
   width square: 2:1 at two-thirds and 3:1 at full width. */
.pm-linktile--split { display: grid; background-color: var(--tile-bg); }
.pm-linktile--split.pm-linktile--two-thirds { grid-template-columns: repeat(2, minmax(0, 1fr)); aspect-ratio: 2 / 1; }
.pm-linktile--split.pm-linktile--full { grid-template-columns: 1fr 2fr; aspect-ratio: 3 / 1; }
.pm-linktile--split .pm-linktile__media { height: 100%; }
.pm-linktile--split .pm-linktile__content { background-color: inherit; }
.pm-linktile--media-first .pm-linktile__media { order: -1; }

@media (hover: hover) {
  a.pm-linktile--colour:hover,
  a.pm-linktile--split:hover {
    background-color: var(--tile-hover);
    color: var(--tile-hover-text);
  }
  a.pm-linktile:hover .pm-linktile__media img { transform: scale(1.06); }
}
a.pm-linktile--colour:focus-visible,
a.pm-linktile--split:focus-visible {
  background-color: var(--tile-hover);
  color: var(--tile-hover-text);
}
a.pm-linktile:focus-visible .pm-linktile__media img { transform: scale(1.06); }

@media (max-width: 991px) {
  .pm-linktiles__grid { gap: 18px; }
  .pm-linktile__content { padding: 22px; }
  .pm-linktile__title { font-size: 20px; }
}

@media (max-width: 767px) {
  .pm-linktiles__heading { width: calc(100% - (var(--pad) * 2)); }
  .pm-linktiles__grid { grid-template-columns: 1fr; gap: 14px; }
  .pm-linktile--third,
  .pm-linktile--two-thirds,
  .pm-linktile--full { grid-column: 1 / -1; }
  .pm-linktile { min-height: 112px; }
  .pm-linktile--image.pm-linktile--third,
  .pm-linktile--image.pm-linktile--two-thirds,
  .pm-linktile--image.pm-linktile--full {
    width: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
  }
  .pm-linktile--split.pm-linktile--two-thirds,
  .pm-linktile--split.pm-linktile--full {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(240px, 68vw) auto;
    aspect-ratio: auto;
  }
  .pm-linktile--split .pm-linktile__media { order: -1; }
  .pm-linktile--split .pm-linktile__content { min-height: 132px; }
}

/* ---- Information Tiles: Standard variation — Figma 1407:1310–1335 ---- */
.pm-information {
  padding: clamp(64px, 5.2vw, 100px) 0 clamp(80px, 6.25vw, 120px);
  background: var(--white);
}
.pm-information__header {
  width: 512px;
  max-width: 100%;
  margin: 0 0 99px 272px;
}
.pm-information__title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 48px;
  line-height: 1.2;
  color: var(--nudgee-royal);
}
.pm-information__intro {
  max-width: 760px;
  margin: 24px 0 0;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.7;
  color: var(--black);
}
.pm-information__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 32px;
  align-items: stretch;
}
.pm-infotile {
  --infotile-bg: var(--nudgee-light);
  --infotile-title: var(--nudgee-royal);
  --infotile-text: var(--black);
  --infotile-arrow: var(--black);
  --infotile-ring: var(--gold-accent);
  position: relative;
  grid-column: span 2;
  display: grid;
  min-width: 0;
  min-height: 580.416px;
  overflow: hidden;
  border-radius: 10px;
  background: var(--infotile-bg);
  color: var(--infotile-text);
}
.pm-infotile--navy {
  --infotile-bg: var(--nudgee-ink);
  --infotile-title: var(--white);
  --infotile-text: var(--white);
  --infotile-arrow: var(--white);
  --infotile-ring: var(--gold-accent);
}
.pm-infotile--gold {
  --infotile-bg: var(--gold-accent);
  --infotile-title: var(--white);
  --infotile-text: var(--white);
  --infotile-arrow: var(--white);
  --infotile-ring: rgba(255, 255, 255, 0.85);
}
.pm-infotile--grey {
  --infotile-bg: var(--nudgee-light);
  --infotile-title: var(--nudgee-royal);
  --infotile-text: var(--black);
  --infotile-arrow: var(--black);
  --infotile-ring: var(--gold-accent);
}
.pm-infotile__media,
.pm-infotile__content {
  grid-area: 1 / 1;
}
.pm-infotile__media {
  position: relative;
  align-self: start;
  width: 100%;
  height: 58.818%;
  overflow: hidden;
}
.pm-infotile__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 31, 60, 0) 50%, color-mix(in srgb, var(--infotile-bg) 85%, transparent) 81.25%, var(--infotile-bg) 100%);
}
.pm-infotile__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pm-infotile__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 260px 40px 30px;
}
.pm-infotile__title,
.pm-infotile__copy,
.pm-infotile__arrow {
  display: block;
}
.pm-infotile__title {
  margin: 0 0 24px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.55;
  color: var(--infotile-title);
}
.pm-infotile__copy {
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--infotile-text);
}
.pm-infotile__arrow {
  position: relative;
  isolation: isolate;
  width: 52px;
  height: 52px;
  margin: auto 0 0 auto;
  border: 1px solid var(--infotile-ring);
  border-radius: 50%;
  color: var(--infotile-arrow);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: border-color 0.3s ease-out, color 0.3s ease-out;
}
.pm-infotile__arrow::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -1px;
  border-radius: inherit;
  background: var(--gold-linear);
  opacity: 0;
  transform: scale(0.72);
  transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}
.pm-infotile__arrow svg {
  display: block;
  width: 19.308px;
  height: 7.364px;
  transition: transform 0.3s ease-out;
}
@media (hover: hover) and (min-width: 1025px) {
  .pm-infotile:hover .pm-infotile__arrow {
    border-color: transparent;
    color: var(--white);
  }
  .pm-infotile:hover .pm-infotile__arrow::after {
    opacity: 1;
    transform: scale(1);
  }
  .pm-infotile:hover .pm-infotile__arrow svg {
    transform: translateX(3px);
  }
}
.pm-infotile:focus-visible {
  outline: 3px solid var(--gold-accent);
  outline-offset: 4px;
}
/* Centre a final row containing one or two tiles without relying on sample titles. */
.pm-infotile:nth-last-child(2):nth-child(3n + 1) { grid-column: 2 / span 2; }
.pm-infotile:last-child:nth-child(3n + 1) { grid-column: 3 / span 2; }

@media (max-width: 991px) {
  .pm-information__header {
    margin-left: 0;
    margin-bottom: 54px;
  }
  .pm-information__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
  .pm-infotile,
  .pm-infotile:nth-last-child(2):nth-child(3n + 1),
  .pm-infotile:last-child:nth-child(3n + 1) { grid-column: span 2; }
  .pm-infotile:last-child:nth-child(odd) { grid-column: 2 / span 2; }
  .pm-infotile__content { padding-top: clamp(210px, 28vw, 278px); }
}

@media (max-width: 767px) {
  .pm-information { padding: 60px 0; }
  .pm-information__header { margin-bottom: 40px; }
  .pm-information__title { font-size: 36px; }
  .pm-information__intro { margin-top: 18px; font-size: 15px; }
  .pm-information__grid { grid-template-columns: 1fr; gap: 16px; }
  .pm-infotile,
  .pm-infotile:nth-last-child(2):nth-child(3n + 1),
  .pm-infotile:last-child:nth-child(3n + 1),
  .pm-infotile:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
  .pm-infotile { min-height: 500px; }
  .pm-infotile__content { padding: 230px 28px 26px; }
  .pm-infotile__title { margin-bottom: 20px; font-size: 26px; }
  .pm-infotile__copy { font-size: 15px; }
}


.pm-information-card {
  min-width: 0;
  font-family: var(--font-head);
  color: var(--black);
}
.pm-information-card__image-link {
  display: block;
  border-radius: 20px;
}
.pm-information-card__image-link:focus-visible {
  outline: 3px solid var(--gold-accent);
  outline-offset: 4px;
}
.pm-information-card__image {
  display: block;
  width: 100%;
  object-fit: cover;
  border-radius: 20px;
}
.pm-information-card__title {
  margin: 24px 0 13px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.55;
  color: var(--nudgee-royal);
}
.pm-information-card__copy {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}
.pm-information-card__cta { margin-top: 22px; }

/* Information Tile inline popup — Figma 649:1058. */
.pm-information-lightbox,
.pm-information-lightbox .goverlay {
  background: var(--nudgee-light);
}

.pm-information-lightbox .gcontainer,
.pm-information-lightbox .gslider,
.pm-information-lightbox .gslide,
.pm-information-lightbox .gslide-inner-content,
.pm-information-lightbox .ginner-container,
.pm-information-lightbox .gslide-media,
.pm-information-lightbox .gslide-inline,
.pm-information-lightbox .ginlined-content {
  width: 100% !important;
  max-width: none !important;
}

.pm-information-lightbox .ginner-container,
.pm-information-lightbox .gslide-media,
.pm-information-lightbox .gslide-inline {
  height: 100vh !important;
  max-height: none !important;
}

.pm-information-lightbox .gslide-media {
  display: block;
  box-shadow: none !important;
}

.pm-information-lightbox .gslide-inline {
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
  background: var(--nudgee-light);
}

.pm-information-lightbox--with-media .gslide-inline {
  overflow-y: hidden;
}

.pm-information-lightbox .ginlined-content {
  min-height: 100%;
  padding: 0 !important;
}

.pm-information-lightbox .gprev,
.pm-information-lightbox .gnext {
  display: none !important;
}

.pm-information-lightbox .gclose {
  position: fixed;
  z-index: 10;
  top: 42px;
  right: clamp(30px, 3.125vw, 60px);
  width: 53px;
  height: 53px;
  border: 1px solid var(--gold-accent);
  border-radius: 50%;
  background: transparent !important;
  opacity: 1;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.pm-information-lightbox .gclose svg {
  width: 18px;
  height: 18px;
}

.pm-information-lightbox .gclose path {
  fill: var(--nudgee-royal);
}

.pm-information-lightbox .gclose:hover,
.pm-information-lightbox .gclose:focus-visible {
  background: var(--gold-accent) !important;
}

.pm-information-lightbox .gclose:hover path,
.pm-information-lightbox .gclose:focus-visible path {
  fill: var(--white);
}

.pm-information-lightbox .gclose:focus-visible {
  outline: 2px solid var(--nudgee-royal);
  outline-offset: 3px;
}

.pm-information-popup {
  width: min(1608px, calc(100% - 120px));
  min-height: 100vh;
  margin: 0 auto;
  padding: 71px 0 80px;
  box-sizing: border-box;
  font-family: var(--font-head);
  color: var(--black);
}

.pm-information-popup__layout {
  min-height: 100%;
}

.pm-information-popup__copy,
.pm-information-popup__gallery {
  min-width: 0;
}

.pm-information-popup--with-media {
  width: auto;
  height: 100vh;
  min-height: 0;
  margin-right: clamp(30px, 3.125vw, 60px);
  margin-left: max(60px, calc((100vw - 1600px) / 2));
  padding: 71px 0 58px;
  overflow: hidden;
}

/* GLightbox adds ginlined-content to the popup itself and supplies inline dimensions. */
.pm-information-lightbox .ginlined-content.pm-information-popup {
  width: min(1608px, calc(100% - 120px)) !important;
  height: auto !important;
  min-height: 100vh;
  padding: 71px 0 80px !important;
}

.pm-information-lightbox .ginlined-content.pm-information-popup--with-media {
  width: auto !important;
  height: 100vh !important;
  min-height: 0;
  padding: 71px 0 58px !important;
}

.pm-information-popup--with-media .pm-information-popup__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(520px, 37.5vw, 720px);
  column-gap: clamp(20px, 1.458vw, 28px);
  align-items: start;
  height: 100%;
  min-height: 0;
}

.pm-information-popup--with-media .pm-information-popup__copy {
  height: 100%;
  min-height: 0;
  padding-right: clamp(24px, 1.667vw, 32px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--gold-accent) rgba(0, 83, 155, 0.1);
}

.pm-information-popup--with-media .pm-information-popup__copy::-webkit-scrollbar {
  width: 10px;
}

.pm-information-popup--with-media .pm-information-popup__copy::-webkit-scrollbar-track {
  border-radius: 999px;
  background: rgba(0, 83, 155, 0.1);
}

.pm-information-popup--with-media .pm-information-popup__copy::-webkit-scrollbar-thumb {
  border: 2px solid var(--nudgee-light);
  border-radius: 999px;
  background: var(--gold-accent);
}

.pm-information-popup--with-media .pm-information-popup__copy::-webkit-scrollbar-thumb:hover {
  background: var(--nudgee-royal);
}

.pm-information-popup__gallery {
  position: relative;
  width: 100%;
  height: calc(100vh - 129px - clamp(48px, 3.438vw, 66px));
  margin-top: clamp(48px, 3.438vw, 66px);
  overflow: hidden;
}

.pm-information-popup__slider,
.pm-information-popup__slider .slick-list,
.pm-information-popup__slider .slick-track,
.pm-information-popup__slider .slick-slide,
.pm-information-popup__slider .slick-slide > div,
.pm-information-popup__slide {
  height: 100%;
}

.pm-information-popup__slide {
  min-height: 0;
}

.pm-information-popup__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;          /* fit, not fill — posters/flyers must not be cropped */
}

.pm-information-popup__slider:not(.slick-initialized) .pm-information-popup__slide:not(:first-child) {
  display: none;
}

.pm-information-popup__dots {
  position: absolute;
  z-index: 2;
  right: 30px;
  bottom: 17px;
  left: 30px;
  min-height: 13px;
}

.pm-information-popup__dots .slick-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pm-information-popup__dots .slick-dots li,
.pm-information-popup__dots .slick-dots button {
  width: 13px;
  height: 13px;
}

.pm-information-popup__dots .slick-dots button {
  display: block;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(201, 161, 91, 0.72);
  color: transparent;
  font-size: 0;
  line-height: 0;
  cursor: pointer;
  transition: background-color 0.25s ease;
}

.pm-information-popup__dots .slick-dots button::before {
  display: none;
}

.pm-information-popup__dots .slick-dots .slick-active button {
  background: var(--white);
}

.pm-information-popup__dots .slick-dots button:focus-visible {
  outline: 2px solid var(--white);
  outline-offset: 3px;
}

.pm-information-popup__title {
  max-width: 920px;
  margin: 0 0 26px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.55;
  color: var(--nudgee-royal);
}

.pm-information-popup__content {
  max-width: 920px;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}

.pm-information-popup:not(.pm-information-popup--with-media) .pm-information-popup__title,
.pm-information-popup:not(.pm-information-popup--with-media) .pm-information-popup__content {
  width: 100%;
  max-width: none;
}

.pm-information-popup__content > :first-child { margin-top: 0; }
.pm-information-popup__content > :last-child { margin-bottom: 0; }

.pm-information-popup__content p {
  margin: 0 0 28px;
}

.pm-information-popup__content h2,
.pm-information-popup__content h3,
.pm-information-popup__content h4,
.pm-information-popup__content h5 {
  margin: 42px 0 18px;
  font-family: var(--font-head);
  font-weight: 700;
  line-height: 1.4;
  color: var(--nudgee-royal);
}

.pm-information-popup__content h2 { font-size: 32px; }
.pm-information-popup__content h3 { font-size: 26px; }
.pm-information-popup__content h4 { font-size: 22px; }
.pm-information-popup__content h5 { font-size: 18px; }

.pm-information-popup__content ul,
.pm-information-popup__content ol {
  margin: 0 0 28px;
  padding-left: 25px;
}

.pm-information-popup__content li {
  padding-left: 2px;
}

.pm-information-popup__content li + li {
  margin-top: 0;
}

.pm-information-popup__content li::marker,
.pm-information-popup__content a {
  color: var(--gold-accent);
}

.pm-information-popup__content strong {
  font-weight: 700;
}

@media (max-width: 1199px) {
  .pm-information-lightbox--with-media .gslide-inline {
    overflow-y: auto;
  }

  .pm-information-popup--with-media {
    width: calc(100% - 120px);
    height: auto;
    min-height: 100vh;
    margin-right: auto;
    margin-left: auto;
  }

  .pm-information-lightbox .ginlined-content.pm-information-popup--with-media {
    width: calc(100% - 120px) !important;
    height: auto !important;
    min-height: 100vh;
    padding: 71px 0 58px !important;
  }

  .pm-information-popup--with-media .pm-information-popup__layout {
    display: block;
  }

  .pm-information-popup--with-media .pm-information-popup__copy {
    height: auto;
    max-width: 920px;
    padding-right: 0;
    overflow: visible;
  }

  .pm-information-popup__gallery {
    height: auto;
    aspect-ratio: 720 / 884;
    max-width: 720px;
    margin: 48px auto 0;
  }
}

@media (max-width: 767px) {
  .pm-information-lightbox .gclose {
    top: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
  }

  .pm-information-popup {
    width: calc(100% - 60px);
    padding: 84px 0 50px;
  }

  .pm-information-popup.pm-information-popup--with-media {
    width: calc(100% - 60px);
    padding: 84px 0 40px;
  }


  .pm-information-lightbox .ginlined-content.pm-information-popup,
  .pm-information-lightbox .ginlined-content.pm-information-popup--with-media {
    width: calc(100% - 60px) !important;
    height: auto !important;
    min-height: 100vh;
    padding: 84px 0 40px !important;
  }

  .pm-information-popup__title {
    margin-bottom: 20px;
    padding-right: 36px;
    font-size: 26px;
    line-height: 1.4;
  }

  .pm-information-popup__content {
    font-size: 16px;
    line-height: 1.74;
  }

  .pm-information-popup__content h2 { font-size: 26px; }
  .pm-information-popup__content h3 { font-size: 23px; }
  .pm-information-popup__content h4 { font-size: 20px; }
}

.pm-information-carousel {
  overflow: hidden;
  padding: clamp(44px, 3.1vw, 60px) 0 clamp(86px, 6.25vw, 120px);
  background: var(--white);
}
.pm-information-carousel__layout {
  display: grid;
  grid-template-columns: 333.353px minmax(0, 1fr);
  column-gap: 75.647px;
  align-items: start;
  padding-left: max(var(--pad), calc((100vw - 1600px) / 2));
}
.pm-information-carousel__intro {
  padding-top: 81px;
}
.pm-information-carousel__title {
  margin: 0 0 28px;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 48px;
  line-height: 1.2;
  color: var(--nudgee-royal);
}
.pm-information-carousel__title span { white-space: nowrap; }
.pm-information-carousel__intro p {
  margin: 0;
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}
.pm-information-carousel__nav {
  display: flex;
  gap: 10px;
  margin-top: 48px;
}
.pm-information-carousel__arrow {
  position: relative;
  isolation: isolate;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 50%;
  background: linear-gradient(var(--white), var(--white)) padding-box,
              var(--gold-linear) border-box;
  color: var(--gold-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  cursor: pointer;
  transition: color 0.3s ease-out, opacity 0.3s ease-out;
}
.pm-information-carousel__arrow::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -1px;
  border-radius: inherit;
  background: var(--gold-linear);
  opacity: 0;
  transform: scale(0.72);
  transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}
.pm-information-carousel__arrow svg {
  display: block;
  width: 19.308px;
  height: 7.364px;
  transition: transform 0.3s ease-out;
}
.pm-information-carousel__arrow.is-disabled {
  opacity: 0.35;
  cursor: default;
}
.pm-information-carousel__arrow:focus-visible {
  outline: 3px solid var(--nudgee-royal);
  outline-offset: 3px;
}
@media (hover: hover) and (min-width: 1025px) {
  .pm-information-carousel__arrow:not(.is-disabled):hover {
    color: var(--white);
  }
  .pm-information-carousel__arrow:not(.is-disabled):hover::before {
    opacity: 1;
    transform: scale(1);
  }
  .pm-information-carousel__arrow--prev:not(.is-disabled):hover svg {
    transform: translateX(-3px);
  }
  .pm-information-carousel__arrow--next:not(.is-disabled):hover svg {
    transform: translateX(3px);
  }
}
.pm-information-carousel__track { min-width: 0; }
.pm-information-carousel__track:not(.owl-loaded) {
  display: flex;
  gap: 32px;
  overflow: hidden;
}
.pm-information-carousel__item {
  --pm-information-carousel-card-size: clamp(280px, 19.6vw, 376px);
  width: var(--pm-information-carousel-card-size);
}
.pm-information-carousel__item .pm-information-card__image {
  width: 100%;
  height: var(--pm-information-carousel-card-size);
  aspect-ratio: 1 / 1;
}
.pm-information-carousel .owl-stage { display: flex; }
.pm-information-carousel .owl-item { flex: 0 0 auto; }

.pm-information-plain {
  padding: clamp(96px, 6.25vw, 120px) 0;
  background: var(--white);
}
.pm-information-plain__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  column-gap: 32px;
  row-gap: 86px;
  align-items: start;
}
.pm-information-plain__item { grid-column: span 2; }
.pm-information-plain__item .pm-information-card__image {
  height: auto;
  aspect-ratio: 512 / 376;
}
.pm-information-plain__item:nth-last-child(2):nth-child(3n + 1) { grid-column: 2 / span 2; }
.pm-information-plain__item:last-child:nth-child(3n + 1) { grid-column: 3 / span 2; }

@media (max-width: 1199px) {
  .pm-information-carousel__layout {
    grid-template-columns: 280px minmax(0, 1fr);
    column-gap: 44px;
  }
  .pm-information-carousel__intro p { font-size: 15px; }
}

@media (max-width: 991px) {
  .pm-information-carousel__layout {
    grid-template-columns: 1fr;
    row-gap: 48px;
    padding-right: var(--pad);
  }
  .pm-information-carousel__intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px 36px;
    padding-top: 0;
  }
  .pm-information-carousel__title { grid-column: 1; margin-bottom: 0; }
  .pm-information-carousel__intro p { grid-column: 1; }
  .pm-information-carousel__nav {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: end;
    margin-top: 0;
  }
  .pm-information-plain__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 56px 20px; }
  .pm-information-plain__item,
  .pm-information-plain__item:nth-last-child(2):nth-child(3n + 1),
  .pm-information-plain__item:last-child:nth-child(3n + 1) { grid-column: span 2; }
  .pm-information-plain__item:last-child:nth-child(odd) { grid-column: 2 / span 2; }
}

@media (max-width: 767px) {
  .pm-information-carousel { padding: 60px 0; }
  .pm-information-carousel__layout { row-gap: 38px; }
  .pm-information-carousel__intro {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .pm-information-carousel__title { font-size: 36px; }
  .pm-information-carousel__intro p { font-size: 15px; }
  .pm-information-carousel__nav {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
    margin-top: 10px;
  }
  .pm-information-carousel__item {
    --pm-information-carousel-card-size: calc(100vw - (var(--pad) * 2));
    width: var(--pm-information-carousel-card-size);
  }
  .pm-information-plain { padding: 60px 0; }
  .pm-information-plain__grid { grid-template-columns: 1fr; row-gap: 48px; }
  .pm-information-plain__item,
  .pm-information-plain__item:nth-last-child(2):nth-child(3n + 1),
  .pm-information-plain__item:last-child:nth-child(3n + 1),
  .pm-information-plain__item:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .pm-information-card__title { margin-top: 20px; font-size: 26px; }
  .pm-information-card__copy { font-size: 15px; }
}

/* ---- Video Module ---- */
.pm-video { position: relative; }
.pm-video__stage { position: relative; }
.pm-video__slider:not(.slick-initialized) .pm-video__slide:not(:first-child) { display: none; }
.pm-video__slide { width: 100%; }
.pm-video__slider .slick-list,
.pm-video__slider .slick-track { width: 100%; }
@media (min-width: 768px) {
  .pm-video--testimonial .pm-video__slider .slick-track {
    display: flex;
    align-items: stretch;
  }
  .pm-video--testimonial .pm-video__slider .slick-slide {
    float: none;
    height: auto;
  }
  .pm-video--testimonial .pm-video__slider .slick-slide > div,
  .pm-video--testimonial .pm-video__slide,
  .pm-video--testimonial .pm-video__panel {
    height: 100%;
  }
}
.pm-video__panel {
  width: min(1800px, calc(100% - 60px));
  min-height: 836.689px;
  margin: 0 auto;
  padding: 26.311px 236px 28.519px;
  display: grid;
  grid-template-columns: minmax(0, 512fr) minmax(0, 648fr);
  gap: 80px;
  align-items: center;
  background: var(--nudgee-light);
}
.pm-video__panel.pm-video__panel--standard {
  min-height: 0;
  padding: 0;
  display: block;
}
.pm-video__panel--standard .pm-video__media {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 10px;
}
.pm-video--standard .pm-video__dots {
  left: 50%;
  transform: translateX(-50%);
}
.pm-video__content {
  min-width: 0;
  align-self: start;
  margin-top: 202.127px;
}
.pm-video__content--testimonial { align-self: center; margin-top: 0; }
.pm-video__quote-mark {
  display: block;
  width: 67.006px;
  height: 55.838px;
  margin: 0 0 32px;
  object-fit: contain;
  object-position: left center;
}
.pm-video__title {
  margin: 0 0 27.205px;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 48px;
  line-height: 1.2;
  color: var(--nudgee-royal);
}
.pm-video__quote {
  margin: 0 0 22px;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: clamp(24px, 1.667vw, 32px);
  line-height: 1.74;
  letter-spacing: 0.96px;
  color: var(--black);
}
.pm-video__copy {
  min-height: 224.273px;
  margin: 0;
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}
.pm-video__name {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 38px;
  line-height: 1.2;
  color: var(--nudgee-royal);
}
.pm-video__designation {
  margin: 0;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.55;
  color: var(--gold-accent);
}
.pm-video__cta { margin-top: 4px; }
.pm-video__media {
  position: relative;
  width: 100%;
  aspect-ratio: 648 / 781.859;
  overflow: hidden;
  border-radius: 10px;
  background: var(--nudgee-ink);
  isolation: isolate;
}
.pm-video--testimonial .pm-video__media--cover {
  aspect-ratio: 3 / 2;
  align-self: center;
}
.pm-video__poster,
.pm-video__embed,
.pm-video__media iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.pm-video__poster {
  z-index: 2;
  object-fit: cover;
  object-position: center;
  transition: opacity 0.35s ease;
}
.pm-video__embed {
  z-index: 1;
  opacity: 0;
  overflow: hidden;
  transition: opacity 0.35s ease;
}
.pm-video__embed iframe,
.pm-video__media > iframe {
  display: block;
  border: 0;
}
.pm-video__embed > iframe,
.pm-video__media > iframe {
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  width: auto !important;
  height: 100% !important;
  min-width: 100%;
  min-height: 100%;
  aspect-ratio: 16 / 9;
  transform: translate(-50%, -50%);
}
.pm-video__media.is-previewing .pm-video__poster {
  opacity: 0;
  pointer-events: none;
}
.pm-video__media.is-previewing .pm-video__embed,
.pm-video__media.is-previewing > iframe { opacity: 1; }
.pm-video__play {
  position: absolute;
  z-index: 4;
  top: 52.758%;
  left: 51.802%;
  width: 134.712px;
  height: 134.709px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(0, 83, 155, 0.85);
  color: var(--gold-accent);
  transform: translate(-50%, -50%);
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.25s ease;
}
.pm-video__play-ring {
  position: absolute;
  top: 14.568px;
  left: 14.568px;
  width: 105.576px;
  height: 105.576px;
  border: 1px solid var(--gold-accent);
  border-radius: 50%;
}
.pm-video__play-ring::after {
  content: "";
  position: absolute;
  top: 31.81px;
  left: 41.43px;
  width: 35.95px;
  height: 41.51px;
  background: var(--gold-accent);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.pm-video__play:hover,
.pm-video__play:focus-visible { transform: translate(-50%, -50%) scale(1.04); }
.pm-video__play:focus-visible { outline: 2px solid var(--white); outline-offset: 3px; }
.pm-video__dots button:focus-visible { outline: 2px solid var(--nudgee-royal); outline-offset: 3px; }
.pm-video__media::after {
  content: "";
  position: absolute;
  z-index: 5;
  top: 50%;
  left: 50%;
  width: 42px;
  height: 42px;
  margin: -21px 0 0 -21px;
  border: 3px solid rgba(255, 255, 255, 0.4);
  border-top-color: var(--gold-accent);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
}
.pm-video__media.is-loading::after,
.pm-video__media.is-previewing.is-buffering::after {
  opacity: 1;
  animation: pm-video-spin 0.8s linear infinite;
}
@keyframes pm-video-spin {
  to { transform: rotate(360deg); }
}
.pm-video__dots {
  position: absolute;
  z-index: 6;
  left: calc(((100% - min(1800px, calc(100% - 60px))) / 2) + 236px);
  bottom: 28.519px;
}
.pm-video__dots:empty { display: none; }
.pm-video__dots .slick-dots {
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  list-style: none;
}
.pm-video__dots .slick-dots li,
.pm-video__dots .slick-dots button {
  width: 8px;
  height: 8px;
}
.pm-video__dots .slick-dots button {
  display: block;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--white);
  color: transparent;
  font-size: 0;
  line-height: 0;
  cursor: pointer;
  transition: background 0.3s ease;
}
.pm-video__dots .slick-dots button::before { display: none; }
.pm-video__dots .slick-dots .slick-active button { background: var(--nudgee-royal); }

/* Scale the 1920px testimonial composition progressively on laptop screens.
   This avoids the breakpoint jump where the desktop 236px gutters made the
   preview smaller immediately above the 1440px page-module layout. */
@media (min-width: 1441px) and (max-width: 1919px) {
  .page-modules .pm-video--testimonial {
    --pm-video-laptop-pad: clamp(84px, calc(31.6667vw - 372px), 236px);
  }

  .page-modules .pm-video--testimonial .pm-video__panel:not(.pm-video__panel--standard) {
    min-height: clamp(699px, calc(28.685vw + 285.936px), 836.689px);
    padding-right: var(--pm-video-laptop-pad);
    padding-left: var(--pm-video-laptop-pad);
    gap: clamp(32px, calc(10vw - 112px), 80px);
  }

  .page-modules .pm-video--testimonial .pm-video__dots {
    left: calc(
      ((100% - min(1800px, calc(100% - 60px))) / 2) +
      var(--pm-video-laptop-pad)
    );
  }
}

@media (max-width: 1440px) {
  .pm-video__dots {
    left: calc(((100% - min(1800px, calc(100% - 60px))) / 2) + 84px);
  }
  .pm-video__panel {
    min-height: 0;
    padding-right: 84px;
    padding-left: 84px;
    gap: clamp(80px, 8vw, 112px);
  }
  .pm-video__content {
    align-self: center;
    margin-top: 0;
  }
  .pm-video__title { margin-bottom: 22px; }
  .pm-video__copy { min-height: 0; }
}

@media (max-width: 1199px) {
  .pm-accordion__panel h1 { font-size: 52px; }
  .pm-accordion__grid { gap: 64px; }
  .pm-video__dots {
    left: calc(((100% - min(1800px, calc(100% - 60px))) / 2) + 64px);
  }
  .pm-video__panel {
    padding-right: 64px;
    padding-left: 64px;
    gap: 72px;
  }
}

@media (max-width: 1199px) {
  /* Use a shorter landscape treatment for testimonial videos on tablet/mobile. */
  .pm-video--testimonial .pm-video__panel:not(.pm-video__panel--standard) .pm-video__media {
    aspect-ratio: 3 / 2;
  }
}

@media (max-width: 991px) {
  .pm-accordion__grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .pm-accordion__grid > .pm-accordion__list { margin-top: 0; }
  .pm-video__panel {
    padding: 64px;
    grid-template-columns: 1fr;
    gap: 44px;
  }
  .pm-video__content { max-width: 648px; }
  .pm-video__media { width: min(648px, 100%); }
}

@media (max-width: 767px) {
  .pm-accordion:not(.pm-accordion--full) { padding-bottom: 18px; }
  .pm-accordion--full { padding-top: 18px; }
  .pm-accordion__grid,
  .pm-accordion--full > .pm-container {
    width: calc(100% - (var(--pad) * 2));
  }
  .pm-accordion .pm-eyebrow {
    margin-bottom: 16px;
    font-size: 16px;
  }
  .pm-accordion__title {
    margin-bottom: 20px;
    font-size: 36px;
  }
  .pm-accordion__item summary {
    min-height: 72px;
    padding: 17.4px 0;
    font-size: 20px;
  }
  .pm-accordion__panel { padding: 4px 0 36px; }
  .pm-accordion__panel h1 {
    margin-bottom: 17px;
    font-size: 36px;
    line-height: 1.2;
  }
  .pm-accordion__panel h2 {
    margin-top: 39px;
    margin-bottom: 17px;
    font-size: 32px;
    line-height: 1.2;
  }
  .pm-accordion__panel h3 {
    margin-top: 39px;
    margin-bottom: 13px;
    font-size: 24px;
    line-height: 1.55;
  }
  .pm-accordion__panel h4 {
    margin-top: 34px;
    margin-bottom: 14px;
    font-size: 18px;
    line-height: 1.55;
  }
  .pm-accordion__panel h5,
  .pm-accordion__panel h6 {
    margin-top: 30px;
    margin-bottom: 12px;
    font-size: 16px;
    line-height: 1.55;
  }
  .pm-accordion__cta { margin-top: 26px; }
  .pm-accordion--full .pm-accordion__list { margin-top: 38px; }

  .pm-video { padding: 48px 0; }
  .pm-video__panel {
    width: 100%;
    padding: 60px var(--pad);
    gap: 38px;
  }
  .pm-video__title {
    margin-bottom: 18px;
    font-size: 36px;
  }
  .pm-video__quote { margin-bottom: 18px; }
  .pm-video__name { font-size: 30px; }
  .pm-video__cta { margin-top: 18px; }
  .pm-video__play {
    width: 100px;
    height: 100px;
  }
  .pm-video__play-ring {
    top: 10.82px;
    left: 10.82px;
    width: 78.36px;
    height: 78.36px;
  }
  .pm-video__play-ring::after {
    top: 23.6px;
    left: 30.75px;
    width: 26.68px;
    height: 30.81px;
  }
  .pm-video__dots {
    left: var(--pad);
    bottom: 59px;
  }
  .pm-video__quote-mark {
    width: 48px;
    height: 40px;
    margin-bottom: 24px;
  }
}

@media (min-width: 1025px) {
  .pm-video__dots {
    left: calc(((100% - min(1800px, calc(100% - 60px))) / 2) + 100px);
    bottom: 28.519px;
  }
  .pm-video__dots .slick-dots { gap: 10.8px; }
  .pm-video__dots .slick-dots li,
  .pm-video__dots .slick-dots button {
    width: 12px;
    height: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pm-gallery__arrow,
  .pm-infotile__arrow,
  .pm-infotile__arrow::after,
  .pm-infotile__arrow svg,
  .pm-information-carousel__arrow,
  .pm-information-carousel__arrow::before,
  .pm-information-carousel__arrow svg,
  .pm-video__poster,
  .pm-video__embed,
  .pm-video__play,
  .voices__play,
  .pm-testimonial__play-icon,
  .pm-video__dots .slick-dots button { transition: none; }
}

/* ---- Testimonial ---- */
.pm-testimonial {
  --testimonial-overlay: 0%;
  --testimonial-position: center center;
  --testimonial-background: var(--nudgee-royal);
  --testimonial-text: var(--white);
  --testimonial-attribution: var(--white);
  position: relative;
  padding: 0;
  overflow: hidden;
  background: var(--white);
}
.pm-testimonial__canvas {
  position: relative;
  isolation: isolate;
  width: 100%;
  min-height: 600.23px;
  overflow: hidden;
  background: var(--testimonial-background);
}
.pm-testimonial--media .pm-testimonial__canvas {
  min-height: 889.279px;
}
.pm-testimonial--colour {
  padding: clamp(32px, 3.125vw, 60px);
}
.pm-testimonial--colour .pm-testimonial__canvas {
  box-shadow: none;
}
.pm-testimonial--colour .pm-testimonial__inner {
  position: relative;
  inset: auto;
  min-height: inherit;
}
.pm-testimonial--blue { --testimonial-background: #0055a2; }
.pm-testimonial--grey {
  --testimonial-background: var(--nudgee-light);
  --testimonial-text: var(--nudgee-royal);
  --testimonial-attribution: var(--nudgee-royal);
}
.pm-testimonial--navy { --testimonial-background: var(--nudgee-ink); }
.pm-testimonial__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: var(--testimonial-position);
}
.pm-testimonial__scrim {
  position: absolute;
  inset: 0;
  z-index: 3;
  background: var(--nudgee-ink);
  opacity: var(--testimonial-overlay);
  pointer-events: none;
}
.pm-testimonial--image.pm-testimonial--align-right .pm-testimonial__scrim {
  background: linear-gradient(270deg, rgba(11, 27, 51, 0.6) 46.846%, rgba(11, 27, 51, 0) 78.328%);
  opacity: 1;
}
.pm-testimonial__inner {
  position: absolute;
  inset: 0;
  z-index: 6;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(64px, 5.2vw, 100px);
  color: var(--testimonial-text);
  pointer-events: none;
}
.pm-testimonial--media .pm-testimonial__inner {
  justify-content: flex-start;
  padding: 100px 160px;
}
/* photo variants: the canvas only has a min-height, so an absolutely positioned
   inner let long CMS quotes overflow and get clipped. Put it in flow (as the
   colour variant already does) so the canvas grows; min-height:inherit keeps the
   designed height and vertical centring for short quotes. */
.pm-testimonial--image .pm-testimonial__inner {
  position: relative;
  inset: auto;
  min-height: inherit;
}
.pm-testimonial__body {
  width: min(784px, 100%);
}
.pm-testimonial--align-left .pm-testimonial__inner { align-items: flex-start; }
.pm-testimonial--align-center .pm-testimonial__inner {
  align-items: center;
  text-align: center;
}
.pm-testimonial--align-right .pm-testimonial__inner { align-items: flex-end; }
.pm-testimonial--align-center .pm-testimonial__body { width: min(784px, 100%); }
.pm-testimonial__mark {
  width: 67.005px;
  height: 55.838px;
  display: block;
  margin: 0 0 32px;
  object-fit: contain;
}
.pm-testimonial--align-center .pm-testimonial__mark { margin-right: auto; margin-left: auto; }
.pm-testimonial--hide-mark .pm-testimonial__mark { display: none; }
.pm-testimonial__quote {
  margin: 0;
  font-family: var(--font-head);
  font-size: 32px;
  font-weight: 400;
  line-height: 1.74;
  letter-spacing: 0.03em;
  color: inherit;
}
.pm-testimonial__quote p { margin: 0; }
.pm-testimonial__quote p + p { margin-top: 0.75em; }
.pm-testimonial__quote strong,
.pm-testimonial__quote b { font-weight: 700; }
.pm-testimonial__quote em,
.pm-testimonial__quote i { font-style: italic; }
.pm-testimonial__attribution {
  margin-top: 30px;
  font-family: var(--font-head);
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.74;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--testimonial-attribution);
}
.pm-testimonial__name {
  display: block;
  font: inherit;
  color: inherit;
}
.pm-testimonial__designation {
  display: block;
  margin-top: 5px;
  color: var(--gold-accent);
}
.pm-testimonial__video-slider,
.pm-testimonial__video-slider > .pm-video__slide,
.pm-testimonial__video-slider .slick-list,
.pm-testimonial__video-slider .slick-track,
.pm-testimonial__video-slider .slick-slide,
.pm-testimonial__video-slider .slick-slide > div { width: 100%; }
.pm-testimonial__media.pm-video__media {
  width: 100%;
  aspect-ratio: auto;
  border-radius: 0;
  container-type: size;
}
@supports (width: 1cqw) {
  .pm-testimonial--video .pm-video__embed > iframe,
  .pm-testimonial--video .pm-video__media > iframe {
    width: max(100cqw, 177.7778cqh) !important;
    height: max(100cqh, 56.25cqw) !important;
    min-width: 0;
    min-height: 0;
    max-width: none;
    max-height: none;
  }
}
.pm-testimonial__video-link.pm-video__play {
  inset: 0;
  z-index: 5;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
  background: transparent;
  opacity: 1;
  transform: none;
}
.pm-testimonial__play-icon {
  position: absolute;
  right: clamp(24px, 3.125vw, 60px);
  bottom: clamp(24px, 3.125vw, 60px);
  width: clamp(104px, 8.125vw, 156px);
  height: clamp(104px, 8.125vw, 156px);
  border-radius: 50%;
  background: rgba(0, 83, 155, 0.88);
  transition: transform 0.25s ease, background-color 0.25s ease;
}
.pm-testimonial__play-icon::before {
  content: "";
  position: absolute;
  inset: 11%;
  border: 1px solid var(--gold-accent);
  border-radius: 50%;
}
.pm-testimonial__play-icon::after {
  content: "";
  position: absolute;
  top: 34%;
  left: 39%;
  width: 29%;
  height: 32%;
  background: var(--gold-accent);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.pm-testimonial__video-link.pm-video__play:hover,
.pm-testimonial__video-link.pm-video__play:focus-visible { transform: none; }
.pm-testimonial__video-link.pm-video__play:hover .pm-testimonial__play-icon,
.pm-testimonial__video-link.pm-video__play:focus-visible .pm-testimonial__play-icon {
  background: var(--nudgee-royal);
  transform: scale(1.05);
}
.pm-testimonial__video-link.pm-video__play:focus-visible {
  outline: 2px solid var(--white);
  outline-offset: -8px;
}

@media (max-width: 1024px) {
  .pm-testimonial--media .pm-testimonial__canvas { min-height: 600px; }
  .pm-testimonial__inner { padding: 56px; }
  .pm-testimonial--media .pm-testimonial__inner { padding: 64px; }
  .pm-testimonial__body { width: min(580px, 58%); }
  .pm-testimonial--align-center .pm-testimonial__body { width: min(620px, 78%); }
  .pm-testimonial__quote { font-size: 25px; }
}

@media (max-width: 767px) {
  .pm-testimonial--colour { padding: 24px; }
  .pm-testimonial__canvas,
  .pm-testimonial--media .pm-testimonial__canvas { min-height: 520px; }
  .pm-testimonial__inner,
  .pm-testimonial--media .pm-testimonial__inner { padding: 42px 30px; }
  .pm-testimonial__body,
  .pm-testimonial--align-center .pm-testimonial__body {
    width: 100%;
    max-width: 540px;
  }
  .pm-testimonial--align-left .pm-testimonial__body,
  .pm-testimonial--align-right .pm-testimonial__body { width: 88%; }
  .pm-testimonial__mark {
    width: 48px;
    height: 40px;
    margin-bottom: 25px;
  }
  .pm-testimonial__quote {
    font-size: 22px;
    line-height: 1.5;
  }
  .pm-testimonial__attribution { margin-top: 30px; }
}

/* ---- Publications (A4 covers) ---- */
.pm-publications {
  padding: clamp(80px, 5.2vw, 100px) 0 clamp(42px, 3.1vw, 60px);
  overflow: hidden;
  background: var(--nudgee-light);
}
.pm-publications__header {
  display: grid;
  grid-template-columns: minmax(0, 720px) minmax(360px, 640px);
  gap: clamp(72px, 4.95vw, 95px);
  align-items: start;
}
.pm-publications__eyebrow {
  margin: 0 0 clamp(12px, 0.7vw, 14px);
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.55;
  color: var(--gold-accent);
}
.pm-publications__title {
  margin: 0;
  font-family: var(--font-display);
  max-width: 648px;
  font-size: 68px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--nudgee-royal);
}
.pm-publications__intro {
  max-width: 640px;
  margin: clamp(38px, 2.3vw, 44px) 0 0;
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.74;
  letter-spacing: 0.66px;
  color: var(--black);
}
.pm-publications__rail {
  margin-top: clamp(64px, 4.1vw, 78px);
  padding-left: max(var(--pad), calc((100vw - 1600px) / 2));
}
.pm-publications__track { overflow: visible; }
.pm-publications__track .owl-stage { display: flex; }
.pm-publications__track .owl-item { flex: 0 0 auto; }
.pm-pub {
  width: clamp(280px, 19.58vw, 376px);
  display: block;
  color: var(--white);
  text-decoration: none;
}
.pm-pub__cover {
  position: relative;
  isolation: isolate;
  width: 100%;
  aspect-ratio: 210 / 297;
  display: block;
  overflow: hidden;
  border-radius: 10px;
  background: var(--nudgee-ink);
}
.pm-pub__cover::before,
.pm-pub__cover::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.pm-pub__cover::before {
  z-index: 1;
  background: linear-gradient(180deg, rgba(11,27,51,0.03) 42%, rgba(11,27,51,0.88) 100%);
}
.pm-pub__cover::after {
  z-index: 3;
  background: rgba(11,27,51,0.82);
  opacity: 0;
  transition: opacity 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}
.pm-pub__cover > img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}
.pm-pub__masthead {
  position: absolute;
  z-index: 2;
  top: clamp(17px, 1.2vw, 23px);
  left: clamp(17px, 1.2vw, 23px);
  right: clamp(17px, 1.2vw, 23px);
  display: flex;
  flex-direction: column;
  font-family: var(--font-head);
  font-size: clamp(28px, 2.1vw, 40px);
  font-style: normal;
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #e7c569;
}
.pm-pub__masthead-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
.pm-pub__masthead small {
  margin-top: 4px;
  padding-top: 3px;
  border-top: 1px solid currentColor;
  font-size: clamp(8px, 0.6vw, 11px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.2em;
}
.pm-pub__masthead em {
  margin-top: 7px;
  font-size: clamp(6px, 0.43vw, 8px);
  font-style: normal;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.28em;
}
.pm-pub__content {
  position: absolute;
  z-index: 4;
  right: clamp(24px, 1.65vw, 32px);
  bottom: clamp(25px, 1.7vw, 33px);
  left: clamp(24px, 1.65vw, 32px);
  max-width: 290px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.pm-pub__title {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(27px, 1.65vw, 32px);
  font-weight: 400;
  line-height: 1.2;
  color: var(--white);
}
.pm-pub__description {
  max-height: 0;
  display: block;
  margin-top: 0;
  overflow: hidden;
  font-family: var(--font-head);
  font-size: clamp(14px, 0.9vw, 17px);
  font-weight: 400;
  line-height: 1.7;
  color: var(--white);
  opacity: 0;
  transform: translateY(12px);
  transition: max-height 0.45s cubic-bezier(0.22, 1, 0.36, 1), margin-top 0.38s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease, transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}
.pm-pub__cta {
  max-height: 0;
  display: flex;
  align-items: center;
  gap: 11px;
  margin-top: 0;
  overflow: hidden;
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--white);
  opacity: 0;
  transform: translateY(10px);
  transition: max-height 0.38s cubic-bezier(0.22, 1, 0.36, 1), margin-top 0.38s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease, transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}
.pm-pub__cta > span {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--gold-accent);
  color: var(--white);
  font-size: 20px;
  font-weight: 400;
}
.pm-pub:hover .pm-pub__cover::after,
.pm-pub:focus-visible .pm-pub__cover::after { opacity: 1; }
.pm-pub:hover .pm-pub__description,
.pm-pub:focus-visible .pm-pub__description {
  max-height: 200px;
  margin-top: 18px;
  opacity: 1;
  transform: translateY(0);
}
.pm-pub:hover .pm-pub__cta,
.pm-pub:focus-visible .pm-pub__cta {
  max-height: 40px;
  margin-top: 22px;
  opacity: 1;
  transform: translateY(0);
}
.pm-pub:focus-visible {
  outline: 2px solid var(--nudgee-royal);
  outline-offset: 4px;
}
.pm-publication-flipbook {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 480px;
  overflow: hidden;
  background: var(--nudgee-ink);
}
.pm-publication-flipbook__viewer {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  min-height: inherit;
}
.pm-publication-flipbook__fallback {
  position: absolute;
  z-index: 2;
  inset: 0;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px;
  background: var(--nudgee-ink);
  font-family: var(--font-head);
  text-align: center;
}
.pm-publication-flipbook__fallback a {
  color: var(--gold-accent);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.pm-publication-flipbook.is-initialized .pm-publication-flipbook__fallback {
  display: none;
}
.glightbox-container.pm-publication-flipbook-lightbox .gslide-media {
  width: min(96vw, 1800px) !important;
  height: 94vh !important;
  background: var(--nudgee-ink);
  box-shadow: none !important;
}
.glightbox-container.pm-publication-flipbook-lightbox .gslide-inline {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  padding: 0;
  overflow: hidden;
  background: var(--nudgee-ink);
}
.glightbox-container.pm-publication-flipbook-lightbox .ginlined-content {
  width: 100%;
  height: 100%;
  padding: 0 !important;
  overflow: hidden;
}
.glightbox-container.pm-publication-flipbook-lightbox .gprev,
.glightbox-container.pm-publication-flipbook-lightbox .gnext {
  display: none !important;
}
.glightbox-container.pm-publication-flipbook-lightbox .gclose {
  z-index: 100001;
}
.pm-publications__nav {
  display: flex;
  gap: 10px;
  margin-top: clamp(38px, 2.2vw, 43px);
}
.pm-publications__arrow {
  width: 52px;
  height: 52px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gold-accent);
  border-radius: 50%;
  background: transparent;
  color: var(--gold-accent);
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease, opacity 0.25s ease;
}
.pm-publications__arrow svg { width: 26px; height: 12px; }
.pm-publications__arrow:hover,
.pm-publications__arrow:focus-visible {
  background: var(--gold-accent);
  color: var(--white);
}
.pm-publications__arrow:focus-visible { outline: 2px solid var(--nudgee-royal); outline-offset: 3px; }
.pm-publications__arrow.is-disabled,
.pm-publications__arrow:disabled {
  opacity: 0.4;
  cursor: default;
  pointer-events: none;
}

@media (max-width: 1024px) {
  .pm-publications__header {
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.9fr);
    gap: 56px;
  }
  .pm-publications__title { font-size: 52px; }
  .pm-publications__intro {
    margin-top: 45px;
    font-size: 18px;
  }
}

@media (max-width: 767px) {
  .pm-publications { padding: 64px 0 42px; }
  .pm-publications__header {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .pm-publications__eyebrow {
    margin-bottom: 18px;
    font-size: 17px;
  }
  .pm-publications__title {
    font-size: 42px;
    line-height: 1.12;
  }
  .pm-publications__intro {
    max-width: 560px;
    margin-top: 0;
    font-size: 16px;
    line-height: 1.65;
  }
  .pm-publications__rail { margin-top: 46px; }
  .pm-pub { width: min(78vw, 320px); }
  .pm-pub__description { font-size: 14px; }
  .pm-publications__nav { margin-top: 32px; }
}
@media (min-width: 1200px) and (max-width: 1440px) {
  /* Page hero: 407px title band followed by the 620px image. */
  .page-modules .gp-hero__intro { height: 407px; }
  .page-modules .gp-hero__content {
    width: 788px;
    padding-bottom: 42px;
  }
  .page-modules .gp-hero__title { font-size: 82px; }
  .page-modules .gp-hero__image { height: 620px; }

  /* Shared 993px heading axis (x=187 on the 1366px canvas). */
  .page-modules .pm-gallery__heading,
  .page-modules .pm-linktiles__heading,
  .page-modules .pm-gallery-grid__heading {
    width: 993px;
    max-width: calc(100% - 374px);
  }

  /* Photo Gallery — standard and slimline. */
  .page-modules .pm-gallery {
    --gal-w: 685px;
    --gal-h: 457px;
    --gal-gap: 32px;
    --gal-panel-offset: 72px;
    --gal-panel-bottom: 96px;
    --gal-arrow: 42px;
    padding: 68px 0 0;
  }
  .page-modules .pm-gallery--slim {
    --gal-w: 480px;
    --gal-h: 320px;
  }
  .page-modules .pm-gallery__heading {
    margin-bottom: 25px;
    font-size: 48px;
  }
  .page-modules .pm-gallery__panel {
    margin-left: 0;
    padding-bottom: var(--gal-panel-bottom);
  }
  .page-modules .pm-gallery__owl { margin-left: 187px; }
  .page-modules .pm-gallery__item,
  .page-modules .pm-gallery__owl.owl-carousel .owl-item img,
  .page-modules .pm-gallery__item img {
    width: var(--gal-w);
    max-width: none;
  }
  /* Portrait slides must be measured from their displayed aspect ratio.
     Keeping the landscape --gal-w on the figure makes Owl reserve an empty
     column after a narrower portrait image. */
  .page-modules .pm-gallery__item.is-portrait,
  .page-modules .pm-gallery__item.is-portrait .pm-gallery__link,
  .page-modules .pm-gallery__owl.owl-carousel .owl-item .pm-gallery__item.is-portrait img,
  .page-modules .pm-gallery__item.is-portrait img {
    width: auto;
  }
  .page-modules .pm-gallery__nav {
    left: 84px;
    top: calc(var(--gal-h) - var(--gal-arrow));
    gap: 10px;
  }
  .page-modules .pm-gallery__caption {
    margin-top: 14px;
    font-size: 16px;
    line-height: 1.74;
  }

  /* Accordion axes: 480px text, 583px accordion, 32px gutter. */
  .page-modules .pm-accordion:not(.pm-accordion--full) {
    padding-top: 66px;
   
  }
  .page-modules .pm-accordion__grid {
    width: 992px;
    grid-template-columns: 480px 583px;
    gap: 32px;
  }
  .page-modules .pm-accordion__grid > .pm-accordion__list { margin-top: 31px; }
  .page-modules .pm-accordion__item summary {
    min-height: 78.68px;
    padding: 20.74px 0;
    font-size: 24px;
  }
  .page-modules .pm-accordion__panel { padding-bottom: 30px; }
  .page-modules .pm-accordion--full {
    padding-top: 70px;
    
  }
  .page-modules .pm-accordion--full > .pm-container { width: 993px; }
  .page-modules .pm-accordion--full .pm-accordion__list { margin-top: 36px; }

  .page-modules .pm-video { /*padding: 85px 0 0;*/ }
  .page-modules .pm-video__panel {
    width: 100%;
    min-height: 699px;
    height: auto;
    padding: 26px 84px 25px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    align-items: start;
  }
  .page-modules .pm-video__panel--standard {
    min-height: 0;
    padding: 0;
    display: block;
  }
  .page-modules .pm-video__content {
    --pm-video-content-offset: clamp(60px, 7.54vw, 103px);
    width: min(480px, calc(100% - var(--pm-video-content-offset)));
    margin: 188px 0 0 var(--pm-video-content-offset);
    align-self: start;
  }
  .page-modules .pm-video__content--testimonial {
    margin-top: 86px;
  }
  .page-modules .pm-video__panel .pm-video__media {
    width: 100%;
    height: 647px;
    aspect-ratio: auto;
  }
  .page-modules .pm-video--testimonial .pm-video__media--cover {
    height: auto;
    aspect-ratio: 3 / 2;
    align-self: center;
  }
  .page-modules .pm-video__panel--standard .pm-video__media {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: 0;               /* full viewport width here — keep square */
  }
  .page-modules .pm-video__dots {
    left: 187px;
    bottom: 26px;
  }
  .page-modules .pm-video--standard .pm-video__dots { left: 50%; }

  .page-modules .pm-imagetext {
    height: auto;
    padding: 60px 0;
  }
  .page-modules .pm-imagetext__inner {
    --pm-imagetext-gap: clamp(72px, calc(37.35vw - 376.2px), 134px);
    width: min(1198px, calc(100% - (var(--pad) * 2)));
    height: auto;
    display: grid;
    grid-template-columns: minmax(0, 481fr) minmax(0, 583fr);
    gap: var(--pm-imagetext-gap);
    align-items: center;
  }
  .page-modules .pm-imagetext--image-left .pm-imagetext__inner {
    grid-template-areas: "media body";
  }
  .page-modules .pm-imagetext--image-right .pm-imagetext__inner {
    grid-template-areas: "body media";
  }
  .page-modules .pm-imagetext__media {
    grid-area: media;
    width: 100%;
    height: auto;
    margin: 0;
    aspect-ratio: 1 / 1;
    min-width: 0;
  }
  .page-modules .pm-imagetext__body {
    grid-area: body;
    width: 100%;
    margin: 0;
    align-self: center;
    min-width: 0;
  }
  .page-modules .pm-imagetext__title { font-size: 48px; }

  .page-modules .pm-linktiles { padding: 84px 0; }
  .page-modules .pm-linktiles__heading { margin-bottom: 29px; }
  .page-modules .pm-linktiles__grid { gap: 32px; }
  .page-modules .pm-linktile { min-height: 101px; }
  .page-modules .pm-linktile__content { padding: 32px; }
  .page-modules .pm-linktile__eyebrow { font-size: 14px; }
  .page-modules .pm-linktile__title { font-size: 24px; }

  .page-modules .pm-editorial {
    --editorial-tablet-height: 967px;
    min-height: var(--editorial-tablet-height);
    height: var(--editorial-tablet-height);
    padding: 0;
  }
  .page-modules .pm-editorial[aria-labelledby="editorial-white-one-title"] { --editorial-tablet-height: 969px; }
  .page-modules .pm-editorial[aria-labelledby="editorial-white-right-title"] { --editorial-tablet-height: 778px; }
  .page-modules .pm-editorial[aria-labelledby="editorial-white-right-alt-title"] { --editorial-tablet-height: 811px; }
  .page-modules .pm-editorial[aria-labelledby="editorial-white-left-title"] { --editorial-tablet-height: 994px; }
  .page-modules .pm-editorial[aria-labelledby="editorial-grey-title"] { --editorial-tablet-height: 999px; }
  .page-modules .pm-editorial[aria-labelledby="editorial-blue-title"] { --editorial-tablet-height: 968px; }
  .page-modules .pm-editorial__inner,
  .page-modules .pm-editorial--image-right .pm-editorial__inner {
    position: relative;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 0;
    display: block;
  }
  .page-modules .pm-editorial__content {
    top: 20px;
    width: 583px;
    max-width: none;
  }
  .page-modules .pm-editorial--image-right .pm-editorial__content {
    left: 84px;
    width: 583px;
  }
  .page-modules .pm-editorial--image-left .pm-editorial__content {
    left: 699px;
    width: 583px;
  }
  .page-modules .pm-editorial--image-right .pm-editorial__lead,
  .page-modules .pm-editorial--image-right .pm-editorial__copy,
  .page-modules .pm-editorial--image-right .pm-editorial__title,
  .page-modules .pm-editorial--image-left .pm-editorial__title,
  .page-modules .pm-editorial--image-left .pm-editorial__lead,
  .page-modules .pm-editorial--image-left .pm-editorial__copy {
    width: 583px;
    margin-left: 0;
  }
  .page-modules .pm-editorial__eyebrow {
    margin-bottom: 17px;
    font-size: 18px;
    line-height: 1.55;
  }
  .page-modules .pm-editorial__title {
    width: 583px;
    margin-bottom: 44px;
    font-size: 52px;
    line-height: 1.2;
  }
  .page-modules .pm-editorial__lead {
    margin-bottom: 0;
    font-size: 18px;
    line-height: 1.74;
    letter-spacing: .54px;
  }
  .page-modules .pm-editorial__copy {
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: .48px;
  }
  .page-modules .pm-editorial__cta,
  .page-modules .pm-editorial--image-right .pm-editorial__cta {
    margin-top: 30px;
    margin-left: 0;
  }
  .page-modules .pm-editorial__content::before {
    top: 134px;
    width: 68px;
  }
  .page-modules .pm-editorial--image-right .pm-editorial__content::before {
    right: calc(100% + 16px);
    left: auto;
  }
  .page-modules .pm-editorial--image-left .pm-editorial__content::before {
    right: calc(100% + 16px);
    left: auto;
  }
  .page-modules .pm-editorial__media,
  .page-modules .pm-editorial--one-image .pm-editorial__media,
  .page-modules .pm-editorial--two-images .pm-editorial__media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }
  .page-modules .pm-editorial__image--primary,
  .page-modules .pm-editorial--one-image .pm-editorial__image--primary,
  .page-modules .pm-editorial--two-images .pm-editorial__image--primary {
    top: 84px;
    width: 565px;
    height: 567px;
  }
  .page-modules .pm-editorial--image-right .pm-editorial__image--primary {
    right: 0;
    left: auto;
    width: min(565px, calc(100% - 699px));
  }
  .page-modules .pm-editorial--image-left .pm-editorial__image--primary {
    right: auto;
    left: 0;
  }
  .page-modules .pm-editorial--two-images .pm-editorial__image--secondary {
    top: 609px;
    bottom: auto;
    width: 276px;
    height: 276px;
  }
  .page-modules .pm-editorial--image-right .pm-editorial__image--secondary {
    right: 186px;
    left: auto;
  }
  .page-modules .pm-editorial--image-left .pm-editorial__image--secondary {
    right: auto;
    left: 187px;
  }

  /* Standard Information Tiles. */
  .page-modules .pm-information { padding: 85px 0 84px; }
  .page-modules .pm-information__header {
    width: 993px;
    margin: 0 0 37px 103px;
  }
  .page-modules .pm-information__title { font-size: 48px; }
  .page-modules .pm-information__grid { gap: 32px; }
  .page-modules .pm-infotile {
    min-height: 523px;
    height: 523px;
  }
  .page-modules .pm-infotile__media { height: 253px; }
  .page-modules .pm-infotile__content { padding: 135px 30px 24px; }
  .page-modules .pm-infotile__title {
    min-height: 87px;
    margin-bottom: 10px;
    display: flex;
    align-items: flex-end;
    font-size: 24px;
    line-height: 1.55;
  }
  .page-modules .pm-infotile__copy {
    font-size: 16px;
    line-height: 1.74;
  }
  .page-modules .pm-infotile__arrow {
    width: 42px;
    height: 42px;
  }

  .page-modules .pm-information-carousel {
    padding: 60px 0 86px;
  }
  .page-modules .pm-information-carousel__layout {
    grid-template-columns: 333px minmax(0, 1fr);
    column-gap: 77px;
    padding-left: 84px;
  }
  .page-modules .pm-information-carousel__item {
    --pm-information-carousel-card-size: 376px;
    width: var(--pm-information-carousel-card-size);
  }
  .page-modules .pm-information-carousel__title { font-size: 48px; }
  .page-modules .pm-information-plain {
    padding: 76px 0 84px;
  }
  .page-modules .pm-information-plain__grid {
    column-gap: 32px;
    row-gap: 86px;
  }
  .page-modules .pm-information-plain__item .pm-information-card__image {
    height: 278px;
    aspect-ratio: auto;
  }
  .page-modules .pm-information-card__title { font-size: 32px; }

  /* Image Divider: 632px minimum panel, 539px glass card and exact 26px inset. */
  .page-modules .pm-divider {
    height: auto;
    min-height: 632px;
  }
  .page-modules .pm-divider__frame { padding: 39px 53px; }
  .page-modules .pm-divider__content {
    width: 539px;
    padding: 105px 26px 30px;
  }
  .page-modules .pm-divider__eyebrow {
    margin-bottom: 24px;
    font-size: 24px;
  }
  .page-modules .pm-divider__title {
    margin-bottom: 24px;
    font-size: 52px;
  }
  .page-modules .pm-divider__copy { font-size: 16px; }
  .page-modules .pm-divider--center .pm-divider__frame {
    align-items: flex-start;
    padding-top: 166px;
  }
  .page-modules .pm-divider--center .pm-divider__content {
    width: 480px;
    padding: 0;
  }

  /* Testimonials: 633px media canvases and 1302 x 483 colour frames. */
  .page-modules .pm-testimonial--media .pm-testimonial__canvas {
    min-height: 633px;
    height: 633px;
  }
  .page-modules .pm-testimonial--colour { padding: 32px; }
  .page-modules .pm-testimonial--colour .pm-testimonial__canvas {
    min-height: 483px;
    height: auto;
  }
  .page-modules .pm-testimonial__quote {
    font-size: 24px;
    line-height: 1.74;
    letter-spacing: .72px;
  }
  .page-modules .pm-testimonial__attribution {
    margin-top: 30px;
    font-size: 16px;
  }
  .page-modules .pm-testimonial--media .pm-testimonial__inner {
    padding-top: 100px;
    padding-bottom: 100px;
  }
  .page-modules .pm-testimonial--align-left .pm-testimonial__inner { padding-left: 191px; }
  .page-modules .pm-testimonial--align-right .pm-testimonial__inner { padding-right: 84px; }
  .page-modules .pm-testimonial--colour.pm-testimonial--align-left .pm-testimonial__inner { padding-left: 159px; }
  .page-modules .pm-testimonial--colour.pm-testimonial--align-right .pm-testimonial__inner { padding-right: 56px; }

  /* Gallery grids: exact 32px tracks and 276px square cells. */
  .page-modules .pm-gallery-grid--mosaic .pm-gallery-grid__grid {
    --pm-grid-gap: 32px;
  }
  .page-modules .pm-gallery-grid--square .pm-gallery-grid__grid {
    --pm-square-gap: 32px;
    --pm-square-size: calc((100% - (var(--pm-square-gap) * 3)) / 4);
    justify-content: center;
  }
  .page-modules .pm-gallery-grid__heading,
  .page-modules .pm-gallery-grid--square .pm-gallery-grid__heading {
    margin-bottom: 50px;
    font-size: 48px;
  }

  .page-modules .pm-publications {
    min-height: 879px;
    padding: 78px 0 42px;
  }
  .page-modules .pm-publications__header {
    grid-template-columns: 647px 480px;
    gap: 71px;
  }
  .page-modules .pm-publications__eyebrow { font-size: 18px; }
  .page-modules .pm-publications__title {
    max-width: 647px;
    font-size: 52px;
  }
  .page-modules .pm-publications__intro {
    max-width: 480px;
    margin-top: 23px;
    font-size: 18px;
    line-height: 1.74;
  }
  .page-modules .pm-publications__rail {
    margin-top: 60px;
    padding-left: 84px;
  }
  .page-modules .pm-pub { width: 376px; }
}

@media (min-width: 1200px) {
  .page-modules > .pm-editorial {
    height: auto;
    min-height: 0;
    padding: 0;
  }

  .page-modules > .pm-editorial--grey,
  .page-modules > .pm-editorial--blue,
  .page-modules > .pm-editorial--navy {
    padding-block: clamp(104px, 7.1vw, 136px);
  }

  .page-modules > .pm-editorial > .pm-editorial__inner,
  .page-modules > .pm-editorial--image-right > .pm-editorial__inner {
    position: relative;
    width: 100%;
    max-width: none;
    height: auto;
    min-height: 0;
    display: grid;
    align-items: center;
    column-gap: clamp(48px, 5vw, 96px);
    margin: 0;
  }

  .page-modules > .pm-editorial--image-right > .pm-editorial__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
    grid-template-areas: "content media";
    padding-left: var(--pad);
  }

  .page-modules > .pm-editorial--image-left > .pm-editorial__inner {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    grid-template-areas: "media content";
    padding-right: var(--pad);
  }

  .page-modules > .pm-editorial .pm-editorial__content,
  .page-modules > .pm-editorial--image-right .pm-editorial__content,
  .page-modules > .pm-editorial--image-left .pm-editorial__content {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    max-width: 648px;
    min-width: 0;
  }

  .page-modules > .pm-editorial .pm-editorial__title,
  .page-modules > .pm-editorial .pm-editorial__lead,
  .page-modules > .pm-editorial .pm-editorial__copy {
    width: auto;
    margin-left: 0;
  }

  .page-modules > .pm-editorial .pm-editorial__title {
    margin-bottom: clamp(36px, 3.2vw, 62px);
    font-size: clamp(52px, 3.55vw, 68px);
  }

  .page-modules > .pm-editorial .pm-editorial__lead {
    margin-bottom: clamp(24px, 1.8vw, 34px);
  }

  .page-modules > .pm-editorial .pm-editorial__cta,
  .page-modules > .pm-editorial--image-right .pm-editorial__cta {
    margin-top: clamp(30px, 2.15vw, 41px);
    margin-left: 0;
  }

  .page-modules > .pm-editorial .pm-editorial__media,
  .page-modules > .pm-editorial--one-image .pm-editorial__media,
  .page-modules > .pm-editorial--two-images .pm-editorial__media {
    position: relative;
    inset: auto;
    width: min(100%, clamp(565px, calc(68.125vw - 416px), 892px));
    max-width: 892px;
    height: auto;
    min-width: 0;
  }

  .page-modules > .pm-editorial--image-right .pm-editorial__media {
    justify-self: end;
  }

  .page-modules > .pm-editorial--image-left .pm-editorial__media {
    justify-self: start;
  }

  .page-modules > .pm-editorial--one-image .pm-editorial__media {
    aspect-ratio: 1.12 / 1;
  }

  .page-modules > .pm-editorial--one-image .pm-editorial__image--primary {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .page-modules > .pm-editorial--two-images .pm-editorial__media {
    height: clamp(560px, 39vw, 750px);
    aspect-ratio: auto;
  }

  .page-modules > .pm-editorial--two-images .pm-editorial__image {
    position: absolute;
  }

  .page-modules > .pm-editorial--two-images .pm-editorial__image--primary {
    top: 0;
    bottom: auto;
    width: 79%;
    height: 76%;
  }

  .page-modules > .pm-editorial--two-images .pm-editorial__image--secondary {
    top: auto;
    bottom: 0;
    width: 47%;
    height: 44%;
  }

  .page-modules > .pm-editorial--image-right .pm-editorial__image--primary {
    right: 0;
    left: auto;
    border-radius: 10px 0 0 10px;
  }

  .page-modules > .pm-editorial--image-right .pm-editorial__image--secondary {
    right: auto;
    left: 0;
    border-radius: 10px;
  }

  .page-modules > .pm-editorial--image-left .pm-editorial__image--primary {
    right: auto;
    left: 0;
    border-radius: 0 10px 10px 0;
  }

  .page-modules > .pm-editorial--image-left .pm-editorial__image--secondary {
    right: 0;
    left: auto;
    border-radius: 10px;
  }
}

@media (min-width: 2000px) {
  .page-modules > .pm-editorial--image-right .pm-editorial__content {
    justify-self: end;
    left: calc((100vw - 1920px) / 2);
  }

  .page-modules > .pm-editorial--image-left .pm-editorial__content {
    left: calc((1920px - 100vw) / 2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-modules [data-aos] {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
    will-change: auto !important;
  }
  .pm-linktile,
  .pm-linktile img,
  .pm-linktile__wash,
  .pm-pub__cover::after,
  .pm-pub__description,
  .pm-pub__cta,
  .pm-publications__arrow { transition: none; }
}

@media (max-width: 767px) {

  .page-modules [data-aos] {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
    will-change: auto !important;
  }
  .pm-divider[data-parallax].is-ios-parallax .pm-divider__media {
    background-image: none !important;
    background-attachment: scroll !important;
  }
  .pm-divider[data-parallax].is-ios-parallax .pm-divider__bg {
    inset: 0 0 auto;
    height: 100vh;
    height: 100lvh;
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transform-origin: top center;
    backface-visibility: hidden;
    will-change: transform;
  }
  @media (prefers-reduced-motion: reduce) {
    .pm-divider[data-parallax].is-ios-parallax .pm-divider__bg {
      inset: 0;
      height: 100%;
      min-height: 0;
      transform: none;
      will-change: auto;
    }
  }

  /* Shared mobile type and rhythm. */
  .pm-container,
  .pm-gallery__heading,
  .pm-gallery-grid .pm-container,
  .pm-linktiles__heading {
    width: calc(100% - 60px);
  }

  .pm-section-title,
  .pm-gallery__heading,
  .pm-accordion__title,
  .pm-imagetext__title,
  .pm-information__title,
  .pm-information-carousel__title,
  .pm-video__title {
    font-size: 32px;
    line-height: 1.2;
  }

  .pm-gallery__heading,
  .pm-gallery-grid__heading {
    margin-bottom: 18px;
  }

  /* Photo Gallery and Slimline: a 300 x 200 swipe rail with a 10px gap. */
  .pm-gallery {
    --gal-w: 300px;
    --gal-h: 200px;
    --gal-gap: 10px;
    --gal-panel-offset: 22px;
    --gal-panel-bottom: 82px;
    padding: 24px 0;
  }
  .page-modules > .gp-hero + .pm-gallery { padding-top: 88px; }
  .pm-gallery__panel {
    margin-left: 0;
    padding-bottom: var(--gal-panel-bottom);
  }
  .pm-gallery__owl { margin-left: 30px; }
  .pm-gallery__item,
  .pm-gallery__owl.owl-carousel .owl-item img,
  .pm-gallery__item img {
    width: var(--gal-w);
    max-width: none;
  }
  .pm-gallery__item.is-portrait,
  .pm-gallery__item.is-portrait .pm-gallery__link,
  .pm-gallery__owl.owl-carousel .owl-item .pm-gallery__item.is-portrait img,
  .pm-gallery__item.is-portrait img {
    width: auto;
    max-width: none;
    height: var(--gal-h);
  }
  .pm-gallery__caption {
    width: 275px;
    margin-top: 11px;
    font-size: 16px;
    line-height: 1.27;
    letter-spacing: .48px;
  }
  .pm-gallery__caption::before { margin-right: 10px; }
  .pm-gallery__nav { display: none; }

  /* Both grid variants are swipeable single-row galleries on mobile. */
  .pm-gallery-grid,
  .pm-gallery-grid--mosaic,
  .pm-gallery-grid--square {
    padding-top: 48px;
  }
  .pm-gallery-grid__heading,
  .pm-gallery-grid--square .pm-gallery-grid__heading {
    width: 100%;
    margin-bottom: 32px;
  }
  .pm-gallery-grid--mosaic .pm-gallery-grid__grid,
  .pm-gallery-grid--square .pm-gallery-grid__grid {
    width: calc(100% + 30px);
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .pm-gallery-grid--mosaic .pm-gallery-grid__grid::-webkit-scrollbar,
  .pm-gallery-grid--square .pm-gallery-grid__grid::-webkit-scrollbar { display: none; }
  .pm-gallery-grid--mosaic .pm-gallery-grid__item,
  .pm-gallery-grid--square .pm-gallery-grid__item {
    flex: 0 0 auto;
    height: 200px;
    scroll-snap-align: start;
  }
  .pm-gallery-grid--mosaic .pm-gallery-grid__item.is-portrait {
    width: 141px;
    aspect-ratio: 141 / 200;
  }
  .pm-gallery-grid--mosaic .pm-gallery-grid__item.is-wide {
    width: 300px;
    aspect-ratio: 3 / 2;
  }
  .pm-gallery-grid--square .pm-gallery-grid__item {
    width: 300px;
    height: 300px;
    aspect-ratio: 1;
  }
  .pm-gallery-grid__item img { height: 100%; }
  .pm-gallery-grid__caption:not(.sr-only) {
    left: 12px;
    right: 12px;
    bottom: 8px;
    font-size: 16px;
  }

  /* Accordion: 60px closed rows and the 37px Figma state icon. */
  .pm-accordion:not(.pm-accordion--full) { padding-bottom: 24px; }
  .pm-accordion--full { padding-top: 24px; }
  .pm-accordion .pm-eyebrow {
    margin-bottom: 0;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: .54px;
    text-transform: none;
  }
  .pm-accordion__title { margin: 0 0 8px; }
  .pm-accordion__intro,
  .pm-accordion__panel p {
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: .48px;
  }
  .pm-accordion__grid > .pm-accordion__list { margin-top: 18px; }
  .pm-accordion__item summary {
    min-height: 60px;
    padding: 11px 0;
    font-size: 20px;
    line-height: 1.55;
  }
  .pm-accordion__icon { flex-basis: 37px; width: 37px; height: 37px; }
  .pm-accordion__panel { padding: 10px 0 36px; }
  .pm-accordion__panel figure.table { margin-top: 28px; }
  .pm-accordion--full .pm-accordion__list { margin-top: 38px; }

  /* Image Text: 300px media, 18/32 headings and the board's 16px copy. */
  .pm-imagetext { padding: 30px 0 54px; }
  .pm-imagetext__inner {
    width: calc(100% - 60px);
    gap: 24px;
  }
  .pm-imagetext__media { aspect-ratio: 1; }
  .pm-imagetext__eyebrow {
    margin-bottom: 0;
    font-size: 18px;
    line-height: 1.55;
    letter-spacing: .54px;
  }
  .pm-imagetext__title { margin-bottom: 18px; }
  .pm-imagetext__copy,
  .pm-imagetext__copy p {
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: .48px;
  }
  .pm-imagetext__copy p + p { margin-top: 28px; }
  .pm-imagetext__copy p + ul,
  .pm-imagetext__copy p + ol,
  .pm-imagetext__copy ul + p,
  .pm-imagetext__copy ol + p { margin-top: 28px; }
  .pm-imagetext__copy h2,
  .pm-imagetext__copy h3,
  .pm-imagetext__copy h4,
  .pm-imagetext__copy h5 { margin-bottom: 28px; }
  .pm-imagetext__cta { margin-top: 28px; }

  /* Editorial keeps media first on mobile and uses the mobile type scale. */
  .pm-editorial { padding: 30px 0 54px; }
  .page-modules > .pm-divider + .pm-editorial { padding-top: 60px; }
  .pm-editorial__inner,
  .pm-editorial--image-right .pm-editorial__inner { row-gap: 24px; }
  .pm-editorial__eyebrow {
    margin-bottom: 0;
    font-size: 18px;
    line-height: 1.55;
    letter-spacing: .54px;
  }
  .pm-editorial__title {
    margin-bottom: 20px;
    font-size: 36px;
    line-height: 1.2;
  }
  .pm-editorial__lead {
    margin-bottom: 18px;
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: .48px;
  }
  .pm-editorial__copy {
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: .48px;
  }
  .pm-editorial__copy p + p { margin-top: 28px; }
  .pm-editorial__cta { margin-top: 28px; }

  /* Link Tiles: 10px outer gutters, 100px colour rows and 200px media rows. */
  .pm-linktiles { padding: 48px 0; }
  .pm-linktiles__heading { margin-bottom: 32px; }
  .pm-linktiles__grid {
    width: calc(100% - 20px);
    gap: 10px;
  }
  .pm-linktile {
    min-height: 101px;
    border-radius: 10px;
  }
  .pm-linktile__content { padding: 20px; }
  .pm-linktile__eyebrow {
    margin-bottom: 0;
    font-size: 16px;
    line-height: 1.55;
    letter-spacing: 0;
  }
  .pm-linktile__title {
    font-size: 20px;
    line-height: 1.55;
  }
  /* Full-image tiles go square on mobile so the whole artwork is visible.
     width/min-height are explicit because iOS Safari will not stretch a grid
     item that has an aspect-ratio -- it transfers min-height through the ratio
     and sizes the tile to ~101px wide instead of filling the column. */
  .pm-linktile--image.pm-linktile--third,
  .pm-linktile--image.pm-linktile--two-thirds,
  .pm-linktile--image.pm-linktile--full {
    width: 100%;
    min-height: 0;
    height: auto;
    aspect-ratio: 1 / 1;
  }
  /* Percentage-padding spacer: resolves against the tile width in every engine,
     so the square holds even where the aspect-ratio path misbehaves. The media
     and content spans are absolutely positioned, so this is the only in-flow
     child and the two mechanisms resolve to the same height. */
  .pm-linktile--image::before {
    content: "";
    display: block;
    flex: 0 0 auto;
    width: 0;
    padding-top: 100%;
  }
  .pm-linktile--split.pm-linktile--two-thirds,
  .pm-linktile--split.pm-linktile--full {
    grid-template-rows: 200px auto;
  }
  .pm-linktile--split .pm-linktile__content { min-height: 107px; }

  /* Standard Information Tiles use content-driven heights; imagery is 200px. */
  .pm-information { padding: 48px 0; }
  .pm-information__header {
    width: 300px;
    margin-bottom: 32px;
  }
  .pm-information__intro {
    margin-top: 18px;
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: .48px;
  }
  .pm-information__grid {
    width: calc(100% + 40px);
    margin-left: -20px;
    gap: 10px;
  }
  .pm-infotile {
    min-height: 0;
  }
  .pm-infotile__media { height: 200px; }
  .pm-infotile__content {
    min-height: 380px;
    padding: 178px 21px 24px;
  }
  .pm-infotile__title {
    margin-bottom: 0;
    font-size: 20px;
    line-height: 1.55;
  }
  .pm-infotile__copy {
    margin-top: 0;
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: .48px;
  }
  .pm-infotile__arrow { width: 42px; height: 42px; }

  /* Information carousel and plain cards share 300px / 20px / 16px metrics. */
  .pm-information-carousel,
  .pm-information-plain { padding: 48px 0; }
  .pm-information-carousel__layout { row-gap: 32px; }
  .pm-information-carousel__title { margin-bottom: 0; }
  .pm-information-carousel__intro p,
  .pm-information-card__copy {
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: .48px;
  }
  .pm-information-carousel__item {
    --pm-information-carousel-card-size: 300px;
    width: var(--pm-information-carousel-card-size);
  }
  .pm-information-carousel__nav { margin-top: 0; }
  .pm-information-carousel__arrow { width: 44px; height: 44px; }
  .pm-information-card__title {
    margin: 12px 0 0;
    font-size: 20px;
    line-height: 1.55;
  }
  .pm-information-card__cta { margin-top: 18px; }
  .pm-information-plain__grid { row-gap: 48px; }
  .pm-information-plain__item .pm-information-card__image {
    width: 300px;
    height: 220px;
  }

  /* Video Module: full-bleed media with a content-driven testimonial height. */
  .pm-video {
    min-height: 0;
    padding: 30px 0 0;
    display: block;
    background: var(--nudgee-light);
  }
  .pm-video__slider {
    min-height: 0;
    background: inherit;
  }
  .pm-video__slider .slick-list,
  .pm-video__slider .slick-track {
    min-height: 0;
    background: inherit;
  }
  .pm-video__panel {
    min-height: 0;
    padding: 0 30px 24px;
    gap: 24px;
    align-content: start;
    background: transparent;
  }
  .pm-video__content {
    order: 2;
    align-self: start;
    margin-top: 0;
  }
  .pm-video__media {
    order: 1;
    align-self: start;
    flex-shrink: 0;
  }
  .pm-video__title { margin-bottom: 0; }
  .pm-video__copy {
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: .48px;
  }
  .pm-video__quote {
    margin-bottom: 18px;
    font-size: 18px;
    line-height: 1.74;
    letter-spacing: .54px;
  }
  .pm-video__name { font-size: 24px; }
  .pm-video__designation { font-size: 16px; }
  .pm-video--testimonial .pm-video__media {
    width: calc(100% + 60px);
    margin-left: -30px;
    border-radius: 0;
  }
  .pm-video__dots {
    position: relative;
    left: auto;
    bottom: auto;
    width: calc(100% - 60px);
    min-height: 12px;
    margin: 0 auto;
    padding: 0 0 40px;
    box-sizing: border-box;
  }
  .pm-video--standard {
    min-height: 0;
    padding-bottom: 30px;
  }
  .pm-video--standard .pm-video__slider,
  .pm-video--standard .pm-video__slider .slick-list,
  .pm-video--standard .pm-video__slider .slick-track,
  .pm-video--standard .pm-video__panel {
    min-height: 0;
  }
  .pm-video--standard .pm-video__slider .slick-slide > div,
  .pm-video--standard .pm-video__slide,
  .pm-video--standard .pm-video__panel {
    height: auto;
  }
  .pm-video--standard .pm-video__panel { padding: 0; }
  .pm-video__panel--standard .pm-video__media { border-radius: 0; }  /* full width on mobile */
  .pm-video--standard .pm-video__dots {
    left: auto;
    padding: 24px 0 16px;
    transform: none;
  }

  /* Left/right dividers stack the image and blue copy panel on mobile. */
  .pm-divider--left,
  .pm-divider--right {
    height: auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: visible;
  }
  .pm-divider--left .pm-divider__media,
  .pm-divider--right .pm-divider__media {
    position: relative;
    inset: auto;
    width: 100%;
    height: 224px;
    flex: 0 0 224px;
  }
  .pm-divider--left .pm-divider__overlay,
  .pm-divider--right .pm-divider__overlay { display: none; }
  .pm-divider--left .pm-divider__frame,
  .pm-divider--right .pm-divider__frame {
    min-height: 0;
    align-items: flex-start;
    padding: 36px 30px 40px;
    background: var(--nudgee-royal);
  }
  .pm-divider--left .pm-divider__content,
  .pm-divider--right .pm-divider__content {
    width: 100%;
    min-height: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .pm-divider__eyebrow {
    margin-bottom: 0;
    font-size: 18px;
    line-height: 1.55;
  }
  .pm-divider__title {
    margin-bottom: 18px;
    font-size: 36px;
    line-height: 1.2;
  }
  .pm-divider__copy {
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: .48px;
  }
  .pm-divider__cta { margin-top: 18px; }
  .pm-divider--center {
    height: auto;
    min-height: 648px;
  }
  .pm-divider--center .pm-divider__frame { padding: 30px; }
  .pm-divider--center .pm-divider__content {
    width: 300px;
    padding: 0;
  }

  /* Mobile testimonials are full-bleed 648px panels. */
  .pm-testimonial--colour { padding: 0; }
  .pm-testimonial__canvas,
  .pm-testimonial--media .pm-testimonial__canvas { min-height: 648px; }
  .pm-testimonial__inner,
  .pm-testimonial--media .pm-testimonial__inner { padding: 30px; }
  .pm-testimonial--align-right .pm-testimonial__inner {
    align-items: flex-start;
    text-align: left;
  }
  .pm-testimonial__body,
  .pm-testimonial--align-left .pm-testimonial__body,
  .pm-testimonial--align-right .pm-testimonial__body,
  .pm-testimonial--align-center .pm-testimonial__body {
    width: 300px;
    max-width: 100%;
  }
  .pm-testimonial__mark {
    width: 44.418px;
    height: 37.015px;
    margin-bottom: 28px;
  }
  .pm-testimonial__quote {
    font-size: 18px;
    line-height: 1.74;
    letter-spacing: .54px;
  }
  .pm-testimonial__attribution {
    margin-top: 0;
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: .48px;
  }

  /* Publications: 299 x 424 A4 covers and the mobile header scale. */
  .pm-publications { padding: 80px 0 42px; }
  .pm-publications__header { gap: 18px; }
  .pm-publications__eyebrow {
    margin-bottom: 0;
    font-size: 18px;
    line-height: 1.55;
  }
  .pm-publications__title {
    font-size: 36px;
    line-height: 1.2;
  }
  .pm-publications__intro {
    font-size: 16px;
    line-height: 1.74;
    letter-spacing: .48px;
  }
  .pm-publications__rail { margin-top: 48px; }
  .pm-pub { width: 299px; }
  .pm-pub__title { font-size: 32px; }
  .pm-publications__nav { margin-top: 32px; }
  .pm-publication-flipbook {
    min-height: 100vh;
    min-height: 100svh;
  }
  .glightbox-container.pm-publication-flipbook-lightbox .gslide-media {
    width: 100vw !important;
    height: 100vh !important;
    height: 100svh !important;
  }
}

.curriculum-page { background: var(--nudgee-light); }
html:has(.curriculum-body) { overflow-x: clip; }
.curriculum-body .site-header .container { align-items: flex-start; padding-top: 34px; }
.curriculum-body .header-actions { margin-top: 6px; }
.curriculum-body .site-header.is-fixed .container { align-items: center; padding-top: 7.38px; }
.curriculum-body .site-header.is-fixed .header-actions { margin-top: 0; }
.cur-banner {
  position: relative;
  overflow: hidden;
  background: linear-gradient(118deg, #0a1830 0%, #12294a 100%);
  color: var(--nudgee-light);
  padding: 300px 0 46px;
}
.cur-banner__stripe {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: 17.5%; max-width: 336px;
  background: url(../images/paths/nc-stripe.png) -40px -163px / 376px 3543px no-repeat;
  opacity: 0.5;
  -webkit-mask-image: linear-gradient(90deg, transparent 42.3%, #000 99.5%);
          mask-image: linear-gradient(90deg, transparent 42.3%, #000 99.5%);
  pointer-events: none; z-index: 0;
}
.cur-banner__figure {
  position: absolute; z-index: 1;
  right: 1%; top: 120px; bottom: 0;
  width: auto; pointer-events: none;
}
.cur-banner__figure img {
  display: block; height: 100%; width: auto; max-width: none;
}
/* The figure's height came from the banner height, so below ~1700px the student
   grew across the eyebrow/title/lead. Scale him with the viewport instead,
   anchored bottom-right (42vw matches his current 1920 height, so there is no
   jump at that boundary). Listing banner only — the personalised hero has its
   own figure rules. */
@media (min-width: 992px) and (max-width: 1919px) {
  .cur-banner:not(.pers-hero) .cur-banner__figure {
    top: auto;
    bottom: 0;
    height: 42vw;
  }
}
.cur-banner__inner { position: relative; z-index: 2; }
.cur-banner__eyebrow {
  font-family: var(--font-head);            /* Figma 1324:548 — Poppins Regular */
  font-weight: 400;
  font-size: clamp(26px, 2.6vw, 36px);
  line-height: 1.2;
  letter-spacing: 1.08px;
  color: var(--gold-accent);
  margin-bottom: 10px;
}
.cur-banner__title {
  font-family: var(--font-display);         /* Figma 1324:545 — Playfair 68px */
  font-weight: 400;
  font-size: clamp(40px, 4.6vw, 68px);
  line-height: 1.16;
  color: var(--nudgee-light);
  margin-bottom: 20px;
}
.cur-banner__lead {
  font-family: var(--font-body);            /* Figma 1324:546 — Poppins 16px */
  font-weight: 400;
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--nudgee-light);
  max-width: 720px;
  margin-bottom: 40px;
}
.cur-paths {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  margin-bottom: 44px;
}
.cur-path { display: flex; }
.cur-path__link {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  min-height: 238px;
  padding: 26px;
  border-radius: 10px;
  overflow: hidden;
  isolation: isolate;                        /* contain the negative-z image/wash */
  text-decoration: none;
  color: var(--white);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.cur-path__bg {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s ease;
}
.cur-path__link::after {                     /* navy readability wash */
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(158deg, rgba(10,22,44,0.55) 0%, rgba(10,22,44,0.82) 100%);
}
.cur-path__link:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(9,20,39,0.42); }
.cur-path__link:hover .cur-path__bg { transform: scale(1.05); }
.cur-path__head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
}
.cur-path__eyebrow {
  font-family: var(--font-head);             /* Figma 1324:572 — Poppins Bold 14px */
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.42px;
  text-transform: uppercase;
  color: var(--gold-accent);
  padding-top: 14px;
}
.cur-path__arrow {                           /* outline circle, not filled */
  flex: 0 0 auto;
  width: 52px; height: 52px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1.5px solid rgba(201,161,91,0.85);
  color: var(--nudgee-light);
  background: transparent;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.cur-path__arrow svg { width: 22px; height: 22px; }
.cur-path__link:hover .cur-path__arrow {
  background: var(--gold-btn); color: var(--nudgee-ink); border-color: transparent;
}
.cur-path__foot { display: flex; flex-direction: column; }
.cur-path__title {
  font-family: var(--font-display);          /* Figma 1324:563 — Playfair 32px */
  font-weight: 400;
  font-size: clamp(24px, 1.9vw, 32px);
  line-height: 1.15;
  color: var(--white);
  margin-bottom: 10px;
}
.cur-path__desc {
  font-family: var(--font-body);             /* Poppins 14px */
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255,255,255,0.9);
}

/* ---------- Banner CTA row ---------- */
.cur-banner__cta {
  display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
}
.cur-banner__cta-text {
  font-family: var(--font-display);          /* Figma 1324:547 — Playfair 24px */
  font-weight: 400;
  font-size: 24px;
  letter-spacing: 0.72px;
  color: var(--nudgee-light);
}
.cur-personalise {
  display: inline-flex; align-items: center; gap: 12px;
  cursor: pointer;
  font-family: var(--font-head);            /* Poppins */
  font-weight: 700;
  font-size: 16px;
  line-height: 1.55;                        /* 24.8px */
  letter-spacing: 0.48px;
  text-transform: uppercase;
  color: var(--nudgee-light);               /* #EAE8E3 */
  padding: 16px 34px;
  border-radius: 999px;
  border: 1px solid transparent;
  background:
    linear-gradient(#0d213c, #0d213c) padding-box,
    var(--gold-btn) border-box;
  transition: color 0.3s ease, background 0.35s ease, box-shadow 0.3s ease;
}
.cur-personalise__spark { width: 26px; height: 26px; flex: 0 0 auto; }
.cur-personalise:hover {
  color: var(--nudgee-ink);
  background: var(--gold-btn) padding-box, var(--gold-btn) border-box;
  box-shadow: 0 10px 24px rgba(201,161,91,0.32);
}
.cur-personalise:hover .cur-personalise__spark path { stroke: var(--nudgee-ink); }
.cur-programs {
  position: relative; padding: 0 0 120px;
  background: #ffffff;
  overflow-x: clip;              
}

.cur-toolbar {
  position: relative;
  z-index: 10;                  
  display: flex; align-items: center; justify-content: flex-start;
  gap: 30px; flex-wrap: wrap;
  padding: 34px 0;              
  margin-bottom: 40px;           
}
.cur-toolbar::before {
  content: ""; position: absolute; z-index: -1;   
  top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%);
  background: var(--nudgee-light);
}

.cur-cats {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 5px; border-radius: 999px;
  border: 1px solid transparent;
  background:
    linear-gradient(var(--nudgee-light), var(--nudgee-light)) padding-box,
    var(--gold-btn) border-box;
}
.cur-cat {
  border: 0; background: transparent; cursor: pointer;
  font-family: var(--font-head); font-weight: 700; font-size: 14px;
  letter-spacing: 0.6px; text-transform: uppercase;
  color: var(--nudgee-navy);
  padding: 11px 22px; border-radius: 999px; white-space: nowrap;
  transition: color 0.25s ease, background 0.3s ease;
}
.cur-cat:hover { color: var(--nudgee-royal); }
.cur-cat.is-active { color: var(--nudgee-ink); background: var(--gold-btn); }

/* divider between category tabs and the year/search controls */
.cur-toolbar__sep {
  width: 1px; height: 34px; flex: 0 0 auto;
  background: rgba(30,66,115,0.28);
}
.cur-searchbtn { margin-left: 8px; }

/* year filter dropdown */
.cur-yearfilter { position: relative; }
.cur-yearfilter__toggle {
  display: inline-flex; align-items: center; gap: 14px; cursor: pointer;
  font-family: var(--font-head); font-weight: 700; font-size: 14px;
  letter-spacing: 0.6px; text-transform: uppercase;
  color: var(--nudgee-royal);
  padding: 14px 24px; border-radius: 999px;
  background: var(--white);
  border: 1px solid transparent;
  background:
    linear-gradient(#fff, #fff) padding-box,
    var(--gold-btn) border-box;
  transition: box-shadow 0.25s ease;
}
.cur-yearfilter__toggle:hover { box-shadow: 0 6px 16px rgba(30,66,115,0.12); }
.cur-yearfilter__chev {
  width: 18px; height: 18px; color: var(--nudgee-navy);
  transition: transform 0.3s ease;
}
.cur-yearfilter.is-open .cur-yearfilter__chev { transform: rotate(180deg); }
.cur-yearfilter__menu {
  position: absolute; top: calc(100% + 10px); left: 0; right: 0;
  min-width: 260px;
  background: var(--white);
  border-radius: 14px;
  box-shadow: 0 18px 44px rgba(11,27,51,0.16);
  padding: 8px;
  opacity: 0; visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s linear 0.25s;
  z-index: 40;
}
.cur-yearfilter.is-open .cur-yearfilter__menu {
  opacity: 1; visibility: visible; transform: translateY(0);
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s;
}
.cur-yearopt {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; cursor: pointer;
  padding: 13px 16px; border-radius: 10px;
  font-family: var(--font-body); font-size: 16px; color: var(--nudgee-navy);
  transition: background 0.2s ease;
}
.cur-yearopt:hover { background: rgba(234,232,227,0.55); }
.cur-yearopt.is-active { background: var(--nudgee-light); }
.cur-yearopt input { position: absolute; opacity: 0; width: 0; height: 0; }

/* category dropdown (shown only < 480px — see responsive block) */
.cur-catselect { display: none; }
.cur-catopt {
  display: block; width: 100%; border: 0; background: transparent; cursor: pointer;
  text-align: left; padding: 13px 16px; border-radius: 10px;
  font-family: var(--font-body); font-size: 16px; color: var(--nudgee-navy);
  transition: background 0.2s ease;
}
.cur-catopt:hover { background: rgba(234,232,227,0.55); }
.cur-catopt.is-active { background: var(--nudgee-light); font-weight: 600; }

/* shared square check control (year + modal) */
.cur-check {
  flex: 0 0 auto;
  width: 20px; height: 20px;
  border: 1.5px solid #b9bcc4; border-radius: 5px;
  background: var(--white);
  position: relative;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.cur-check::after {
  content: ""; position: absolute; left: 6px; top: 2px;
  width: 5px; height: 10px;
  border: solid var(--white); border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(0);
  transition: transform 0.18s ease;
}
input:checked + .cur-check {
  background: var(--nudgee-ink); border-color: var(--nudgee-ink);
}
input:checked + .cur-check::after { transform: rotate(45deg) scale(1); }

/* search button */
.cur-searchbtn {
  width: 52px; height: 52px; border-radius: 50%; cursor: pointer;
  border: 1px solid transparent;
  background:
    linear-gradient(#fff, #fff) padding-box,
    var(--gold-btn) border-box;
  color: var(--nudgee-navy);
  display: inline-flex; align-items: center; justify-content: center;
  transition: background 0.3s ease, color 0.3s ease;
}
.cur-searchbtn svg { width: 22px; height: 22px; }
.cur-searchbtn:hover { background: var(--gold-btn); color: var(--nudgee-ink); }

.cur-count {
  font-family: var(--font-body); font-size: 16px;
  color: var(--nudgee-navy); opacity: 0.8;
  margin: 0 0 26px 4px;
}

/* ---------- Tiles grid ---------- */
.cur-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 32px;
}
.cur-tile { display: flex; }
.cur-tile__btn {
  display: block; position: relative; width: 100%;
  aspect-ratio: 294 / 344;
  border: 0; padding: 0; margin: 0; cursor: pointer;
  border-radius: 10px; overflow: hidden;         /* Figma rounded-[10px] */
  background: var(--nudgee-navy);
  text-align: left;
  box-shadow: 0 0 24px rgba(0,0,0,0.25);          /* Figma shadow (both variants) */
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.cur-tile__img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s ease;               /* smooth zoom */
}

.cur-tile__btn::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(0,31,60,0) 50%, rgba(11,27,51,0.85) 81.25%);
}

.cur-tile__wash {
  position: absolute; inset: 0; z-index: 2;
  background: linear-gradient(180deg, rgba(0,31,60,0) 50%, #00539b 81.25%);
  opacity: 0;
  transition: opacity 0.3s ease-out;
}
.cur-tile__btn:hover .cur-tile__wash,
.cur-tile__btn:focus-visible .cur-tile__wash { opacity: 1; }

.cur-tile__btn:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(11,27,51,0.26); }
.cur-tile__btn:hover .cur-tile__img { transform: scale(1.05); }
.cur-tile__btn:focus-visible {
  outline: 3px solid var(--gold-accent);
  outline-offset: 4px;
}
.cur-tile__tag {
  position: absolute; top: 16px; left: 16px; z-index: 3;
  font-family: var(--font-head); font-weight: 700; font-size: 12px;
  letter-spacing: 0.8px; text-transform: uppercase;
  color: var(--gold-accent);
  background: rgba(11,27,51,0.8);
  padding: 5px 12px; border-radius: 4px;
}
.cur-tile__title {
  position: absolute; left: 20px; right: 20px; bottom: 22px; z-index: 3;
  font-family: var(--font-head); font-weight: 700;
  font-size: clamp(19px, 1.5vw, 26px); line-height: 1.15;
  color: var(--white);
}
.cur-tile.is-hidden { display: none; }
.cur-tile.is-active .cur-tile__btn { outline: 3px solid var(--gold-accent); outline-offset: 3px; }

/* ---------- Program detail — tile click → full-page slide-in (Figma 1324:1217) ---------- */
.cur-detail {
  position: fixed; inset: 0; z-index: 210;
  background: transparent;
  overflow: hidden;
  /* Figma 1342:2663 — Move in / Right, Ease out, 300ms: the detail slides in
     from the right edge. Pure slide, no fade. */
  visibility: hidden;
  transition: visibility 0s linear 0.3s;
}
.cur-detail::before {
  content: "";
  position: fixed; inset: 0; z-index: 0;
  background: rgba(0, 0, 0, 0.6);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity 0.3s ease-out;
  pointer-events: auto;
}
.cur-detail.is-open {
  visibility: visible;
  transition: visibility 0s;
}
.cur-detail.is-open::before { opacity: 1; }
.cur-detail__close {
  position: fixed; top: 10px; right: 10px; z-index: 6;
  width: 53px; height: 53px; padding: 0; border-radius: 50%; cursor: pointer;
  border: 1px solid var(--gold-accent);
  background: var(--nudgee-light);
  color: var(--nudgee-royal);
  display: inline-flex; align-items: center; justify-content: center;
  transition: background 0.3s ease-out, border-color 0.3s ease-out,
              box-shadow 0.3s ease-out, color 0.3s ease-out;
}
.cur-detail__close svg { width: 24px; height: 24px; }
.cur-detail__close:hover {
  background: var(--gold-btn);
  border-color: transparent;
  color: var(--nudgee-royal);
  box-shadow: 0 0 14px rgba(201, 161, 91, 0.45);
}
.cur-detail__close:focus-visible {
  outline: 3px solid var(--nudgee-royal);
  outline-offset: 3px;
  box-shadow: 0 0 0 2px var(--nudgee-light);
}
.cur-detail__grid {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 432px;
  gap: 0;
  width: 100%;
  height: 100%;
  max-width: 1624px; margin: 0 0 0 auto;
  padding: 0;
  background: var(--white);
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.25);
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  transform: translateX(100%);
  transition: transform 0.3s ease-out;
  will-change: transform;
}
.cur-detail.is-open .cur-detail__grid { transform: translateX(0); }
.cur-detail__loading {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  min-width: 0;
  min-height: 100vh;
  min-height: 100dvh;
  padding: 80px 32px;
  background: var(--nudgee-light);
  text-align: center;
}
.cur-detail__loading-spinner {
  width: 58px;
  height: 58px;
  border: 4px solid rgba(0, 83, 155, 0.18);
  border-top-color: var(--gold-accent);
  border-radius: 50%;
  animation: cur-detail-loading-spin 0.8s linear infinite;
}
.cur-detail__loading-text {
  font-family: var(--font-head);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.84px;
  text-transform: uppercase;
  color: var(--nudgee-royal);
}
@keyframes cur-detail-loading-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .cur-detail__loading-spinner { animation: none; }
}
.cur-detail__main { grid-column: 1; min-width: 0; background: var(--white); }
/* hero */
.cur-detail__hero {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1192 / 554.393;
}
.cur-detail__hero:focus-visible {
  outline: 4px solid var(--gold-accent);
  outline-offset: -4px;
}
.cur-detail__hero img {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
}
.cur-detail__hero-image {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.cur-detail__hero::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(0,0,0,0) 49.759%, rgba(0,0,0,0.4) 80.71%);
  pointer-events: none;
}
.cur-detail__heading {
  position: absolute; left: 32px; right: 200px; bottom: 28px; z-index: 2;
  display: flex; flex-direction: column;
  max-width: 651.305px;
}
.cur-detail__tag {
  align-self: flex-start;
  height: 22px;
  padding: 0 6px;
  border-radius: 4px;
  background: rgba(11,27,51,0.8);
  color: var(--gold-accent);
  font-family: var(--font-head); font-weight: 700; font-size: 14px;
  line-height: 1.55; letter-spacing: 0.42px; text-transform: uppercase;
}
.cur-detail__heroTitle {
  display: flex; align-items: center;
  min-height: 102.229px;
  margin: 0;
  font-family: var(--font-display); font-weight: 400;
  font-size: 68px; line-height: 1.2; letter-spacing: 0;
  color: var(--white);
}
.cur-detail__play {
  position: absolute; right: 41.288px; bottom: 40px; z-index: 2;
  width: 134.712px; height: 134.709px; padding: 0;
  border: 0; border-radius: 50%; cursor: pointer;
  background: rgba(0, 83, 155, 0.85);
  color: var(--gold-accent);
  display: inline-flex; align-items: center; justify-content: center;
  transition: background 0.3s ease-out, transform 0.3s ease-out;
}
.cur-detail__play::before {
  content: "";
  position: absolute;
  inset: 15.068px;
  border: 1px solid var(--gold-accent);
  border-radius: 50%;
}
.cur-detail__play:hover { background: var(--nudgee-royal); transform: scale(1.04); }
.cur-detail__play:focus-visible {
  outline: 3px solid var(--gold-accent);
  outline-offset: 4px;
}
.cur-detail__play[hidden] { display: none; }
.cur-detail__play svg {
  position: relative;
  width: 72px; height: 72px;
  margin-left: 4px;
}

.cur-detail__video {
  position: absolute; top: 50%; left: 50%; z-index: 0;
  width: 100%; min-width: 100%;
  height: auto; min-height: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.cur-detail__testimonial-video:focus-visible {
  outline: 4px solid var(--gold-accent);
  outline-offset: -4px;
}
/* intro band */
.cur-detail__intro {
  display: grid;
  grid-template-columns: 480px 616px;
  gap: 32px;
  align-items: start;
  min-height: 685.865px;
  padding: 32px 32px 37.865px;
  background: #0b1b33;
  color: var(--white);
}
.cur-detail__introcopy {
  min-width: 0;
  width: 100%;
  max-width: 480px;
  padding-top: 33.455px;
}
.cur-detail__lead {
  margin: 0 0 40px;
  font-family: var(--font-display); font-weight: 400;
  font-size: 32px; line-height: 1.47; letter-spacing: 0.96px;
  color: var(--gold-accent);
}
.cur-detail__copy p {
  margin: 0 0 16px;
  font-family: var(--font-body); font-weight: 400;
  font-size: 16px; line-height: 1.74; letter-spacing: 0.48px;
  color: var(--white);
}
.cur-detail__copy p:last-child { margin-bottom: 0; }
.cur-detail__introimg {
  align-self: start;
  width: 616px; height: 616px;
  margin: 0;
  border-radius: 10px;
  overflow: hidden;
}
.cur-detail__introimg img {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
}
/* sidebar */
.cur-detail__side {
  position: relative;
  grid-column: 2;
  align-self: start;
  min-height: 0;
  padding: 56px 32px 72px;
  background: var(--nudgee-light);
  display: flex;
  flex-direction: column;
  gap: 36px;
}


.cur-detail__label {
  font-family: var(--font-head); font-weight: 700; font-size: 14px;
  letter-spacing: 0.84px; text-transform: uppercase; color: #767676;
  line-height: 1.74; margin: 0;
}
.cur-detail__label--under { padding-bottom: 24px; border-bottom: 1px solid #d8d4cc; }

/* At a glance — label/value rows (Figma 1342:2727/2730 — Poppins 16px #767676) */
.cur-detail__glance dl { margin: 0; }
.cur-detail__row {
  display: grid;
  grid-template-columns: 120.666px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  padding: 10px 0 15px;
  border-bottom: 1px solid #d8d4cc;
}
.cur-detail__row dt,
.cur-detail__row dd {
  margin: 0; font-family: var(--font-head); font-weight: 400; font-size: 16px;
  letter-spacing: 0.48px; line-height: 1.74; color: #767676;
}
.cur-detail__row dd { white-space: normal; }
.cur-detail__contact {
  position: relative;
  display: block;
  width: 100%; max-width: 367.908px;
  aspect-ratio: 367.908 / 212.556;
  overflow: hidden;
  background: #0b1b33;
  border-radius: 10px;
  text-decoration: none;
  color: var(--white);
  transition: box-shadow 0.3s ease-out, transform 0.3s ease-out;
}
.cur-detail__contact-img {
  position: absolute; right: 0; bottom: 0; z-index: 1;
  width: 170.551px; height: 209.918px;
  object-fit: cover; object-position: 52% center;
  border-radius: 0 10px 10px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 32%);
          mask-image: linear-gradient(90deg, transparent 0%, #000 32%);
}
.cur-detail__contact p {
  position: absolute; top: 15.095px; left: 21.324px; z-index: 2;
  width: 239.031px;
  margin: 0;
  font-family: var(--font-display); font-weight: 400;
  font-size: 24px; line-height: 1.37; letter-spacing: 0.72px;
  color: var(--white);
}
.cur-detail__contact span {
  position: absolute; left: 21.324px; top: 147.299px; z-index: 2;
  display: inline-flex; align-items: center; gap: 8.732px;
  height: 36px;
  font-family: var(--font-head); font-weight: 700;
  font-size: 16px; line-height: 1.55; letter-spacing: 0.48px;
  text-transform: uppercase; white-space: nowrap;
  color: var(--white);
}
.cur-detail__contact span::before {
  content: "";
  width: 16.216px; height: 16.216px;
  flex: 0 0 16.216px;
  border-radius: 50%;
  background: #cda770;
}
.cur-detail__contact:hover {
  box-shadow: 0 10px 24px rgba(11, 27, 51, 0.24);
  transform: translateY(-2px);
}
.cur-detail__contact:focus-visible {
  outline: 3px solid var(--nudgee-royal);
  outline-offset: 3px;
}
.cur-detail__events,
.cur-detail__news {
  position: static;
}
.cur-detail__events[hidden],
.cur-detail__news[hidden] { display: none; }
.cur-detail__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 15.583px 0 0;
  padding: 0;
  list-style: none;
}
.cur-detail__list li {
  display: flex;
  min-height: 119px;
  gap: 16.434px;
  align-items: flex-start;
}
.cur-detail__list img {
  width: 119px; height: 119px;
  flex: 0 0 119px;
  border-radius: 4px;
  object-fit: cover;
}
.cur-detail__list li > span {
  min-width: 0;
  padding-top: 6.38px;
}
.cur-detail__list b {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  font-family: var(--font-display); font-weight: 400;
  font-size: 22px; line-height: 1.28;
  color: var(--nudgee-royal);
}
.cur-detail__list time {
  display: block;
  margin-top: 5px;
  font-family: var(--font-body); font-weight: 400;
  font-size: 14px; line-height: 1.74; letter-spacing: 0.42px;
  color: #767676;
}


.cur-detail__editorial {
  position: relative;
  grid-column: 1 / -1;
  width: 100%;
  height: 990.435px;
  overflow: hidden;
  background: var(--white);
}
.cur-detail__editorial[hidden] { display: none; }
.cur-detail__editorial-media,
.cur-detail__editorial-content { display: contents; }
.cur-detail__editorial-main,
.cur-detail__editorial-inset {
  position: absolute;
  z-index: 1;
  margin: 0;
  overflow: hidden;
}
.cur-detail__editorial-main {
  top: 99.861px; left: 0;
  width: 648px; height: 611.659px;
  border-radius: 0 10px 10px 0;
}
.cur-detail__editorial-inset {
  top: 556.294px; left: 272px;
  width: 334.141px; height: 334.141px;
  border-radius: 10px;
}
.cur-detail__editorial-main img,
.cur-detail__editorial-inset img {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
}
.cur-detail__editorial-eyebrow {
  position: absolute;
  top: 187.303px; left: 808px;
  width: 512px;
  margin: 0;
  font-family: var(--font-body); font-weight: 400;
  font-size: 22px; line-height: 1.55; letter-spacing: 0;
  color: #c9a15b;
}
.cur-detail__editorial-rule {
  position: absolute;
  top: 309.205px; left: 648px;
  width: 143.297px; height: 1px;
  background: #c9a15b;
}
.cur-detail__editorial-title {
  position: absolute;
  top: 262.974px; left: 808.877px;
  width: 754.525px;
  margin: 0;
  font-family: var(--font-display); font-weight: 400;
  font-size: 48px; line-height: 1.2; letter-spacing: 0;
  color: var(--nudgee-royal);
}
.cur-detail__editorial-copy {
  position: absolute;
  top: 348.355px; left: 816px;
  width: 648px;
  font-family: var(--font-body); font-weight: 400;
  font-size: 16px; line-height: 1.74; letter-spacing: 0.48px;
  color: #000;
}
.cur-detail__editorial-copy p { margin: 0 0 27.84px; }
.cur-detail__editorial-copy p:last-child { margin-bottom: 0; }
.cur-detail__editorial-copy strong { font-weight: 700; }
.cur-detail__editorial-video-wrap {
  background: #0b1b33;
}
.cur-detail__editorial-play {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(76px, 20.8%, 134.712px);
  aspect-ratio: 1;
  padding: 0;
  transform: translate(-50%, -50%);
  border: 0;
  border-radius: 50%;
  background: rgba(0, 83, 155, 0.88);
  color: var(--gold-accent);
  cursor: pointer;
  transition: background 0.3s ease-out, box-shadow 0.3s ease-out,
              opacity 0.3s ease-out, transform 0.3s ease-out,
              visibility 0.3s ease-out;
}
.cur-detail__editorial-play::before {
  content: "";
  position: absolute;
  inset: 11.2%;
  border: 1px solid var(--gold-accent);
  border-radius: 50%;
}
.cur-detail__editorial-play svg {
  position: relative;
  width: 53.45%;
  height: 53.45%;
  margin-left: 3%;
}
.cur-detail__editorial-play:hover {
  transform: translate(-50%, -50%) scale(1.04);
  background: var(--nudgee-royal);
  box-shadow: 0 0 0 4px rgba(201, 161, 91, 0.35);
}
.cur-detail__editorial-play:focus-visible {
  outline: 3px solid var(--gold-accent);
  outline-offset: 4px;
}
.cur-detail__editorial-play[hidden] { display: none; }
.cur-detail__editorial-video-wrap.is-playing .cur-detail__editorial-play {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.cur-detail__editorial-video-poster {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: opacity 0.3s ease-out, visibility 0.3s ease-out;
}
.cur-detail__editorial-video-wrap.is-playing .cur-detail__editorial-video-poster {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.cur-detail__editorial-video {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  display: block;
  width: auto;
  min-width: 100%;
  height: 100%;
  max-width: none;
  aspect-ratio: 16 / 9;
  pointer-events: none;
  transform: translate(-50%, -50%);
  border: 0;
}
.cur-detail__editorial-link {
  z-index: 2;
}
.cur-detail__editorial--media-right .cur-detail__editorial-main {
  right: 0;
  left: auto;
  border-radius: 10px 0 0 10px;
}
.cur-detail__editorial--media-right .cur-detail__editorial-inset {
  right: 272px;
  left: auto;
}
.cur-detail__editorial--media-right .cur-detail__editorial-eyebrow {
  left: 160px;
}
.cur-detail__editorial--media-right .cur-detail__editorial-rule {
  left: 808px;
}
.cur-detail__editorial--media-right .cur-detail__editorial-title {
  left: 160px;
  width: 648px;
}
.cur-detail__editorial--media-right .cur-detail__editorial-copy {
  left: 160px;
  width: 512px;
}
@media (min-width: 1624px) {
  .cur-detail__grid {
    grid-auto-rows: max-content;
    align-content: start;
  }
  .cur-detail__editorial {
    display: grid;
    grid-template-columns: 648px minmax(0, 648px);
    column-gap: 160px;
    align-items: start;
    box-sizing: border-box;
    height: auto;
    min-height: 0;
    padding: 99.861px 168px 100px 0;
  }
  .cur-detail__editorial-media {
    position: relative;
    display: block;
    min-width: 0;
  }
  .cur-detail__editorial-media:has(.cur-detail__editorial-inset) {
    padding-bottom: 178.635px;
  }
  .cur-detail__editorial-main {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    height: auto;
    aspect-ratio: 648 / 611.659;
  }
  .cur-detail__editorial-inset {
    top: auto;
    right: auto;
    bottom: 0;
    left: 272px;
  }
  .cur-detail__editorial-content {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    align-self: start;
    width: 648px;
    margin-top: 87.442px;
  }
  .cur-detail__editorial-eyebrow,
  .cur-detail__editorial-title,
  .cur-detail__editorial-copy {
    position: static;
    width: 100%;
  }
  .cur-detail__editorial-title {
    margin-top: 41.57px;
  }
  .cur-detail__editorial-copy {
    margin-top: 27.781px;
  }
  .cur-detail__editorial-rule {
    top: 121.902px;
    right: calc(100% + 16.703px);
    left: auto;
  }
  .cur-detail__editorial-link {
    position: relative;
    margin-top: 48px;
  }
  .cur-detail__editorial--media-right .cur-detail__editorial-content {
    grid-column: 1;
    grid-row: 1;
    left: auto;
  }
  .cur-detail__editorial--media-right {
    grid-template-columns: 648px 648px;
    column-gap: 168px;
    padding-right: 0;
    padding-left: 160px;
  }
  .cur-detail__editorial--media-right .cur-detail__editorial-media {
    grid-column: 2;
    grid-row: 1;
  }
  .cur-detail__editorial--media-right .cur-detail__editorial-main {
    right: auto;
    left: auto;
  }
  .cur-detail__editorial--media-right .cur-detail__editorial-inset {
    right: 272px;
    left: auto;
  }
  .cur-detail__editorial--media-right .cur-detail__editorial-rule {
    right: auto;
    left: 100%;
  }
}

/* Centered Chemistry quote band (Figma 1324:1248-1251) */
.cur-detail__quote {
  position: relative;
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  height: auto;
  min-height: 540.526px;
  padding: 120.456px 40px 80px;
  overflow: hidden;
  background: #eae8e3;
}
.cur-detail__quote[hidden] { display: none; }
.cur-detail__quote blockquote {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin: 0;
}
.cur-detail__quote-mark {
  position: relative;
  display: block;
  width: 67.005px; height: 55.838px;
  margin-bottom: 32.002px;
}
.cur-detail__quote-copy {
  position: relative;
  width: 100%;
  max-width: 784px;
  margin: 0;
  font-family: var(--font-body); font-weight: 400;
  font-size: 24px; line-height: 1.74; letter-spacing: 0.72px;
  text-align: center;
  color: var(--nudgee-royal);
}
.cur-detail__quote-attribution {
  position: relative;
  width: 100%;
  max-width: 784px;
  margin: 28px 0 0;
  font-family: var(--font-head); font-weight: 700;
  font-size: 16px; line-height: 1.74; letter-spacing: 0.48px;
  text-align: center; text-transform: uppercase;
  color: var(--nudgee-royal);
}

/* Middle and Senior School editorial rows (Figma 1324:1246-1259) */
.cur-detail__school-sections {
  grid-column: 1 / -1;
  width: 100%;
  background: var(--white);
}
.cur-detail__school-sections[hidden] { display: none; }
.cur-detail__school {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--white);
}
.cur-detail__school--middle { height: 852px; }
.cur-detail__school--senior { height: 952.9px; }
.cur-detail__school-image {
  position: absolute;
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
}
.cur-detail__school-image img {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
}
.cur-detail__school--middle .cur-detail__school-image {
  top: 100px; left: 32px;
  width: 752px; height: 752px;
}
.cur-detail__school--senior .cur-detail__school-image {
  top: 100px; left: 816px;
  width: 775.64px; height: 752.643px;
}
.cur-detail__school-content { display: contents; }
.cur-detail__school-eyebrow {
  position: absolute;
  width: 512px;
  margin: 0;
  font-family: var(--font-body); font-weight: 400;
  font-size: 22px; line-height: 1.55; letter-spacing: 0;
  text-transform: uppercase;
  color: var(--gold-accent);
}
.cur-detail__school-title {
  position: absolute;
  width: 608.333px;
  margin: 0;
  font-family: var(--font-display); font-weight: 400;
  font-size: 48px; line-height: 1.2; letter-spacing: 0;
  color: var(--nudgee-royal);
}
.cur-detail__school-copy {
  position: absolute;
  font-family: var(--font-body); font-weight: 400;
  font-size: 16px; line-height: 1.74; letter-spacing: 0.48px;
  color: #000;
}
.cur-detail__school-copy p { margin: 0 0 27.84px; }
.cur-detail__school-copy p:last-child { margin-bottom: 0; }
.cur-detail__school-copy strong { font-weight: 700; }
.cur-detail__handbook {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 8.732px;
  min-height: 36px;
  color: var(--nudgee-royal);
  text-decoration: none;
}
.cur-detail__handbook span {
  width: 16.216px; height: 16.216px;
  flex: 0 0 16.216px;
  border-radius: 50%;
  background: var(--button-dot);
  transition: transform 0.3s ease-out;
}
.cur-detail__handbook b {
  font-family: var(--font-head); font-weight: 700;
  font-size: 16px; line-height: 1.55; letter-spacing: 0.48px;
  text-transform: uppercase;
  white-space: nowrap;
  transition: transform 0.3s ease-out;
}
.cur-detail__handbook:hover span { transform: scale(1.12); }
.cur-detail__handbook:hover b { transform: translateX(3px); }
.cur-detail__handbook:focus-visible {
  outline: 3px solid var(--gold-accent);
  outline-offset: 4px;
}
.cur-detail__school--middle .cur-detail__school-eyebrow {
  top: 141.616px; left: 952px;
}
.cur-detail__school--middle .cur-detail__school-title {
  top: 218.96px; left: 952px;
}
.cur-detail__school--middle .cur-detail__school-copy {
  top: 317.96px; left: 952px;
  width: 512px;
}
.cur-detail__school--middle .cur-detail__handbook {
  top: 741.96px; left: 952px;
}
.cur-detail__school--senior .cur-detail__school-eyebrow {
  top: 130.35px; left: 136px;
}
.cur-detail__school--senior .cur-detail__school-title {
  top: 207.29px; left: 136px;
}
.cur-detail__school--senior .cur-detail__school-copy {
  top: 306.29px; left: 136px;
  width: 532.875px;
}
.cur-detail__school--senior .cur-detail__handbook {
  top: 786.29px; left: 136px;
}

/* Lower Chemistry video testimonial (Figma 1324:1260-1269) */
.cur-detail__testimonial {
  position: relative;
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 781.763px 649.925px;
  gap: 25.199px;
  align-items: start;
  box-sizing: border-box;
  width: 100%;
  height: auto;
  min-height: 711px;
  padding: 30.127px max(15.647px, calc(100% - 1593.279px)) 30.873px 136.392px;
  overflow: visible;
  background: #eae8e3;
}
.cur-detail__testimonial[hidden] { display: none; }
.cur-detail__testimonial-content {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding-top: 130.373px;
}
.cur-detail__testimonial-content blockquote,
.cur-detail__testimonial-content footer { margin: 0; }
.cur-detail__testimonial-content blockquote {
  width: 100%;
}
.cur-detail__testimonial-content footer {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  margin-top: 17.72px;
}
.cur-detail__testimonial-mark {
  position: static;
  display: block;
  width: 67.005px; height: 55.838px;
  margin-bottom: 32.002px;
}
.cur-detail__testimonial-copy {
  position: static;
  width: 100%;
  margin: 0;
  font-family: var(--font-body); font-weight: 400;
  font-size: 24px; line-height: 1.74; letter-spacing: 0.72px;
  color: #000;
}
.cur-detail__testimonial-name {
  position: static;
  width: 100%;
  margin: 0;
  font-family: var(--font-display); font-weight: 400;
  font-size: 38px; line-height: 1.2; letter-spacing: 0;
  color: var(--nudgee-royal);
}
.cur-detail__testimonial-attribution {
  position: static;
  width: 337.6px;
  max-width: 100%;
  margin: 4.955px 0 0;
  font-family: var(--font-head); font-weight: 700;
  font-size: 16px; line-height: 1.088; letter-spacing: 0;
  color: var(--gold-accent);
}
.cur-detail__testimonial-media {
  position: relative;
  grid-column: 2;
  grid-row: 1;
  width: 649.925px; height: 649.996px;
  overflow: hidden;
  border-radius: 10px;
  background: #d9dddd;
}
.cur-detail__testimonial-media > img {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  transition: opacity 0.3s ease-out, visibility 0.3s ease-out;
}
.cur-detail__testimonial-video-poster {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: opacity 0.3s ease-out, visibility 0.3s ease-out;
}
.cur-detail__testimonial-play {
  position: absolute;
  top: 50%; left: 50%; z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 134.708px; height: 134.708px;
  padding: 0;
  transform: translate(-50%, -50%);
  border: 0;
  border-radius: 50%;
  background: rgba(0, 83, 155, 0.88);
  color: var(--gold-accent);
  cursor: pointer;
  transition: background 0.3s ease-out, box-shadow 0.3s ease-out, transform 0.3s ease-out,
              opacity 0.3s ease-out, visibility 0.3s ease-out;
}
.cur-detail__testimonial-play::before {
  content: "";
  position: absolute;
  inset: 11.2%;
  border: 1px solid var(--gold-accent);
  border-radius: 50%;
}
.cur-detail__testimonial-play svg {
  position: relative;
  width: 53.45%;
  height: 53.45%;
  margin-left: 3%;
}
.cur-detail__testimonial-play:hover {
  transform: translate(-50%, -50%) scale(1.04);
  background: var(--nudgee-royal);
  box-shadow: 0 0 0 4px rgba(201, 161, 91, 0.35);
}
.cur-detail__testimonial-play:focus-visible {
  outline: 3px solid var(--gold-accent);
  outline-offset: 4px;
}
.cur-detail__testimonial-play[hidden] { display: none; }
.cur-detail__testimonial-video {
  position: absolute;
  top: 50%; left: 50%; z-index: 3;
  display: block;
  width: auto;
  min-width: 100%;
  height: 100%;
  max-width: none;
  aspect-ratio: 16 / 9;
  border: 0;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.cur-detail__testimonial-media.is-playing > img,
.cur-detail__testimonial-media.is-playing .cur-detail__testimonial-video-poster,
.cur-detail__testimonial-media.is-playing .cur-detail__testimonial-play {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* Related Chemistry curriculum cards (Figma 1324:1270-1283) */
.cur-detail__related {
  grid-column: 1 / -1;
  box-sizing: border-box;
  width: 100%;
  height: 617.246px;
  padding: 100.258px 0 111.94px 135px;
  background: var(--white);
}
.cur-detail__related[hidden] { display: none; }
.cur-detail__related-heading {
  margin: 0 0 33.168px;
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.74;
  letter-spacing: 0.96px;
  text-transform: uppercase;
  color: #767676;
}
.cur-detail__related-list {
  display: grid;
  grid-template-columns: repeat(3, 294px);
  gap: 31.301px;
}
.cur-detail__related-link {
  display: block;
  border-radius: 10px;
  color: inherit;
  text-decoration: none;
}
.cur-detail__related-link:focus-visible {
  outline: 3px solid var(--gold-accent);
  outline-offset: 4px;
}
.cur-detail__related-card {
  position: relative;
  width: 294px;
  height: 343.878px;
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
  background: var(--nudgee-navy);
  box-shadow: 0 0 24px rgba(0, 0, 0, 0.25);
}
.cur-detail__related-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(0, 31, 60, 0) 50%,
                                      rgba(11, 27, 51, 0.85) 81.25%);
}
.cur-detail__related-card > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.cur-detail__related-tag {
  position: absolute;
  top: 13px;
  left: 10px;
  z-index: 2;
  height: 22px;
  padding: 0 6px;
  border-radius: 4px;
  background: rgba(11, 27, 51, 0.8);
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 700;
  line-height: 22px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--gold-accent);
}
.cur-detail__related-title {
  position: absolute;
  right: 15px;
  bottom: 22px;
  left: 15px;
  z-index: 2;
  margin: 0;
  font-family: var(--font-head);
  font-size: 26px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0;
  color: var(--white);
}
@media (prefers-reduced-motion: reduce) {
  .cur-detail,
  .cur-detail::before,
  .cur-detail__grid,
  .cur-detail__close,
  .cur-detail__play,
  .cur-detail__editorial-play,
  .cur-detail__contact,
  .cur-detail__handbook span,
  .cur-detail__handbook b,
  .cur-detail__editorial-video-poster,
  .cur-detail__testimonial-media > img,
  .cur-detail__testimonial-video-poster,
  .cur-detail__testimonial-play {
    transition: none;
  }
  .cur-detail__grid { transform: none; }
  .cur-detail__play:hover,
  .cur-detail__editorial-play:hover,
  .cur-detail__contact:hover,
  .cur-detail__testimonial-play:hover {
    transform: none;
  }
  .cur-detail__editorial-play:hover,
  .cur-detail__testimonial-play:hover {
    transform: translate(-50%, -50%);
  }
  .cur-detail__handbook:hover span,
  .cur-detail__handbook:hover b {
    transform: none;
  }
}
body.cur-detail-open { overflow: hidden; }

/* ---------- PERSONALISE MODAL (Figma 1324:839) ---------- */
.cur-modal {
  position: fixed; inset: 0; z-index: 200;
  display: flex; align-items: center; justify-content: center;
  padding: 40px 20px;
  visibility: hidden;
}
.cur-modal.is-open { visibility: visible; }
.cur-modal__overlay {
  position: absolute; inset: 0;
  background: rgba(9,20,38,0.62);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  opacity: 0; transition: opacity 0.35s ease;
}
.cur-modal.is-open .cur-modal__overlay { opacity: 1; }
.cur-modal__dialog {
  position: relative;
  width: 100%; max-width: 1040px;
  max-height: calc(100vh - 80px);
  overflow-y: auto;
  background: var(--white);
  border-radius: 18px;
  padding: 52px 56px 40px;
  box-shadow: 0 40px 90px rgba(9,20,38,0.4);
  opacity: 0; transform: translateY(18px) scale(0.985);
  transition: opacity 0.35s ease, transform 0.35s cubic-bezier(.22,.61,.36,1);
}
.cur-modal.is-open .cur-modal__dialog { opacity: 1; transform: translateY(0) scale(1); }
.cur-modal__close {
  position: absolute; top: 22px; right: 22px;
  width: 42px; height: 42px; border-radius: 50%; cursor: pointer;
  border: 1px solid transparent;
  background:
    linear-gradient(#fff, #fff) padding-box,
    var(--gold-btn) border-box;
  color: var(--gold-accent);
  display: inline-flex; align-items: center; justify-content: center;
  transition: background 0.3s ease, color 0.3s ease;
}
.cur-modal__close svg { width: 20px; height: 20px; }
.cur-modal__close:hover { background: var(--gold-btn); color: var(--nudgee-ink); }
.cur-modal__title {
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(28px, 3vw, 36px); line-height: 1.15;
  color: var(--nudgee-royal); text-align: center; margin-bottom: 10px;
}
.cur-modal__sub {
  font-family: var(--font-body); font-size: 15px; line-height: 1.6;
  color: var(--nudgee-navy); text-align: center; margin-bottom: 30px;
}
.cur-modal__count { color: var(--nudgee-royal); font-weight: 600; }
.cur-modal__grid {
  /* row flow + auto-fill: the CMS can hold any number of subjects (73 on the
     live site) without the fixed column count overflowing the dialog */
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  grid-auto-flow: row;
  gap: 10px 14px; margin-bottom: 34px;
}
.cur-interest {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; cursor: pointer;
  padding: 11px 18px; border-radius: 999px;
  border: 1px solid #e6e2db;
  font-family: var(--font-body); font-size: 14px; color: var(--nudgee-navy);
  transition: background 0.2s ease, border-color 0.2s ease;
}
.cur-interest:hover { border-color: var(--gold-accent); }
.cur-interest:has(input:checked) { background: var(--nudgee-light); border-color: var(--nudgee-light); }
.cur-interest input { position: absolute; opacity: 0; width: 0; height: 0; }
.cur-interest .cur-check { width: 18px; height: 18px; }
.cur-interest .cur-check::after { left: 5px; top: 2px; }
.cur-modal__foot {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap;
}
.cur-modal__skip {
  font-family: var(--font-body); font-size: 15px; color: var(--nudgee-navy);
  text-decoration: underline; text-underline-offset: 3px;
}
.cur-modal__submit {
  display: inline-flex; align-items: center; gap: 10px; cursor: pointer;
  font-family: var(--font-head); font-weight: 700; font-size: 14px;
  letter-spacing: 0.8px; text-transform: uppercase;
  color: var(--nudgee-ink); border: 0;
  background: var(--gold-btn);
  padding: 16px 34px; border-radius: 999px;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.cur-modal__submit:hover { box-shadow: 0 12px 28px rgba(201,161,91,0.34); transform: translateY(-2px); }
body.cur-modal-open { overflow: hidden; }

/* ==========================================================================
   CURRICULUM — responsive
   ========================================================================== */
@media (min-width: 1200px) and (max-width: 1623px) {
  .cur-detail__intro {
    grid-template-columns: minmax(0, 0.78fr) minmax(0, 1fr);
  }
  .cur-detail__introimg {
    width: 100%;
    max-width: 616px;
    height: auto;
    aspect-ratio: 1;
  }
}
@media (max-width: 1623px) {
  .cur-detail__grid {
    grid-auto-rows: max-content;
    align-content: start;
  }
  .cur-detail__editorial {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 64px;
    align-items: center;
    height: auto;
    min-height: 0;
    padding: 72px 40px 104px;
  }
  .cur-detail__editorial[hidden] { display: none; }
  .cur-detail__editorial-media {
    position: relative;
    display: block;
    min-width: 0;
    padding-bottom: 23%;
  }
  .cur-detail__editorial-main {
    position: relative;
    top: auto; left: auto;
    width: 100%; height: auto;
    aspect-ratio: 648 / 611.659;
    border-radius: 10px;
  }
  .cur-detail__editorial-inset {
    top: auto; bottom: 0; left: 12%;
    width: 52%; height: auto;
    aspect-ratio: 1;
  }
  .cur-detail__editorial-content {
    display: flex;
    flex-direction: column;
    align-self: center;
    min-width: 0;
  }
  .cur-detail__editorial-eyebrow,
  .cur-detail__editorial-rule,
  .cur-detail__editorial-title,
  .cur-detail__editorial-copy {
    position: static;
    width: auto;
  }
  .cur-detail__editorial-eyebrow { order: 1; margin-bottom: 12px; }
  .cur-detail__editorial-title {
    order: 2;
    font-size: 44px;
  }
  .cur-detail__editorial-rule {
    order: 3;
    width: 112px;
    margin: 24px 0 28px;
  }
  .cur-detail__editorial-copy { order: 4; }
  .cur-detail__editorial-link {
    position: relative;
    order: 5;
    align-self: flex-start;
    margin-top: 32px;
  }
  .cur-detail__editorial--media-right .cur-detail__editorial-media {
    order: 2;
  }
  /* the base variant pins the inset with a desktop-scale right:272px; once the
     module stacks that computes to a negative left and the section's
     overflow:hidden cuts the photo off. Use the same 12% as media-left. */
  .cur-detail__editorial--media-right .cur-detail__editorial-inset {
    right: auto;
    left: 12%;
  }
  .cur-detail__editorial--media-right .cur-detail__editorial-content {
    order: 1;
  }
  .cur-detail__editorial--media-right .cur-detail__editorial-eyebrow,
  .cur-detail__editorial--media-right .cur-detail__editorial-title,
  .cur-detail__editorial--media-right .cur-detail__editorial-copy {
    left: auto;
    width: auto;
  }
  .cur-detail__editorial--media-right .cur-detail__editorial-rule {
    left: auto;
    width: 112px;
  }
  .cur-detail__school {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 64px;
    align-items: center;
    height: auto;
    min-height: 0;
    padding: 80px 40px;
    overflow: visible;
  }
  .cur-detail__school-image {
    position: static;
    width: 100%; height: auto;
  }
  .cur-detail__school--middle .cur-detail__school-image {
    grid-column: 1;
    grid-row: 1;
    width: 100%; height: auto;
    aspect-ratio: 1;
  }
  .cur-detail__school--senior .cur-detail__school-image {
    grid-column: 2;
    grid-row: 1;
    width: 100%; height: auto;
    aspect-ratio: 775.64 / 752.643;
  }
  .cur-detail__school-content {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }
  .cur-detail__school--middle .cur-detail__school-content {
    grid-column: 2;
    grid-row: 1;
  }
  .cur-detail__school--senior .cur-detail__school-content {
    grid-column: 1;
    grid-row: 1;
  }
  .cur-detail__school-eyebrow,
  .cur-detail__school-title,
  .cur-detail__school-copy,
  .cur-detail__handbook {
    position: static;
    width: auto;
  }
  .cur-detail__school .cur-detail__school-copy {
    width: 100%;
    max-width: 100%;
  }
  .cur-detail__school-eyebrow { margin-bottom: 14px; }
  .cur-detail__school-title { margin-bottom: 28px; }
  .cur-detail__handbook {
    align-self: flex-start;
    margin-top: 32px;
  }
  .cur-detail__testimonial {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 64px;
    align-items: center;
    height: auto;
    min-height: 0;
    padding: 64px 40px;
    overflow: visible;
  }
  .cur-detail__testimonial-content {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding-top: 0;
  }
  .cur-detail__testimonial-content blockquote,
  .cur-detail__testimonial-content footer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    margin-top: 0;
  }
  .cur-detail__testimonial-mark,
  .cur-detail__testimonial-copy,
  .cur-detail__testimonial-name,
  .cur-detail__testimonial-attribution,
  .cur-detail__testimonial-media {
    position: static;
    width: auto;
  }
  .cur-detail__testimonial-mark {
    width: 67px; height: auto;
    margin-bottom: 28px;
  }
  .cur-detail__testimonial-copy { width: 100%; }
  .cur-detail__testimonial-name {
    width: 100%;
    margin-top: 24px;
  }
  .cur-detail__testimonial-attribution {
    width: 100%;
    margin-top: 4px;
  }
  .cur-detail__testimonial-media {
    grid-column: 2;
    grid-row: 1;
    width: 100%; height: auto;
    aspect-ratio: 1;
  }
  .cur-detail__testimonial-media--video {
    position: relative;
    inset: auto;
    overflow: clip;
    contain: layout paint;
  }
  .cur-detail__related {
    height: auto;
    padding: 72px 40px 88px;
  }
  .cur-detail__related-list {
    grid-template-columns: repeat(3, minmax(0, 294px));
    gap: 32px;
  }
  .cur-detail__related-card {
    width: 100%;
    height: auto;
    aspect-ratio: 294 / 343.878;
  }
}
@media (max-width: 1560px) {
  .cur-banner__figure { right: 0; top: 140px; }
}
@media (max-width: 1380px) {
  .cur-grid { grid-template-columns: repeat(4, 1fr); }
  .cur-banner__figure { opacity: 0.4; }
}
@media (max-width: 1199px) {
  .cur-banner { padding-top: 260px; }
  .cur-paths { grid-template-columns: repeat(2, 1fr); }
  .cur-grid { grid-template-columns: repeat(3, 1fr); }
  .cur-detail__grid {
    grid-template-columns: 1fr;
    grid-auto-rows: max-content;
    align-content: start;
    gap: 0;
  }
  .cur-detail__side {
    grid-column: 1;
    display: grid;
    grid-template-columns: minmax(0, 367.908px) minmax(0, 1fr);
    grid-template-areas:
      "glance events"
      "contact news";
    gap: 40px 48px;
    align-items: start;
    min-width: 0;
    min-height: 0;
    padding: 48px 40px 64px;
  }
  .cur-detail__side > * { min-width: 0; }
  .cur-detail__glance { grid-area: glance; }
  .cur-detail__contact { grid-area: contact; }
  .cur-detail__events { grid-area: events; }
  .cur-detail__news { grid-area: news; }
  .cur-detail__events,
  .cur-detail__news {
    position: static;
  }
  .cur-detail__heroTitle { min-height: 84px; font-size: 56px; }
  .cur-detail__intro {
    grid-template-columns: minmax(0, 0.78fr) minmax(0, 1fr);
    gap: 32px;
    min-height: 0;
    padding: 40px;
  }
  .cur-detail__introcopy { padding-top: 0; }
  .cur-detail__lead { margin-bottom: 32px; }
  .cur-detail__introimg {
    width: 100%;
    max-width: 616px;
    height: auto;
    aspect-ratio: 1;
  }
  .cur-detail__quote {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: auto;
    min-height: 0;
    padding: 80px 40px;
  }
  .cur-detail__quote[hidden] { display: none; }
  .cur-detail__quote blockquote {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    margin: 0;
  }
  .cur-detail__quote-mark {
    width: 60px; height: auto;
    margin-bottom: 30px;
  }
  .cur-detail__quote-copy {
    width: 100%;
    max-width: 784px;
  }
  .cur-detail__quote-attribution {
    width: 100%;
    max-width: 784px;
    margin-top: 28px;
  }
  .cur-detail__school {
    gap: 48px;
    padding: 64px 40px;
  }
  .cur-detail__school-title { font-size: 42px; }
  .cur-detail__school-eyebrow { font-size: 20px; }
  .cur-detail__testimonial {
    gap: 48px;
    padding: 56px 40px;
  }
  .cur-detail__related {
    padding: 64px 40px 80px;
  }
}
@media (max-width: 991px) {
  .cur-banner { padding: 230px 0 72px; }
  .cur-banner__figure { display: none; }
  .cur-banner__lead { max-width: 100%; }
  .cur-toolbar { justify-content: flex-start; }
  .cur-detail__school {
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
    padding: 56px 40px;
  }
  .cur-detail__school--middle .cur-detail__school-image {
    grid-column: 1;
    grid-row: 1;
  }
  .cur-detail__school--middle .cur-detail__school-content {
    grid-column: 1;
    grid-row: 2;
  }
  .cur-detail__school--senior .cur-detail__school-content {
    grid-column: 1;
    grid-row: 1;
  }
  .cur-detail__school--senior .cur-detail__school-image {
    grid-column: 1;
    grid-row: 2;
  }
  .cur-detail__testimonial {
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
    padding: 56px 40px;
  }
  .cur-detail__testimonial-content {
    grid-column: 1;
    grid-row: 1;
  }
  .cur-detail__testimonial-media {
    grid-column: 1;
    grid-row: 2;
  }
  .cur-detail__related-list {
    grid-template-columns: repeat(2, minmax(0, 294px));
  }
}
@media (max-width: 767px) {
  .cur-banner { padding: 180px 0 56px; }
  .cur-banner__stripe { display: none; }
  /* Figma 2562:754 — mobile shows the VR student as a band under the header,
     fading into the navy; text sits below it. Listing banner only (the
     personalised hero keeps its own figure rules). */
  .cur-banner:not(.pers-hero) {
    --cur-fig-top: clamp(52px, 18.15vw, 92px);
    --cur-fig-h: clamp(146px, 50.83vw, 260px);
    padding-top: calc(var(--cur-fig-top) + var(--cur-fig-h) + 12px);
  }
  .cur-banner:not(.pers-hero) .cur-banner__figure {
    display: block;
    top: var(--cur-fig-top);
    right: 0;
    bottom: auto;
    left: auto;
    height: var(--cur-fig-h);
    width: auto;
    opacity: 1;
  }
  /* Figma 2562:754 fades the photo into the navy. Masking the image (rather
     than overlaying a navy gradient) keeps the section's own background
     showing through — an overlay colour reads as a pale box over the darker
     top of the banner gradient. */
  .cur-banner:not(.pers-hero) .cur-banner__figure {
    -webkit-mask-image: linear-gradient(180deg, #000 45%, rgba(0, 0, 0, 0) 92%);
            mask-image: linear-gradient(180deg, #000 45%, rgba(0, 0, 0, 0) 92%);
  }
  .cur-programs { padding: 44px 0 80px; }
  .cur-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }

  /* --- category selector: tabs on row 1 (scrollable), dropdown + search on row 2 --- */
  .cur-toolbar { gap: 14px; padding: 26px 0; }
  .cur-cats {
    width: 100%; min-width: 0;                 /* allow shrink so the pill row scrolls */
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .cur-cats::-webkit-scrollbar { display: none; }
  .cur-toolbar__sep { display: none; }
  .cur-yearfilter { flex: 1 1 auto; min-width: 0; }   /* dropdown grows on row 2 */
  .cur-yearfilter__toggle { width: 100%; justify-content: space-between; }
  .cur-yearfilter__menu { min-width: 220px; }
  .cur-searchbtn { flex: 0 0 auto; margin-left: 0; }  /* inline, right of the dropdown */

  /* --- cur-paths → Slick peek slider (JS adds .slick-initialized on mobile) --- */
  .cur-paths { grid-template-columns: 1fr; gap: 16px; margin-bottom: 32px; }
  .cur-paths.slick-initialized { display: block; gap: 0; margin-bottom: 32px; }
  .cur-paths.slick-initialized .cur-path { padding-right: 14px; }  /* gutter between slides */
  .cur-path__arrow { display: none; }        /* hide arrow → more room for eyebrow + title */
  .cur-modal__dialog { padding: 44px 22px 30px; }
  .cur-modal__grid { grid-template-columns: 1fr; }
  .cur-modal__foot { flex-direction: column-reverse; align-items: stretch; }
  .cur-modal__submit { justify-content: center; }
  .cur-tile__title { font-size: 18px; }
  .cur-detail__grid { padding: 0 18px 60px; }
  .cur-detail__side {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 32px 24px 48px;
  }
  .cur-detail__contact { align-self: flex-start; }
  .cur-detail__heading { left: 24px; right: 88px; bottom: 20px; }
  .cur-detail__heroTitle { min-height: 64px; font-size: 42px; line-height: 1.15; }
  .cur-detail__intro {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    padding: 30px 24px;
  }
  .cur-detail__introcopy { max-width: none; }
  .cur-detail__lead {
    margin-bottom: 24px;
    font-size: 28px; line-height: 1.4; letter-spacing: 0;
  }
  .cur-detail__play { right: 24px; bottom: 20px; width: 58px; height: 58px; }
  .cur-detail__play::before { inset: 6.5px; }
  .cur-detail__play svg { width: 32px; height: 32px; margin-left: 2px; }
  .cur-detail__editorial {
    grid-template-columns: minmax(0, 1fr);
    gap: 64px;
    padding: 48px 24px 72px;
  }
  /* keep the proportional 23% bottom padding from the <=1623 block: a flat 20px
     dropped the inset up over the main photo (50% overlap vs 25% on desktop) */
  .cur-detail__editorial-media { padding-bottom: 23%; }
  .cur-detail__editorial--media-right .cur-detail__editorial-media { order: 1; }
  .cur-detail__editorial--media-right .cur-detail__editorial-content { order: 2; }
  .cur-detail__editorial-title { font-size: 38px; }
  .cur-detail__editorial-copy { letter-spacing: 0.24px; }
  .cur-detail__quote { padding: 64px 24px; }
  .cur-detail__quote-mark {
    width: 56px;
    margin-bottom: 26px;
  }
  .cur-detail__quote-copy {
    font-size: 22px;
    line-height: 1.65;
    letter-spacing: 0.48px;
  }
  .cur-detail__quote-attribution {
    margin-top: 26px;
    font-size: 14px;
    letter-spacing: 0.42px;
  }
  .cur-detail__school {
    gap: 32px;
    padding: 48px 24px;
  }
  .cur-detail__school-title {
    margin-bottom: 24px;
    font-size: 38px;
  }
  .cur-detail__school-eyebrow {
    margin-bottom: 10px;
    font-size: 18px;
  }
  .cur-detail__school-copy { letter-spacing: 0.24px; }
  .cur-detail__handbook {
    max-width: 100%;
    margin-top: 28px;
  }
  .cur-detail__handbook b { white-space: normal; }
  .cur-detail__testimonial {
    gap: 32px;
    padding: 48px 24px;
  }
  .cur-detail__testimonial-mark {
    width: 56px;
    margin-bottom: 24px;
  }
  .cur-detail__testimonial-copy {
    font-size: 22px;
    line-height: 1.65;
    letter-spacing: 0.48px;
  }
  .cur-detail__testimonial-name {
    margin-top: 22px;
    font-size: 34px;
  }
  .cur-detail__testimonial-attribution {
    font-size: 14px;
    line-height: 1.3;
  }
  .cur-detail__testimonial-play {
    width: 20.724%; height: 20.724%;
  }
  .cur-detail__related {
    padding: 48px 24px 64px;
  }
  .cur-detail__related-heading {
    margin-bottom: 28px;
    font-size: 14px;
    line-height: 1.5;
  }
  .cur-detail__related-title { font-size: 24px; }
  .cur-personalise{padding-left:25px;padding-right:25px;font-size:14px;}
  .cur-modal__dialog{padding-top:60px;}
}
@media (max-width: 640px) {
  .cur-detail__related-list {
    grid-template-columns: minmax(0, 294px);
    justify-content: center;
  }
}
@media (max-width: 480px) {
  .cur-yearfilter__toggle{gap:0;}
  .cur-grid { grid-template-columns: 1fr; }
  .cur-banner__cta { flex-direction: column; align-items: flex-start; }
  /* swap the pill tabs for a dropdown (like the year filter) on small phones */
  .cur-cats { display: none; }
  .cur-detail__heroTitle { font-size: 36px; }
  .cur-detail__editorial {
    gap: 56px;
    padding: 40px 18px 64px;
  }
  .cur-detail__editorial-title { font-size: 36px; }
  .cur-detail__quote { padding: 56px 18px; }
  .cur-detail__quote-mark {
    width: 52px;
    margin-bottom: 24px;
  }
  .cur-detail__quote-copy {
    font-size: 20px;
    line-height: 1.6;
  }
  .cur-detail__quote-attribution {
    margin-top: 24px;
    font-size: 13px;
    line-height: 1.55;
  }
  .cur-detail__school {
    padding: 40px 18px;
  }
  .cur-detail__school-title { font-size: 34px; }
  .cur-detail__handbook b {
    font-size: 14px;
    letter-spacing: 0.42px;
  }
  .cur-detail__testimonial {
    padding: 40px 18px;
  }
  .cur-detail__testimonial-mark {
    width: 52px;
    margin-bottom: 22px;
  }
  .cur-detail__testimonial-copy {
    font-size: 20px;
    line-height: 1.6;
  }
  .cur-detail__testimonial-name {
    font-size: 30px;
  }
  .cur-detail__testimonial-attribution { font-size: 13px; }
  .cur-detail__related {
    padding: 40px 18px 56px;
  }
  .cur-detail__side {
    padding: 28px 18px 40px;
  }
  .cur-detail__contact-img {
    width: 46.36%; height: 98.76%;
  }
  .cur-detail__contact p {
    top: 7.1%; left: 5.8%;
    width: 65%;
    font-size: 18px; line-height: 1.3; letter-spacing: 0;
  }
  .cur-detail__contact span {
    top: 69.3%; left: 5.8%;
    height: 17%;
    gap: 7px;
    font-size: 13px;
  }
  .cur-detail__contact span::before {
    width: 13px; height: 13px;
    flex-basis: 13px;
  }
  .cur-catselect { display: block; flex: 0 0 100%; width: 100%; }
}

/* ========================================================================== 
   PAGE: Latest News (Figma 919:1385)
   The shared General Page shell supplies the header hero, infinity vectors,
   read-next navigation and footer. Everything below is scoped to this page.
   ========================================================================== */
.latest-news {
  overflow: hidden;
  background: var(--white);
}

.latest-news .gp-hero__content {
  align-items: flex-start;
  text-align: left;
}

.latest-news .gp-breadcrumbs {
  justify-content: flex-start;
}

.latest-news-hero__image { position: relative; }
.latest-news-hero__image > img,
.latest-news-hero__image .gp-hero__slide img {
  position: relative;
  z-index: 0;
  object-position: center center;
}
.latest-news-hero__overlay {
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 60%, rgba(0, 0, 0, 0.6) 70%);
}
.latest-news-hero__copy {
  position: absolute;
  z-index: 2;
  right: 0;
  left: 0;
  bottom: 60px;
  margin-right: auto;
  margin-left: auto;
  color: var(--white);
}
.latest-news-hero__copy h2 {
  width: 920px;
  max-width: 100%;
  margin: 0 0 50px;
  font-family: var(--font-display);
  font-size: 48px;
  font-weight: 400;
  line-height: 1.2;
}
.latest-news-hero__copy p {
  width: 512px;
  max-width: 100%;
  margin: 0;
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.74;
  letter-spacing: 0.48px;
}

.latest-news-listing {
  padding: 102px 0 189px;
  background: var(--white);
}
.latest-news-container {
  width: min(1600px, calc(100% - (var(--pad) * 2)));
  margin: 0 auto;
}
.latest-news-featured {
  display: grid;
  grid-template-columns: 784px 512px;
  column-gap: 168px;
  align-items: start;
}
.latest-news-featured__media,
.latest-news-card__media {
  display: block;
  overflow: hidden;
  border-radius: 10px;
}
.latest-news-featured__media {
  width: 100%;
  aspect-ratio: 3 / 2;
}
.latest-news-featured__media img,
.latest-news-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.latest-news-featured__content { padding-top: 30px; }
.latest-news-featured time,
.latest-news-card time {
  display: block;
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.55;
  text-transform: uppercase;
  color: var(--gold-accent);
}
.latest-news-featured time { margin-bottom: 82px; }
.latest-news-featured h2 {
  margin: 0 0 48px;
  font-family: var(--font-display);
  font-size: 48px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--nudgee-royal);
}
.latest-news-featured h2 a,
.latest-news-card h3 a { color: inherit; }
.latest-news-featured p {
  margin: 0 0 9px;
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}
.latest-news-featured p em { font-style: normal; }
.latest-news-read { margin-left: -4px; }
.latest-news-rule {
  width: 100%;
  height: 1px;
  margin: 101px 0 67px;
  background: var(--gold-accent);
}
.latest-news-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: 32px;
  row-gap: 43px;
}
.latest-news-card {
  flex: 0 0 calc((100% - 96px) / 4);
  min-width: 0;
}
.latest-news-card__media {
  width: 100%;
  aspect-ratio: 3 / 2;
}

/* Pagination — news listing (9 per page) and the events grid (6 per page) */
.latest-news-pager,
.events-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 28px;
  margin-top: 72px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.45px;
  text-transform: uppercase;
}
.latest-news-pager__list,
.events-pager__list {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.latest-news-pager__step,
.latest-news-pager__page,
.events-pager__step,
.events-pager__page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--nudgee-royal);
  text-decoration: none;
  transition: color 0.25s ease, background 0.25s ease;
}
.latest-news-pager__page,
.events-pager__page {
  width: 40px;
  height: 40px;
  border-radius: 50%;
}
.latest-news-pager__step:hover,
.latest-news-pager__page:hover,
.events-pager__step:hover,
.events-pager__page:hover {
  color: var(--gold-accent);
}
.latest-news-pager__page.is-current,
.events-pager__page.is-current {
  color: var(--nudgee-ink);
  background: var(--gold-btn);
}
.latest-news-pager__step.is-disabled,
.events-pager__step.is-disabled {
  color: rgba(11, 27, 51, 0.32);
}
.latest-news-pager__step:focus-visible,
.latest-news-pager__page:focus-visible,
.events-pager__step:focus-visible,
.events-pager__page:focus-visible {
  outline: 2px solid var(--gold-accent);
  outline-offset: 3px;
}

/* the events pager is built by JS, so its controls are <button>s */
.events-pager { width: min(1600px, calc(100% - (var(--pad) * 2))); margin-inline: auto; }
.events-pager__step,
.events-pager__page {
  border: 0;
  background: transparent;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
}
.events-pager__step.is-disabled,
.events-pager__page.is-current { cursor: default; }
.latest-news-card time { margin-top: 11px; }
.latest-news-card h3 {
  margin: 27px 0 0;
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--nudgee-royal);
}
.latest-news-card .latest-news-read { margin-top: 25px; }

@media (max-width: 1440px) {
  .latest-news-featured {
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    column-gap: 84px;
  }
  .latest-news-featured time { margin-bottom: 48px; }
  .latest-news-featured h2 {
    margin-bottom: 32px;
    font-size: 42px;
  }
  .latest-news-card { flex-basis: calc((100% - 64px) / 3); }
}

@media (max-width: 1199px) {
  .latest-news-listing {
    padding-top: 80px;
    padding-bottom: 130px;
  }
  .latest-news-featured { column-gap: 56px; }
  .latest-news-featured__content { padding-top: 8px; }
  .latest-news-featured time { margin-bottom: 30px; }
  .latest-news-featured h2 {
    margin-bottom: 24px;
    font-size: 36px;
  }
  .latest-news-rule {
    margin-top: 80px;
    margin-bottom: 56px;
  }
}

@media (max-width: 991px) {
  .latest-news-featured {
    grid-template-columns: 1fr;
    row-gap: 40px;
  }
  .latest-news-featured__content {
    width: min(640px, 100%);
    padding-top: 0;
  }
  .latest-news-featured time { margin-bottom: 18px; }
  .latest-news-featured h2 { margin-bottom: 22px; }
  .latest-news-card { flex-basis: calc((100% - 32px) / 2); }
}

@media (max-width: 767px) {
  .latest-news .gp-hero__content { align-items: flex-start; }
  .latest-news-hero__image { height: 520px; }
  .latest-news-hero__image > img,
  .latest-news-hero__image .gp-hero__slide img { object-position: 54% center; }
  .latest-news-hero__overlay {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.08) 35%, rgba(0, 0, 0, 0.72) 74%);
  }
  .latest-news-hero__copy {
    bottom: 30px;
    text-align: left;
  }
  .latest-news-hero__copy h2 {
    margin-bottom: 18px;
    font-size: 32px;
  }
  .latest-news-hero__copy p {
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 0.42px;
  }
  .latest-news-listing { padding: 60px 0 88px; }
  .latest-news-container { width: calc(100% - 60px); }
  .latest-news-pager,
  .events-pager { margin-top: 48px; gap: 10px 16px; font-size: 14px; }
  .latest-news-pager__page,
  .events-pager__page { width: 36px; height: 36px; }
  .latest-news-featured { row-gap: 30px; }
  .latest-news-featured h2 { font-size: 34px; }
  .latest-news-featured p,
  .latest-news-featured time,
  .latest-news-card time { font-size: 14px; }
  .latest-news-rule { margin: 60px 0 48px; }
  .latest-news-grid {
    row-gap: 48px;
  }
  .latest-news-card { flex-basis: 100%; }
  .latest-news-card h3 {
    margin-top: 14px;
    font-size: 28px;
  }
  .latest-news-card .latest-news-read { margin-top: 14px; }
}

/* Latest News keeps AOS declarative for desktop/tablet, while small screens
   and reduced-motion users receive the final state without transforms. */
@media (max-width: 767px), (prefers-reduced-motion: reduce) {
  .latest-news [data-aos] {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
    will-change: auto !important;
  }
}

/* ==========================================================================
   PAGE: News Detail (Figma 954:513)
   Only the article banner and News Article Pre Footer are page-specific here;
   Craft CMS inserts the established Page Modules into the empty module slot.
   ========================================================================== */
.news-detail-body,
.news-detail {
  background: var(--white);
}

.news-detail {
  overflow: hidden;
}

.news-detail-hero {
  position: relative;
  height: 840.802px;
  overflow: hidden;
  background: var(--nudgee-royal);
  color: var(--white);
}

.news-detail-hero__inner {
  position: relative;
  z-index: 1;
  width: min(1600px, calc(100% - 320px));
  height: 100%;
  margin: 0 auto;
}

.news-detail-hero__copy {
  position: absolute;
  top: 270.8px;
  left: 272px;
  width: 512px;
}

.news-detail-hero__copy time {
  display: block;
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0.48px;
  text-transform: uppercase;
  color: var(--gold-accent);
}

.news-detail-hero__copy h1 {
  margin: 159px 0 0;
  font-family: var(--font-display);
  font-size: 48px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--white);
}

.news-detail-hero__media {
  position: absolute;
  top: 242.85px;
  left: 816px;
  width: 784px;
  height: 522.667px;
  overflow: hidden;
  border-radius: 10px;
}

.news-detail-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Introduction — Figma 954:675 (lead) + 954:676 (gold rule), on #fff */
.news-detail-intro {
  position: relative;
  background: var(--white);
}
/* gold rule in the left gutter, aligned with the lead's first line (Figma 954:676).
   Right edge sits 32px left of the centred lead; clipped by .news-detail overflow
   as the gutter narrows, so alignment stays correct across breakpoints. */
.news-detail-intro::before {
  content: "";
  position: absolute;
  top: 105px;
  right: calc(50% + min(528px, calc(50% - 30px)) + 32px);
  width: 400.9px;
  height: 1px;
  background: var(--gold-accent);
}
.news-detail-intro__inner {
  width: min(1056px, calc(100% - 60px));
  margin: 0 auto;
  padding: 54px 0 60px;
}
.news-detail-intro__lead {
  margin: 0;
  font-family: var(--font-display);       /* Playfair Display */
  font-weight: 400;
  font-size: 32px;
  line-height: 1.47;
  letter-spacing: 0.96px;
  color: var(--gold-accent);              /* #c9a15b */
}
/* below the width where a left gutter exists, keep the rule visible: it moves
   above the lead, left-aligned with it. */
@media (max-width: 1199px) {
  .news-detail-intro::before {
    top: 46px;
    right: auto;
    left: max(30px, calc((100% - 1056px) / 2));
    width: min(400.9px, calc(100% - 60px));
  }
  .news-detail-intro__inner { padding-top: 84px; }
}
@media (max-width: 767px) {
  .news-detail-intro::before { top: 36px; }
  .news-detail-intro__inner { padding-top: 70px; padding-bottom: 44px; }
  .news-detail-intro__lead { font-size: 26px; letter-spacing: 0.78px; }
}

.news-detail__module-slot:empty {
  display: none;
}

.news-detail-prefooter {
  height: 409.313px;
  padding: 38.64px 0;
  background: var(--nudgee-light);
}

.news-detail-prefooter__inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
  width: min(1056px, calc(100% - 80px));
  height: 332px;
  margin: 0 auto;
}

.news-detail-prefooter__card {
  position: relative;
  display: block;
  min-width: 0;
  overflow: hidden;
  border-radius: 20px;
  box-shadow: 0 0 0 rgba(11, 27, 51, 0);
  isolation: isolate;
  transition: box-shadow 0.3s ease-out;
}

.news-detail-prefooter__media,
.news-detail-prefooter__media::after {
  position: absolute;
  inset: 0;
}

.news-detail-prefooter__media {
  z-index: 0;
  overflow: hidden;
  border-radius: inherit;
}

.news-detail-prefooter__media::after {
  content: "";
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(11, 27, 51, 0) 49.748%, rgba(11, 27, 51, 0.8) 75%);
}

.news-detail-prefooter__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.3s ease-out;
}

.news-detail-prefooter__content {
  position: absolute;
  z-index: 2;
  right: 20px;
  bottom: 43px;
  left: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.news-detail-prefooter__eyebrow {
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.74;
  letter-spacing: 0.48px;
  text-transform: uppercase;
  color: var(--gold-accent);
}

.news-detail-prefooter__title {
  width: 100%;
  max-width: 440px;
  font-family: var(--font-display);
  font-size: 26px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--white);
}

@media (hover: hover) and (pointer: fine) {
  .news-detail-prefooter__card:hover {
    box-shadow: 0 4px 10px rgba(11, 27, 51, 0.28);
  }

  .news-detail-prefooter__card:hover .news-detail-prefooter__media img {
    transform: scale(1.12);
  }
}

.news-detail-prefooter__card:focus-visible {
  outline: 3px solid var(--gold-accent);
  outline-offset: 4px;
  box-shadow: 0 4px 10px rgba(11, 27, 51, 0.28);
}

.news-detail-prefooter__card:focus-visible .news-detail-prefooter__media img {
  transform: scale(1.12);
}

@media (max-width: 1919px) {
  .news-detail-hero__inner {
    width: calc(100% - 120px);
  }

  .news-detail-hero__copy {
    left: 0;
  }

  .news-detail-hero__media {
    right: 0;
    left: auto;
    width: 49%;
  }
}

@media (max-width: 1199px) {
  .news-detail-hero {
    height: 720px;
  }

  .news-detail-hero__copy {
    top: 222px;
    left: 0;
    width: 39%;
  }

  .news-detail-hero__copy h1 {
    margin-top: 96px;
    font-size: 42px;
  }

  .news-detail-hero__media {
    top: 205px;
    width: 54%;
    height: auto;
    aspect-ratio: 784 / 523;
  }

  .news-detail-prefooter {
    height: 366px;
    padding: 32px 0;
  }

  .news-detail-prefooter__inner {
    width: min(920px, calc(100% - 80px));
    height: 302px;
    gap: 24px;
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .news-detail-hero {
    height: auto;
  }

  .news-detail-hero__inner {
    height: auto;
    padding: 205px 0 60px;
    display: grid;
    grid-template-columns: 39% 54%;
    justify-content: space-between;
    align-items: start;
  }

  .news-detail-hero__copy,
  .news-detail-hero__media {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    width: 100%;
  }

  .news-detail-hero__copy {
    margin-top: 17px;
  }
}

@media (max-width: 767px) {
  .news-detail-hero {
    height: auto;
    min-height: 680px;
    padding: 154px 0 40px;
  }

  .news-detail-hero__inner {
    display: flex;
    flex-direction: column;
    width: calc(100% - 60px);
    height: auto;
  }

  .news-detail-hero__copy,
  .news-detail-hero__media {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    width: 100%;
  }

  .news-detail-hero__copy time {
    font-size: 14px;
    letter-spacing: 0.42px;
  }

  .news-detail-hero__copy h1 {
    margin-top: 20px;
    font-size: 34px;
  }

  .news-detail-hero__media {
    height: auto;
    margin-top: 40px;
    aspect-ratio: 784 / 523;
  }

  .news-detail-prefooter {
    height: auto;
    padding: 30px 0;
  }

  .news-detail-prefooter__inner {
    grid-template-columns: 1fr;
    width: calc(100% - 60px);
    height: auto;
    gap: 20px;
  }

  .news-detail-prefooter__card {
    width: 100%;
    aspect-ratio: 511 / 332;
  }

  .news-detail-prefooter__content {
    bottom: 34px;
  }

  .news-detail-prefooter__eyebrow {
    font-size: 14px;
    letter-spacing: 0.42px;
  }

  .news-detail-prefooter__title {
    font-size: 24px;
  }
}

@media (max-width: 479px) {
  .news-detail-hero__inner,
  .news-detail-prefooter__inner {
    width: calc(100% - 40px);
  }

  .news-detail-hero__copy h1 {
    font-size: 32px;
  }

  .news-detail-prefooter {
    padding: 24px 0;
  }

  .news-detail-prefooter__card {
    border-radius: 12px;
  }

  .news-detail-prefooter__content {
    right: 14px;
    bottom: 26px;
    left: 14px;
  }

  .news-detail-prefooter__title {
    font-size: 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .news-detail-prefooter__card,
  .news-detail-prefooter__media img {
    transition: none;
  }
}

@media (min-width: 768px) and (hover: none) and (pointer: coarse) {
  .pm-divider[data-parallax].is-ios-parallax .pm-divider__media {
    background-image: none !important;
    background-attachment: scroll !important;
  }

  .pm-divider[data-parallax].is-ios-parallax .pm-divider__bg {
    inset: 0 0 auto;
    height: 100vh;
    height: 100lvh;
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transform-origin: top center;
    backface-visibility: hidden;
    will-change: transform;
  }
}

@media (min-width: 768px) and (hover: none) and (pointer: coarse) and (prefers-reduced-motion: reduce) {
  .pm-divider[data-parallax].is-ios-parallax .pm-divider__bg {
    inset: 0;
    height: 100%;
    min-height: 0;
    transform: none;
    will-change: auto;
  }
}
.gp-hero--alternative {
  --alternative-hero-gutter: var(--pad);
  position: relative;
  height: clamp(520px, 40.993vw, 787.06px);
  overflow: hidden;
  background: var(--nudgee-royal);
}

.gp-hero--alternative .gp-hero__intro {
  height: 100%;
  background: var(--nudgee-royal);
}
.gp-hero--alternative__layout {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 50%;
  width: min(1600px, calc(100% - (var(--alternative-hero-gutter) * 2)));
  height: 100%;
  transform: translateX(-50%);
}

.gp-hero--alternative .gp-hero__content {
  position: absolute;
  top: 0;
  bottom: auto;
  left: 1px;
  width: 49%;
  height: 100%;
  margin: 0;
  padding: 0;
  display: block;
  text-align: left;
}

.gp-hero--alternative .gp-hero__title {
  position: absolute;
  top: 45.8252%;
  left: 0;
  width: 100%;                   /* full text column: longer titles stay on fewer lines and
                                    don't grow up into the header crest (was 82.53%) */
  height: 17.5044%;
  margin: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  font-size: clamp(44px, 4.271vw, 82px);
}

.gp-hero--alternative .gp-hero__title > span {
  display: block;
}

.gp-hero--alternative .gp-breadcrumbs {
  position: absolute;
  top: 68.9783%;
  left: 0;
  justify-content: flex-start;
  font-size: clamp(12px, 0.833vw, 16px);
}

.gp-hero--alternative .gp-hero__image {
  position: absolute;
  top: 24.0134%;
  right: 0;
  width: 49%;
  height: auto;
  aspect-ratio: 784 / 539.4283;
  overflow: hidden;
  border-radius: 10px;
}

.gp-hero--alternative .gp-hero__image > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@media (min-width: 768px) and (max-width: 1440px) {
  body.general-page-alternative-banner-body .site-header:not(.is-fixed) .header-actions {
    padding-bottom: 45px;
  }
}

@media (min-width: 1441px) {
  body.general-page-alternative-banner-body .site-header:not(.is-fixed) .header-actions {
    padding-bottom: 73px;
  }
}

@media (min-width: 1441px) {
  .gp-hero--alternative {
    --alternative-hero-gutter: clamp(84px, calc(15.833vw - 144px), 160px);
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .gp-hero--alternative {   
    height: max(
      410px,
      calc(155px + ((100vw - (var(--alternative-hero-gutter) * 2)) * 0.337143))
    );
  }

  .gp-hero--alternative .gp-hero__title {
    top: 238.28px;
    height: 91.02px;
  }

  .gp-hero--alternative .gp-breadcrumbs {
    top: 358.67px;
  }

  .gp-hero--alternative .gp-hero__image {
    top: 124.86px;
  }
}

@media (max-width: 767px) {
    .pm-video__slide{
    margin-bottom:40px;
  }
  .gp-hero--alternative {
    height: auto;
    overflow: hidden;
    padding-bottom: 30px;
  }

  .gp-hero--alternative .gp-hero__intro {
    height: 289.76px;
  }
  .gp-hero--alternative__layout {
    position: static;
    width: 100%;
    height: auto;
    transform: none;
  }

  .gp-hero--alternative .gp-hero__content {
    display: flex;
    top: 0;
    right: auto;
    bottom: auto;
    left: 50%;
    width: calc(100% - 60px);
    height: 289.76px;
    padding-bottom: 17.81px;
    align-items: center;
    justify-content: flex-end;
    text-align: center;
    transform: translateX(-50%);
  }

  .gp-hero--alternative .gp-hero__title {
    position: static;
    width: 100%;
    height: auto;
    margin-bottom: 13px;
    display: block;
    font-size: 36px;
  }

  .gp-hero--alternative .gp-breadcrumbs {
    position: static;
    justify-content: center;
    font-size: 12px;
  }

  .gp-hero--alternative .gp-hero__image {
    position: relative;
    top: auto;
    right: auto;
    width: min(480px, calc(100% - 60px));
    height: auto;
    margin: 0 auto;
    aspect-ratio: 784 / 539.4283;
  }
  
  .the-flip-book{
    height:90vh !important;
  }
    
}
.epg .pm-container {
  width: min(1056px, calc(100% - (var(--pad) * 2)));
}
.epg__header { margin-bottom: 44px; }
.epg__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 48px;
  line-height: 1.2;
  color: var(--nudgee-royal);
  margin: 0 0 22px;
}

.epg__intro {
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
  max-width: 680px;
}

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

.epg__form .gp-field > label {
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}

.epg__form .gp-field select:focus-visible {
  outline: 2px solid var(--gold-accent);
  outline-offset: 2px;
}

.epg__result { margin-top: 48px; }

.epg-state {
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}

.epg-state[hidden] { display: none; }

.epg-state__heading {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.55;
  color: var(--nudgee-royal);
  margin: 0 0 18px;
}

.epg-state p + p { margin-top: 28px; }

.epg-state__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 20px 32px;
  margin-top: 34px;
}

.epg-state--prompt {
  background: #f9f9f8;
  border-radius: 10px;
  padding: 44px 40px;
  color: #767676;
}

.epg-state--default {
  border-left: 3px solid var(--gold-accent);
  padding-left: 32px;
}

/* ---- Key Dates table ---- */
.epg-dates {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 5px;
  margin-top: 32px;
  text-align: left;
}

.epg-dates th {
  background: #f9f9f8;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.55;
  letter-spacing: 0.48px;
  color: var(--nudgee-royal);
  padding: 24px;
}

.epg-dates td {
  background: #f9f9f8;
  padding: 17.93px 24px;
  vertical-align: top;
}

.epg-dates th:first-child,
.epg-dates td:first-child { width: 260px; }

.epg-dates__date { font-weight: 700; color: var(--nudgee-royal); }

/* ---- Phone block ---- */
.epg-phone {
  margin-top: 34px;
  padding: 28px 32px;
  background: #f9f9f8;
  border-radius: 10px;
}

.epg-phone__label {
  display: block;
  margin-bottom: 6px;
  font-weight: 700;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: #767676;
}

.epg-phone__number {
  font-family: var(--font-display);
  font-size: 40px;
  line-height: 1.2;
  color: var(--nudgee-royal);
  -webkit-transition: var(--transition);
  -o-transition: var(--transition);
  transition: var(--transition);
}

.epg-phone__number:hover,
.epg-phone__number:focus-visible { color: var(--gold-accent); }

@media (max-width: 1199px) {
  .epg__title { font-size: 40px; }
}

@media (max-width: 991px) {
  .epg__form { grid-template-columns: 1fr; }
  .epg__title { font-size: 36px; }
  .epg-dates thead { display: none; }
  .epg-dates,
  .epg-dates tbody,
  .epg-dates tr,
  .epg-dates td { display: block; width: 100%; }
  .epg-dates tr { margin-bottom: 5px; }
  .epg-dates th:first-child,
  .epg-dates td:first-child { width: 100%; }
  .epg-dates td { padding: 14px 20px; }
  .epg-dates td:first-child { padding-bottom: 0; }
}

@media (max-width: 767px) {
  .epg__title { font-size: 30px; }
  .epg__header { margin-bottom: 32px; }
  .epg__result { margin-top: 36px; }
  .epg-state--prompt { padding: 32px 24px; }
  .epg-state--default { padding-left: 20px; }
  .epg-state__actions { gap: 20px; }
  .epg-phone { padding: 22px 24px; }
  .epg-phone__number { font-size: 30px; }
}
.eyc .pm-container {
  width: min(1056px, calc(100% - (var(--pad) * 2)));
}

.eyc__header { margin-bottom: 32px; }

.eyc__form .gp-field > label {
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
}

.eyc__form .gp-field select:focus-visible {
  outline: 2px solid var(--gold-accent);
  outline-offset: 2px;
}

.eyc-results { margin-top: 41px; }

.entry-year-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 5px;
  font-family: var(--font-head);
  font-size: 16px;
  line-height: 1.74;
  letter-spacing: 0.48px;
  color: var(--black);
  text-align: left;
}

.entry-year-table th {
  background: #f9f9f8;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.55;
  letter-spacing: 0.48px;
  color: var(--nudgee-royal);
  padding: 24px;
}

.entry-year-table td {
  background: #f9f9f8;
  padding: 17.93px 24px;
}

.entry-year-table td:first-child {
  font-weight: 700;
  color: var(--nudgee-royal);
}

.entry-year-table th,
.entry-year-table td { width: 50%; }

@media (max-width: 767px) {
  .eyc-results { margin-top: 32px; }
  .eyc__header { margin-bottom: 24px; }
  .entry-year-table th { padding: 16px 20px; }
  .entry-year-table td { padding: 14px 20px; }
}

/* ==========================================================================
   MODULE: .gp-hero--short  —  "Shorter Header Image" banner
   Figma: "General Page full image Banner 2" (2653:673 → 2656:1113/1137/1138)

   Third general-page banner variant, on its own lightswitch. One full-bleed
   photo at 1920 × 852.567 (2.252:1) with the page title and breadcrumb set
   over it — no royal intro band, which is where the height saving comes from
   (852px vs the default banner's 549 + 871). The transparent .site-header
   sits straight on the photo, which is what the top half of the scrim is for.

   The banner keeps its Figma height as a MINIMUM and grows downward on long
   CMS titles (same protection the default band has) rather than letting the
   bottom-anchored title run up under the crest.
   ========================================================================== */
.gp-hero--short {
  position: relative;
  overflow: hidden;
  background: var(--nudgee-navy);
}

/* No blue band in this variant — the twig omits it, this is belt-and-braces
   for the static preview and for any entry switched over mid-edit. */
.gp-hero--short .gp-hero__intro { display: none; }

.gp-hero--short .gp-hero__image {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: auto;
}

/* Figma scrim (2656:1113, revised 2026-09-29): darkens the top for the header,
   the bottom for the title. Sits above the slide images, below the copy.
   Strengthened from the first cut (0.4 -> 0.6 at both ends) and pulled further
   down the banner — the top stays at full 0.6 to 9.741% and only clears by
   25.694%, because on lighter photos the header items were hard to read. */
.gp-hero--short .gp-hero__image::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  pointer-events: none;
  background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.6) 9.741%, rgba(0, 0, 0, 0) 25.694%, rgba(0, 0, 0, 0) 70.163%, rgba(0, 0, 0, 0.6) 89.928%);
  background: -o-linear-gradient(top, rgba(0, 0, 0, 0.6) 9.741%, rgba(0, 0, 0, 0) 25.694%, rgba(0, 0, 0, 0) 70.163%, rgba(0, 0, 0, 0.6) 89.928%);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.6) 9.741%, rgba(0, 0, 0, 0) 25.694%, rgba(0, 0, 0, 0) 70.163%, rgba(0, 0, 0, 0.6) 89.928%);
}

.gp-hero--short .gp-hero__content {
  position: relative;
  z-index: 2;
  min-height: clamp(520px, 44.4046vw, 852.57px);   /* = 852.567 at 1920 */
  height: auto;
  padding-bottom: 30px;                            /* breadcrumb box → banner foot */
}

/* Doubled-up section class (0,3,0) so the short banner's type scale outranks the
   per-page title overrides that load AFTER style.css - business-directory.css
   forces .bd-page .gp-hero__title to 48px <=767 and 40px <=520, which would
   otherwise blow the title out inside this banner's shorter box. */
.gp-hero.gp-hero--short .gp-hero__title {
  font-size: clamp(36px, 3.5417vw, 68px);          /* = 68 at 1920 */
  margin-bottom: 32px;                             /* title box → breadcrumb box */
}

.gp-hero--short .gp-breadcrumbs {
  font-size: clamp(12px, 0.8333vw, 16px);          /* = 16 at 1920 */
}

@media (max-width: 991px) {
  .gp-hero--short .gp-hero__content {
    /* Interpolates 520px at 991 -> 400px at 767 so the banner height is
       CONTINUOUS across both breakpoints (a flat 480px here stepped 520->480 at
       992/991 and 480->400 at 768/767, which read as a jump on resize). */
    min-height: clamp(400px, calc(53.571vw - 10.9px), 520px);
    padding-bottom: 26px;
  }

  .gp-hero.gp-hero--short .gp-hero__title { margin-bottom: 22px; }
}

@media (max-width: 767px) {
  .gp-hero--short .gp-hero__content {
    min-height: 400px;
    padding-bottom: 22px;
  }

  .gp-hero.gp-hero--short .gp-hero__title {
    font-size: 36px;
    margin-bottom: 14px;
  }

  .gp-hero--short .gp-breadcrumbs { font-size: 12px; }
}

/* =================================================================
   404 PAGE (templates/404.twig)
   Reuses the general-page royal intro band (.gp-hero__intro) with the
   message and recovery links set inside it, so the band fills most of
   the first screen instead of the 549px banner height.
   ================================================================= */
.gp-hero.error-hero .gp-hero__intro {
  height: auto;
  min-height: min(900px, 100vh);
}
.gp-hero.error-hero .error-hero__content {
  justify-content: center;
  padding-bottom: 140px;
}
.error-hero__code {
  margin-bottom: 14px;
  font-weight: 700;
  letter-spacing: 2.4px;
}
.error-hero__text {
  max-width: 640px;
  margin: 0 auto;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 18px;
  line-height: 1.7;
  color: var(--nudgee-light);
}
.error-hero__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 16px 48px;
  margin-top: 44px;
}

@media (max-width: 991px) {
  .gp-hero.error-hero .gp-hero__intro { min-height: min(760px, 100vh); }
  .gp-hero.error-hero .error-hero__content { padding-bottom: 100px; }
}

@media (max-width: 767px) {
  .gp-hero.error-hero .gp-hero__intro { min-height: 100svh; }
  .gp-hero.error-hero .error-hero__content { padding-bottom: 72px; }
  .error-hero__code { margin-bottom: 10px; letter-spacing: 1.8px; }
  .error-hero__text { font-size: 15px; line-height: 1.65; }
  .error-hero__actions {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    margin-top: 32px;
  }
  .error-hero__actions .btn-tour { font-size: 15px; }
}
