/* 0. FONTS (self-hosted - no requests to Google, GDPR-safe) =================
   Downloaded from Google Fonts (SIL Open Font License). Latin + Latin Extended
   subsets only; Latin Extended carries the Romanian diacritics (ă â î ș ț). */
@font-face {
  font-family: "Bebas Neue";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/bebas-neue-latin-ext.woff2") format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
    U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB,
    U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Bebas Neue";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/bebas-neue-latin.woff2") format("woff2");
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
    U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Bowlby One";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/bowlby-one-latin.woff2") format("woff2");
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
    U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../assets/fonts/manrope-latin-ext.woff2") format("woff2");
  unicode-range:
    U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
    U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB,
    U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("../assets/fonts/manrope-latin.woff2") format("woff2");
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
    U+2215, U+FEFF, U+FFFD;
}

/* 1. DESIGN TOKENS ========================================================== */
:root {
  /* --- Color: warm neutrals --- */
  --cream: #faf5ee;
  --cream-2: #f6efe4;
  --sand: #f1e7d8;
  --sand-deep: #e6d6c1;
  --line: rgba(29, 21, 18, 0.12);
  --line-strong: rgba(29, 21, 18, 0.22);

  /* --- Color: ink --- */
  --ink: #1d1512; /* primary text / warm near-black */
  --ink-soft: #574a41; /* secondary text */
  --ink-mute: #7a6b60; /* tertiary / captions - darkened to clear WCAG AA (4.5:1) on cream */

  /* --- Color: dark bands (B drama) --- */
  --espresso: #241612;
  --espresso-2: #170d0a;

  /* --- Color: accents (remapped to the brand palette) --- */
  --clay: #ef4923; /* PRIMARY - now brand ORANGE */
  --clay-bright: #ff6a45; /* hover */
  --clay-deep: #b5341a; /* deep orange - AA on cream for link text */
  --gold: #ffc90a; /* SECONDARY - now brand YELLOW */
  --gold-soft: #ffe07a;

  /* --- NEW brand palette (logo trio: blue/orange/yellow + green & magenta) --- */
  --blue: #3d449c;
  --green: #11814c;
  --magenta: #ffc90a; /* remapped: was magenta #be1a8a → now brand YELLOW (site-wide swap) */
  --magenta-bright: #e6b400; /* deeper yellow for hover feedback (was #d63aa4) */
  --orange: #ef4923;
  --yellow: #ffc90a;
  /* Section/page-level accent (overridden by .accent-* modifiers + a body class). */
  --accent: var(--clay);
  --accent-ink: var(--clay-deep);
  /* Hugo brandmark ("dancing man", 64x84), as a mask so markers recolor via currentColor */
  --markmask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 84'%3E%3Cpath d='M20.445 2.44402C20.7107 1.39322 20.0742 0.326014 19.0234 0.0603429C17.9726 -0.205328 16.9054 0.431144 16.6398 1.48194L18.5424 1.96298L20.445 2.44402ZM28.6002 81.4445L26.9092 82.4405C27.3475 83.1846 28.2207 83.5548 29.0602 83.3524C29.8997 83.15 30.5083 82.4226 30.5593 81.5605L28.6002 81.4445ZM30.8083 44.1569L30.9317 42.1983C30.411 42.1655 29.8986 42.3414 29.5078 42.6871C29.1171 43.0329 28.8801 43.52 28.8493 44.0409L30.8083 44.1569ZM61.9631 46.1194L62.655 47.9559C63.5206 47.6298 64.041 46.7435 63.904 45.8287C63.767 44.9139 63.0097 44.2189 62.0865 44.1608L61.9631 46.1194ZM2.10665 54.7054L0.193282 55.1418L2.10665 54.7054ZM50.3044 33.0842C51.3697 32.8844 52.0714 31.8589 51.8717 30.7936C51.6719 29.7283 50.6464 29.0266 49.5811 29.2264L49.9428 31.1553L50.3044 33.0842ZM28.6002 81.4445L30.5593 81.5605L32.7674 44.2729L30.8083 44.1569L28.8493 44.0409L26.6412 81.3285L28.6002 81.4445ZM30.8083 44.1569L30.6849 46.1155L61.8398 48.078L61.9631 46.1194L62.0865 44.1608L30.9317 42.1983L30.8083 44.1569ZM61.9631 46.1194C61.2713 44.2829 61.2713 44.2829 61.271 44.283C61.2707 44.2831 61.2702 44.2833 61.2695 44.2836C61.268 44.2841 61.2657 44.285 61.2625 44.2862C61.2561 44.2886 61.2463 44.2923 61.2332 44.2972C61.2069 44.3071 61.1671 44.3219 61.1143 44.3416C61.0087 44.381 60.851 44.4396 60.6445 44.5156C60.2315 44.6678 59.6237 44.8901 58.8479 45.1687C57.2963 45.7262 55.0741 46.509 52.3976 47.4088C47.0401 49.2099 39.8819 51.4725 32.6459 53.3332C25.3796 55.2017 18.1569 56.6322 12.6274 56.8267C9.84641 56.9246 7.66762 56.7011 6.16993 56.176C4.7211 55.668 4.18615 54.9973 4.02002 54.269L2.10665 54.7054L0.193282 55.1418C0.760306 57.6278 2.64574 59.0996 4.87125 59.8799C7.04791 60.6431 9.79744 60.8537 12.7654 60.7493C18.734 60.5394 26.2921 59.0198 33.6234 57.1346C40.9849 55.2416 48.2409 52.9471 53.6483 51.1292C56.3542 50.2196 58.6021 49.4277 60.175 48.8626C60.9615 48.5801 61.5795 48.3542 62.0018 48.1985C62.2129 48.1207 62.3752 48.0604 62.4852 48.0194C62.5402 47.9989 62.5821 47.9832 62.6106 47.9726C62.6248 47.9673 62.6356 47.9632 62.643 47.9604C62.6467 47.959 62.6496 47.9579 62.6516 47.9572C62.6526 47.9568 62.6534 47.9565 62.6539 47.9563C62.6545 47.9561 62.655 47.9559 61.9631 46.1194ZM2.10665 54.7054L4.02002 54.269C3.77015 53.1735 4.00831 52.046 4.86827 50.7839C5.75656 49.4801 7.25539 48.1259 9.31713 46.7642C13.4352 44.0443 19.3195 41.6019 25.4521 39.5476C31.5536 37.5037 37.7692 35.8865 42.47 34.7788C44.8176 34.2257 46.7813 33.801 48.1562 33.5151C48.8435 33.3721 49.3833 33.2639 49.7499 33.1916C49.9332 33.1555 50.0733 33.1284 50.1668 33.1104C50.2135 33.1014 50.2486 33.0947 50.2717 33.0904C50.2832 33.0882 50.2918 33.0866 50.2972 33.0855C50.3 33.085 50.302 33.0846 50.3032 33.0844C50.3038 33.0843 50.3041 33.0842 50.3044 33.0842C50.3045 33.0842 50.3044 33.0842 49.9428 31.1553C49.5811 29.2264 49.5807 29.2265 49.58 29.2266C49.5795 29.2267 49.5787 29.2268 49.5777 29.227C49.5758 29.2274 49.5732 29.2279 49.5697 29.2285C49.5628 29.2298 49.5529 29.2317 49.5399 29.2342C49.514 29.2391 49.4759 29.2463 49.4262 29.2559C49.3268 29.275 49.1807 29.3033 48.9911 29.3407C48.6119 29.4154 48.0586 29.5263 47.3569 29.6723C45.9537 29.9642 43.9559 30.3962 41.5698 30.9584C36.8029 32.0816 30.4615 33.7302 24.2053 35.8259C17.9802 37.9112 11.7062 40.4825 7.15397 43.4891C4.88057 44.9906 2.91628 46.678 1.62458 48.5738C0.304534 50.5113 -0.354179 52.7416 0.193282 55.1418L2.10665 54.7054ZM18.5424 1.96298L16.6398 1.48194C11.0151 23.7287 13.5826 43.9541 17.5371 58.5891C19.5153 65.9103 21.8449 71.8492 23.6846 75.9662C24.6047 78.0254 25.4032 79.6308 25.9752 80.7277C26.2613 81.2762 26.4909 81.6977 26.6509 81.9854C26.7309 82.1293 26.7935 82.2397 26.8371 82.3158C26.8589 82.3539 26.876 82.3834 26.888 82.4042C26.8941 82.4146 26.8989 82.4229 26.9024 82.4289C26.9042 82.4319 26.9057 82.4344 26.9068 82.4363C26.9074 82.4373 26.908 82.4384 26.9083 82.4388C26.9088 82.4397 26.9092 82.4405 28.6002 81.4445C30.2912 80.4486 30.2915 80.4491 30.2917 80.4494C30.2917 80.4493 30.2918 80.4496 30.2918 80.4494C30.2916 80.4492 30.2912 80.4484 30.2904 80.4471C30.2888 80.4444 30.286 80.4396 30.2819 80.4326C30.2738 80.4187 30.2608 80.3961 30.243 80.3651C30.2075 80.303 30.153 80.2069 30.0811 80.0778C29.9375 79.8195 29.7246 79.4288 29.4554 78.9126C28.9168 77.8801 28.1533 76.346 27.2681 74.365C25.4971 70.4015 23.2423 64.6567 21.3262 57.5653C17.492 43.3752 15.0305 23.8598 20.445 2.44402L18.5424 1.96298Z' fill='%23000'/%3E%3Ccircle cx='28.1096' cy='23.5506' r='5.15158' stroke='%23000' stroke-width='3.92501'/%3E%3C/svg%3E");

  /* --- Semantic surfaces --- */
  --bg: var(--cream);
  --bg-alt: var(--sand);
  --surface: #ffffff;
  --text: var(--ink);

  /* --- Typography --- */
  --font-display: "Bebas Neue", "Arial Narrow", system-ui, sans-serif;
  --font-poster: "Bowlby One", "Arial Black", Impact, system-ui, sans-serif;
  --font-body:
    "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --fs-900: clamp(2.9rem, 1.6rem + 5.6vw, 5.4rem);
  --fs-800: clamp(2.2rem, 1.4rem + 3.4vw, 3.6rem);
  --fs-700: clamp(1.75rem, 1.3rem + 1.9vw, 2.6rem);
  --fs-600: clamp(1.4rem, 1.15rem + 1.05vw, 1.9rem);
  --fs-500: clamp(1.15rem, 1.05rem + 0.4vw, 1.3rem);
  --fs-400: 1.0625rem; /* body */
  --fs-300: 0.9375rem;
  --fs-200: 0.8125rem; /* labels / eyebrow */

  --lh-tight: 1.05;
  --lh-snug: 1.2;
  --lh-body: 1.65;

  /* --- Spacing scale (4px base) --- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;
  --section-y: clamp(3.5rem, 2rem + 6vw, 7rem);

  /* --- Layout --- */
  --container: 1200px;
  --container-wide: 1360px;
  --container-narrow: 780px;
  --gutter: clamp(1.25rem, 0.5rem + 3.5vw, 4rem);
  --header-h: 76px;

  /* --- Radius / shadow / motion --- */
  --radius-sm: 6px;
  --radius: 14px;
  --radius-lg: 24px;
  --radius-pill: 999px;
  --shadow-sm: 0 2px 8px rgba(29, 21, 18, 0.06);
  --shadow: 0 14px 40px -18px rgba(29, 21, 18, 0.28);
  --shadow-lg: 0 30px 70px -30px rgba(29, 21, 18, 0.4);
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --dur: 0.45s;
  --icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");

  --z-header: 100;
  --z-drawer: 200;
  --z-modal: 300;
}

/* 2. RESET & BASE =========================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}
* {
  margin: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-h);
}

body {
  font-family: var(--font-body);
  font-size: var(--fs-400);
  line-height: var(--lh-body);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  padding-top: var(--header-h);
  overflow-x: hidden;
}
body.home,
body.has-hero {
  padding-top: 0;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}
img,
video {
  height: auto;
}
input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}
button {
  cursor: pointer;
  background: none;
  border: none;
}
ul[role="list"],
ol[role="list"] {
  list-style: none;
  padding: 0;
}
:focus-visible {
  outline: 3px solid var(--clay);
  outline-offset: 3px;
  border-radius: 3px;
}

/* 3. TYPOGRAPHY ============================================================= */
h1,
h2,
h3,
h4 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: var(--lh-snug);
  letter-spacing: -0.01em;
  color: var(--ink);
  text-wrap: balance;
}
h1 {
  font-size: var(--fs-900);
  line-height: var(--lh-tight);
  letter-spacing: -0.02em;
}
h2 {
  font-size: var(--fs-800);
}
h3 {
  font-size: var(--fs-600);
}
h4 {
  font-size: var(--fs-500);
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: 0;
}

p {
  max-width: 66ch;
}
a {
  color: var(--clay-deep);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
a:hover {
  color: var(--clay);
}
strong {
  font-weight: 700;
}
::selection {
  background: var(--gold-soft);
  color: var(--ink);
}

.lead {
  font-size: var(--fs-500);
  color: var(--ink-soft);
  line-height: 1.5;
}

/* 4. LAYOUT PRIMITIVES ====================================================== */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.container--wide {
  max-width: var(--container-wide);
}
.container--narrow {
  max-width: var(--container-narrow);
}

.section {
  padding-block: var(--section-y);
}
.section--tight {
  padding-block: clamp(2.5rem, 5vw, 4rem);
}

/* Alternating / dark surfaces */
.surface-alt {
  background: var(--bg-alt);
}
.surface-cream {
  background: var(--cream);
}
.surface-dark {
  background: var(--espresso);
  color: var(--cream);
}
.surface-dark h1,
.surface-dark h2,
.surface-dark h3 {
  color: var(--cream);
}
.surface-dark .lead {
  color: rgba(250, 245, 238, 0.78);
}

/* Generic responsive grids */
.grid {
  display: grid;
  gap: var(--space-6);
}
.grid--2 {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
}
.grid--3 {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}
.grid--4 {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}

.stack > * + * {
  margin-top: var(--space-4);
}
.cluster {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  align-items: center;
}
.cluster--center {
  justify-content: center;
}

/* 5. BUTTONS & LINKS ======================================================== */
.btn {
  --btn-bg: var(--clay);
  --btn-fg: #fff;
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  padding: 0.9em 1.6em;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--fs-300);
  letter-spacing: 0.01em;
  line-height: 1;
  color: var(--btn-fg);
  background: var(--btn-bg);
  border: 2px solid transparent;
  border-radius: var(--radius-pill);
  text-decoration: none;
  transition:
    transform var(--dur) var(--ease),
    background-color 0.25s ease,
    color 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}
.btn:hover {
  background: var(--clay-bright);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}
.btn:active {
  transform: translateY(0);
}
.btn__icon {
  width: 1.15em;
  height: 1.15em;
  flex: none;
  background-color: currentColor;
  -webkit-mask: var(--icon-arrow) center / contain no-repeat;
  mask: var(--icon-arrow) center / contain no-repeat;
}
.btn .btn__icon {
  transition: transform var(--dur) var(--ease);
}
.btn:hover .btn__icon {
  transform: translateX(4px);
}

