:root {
  --paper: #fcfafb;
  --white: #fff;
  --ink: #302b32;
  --muted: #5e5463;
  --dark: #111112;
  --dark-muted: #d2c9d5;
  --pink: #f3a2b8;
  --pink-ink: #963452;
  --brand-purple: #402781;
  --brand-black: #303031;
  --brand-blush: #fcf0f4;
  --line: #e0d8e4;
  --lavender: #f5f0f6;
  --vaser: #005db9;
  --renuvion: #007b98;
  --renuvion-accent: #00a3cc;
  --niveria: #164c40;
  --serif: 'Span', Georgia, serif;
  --sans: 'Stolzl', Arial, sans-serif;
  --gutter: clamp(20px, 4vw, 60px);
  --header-height: 98px;
  --section-space: clamp(55px, 6.6vw, 100px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 30px; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font: 16px/1.7 var(--sans);
  -webkit-font-smoothing: antialiased;
}
body.modal-open { overflow: hidden; }
[hidden], dialog:not([open]) { display: none !important; }
img, video { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { color: inherit; cursor: pointer; }
a { color: inherit; text-decoration: none; }
button, a, input, select, textarea, summary { touch-action: manipulation; }
:focus-visible { outline: 3px solid var(--pink-ink); outline-offset: 4px; }
:is(.site-header, .hero, .journal, .site-footer, .enquire, .film-dialog, .gallery-dialog) :focus-visible {
  outline-color: var(--pink);
}
::selection { background: var(--pink); color: var(--dark); }

h1, h2, h3, p, figure, dl, dd { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.12; }
h2 { font-size: clamp(36px, 3.65vw, 58px); letter-spacing: -.026em; }
h2 em, h3 em { color: #755a80; font-weight: 400; }
p + p { margin-top: 15px; }
.page-width {
  width: min(100%, 1500px);
  padding-inline: var(--gutter);
  margin-inline: auto;
}
.section-wrap { padding-block: var(--section-space); }
.eyebrow {
  margin: 0 0 17px;
  color: #795b82;
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .135em;
  text-transform: uppercase;
}
.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px 48px;
  margin-bottom: 34px;
}
.section-heading > div { min-width: 0; }
.section-heading > p {
  flex: 0 1 350px;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.65;
}
.brand-vaser { color: var(--vaser); }
.brand-renuvion { color: var(--renuvion); }
.hero .brand-vaser { color: #9ac4ff; }
.hero .brand-renuvion { color: #58d3ee; }
.icon-set { position: absolute; overflow: hidden; pointer-events: none; }
.icon {
  display: inline-block;
  flex: 0 0 auto;
  width: 1.15em;
  height: 1.15em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: -.18em;
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.skip-link {
  position: fixed;
  z-index: 50;
  top: 8px;
  left: 8px;
  padding: 10px 18px;
  transform: translateY(-160%);
  background: var(--pink);
  color: var(--dark);
}
.skip-link:focus { transform: translateY(0); }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 17px;
  min-height: 50px;
  padding: 12px 19px;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: 14px;
  line-height: 1.35;
  text-align: left;
  transition: background-color .18s, color .18s, border-color .18s;
}
.button .icon { font-size: 18px; }
.button-primary { background: var(--pink); color: #24152b; }
.button-primary:hover { background: #f8c3d2; }
.button-outline { color: var(--white); background: transparent; border-color: #c5a9c284; }
.button-outline:hover { color: var(--dark); background: var(--pink); border-color: var(--pink); }
.text-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  width: fit-content;
  min-height: 43px;
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  color: #754367;
  background: transparent;
  font-size: 15px;
  line-height: 1.45;
  text-align: left;
}
.text-button:hover { color: var(--pink-ink); }

.site-header {
  position: relative;
  z-index: 10;
  border-bottom: 1px solid #ffffff20;
  color: var(--white);
  background: var(--dark);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(15px, 1.9vw, 29px);
  min-height: var(--header-height);
}
.wordmark {
  display: inline-flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 4px;
  width: fit-content;
  color: var(--white);
  font-size: 16px;
  line-height: 1.3;
  letter-spacing: .13em;
  white-space: nowrap;
}
.wordmark small {
  color: #d9c2d7;
  font-size: 9px;
  letter-spacing: .22em;
}
.desktop-nav {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.5vw, 23px);
  color: #e8dee9;
  font-size: 13px;
  white-space: nowrap;
}
.desktop-nav a:hover, .footer-nav a:hover, .mobile-nav > a:hover { color: var(--pink); }
.header-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 20px; }
.header-enquire { white-space: nowrap; }
.signature {
  display: block;
  flex: 0 0 auto;
  width: clamp(155px, 16vw, 236px);
}
.signature-logo {
  display: block;
  width: 100%;
  height: auto;
  overflow: hidden;
  filter: invert(1);
  mix-blend-mode: screen;
}
.menu-button {
  display: none;
  place-content: center;
  gap: 6px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #e6c5df59;
  border-radius: 4px;
  color: var(--pink);
  background: transparent;
}
.menu-button > span { width: 19px; height: 1px; background: currentColor; }
.menu-button[aria-expanded=true] > span:first-child { transform: translateY(3.5px) rotate(45deg); }
.menu-button[aria-expanded=true] > span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.mobile-nav { display: none; }

.hero, .films, .journal, .enquire { background: var(--dark); color: var(--white); }
.hero {
  display: grid;
  grid-template-rows: 1fr auto;
  min-height: calc(100svh - var(--header-height) - 1px);
}
.hero-stage { position: relative; isolation: isolate; display: grid; }
.hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr);
  align-items: center;
  gap: clamp(24px, 3.2vw, 52px);
  padding-block: clamp(28px, 3.6vw, 54px);
}
.hero-copy { position: relative; z-index: 1; min-width: 0; container-type: inline-size; }
.hero-eyebrow { display: flex; align-items: center; gap: 12px; color: #e0c8de; }
.hero-eyebrow::before {
  content: '';
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--pink);
}
.hero h1 {
  margin-bottom: 22px;
  font-size: clamp(40px, 4.1vw, 67px);
  font-size: clamp(36px, 9.6cqi, 67px);
  font-weight: 300;
  line-height: 1.065;
  letter-spacing: -.035em;
}
.hero h1 span, .hero h1 em { display: block; }
.hero h1 em { color: var(--pink); letter-spacing: -.022em; word-spacing: .035em; }
.hero-description {
  max-width: 58ch;
  color: var(--dark-muted);
  font-size: clamp(17px, 1.35vw, 19px);
  line-height: 1.67;
}
.hero-audience { color: var(--white); font-size: 16px; line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.hero-portrait { display: grid; justify-items: center; min-width: 0; }
.hero-portrait img {
  width: auto;
  height: auto;
  max-height: clamp(240px, 62svh, 620px);
  border-radius: 4px;
  object-fit: contain;
}
.hero-motion {
  position: absolute;
  inset: 0 0 0 41%;
  display: none;
  overflow: hidden;
  background: var(--dark);
}
[data-hero=film] .hero-portrait { display: none; }
[data-hero=film] .hero-motion { display: block; }
.hero-motion video { width: 100%; height: 100%; object-fit: cover; object-position: 56% center; }
.hero-motion::after {
  position: absolute;
  inset: 0;
  content: '';
  pointer-events: none;
  background: linear-gradient(90deg, var(--dark) 0%, #111112f5 7%, #1111128c 23%, transparent 57%);
}
.hero-film-toggle {
  position: absolute;
  z-index: 2;
  right: var(--gutter);
  bottom: 20px;
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid #ffffff80;
  border-radius: 4px;
  color: var(--white);
  background: #111112ed;
  font-size: 13px;
}
.hero-film-toggle:hover { border-color: var(--pink); color: var(--pink); }
.specialisms { border-top: 1px dashed #edb3d449; }
.specialisms-inner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
  gap: 18px;
  padding-block: 17px;
  color: #eee1ed;
  font-size: 11px;
  letter-spacing: .08em;
  text-align: center;
}

.academy, .mentor, .faq-layout, .enquire-layout, .niveria-layout {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: clamp(30px, 5.1vw, 76px);
}
.academy { align-items: start; }
.academy h2 { max-width: 12em; }
.academy-copy { padding-top: 19px; }
.academy-copy > p, .mentor-copy > p:not(.eyebrow), .niveria-layout > div > p:not(.eyebrow) {
  color: var(--muted);
  font-size: 17px;
  line-height: 1.7;
}
.academy-copy > .lead { color: var(--ink); font-size: 23px; line-height: 1.4; }

.programmes { padding-top: 12px; }
.programme-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.programme-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--white);
  --course-color: #815e82;
}
.programme-card[data-theme=vaser] { --course-color: var(--vaser); border-color: #c7dcef; }
.programme-card[data-theme=renuvion] { --course-color: var(--renuvion-accent); border-color: #c8e3eb; }
.programme-photo {
  position: relative;
  aspect-ratio: 1.78;
  overflow: hidden;
  border-bottom: 3px solid var(--course-color);
  background: #ebe3eb;
}
.programme-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 38%; }
.programme-card[data-theme=vaser] .programme-photo { background: linear-gradient(120deg, #e1edf7, #d2e5f5); }
.programme-card[data-theme=vaser] .programme-photo img { object-fit: contain; }
.programme-card[data-theme=renuvion] .programme-photo img { object-position: 50% 63%; }
.photo-tag {
  position: absolute;
  bottom: 14px;
  left: 15px;
  padding: 5px 9px;
  border-radius: 3px;
  color: var(--ink);
  background: #fffffff2;
  font-size: 10px;
  letter-spacing: .09em;
}
.programme-card-content { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 23px 26px; }
.programme-card-content h3 { margin-bottom: 11px; font-size: clamp(29px, 2.55vw, 39px); letter-spacing: -.02em; }
.programme-card-content h3 sup { font: 11px var(--sans); margin-left: 2px; }
.programme-card-content > p { margin-bottom: 13px; color: var(--muted); font-size: 16px; }
.programme-card-content .text-button { margin-top: auto; color: var(--course-color); }
.programme-card[data-theme=renuvion] .text-button { color: var(--renuvion); }
.course-disclosure {
  margin-bottom: 14px;
  color: var(--muted);
  font-size: 14px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.programme-note, .section-note { margin-top: 23px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.industry-disclosure {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr);
  align-items: center;
  gap: 9px 25px;
  margin-top: 23px;
  padding: 19px 22px;
  border: 1px solid #e4d7e6;
  border-left: 4px solid var(--pink);
  border-radius: 4px;
  background: #faf4f8;
}
.industry-disclosure h3 { font-size: 25px; }

.faq-section { border-block: 1px solid #e9e0eb; background: var(--lavender); }
.learning { border-block: 1px solid #ebcbd9; background: var(--brand-blush); color: var(--brand-black); }
.learning .eyebrow, .learning :is(h2, h3) em { color: var(--brand-purple); }
.learning .section-heading > p { color: var(--brand-black); }
.learning-layout {
  display: grid;
  grid-template-columns: minmax(225px, .76fr) minmax(0, 1.24fr);
  gap: clamp(20px, 3.7vw, 52px);
}
.learning-tabs { display: grid; align-self: start; gap: 8px; }
.learning-tabs button {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 68px;
  padding: 14px 15px;
  border: 1px solid #decbd9;
  border-radius: 4px;
  background: var(--white);
  text-align: left;
}
.learning-tabs button > span { color: var(--brand-purple); font-size: 13px; }
.learning-tabs button > strong { font: 400 clamp(19px, 2vw, 28px)/1.2 var(--serif); }
.learning-tabs button:hover { border-color: var(--brand-purple); background: #fadae3; }
.learning-tabs button[aria-selected=true] {
  border-color: var(--brand-purple);
  color: var(--white);
  background: var(--brand-purple);
}
.learning-tabs button[aria-selected=true] > :is(span, svg) { color: var(--pink); }
.learning-panel-wrap {
  min-width: 0;
  min-height: 325px;
  padding: clamp(22px, 3vw, 42px);
  border: 1px solid #e6cbd8;
  border-top: 4px solid var(--brand-purple);
  border-radius: 4px;
  background: var(--white);
}
.learning-panel h3 { margin-bottom: 14px; font-size: clamp(31px, 3vw, 45px); }
.learning-panel > p:not(.eyebrow) { font-size: 18px; }
.line-list { display: grid; gap: 5px; margin: 15px 0; padding-left: 1.15em; font-size: 17px; }
.line-list li::marker { color: var(--brand-purple); }
.learning-panel .text-button {
  padding: 9px 14px;
  border: 1px solid transparent;
  border-radius: 4px;
  color: var(--brand-purple);
  background: var(--pink);
}
.learning-panel .text-button:hover { color: var(--white); background: var(--brand-purple); }
.learning .section-note { color: var(--brand-black); font-size: 15px; }

.films .eyebrow, .journal .eyebrow, .enquire .eyebrow { color: var(--pink); }
.films h2 em, .journal h2 em, .enquire h2 em { color: var(--pink); }
.films .section-heading > p, .journal .section-heading > p, .enquire-copy > p:not(.eyebrow) { color: var(--dark-muted); }
.film-grid { display: grid; grid-template-columns: minmax(0, 1.36fr) minmax(0, 1fr); gap: 20px; }
.film-tile {
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #a989a65b;
  border-radius: 5px;
  background: #1e1920;
  color: var(--white);
  text-align: left;
}
.film-poster { position: relative; display: block; height: clamp(220px, 25vw, 350px); overflow: hidden; }
.film-poster img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.film-poster-clinical img { object-position: 50% 39%; }
.play-icon {
  position: absolute;
  bottom: 18px;
  left: 18px;
  display: grid;
  place-items: center;
  width: 53px;
  height: 53px;
  border-radius: 50%;
  color: #2a182b;
  background: var(--pink);
  font-size: 20px;
}
.film-tile:hover .play-icon { background: #ffcee0; }
.film-info { display: flex; align-items: baseline; flex-wrap: wrap; justify-content: space-between; gap: 8px 15px; padding: 15px 19px 17px; }
.film-title { font: 25px/1.25 var(--serif); }
.film-length { color: var(--dark-muted); font-size: 13px; }

.mentor { align-items: center; }
.mentor-photo {
  position: relative;
  width: min(100%, 440px);
  aspect-ratio: 3 / 4;
  margin-inline: auto;
  overflow: hidden;
  border: 1px solid #dcb6cd;
  border-radius: 46% 46% 4px 4px;
  background: #111;
}
.mentor-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mentor-photo figcaption {
  position: absolute;
  inset: auto 0 0;
  padding: 16px 18px;
  background: #111112e8;
  color: var(--white);
  font-size: 11px;
  letter-spacing: .13em;
}
.mentor-copy h2, .niveria h2, .faq-layout h2, .enquire h2 { margin-bottom: 17px; }
.mentor-credentials {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
  padding: 16px 0;
  margin-block: 19px 12px;
  border-block: 1px solid var(--line);
}
.mentor-credentials dt { color: #72517e; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; }
.mentor-credentials dd { margin-top: 3px; font-size: 16px; }

.journal-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.journal-position { display: flex; align-items: center; gap: 13px; color: var(--pink); }
.journal-position p { font-size: 13px; font-variant-numeric: tabular-nums; }
.journal-position progress { width: clamp(58px, 8vw, 116px); height: 4px; accent-color: var(--pink); }
.journal-track {
  --slide-width: 74%;
  --slide-gap: 16px;
  position: relative;
  display: flex;
  gap: var(--slide-gap);
  padding: 0;
  margin: 0;
  overflow-x: auto;
  list-style: none;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  overscroll-behavior-inline: contain;
}
.journal-track::-webkit-scrollbar { display: none; }
.journal-track > li { flex: 0 0 var(--slide-width); min-width: 0; scroll-snap-align: start; }
.journal-track::after { content: ''; flex: 0 0 calc(100% - var(--slide-width) - var(--slide-gap)); }
.journal-photo {
  position: relative;
  display: block;
  width: 100%;
  height: clamp(305px, 36vw, 525px);
  padding: 0;
  overflow: hidden;
  border: 1px solid #ffffff26;
  border-radius: 4px;
  color: var(--white);
  background: #241e27;
}
.journal-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 41%; }
.journal-photo span {
  position: absolute;
  inset: auto 0 0;
  padding: 46px clamp(15px, 3vw, 38px) 17px;
  background: linear-gradient(transparent, #111112f5);
  font: 400 clamp(23px, 3vw, 40px)/1.15 var(--serif);
  text-align: left;
}
.journal-photo:hover { border-color: var(--pink); }
.journal-photo:focus-visible { outline-offset: -4px; }
.journal-instructions { margin-top: 15px; color: var(--dark-muted); font-size: 14px; }

.journey-list, .niveria-steps {
  display: grid;
  padding: 0;
  margin: 0;
  list-style: none;
}
.journey-list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.journey-list li { min-width: 0; padding-top: 16px; border-top: 1px dashed #cfabc4; }
.journey-list li > span, .niveria-steps li > span { color: #87577f; font-size: 13px; }
.journey-list h3, .niveria-steps h3 { margin: 9px 0 8px; font-size: 27px; }
.journey-list p, .niveria-steps p { color: var(--muted); font-size: 16px; line-height: 1.65; }
.niveria { border-block: 1px solid #cfe2da; background: #edf6f2; }
.niveria-layout { align-items: center; }
.niveria .eyebrow, .niveria h2 em, .niveria-steps li > span { color: var(--niveria); }
.niveria-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 13px 20px; margin-top: 20px; }
.button-niveria { color: var(--white); background: var(--niveria); }
.button-niveria:hover { background: #205f50; }
.niveria-actions .text-button { color: var(--niveria); }
.niveria-steps { gap: 14px; }
.niveria-steps li {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 10px;
  padding: 15px 17px;
  border: 1px solid #cfe1d9;
  border-radius: 4px;
  background: #ffffffb8;
}
.niveria-steps h3 { margin-top: 0; }

.faq-layout { grid-template-columns: minmax(0, .76fr) minmax(0, 1.24fr); align-items: start; }
.faq-layout > div:first-child > p:not(.eyebrow) { max-width: 32ch; color: var(--muted); font-size: 17px; }
.faqs { min-width: 0; border-top: 1px solid #d9cde0; }
.faqs details { border-bottom: 1px solid #d9cde0; }
.faqs summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 17px;
  min-height: 57px;
  padding: 13px 1px;
  list-style: none;
  cursor: pointer;
  font-size: 17px;
  line-height: 1.45;
}
.faqs summary::-webkit-details-marker { display: none; }
.faqs summary::after { content: '+'; flex: 0 0 18px; color: #80567d; font: 22px/1 Arial, sans-serif; }
.faqs details[open] summary::after { content: '−'; }
.faqs details p { margin-bottom: 16px; padding-right: 21px; color: var(--muted); font-size: 16px; }

.enquire-layout { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); align-items: start; }
.enquire-copy { padding-top: 14px; }
.enquire-copy > p:not(.eyebrow) { max-width: 34ch; font-size: 18px; }
.enquire-copy .text-button { margin-top: 16px; color: var(--pink); }
.enquiry-form-wrap {
  min-width: 0;
  padding: clamp(18px, 2.65vw, 36px);
  border: 1px solid #e9d9e5;
  border-radius: 5px;
  color: var(--ink);
  background: var(--paper);
}
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
fieldset { min-inline-size: 0; margin: 0; padding: 0; border: 0; }
label { display: block; min-width: 0; margin-bottom: 15px; font-size: 14px; line-height: 1.45; }
label > span:not(.field-title) { color: var(--pink-ink); }
label[for=enquiry-type] { margin-bottom: 6px; }
input, select, textarea {
  display: block;
  width: 100%;
  min-height: 47px;
  margin-top: 6px;
  padding: 9px 10px;
  border: 1px solid #c6b9ca;
  border-radius: 4px;
  color: var(--ink);
  background: var(--white);
  font-size: 16px;
}
#enquiry-type { margin: 0 0 17px; }
input::placeholder, textarea::placeholder { color: #75687a; opacity: 1; }
textarea { min-height: 95px; resize: vertical; }
.form-privacy, .form-note { color: var(--muted); font-size: 13px; line-height: 1.6; }
.form-privacy { margin-bottom: 14px; }
.form-note { margin-top: 11px; }
.form-submit { width: 100%; }
.inline-button {
  display: inline;
  padding: 0;
  border: 0;
  color: inherit;
  background: none;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-align: left;
}
.inline-button:hover { color: var(--pink-ink); }
.enquiry-ready h3 { margin-bottom: 15px; font-size: 34px; }
.enquiry-ready .eyebrow { color: var(--pink-ink); }
.enquiry-ready > p:not(.eyebrow) { margin-bottom: 17px; color: var(--muted); }
.ready-actions { display: flex; flex-wrap: wrap; gap: 12px 18px; margin-top: 13px; }
.copy-status { min-height: 1.6em; margin-top: 9px; font-size: 14px; }

.site-footer { color: #e2d3e2; background: #09090a; }
.footer-inner { padding-block: 30px; }
.footer-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px 35px; }
.footer-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; font-size: 14px; }
.back-top {
  display: grid;
  place-items: center;
  width: 43px;
  height: 43px;
  border: 1px solid #ad88a979;
  border-radius: 4px;
  color: var(--pink);
  font-size: 17px;
}
.back-top:hover { color: var(--dark); background: var(--pink); }
.footer-note { margin-top: 20px; padding-top: 15px; border-top: 1px dashed #92758f64; color: #c3afc5; font-size: 13px; }

dialog {
  width: min(665px, calc(100% - 28px));
  max-height: calc(100dvh - 28px);
  padding: 46px clamp(19px, 3.4vw, 43px) 27px;
  overflow: auto;
  border: 1px solid #d6c7da;
  border-radius: 6px;
  color: var(--ink);
  background: var(--paper);
}
dialog::backdrop { background: #111112d9; backdrop-filter: blur(4px); }
dialog h2 { margin-bottom: 15px; font-size: clamp(30px, 3.4vw, 47px); }
.dialog-close {
  position: absolute;
  top: 10px;
  right: 10px;
  display: grid;
  place-items: center;
  width: 39px;
  height: 39px;
  padding: 0;
  border: 1px solid #bfabc4;
  border-radius: 4px;
  color: #6b486f;
  background: var(--paper);
  font-size: 18px;
}
.dialog-close:hover { background: #f1e4ef; }
.dialog-intro, .dialog-topics, .dialog-note, .privacy-dialog > p:not(.eyebrow) { color: var(--muted); font-size: 16px; }
.dialog-label { margin: 20px 0 7px; }
.dialog-topics { margin: 0 0 16px; padding-left: 1.15em; }
.dialog-topics li { padding-block: 3px; }
.dialog-note, .course-dialog-disclosure { margin-block: 16px; padding: 12px 14px; border-radius: 4px; background: #f0e8f2; }
.course-dialog-disclosure { font-size: 14px; }
.course-dialog[data-theme=vaser] { border-top: 4px solid var(--vaser); }
.course-dialog[data-theme=vaser] h2 { color: var(--vaser); }
.course-dialog[data-theme=renuvion] { border-top: 4px solid var(--renuvion-accent); }
.course-dialog[data-theme=renuvion] h2 { color: var(--renuvion); }
.privacy-dialog a { text-decoration: underline; }
.gallery-dialog, .film-dialog { width: min(980px, calc(100% - 28px)); color: var(--white); background: var(--dark); }
.gallery-dialog .dialog-close, .film-dialog .dialog-close { color: var(--pink); background: var(--dark); }
.gallery-dialog .eyebrow, .film-dialog .eyebrow { color: var(--pink); }
.gallery-stage { display: flex; align-items: center; justify-content: center; height: min(65dvh, 640px); }
.gallery-stage img { width: 100%; height: 100%; object-fit: contain; }
.gallery-caption-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 13px; }
.gallery-caption-row h2 { margin: 0; font-size: 27px; }
.gallery-caption-row .eyebrow { margin-bottom: 4px; }
.gallery-controls { display: flex; gap: 9px; }
.gallery-controls button {
  display: grid;
  place-items: center;
  width: 43px;
  height: 43px;
  padding: 0;
  border: 1px solid #a782aa96;
  border-radius: 4px;
  color: var(--pink);
  background: transparent;
  font-size: 18px;
}
.gallery-controls button:not([aria-disabled=true]):hover { color: var(--dark); background: var(--pink); }
.gallery-controls button[aria-disabled=true] { cursor: default; opacity: .4; }
.film-dialog > p:not(.eyebrow) { color: var(--dark-muted); }
.film-dialog video { width: auto; max-height: 62dvh; margin: 16px auto 0; border-radius: 4px; background: #000; }

@media (max-width: 1279px) {
  .desktop-nav { display: none; }
  .menu-button { display: grid; }
  .mobile-nav {
    position: absolute;
    inset: 100% 0 auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 20px;
    max-height: calc(100dvh - 95px);
    padding-block: 7px 18px;
    overflow: auto;
    border-bottom: 1px solid #ad88a9;
    background: var(--dark);
  }
  .mobile-nav > a:not(.button) { padding: 9px 0; border-bottom: 1px solid #fff2; font-size: 15px; }
  .mobile-nav .button { align-self: center; margin-top: 9px; }
}

@media (max-width: 930px) {
  .hero-inner { grid-template-columns: minmax(0, 1fr); }
  .hero-copy { width: min(100%, 695px); }
  .hero-portrait img { max-height: clamp(220px, 39svh, 425px); }
  .hero-motion { position: relative; inset: auto; height: clamp(210px, 32svh, 375px); margin-inline: calc(-1 * var(--gutter)); }
  .hero-motion::after { background: linear-gradient(180deg, var(--dark), transparent 28%); }
  .hero h1 { font-size: clamp(37px, 9.1cqi, 63px); }
  .journey-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .enquire-layout { grid-template-columns: minmax(0, 1fr); }
  .enquire-copy { padding-top: 0; }
}

@media (max-width: 740px) {
  .academy, .mentor, .faq-layout, .niveria-layout, .learning-layout { grid-template-columns: minmax(0, 1fr); }
  .section-heading { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 23px; }
  .section-heading > p { flex: 0 1 auto; max-width: 52ch; }
  .academy-copy { padding-top: 0; }
  .learning-panel-wrap { min-height: 0; }
  .mentor-photo { max-width: 345px; margin-left: 0; }
  .footer-top { grid-template-columns: minmax(0, 1fr) auto; }
  .footer-nav { grid-column: 1 / -1; grid-row: 2; }
  .back-top { grid-column: 2; grid-row: 1; }
  .journal-track { --slide-width: 86%; --slide-gap: 11px; }
  .journal-photo { height: clamp(230px, 56vw, 360px); }
  .film-grid { grid-template-columns: minmax(0, 1fr); }
  .film-poster { height: clamp(190px, 47vw, 335px); }
}

@media (max-width: 590px) {
  :root { --header-height: 77px; }
  .header-inner { gap: 12px; }
  .wordmark { font-size: 13px; }
  .wordmark small { font-size: 8px; letter-spacing: .14em; }
  .header-actions { gap: 10px; }
  .signature { width: clamp(107px, 30vw, 155px); }
  .header-enquire { display: none; }
  .mobile-nav { grid-template-columns: minmax(0, 1fr); max-height: calc(100dvh - 77px); }
  .hero-inner { padding-block: 23px 17px; gap: 18px; }
  .hero-eyebrow { margin-bottom: 12px; }
  .hero h1 { margin-bottom: 16px; font-size: clamp(34px, 9.65cqi, 49px); }
  .hero-description { font-size: 17px; line-height: 1.52; }
  .hero-audience { margin-top: 10px; }
  .hero-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 18px; }
  .hero-actions .button { gap: 6px; padding: 9px 10px; font-size: 13px; }
  .hero-portrait img { max-height: clamp(180px, 28svh, 270px); }
  .hero-motion { height: clamp(175px, 25svh, 275px); margin-bottom: -17px; }
  .specialisms-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding-block: 12px; font-size: 9px; }
  .programme-grid, .form-row, .industry-disclosure { grid-template-columns: minmax(0, 1fr); }
  .programme-card-content { padding: 19px 17px; }
  .programme-photo { aspect-ratio: 1.56; }
  .journey-list { gap: 18px 16px; }
  .journey-list h3, .niveria-steps h3 { font-size: 24px; }
  .gallery-caption-row h2 { font-size: 22px; }
}

@media (max-width: 360px) {
  :root { --gutter: 16px; }
  .wordmark { font-size: 12px; }
  .header-actions { gap: 8px; }
  .journey-list { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  html, .journal-track { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
