/* ==========================================================================
   pages/apply.css
   Styles used only by apply.html.
   ========================================================================== */

/* Page-specific rules */
@layer site {
  body {
    margin: 0;
    color: #1a1a1a;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.5;
    background-color: #f7f2ef;
  }

  .tl {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    margin-top: 8px;
  }

  .tl-i {
    position: relative;
    padding-top: 76px;
  }

  .tl-i:before {
    content: "";
    position: absolute;
    top: 50px;
    left: 0;
    right: -24px;
    height: 1px;
    background: #1a1a1a;
  }

  .tl-i:last-child:before {
    display: none;
  }

  .tl-i:after {
    content: "";
    position: absolute;
    top: 44px;
    left: 0;
    width: 13px;
    height: 13px;
    border: 1px solid #1a1a1a;
    background: #ececea;
    border-radius: 50%;
  }

  .tl-i:first-child:after,
  .tl-i:last-child:after {
    background: #1a1a1a;
  }

  .tl-k {
    display: block;
    color: #6a6a6a;
    margin-bottom: 8px;
  }

  .tl-i .text-sm {
    color: #1a1a1a;
  }

  .tlw .eyebrow,
  .tlw .heading,
  .tlw .tl-d,
  .tlw .tl-d .placeholder,
  .tlw .tl-k,
  .tlw .tl-i .text-sm {
    color: #ffffff;
  }

  .tlw .tl-i:before {
    background: #ffffff;
  }

  .tlw .tl-i:after {
    border-color: #ffffff;
    background: transparent;
  }

  .tlw .tl-i:first-child:after,
  .tlw .tl-i:last-child:after {
    background: #ffffff;
  }

  @media (max-width:900px) {
    .tl {
      grid-template-columns: minmax(0, 1fr);
      gap: 0;
    }

    .tl-i {
      padding: 0 0 32px 36px;
    }

    .tl-i:before {
      top: 6px;
      bottom: 0;
      left: 6px;
      right: auto;
      width: 1px;
      height: auto;
    }

    .tl-i:last-child:before {
      display: block;
      height: 6px;
    }

    .tl-i:after {
      top: 0;
      left: 0;
    }
  }

  .nav {
    position: fixed !important;
    top: 24px !important;
    left: 32px !important;
    right: 32px !important;
    z-index: 60 !important;
    margin: 0 !important;
    background: rgba(255, 255, 255, 0.6) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.5) !important;
    backdrop-filter: blur(18px) saturate(1.5) !important;
    border: 0 !important;
    border-radius: 10px !important;
    box-shadow: 0 10px 28px -10px rgba(0, 0, 0, 0.14) !important;
  }

  .nav .container {
    max-width: none !important;
    padding-left: 20px !important;
    padding-right: 10px !important;
  }

  .nav .logo {
    display: block !important;
    height: 20px !important;
    width: auto !important;
  }

  .nav .logo img {
    height: 20px !important;
    width: auto !important;
    display: block;
  }

  .nav-inner {
    min-height: 56px !important;
    padding: 6px 0 !important;
    gap: 40px;
    align-items: center;
  }

  .nav .btn {
    background: #ff2700 !important;
    color: #fff !important;
    border-radius: 999px !important;
    height: 32px !important;
    padding: 0 18px !important;
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    letter-spacing: 0.14em !important;
    text-transform: none !important;
    display: inline-flex !important;
    align-items: center;
    justify-self: end;
  }

  .nav .btn:hover {
    background: #D92100 !important;
  }

  .nav-links a.nav-link {
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: #010101 !important;
    text-decoration: none !important;
  }

  .nav-links a.nav-link:hover {
    color: #D92100 !important;
  }

  @media (min-width:901px) {
    .nav-inner {
      display: grid !important;
      grid-template-columns: 1fr auto 1fr;
    }

    .nav-links {
      justify-self: center !important;
      margin: 0 !important;
      display: flex !important;
      gap: 28px !important;
    }
  }

  @media (max-width:900px) {
    .nav {
      top: 12px !important;
      left: 12px !important;
      right: 12px !important;
    }

    .nav-inner {
      display: flex !important;
      justify-content: space-between;
    }
  }

  .v8 .ttl2.stat-n {
    font-family: Verdana, Geneva, sans-serif !important;
    font-weight: 700 !important;
    font-size: clamp(40px, 10vw, 64px) !important;
    line-height: 1.05 !important;
  }

  #what-you-get .text-sm {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  .v8.tlw .tl-i:after,
  .v8.tlw .tl-i:first-child:after,
  .v8.tlw .tl-i:last-child:after {
    background: #ffffff !important;
    border-color: #ffffff !important;
  }

  .v8.tlw .tl-i .text-sm {
    font-family: Verdana, Geneva, sans-serif !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  .v8 .card .text-sm {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  .v8 .ttl2.tile-t {
    font-size: 30px !important;
    line-height: 1.15 !important;
    font-family: "Maison Neue Mono", "Maison Neue Mono Bold", "Maison Neue", ui-monospace, Menlo, Consolas, monospace !important;
    font-weight: 700 !important;
  }

  /* Four cards in a row: "Understanding" must fit on one line at every
     desktop width, so the size follows the viewport (14 Nov 2026). */
  .v8 .who__card .ttl2.tile-t {
    font-size: 26px !important;
  }

  @media (min-width: 901px) {
    .v8 .who__card .ttl2.tile-t {
      font-size: clamp(19px, 1.85vw, 26px) !important;
    }
  }

  .v8 .eyebrow,
  #official-partners .eyebrow {
    color: var(--nv-black) !important;
  }

  .v8.tlw .eyebrow {
    color: #fff !important;
  }

  .text,
  .text-sm,
  .v8 .text-sm,
  .v8 .text,
  .tlw .tl-i .text-sm {
    font-size: 18px !important;
    line-height: 1.5 !important;
  }

  .eyebrow,
  .v8 .eyebrow,
  .tlw .eyebrow,
  .bg-dark .eyebrow {
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-family: "Maison Neue Mono", "Maison Neue Mono Bold", "Maison Neue", ui-monospace, Menlo, Consolas, monospace !important;
    font-weight: 700 !important;
    font-size: 12px !important;
  }

  .v8 .pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--nv-red);
    color: #fff;
    border-radius: 999px;
    font-family: "Maison Neue Mono", "Maison Neue Mono Bold", "Maison Neue", ui-monospace, Menlo, Consolas, monospace;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: .08em;
    padding: 6px 14px;
    text-transform: uppercase;
    text-decoration: none;
  }

  .v8 .card {
    background: #fff;
    border-radius: 24px;
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .v8 .ttl2 {
    font-family: Verdana, Geneva, sans-serif !important;
    font-weight: 700;
    font-size: 20px;
    line-height: 1.2;
    color: #202124;
    margin: 0;
  }

  .v8 .big {
    font-family: Verdana, Geneva, sans-serif !important;
    font-weight: 700;
    font-size: 44px;
    line-height: 1.15;
    letter-spacing: -.01em;
    color: #202124;
    margin: 0 0 24px;
  }

  .v8 .text-sm {
    font-size: 13px;
    line-height: 1.6;
    color: #6a6a6a;
  }

  .dealbox {
    position: relative;
    min-height: 0;
  }

  .dealbox .dl {
    position: static;
    opacity: 1;
    animation: none;
    margin-bottom: 0;
    padding: 24px 0;
    border-top: 1px solid var(--nv-text-black);
  }

  .dealbox .dl:last-child {
    margin-bottom: 0;
    border-bottom: 1px solid var(--nv-text-black);
  }

  .dealbox .dl:nth-child(2) {
    animation-delay: 4s;
  }

  .dealbox .dl:nth-child(3) {
    animation-delay: 8s;
  }

  @media (prefers-reduced-motion:reduce) {
    .dealbox {
      min-height: 0;
    }

    .dealbox .dl {
      position: static !important;
      opacity: 1 !important;
      animation: none !important;
      margin-bottom: 24px;
    }
  }

  .dealbox .dl .text {
    color: #4a4a4a !important;
  }

  @keyframes dealbar {
    0% {
      transform: scaleX(0);
    }
    33.3% {
      transform: scaleX(1);
    }
    33.4%,
    100% {
      transform: scaleX(0);
    }
  }

  .tlw .tl-d,
  .tlw .tl-d .placeholder,
  .tlw .tl-k,
  .tlw .tl-i .text-sm,
  .tlw .eyebrow,
  .tlw .heading {
    font-family: Verdana, Geneva, sans-serif !important;
  }

  .tlw .tl-k {
    font-family: "Maison Neue Mono", "Maison Neue Mono Bold", "Maison Neue", ui-monospace, Menlo, Consolas, monospace !important;
    font-size: 20px !important;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: none;
    font-weight: 700 !important;
  }

  .tlw .tl-i .text-sm {
    font-size: 13px;
    line-height: 1.6;
  }

  @media (max-width:900px) {
    .v8 .big {
      font-size: 30px;
    }

    .v8grid {
      grid-template-columns: minmax(0, 1fr) !important;
    }

    .herot {
      font-size: 34px !important;
    }
  }

  #what-you-get.wg-pin {
    height: calc(var(--bpvp, 800px) * 2) !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  #what-you-get.wg-pin > .container {
    position: sticky;
    top: 0;
    height: var(--bpvp, 800px);
    box-sizing: border-box;
    padding-top: 48px;
    padding-bottom: 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  #what-you-get.wg-pin > .container > div:first-of-type {
    margin-bottom: 36px !important;
  }

  #what-you-get.wg-on h2 .wv {
    --u: clamp(0, calc(var(--ou, 1) * 6 - var(--i)), 1);
    color: color-mix(in srgb, #010101 calc(var(--u) * 100%), #DDD2C8);
  }

  #what-you-get.wg-on .text {
    opacity: var(--pr, 1);
    transform: translate3d(0, calc((1 - var(--pr, 1)) * 18px), 0);
  }

  #what-you-get.wg-on .v8grid > div {
    opacity: var(--ce, 1);
    transform: translate3d(0, calc((1 - var(--ce, 1)) * 50px), 0);
    will-change: transform, opacity;
  }

  #what-you-get.wg-pin .v8grid {
    row-gap: 32px !important;
  }

  @media (max-width:900px) {
    main h2.who__big,
    main h2.what-you-get__big,
    main p.how-we-select__text,
    main p.what-you-get__text,
    main p.what-you-get__small {
      width: auto !important;
      max-width: 100% !important;
    }

    main div.who__box,
    main div.who__v8grid-2,
    main div.how-we-select__v8grid,
    main div.what-you-get__v8grid {
      margin-bottom: 32px;
    }
  }

  .v8 span.pill,
  #what-you-get span.what-you-get__span-2 {
    font-family: Verdana, Geneva, sans-serif !important;
  }
}

