.key-figures {
  background: #171918;
  color: #fff;
  display: grid;
  grid-template-columns: 1.4fr .6fr .6fr;
  gap: 4vw;
  padding: 92px 9vw;
  align-items: end;
}

.key-figures h2,
.territory h2,
.projects h2 {
  font-family: Manrope, sans-serif;
  font-size: clamp(2.35rem, 4vw, 4.2rem);
  font-weight: 400;
  letter-spacing: -.04em;
  line-height: 1.08;
  margin: 20px 0 0;
}

.figure {
  border-left: 1px solid #159bd3;
  padding-left: 26px;
  display: flex;
  flex-direction: column;
}

.figure strong {
  font: 400 clamp(3.8rem, 6vw, 6.4rem) Manrope, sans-serif;
  letter-spacing: -.07em;
  line-height: 1;
}

.figure sup {
  color: #159bd3;
  font-size: .42em;
  margin-left: 4px;
  vertical-align: super;
}

.figure span {
  color: rgba(255,255,255,.58);
  font-size: .74rem;
  letter-spacing: .13em;
  line-height: 1.55;
  margin-top: 18px;
  text-transform: uppercase;
}

.territory {
  background: #159bd3;
  color: white;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 10vw;
  padding: 110px 9vw;
}

.territory .kicker {
  color: #151716;
}

.territory > p {
  align-self: end;
  color: rgba(255,255,255,.84);
  font-size: 1.1rem;
  line-height: 1.8;
  margin: 0 0 7px;
}

.projects {
  padding: 120px 9vw 135px;
}

.projects-heading {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 58px;
}

.projects-heading .kicker {
  grid-column: 1 / -1;
}

.projects-heading > p:last-child {
  align-self: end;
  color: #6b6e6b;
  line-height: 1.7;
  margin: 0 0 8px;
}

.project-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.project-visual {
  aspect-ratio: 4 / 5;
  background: #242725;
  color: white;
  overflow: hidden;
  padding: 24px;
  position: relative;
}