.btn--secondary {
  --btn-bg: transparent;
  --btn-fg: var(--ink);
  border-color: var(--line-strong);
}
.btn--secondary:hover {
  background: var(--ink);
  color: var(--cream);
  border-color: var(--ink);
}

.btn--gold {
  --btn-bg: var(--gold);
  --btn-fg: var(--espresso-2);
}
.btn--gold:hover {
  background: var(--gold-soft);
  color: var(--espresso-2);
}

.btn--ghost-light {
  --btn-bg: transparent;
  --btn-fg: var(--cream);
  border-color: rgba(250, 245, 238, 0.45);
}
.btn--ghost-light:hover {
  background: var(--cream);
  color: var(--ink);
  border-color: var(--cream);
}

.btn--lg {
  padding: 1.05em 2em;
  font-size: var(--fs-400);
}
.btn--sm {
  padding: 0.7em 1.15em;
  font-size: var(--fs-200);
}

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-weight: 700;
  font-size: var(--fs-300);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--clay-deep);
}
.link-arrow::after {
  content: "";
  width: 1em;
  height: 1em;
  flex: none;
  background-color: currentColor;
  -webkit-mask: var(--icon-arrow) center / contain no-repeat;
  mask: var(--icon-arrow) center / contain no-repeat;
  transition: transform var(--dur) var(--ease);
}
.link-arrow:hover::after {
  transform: translateX(5px);
}
.surface-dark .link-arrow {
  color: var(--gold-soft);
}

/* 6. EYEBROW / SECTION HEADER =============================================== */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  font-family: var(--font-body);
  font-size: var(--fs-300);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clay);
}
.eyebrow::before {
  content: "";
  width: 0.92em;
  height: 1.2em;
  flex: none;
  background: currentColor;
  -webkit-mask: var(--markmask) center / contain no-repeat;
  mask: var(--markmask) center / contain no-repeat;
  display: inline-block;
}
.surface-dark .eyebrow {
  color: var(--gold);
}
.surface-dark .eyebrow::before {
  background: var(--gold);
}

.section-header {
  max-width: 60ch;
  margin-bottom: var(--space-7);
}
.section-header .eyebrow {
  margin-bottom: var(--space-4);
}
.section-header h2 {
  margin-bottom: var(--space-4);
}
.section-header--center {
  margin-inline: auto;
  text-align: center;
}
.section-header--center .eyebrow {
  justify-content: center;
}
.eyebrow--center {
  display: flex;
  justify-content: center;
}

/* 7. MEDIA PLACEHOLDERS ===================================================== */
.ph {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--space-5);
  background:
    repeating-linear-gradient(
      -45deg,
      transparent 0 14px,
      rgba(29, 21, 18, 0.03) 14px 15px
    ),
    linear-gradient(135deg, var(--sand) 0%, var(--sand-deep) 100%);
  color: var(--ink-soft);
  border-radius: var(--radius);
  overflow: hidden;
  isolation: isolate;
}
.ph::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px dashed var(--line-strong);
  border-radius: inherit;
  pointer-events: none;
}
.ph__inner {
  display: grid;
  gap: var(--space-2);
  place-items: center;
  max-width: 30ch;
}
.ph__icon {
  width: 34px;
  height: 34px;
  color: var(--clay);
  opacity: 0.9;
}
.ph__label {
  font-weight: 700;
  font-size: var(--fs-300);
  letter-spacing: 0.02em;
  color: var(--ink);
}
.ph__meta {
  font-size: var(--fs-200);
  color: var(--ink-mute);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ph--dark {
  background:
    repeating-linear-gradient(
      -45deg,
      transparent 0 14px,
      rgba(255, 255, 255, 0.03) 14px 15px
    ),
    linear-gradient(135deg, var(--espresso) 0%, var(--espresso-2) 100%);
  color: rgba(250, 245, 238, 0.75);
}
.ph--dark .ph__label {
  color: var(--cream);
}
.ph--dark .ph__meta {
  color: rgba(250, 245, 238, 0.5);
}
.ph--dark .ph__icon {
  color: var(--gold);
}
.ph--dark::after {
  border-color: rgba(250, 245, 238, 0.2);
}

.ph--bg .ph__inner {
  position: absolute;
  right: 14px;
  bottom: 12px;
  max-width: none;
  place-items: end;
  text-align: right;
  gap: 2px;
}
.ph--bg .ph__icon {
  display: none;
}
.ph--bg .ph__label {
  font-size: var(--fs-200);
  font-weight: 600;
  letter-spacing: 0.02em;
  opacity: 0.85;
}
.ph--bg::after {
  border-style: none;
}

.ratio-16-6 {
  aspect-ratio: 16 / 6;
}

.ratio-16-9 {
  aspect-ratio: 16 / 9;
}
.ratio-4-3 {
  aspect-ratio: 4 / 3;
}
.ratio-3-4 {
  aspect-ratio: 3 / 4;
}
.ratio-1-1 {
  aspect-ratio: 1 / 1;
}

.container > .ph,
.container > img.ratio-16-9,
.container > img.ratio-4-3,
.container > img.ratio-3-4,
.container > img.ratio-1-1 {
  margin-inline: auto;
}

/* 8. HEADER / NAV =========================================================== */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: var(--z-header);
  height: var(--header-h);
  display: flex;
  align-items: center;
  background: transparent;
  transition:
    background-color 0.3s ease,
    box-shadow 0.3s ease,
    height 0.3s ease;
}
.site-header__inner {
  width: 100%;
  max-width: var(--container-wide);
  margin-inline: auto;
  padding-inline: var(--gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
}

.site-header--solid,
.site-header.is-scrolled {
  background: rgba(250, 245, 238, 0.92);
  backdrop-filter: saturate(1.4) blur(10px);
  box-shadow:
    0 1px 0 var(--line),
    var(--shadow-sm);
}

/* Brand */
.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  text-decoration: none;
}
.brand__mark {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: var(--clay);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.25rem;
  box-shadow: var(--shadow-sm);
}
.brand__text {
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.brand__name {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.15rem;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.brand__sub {
  font-size: 0.66rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--ink-mute);
  font-weight: 700;
}

.site-header:not(.is-scrolled):not(.site-header--solid) .brand__name {
  color: var(--cream);
}
.site-header:not(.is-scrolled):not(.site-header--solid) .brand__sub {
  color: rgba(250, 245, 238, 0.7);
}
.site-header:not(.is-scrolled):not(.site-header--solid) .nav__link {
  color: var(--cream);
}
.site-header:not(.is-scrolled):not(.site-header--solid) .nav__toggle {
  color: var(--cream);
}

.nav {
  display: flex;
  align-items: center;
  gap: var(--space-6);
}
.nav__list {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  list-style: none;
  padding: 0;
}
.nav__item {
  position: relative;
}
.nav__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  padding: 0.6em 0.85em;
  border-radius: var(--radius-pill);
  font-weight: 600;
  font-size: var(--fs-300);
  color: var(--ink);
  text-decoration: none;
  transition:
    color 0.2s ease,
    background-color 0.2s ease;
}
.nav__link:hover,
.nav__item:focus-within > .nav__link {
  color: var(--clay);
}
.nav__link[aria-current="page"] {
  color: var(--clay);
}
.nav__link[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 0.85em;
  right: 0.85em;
  bottom: 0.35em;
  height: 2px;
  background: var(--clay);
  border-radius: 2px;
}
.nav__caret {
  width: 12px;
  height: 12px;
  transition: transform 0.25s ease;
}
.nav__item--has-menu[data-open="true"] .nav__caret {
  transform: rotate(180deg);
}

.nav__menu {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 250px;
  padding: var(--space-3);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  list-style: none;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.22s ease,
    transform 0.22s var(--ease),
    visibility 0.22s;
}
.nav__item--has-menu:hover .nav__menu,
.nav__item--has-menu[data-open="true"] .nav__menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.nav__menu::before {
  content: "";
  position: absolute;
  top: -14px;
  left: 0;
  right: 0;
  height: 14px;
}
.nav__menu-link {
  display: block;
  padding: 0.6em 0.8em;
  border-radius: var(--radius-sm);
  font-weight: 600;
  font-size: var(--fs-300);
  color: var(--ink);
  text-decoration: none;
  transition:
    background-color 0.18s ease,
    color 0.18s ease;
}
.nav__menu-link:hover {
  background: var(--sand);
  color: var(--clay);
}

.nav__cta {
  margin-left: var(--space-2);
}

/* Hamburger */
.nav__toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  color: var(--ink);
}
.nav__toggle svg {
  width: 26px;
  height: 26px;
}

/* Mobile drawer */
.nav-backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer);
  background: rgba(23, 13, 10, 0.5);
  backdrop-filter: blur(2px);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s ease,
    visibility 0.3s;
}
.nav-backdrop.is-open {
  opacity: 1;
  visibility: visible;
}
.drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: calc(var(--z-drawer) + 1);
  width: min(88vw, 400px);
  height: 100dvh;
  background: var(--cream);
  box-shadow: var(--shadow-lg);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.4s var(--ease);
  overflow-y: auto;
}
.drawer.is-open {
  transform: translateX(0);
}
.drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-5) var(--space-5) var(--space-4);
  border-bottom: 1px solid var(--line);
}
.drawer__close {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  color: var(--ink);
}
.drawer__close:hover {
  background: var(--sand);
}
.drawer__nav {
  padding: var(--space-4) var(--space-5) var(--space-8);
}
.drawer__link {
  display: block;
  padding: 0.85em 0;
  font-family: var(--font-display);
  font-size: var(--fs-600);
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid var(--line);
}
.drawer__link:hover {
  color: var(--clay);
}
.drawer__group {
  border-bottom: 1px solid var(--line);
}
.drawer__group-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85em 0;
  font-family: var(--font-display);
  font-size: var(--fs-600);
  color: var(--ink);
  text-align: left;
}
.drawer__group-btn svg {
  width: 20px;
  height: 20px;
  transition: transform 0.3s ease;
  color: var(--clay);
}
.drawer__group[aria-expanded="true"] .drawer__group-btn svg {
  transform: rotate(180deg);
}
.drawer__sub {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s var(--ease);
}
.drawer__group[aria-expanded="true"] .drawer__sub {
  grid-template-rows: 1fr;
}
.drawer__sub-inner {
  overflow: hidden;
}
.drawer__sub-link {
  display: block;
  padding: 0.6em 0 0.6em var(--space-4);
  font-weight: 600;
  color: var(--ink-soft);
  text-decoration: none;
}
.drawer__sub-link:hover {
  color: var(--clay);
}
.drawer__cta {
  margin-top: var(--space-6);
}

/* 9. FOOTER ================================================================= */
.site-footer {
  background: var(--espresso);
  color: rgba(250, 245, 238, 0.72);
  padding-top: var(--space-9);
}
.site-footer a {
  color: rgba(250, 245, 238, 0.72);
  text-decoration: none;
}
.site-footer a:hover {
  color: var(--gold-soft);
}
.footer__grid {
  display: grid;
  gap: var(--space-7);
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
}
.footer__brand .brand__name {
  color: var(--cream);
}
.footer__brand .brand__sub {
  color: rgba(250, 245, 238, 0.55);
}
.footer__tagline {
  margin-top: var(--space-4);
  max-width: 34ch;
  color: rgba(250, 245, 238, 0.6);
}
.footer__col h4 {
  color: var(--cream);
  font-size: var(--fs-300);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: var(--space-4);
}
.footer__list {
  list-style: none;
  padding: 0;
  display: grid;
  gap: var(--space-3);
}
.footer__social {
  display: flex;
  gap: var(--space-3);
  margin-top: var(--space-4);
}
.footer__social a {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 1px solid rgba(250, 245, 238, 0.2);
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}
.footer__social a:hover {
  background: var(--clay);
  border-color: var(--clay);
  color: #fff;
}
.footer__social svg {
  width: 20px;
  height: 20px;
}
.footer__bar {
  margin-top: var(--space-8);
  padding-block: var(--space-5);
  border-top: 1px solid rgba(250, 245, 238, 0.14);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  justify-content: space-between;
  font-size: var(--fs-200);
  color: rgba(250, 245, 238, 0.5);
}
.footer__note {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
}

/* 10. COMPONENTS ============================================================ */

/* --- Hero (homepage) --- */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  padding-block: calc(var(--header-h) + var(--space-6)) var(--space-9);
  color: var(--cream);
  overflow: hidden;
}
.hero__media {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.hero__media .ph {
  height: 100%;
  border-radius: 0;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(
      180deg,
      rgba(23, 13, 10, 0.55) 0%,
      rgba(23, 13, 10, 0.15) 35%,
      rgba(23, 13, 10, 0.7) 100%
    ),
    linear-gradient(90deg, rgba(23, 13, 10, 0.6) 0%, rgba(23, 13, 10, 0.05) 60%);
}
.hero__inner {
  position: relative;
  max-width: 72ch;
}
.hero__eyebrow {
  color: var(--yellow);
  /* margin-bottom: var(--space-3); */
}
.hero__eyebrow::before {
  background: currentColor;
}
.hero h1 {
  color: var(--cream);
  margin-bottom: var(--space-5);
}
.hero__copy {
  font-size: var(--fs-500);
  color: rgba(250, 245, 238, 0.9);
  line-height: 1.55;
  margin-bottom: var(--space-5);
  max-width: 60ch;
}
.hero__free {
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--fs-600);
  line-height: 1.35;
  color: var(--gold-soft);
  margin-bottom: var(--space-6);
  padding-left: var(--space-5);
  border-left: 2px solid var(--gold);
  max-width: 46ch;
}
.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}

/* --- Stats band --- */
.stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--space-5);
}
.stat {
  text-align: center;
  padding: var(--space-4);
}
.stat__num {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(2.4rem, 1.5rem + 3.2vw, 3.8rem);
  line-height: 1;
  color: var(--clay);
  letter-spacing: -0.02em;
}
.surface-dark .stat__num {
  color: var(--gold);
}
.stat__label {
  margin-top: var(--space-3);
  font-size: var(--fs-300);
  color: var(--ink-soft);
  letter-spacing: 0.02em;
}
.surface-dark .stat__label {
  color: rgba(250, 245, 238, 0.72);
}
.stats--divided .stat + .stat {
  border-left: 1px solid var(--line);
}

.value-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: var(--space-6);
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--dur) var(--ease),
    box-shadow var(--dur) var(--ease);
}
.value-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}
.value-card__icon {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: var(--sand);
  color: var(--clay);
  margin-bottom: var(--space-4);
}
.value-card__icon svg {
  width: 26px;
  height: 26px;
}
.value-card h3 {
  font-family: var(--font-body);
  font-weight: 800;
  font-size: var(--fs-500);
  margin-bottom: var(--space-2);
}
.value-card p {
  color: var(--ink-soft);
  font-size: var(--fs-300);
}

/* --- Course card --- */
.course-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--dur) var(--ease),
    box-shadow var(--dur) var(--ease);
}
.course-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}
.course-card__media {
  position: relative;
}
.course-card__media .ph {
  border-radius: 0;
}
.course-card__tag {
  position: absolute;
  top: var(--space-4);
  left: var(--space-4);
}
.course-card__body {
  padding: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  flex: 1;
}
.course-card__body h3 {
  font-size: var(--fs-600);
}
.course-card__body p {
  color: var(--ink-soft);
  font-size: var(--fs-300);
  flex: 1;
}
.course-card__foot {
  margin-top: var(--space-2);
}