/* Element styles (outside the layers on purpose: they override shared rules,
   like the inline styles they replace) */
.page {
  padding-top: 109px;
}

.hero-section {
  padding: 0 0 56px;
}

.hero__inner {
  width: 100%;
  max-width: none;
  padding-left: 32px;
  padding-right: 32px;
}

.hero__box {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  aspect-ratio: 16/8;
  min-height: 420px;
  background: #202124;
  display: flex;
  align-items: flex-end;
}

.hero__video {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.hero__box-2 {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.45);
  z-index: 0;
  pointer-events: none;
}

.hero__box-3 {
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
  padding: 44px;
}

.hero__herot {
  font-family: 'Maison Neue Mono', 'Maison Neue Mono Bold', 'Maison Neue', ui-monospace, Menlo, Consolas, monospace !important;
  font-weight: 700;
  font-size: 56px;
  line-height: 1.08;
  letter-spacing: -.01em;
  color: #fff;
  margin: 0;
}

.hero__box-4 {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  text-align: right;
  flex-wrap: wrap;
  font-size: 16px;
}

.hero__meta {
  color: #fff;
  font-family: Verdana, Geneva, sans-serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  line-height: 1.3;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
  white-space: nowrap;
  max-width: none;
}

.hero__pill {
  padding: 10px 22px;
  font-family: Verdana, Geneva, sans-serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
}