.project-house {
  background: linear-gradient(135deg, #2b2e2c 0 52%, #1c1e1d 52%);
}

.project-land {
  background: linear-gradient(25deg, #1d201e 0 35%, #2d312e 35% 62%, #202321 62%);
}

.project-plan {
  aspect-ratio: 4 / 3;
  background: #fff;
  border: 1px solid #d9dcd9;
  display: block;
  padding: 0;
  text-decoration: none;
}

.project-plan-house {
  aspect-ratio: 4 / 5;
}

.project-plan img {
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.project-plan .project-plan-link {
  background: rgba(24, 27, 25, .88);
  bottom: 0;
  color: #fff;
  font-size: .78rem;
  left: 0;
  letter-spacing: .02em;
  padding: 10px 14px;
  position: absolute;
  right: 0;
  text-align: right;
}

.project-plan:focus-visible {
  outline: 3px solid #159bd3;
  outline-offset: 3px;
}

.project-building {
  background: linear-gradient(90deg, #202321 0 32%, #2d302e 32% 68%, #1b1d1c 68%);
}

.project-visual span {
  color: #159bd3;
  font-size: .72rem;
  letter-spacing: .15em;
  position: relative;
  z-index: 2;
}

.project-visual b {
  bottom: 13px;
  color: rgba(255,255,255,.06);
  font: 500 8rem Manrope, sans-serif;
  letter-spacing: -.09em;
  position: absolute;
  right: 18px;
}

.project-card > p {
  color: #159bd3;
  font-size: .71rem;
  letter-spacing: .14em;
  margin: 23px 0 9px;
  text-transform: uppercase;
}

.project-status {
  background: #159bd3;
  color: #fff;
  display: inline-block;
  font-size: .68rem;
  letter-spacing: .12em;
  margin-top: 18px;
  padding: 7px 10px;
  text-transform: uppercase;
}

.project-status + p {
  margin-top: 12px;
}

.project-card h3 {
  font-size: 1.35rem;
  font-weight: 500;
  margin: 0 0 10px;
}

.project-card small {
  color: #767976;
  font-size: .78rem;
}

.investors {
  background: #171918;
  color: #fff;
  padding: 120px 9vw 105px;
}

.investors-heading {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 8vw;
  margin-bottom: 70px;
}

.investors-heading .kicker {
  grid-column: 1 / -1;
  margin-bottom: -2.5rem;
}

.investors-heading h2 {
  font-family: Manrope, sans-serif;
  font-size: clamp(2.65rem, 4.7vw, 5rem);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: 1.02;
  margin: 0;
}

.investors-heading > p:last-child {
  align-self: end;
  color: rgba(255,255,255,.65);
  font-size: 1.05rem;
  line-height: 1.8;
  margin: 0 0 4px;
}

.investor-track {
  border-bottom: 1px solid rgba(255,255,255,.16);
  border-top: 1px solid rgba(255,255,255,.16);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 85px;
}

.investor-track > div {
  border-right: 1px solid rgba(255,255,255,.16);
  display: flex;
  flex-direction: column;
  min-height: 205px;
  padding: 34px 26px 28px;
}

.investor-track > div:last-child {
  border-right: 0;
}

.investor-track strong {
  color: #fff;
  font: 400 clamp(3.5rem, 5.4vw, 6.4rem) Manrope, sans-serif;
  letter-spacing: -.07em;
  line-height: 1;
}

.investor-track sup {
  color: #159bd3;
  font-size: .4em;
  margin-left: 4px;
  vertical-align: super;
}

.investor-track span {
  color: rgba(255,255,255,.55);
  font-size: .72rem;
  letter-spacing: .12em;
  line-height: 1.55;
  margin-top: auto;
  text-transform: uppercase;
}

.investor-model {
  display: grid;
  gap: 7vw;
  grid-template-columns: 1fr 1fr;
}

.model-copy h3,
.investor-cta h3 {
  font-family: Manrope, sans-serif;
  font-size: clamp(2rem, 3.2vw, 3.35rem);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1.1;
  margin: 20px 0 25px;
}

.model-copy > p:not(.kicker) {
  color: rgba(255,255,255,.62);
  line-height: 1.8;
}

.model-copy dl {
  border-top: 1px solid rgba(255,255,255,.16);
  margin: 35px 0 0;
}

.model-copy dl div {
  border-bottom: 1px solid rgba(255,255,255,.16);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  padding: 18px 0;
}

.model-copy dt {
  color: rgba(255,255,255,.55);
}

.model-copy dd {
  color: #fff;
  font-weight: 600;
  margin: 0;
  text-align: right;
}

.investment-options {
  display: grid;
  gap: 16px;
}

.investment-options article {
  background: #f2f4f5;
  color: #171918;
  padding: 35px 38px 32px;
}

.investment-options article:first-child {
  border-top: 6px solid #159bd3;
}

.investment-options article:last-child {
  background: #159bd3;
  color: #fff;
}

.investment-options span,
.investor-process span {
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.investment-options h3 {
  font-family: Manrope, sans-serif;
  font-size: 1.55rem;
  font-weight: 500;
  margin: 28px 0 10px;
}

.investment-options p {
  color: #626663;
  line-height: 1.65;
  margin: 0;
}

.investment-options article:last-child p {
  color: rgba(255,255,255,.8);
}

.investor-process {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 85px;
}

.investor-process > div {
  background: #222523;
  padding: 30px;
}

.investor-process span {
  color: #159bd3;
}

.investor-process h3 {
  font-size: 1.05rem;
  font-weight: 500;
  margin: 32px 0 10px;
}

.investor-process p {
  color: rgba(255,255,255,.53);
  font-size: .9rem;
  line-height: 1.65;
  margin: 0;
}

.investor-cta {
  align-items: center;
  border-top: 1px solid rgba(255,255,255,.16);
  display: flex;
  justify-content: space-between;
  margin-top: 70px;
  padding-top: 55px;
}

.investor-cta h3 {
  margin-bottom: 0;
  max-width: 720px;
}

.investor-cta .button {
  flex: 0 0 auto;
  margin: 0 0 0 40px;
}

.investor-note {
  color: rgba(255,255,255,.36);
  font-size: .72rem;
  line-height: 1.6;
  margin: 45px 0 0;
  max-width: 930px;
}

.team {
  background: #f7f5f0;
  padding: 125px 9vw 135px;
}

.team-heading {
  display: grid;
  gap: 8vw;
  grid-template-columns: 1.25fr .75fr;
  margin-bottom: 60px;
}

.team-heading h2 {
  font-family: Manrope, sans-serif;
  font-size: clamp(2.5rem, 4.4vw, 4.6rem);
  font-weight: 400;
  letter-spacing: -.04em;
  line-height: 1.06;
  margin: 20px 0 0;
}

.team-heading > p {
  align-self: end;
  color: #656965;
  font-size: 1.05rem;
  line-height: 1.8;
  margin: 0 0 6px;
}

.team-grid {
  display: grid;
  gap: 22px;
  grid-template-columns: repeat(3, 1fr);
}

.team-card img {
  aspect-ratio: 4 / 5;
  display: block;
  filter: saturate(.88) contrast(1.02);
  object-fit: cover;
  width: 100%;
}

.team-card > p {
  color: #159bd3;
  font-size: .7rem;
  letter-spacing: .15em;
  margin: 24px 0 10px;
  text-transform: uppercase;
}

.team-card h3 {
  font-family: Manrope, sans-serif;
  font-size: 1.45rem;
  font-weight: 500;
  margin: 0 0 14px;
}

.team-card > span {
  color: #686c68;
  display: block;
  line-height: 1.7;
}

.group-structure {
  background: #e7e4dd;
  padding: 120px 9vw 130px;
}

.group-heading {
  display: grid;
  gap: 7vw;
  grid-template-columns: 1.2fr .8fr;
  margin-bottom: 72px;
}

.group-heading h2 {
  font-family: Manrope, sans-serif;
  font-size: clamp(2.5rem, 4.2vw, 4.5rem);
  font-weight: 400;
  letter-spacing: -.04em;
  line-height: 1.06;
  margin: 20px 0 0;
}

.group-heading > p {
  align-self: end;
  color: #626662;
  font-size: 1.05rem;
  line-height: 1.8;
  margin: 0 0 5px;
}

.group-chart {
  margin: 0 auto;
  max-width: 1040px;
}

.group-card {
  align-items: center;
  background: #f9f8f4;
  display: grid;
  gap: 35px;
  grid-template-columns: minmax(180px, .7fr) 1.3fr;
  min-height: 245px;
  padding: 34px 40px;
}

.group-card--holding {
  margin: 0 auto;
  max-width: 650px;
}

.group-card--sp2i p {
  color: #ed2b2f;
}

.group-card img {
  display: block;
  max-height: 145px;
  object-fit: contain;
  width: 100%;
}

.group-card p {
  color: #159bd3;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .15em;
  margin: 0 0 12px;
  text-transform: uppercase;
}

.group-card h3 {
  font-family: Manrope, sans-serif;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.25;
  margin: 0 0 13px;
}

.group-card span {
  color: #686c68;
  line-height: 1.65;
}

.group-card--dark {
  background: #151a1c;
  color: #f7f5f0;
}

.group-card--dark span {
  color: rgba(255,255,255,.62);
}

.group-connector {
  height: 70px;
  margin: 0 auto;
  position: relative;
  width: 50%;
}

.group-connector::before {
  background: #159bd3;
  content: "";
  height: 100%;
  left: 50%;
  position: absolute;
  top: 0;
  width: 1px;
}

.group-connector::after {
  background: #159bd3;
  bottom: 0;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  width: 100%;
}

.group-subsidiaries {
  display: grid;
  gap: 28px;
  grid-template-columns: repeat(2, 1fr);
  position: relative;
}

.group-subsidiaries::before,
.group-subsidiaries::after {
  background: #159bd3;
  content: "";
  height: 22px;
  position: absolute;
  top: -22px;
  width: 1px;
}

.group-subsidiaries::before { left: 25%; }
.group-subsidiaries::after { right: 25%; }

.partners {
  background: #eeeae2;
  padding: 115px 9vw 125px;
}

.partners-heading {
  display: grid;
  gap: 7vw;
  grid-template-columns: 1.15fr .85fr;
  margin-bottom: 55px;
}

.partners-heading .kicker {
  grid-column: 1 / -1;
  margin-bottom: -2rem;
}

.partners-heading h2 {
  font-family: Manrope, sans-serif;
  font-size: clamp(2.5rem, 4.2vw, 4.5rem);
  font-weight: 400;
  letter-spacing: -.04em;
  line-height: 1.06;
  margin: 0;
}

.partners-heading > p:last-child {
  align-self: end;
  color: #626662;
  font-size: 1.05rem;
  line-height: 1.8;
  margin: 0 0 5px;
}

.partners-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(6, 1fr);
}

.partners-grid article {
  background: #f7f5f0;
  border-top: 4px solid #159bd3;
  grid-column: span 2;
  min-height: 235px;
  padding: 30px 28px;
}

.partners-grid article:nth-child(4) {
  grid-column: 2 / span 2;
}

.partners-grid article:nth-child(5) {
  grid-column: 4 / span 2;
}

.partners-grid span {
  color: #159bd3;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.partners-grid h3 {
  font-family: Manrope, sans-serif;
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.25;
  margin: 38px 0 14px;
}

.partners-grid p {
  color: #696d69;
  line-height: 1.65;
  margin: 0;
}

.partner-contact {
  border-top: 1px solid #d8d3ca;
  display: flex;
  flex-direction: column;
  font-size: .82rem;
  font-style: normal;
  gap: 7px;
  line-height: 1.5;
  margin-top: 24px;
  padding-top: 18px;
}

.partner-contact > span {
  color: #6a6e6a;
  font-size: .82rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

.partner-contact strong {
  color: #171918;
  font-size: .82rem;
  font-weight: 600;
}

.partner-contact a {
  color: #171918;
  overflow-wrap: anywhere;
  width: fit-content;
}

.partner-contact a:last-of-type {
  border-bottom: 1px solid #159bd3;
  font-weight: 600;
  margin-top: 3px;
  padding-bottom: 3px;
}

.partner-contact small {
  color: #8a8d8a;
  font-size: .74rem;
  margin-top: 3px;
}

.recruitment {
  background: #159bd3;
  color: #fff;
  display: grid;
  gap: 10vw;
  grid-template-columns: 1fr 1fr;
  padding: 105px 9vw 110px;
}

.recruitment .kicker {
  color: #171918;
}

.recruitment h2 {
  font-family: Manrope, sans-serif;
  font-size: clamp(2.5rem, 4.4vw, 4.7rem);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: 1.05;
  margin: 22px 0 0;
}

.recruitment-copy {
  align-self: end;
}

.recruitment-copy p {
  color: rgba(255,255,255,.86);
  font-size: 1.05rem;
  line-height: 1.75;
  margin: 0 0 18px;
}

.recruitment-copy p + p {
  color: #fff;
  font-weight: 500;
}

.recruitment-button {
  border-color: rgba(23,25,24,.55);
  color: #171918;
  margin-top: 18px;
}

.recruitment-button span {
  color: #171918;
}

.recruitment-button:hover {
  background: #171918;
  color: #fff;
}

@media (max-width: 800px) {
  .key-figures,
  .territory,
  .projects-heading {
    grid-template-columns: 1fr;
  }

  .key-figures,
  .territory,
  .projects {
    padding: 78px 6vw;
  }

  .investors {
    padding: 82px 6vw 72px;
  }

  .key-figures {
    gap: 44px;
  }

  .figure {
    padding-left: 20px;
  }

  .projects-heading {
    gap: 20px;
  }

  .project-grid {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .project-visual {
    aspect-ratio: 5 / 4;
  }

  .project-plan {
    aspect-ratio: 2 / 1;
  }

  .project-plan-house {
    aspect-ratio: 4 / 5;
  }

  .investors-heading,
  .investor-model {
    grid-template-columns: 1fr;
  }

  .investors-heading {
    gap: 26px;
    margin-bottom: 50px;
  }

  .investors-heading .kicker {
    grid-column: auto;
    margin-bottom: 0;
  }

  .investor-track {
    grid-template-columns: 1fr 1fr;
    margin-bottom: 65px;
  }

  .investor-track > div {
    border-bottom: 1px solid rgba(255,255,255,.16);
    min-height: 170px;
    padding: 25px 18px;
  }

  .investor-track > div:nth-child(2) {
    border-right: 0;
  }

  .investor-track > div:nth-child(3),
  .investor-track > div:nth-child(4) {
    border-bottom: 0;
  }

  .investor-process {
    grid-template-columns: 1fr;
    margin-top: 60px;
  }

  .investor-cta {
    align-items: flex-start;
    flex-direction: column;
  }

  .investor-cta .button {
    margin: 30px 0 0;
  }

  .team {
    padding: 82px 6vw;
  }

  .team-heading,
  .team-grid {
    grid-template-columns: 1fr;
  }

  .team-heading {
    gap: 24px;
  }

  .team-grid {
    gap: 55px;
  }

  .group-structure {
    padding: 82px 6vw;
  }

  .group-heading,
  .group-subsidiaries {
    grid-template-columns: 1fr;
  }

  .group-heading {
    gap: 24px;
  }

  .group-connector {
    height: 44px;
    width: 1px;
  }

  .group-connector::after,
  .group-subsidiaries::before,
  .group-subsidiaries::after {
    display: none;
  }

  .group-subsidiaries {
    gap: 18px;
  }

  .group-card {
    gap: 22px;
    grid-template-columns: 120px 1fr;
    min-height: 210px;
    padding: 28px 24px;
  }

  .group-card--holding {
    max-width: none;
  }

  .partners {
    padding: 82px 6vw;
  }

  .partners-heading,
  .partners-grid {
    grid-template-columns: 1fr;
  }

  .partners-heading {
    gap: 24px;
  }

  .partners-heading .kicker {
    grid-column: auto;
    margin-bottom: 0;
  }

  .partners-grid article,
  .partners-grid article:nth-child(4),
  .partners-grid article:nth-child(5) {
    grid-column: auto;
    min-height: 210px;
  }

  .recruitment {
    gap: 32px;
    grid-template-columns: 1fr;
    padding: 82px 6vw;
  }
}

/* Navigation par pages */
.site-header nav { gap: 1.45rem; font-size: .88rem; }
.site-header nav a:hover,
.site-header nav a[aria-current="page"] { opacity: 1; }
.site-header nav a[aria-current="page"] { color: #58b5e2; }
.page-hero { background: #171918; color: #fff; min-height: 520px; padding: 190px 9vw 105px; }
.page-hero h1 { font-size: clamp(3.4rem, 6.5vw, 7rem); margin: 24px 0 28px; max-width: 1080px; }
.page-hero > p:last-child { color: rgba(255,255,255,.65); font-size: 1.12rem; line-height: 1.8; margin: 0; max-width: 720px; }
.home-paths { display: grid; grid-template-columns: repeat(2, 1fr); padding: 0 9vw 125px; }
.home-paths a { border-top: 1px solid #d8d3ca; min-height: 280px; padding: 30px 9% 28px 0; position: relative; }
.home-paths a:nth-child(odd) { margin-right: 5%; }
.home-paths a:nth-child(even) { margin-left: 5%; }
.home-paths span { color: #159bd3; font-size: .72rem; letter-spacing: .15em; }
.home-paths h2 { font-size: clamp(1.8rem, 3vw, 3rem); font-weight: 400; letter-spacing: -.035em; margin: 32px 0 14px; }
.home-paths p { color: #686c68; line-height: 1.7; max-width: 470px; }
.home-paths b { bottom: 28px; color: #159bd3; font-size: .78rem; font-weight: 600; position: absolute; }
.home-paths a:hover h2 { color: #159bd3; }

@media (max-width: 800px) {
  .page-hero { min-height: 430px; padding: 145px 6vw 75px; }
  .home-paths { grid-template-columns: 1fr; padding: 0 6vw 78px; }
  .home-paths a,
  .home-paths a:nth-child(odd),
  .home-paths a:nth-child(even) { margin: 0; min-height: 245px; }
}

@media (max-width: 1050px) and (min-width: 801px) {
  .site-header { height: 76px; }
  .site-header nav { display: none; position: absolute; top: 76px; left: 0; right: 0; background: #171918; padding: 25px 5vw; flex-direction: column; align-items: flex-start; }
  .site-header nav.open { display: flex; }
  .menu { display: block; background: none; border: 0; color: #fff; font: inherit; }
}

.footer-meta { align-items: flex-end; display: flex; flex-direction: column; }
.footer-meta p { margin: 0 0 12px; text-align: right; }
.footer-linkedin { align-items: center; color: #d6d7d3; display: inline-flex; font-size: .78rem; gap: 8px; }
.footer-linkedin span { background: #159bd3; border-radius: 2px; color: #fff; display: inline-grid; font-weight: 600; height: 20px; place-items: center; width: 20px; }
.footer-linkedin:hover { color: #58b5e2; }
.team-link { border-bottom: 1px solid #159bd3; color: #171918; display: inline-block; font-size: .82rem; font-weight: 600; margin-top: 18px; padding-bottom: 4px; }

@media (max-width: 800px) {
  .footer-meta { align-items: flex-start; }
  .footer-meta p { text-align: left; }
}