/* --- Pricing card --- */
.price-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: calc(var(--space-6) + 1.4rem) var(--space-6) var(--space-6);
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--dur) var(--ease),
    box-shadow var(--dur) var(--ease),
    border-color 0.25s ease;
}
.price-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
  border-color: var(--sand-deep);
}
.price-card--featured {
  border-color: var(--clay);
  box-shadow: var(--shadow);
}
.price-card__ribbon {
  position: absolute;
  top: var(--space-5);
  left: var(--space-6);
  margin: 0;
}
.price-card__name {
  font-family: var(--font-display);
  font-size: var(--fs-600);
}
.price-card__tag {
  font-family: var(--font-body);
  font-size: var(--fs-300);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold);
  vertical-align: middle;
}
.price-card__meta {
  font-size: var(--fs-300);
  color: var(--ink-mute);
}
.price-card__price {
  display: flex;
  align-items: baseline;
  gap: 0.4em;
  flex-wrap: nowrap;
}
.price-card__now {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(1.9rem, 1.35rem + 1.6vw, 2.5rem);
  color: var(--ink);
  line-height: 1;
}
.price-card__was {
  font-size: var(--fs-300);
  color: var(--ink-mute);
  text-decoration: line-through;
}
.price-card__unit {
  font-size: var(--fs-300);
  color: var(--ink-soft);
}
.price-card .btn {
  align-self: flex-start;
  margin-top: auto;
}

/* --- Team card --- */
.team-card {
  display: flex;
  flex-direction: column;
}
.team-card__media {
  margin-bottom: var(--space-4);
}
.team-card__media .ph {
  border-radius: var(--radius);
}
.team-card__name {
  font-size: var(--fs-600);
  margin-bottom: 0.15em;
}
.team-card__role {
  font-size: var(--fs-300);
  font-weight: 700;
  color: var(--clay);
  letter-spacing: 0.02em;
}
.team-card__bio {
  margin-top: var(--space-3);
  color: var(--ink-soft);
  font-size: var(--fs-300);
}

/* --- News card --- */
.news-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--dur) var(--ease),
    box-shadow var(--dur) var(--ease);
}
.news-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}
.news-card__media .ph {
  border-radius: 0;
}
.news-card__body {
  padding: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  flex: 1;
}
.news-card__date {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-size: var(--fs-200);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clay);
}
.news-card__body h3 {
  font-size: var(--fs-500);
  font-family: var(--font-display);
}
.news-card__body p {
  color: var(--ink-soft);
  font-size: var(--fs-300);
  flex: 1;
}

/* --- Testimonial --- */
.testimonial {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: var(--space-7);
  box-shadow: var(--shadow-sm);
  position: relative;
}
.testimonial::before {
  content: "\201C";
  font-family: var(--font-display);
  font-size: 6rem;
  line-height: 0.8;
  color: var(--gold);
  opacity: 0.5;
  position: absolute;
  top: var(--space-5);
  left: var(--space-6);
}
.testimonial__quote {
  font-family: var(--font-display);
  font-size: var(--fs-600);
  line-height: 1.4;
  color: var(--ink);
  position: relative;
}
.testimonial__author {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-top: var(--space-5);
}
.testimonial__avatar .ph {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  padding: 0;
}
.testimonial__avatar img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
}
.testimonial__name {
  font-weight: 800;
}
.testimonial__meta {
  font-size: var(--fs-300);
  color: var(--ink-mute);
}

.marquee {
  overflow: hidden;
  padding-block: var(--space-3);
  border-block: 1px solid;
  border-color: inherit;
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent,
    #000 7%,
    #000 93%,
    transparent
  );
  mask-image: linear-gradient(
    90deg,
    transparent,
    #000 7%,
    #000 93%,
    transparent
  );
}
.marquee--clay {
  background: var(--clay);
  color: #fff;
  border-color: var(--clay-deep);
}
.marquee__track {
  display: flex;
  align-items: center;
  width: max-content;
  animation: marquee 45s linear infinite;
}
.marquee__item {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  font-family: var(--font-body);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: clamp(0.78rem, 0.72rem + 0.28vw, 0.98rem);
  color: rgba(255, 255, 255, 0.92);
}
.marquee__item::after {
  content: "";
  width: 0.85em;
  height: 1.12em;
  display: inline-block;
  background: var(--gold-soft);
  -webkit-mask: var(--markmask) center / contain no-repeat;
  mask: var(--markmask) center / contain no-repeat;
  margin-inline: clamp(1.4rem, 3vw, 2.6rem);
  opacity: 0.9;
}
.marquee:hover .marquee__track {
  animation-play-state: paused;
}
@keyframes marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* --- CTA band --- */
.cta-band {
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cta-band .container {
  position: relative;
}
.cta-band h2 {
  margin-bottom: var(--space-4);
}
.cta-band .lead {
  margin-inline: auto;
  margin-bottom: var(--space-6);
}

/* --- Gallery preview --- */
.gallery-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-4);
}
.gallery-strip .ph {
  border-radius: var(--radius);
}
.gallery-strip__item--tall {
  grid-row: span 2;
}

/* --- Filterable gallery (mosaic) --- */
.filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
.filter {
  padding: 0.55em 1.15em;
  border-radius: var(--radius-pill);
  border: 1px solid var(--line-strong);
  background: transparent;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--fs-300);
  color: var(--ink-soft);
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}
.filter:hover {
  border-color: var(--clay);
  color: var(--clay);
}
.filter[aria-pressed="true"] {
  background: var(--clay);
  color: #fff;
  border-color: var(--clay);
}

.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
  grid-auto-rows: 200px;
  gap: var(--space-4);
  grid-auto-flow: dense;
}
.gallery__item {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  border: 0;
  padding: 0;
  cursor: zoom-in;
  background: none;
}
.gallery__item .ph {
  width: 100%;
  height: 100%;
  border-radius: 0;
}
.gallery__item img,
.gallery__item video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}
.gallery__item:hover img,
.gallery__item:hover video {
  transform: scale(1.05);
}

.gallery__item--video::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(23, 13, 10, 0) 40%,
    rgba(23, 13, 10, 0.45) 100%
  );
  pointer-events: none;
}
.gallery__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 62px;
  height: 62px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: rgba(23, 13, 10, 0.5);
  border: 2px solid rgba(250, 245, 238, 0.85);
  backdrop-filter: blur(2px);
  pointer-events: none;
  transition: transform 0.3s var(--ease);
  z-index: 1;
}
.gallery__item--video:hover .gallery__play {
  transform: translate(-50%, -50%) scale(1.08);
}
.gallery__play svg {
  width: 26px;
  height: 26px;
  margin-left: 3px;
}
.gallery__item--w2 {
  grid-column: span 2;
}
.gallery__item--h2 {
  grid-row: span 2;
}
.gallery__item[hidden] {
  display: none;
}
@media (max-width: 600px) {
  .gallery__item--w2 {
    grid-column: span 1;
  }
}

/* --- Lightbox --- */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: none;
  align-items: center;
  justify-content: center;
  padding: clamp(1rem, 4vw, 3rem);
  background: rgba(23, 13, 10, 0.92);
  backdrop-filter: blur(4px);
}
.lightbox.is-open {
  display: flex;
}
.lightbox__stage {
  max-width: min(1100px, 94vw);
  max-height: 86vh;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.lightbox__stage .ph {
  width: min(1100px, 94vw);
  height: min(70vh, 720px);
}
.lightbox__stage img,
.lightbox__stage video {
  max-width: 100%;
  max-height: 86vh;
  display: block;
}
.lightbox__close {
  position: absolute;
  top: var(--space-5);
  right: var(--space-5);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--cream);
  border: 1px solid rgba(250, 245, 238, 0.3);
}
.lightbox__close:hover {
  background: rgba(250, 245, 238, 0.12);
}
.lightbox__close svg {
  width: 24px;
  height: 24px;
}
.lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--cream);
  border: 1px solid rgba(250, 245, 238, 0.3);
}
.lightbox__nav:hover {
  background: rgba(250, 245, 238, 0.12);
}
.lightbox__nav svg {
  width: 26px;
  height: 26px;
}
.lightbox__nav--prev {
  left: var(--space-5);
}
.lightbox__nav--next {
  right: var(--space-5);
}
@media (max-width: 600px) {
  .lightbox__nav {
    top: auto;
    bottom: var(--space-5);
    transform: none;
  }
  .lightbox__nav--prev {
    left: var(--space-5);
  }
}

/* --- Split (media + text) --- */
.split {
  display: grid;
  gap: var(--space-7);
  align-items: center;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
}
.split--reverse .split__media {
  order: 2;
}

@media (min-width: 820px) {
  .split--media-left .split__text {
    order: 2;
  }
}

.split__text:not(.page-hero__inner) > .mt-6 {
  margin-top: var(--space-4);
}
.split__text:not(.page-hero__inner) > .mt-7 {
  margin-top: var(--space-5);
}

@media (min-width: 900px) {
  .faq-aside {
    position: sticky;
    top: calc(var(--header-h) + var(--space-6));
    align-self: start;
  }
}

/* --- Accordion (FAQ, later) --- */
.accordion__item {
  border-bottom: 1px solid var(--line);
}
.accordion__btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-5) 0;
  text-align: left;
  font-family: var(--font-display);
  font-size: var(--fs-500);
  color: var(--ink);
}
.accordion__btn svg {
  flex: none;
  width: 22px;
  height: 22px;
  color: var(--clay);
  transition: transform 0.3s ease;
}
.accordion__item[aria-expanded="true"] .accordion__btn svg {
  transform: rotate(45deg);
}
.accordion__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s var(--ease);
}
.accordion__item[aria-expanded="true"] .accordion__panel {
  grid-template-rows: 1fr;
}
.accordion__panel-inner {
  overflow: hidden;
}
.accordion__panel p {
  padding-bottom: var(--space-5);
  color: var(--ink-soft);
}

/* --- Schedule table (Program) --- */
.schedule-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.schedule {
  width: 100%;
  border-collapse: collapse;
  min-width: 720px;
  font-size: var(--fs-300);
}
.schedule th,
.schedule td {
  padding: var(--space-3) var(--space-4);
  text-align: left;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.schedule thead th {
  background: var(--espresso);
  color: var(--cream);
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: 0.04em;
  position: sticky;
  top: 0;
}
.schedule tbody tr:nth-child(even) {
  background: var(--cream-2);
}
.schedule__level {
  display: inline-block;
  font-size: var(--fs-200);
  font-weight: 700;
  padding: 0.15em 0.6em;
  border-radius: var(--radius-pill);
}

/* --- Badges / tags --- */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  font-size: var(--fs-200);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.4em 0.85em;
  border-radius: var(--radius-pill);
  background: var(--sand);
  color: var(--clay-deep);
}
.badge--clay {
  background: var(--clay);
  color: #fff;
}
.badge--gold {
  background: var(--gold);
  color: var(--espresso-2);
}
.badge--dark {
  background: var(--espresso);
  color: var(--cream);
}
.badge--incepatori {
  background: #cfe0ef;
  color: #1e3a52;
}
.badge--intermediari {
  background: #f3d9bd;
  color: #7a4415;
}
.badge--avansati {
  background: var(--clay);
  color: #fff;
}
.badge--all {
  background: var(--sand-deep);
  color: var(--ink);
}

/* --- Interior page hero --- */
.page-hero {
  padding-block: clamp(2.5rem, 5vw, 4.5rem) var(--space-8);
  background: var(--sand);
  position: relative;
}
.page-hero__inner {
  max-width: 62ch;
}
.page-hero .eyebrow {
  margin-bottom: var(--space-4);
}
.page-hero h1 {
  margin-bottom: var(--space-4);
}
.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  font-size: var(--fs-200);
  color: var(--ink-mute);
  margin-bottom: var(--space-5);
  list-style: none;
  padding: 0;
}
.breadcrumbs a {
  color: var(--ink-mute);
  text-decoration: none;
}
.breadcrumbs a:hover {
  color: var(--clay);
}
.breadcrumbs li:not(:last-child)::after {
  content: "/";
  margin-left: 0.5em;
  color: var(--line-strong);
}

/* Page-hero variants (for layout variety across pages) */
.page-hero--center {
  text-align: center;
}
.page-hero--center .page-hero__inner {
  margin-inline: auto;
}
.page-hero--center .eyebrow {
  justify-content: center;
}
.page-hero--center .breadcrumbs {
  justify-content: center;
}
.page-hero--center .cluster {
  justify-content: center;
}
.page-hero--dark {
  background: var(--espresso);
  color: var(--cream);
}
.page-hero--dark h1 {
  color: var(--cream);
}
.page-hero--dark .lead {
  color: rgba(250, 245, 238, 0.82);
}
.page-hero--dark .eyebrow {
  color: var(--gold);
}
.page-hero--dark .eyebrow::before {
  background: var(--gold);
}
.page-hero--dark .breadcrumbs,
.page-hero--dark .breadcrumbs a {
  color: rgba(250, 245, 238, 0.55);
}
.page-hero--dark .breadcrumbs li:not(:last-child)::after {
  color: rgba(250, 245, 238, 0.4);
}
.page-hero--dark .breadcrumbs a:hover {
  color: var(--gold-soft);
}

/* Steps (numbered sequence - e.g. the learning path) */
.steps {
  display: grid;
  gap: var(--space-5);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
}
.step {
  position: relative;
  padding: var(--space-6);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}
.step__n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 50%;
  background: var(--sand);
  color: var(--clay);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.25rem;
  margin-bottom: var(--space-4);
}
.step h3 {
  font-family: var(--font-body);
  font-weight: 800;
  font-size: var(--fs-500);
  margin-bottom: var(--space-2);
}
.step p {
  font-size: var(--fs-300);
  color: var(--ink-soft);
}
.step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: calc(var(--space-6) + 1.3rem);
  right: -1px;
  width: 1px;
  height: 0;
}

/* Notice (for stub / pending content) */
.notice {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
  padding: var(--space-5);
  border-radius: var(--radius);
  background: #fff8e8;
  border: 1px solid var(--gold-soft);
  color: var(--ink-soft);
}
.notice svg {
  flex: none;
  width: 24px;
  height: 24px;
  color: var(--gold);
}

/* --- Pull-quote (editorial emphasis) --- */
.pullquote {
  position: relative;
  padding: var(--space-4) 0 var(--space-4) var(--space-6);
  border-left: 3px solid var(--clay);
}
.pullquote p {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--fs-700);
  line-height: 1.28;
  color: var(--ink);
  max-width: 22ch;
}
.pullquote cite {
  display: block;
  margin-top: var(--space-4);
  font-family: var(--font-body);
  font-style: normal;
  font-size: var(--fs-300);
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--ink-mute);
}
.surface-dark .pullquote {
  border-left-color: var(--gold);
}
.surface-dark .pullquote p {
  color: var(--cream);
}
.surface-dark .pullquote cite {
  color: rgba(250, 245, 238, 0.6);
}