.who {
  background-color: transparent;
}

.who__big {
  max-width: 900px;
  margin-bottom: 48px;
}

.who__span {
  font-weight: normal;
}

.who__v8grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 64px;
  align-items: start;
}

.who__text {
  max-width: 560px;
}

.who__text-2 {
  margin-bottom: 16px;
}

.who__box {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-self: end;
  align-items: end;
}

.who__box-2 {
  padding: 0;
  gap: 8px;
  display: flex;
  flex-direction: column;
}

.who__ttl2 {
  font-size: 64px;
}

.who__meta {
  color: #6a6a6a;
}

.who__meta-2 {
  color: #202124;
  margin: 56px 0 16px;
  font-weight: 700;
}

.who__v8grid-2 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.who__card {
  min-height: 240px;
  justify-content: flex-start;
}

.who__pill {
  font-family: Verdana, Geneva, sans-serif;
  align-self: flex-start;
  font-weight: 400;
}

.who__ttl2-2 {
  margin-top: 6px;
}

.who__small {
  font-size: 15px;
}

.how-we-select {
  background-color: transparent;
  padding-top: 40px;
}

.how-we-select__span {
  font-weight: normal;
}

.how-we-select__text {
  max-width: 640px;
  margin-bottom: 40px;
  font-weight: 400;
  font-size: 18px;
}

.how-we-select__v8grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.how-we-select__card {
  min-height: 300px;
  justify-content: flex-start;
}

.how-we-select__pill {
  font-family: Verdana, Geneva, sans-serif;
  align-self: flex-start;
  margin-top: 12px;
  font-weight: 400;
}

.how-we-select__ttl2 {
  margin-top: 6px;
}

.what-you-get {
  padding-top: 60px;
}

.what-you-get__label {
  text-align: center;
}

.what-you-get__box {
  text-align: center;
  max-width: 100%;
  margin: 0 auto 56px;
}

.what-you-get__big {
  margin: 0 auto 20px;
  font-weight: 400;
  font-size: 80px;
  width: 100%;
  max-width: 1100px;
  text-align: center;
}

.what-you-get__span {
  font-weight: normal;
}

.what-you-get__wv {
  --i: 0;
}

.what-you-get__wv-2 {
  --i: 1;
}

.what-you-get__wv-3 {
  --i: 2;
}

.what-you-get__wv-4 {
  --i: 3;
}

.what-you-get__wv-5 {
  --i: 4;
}

.what-you-get__text {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
  font-size: 18px;
}

.what-you-get__v8grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px 32px;
}

.what-you-get__box-2 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: 14px;
}

.what-you-get__span-2 {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--nv-red);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: Verdana, Geneva, sans-serif !important;
  font-weight: 400;
  font-size: 15px;
}

.what-you-get__text-2 {
  font-family: 'Maison Neue Mono', 'Maison Neue Mono Bold', 'Maison Neue', ui-monospace, Menlo, Consolas, monospace !important;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.2;
  color: #202124;
  margin: 0;
}

.what-you-get__small {
  max-width: 340px;
}

.timeline {
  padding: 40px 0 60px;
}

.timeline__inner {
  width: 100%;
  max-width: none;
  padding-left: 32px;
  padding-right: 32px;
}

.timeline__box {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  padding: 120px 48px;
  min-height: 720px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #202124;
}

.timeline__img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.timeline__box-2 {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  z-index: 0;
}

.timeline__box-3 {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
}

.timeline__title {
  margin-bottom: 56px;
  font-size: 44px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
}

.timeline__span {
  font-weight: normal;
}

.timeline__small {
  font-size: 15px;
}