/* --- Journey (Ecuador → Spania → România) --- */
.journey {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3) var(--space-4);
}
.journey__stop {
  font-family: var(--font-display);
  font-size: var(--fs-500);
  color: var(--ink);
}
.journey__arrow {
  color: var(--clay);
  display: inline-block;
  width: 22px;
  height: 22px;
  background-color: currentColor;
  -webkit-mask: var(--icon-arrow) center / contain no-repeat;
  mask: var(--icon-arrow) center / contain no-repeat;
}
.surface-dark .journey__stop {
  color: var(--cream);
}
.surface-dark .journey__arrow {
  color: var(--gold);
}
.page-hero--dark .journey__stop {
  color: var(--yellow);
}

.timeline {
  max-width: 760px;
}
.timeline__item {
  position: relative;
  padding: 0 0 var(--space-8) var(--space-7);
  border-left: 2px solid var(--sand-deep);
}
.timeline__item:last-child {
  border-left-color: transparent;
  padding-bottom: 0;
}
.timeline__dot {
  position: absolute;
  left: -9px;
  top: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--clay);
  box-shadow:
    0 0 0 4px var(--cream),
    0 0 0 5px var(--sand-deep);
}
.timeline__item--milestone .timeline__dot {
  background: var(--gold);
}
.timeline__year {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--fs-600);
  color: var(--clay);
  line-height: 1;
  margin-bottom: var(--space-4);
}
.timeline__item--milestone .timeline__year {
  color: var(--gold);
}
.timeline__list {
  list-style: none;
  padding: 0;
  display: grid;
  gap: var(--space-3);
}
.timeline__list li {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: baseline;
}
.timeline__event {
  color: var(--ink-soft);
}
.timeline__note {
  color: var(--ink-soft);
  max-width: 60ch;
}
.place {
  flex: none;
  font-weight: 700;
  font-size: var(--fs-200);
  letter-spacing: 0.02em;
  padding: 0.2em 0.7em;
  border-radius: var(--radius-pill);
  white-space: nowrap;
}
.place--gold {
  background: color-mix(in srgb, var(--orange) 38%, transparent);
  color: var(--espresso-2);
}
.place--mute {
  background: var(--sand-deep);
  color: var(--ink);
}

.profile {
  display: grid;
  gap: var(--space-5);
  align-items: start;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
}
.profile--reverse {
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
}
.profile--reverse .profile__media {
  order: 2;
}
.profile__media {
  position: sticky;
  top: calc(var(--header-h) + var(--space-5));
}
.profile__media .ph {
  border-radius: var(--radius-lg);
}
.profile__name {
  font-size: var(--fs-800);
  margin-bottom: 0.15em;
}
.profile__role {
  font-size: var(--fs-300);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--clay);
  margin-bottom: var(--space-5);
}
.profile__bio > * + * {
  margin-top: var(--space-4);
}
.profile__bio p {
  color: var(--ink-soft);
  max-width: 62ch;
}
@media (max-width: 800px) {
  .profile {
    grid-template-columns: 1fr;
  }
  .profile--reverse .profile__media {
    order: 0;
  }
  .profile__media {
    position: static;
    max-width: 420px;
  }
}

.news-featured {
  display: grid;
  gap: var(--space-6);
  grid-template-columns: 1.2fr 1fr;
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.news-featured__media .ph {
  border-radius: 0;
  height: 100%;
  min-height: 300px;
}
.news-featured__body {
  padding: var(--space-7);
}
@media (max-width: 760px) {
  .news-featured {
    grid-template-columns: 1fr;
  }
}

.news-feed {
  display: grid;
  gap: clamp(2.5rem, 5vw, 4.5rem);
}
.news-entry {
  display: grid;
  gap: var(--space-6) var(--space-7);
  grid-template-columns: 1fr 1fr;
  align-items: center;
}
.news-entry + .news-entry {
  border-top: 1px solid var(--line);
  padding-top: clamp(2.5rem, 5vw, 4.5rem);
}
.news-entry--reverse .news-entry__media {
  order: 2;
}
.news-entry__media .ph {
  border-radius: var(--radius);
}
.news-entry__title {
  font-size: var(--fs-700);
  margin-block: var(--space-3) var(--space-4);
}
.news-entry__text p + p {
  margin-top: var(--space-4);
}
.news-entry__text p {
  color: var(--ink-soft);
}
@media (max-width: 760px) {
  .news-entry {
    grid-template-columns: 1fr;
  }
  .news-entry--reverse .news-entry__media {
    order: 0;
  }
}

/* 11. MOTION / REVEAL ======================================================= */
[data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.7s var(--ease),
    transform 0.7s var(--ease);
}
[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}
html:not(.js) [data-reveal] {
  opacity: 1;
  transform: none;
}
[data-reveal-delay="1"] {
  transition-delay: 0.08s;
}
[data-reveal-delay="2"] {
  transition-delay: 0.16s;
}
[data-reveal-delay="3"] {
  transition-delay: 0.24s;
}
[data-reveal-delay="4"] {
  transition-delay: 0.32s;
}

/* 12. UTILITIES ============================================================= */
.text-center {
  text-align: center;
}
.mx-auto {
  margin-inline: auto;
}
.mt-6 {
  margin-top: var(--space-6);
}
.mt-7 {
  margin-top: var(--space-7);
}
.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;
}
.skip-link {
  position: absolute;
  left: var(--space-4);
  top: -60px;
  z-index: calc(var(--z-header) + 1);
  background: var(--ink);
  color: var(--cream);
  padding: 0.7em 1.2em;
  border-radius: var(--radius-sm);
  transition: top 0.2s ease;
}
.skip-link:focus {
  top: var(--space-4);
  color: var(--cream);
}
.no-wrap {
  white-space: nowrap;
}

/* --- Inline video frame (Dansul mirilor, Dans de performanță) --- */
.video-frame {
  margin: 0;
  max-width: 960px;
  margin-inline: auto;
  border-radius: var(--radius);
  overflow: hidden;
  background: #000;
  box-shadow: var(--shadow-lg);
}
.video-frame video {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  background: #000;
}
.video-frame--portrait {
  max-width: 420px;
}
.video-frame--portrait video {
  aspect-ratio: 9 / 16;
  max-height: 80vh;
}

/* ============================ RESPONSIVE ================================== */
@media (max-width: 960px) {
  .footer__grid {
    grid-template-columns: 1fr 1fr;
  }
  .gallery-strip {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 860px) {
  .nav__list,
  .nav__cta {
    display: none;
  }
  .nav__toggle {
    display: inline-flex;
  }
}
@media (max-width: 620px) {
  :root {
    --header-h: 66px;
  }
  .footer__grid {
    grid-template-columns: 1fr;
  }
  .stats--divided .stat + .stat {
    border: 0;
    padding-top: 0;
  }
  .hero {
    align-items: flex-end;
  }
  .hero__actions .btn {
    flex: 1 1 auto;
    justify-content: center;
  }
}
.hero__media .ph,
.hero__media img,
.hero__media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: 55% 45%;
  animation: hero-zoom 26s var(--ease) infinite alternate;
}
@keyframes hero-zoom {
  from {
    transform: scale(1.03);
  }
  to {
    transform: scale(1.13);
  }
}
.hero h1 {
  font-size: clamp(3rem, 1.4rem + 6.1vw, 5.8rem);
  letter-spacing: -0.03em;
}
.hero__eyebrow {
  letter-spacing: 0.24em;
}

.hero__inner > [data-reveal] {
  transition-duration: 0.8s;
}

.stats--feature {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-5) var(--space-6);
}
.stats--feature .stat {
  flex: 1 1 auto;
  text-align: left;
  padding: var(--space-3) var(--space-5) var(--space-3) 0;
}
.stats--feature.stats--divided .stat + .stat {
  border-left: 1px solid var(--line);
  padding-left: var(--space-6);
}
.stats--feature .stat__num {
  font-size: clamp(3rem, 1.7rem + 5.2vw, 5.6rem);
  letter-spacing: -0.045em;
}
.stats--feature .stat__label {
  margin-top: var(--space-4);
  font-size: var(--fs-200);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ink-mute);
  max-width: 16ch;
}
@media (max-width: 620px) {
  .stats--feature .stat {
    text-align: center;
    padding: 0;
  }
  .stats--feature .stat__label {
    margin-inline: auto;
  }
}

.values--editorial {
  counter-reset: v;
  gap: var(--space-7) var(--space-6);
}
.values--editorial .value-card {
  counter-increment: v;
  position: relative;
  background: transparent;
  border: 0;
  border-top: 2px solid var(--line-strong);
  border-radius: 0;
  box-shadow: none;
  padding: var(--space-5) 0 0;
  transition: border-color 0.4s var(--ease);
}
.values--editorial .value-card:hover {
  transform: none;
  box-shadow: none;
  border-top-color: var(--clay);
}
.values--editorial .value-card::before {
  content: counter(v, decimal-leading-zero);
  display: block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--fs-700);
  line-height: 0.9;
  letter-spacing: -0.03em;
  color: var(--clay);
  margin-bottom: var(--space-4);
}
.values--editorial .value-card__icon {
  position: absolute;
  top: var(--space-5);
  right: 0;
  width: 30px;
  height: 30px;
  margin: 0;
  background: transparent;
  color: var(--clay);
  opacity: 0.5;
  transition:
    opacity 0.3s ease,
    transform 0.4s var(--ease);
}
.values--editorial .value-card:hover .value-card__icon {
  opacity: 1;
  transform: translateY(-2px);
}
.values--editorial .value-card__icon svg {
  width: 28px;
  height: 28px;
}
.values--editorial .value-card h3 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--fs-600);
  letter-spacing: -0.01em;
  margin-bottom: var(--space-3);
}
.values--editorial .value-card p {
  font-size: var(--fs-400);
  color: var(--ink-soft);
}

.courses--editorial .grid {
  gap: var(--space-4);
}
.courses--editorial .course-card {
  min-height: 320px;
  border: 0;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  color: var(--cream);
}
.courses--editorial .course-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-lg);
}
.courses--editorial .course-card__media {
  position: absolute;
  inset: 0;
}
.courses--editorial .course-card__media .ph,
.courses--editorial .course-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s var(--ease);
}
.courses--editorial .course-card:hover .course-card__media .ph,
.courses--editorial .course-card:hover .course-card__media img {
  transform: scale(1.06);
}
.courses--editorial .course-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(23, 13, 10, 0.18) 0%,
    rgba(23, 13, 10, 0.12) 34%,
    rgba(23, 13, 10, 0.86) 100%
  );
}
.courses--editorial .course-card__body {
  position: relative;
  z-index: 1;
  padding: var(--space-6);
  gap: var(--space-2);
}
.courses--editorial .course-card__foot {
  margin-top: auto;
}
.courses--editorial .course-card__body h3 {
  color: var(--cream);
  font-size: var(--fs-600);
  letter-spacing: -0.01em;
}
.courses--editorial .course-card:first-child .course-card__body h3 {
  font-size: var(--fs-800);
}
.courses--editorial .course-card__body p {
  color: rgba(250, 245, 238, 0.85);
  font-size: var(--fs-300);
  max-width: 46ch;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.courses--editorial .course-card:not(:first-child) .course-card__body p {
  display: none;
}
.courses--editorial .link-arrow {
  color: var(--gold-soft);
}
.courses--editorial .link-arrow:hover {
  color: #fff;
}
@media (max-width: 619.98px) {
  .courses--editorial .grid {
    grid-template-columns: 1fr;
  }
}
@media (min-width: 620px) and (max-width: 899.98px) {
  .courses--editorial .grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .courses--editorial .course-card:first-child {
    grid-column: span 2;
  }
}
@media (min-width: 900px) {
  .courses--editorial .grid {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 224px;
  }
  .courses--editorial .course-card {
    min-height: 0;
  }
  .courses--editorial .course-card:first-child {
    grid-column: span 4;
    grid-row: span 2;
  }
  .courses--editorial .course-card:not(:first-child) {
    grid-column: span 2;
  }
}

.testimonial--feature {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  text-align: center;
}
.testimonial--feature::before {
  position: static;
  display: block;
  font-size: 5rem;
  line-height: 0.5;
  color: var(--gold);
  opacity: 0.55;
  margin-bottom: var(--space-5);
}
.testimonial--feature .testimonial__quote {
  font-size: clamp(1.55rem, 1rem + 2.5vw, 2.85rem);
  line-height: 1.3;
  font-style: italic;
  max-width: 24ch;
  margin-inline: auto;
}

/* --- Testimonials carousel ---------------------------------------------- */
.testi-carousel {
  margin-top: var(--space-7);
  position: relative;
}
.testi-carousel__viewport {
  overflow: hidden;
}
.testi-carousel__track {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
  transition: transform 0.5s var(--ease);
}
.testi-slide {
  flex: 0 0 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-4) var(--space-3) var(--space-2);
}
.testi-quote {
  margin: 0;
  max-width: 46ch;
  text-align: center;
}
.testi-quote::before {
  content: "\201C";
  display: block;
  font-family: var(--font-display);
  font-size: 4.5rem;
  line-height: 0.4;
  color: var(--accent);
  opacity: 0.55;
  margin-bottom: var(--space-4);
}
.testi-quote__text {
  font-family: var(--font-body);
  font-style: italic;
  font-size: clamp(1.15rem, 0.95rem + 1vw, 1.5rem);
  line-height: 1.55;
  color: var(--ink);
  margin: 0;
}
.testi-quote__name {
  margin-top: var(--space-5);
  font-family: var(--font-display);
  font-size: var(--fs-500);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--accent-ink);
}
.testi-quote__name::before {
  content: "- ";
}

.testi-carousel__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-4);
  margin-top: var(--space-6);
}
.testi-carousel__nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  padding: 0;
  border-radius: 50%;
  border: 2px solid var(--line-strong);
  background: var(--surface);
  color: var(--ink);
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    background-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s var(--ease);
}
.testi-carousel__nav:hover {
  border-color: var(--accent);
  color: var(--accent-ink);
  transform: translateY(-2px);
}
.testi-carousel__nav svg {
  width: 22px;
  height: 22px;
}
.testi-carousel__dots {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.testi-dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--line-strong);
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    transform 0.2s ease;
}
.testi-dot:hover {
  background: var(--ink-mute);
}
.testi-dot[aria-current="true"] {
  background: var(--accent);
  transform: scale(1.3);
}
.testi-carousel__nav:focus-visible,
.testi-dot:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .testi-carousel__track {
    transition: none;
  }
}
.testimonial--feature .testimonial__author {
  justify-content: center;
  margin-top: var(--space-6);
}

.gallery-strip .ph {
  transition:
    transform 0.5s var(--ease),
    box-shadow 0.5s var(--ease);
}
.gallery-strip .ph:hover {
  transform: scale(1.03);
  box-shadow: var(--shadow-lg);
  z-index: 2;
}

/* ====================== REDUCED MOTION ==================================== */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
  [data-reveal] {
    opacity: 1;
    transform: none;
  }
  .marquee__track {
    animation: none;
  }
  .page-hero__mark {
    display: none;
  }
}

.page-hero {
  overflow: hidden;
}
.page-hero > .container {
  position: relative;
  z-index: 1;
}
.page-hero__mark {
  position: absolute;
  right: -0.06em;
  bottom: -0.12em;
  margin: 0;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(7rem, 3rem + 20vw, 21rem);
  line-height: 0.78;
  letter-spacing: -0.05em;
  color: var(--clay);
  opacity: 0.06;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.page-hero--dark .page-hero__mark {
  color: var(--gold);
  opacity: 0.12;
}

.page-hero--editorial {
  padding-block: clamp(3rem, 1.8rem + 6vw, 6.5rem)
    clamp(2.5rem, 1.6rem + 4vw, 4.5rem);
}
.page-hero--editorial:not(.page-hero--dark) {
  background-color: var(--cream);
  background-image:
    radial-gradient(
      120% 130% at 100% 0%,
      rgba(217, 154, 43, 0.12),
      transparent 55%
    ),
    url("../assets/images/pattern.svg"),
    linear-gradient(180deg, var(--cream) 0%, var(--sand) 100%);
  background-repeat: no-repeat, repeat, no-repeat;
  background-position:
    center,
    top left,
    center;
  border-bottom: 1px solid var(--line);
}
.page-hero--editorial h1 {
  font-size: clamp(2.5rem, 1.4rem + 4.8vw, 4.6rem);
  letter-spacing: -0.03em;
}
.page-hero--editorial .lead {
  max-width: 60ch;
}
.page-hero--editorial .page-hero__inner {
  max-width: 66ch;
}

.surface-dark .stats--divided .stat + .stat {
  border-left-color: rgba(250, 245, 238, 0.16);
}
.surface-dark .stats--feature .stat__label {
  color: rgba(250, 245, 238, 0.62);
}
@media (max-width: 620px) {
  .surface-dark .stats--divided .stat + .stat {
    border: 0;
    padding-top: 0;
  }
}

.steps--editorial {
  gap: var(--space-6) var(--space-7);
}
.steps--editorial .step {
  background: transparent;
  border: 0;
  border-top: 2px solid var(--line-strong);
  border-radius: 0;
  box-shadow: none;
  padding: var(--space-5) 0 0;
  transition:
    opacity 0.7s var(--ease),
    transform 0.7s var(--ease),
    border-color 0.4s var(--ease);
}
.steps--editorial .step:hover {
  border-top-color: var(--clay);
}
.steps--editorial .step__n {
  width: auto;
  height: auto;
  margin-bottom: var(--space-3);
  background: transparent;
  border-radius: 0;
  font-size: var(--fs-800);
  line-height: 0.9;
  color: var(--clay);
}
.steps--editorial .step h3 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--fs-600);
  letter-spacing: -0.01em;
}
.steps--editorial .step p {
  font-size: var(--fs-400);
}

.timeline--editorial .timeline__year {
  font-size: clamp(1.9rem, 1.3rem + 2.2vw, 3rem);
  letter-spacing: -0.02em;
}
.timeline--editorial .timeline__item {
  padding-left: var(--space-8);
}
.timeline--editorial .timeline__dot {
  transition:
    transform 0.35s var(--ease),
    background-color 0.35s var(--ease);
}
.timeline--editorial .timeline__item:hover .timeline__dot {
  transform: scale(1.3);
}

.pull-up {
  position: relative;
  z-index: 2;
}
.pull-up.ph,
.pull-up .ph,
.pull-up img {
  box-shadow: var(--shadow-lg);
}
@media (min-width: 760px) {
  .pull-up {
    margin-top: calc(-1 * clamp(2.5rem, 6vw, 5.5rem));
  }
}

.hero {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.hero__inner {
  flex: 1;
  max-width: var(--container-wide);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: clamp(2.5rem, 7vh, 6rem);
}
.hero__inner--stack {
  justify-content: flex-end;
  align-items: flex-start;
  gap: var(--space-4);
}
.hero__inner--stack > * {
  margin: 0;
}

.hero__top {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  max-width: 46ch;
}
.hero .hero__title {
  font-family: var(--font-poster);
  font-weight: 400;
  text-transform: uppercase;
  font-size: clamp(2.7rem, 1rem + 8vw, 6.2rem);
  line-height: 0.9;
  letter-spacing: -0.005em;
  color: var(--yellow);
  margin: 0;
  max-width: 13ch;
  text-shadow: 0 2px 24px rgba(23, 13, 10, 0.4);
}
.hero__top .hero__copy {
  margin: 0;
  max-width: 48ch;
  color: rgba(250, 245, 238, 0.92);
}

.hero__bottom {
  align-self: flex-end;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--space-5);
  max-width: 44ch;
  text-align: right;
}
.hero__bottom .hero__free {
  margin: 0;
  padding: 0;
  border: 0;
  max-width: 34ch;
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--fs-600);
  line-height: 1.3;
  color: var(--cream);
}
.hero__bottom .hero__actions {
  justify-content: flex-end;
}

.btn--magenta {
  --btn-bg: var(--magenta);
  --btn-fg: var(--ink);
}
.btn--magenta:hover {
  background: var(--magenta-bright);
  color: var(--ink);
}

@media (max-width: 700px) {
  .hero__inner {
    justify-content: flex-end;
    gap: var(--space-7);
  }
  .hero__bottom {
    align-self: stretch;
    align-items: flex-start;
    text-align: left;
    max-width: 100%;
  }
  .hero__bottom .hero__actions {
    justify-content: flex-start;
  }
}

.accent-blue {
  --accent: var(--blue);
  --accent-ink: var(--blue);
}
.accent-green {
  --accent: var(--green);
  --accent-ink: var(--green);
}
.accent-magenta {
  --accent: #b98a00;
  --accent-ink: #8a6600;
}
.accent-orange {
  --accent: var(--clay);
  --accent-ink: var(--clay-deep);
}
.accent-yellow {
  --accent: #b98a00;
  --accent-ink: #8a6600;
}
.surface-dark,
.page-hero--dark {
  --accent: var(--gold);
  --accent-ink: var(--gold);
}

.eyebrow {
  color: var(--accent);
}
.link-arrow {
  color: var(--accent-ink);
}
.stat__num {
  color: var(--accent);
}
.news-card__date {
  color: var(--accent);
}
.team-card__role,
.profile__role {
  color: var(--accent);
}
.step__n {
  color: var(--accent);
}
.timeline__year {
  color: var(--accent);
}
.timeline__dot {
  background: var(--accent);
}
.page-hero__mark {
  color: var(--accent);
}
.values--editorial .value-card::before {
  color: var(--accent);
}
.values--editorial .value-card:hover {
  border-top-color: var(--accent);
}
.steps--editorial .step:hover {
  border-top-color: var(--accent);
}
.pullquote {
  border-left-color: var(--accent);
}
.surface-dark .eyebrow,
.surface-dark .stat__num,
.surface-dark .link-arrow {
  color: var(--accent);
}

h1,
h2,
h3 {
  font-weight: 400;
  letter-spacing: 0.01em;
}
h1 {
  letter-spacing: 0.005em;
}
.stat__num,
.timeline__year,
.price-card__now,
.price-card__name,
.step__n,
.journey__stop,
.profile__name {
  font-weight: 400;
  letter-spacing: 0.01em;
}

.testimonial__quote,
.testimonial--feature .testimonial__quote,
.pullquote p {
  font-family: var(--font-body);
  font-weight: 500;
  font-style: italic;
  letter-spacing: 0;
}
.hero__bottom .hero__free {
  font-family: var(--font-body);
  font-style: normal;
  font-weight: 700;
  font-size: var(--fs-500);
  line-height: 1.35;
}
.testimonial::before {
  font-family: var(--font-poster);
}

.hero {
  --accent: var(--yellow);
}
@media (min-width: 700px) and (max-height: 950px) {
  .hero {
    padding-block: calc(var(--header-h) + var(--space-3)) var(--space-6);
  }
  .hero__inner {
    gap: clamp(1.25rem, 3.5vh, 2.75rem);
  }
  .hero__top {
    gap: var(--space-3);
  }
  .hero .hero__title {
    font-size: clamp(2.4rem, 6.6vh, 4.8rem);
  }
  .hero__top .hero__copy {
    font-size: var(--fs-400);
  }
  .hero__bottom {
    gap: var(--space-4);
  }
  .hero__bottom .hero__free {
    font-size: var(--fs-400);
  }
}

.brand {
  gap: 0;
}
/* Badge lockup: square, so it is sized taller than the old horizontal wordmark
   while still clearing the 76px / 66px fixed header. */
.brand__logo {
  display: block;
  width: auto;
  height: clamp(40px, 4.4vw, 54px);
}
.brand__logo--white {
  display: none;
}

.site-header:not(.is-scrolled):not(.site-header--solid) .brand__logo--color {
  display: none;
}
.site-header:not(.is-scrolled):not(.site-header--solid) .brand__logo--white {
  display: block;
}
.footer__brand .brand__logo {
  height: 76px;
  margin-bottom: var(--space-4);
}
.drawer__head .brand__logo {
  height: 44px;
}

.marquee__item,
.values--editorial .value-card::before,
.steps--editorial .step__n,
.page-hero__mark,
.poster {
  font-family: var(--font-poster);
  font-weight: 400;
}
.poster {
  text-transform: uppercase;
  line-height: 0.92;
  letter-spacing: 0.01em;
}
.marquee__item {
  letter-spacing: 0.03em;
}

.stats--feature .stat:nth-child(4n + 1) .stat__num {
  color: var(--blue);
}
.stats--feature .stat:nth-child(4n + 2) .stat__num {
  color: #b98a00;
}
.stats--feature .stat:nth-child(4n + 3) .stat__num {
  color: var(--green);
}
.stats--feature .stat:nth-child(4n + 4) .stat__num {
  color: var(--orange);
}
.surface-dark .stats--feature .stat:nth-child(n) .stat__num {
  color: var(--yellow);
}
.surface-dark .stats--feature .stat__num {
  font-size: clamp(2.4rem, 1.5rem + 2.2vw, 3.6rem);
}
.surface-dark .stats--feature .stat__label {
  max-width: none;
}

.news-card {
  border-top: 5px solid var(--accent);
}
.news-card:nth-child(3n + 1) {
  border-top-color: var(--orange);
}
.news-card:nth-child(3n + 2) {
  border-top-color: var(--blue);
}
.news-card:nth-child(3n + 3) {
  border-top-color: var(--magenta);
}
.price-card:not(.price-card--featured) {
  border-top: 5px solid var(--accent);
}
.price-card:not(.price-card--featured):nth-child(4n + 1) {
  border-top-color: var(--blue);
}
.price-card:not(.price-card--featured):nth-child(4n + 2) {
  border-top-color: var(--magenta);
}
.price-card:not(.price-card--featured):nth-child(4n + 3) {
  border-top-color: var(--green);
}
.price-card:not(.price-card--featured):nth-child(4n + 4) {
  border-top-color: var(--orange);
}