.deal {
  padding-top: 60px;
  padding-bottom: 80px;
}

.deal__cols {
  align-items: center;
}

.deal__box {
  display: flex;
  flex-direction: column;
}

.deal__span {
  font-weight: normal;
}

.deal__ttl2 {
  font-size: 26px;
  margin: 0 0 10px;
  font-weight: 400;
}

.deal__text {
  font-size: 15px;
}

.deal__box-2 {
  height: 28px;
}

.deal__pill {
  padding: 14px 30px;
  font-family: Verdana, Geneva, sans-serif;
  font-weight: 400;
}

.deal__img {
  display: block;
  width: 100%;
  max-width: 460px;
  justify-self: end;
  aspect-ratio: 4/5;
  object-fit: cover;
  border-radius: 24px;
}

.apply {
  padding-top: 110px;
  padding-bottom: 110px;
  background-color: var(--nv-black);
  position: relative;
  overflow: hidden;
}

.apply__inner {
  text-align: center;
  position: relative;
  z-index: 1;
}

.apply__title {
  font-size: clamp(38px, 5vw, 56px) !important;
  margin-bottom: 28px;
}

.apply__text {
  margin-bottom: 28px;
}

.apply__button {
  background-color: var(--nv-red);
  color: var(--nv-white);
  font-weight: 700;
  border-radius: 999px;
}

.apply__span {
  font-weight: normal;
}

.official-partners {
  padding-top: 56px;
  padding-bottom: 56px;
  border-top: 1px solid #d0d0ce;
  background-color: var(--nv-cream);
}

.official-partners__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
}

.official-partners__label {
  margin: 0;
  color: var(--nv-text-gray);
}

.official-partners__box {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px 48px;
}

.official-partners__img {
  height: 18px;
  width: auto;
  flex: none;
  display: block;
}

.official-partners__img-2 {
  height: 24px;
  width: auto;
  flex: none;
  display: block;
}

.official-partners__img-3 {
  height: 14px;
  width: auto;
  flex: none;
  display: block;
}

.official-partners__img-4 {
  height: 32px;
  width: auto;
  flex: none;
  display: block;
}

.official-partners__img-5 {
  height: 26px;
  width: auto;
  flex: none;
  display: block;
}

.official-partners__img-6 {
  height: 13px;
  width: auto;
  flex: none;
  display: block;
}

.official-partners__img-7 {
  height: 18px;
  width: auto;
  flex: none;
  display: block;
}

/* ==========================================================================
   Mobile (written by hand: the design was drawn for desktop only).
   Outside the layer like the element styles above, so it overrides them.
   ========================================================================== */

/* the hero box keeps the container width: with only aspect-ratio + min-height
   it grew to 840px on phones and made the page scroll sideways */
.hero__box {
  width: 100%;
}

@media (max-width: 900px) {
  /* hero: box as tall as its content, title / date / button stacked */
  .hero__inner,
  .timeline__inner {
    padding-left: 12px;
    padding-right: 12px;
  }

  .hero__box {
    aspect-ratio: auto;
    min-height: 460px;
    border-radius: 20px;
  }

  .hero__box-3 {
    flex-direction: column;
    align-items: flex-start;
    padding: 28px 24px;
  }

  .hero__box-4 {
    justify-content: flex-start;
    text-align: left;
  }

  .hero__meta {
    white-space: normal;
    font-size: 13px !important;
  }

  /* figures 18+ / 20 / €0: space from the text above */
  .who__box {
    margin-top: 32px;
  }

  /* "Equity-free. No tuition. Fully funded." */
  .what-you-get__big {
    font-size: 40px;
  }

  /* timeline: less padding inside the photo box */
  .timeline__box {
    min-height: 0;
    padding: 56px 24px;
    border-radius: 20px;
  }

  .timeline__title {
    font-size: 32px;
    margin-bottom: 40px;
  }

  /* "The deal": space between the button and the photo */
  .deal__img {
    margin-top: 40px;
    max-width: none;
  }
}