.divider {
  --divider-bg: var(--green);
  --divider-mark: var(--yellow);
  /* colour showing between the scallops - matches the section above */
  --divider-gap: var(--bg);
  height: clamp(30px, 4.2vw, 44px);
  background: var(--divider-gap);
  position: relative;
  overflow: hidden;
}
/* The band itself: full semicircle scallops along the bottom edge. */
.divider::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--divider-bg);
  -webkit-mask:
    radial-gradient(circle at 50% 0, #000 7.5px, #0000 8px) 0 100% / 16px 8px
      repeat-x,
    linear-gradient(#000 0 0) 0 0 / 100% calc(100% - 8px) no-repeat;
  mask:
    radial-gradient(circle at 50% 0, #000 7.5px, #0000 8px) 0 100% / 16px 8px
      repeat-x,
    linear-gradient(#000 0 0) 0 0 / 100% calc(100% - 8px) no-repeat;
}
.surface-alt + .divider,
.page-hero--editorial:not(.page-hero--dark) + .divider {
  --divider-gap: var(--bg-alt);
}
.divider::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0 0 8px 0;
  background: var(--divider-mark);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 84'%3E%3Cg transform='translate(98 0)'%3E%3Cpath d='M20.445 2.44402C20.7107 1.39322 20.0742 0.326014 19.0234 0.0603429C17.9726 -0.205328 16.9054 0.431144 16.6398 1.48194L18.5424 1.96298L20.445 2.44402ZM28.6002 81.4445L26.9092 82.4405C27.3475 83.1846 28.2207 83.5548 29.0602 83.3524C29.8997 83.15 30.5083 82.4226 30.5593 81.5605L28.6002 81.4445ZM30.8083 44.1569L30.9317 42.1983C30.411 42.1655 29.8986 42.3414 29.5078 42.6871C29.1171 43.0329 28.8801 43.52 28.8493 44.0409L30.8083 44.1569ZM61.9631 46.1194L62.655 47.9559C63.5206 47.6298 64.041 46.7435 63.904 45.8287C63.767 44.9139 63.0097 44.2189 62.0865 44.1608L61.9631 46.1194ZM2.10665 54.7054L0.193282 55.1418L2.10665 54.7054ZM50.3044 33.0842C51.3697 32.8844 52.0714 31.8589 51.8717 30.7936C51.6719 29.7283 50.6464 29.0266 49.5811 29.2264L49.9428 31.1553L50.3044 33.0842ZM28.6002 81.4445L30.5593 81.5605L32.7674 44.2729L30.8083 44.1569L28.8493 44.0409L26.6412 81.3285L28.6002 81.4445ZM30.8083 44.1569L30.6849 46.1155L61.8398 48.078L61.9631 46.1194L62.0865 44.1608L30.9317 42.1983L30.8083 44.1569ZM61.9631 46.1194C61.2713 44.2829 61.2713 44.2829 61.271 44.283C61.2707 44.2831 61.2702 44.2833 61.2695 44.2836C61.268 44.2841 61.2657 44.285 61.2625 44.2862C61.2561 44.2886 61.2463 44.2923 61.2332 44.2972C61.2069 44.3071 61.1671 44.3219 61.1143 44.3416C61.0087 44.381 60.851 44.4396 60.6445 44.5156C60.2315 44.6678 59.6237 44.8901 58.8479 45.1687C57.2963 45.7262 55.0741 46.509 52.3976 47.4088C47.0401 49.2099 39.8819 51.4725 32.6459 53.3332C25.3796 55.2017 18.1569 56.6322 12.6274 56.8267C9.84641 56.9246 7.66762 56.7011 6.16993 56.176C4.7211 55.668 4.18615 54.9973 4.02002 54.269L2.10665 54.7054L0.193282 55.1418C0.760306 57.6278 2.64574 59.0996 4.87125 59.8799C7.04791 60.6431 9.79744 60.8537 12.7654 60.7493C18.734 60.5394 26.2921 59.0198 33.6234 57.1346C40.9849 55.2416 48.2409 52.9471 53.6483 51.1292C56.3542 50.2196 58.6021 49.4277 60.175 48.8626C60.9615 48.5801 61.5795 48.3542 62.0018 48.1985C62.2129 48.1207 62.3752 48.0604 62.4852 48.0194C62.5402 47.9989 62.5821 47.9832 62.6106 47.9726C62.6248 47.9673 62.6356 47.9632 62.643 47.9604C62.6467 47.959 62.6496 47.9579 62.6516 47.9572C62.6526 47.9568 62.6534 47.9565 62.6539 47.9563C62.6545 47.9561 62.655 47.9559 61.9631 46.1194ZM2.10665 54.7054L4.02002 54.269C3.77015 53.1735 4.00831 52.046 4.86827 50.7839C5.75656 49.4801 7.25539 48.1259 9.31713 46.7642C13.4352 44.0443 19.3195 41.6019 25.4521 39.5476C31.5536 37.5037 37.7692 35.8865 42.47 34.7788C44.8176 34.2257 46.7813 33.801 48.1562 33.5151C48.8435 33.3721 49.3833 33.2639 49.7499 33.1916C49.9332 33.1555 50.0733 33.1284 50.1668 33.1104C50.2135 33.1014 50.2486 33.0947 50.2717 33.0904C50.2832 33.0882 50.2918 33.0866 50.2972 33.0855C50.3 33.085 50.302 33.0846 50.3032 33.0844C50.3038 33.0843 50.3041 33.0842 50.3044 33.0842C50.3045 33.0842 50.3044 33.0842 49.9428 31.1553C49.5811 29.2264 49.5807 29.2265 49.58 29.2266C49.5795 29.2267 49.5787 29.2268 49.5777 29.227C49.5758 29.2274 49.5732 29.2279 49.5697 29.2285C49.5628 29.2298 49.5529 29.2317 49.5399 29.2342C49.514 29.2391 49.4759 29.2463 49.4262 29.2559C49.3268 29.275 49.1807 29.3033 48.9911 29.3407C48.6119 29.4154 48.0586 29.5263 47.3569 29.6723C45.9537 29.9642 43.9559 30.3962 41.5698 30.9584C36.8029 32.0816 30.4615 33.7302 24.2053 35.8259C17.9802 37.9112 11.7062 40.4825 7.15397 43.4891C4.88057 44.9906 2.91628 46.678 1.62458 48.5738C0.304534 50.5113 -0.354179 52.7416 0.193282 55.1418L2.10665 54.7054ZM18.5424 1.96298L16.6398 1.48194C11.0151 23.7287 13.5826 43.9541 17.5371 58.5891C19.5153 65.9103 21.8449 71.8492 23.6846 75.9662C24.6047 78.0254 25.4032 79.6308 25.9752 80.7277C26.2613 81.2762 26.4909 81.6977 26.6509 81.9854C26.7309 82.1293 26.7935 82.2397 26.8371 82.3158C26.8589 82.3539 26.876 82.3834 26.888 82.4042C26.8941 82.4146 26.8989 82.4229 26.9024 82.4289C26.9042 82.4319 26.9057 82.4344 26.9068 82.4363C26.9074 82.4373 26.908 82.4384 26.9083 82.4388C26.9088 82.4397 26.9092 82.4405 28.6002 81.4445C30.2912 80.4486 30.2915 80.4491 30.2917 80.4494C30.2917 80.4493 30.2918 80.4496 30.2918 80.4494C30.2916 80.4492 30.2912 80.4484 30.2904 80.4471C30.2888 80.4444 30.286 80.4396 30.2819 80.4326C30.2738 80.4187 30.2608 80.3961 30.243 80.3651C30.2075 80.303 30.153 80.2069 30.0811 80.0778C29.9375 79.8195 29.7246 79.4288 29.4554 78.9126C28.9168 77.8801 28.1533 76.346 27.2681 74.365C25.4971 70.4015 23.2423 64.6567 21.3262 57.5653C17.492 43.3752 15.0305 23.8598 20.445 2.44402L18.5424 1.96298Z' fill='%23000'/%3E%3Ccircle cx='28.1096' cy='23.5506' r='5.15158' stroke='%23000' stroke-width='3.92501'/%3E%3C/g%3E%3C/svg%3E")
    center / 68px 22px repeat-x;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 84'%3E%3Cg transform='translate(98 0)'%3E%3Cpath d='M20.445 2.44402C20.7107 1.39322 20.0742 0.326014 19.0234 0.0603429C17.9726 -0.205328 16.9054 0.431144 16.6398 1.48194L18.5424 1.96298L20.445 2.44402ZM28.6002 81.4445L26.9092 82.4405C27.3475 83.1846 28.2207 83.5548 29.0602 83.3524C29.8997 83.15 30.5083 82.4226 30.5593 81.5605L28.6002 81.4445ZM30.8083 44.1569L30.9317 42.1983C30.411 42.1655 29.8986 42.3414 29.5078 42.6871C29.1171 43.0329 28.8801 43.52 28.8493 44.0409L30.8083 44.1569ZM61.9631 46.1194L62.655 47.9559C63.5206 47.6298 64.041 46.7435 63.904 45.8287C63.767 44.9139 63.0097 44.2189 62.0865 44.1608L61.9631 46.1194ZM2.10665 54.7054L0.193282 55.1418L2.10665 54.7054ZM50.3044 33.0842C51.3697 32.8844 52.0714 31.8589 51.8717 30.7936C51.6719 29.7283 50.6464 29.0266 49.5811 29.2264L49.9428 31.1553L50.3044 33.0842ZM28.6002 81.4445L30.5593 81.5605L32.7674 44.2729L30.8083 44.1569L28.8493 44.0409L26.6412 81.3285L28.6002 81.4445ZM30.8083 44.1569L30.6849 46.1155L61.8398 48.078L61.9631 46.1194L62.0865 44.1608L30.9317 42.1983L30.8083 44.1569ZM61.9631 46.1194C61.2713 44.2829 61.2713 44.2829 61.271 44.283C61.2707 44.2831 61.2702 44.2833 61.2695 44.2836C61.268 44.2841 61.2657 44.285 61.2625 44.2862C61.2561 44.2886 61.2463 44.2923 61.2332 44.2972C61.2069 44.3071 61.1671 44.3219 61.1143 44.3416C61.0087 44.381 60.851 44.4396 60.6445 44.5156C60.2315 44.6678 59.6237 44.8901 58.8479 45.1687C57.2963 45.7262 55.0741 46.509 52.3976 47.4088C47.0401 49.2099 39.8819 51.4725 32.6459 53.3332C25.3796 55.2017 18.1569 56.6322 12.6274 56.8267C9.84641 56.9246 7.66762 56.7011 6.16993 56.176C4.7211 55.668 4.18615 54.9973 4.02002 54.269L2.10665 54.7054L0.193282 55.1418C0.760306 57.6278 2.64574 59.0996 4.87125 59.8799C7.04791 60.6431 9.79744 60.8537 12.7654 60.7493C18.734 60.5394 26.2921 59.0198 33.6234 57.1346C40.9849 55.2416 48.2409 52.9471 53.6483 51.1292C56.3542 50.2196 58.6021 49.4277 60.175 48.8626C60.9615 48.5801 61.5795 48.3542 62.0018 48.1985C62.2129 48.1207 62.3752 48.0604 62.4852 48.0194C62.5402 47.9989 62.5821 47.9832 62.6106 47.9726C62.6248 47.9673 62.6356 47.9632 62.643 47.9604C62.6467 47.959 62.6496 47.9579 62.6516 47.9572C62.6526 47.9568 62.6534 47.9565 62.6539 47.9563C62.6545 47.9561 62.655 47.9559 61.9631 46.1194ZM2.10665 54.7054L4.02002 54.269C3.77015 53.1735 4.00831 52.046 4.86827 50.7839C5.75656 49.4801 7.25539 48.1259 9.31713 46.7642C13.4352 44.0443 19.3195 41.6019 25.4521 39.5476C31.5536 37.5037 37.7692 35.8865 42.47 34.7788C44.8176 34.2257 46.7813 33.801 48.1562 33.5151C48.8435 33.3721 49.3833 33.2639 49.7499 33.1916C49.9332 33.1555 50.0733 33.1284 50.1668 33.1104C50.2135 33.1014 50.2486 33.0947 50.2717 33.0904C50.2832 33.0882 50.2918 33.0866 50.2972 33.0855C50.3 33.085 50.302 33.0846 50.3032 33.0844C50.3038 33.0843 50.3041 33.0842 50.3044 33.0842C50.3045 33.0842 50.3044 33.0842 49.9428 31.1553C49.5811 29.2264 49.5807 29.2265 49.58 29.2266C49.5795 29.2267 49.5787 29.2268 49.5777 29.227C49.5758 29.2274 49.5732 29.2279 49.5697 29.2285C49.5628 29.2298 49.5529 29.2317 49.5399 29.2342C49.514 29.2391 49.4759 29.2463 49.4262 29.2559C49.3268 29.275 49.1807 29.3033 48.9911 29.3407C48.6119 29.4154 48.0586 29.5263 47.3569 29.6723C45.9537 29.9642 43.9559 30.3962 41.5698 30.9584C36.8029 32.0816 30.4615 33.7302 24.2053 35.8259C17.9802 37.9112 11.7062 40.4825 7.15397 43.4891C4.88057 44.9906 2.91628 46.678 1.62458 48.5738C0.304534 50.5113 -0.354179 52.7416 0.193282 55.1418L2.10665 54.7054ZM18.5424 1.96298L16.6398 1.48194C11.0151 23.7287 13.5826 43.9541 17.5371 58.5891C19.5153 65.9103 21.8449 71.8492 23.6846 75.9662C24.6047 78.0254 25.4032 79.6308 25.9752 80.7277C26.2613 81.2762 26.4909 81.6977 26.6509 81.9854C26.7309 82.1293 26.7935 82.2397 26.8371 82.3158C26.8589 82.3539 26.876 82.3834 26.888 82.4042C26.8941 82.4146 26.8989 82.4229 26.9024 82.4289C26.9042 82.4319 26.9057 82.4344 26.9068 82.4363C26.9074 82.4373 26.908 82.4384 26.9083 82.4388C26.9088 82.4397 26.9092 82.4405 28.6002 81.4445C30.2912 80.4486 30.2915 80.4491 30.2917 80.4494C30.2917 80.4493 30.2918 80.4496 30.2918 80.4494C30.2916 80.4492 30.2912 80.4484 30.2904 80.4471C30.2888 80.4444 30.286 80.4396 30.2819 80.4326C30.2738 80.4187 30.2608 80.3961 30.243 80.3651C30.2075 80.303 30.153 80.2069 30.0811 80.0778C29.9375 79.8195 29.7246 79.4288 29.4554 78.9126C28.9168 77.8801 28.1533 76.346 27.2681 74.365C25.4971 70.4015 23.2423 64.6567 21.3262 57.5653C17.492 43.3752 15.0305 23.8598 20.445 2.44402L18.5424 1.96298Z' fill='%23000'/%3E%3Ccircle cx='28.1096' cy='23.5506' r='5.15158' stroke='%23000' stroke-width='3.92501'/%3E%3C/g%3E%3C/svg%3E")
    center / 68px 22px repeat-x;
}
.divider--green {
  --divider-bg: var(--green);
  --divider-mark: var(--yellow);
}
.divider--blue {
  --divider-bg: var(--blue);
  --divider-mark: var(--yellow);
}
.divider--magenta {
  --divider-bg: var(--magenta);
  --divider-mark: var(--blue);
}
.divider--orange {
  --divider-bg: var(--orange);
  --divider-mark: #fff4d6;
}
.divider--yellow {
  --divider-bg: var(--yellow);
  --divider-mark: var(--blue);
}
.divider--accent {
  --divider-bg: var(--accent);
  --divider-mark: #fff4d6;
}

.divider--flip {
  transform: scaleY(-1);
}

.stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-5) var(--space-6);
}
.stats .stat {
  flex: 0 1 auto;
  min-width: 120px;
}
.stats--feature {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6) var(--space-5);
}
.stats--feature .stat {
  min-width: 0;
}
.stats--feature.stats--divided .stat + .stat {
  border-left: 0;
  padding-left: 0;
}
@media (min-width: 820px) {
  .stats--feature {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .stats--feature.stats--divided .stat + .stat {
    border-left: 1px solid var(--line);
    padding-left: var(--space-6);
  }
  .surface-dark .stats--feature.stats--divided .stat + .stat {
    border-left-color: rgba(250, 245, 238, 0.16);
  }
}

.stat__num {
  overflow-wrap: anywhere;
}

.btn:not(.btn--secondary):not(.btn--ghost-light):not(.btn--gold) {
  --btn-bg: var(--magenta);
  --btn-fg: var(--ink);
}
.btn:not(.btn--secondary):not(.btn--ghost-light):not(
    .btn--gold
  )[href*="cursuri"],
.btn:not(.btn--secondary):not(.btn--ghost-light):not(
    .btn--gold
  )[href*="program"],
.btn:not(.btn--secondary):not(.btn--ghost-light):not(.btn--gold)[href*="grupe"],
.btn:not(.btn--secondary):not(.btn--ghost-light):not(.btn--gold)[href*="dans-"],
.btn:not(.btn--secondary):not(.btn--ghost-light):not(
    .btn--gold
  )[href*="galerie"],
.btn:not(.btn--secondary):not(.btn--ghost-light):not(
    .btn--gold
  )[href*="preturi"],
.btn:not(.btn--secondary):not(.btn--ghost-light):not(
    .btn--gold
  )[href*="palladium"] {
  --btn-bg: var(--blue);
  --btn-fg: #fff;
}
.btn:not(.btn--secondary):not(.btn--ghost-light):not(
    .btn--gold
  )[href*="despre"],
.btn:not(.btn--secondary):not(.btn--ghost-light):not(
    .btn--gold
  )[href*="povestea"],
.btn:not(.btn--secondary):not(.btn--ghost-light):not(
    .btn--gold
  )[href*="expertiza"],
.btn:not(.btn--secondary):not(.btn--ghost-light):not(
    .btn--gold
  )[href*="echipa"],
.btn:not(.btn--secondary):not(.btn--ghost-light):not(
    .btn--gold
  )[href*="noutati"] {
  --btn-bg: var(--green);
  --btn-fg: #fff;
}
.btn:not(.btn--secondary):not(.btn--ghost-light):not(
    .btn--gold
  )[href*="inscriere"] {
  --btn-bg: var(--magenta);
}
.btn:not(.btn--secondary):not(.btn--ghost-light):not(.btn--gold):hover {
  background: color-mix(in srgb, var(--btn-bg), #000 12%);
  color: var(--btn-fg);
}

.badge--incepatori {
  background: color-mix(in srgb, var(--blue) 16%, #fff);
  color: var(--blue);
}
.badge--intermediari {
  background: color-mix(in srgb, var(--green) 16%, #fff);
  color: var(--green);
}
.badge--avansati {
  background: var(--magenta);
  color: var(--ink);
}

.page-expertiza .timeline__item--milestone .timeline__year {
  color: var(--orange);
}
.page-expertiza .timeline__item--milestone .timeline__dot {
  background: var(--orange);
}

.timeline-section {
  position: relative;
  overflow: hidden;
}
.descend-mark {
  position: absolute;
  top: calc(var(--section-y) + 8rem);
  --descend-size: clamp(320px, 43vw, 670px);
  right: calc(var(--descend-size) / -2);
  width: var(--descend-size);
  aspect-ratio: 64 / 84;
  background: var(--orange);
  opacity: 0.18;
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2064%2084%22%3E%3Cpath%20d=%22M20.445%202.44402C20.7107%201.39322%2020.0742%200.326014%2019.0234%200.0603429C17.9726%20-0.205328%2016.9054%200.431144%2016.6398%201.48194L18.5424%201.96298L20.445%202.44402ZM28.6002%2081.4445L26.9092%2082.4405C27.3475%2083.1846%2028.2207%2083.5548%2029.0602%2083.3524C29.8997%2083.15%2030.5083%2082.4226%2030.5593%2081.5605L28.6002%2081.4445ZM30.8083%2044.1569L30.9317%2042.1983C30.411%2042.1655%2029.8986%2042.3414%2029.5078%2042.6871C29.1171%2043.0329%2028.8801%2043.52%2028.8493%2044.0409L30.8083%2044.1569ZM61.9631%2046.1194L62.655%2047.9559C63.5206%2047.6298%2064.041%2046.7435%2063.904%2045.8287C63.767%2044.9139%2063.0097%2044.2189%2062.0865%2044.1608L61.9631%2046.1194ZM2.10665%2054.7054L0.193282%2055.1418L2.10665%2054.7054ZM50.3044%2033.0842C51.3697%2032.8844%2052.0714%2031.8589%2051.8717%2030.7936C51.6719%2029.7283%2050.6464%2029.0266%2049.5811%2029.2264L49.9428%2031.1553L50.3044%2033.0842ZM28.6002%2081.4445L30.5593%2081.5605L32.7674%2044.2729L30.8083%2044.1569L28.8493%2044.0409L26.6412%2081.3285L28.6002%2081.4445ZM30.8083%2044.1569L30.6849%2046.1155L61.8398%2048.078L61.9631%2046.1194L62.0865%2044.1608L30.9317%2042.1983L30.8083%2044.1569ZM61.9631%2046.1194C61.2713%2044.2829%2061.2713%2044.2829%2061.271%2044.283C61.2707%2044.2831%2061.2702%2044.2833%2061.2695%2044.2836C61.268%2044.2841%2061.2657%2044.285%2061.2625%2044.2862C61.2561%2044.2886%2061.2463%2044.2923%2061.2332%2044.2972C61.2069%2044.3071%2061.1671%2044.3219%2061.1143%2044.3416C61.0087%2044.381%2060.851%2044.4396%2060.6445%2044.5156C60.2315%2044.6678%2059.6237%2044.8901%2058.8479%2045.1687C57.2963%2045.7262%2055.0741%2046.509%2052.3976%2047.4088C47.0401%2049.2099%2039.8819%2051.4725%2032.6459%2053.3332C25.3796%2055.2017%2018.1569%2056.6322%2012.6274%2056.8267C9.84641%2056.9246%207.66762%2056.7011%206.16993%2056.176C4.7211%2055.668%204.18615%2054.9973%204.02002%2054.269L2.10665%2054.7054L0.193282%2055.1418C0.760306%2057.6278%202.64574%2059.0996%204.87125%2059.8799C7.04791%2060.6431%209.79744%2060.8537%2012.7654%2060.7493C18.734%2060.5394%2026.2921%2059.0198%2033.6234%2057.1346C40.9849%2055.2416%2048.2409%2052.9471%2053.6483%2051.1292C56.3542%2050.2196%2058.6021%2049.4277%2060.175%2048.8626C60.9615%2048.5801%2061.5795%2048.3542%2062.0018%2048.1985C62.2129%2048.1207%2062.3752%2048.0604%2062.4852%2048.0194C62.5402%2047.9989%2062.5821%2047.9832%2062.6106%2047.9726C62.6248%2047.9673%2062.6356%2047.9632%2062.643%2047.9604C62.6467%2047.959%2062.6496%2047.9579%2062.6516%2047.9572C62.6526%2047.9568%2062.6534%2047.9565%2062.6539%2047.9563C62.6545%2047.9561%2062.655%2047.9559%2061.9631%2046.1194ZM2.10665%2054.7054L4.02002%2054.269C3.77015%2053.1735%204.00831%2052.046%204.86827%2050.7839C5.75656%2049.4801%207.25539%2048.1259%209.31713%2046.7642C13.4352%2044.0443%2019.3195%2041.6019%2025.4521%2039.5476C31.5536%2037.5037%2037.7692%2035.8865%2042.47%2034.7788C44.8176%2034.2257%2046.7813%2033.801%2048.1562%2033.5151C48.8435%2033.3721%2049.3833%2033.2639%2049.7499%2033.1916C49.9332%2033.1555%2050.0733%2033.1284%2050.1668%2033.1104C50.2135%2033.1014%2050.2486%2033.0947%2050.2717%2033.0904C50.2832%2033.0882%2050.2918%2033.0866%2050.2972%2033.0855C50.3%2033.085%2050.302%2033.0846%2050.3032%2033.0844C50.3038%2033.0843%2050.3041%2033.0842%2050.3044%2033.0842C50.3045%2033.0842%2050.3044%2033.0842%2049.9428%2031.1553C49.5811%2029.2264%2049.5807%2029.2265%2049.58%2029.2266C49.5795%2029.2267%2049.5787%2029.2268%2049.5777%2029.227C49.5758%2029.2274%2049.5732%2029.2279%2049.5697%2029.2285C49.5628%2029.2298%2049.5529%2029.2317%2049.5399%2029.2342C49.514%2029.2391%2049.4759%2029.2463%2049.4262%2029.2559C49.3268%2029.275%2049.1807%2029.3033%2048.9911%2029.3407C48.6119%2029.4154%2048.0586%2029.5263%2047.3569%2029.6723C45.9537%2029.9642%2043.9559%2030.3962%2041.5698%2030.9584C36.8029%2032.0816%2030.4615%2033.7302%2024.2053%2035.8259C17.9802%2037.9112%2011.7062%2040.4825%207.15397%2043.4891C4.88057%2044.9906%202.91628%2046.678%201.62458%2048.5738C0.304534%2050.5113%20-0.354179%2052.7416%200.193282%2055.1418L2.10665%2054.7054ZM18.5424%201.96298L16.6398%201.48194C11.0151%2023.7287%2013.5826%2043.9541%2017.5371%2058.5891C19.5153%2065.9103%2021.8449%2071.8492%2023.6846%2075.9662C24.6047%2078.0254%2025.4032%2079.6308%2025.9752%2080.7277C26.2613%2081.2762%2026.4909%2081.6977%2026.6509%2081.9854C26.7309%2082.1293%2026.7935%2082.2397%2026.8371%2082.3158C26.8589%2082.3539%2026.876%2082.3834%2026.888%2082.4042C26.8941%2082.4146%2026.8989%2082.4229%2026.9024%2082.4289C26.9042%2082.4319%2026.9057%2082.4344%2026.9068%2082.4363C26.9074%2082.4373%2026.908%2082.4384%2026.9083%2082.4388C26.9088%2082.4397%2026.9092%2082.4405%2028.6002%2081.4445C30.2912%2080.4486%2030.2915%2080.4491%2030.2917%2080.4494C30.2917%2080.4493%2030.2918%2080.4496%2030.2918%2080.4494C30.2916%2080.4492%2030.2912%2080.4484%2030.2904%2080.4471C30.2888%2080.4444%2030.286%2080.4396%2030.2819%2080.4326C30.2738%2080.4187%2030.2608%2080.3961%2030.243%2080.3651C30.2075%2080.303%2030.153%2080.2069%2030.0811%2080.0778C29.9375%2079.8195%2029.7246%2079.4288%2029.4554%2078.9126C28.9168%2077.8801%2028.1533%2076.346%2027.2681%2074.365C25.4971%2070.4015%2023.2423%2064.6567%2021.3262%2057.5653C17.492%2043.3752%2015.0305%2023.8598%2020.445%202.44402L18.5424%201.96298Z%22%20fill=%22%23000%22/%3E%3Ccircle%20cx=%2228.1096%22%20cy=%2223.5506%22%20r=%225.15158%22%20stroke=%22%23000%22%20stroke-width=%223.92501%22/%3E%3C/svg%3E")
    center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2064%2084%22%3E%3Cpath%20d=%22M20.445%202.44402C20.7107%201.39322%2020.0742%200.326014%2019.0234%200.0603429C17.9726%20-0.205328%2016.9054%200.431144%2016.6398%201.48194L18.5424%201.96298L20.445%202.44402ZM28.6002%2081.4445L26.9092%2082.4405C27.3475%2083.1846%2028.2207%2083.5548%2029.0602%2083.3524C29.8997%2083.15%2030.5083%2082.4226%2030.5593%2081.5605L28.6002%2081.4445ZM30.8083%2044.1569L30.9317%2042.1983C30.411%2042.1655%2029.8986%2042.3414%2029.5078%2042.6871C29.1171%2043.0329%2028.8801%2043.52%2028.8493%2044.0409L30.8083%2044.1569ZM61.9631%2046.1194L62.655%2047.9559C63.5206%2047.6298%2064.041%2046.7435%2063.904%2045.8287C63.767%2044.9139%2063.0097%2044.2189%2062.0865%2044.1608L61.9631%2046.1194ZM2.10665%2054.7054L0.193282%2055.1418L2.10665%2054.7054ZM50.3044%2033.0842C51.3697%2032.8844%2052.0714%2031.8589%2051.8717%2030.7936C51.6719%2029.7283%2050.6464%2029.0266%2049.5811%2029.2264L49.9428%2031.1553L50.3044%2033.0842ZM28.6002%2081.4445L30.5593%2081.5605L32.7674%2044.2729L30.8083%2044.1569L28.8493%2044.0409L26.6412%2081.3285L28.6002%2081.4445ZM30.8083%2044.1569L30.6849%2046.1155L61.8398%2048.078L61.9631%2046.1194L62.0865%2044.1608L30.9317%2042.1983L30.8083%2044.1569ZM61.9631%2046.1194C61.2713%2044.2829%2061.2713%2044.2829%2061.271%2044.283C61.2707%2044.2831%2061.2702%2044.2833%2061.2695%2044.2836C61.268%2044.2841%2061.2657%2044.285%2061.2625%2044.2862C61.2561%2044.2886%2061.2463%2044.2923%2061.2332%2044.2972C61.2069%2044.3071%2061.1671%2044.3219%2061.1143%2044.3416C61.0087%2044.381%2060.851%2044.4396%2060.6445%2044.5156C60.2315%2044.6678%2059.6237%2044.8901%2058.8479%2045.1687C57.2963%2045.7262%2055.0741%2046.509%2052.3976%2047.4088C47.0401%2049.2099%2039.8819%2051.4725%2032.6459%2053.3332C25.3796%2055.2017%2018.1569%2056.6322%2012.6274%2056.8267C9.84641%2056.9246%207.66762%2056.7011%206.16993%2056.176C4.7211%2055.668%204.18615%2054.9973%204.02002%2054.269L2.10665%2054.7054L0.193282%2055.1418C0.760306%2057.6278%202.64574%2059.0996%204.87125%2059.8799C7.04791%2060.6431%209.79744%2060.8537%2012.7654%2060.7493C18.734%2060.5394%2026.2921%2059.0198%2033.6234%2057.1346C40.9849%2055.2416%2048.2409%2052.9471%2053.6483%2051.1292C56.3542%2050.2196%2058.6021%2049.4277%2060.175%2048.8626C60.9615%2048.5801%2061.5795%2048.3542%2062.0018%2048.1985C62.2129%2048.1207%2062.3752%2048.0604%2062.4852%2048.0194C62.5402%2047.9989%2062.5821%2047.9832%2062.6106%2047.9726C62.6248%2047.9673%2062.6356%2047.9632%2062.643%2047.9604C62.6467%2047.959%2062.6496%2047.9579%2062.6516%2047.9572C62.6526%2047.9568%2062.6534%2047.9565%2062.6539%2047.9563C62.6545%2047.9561%2062.655%2047.9559%2061.9631%2046.1194ZM2.10665%2054.7054L4.02002%2054.269C3.77015%2053.1735%204.00831%2052.046%204.86827%2050.7839C5.75656%2049.4801%207.25539%2048.1259%209.31713%2046.7642C13.4352%2044.0443%2019.3195%2041.6019%2025.4521%2039.5476C31.5536%2037.5037%2037.7692%2035.8865%2042.47%2034.7788C44.8176%2034.2257%2046.7813%2033.801%2048.1562%2033.5151C48.8435%2033.3721%2049.3833%2033.2639%2049.7499%2033.1916C49.9332%2033.1555%2050.0733%2033.1284%2050.1668%2033.1104C50.2135%2033.1014%2050.2486%2033.0947%2050.2717%2033.0904C50.2832%2033.0882%2050.2918%2033.0866%2050.2972%2033.0855C50.3%2033.085%2050.302%2033.0846%2050.3032%2033.0844C50.3038%2033.0843%2050.3041%2033.0842%2050.3044%2033.0842C50.3045%2033.0842%2050.3044%2033.0842%2049.9428%2031.1553C49.5811%2029.2264%2049.5807%2029.2265%2049.58%2029.2266C49.5795%2029.2267%2049.5787%2029.2268%2049.5777%2029.227C49.5758%2029.2274%2049.5732%2029.2279%2049.5697%2029.2285C49.5628%2029.2298%2049.5529%2029.2317%2049.5399%2029.2342C49.514%2029.2391%2049.4759%2029.2463%2049.4262%2029.2559C49.3268%2029.275%2049.1807%2029.3033%2048.9911%2029.3407C48.6119%2029.4154%2048.0586%2029.5263%2047.3569%2029.6723C45.9537%2029.9642%2043.9559%2030.3962%2041.5698%2030.9584C36.8029%2032.0816%2030.4615%2033.7302%2024.2053%2035.8259C17.9802%2037.9112%2011.7062%2040.4825%207.15397%2043.4891C4.88057%2044.9906%202.91628%2046.678%201.62458%2048.5738C0.304534%2050.5113%20-0.354179%2052.7416%200.193282%2055.1418L2.10665%2054.7054ZM18.5424%201.96298L16.6398%201.48194C11.0151%2023.7287%2013.5826%2043.9541%2017.5371%2058.5891C19.5153%2065.9103%2021.8449%2071.8492%2023.6846%2075.9662C24.6047%2078.0254%2025.4032%2079.6308%2025.9752%2080.7277C26.2613%2081.2762%2026.4909%2081.6977%2026.6509%2081.9854C26.7309%2082.1293%2026.7935%2082.2397%2026.8371%2082.3158C26.8589%2082.3539%2026.876%2082.3834%2026.888%2082.4042C26.8941%2082.4146%2026.8989%2082.4229%2026.9024%2082.4289C26.9042%2082.4319%2026.9057%2082.4344%2026.9068%2082.4363C26.9074%2082.4373%2026.908%2082.4384%2026.9083%2082.4388C26.9088%2082.4397%2026.9092%2082.4405%2028.6002%2081.4445C30.2912%2080.4486%2030.2915%2080.4491%2030.2917%2080.4494C30.2917%2080.4493%2030.2918%2080.4496%2030.2918%2080.4494C30.2916%2080.4492%2030.2912%2080.4484%2030.2904%2080.4471C30.2888%2080.4444%2030.286%2080.4396%2030.2819%2080.4326C30.2738%2080.4187%2030.2608%2080.3961%2030.243%2080.3651C30.2075%2080.303%2030.153%2080.2069%2030.0811%2080.0778C29.9375%2079.8195%2029.7246%2079.4288%2029.4554%2078.9126C28.9168%2077.8801%2028.1533%2076.346%2027.2681%2074.365C25.4971%2070.4015%2023.2423%2064.6567%2021.3262%2057.5653C17.492%2043.3752%2015.0305%2023.8598%2020.445%202.44402L18.5424%201.96298Z%22%20fill=%22%23000%22/%3E%3Ccircle%20cx=%2228.1096%22%20cy=%2223.5506%22%20r=%225.15158%22%20stroke=%22%23000%22%20stroke-width=%223.92501%22/%3E%3C/svg%3E")
    center / contain no-repeat;
  pointer-events: none;
}
@media (max-width: 1100px) {
  .descend-mark {
    display: none;
  }
}

img.ratio-16-9,
img.ratio-4-3,
img.ratio-3-4,
img.ratio-1-1 {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.split__media img {
  border-radius: var(--radius);
}
.profile__media img {
  border-radius: var(--radius-lg);
}
.news-entry__media img {
  border-radius: var(--radius);
}
.container > img.ratio-16-9,
.container > img.ratio-4-3,
.container > img.ratio-3-4,
.container > img.ratio-1-1 {
  border-radius: var(--radius);
}
.gallery-strip img {
  border-radius: var(--radius);
  transition:
    transform 0.5s var(--ease),
    box-shadow 0.5s var(--ease);
}
.gallery-strip img:hover {
  position: relative;
  transform: scale(1.03);
  box-shadow: var(--shadow-lg);
  z-index: 2;
}

.hero__media .hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: none;
  transform: none;
}
.hero__media .hero__video--intro {
  z-index: 2;
  opacity: 1;
  transition: opacity 0.8s var(--ease);
}
.hero__media .hero__video--loop {
  z-index: 1;
}
.hero__media.is-looping .hero__video--intro {
  opacity: 0;
}

.hero__inner [data-reveal] {
  transition-delay: 1s;
}
.hero__inner [data-reveal-delay="1"] {
  transition-delay: 1.12s;
}
.hero__inner [data-reveal-delay="2"] {
  transition-delay: 1.24s;
}
.hero__inner [data-reveal-delay="3"] {
  transition-delay: 1.36s;
}
.hero__inner [data-reveal-delay="4"] {
  transition-delay: 1s;
}

.enroll {
  counter-reset: estep;
}

.container--enroll {
  max-width: 1040px;
}
.enroll__intro {
  max-width: 58ch;
  margin-bottom: var(--space-6);
  color: var(--ink-soft);
  font-size: var(--fs-300);
}
.enroll__intro .req {
  color: var(--accent-ink);
  font-weight: 800;
}
.enroll fieldset {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}
.enroll legend {
  padding: 0;
  width: 100%;
}

.enroll-step {
  counter-increment: estep;
  display: grid;
  grid-template-columns: minmax(150px, 205px) minmax(0, 1fr);
  gap: var(--space-4) var(--space-7);
  padding: var(--space-6) 0;
  border-top: 2px solid var(--line-strong);
  transition: border-color 0.45s var(--ease);
}

.enroll-step:focus-within {
  border-top-color: var(--accent);
}
.enroll-step__rail {
  position: sticky;
  top: calc(var(--header-h) + var(--space-5));
}
.enroll-step__n {
  display: block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(2.6rem, 1.8rem + 3vw, 4rem);
  line-height: 0.8;
  letter-spacing: -0.02em;
  color: var(--line-strong);
  margin-bottom: var(--space-3);
  transition: color 0.45s var(--ease);
}
.enroll-step__n::before {
  content: counter(estep, decimal-leading-zero);
}
.enroll-step:focus-within .enroll-step__n {
  color: var(--accent);
}
.enroll-step__title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--fs-600);
  letter-spacing: -0.01em;
  line-height: 1.02;
  color: var(--ink);
}
.enroll-step__note {
  margin-top: var(--space-3);
  font-size: var(--fs-200);
  color: var(--ink-mute);
  line-height: 1.5;
  max-width: 32ch;
}
.enroll-step__note a {
  color: var(--accent-ink);
  font-weight: 700;
}
@media (max-width: 820px) {
  .enroll-step {
    grid-template-columns: 1fr;
    gap: var(--space-4);
    padding: var(--space-6) 0;
  }
  .enroll-step__rail {
    position: static;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 0 var(--space-4);
  }
  .enroll-step__n {
    margin-bottom: 0;
    font-size: clamp(2.2rem, 1.6rem + 3vw, 3rem);
  }
  .enroll-step__note {
    grid-column: 1 / -1;
    margin-top: var(--space-2);
    max-width: none;
  }
}

/* --- Field body --- */
.enroll-step__body {
  min-width: 0;
}
.field {
  margin-bottom: var(--space-5);
  min-width: 0;
}
.field:last-child {
  margin-bottom: 0;
}
.field__label {
  display: block;
  font-weight: 700;
  font-size: var(--fs-300);
  color: var(--ink);
  margin-bottom: var(--space-2);
}
.field__req {
  color: var(--accent-ink);
  margin-left: 0.12em;
}
.field__opt {
  color: var(--ink-mute);
  font-weight: 500;
  font-size: var(--fs-200);
  margin-left: 0.4em;
}
.field__hint {
  display: block;
  font-size: var(--fs-200);
  color: var(--ink-mute);
  margin: calc(-1 * var(--space-1)) 0 var(--space-2);
  line-height: 1.45;
}

.field__control {
  width: 100%;
  padding: 0.9em 1.05em;
  font-family: var(--font-body);
  font-size: var(--fs-400);
  color: var(--ink);
  background: var(--surface);
  border: 1.5px solid var(--sand-deep);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
}
textarea.field__control {
  min-height: 118px;
  resize: vertical;
  line-height: 1.55;
}
.field__control::placeholder {
  color: var(--ink-mute);
  opacity: 0.7;
}
.field__control:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(17, 129, 76, 0.18); /* fallback */
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
}
select.field__control {
  padding-right: 2.6em;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a6b60' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1.05em center;
  background-size: 1.05em;
}

.form-row {
  display: grid;
  gap: var(--space-4);
}
@media (min-width: 560px) {
  .form-row--2 {
    grid-template-columns: 1fr 1fr;
  }
}

.pick-set {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
.pick {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 0.72em 1.2em;
  border-radius: var(--radius-pill);
  border: 2px solid var(--line-strong);
  background: var(--surface);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--fs-300);
  letter-spacing: 0.01em;
  color: var(--ink);
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    background-color 0.2s ease,
    color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s var(--ease);
}
.pick input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  margin: 0;
}

.pick::before {
  content: "";
  width: 0;
  height: 1.05em;
  flex: none;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E")
    center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E")
    center / contain no-repeat;
  transition:
    width 0.2s var(--ease),
    margin-right 0.2s var(--ease);
}
.pick:has(input:checked)::before {
  width: 1.05em;
  margin-right: 0.45em;
}
.pick:hover {
  border-color: var(--accent);
  transform: translateY(-1px);
}
.pick:has(input:focus-visible) {
  box-shadow: 0 0 0 3px rgba(17, 129, 76, 0.28); /* fallback */
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent);
}

.pick--go:has(input:checked) {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.pick-set--segment .pick {
  flex: 1 1 200px;
  justify-content: center;
}

.conditional {
  margin-top: var(--space-5);
  padding: var(--space-5);
  border: 1px dashed var(--sand-deep);
  border-radius: var(--radius);
  background: var(--cream-2); /* fallback */
  background: color-mix(in srgb, var(--accent) 4%, var(--cream-2));
}
.conditional__note {
  font-size: var(--fs-200);
  color: var(--ink-mute);
  margin-top: var(--space-3);
  line-height: 1.45;
}

.child-list {
  display: grid;
  gap: var(--space-4);
}
.child-row + .child-row {
  padding-top: var(--space-4);
  border-top: 1px dashed var(--sand-deep);
}
.child-row__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.child-row__num {
  font-family: var(--font-display);
  font-size: var(--fs-400);
  letter-spacing: 0.02em;
  color: var(--ink-soft);
}
.child-remove {
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
  padding: 0.32em 0.75em;
  border: 1.5px solid var(--sand-deep);
  border-radius: var(--radius-pill);
  background: var(--surface);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--fs-200);
  color: var(--ink-soft);
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    color 0.2s ease,
    background-color 0.2s ease;
}
.child-remove:hover {
  border-color: var(--clay);
  color: var(--clay-deep);
}
.child-remove span {
  font-size: 1.15em;
  line-height: 1;
}
.child-add {
  display: inline-flex;
  align-items: center;
  gap: 0.55em;
  margin-top: var(--space-4);
  padding: 0.62em 1.2em;
  border: 2px dashed var(--accent);
  border-radius: var(--radius-pill);
  background: transparent;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--fs-300);
  color: var(--accent-ink);
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}
.child-add:hover {
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  border-color: var(--accent-ink);
}
.child-add__plus {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.4em;
  height: 1.4em;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-weight: 800;
  line-height: 1;
}

.child-row__head[hidden],
.child-remove[hidden],
.child-add[hidden] {
  display: none;
}

.pick--incepator {
  border-color: #6f9dc4;
  color: #1e3a52;
}
.pick--incepator:has(input:checked) {
  background: #cfe0ef;
  border-color: #1e3a52;
  color: #1e3a52;
}
.pick--intermediar {
  border-color: #cf9a5c;
  color: #7a4415;
}
.pick--intermediar:has(input:checked) {
  background: #f3d9bd;
  border-color: #7a4415;
  color: #7a4415;
}
.pick--avansat {
  border-color: var(--clay);
  color: var(--clay-deep);
}
.pick--avansat:has(input:checked) {
  background: var(--clay);
  border-color: var(--clay);
  color: #fff;
}
.pick--incert {
  border-color: var(--line-strong);
  color: var(--ink-soft);
}
.pick--incert:has(input:checked) {
  background: var(--sand);
  border-color: var(--ink);
  color: var(--ink);
}

/* --- Footer: consent panel + submit ---------------------------------------*/
.enroll-foot {
  margin-top: var(--space-6);
  padding-top: var(--space-6);
  border-top: 2px solid var(--line-strong);
}
.consent-box {
  background: var(--sand);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: var(--space-4) var(--space-5);
  margin-bottom: var(--space-5);
}
.consent-box .field {
  margin: 0;
}
.consent-box .field + .field {
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--line);
}
.consent {
  display: flex;
  align-items: flex-start;
  gap: 0.8em;
  font-size: var(--fs-300);
  color: var(--ink-soft);
  line-height: 1.5;
  cursor: pointer;
}
.consent input {
  accent-color: var(--accent);
  width: 1.25em;
  height: 1.25em;
  flex: none;
  margin-top: 0.12em;
}
.consent a {
  color: var(--accent-ink);
  font-weight: 700;
}

/* Validation */
.field--invalid .field__control {
  border-color: var(--clay);
  box-shadow: 0 0 0 3px rgba(239, 73, 35, 0.14);
}
.field--invalid .pick {
  border-color: var(--clay);
}
.field--invalid .consent {
  color: var(--clay-deep);
}
.field__error {
  display: flex;
  align-items: center;
  gap: 0.45em;
  margin: var(--space-3) 0 0;
  font-size: var(--fs-200);
  font-weight: 700;
  color: var(--clay-deep);
  max-width: none;
}
.field__error::before {
  content: "";
  width: 1.05em;
  height: 1.05em;
  flex: none;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 3l9 16H3l9-16z' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M12 9v4M12 16v.5' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")
    center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 3l9 16H3l9-16z' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M12 9v4M12 16v.5' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")
    center / contain no-repeat;
}

/* Submit button states + spinner */
.btn[aria-disabled="true"],
.btn:disabled {
  opacity: 0.72;
  cursor: not-allowed;
}
.btn[aria-disabled="true"]:hover,
.btn:disabled:hover {
  transform: none;
  box-shadow: none;
  background: var(--btn-bg);
}
.btn__spinner {
  width: 1.15em;
  height: 1.15em;
  flex: none;
  border-radius: 50%;
  border: 2px solid currentColor;
  border-top-color: transparent;
  animation: btn-spin 0.7s linear infinite;
}
.btn:not(.is-loading) .btn__spinner {
  display: none;
}
@keyframes btn-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .btn__spinner {
    animation-duration: 2.4s;
  }
}

/* Error status banner */
.form-status {
  display: flex;
  gap: var(--space-3);
  align-items: flex-start;
  margin-top: var(--space-5);
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius);
  font-size: var(--fs-300);
  line-height: 1.5;
}
.form-status svg {
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: 2px;
}
.form-status a {
  font-weight: 700;
}
.form-status--error {
  background: #fdece8;
  border: 1px solid #f3b4a5;
  color: #7a2414;
}
.form-status--error a {
  color: #7a2414;
}

/* --- Success: an editorial moment, not a toast --------------------------- */
.form-success {
  position: relative;
  overflow: hidden;
  text-align: center;
  padding: clamp(2.5rem, 1.5rem + 5vw, 4.5rem) var(--gutter);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background:
    radial-gradient(
      120% 130% at 100% 0%,
      rgba(17, 129, 76, 0.1),
      transparent 55%
    ),
    repeating-linear-gradient(
      -45deg,
      transparent 0 22px,
      rgba(29, 21, 18, 0.022) 22px 23px
    ),
    linear-gradient(180deg, var(--cream) 0%, var(--sand) 100%);
  box-shadow: var(--shadow-sm);
}
.form-success:focus {
  outline: none;
}
/* Oversized dancing-man mark, faded - same device as the page-hero mark. */
.form-success__mark {
  position: absolute;
  right: -0.04em;
  bottom: -0.16em;
  width: clamp(115px, 24vw, 215px);
  aspect-ratio: 64 / 84;
  background: var(--green);
  -webkit-mask: var(--markmask) center / contain no-repeat;
  mask: var(--markmask) center / contain no-repeat;
  opacity: 0.08;
  pointer-events: none;
}
.form-success__inner {
  position: relative;
  z-index: 1;
}
.form-success .eyebrow {
  justify-content: center;
  margin-bottom: var(--space-4);
}
.form-success h2 {
  color: var(--ink);
  margin-bottom: var(--space-4);
}
.form-success__poster {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(1.7rem, 1.2rem + 2.4vw, 2.6rem);
  line-height: 1;
  letter-spacing: 0.01em;
  color: var(--green);
  margin-bottom: var(--space-5);
}
.form-success p {
  margin-inline: auto;
}

.form-success
  .btn:not(.btn--secondary):not(.btn--ghost-light):not(.btn--gold)[href] {
  --btn-bg: var(--magenta);
  --btn-fg: var(--ink);
}
.form-success
  .btn:not(.btn--secondary):not(.btn--ghost-light):not(.btn--gold)[href]:hover {
  background: color-mix(in srgb, var(--magenta), #000 12%);
  background: var(--magenta-bright);
}
