:root {
  --ink: #111a13;
  --graphite: #343936;
  --ci-green: #1b361b;
  --section-heading-size: clamp(2rem, 4.4vw, 4.25rem);
  --asset-photo-grade: saturate(.18) contrast(1.08) brightness(.82);
  --type-body: 1.125rem;
  --type-lead: 1.375rem;
  --type-detail: 1rem;
  --type-label: .875rem;
  --type-note: .75rem;
}

/* JUNIQO identity: INVEST is smaller and top-aligned, never baseline-aligned.
   Proportions follow the approved acquisition-profile wordmark (21 / 8.5 / 81). */
.wordmark {
  display: inline-grid;
  grid-template-columns: 3.857142857em auto;
  align-items: start;
  gap: 0;
  width: max-content;
  font-family: var(--font-geist-sans), Arial, sans-serif;
  font-weight: 760;
  line-height: 1;
  letter-spacing: -.047619048em;
  white-space: nowrap;
}
.wordmark > span, .wordmark > small {
  font-size: .404761905em;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .105882353em;
}

/* Closed navigation must not leak overflowing links into a short viewport. */
.mobile-menu[hidden] { display: none; }
.mobile-menu { transform: none; transition: none; overflow-y: auto; overscroll-behavior: contain; max-height: 100dvh; }
.mobile-menu-top { align-items: center; gap: 20px; }
.mobile-menu-top button { min-width: 44px; min-height: 44px; flex-shrink: 0; font-size: 12px; }
.mobile-menu nav { margin-top: clamp(20px, 5vh, 56px); }
.mobile-menu nav a { font-size: clamp(1.5rem, 5vw, 2.5rem); line-height: 1.15; overflow-wrap: anywhere; }
.mobile-menu nav small { flex: 0 0 18px; }
.mobile-menu > p { position: static; margin: 32px 0 0; }
.site-header { grid-template-columns: minmax(130px, 1fr) auto minmax(76px, 1fr); gap: 20px; }
.desktop-nav { gap: clamp(14px, 1.7vw, 25px); }
.site-header .wordmark, .header-actions { flex-shrink: 0; }
section[id] { scroll-margin-top: 88px; }
.section-grid > *, .grid-heading > *, .platform-item > *, .acq-top > *,
.hero-bottom > *, .copy-columns > *, .contact-grid > *, .footer-main > *,
.project-grid > *, .team-grid > * { min-width: 0; }
.hero-actions { flex-wrap: wrap; }
.text-link, .solid-cta { max-width: 100%; }
h1, h2, h3, .eyebrow, .project-head b, .platform-index b { overflow-wrap: anywhere; }
.acq-assessment a { overflow-wrap: anywhere; }
.platform-copy li { break-inside: avoid; overflow-wrap: anywhere; }
@media (max-width: 1100px) {
  .site-header { height: 62px; padding: 0 20px; grid-template-columns: minmax(0, 1fr) auto; }
  .desktop-nav { display: none; }
  .menu-toggle { display: block; min-width: 44px; min-height: 44px; padding: 8px; }
  .acq-top { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .acq-top h2 { margin: 0; }
  .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
  .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .hero h1 { font-size: clamp(2.5rem, 15vw, 5.625rem); }
  .hero-actions { width: 100%; }
  .hero-actions .text-link { min-width: 0; width: 100%; }
  .news-page-header { flex-wrap: wrap; }
  .news-pagination { flex-wrap: wrap; }
  .project-modal, .person-modal { width: 100%; padding: 64px 20px 32px; }
}

/* Reversible photo grading, with asset-specific corrections where needed. */
.project-image.has-asset { background-image: none; filter: none; }
.project-image.has-asset::after { background: none; }
.project-image.has-asset img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: var(--asset-photo-grade); transition: transform .35s ease; }
.project-card:hover .project-image.has-asset img { transform: scale(1.025); }
.project-card.has-asset .project-head { padding: 14px 0 10px; border-bottom: 0; }
.project-card.has-asset .project-facts { grid-template-columns: 1.15fr 1fr 1fr; align-items: center; gap: 10px 16px; min-height: 48px; padding: 0 0 16px; border-bottom: 1px solid #c7cbc5; }
.project-asset-class { grid-column: auto; }
.project-metric { display: flex; flex-direction: row; align-items: baseline; flex-wrap: wrap; gap: 2px 7px; min-width: 0; }
.project-metric strong { color: var(--ink); font-size: clamp(1.25rem, 1.8vw, 1.5rem); font-weight: 500; line-height: 1.25; letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.project-metric > span { font-size: var(--type-label); line-height: 1.5; }
.project-modal.has-asset h2 { margin-top: 40px; font-size: clamp(2rem, 4vw, 3.5rem); }
.asset-detail-photo { display: block; width: 100%; height: auto; margin-bottom: 28px; filter: var(--asset-photo-grade); }
/* Supplied finished photography must not receive the colour grade twice. */
.project-image.has-asset img.is-pregraded, .asset-detail-photo.is-pregraded { filter: var(--finished-photo-adjustment, none); }
/* Individual display corrections. The three approved reference images retain their exact grade.
   These rules apply equally to cards and details; source photographs remain untouched. */
img[data-image-src="/images/assets/berlin-wilmersdorf-0053.jpg"] { --finished-photo-adjustment: sepia(.12) saturate(.85) brightness(1.15) contrast(.92); }
img[data-image-src="/images/assets/oberpfalz-wohnanlage.jpg"] { --finished-photo-adjustment: sepia(.1) brightness(1.13) contrast(.93); }
img[data-image-src="/images/assets/berlin-tiergarten-2.jpg"] { --finished-photo-adjustment: sepia(.04) brightness(1.08) contrast(.96); }
img[data-image-src="/images/assets/berlin-friedenau.jpg"] { --finished-photo-adjustment: brightness(1.06) contrast(.98); }
img[data-image-src="/images/assets/altenburg.jpg"] { --finished-photo-adjustment: sepia(.03) brightness(1.08) contrast(.98); }
img[data-image-src="/images/assets/berlin-zehlendorf.jpg"] { --finished-photo-adjustment: brightness(1.12) contrast(.96); }
img[data-image-src="/images/assets/bad-dueben.jpg"] { --finished-photo-adjustment: sepia(.05) brightness(1.14) contrast(.93); }
img[data-image-src="/images/assets/bad-toelz.jpg"] { --finished-photo-adjustment: brightness(1.05) contrast(.98); }
img[data-image-src="/images/assets/berlin-tiergarten-1.jpg"] { --finished-photo-adjustment: brightness(1.03) contrast(.98); }
img[data-image-src="/images/assets/berlin-schoeneberg.jpg"] { --finished-photo-adjustment: sepia(.04) brightness(1.16) contrast(.92); }
img[data-image-src="/images/assets/berlin-pankow.jpg"] { --finished-photo-adjustment: brightness(1.06) contrast(.97); }
img[data-image-src="/images/assets/berlin-kreuzberg-1.jpg"] { --finished-photo-adjustment: sepia(.04) brightness(1.05) contrast(.98); }
img[data-image-src="/images/assets/berlin-kreuzberg-2.jpg"] { --finished-photo-adjustment: brightness(1.04) contrast(.98); }
img[data-image-src="/images/assets/berlin-koepenick.jpg"] { --finished-photo-adjustment: brightness(1.04) contrast(.98); }
img[data-image-src="/images/assets/berlin-buch.jpg"] { --finished-photo-adjustment: brightness(1.1) contrast(.95); }
img[data-image-src="/images/assets/berlin-charlottenburg.jpg"] { --finished-photo-adjustment: brightness(1.05) contrast(.97); }
img[data-image-src="/images/assets/berlin-lichtenberg.jpg"] { --finished-photo-adjustment: sepia(.03) brightness(1.05) contrast(.98); }
img[data-image-src="/images/assets/portfolio-magdeburg-halle.jpg"] { --finished-photo-adjustment: sepia(.06) brightness(1.22) contrast(.86); }
img[data-image-src="/images/assets/berlin-kaulsdorf.jpg"] { --asset-photo-grade: saturate(.28) sepia(.04) contrast(1.04) brightness(.9); }
/* This neutral facade needs more retained colour and warmer highlights. */
.project-image.has-asset img[src="/images/assets/berlin-wilmersdorf.jpg"],
.asset-detail-photo[src="/images/assets/berlin-wilmersdorf.jpg"] {
  --asset-photo-grade: saturate(.65) sepia(.14) contrast(1.04) brightness(.94);
}
@media (prefers-reduced-motion: reduce) { .project-image.has-asset img { transition: none; } }

/* Editorial news: original photography with just a trace of colour. */
.news-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 28px; }
.news-card a { display: flex; flex-direction: column; height: 100%; }
.news-photo { overflow: hidden; background: var(--graphite); }
.news-photo img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.06); transition: transform .35s ease, filter .35s ease; }
.news-card .news-photo { aspect-ratio: 3 / 2; }
.news-card a:hover img { transform: scale(1.025); }
.news-card a:focus-visible .news-photo img { filter: saturate(.5); }
@media (hover: hover) {
  .news-card:hover .news-photo img { filter: saturate(.5); }
}
.news-card time { margin-top: 22px; font-size: 12px; letter-spacing: .1em; color: #656b66; }
.news-card h3 { margin: 14px 0; font-size: clamp(1.25rem, 1.8vw, 1.75rem); font-weight: 500; line-height: 1.2; letter-spacing: -.035em; }
.news-card p { margin: 0 0 24px; font-size: 16px; line-height: 1.65; color: #555c56; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.news-read { display: flex; justify-content: space-between; padding: 16px 0 0; border-top: 1px solid #c5c8c1; font-size: 14px; margin-top: auto; }
.news-card a:focus-visible, .news-page a:focus-visible, .news-pagination button:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.news-more { display: flex; justify-content: flex-end; margin-top: 48px; }
.news-more .text-link { min-width: 210px; font-size: 14px; }
.news-page { padding: 0 5vw; }
.news-page-header { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 28px 0; border-bottom: 1px solid #c5c8c1; }
.news-page-header .text-link { font-size: 14px; }
.archive-heading { padding: 72px 0 48px; }
.archive-heading h1, .article-heading h1 { font-size: clamp(2rem, 4.4vw, 4.25rem); line-height: 1.06; letter-spacing: -.05em; font-weight: 500; margin: 24px 0; }
.archive-heading > p:last-child { font-size: 14px; color: #656b66; }
.news-page .eyebrow { font-size: 12px; letter-spacing: .12em; line-height: 1.6; }
.news-pagination { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 32px 0; border-top: 1px solid #c5c8c1; margin-top: 56px; font-size: 14px; }
.news-pagination button { background: none; color: inherit; border: 0; padding: 12px 0; font: inherit; cursor: pointer; }
.news-pagination button:disabled { opacity: .3; cursor: default; }
.news-article { width: 100%; max-width: 1080px; margin-inline: auto; }
.article-heading { padding: 72px 0 24px; }
.article-photo { width: 100%; aspect-ratio: 16 / 9; }
.article-body { max-width: 760px; margin: 56px auto 88px; }
.article-body p { font-size: 18px; line-height: 1.8; margin: 0 0 24px; }
.article-body h2 { font-size: 24px; line-height: 1.25; margin: 44px 0 22px; font-weight: 500; letter-spacing: -.02em; }
.article-downloads { margin: 40px 0; display: grid; gap: 20px; }
.article-downloads .text-link { font-size: 14px; }
.article-body .article-source { font-size: 12px; color: #656b66; border-top: 1px solid #c5c8c1; padding-top: 24px; margin-bottom: 40px; }
.article-source a { text-decoration: underline; }
.news-page-footer { margin: 56px -5vw 0; padding: 26px 5vw; display: flex; justify-content: space-between; gap: 24px; font-size: 12px; }
@media (max-width: 950px) { .news-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) {
  .news-cards { grid-template-columns: 1fr; gap: 40px; }
  .news-more { margin-top: 32px; }
  .news-more .text-link { width: 100%; }
  .news-page-header { padding: 22px 0; }
  .news-page-header .wordmark { font-size: 25px; }
  .archive-heading, .article-heading { padding-top: 40px; }
  .article-photo { aspect-ratio: 4 / 3; }
  .article-body { margin: 32px auto 56px; }
  .article-body p { font-size: 16px; }
  .news-pagination { font-size: 12px; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) { .news-photo img { transition: none; } }

.kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); padding-top: 64px; padding-bottom: 64px; }
.kpi, .kpi:first-child { min-width: 0; padding: 0 clamp(12px, 1.2vw, 20px); text-align: center; }
.kpi strong { font-size: clamp(2rem, 3.6vw, 4.5rem); white-space: nowrap; font-variant-numeric: tabular-nums; }
.kpi span { font-size: 12px; line-height: 1.5; letter-spacing: .09em; color: #a6ada8; }
@media (max-width: 900px) {
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpi, .kpi:first-child, .kpi:nth-child(odd) { padding: 24px 12px; }
  .kpi:nth-child(odd) { border-left: 0; }
  .kpi:nth-child(even) { border-left: 1px solid #39413b; }
  .kpi-team { grid-column: 1 / -1; border-bottom: 0; }
}
.acquisitions.section-shell { padding-top: 112px; padding-bottom: 80px; }
.acquisitions .acq-top { grid-template-columns: 1fr 1.15fr 1.45fr; gap: 4vw; }
.acquisitions .acq-top > div p { font-size: 16px; margin-bottom: 28px; }
.acq-primary { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 25px 26px; background: var(--paper); color: var(--ink); font-size: clamp(1.5rem, 2.25vw, 2.25rem); line-height: 1.2; letter-spacing: -.04em; transition: background .2s ease; }
.acq-primary:hover { background: #d7d3cc; }
.acq-primary span { font-size: 1.25em; }
.acq-download { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 0 12px; font-size: 14px; border-bottom: 1px solid #59645c; }
.acq-download span { font-size: 12px; white-space: nowrap; color: #a6ada8; }
.acq-primary:focus-visible, .acq-download:focus-visible, .acq-assessment a:focus-visible { outline: 2px solid var(--paper); outline-offset: 5px; }
.acq-facts { display: grid; grid-template-columns: 1fr 1.15fr 1.45fr; gap: 4vw; margin: 72px 0 0; padding: 30px 0 36px; border-top: 1px solid #59645c; border-bottom: 1px solid #39413b; }
.acq-facts > div { min-width: 0; }
.acq-facts dt, .acq-profile h3 { margin: 0; color: #a6ada8; font-size: 12px; font-weight: 500; letter-spacing: .1em; line-height: 1.5; }
.acq-facts dd { margin: 22px 0 0; font-size: clamp(1.5rem, 2.1vw, 2rem); line-height: 1.25; letter-spacing: -.035em; }
.acq-facts dd span { display: block; margin-top: 10px; font-size: 14px; line-height: 1.5; letter-spacing: 0; color: #a6ada8; }
.acq-profile { display: grid; grid-template-columns: 1fr 2.75fr; gap: 4vw; padding: 32px 0; border-bottom: 1px solid #39413b; }
.acq-profile ul { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; list-style: none; padding: 0; margin: 0; }
.acq-profile li { font-size: 18px; line-height: 1.45; }
.acq-profile p { margin: 20px 0 0; font-size: 14px; color: #a6ada8; }
.acq-assessment { display: flex; justify-content: space-between; align-items: baseline; gap: 32px; margin-top: 28px; font-size: 14px; line-height: 1.6; color: #a6ada8; }
.acq-assessment p { margin: 0; max-width: 660px; }
.acq-assessment a { flex-shrink: 0; padding-bottom: 5px; border-bottom: 1px solid #59645c; color: var(--paper); }
.acq-assessment a span { margin-left: 20px; }
@media (max-width: 1100px) {
  .acquisitions .acq-top { grid-template-columns: 1fr 1fr; gap: 32px; }
  .acquisitions .acq-top > .eyebrow { grid-column: 1 / -1; }
  .acquisitions .acq-top h2 { margin: 0; }
  .acq-facts { gap: 28px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .acq-profile { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 650px) {
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 32px 20px; }
  .kpi strong { font-size: clamp(1.875rem, 7.6vw, 3rem); }
  .kpi span { margin-top: 16px; font-size: 12px; letter-spacing: .025em; }
  .acquisitions.section-shell { padding-top: 64px; padding-bottom: 48px; }
  .acquisitions .acq-top { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .acq-primary { padding: 22px 20px; }
  .acq-facts { grid-template-columns: 1fr; margin-top: 44px; padding: 0; gap: 0; }
  .acq-facts > div { padding: 24px 0; border-bottom: 1px solid #39413b; }
  .acq-facts > div:last-child { border-bottom: 0; }
  .acq-facts dd { margin-top: 12px; font-size: 26px; }
  .acq-facts dd span { margin-top: 6px; }
  .acq-profile ul { grid-template-columns: 1fr; gap: 14px; }
  .acq-profile li { font-size: 17px; }
  .acq-assessment { flex-direction: column; gap: 20px; }
}

.contact.section-shell { padding: 48px 3.4vw 36px; }
.contact h2 { margin: 24px 0 32px; font-size: clamp(30px, 4.4vw, 68px); line-height: 1.05; letter-spacing: -.05em; }
.contact-grid { grid-template-columns: 1fr 1fr 1.1fr; gap: 24px; }
.contact-grid > div { padding-top: 16px; min-width: 0; }
.contact-grid span { font-size: 12px; color: #a6ada8; }
.contact-grid a, .contact-grid p { margin: 10px 0 0; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
footer { padding: 20px 3.4vw; }
.footer-main { grid-template-columns: auto 1fr auto; gap: 28px; align-items: center; }
.footer-main .wordmark { font-size: 24px; }
.footer-main nav, .footer-main > div { flex-direction: row; flex-wrap: wrap; gap: 4px 18px; font-size: 12px; align-items: center; }
.footer-main nav { justify-content: center; }
.footer-main a, .footer-main button { display: inline-flex; align-items: center; min-height: 32px; }
.footer-main > div button { font-size: 12px; }
@media (max-width: 1000px) {
  .footer-main { grid-template-columns: auto 1fr; gap: 12px 24px; }
  .footer-main nav { justify-content: flex-end; }
  .footer-main > div { grid-column: 1 / -1; justify-content: flex-end; }
}
@media (max-width: 650px) {
  .contact.section-shell { padding: 32px 6vw 28px; }
  .contact h2 { max-width: 340px; margin: 20px 0 24px; }
  .contact-grid { grid-template-columns: 1fr; gap: 18px; }
  .contact-grid > div { padding-top: 0; }
  .contact-grid > div:first-child { padding-top: 16px; }
  .contact-grid a, .contact-grid p { margin-top: 6px; }
  footer { padding: 16px 6vw; }
  .footer-main { grid-template-columns: 1fr; gap: 12px; }
  .footer-main nav, .footer-main > div { justify-content: flex-start; gap: 2px 18px; }
}

.site-header {
  background: rgba(17, 26, 19, 0.95);
  border-bottom-color: #39413b;
}

.hero-shade,
.berlin-overlay {
  background: rgba(8, 16, 10, 0.5);
}

.berlin-overlay {
  background: rgba(8, 17, 10, 0.6);
}

.kpi,
.strategy-grid,
.strategy-grid article,
.criteria,
.contact-grid,
footer {
  border-color: #39413b;
}

/* One typographic hierarchy for every main section, independent of layout. */
main > section:is(.intro, .platform, .berlin, .investments, .acquisitions, .team, .news) h2 {
  font-family: var(--font-geist-sans), Arial, sans-serif;
  font-size: var(--section-heading-size);
  font-weight: 500;
  font-style: normal;
  line-height: 1.05;
  letter-spacing: -.05em;
  text-transform: uppercase;
}

main > section:not(.hero) .eyebrow {
  font-family: var(--font-geist-sans), Arial, sans-serif;
  font-size: clamp(1.25rem, 1.8vw, 1.5rem);
  font-weight: 600;
  font-style: normal;
  line-height: 1.3;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.platform-index b, .criteria b, .contact-grid span {
  font-family: var(--font-geist-sans), Arial, sans-serif;
  font-size: .75rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .1em;
}
.platform-title h3 {
  font-size: clamp(1.25rem, 2vw, 2rem);
  line-height: 1.15;
  letter-spacing: -.035em;
}
.platform.section-shell { padding-top: 100px; padding-bottom: 80px; }
.platform .section-heading h2 { margin-bottom: 32px; }
.platform-list { margin-top: 56px; }
.platform-item { padding: 36px 0; }
.platform-copy > p { margin-bottom: 0; }
.platform-copy .text-link { margin-top: 24px; font-size: 12px; }
@media (max-width: 760px) {
  .platform.section-shell { padding-top: 64px; padding-bottom: 48px; }
  .platform-list { margin-top: 36px; }
  .platform-item { padding: 28px 0; gap: 20px; }
  .platform .section-heading h2 { margin-bottom: 24px; }
}
.criteria > div { grid-template-columns: 1.5fr 2fr; gap: 24px; }
@media (max-width: 760px) {
  .criteria > div { grid-template-columns: 1fr; gap: 10px; }
  .criteria p { grid-column: 1; }
}

/* Contact is a closing call to action; the legal footer stays compact. */
.contact.section-shell { padding: 88px 3.4vw 64px; }
.contact h2 {
  max-width: none;
  margin: 48px 0 64px;
  font-family: var(--font-geist-sans), Arial, sans-serif;
  font-size: clamp(3rem, 10vw, 10rem);
  font-weight: 570;
  font-style: normal;
  line-height: .92;
  letter-spacing: -.065em;
}
.contact-grid > div { padding-top: 24px; }
.contact-grid a { width: fit-content; padding-bottom: 8px; font-size: clamp(1rem, 1.4vw, 1.375rem); border-bottom: 1px solid #667168; transition: border-color .2s ease; }
.contact-grid a:hover, .contact-grid a:focus-visible { border-color: #f3f1ec; }
.contact-grid p { font-size: 16px; }
/* Share the label row so wrapped headings never stagger the contact details. */
@media (min-width: 651px) {
  .contact-grid { row-gap: 0; }
  .contact-grid > div {
    display: grid;
    grid-row: span 2;
    grid-template-rows: subgrid;
    row-gap: 0;
    align-items: start;
  }
}
@media (max-width: 650px) {
  .contact.section-shell { padding: 56px 6vw 44px; }
  .contact h2 { margin: 32px 0 40px; font-size: clamp(2.5rem, 11.5vw, 4.5rem); }
  .contact-grid { gap: 24px; }
  .contact-grid > div { padding-top: 0; }
  .contact-grid > div:first-child { padding-top: 22px; }
}

/* Readable at laptop scale, retaining headline / lead / body / metadata hierarchy. */
body { font-size: var(--type-body); }
.desktop-nav, .language, .mobile-menu-top button { font-size: var(--type-label); }
.desktop-nav a { opacity: .88; }
.mobile-menu nav small, .mobile-menu > p, .hero-index { font-size: var(--type-note); }
.eyebrow { font-size: var(--type-label); line-height: 1.5; }
.hero .eyebrow { font-size: var(--type-note); line-height: 1.6; }
.hero-bottom > p { font-size: clamp(1.125rem, 1.3vw, 1.25rem); line-height: 1.6; }
.text-link, .platform-copy .text-link, .news-more .text-link,
.news-page-header .text-link, .article-downloads .text-link,
.news-read, .acq-download, .news-pagination { font-size: var(--type-label); line-height: 1.5; }
.text-link { gap: 20px; }
.copy-columns { grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 4vw, 64px); max-width: 1080px; }
.copy-columns p, .section-heading p, .platform-copy > p,
.berlin-copy p, .acquisitions .acq-top > div p,
.project-modal > p:not(.eyebrow):not(.cms-note), .article-body p {
  font-size: var(--type-body); line-height: 1.7;
}
.copy-columns p, .section-heading p, .platform-copy > p { color: #505750; }
.copy-columns .lead, .section-heading .lead { font-size: var(--type-lead); line-height: 1.5; color: var(--ink); }
.platform-index b, .acq-facts dt, .acq-profile h3,
.contact-grid span, .kpi span, .news-card time,
.news-page .eyebrow { font-size: var(--type-label); line-height: 1.5; }
.platform-copy li { font-size: var(--type-label); line-height: 1.5; padding: 10px 0; }
.platform-title h3 { font-size: clamp(1.5rem, 2vw, 2rem); }
.berlin-copy { width: min(720px, 60vw); grid-template-columns: 1fr 2.5fr; }
.berlin-copy strong, .acq-top > div strong { font-size: var(--type-lead); line-height: 1.45; }
.berlin-copy p { color: #e0e3de; }
.photo-note, .project-image small, .project-image em,
.project-status, .cms-note, .project-modal > .cms-note { font-size: var(--type-note); line-height: 1.6; }
.photo-note { color: #c4cac5; }
.cms-note, .project-status { color: #616961; }
.project-image small, .project-image em { text-shadow: 0 1px 5px #111a13; }
.project-head b { font-size: var(--type-detail); line-height: 1.4; letter-spacing: .05em; }
.project-facts { font-size: var(--type-label); line-height: 1.5; color: #505750; }
.modal-facts span { font-size: var(--type-detail); line-height: 1.5; }
.project-modal h3 { font-size: var(--type-label); line-height: 1.5; }
.project-modal > .eyebrow { font-size: var(--type-label); }
.modal-close { font-size: var(--type-label); min-height: 44px; padding: 10px 0; }
.acq-facts dd span, .acq-profile p, .acq-assessment,
.archive-heading > p:last-child, .news-card p { font-size: var(--type-detail); line-height: 1.65; }
.acq-profile li { font-size: var(--type-body); line-height: 1.5; }
.acq-download span { font-size: var(--type-note); }
.article-body .article-source { font-size: var(--type-label); line-height: 1.65; }
.contact-grid a { font-size: clamp(1.125rem, 1.4vw, 1.375rem); line-height: 1.6; }
.contact-grid p { font-size: var(--type-body); }
.footer-main nav, .footer-main > div, .footer-main > div button,
.news-page-footer { font-size: var(--type-note); line-height: 1.6; color: #b4bbb5; }
@media (max-width: 900px) {
  .copy-columns { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .berlin-copy { width: 100%; grid-template-columns: minmax(0, 1fr); gap: 20px; }
}
@media (max-width: 650px) {
  .project-card.has-asset .project-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-asset-class { grid-column: 1 / -1; }
  .acq-assessment a { flex-shrink: 1; }
  .news-page-footer { flex-wrap: wrap; }
}

/* Selected examples: three on desktop, two on tablet, one on mobile. */
/* ESG case studies share the selected-projects section, without a new visual world. */
.projects-subheading { margin: 0 0 32px; padding-top: 24px; border-top: 1px solid #b8bdb7; font-size: 1.125rem; line-height: 1.4; font-weight: 500; letter-spacing: .045em; text-transform: uppercase; }
.projects-heading-description { font-weight: 400; letter-spacing: normal; text-transform: none; color: #454d42; }
.esg-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.esg-project { min-width: 0; display: flex; flex-direction: column; }
.esg-image-button { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
.esg-image-button .project-image { aspect-ratio: 3 / 2; }
.esg-copy { display: flex; flex-direction: column; flex: 1; padding-top: 24px; min-width: 0; }
.esg-copy h4 { margin: 0 0 16px; font-size: 1.125rem; font-weight: 600; letter-spacing: .025em; line-height: 1.4; }
.esg-summary { margin: 0 0 24px; color: #505750; font-size: var(--type-body); line-height: 1.65; hyphens: auto; overflow-wrap: break-word; }
.esg-placeholder-label { display: block; margin-bottom: 8px; font-size: .875rem; line-height: 1.5; color: #505750; }
.esg-project-facts { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; margin-top: auto; padding-top: 16px; border-top: 1px solid #b8bdb7; font-size: .875rem; line-height: 1.5; color: #505750; }
.esg-read { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 44px; margin-top: 8px; padding: 8px 0; border: 0; background: transparent; color: var(--ink); font-size: .875rem; text-align: left; cursor: pointer; }
.esg-read svg { flex-shrink: 0; }
.esg-read:hover { text-decoration: underline; text-underline-offset: 4px; }
.esg-image-button:focus-visible, .esg-read:focus-visible { outline: 2px solid var(--ink); outline-offset: 6px; }
.further-projects-heading { margin-top: 72px; }
.esg-detail { padding-top: 24px; }
.esg-detail h3 { margin: 0 0 24px; font-weight: 500; text-transform: uppercase; letter-spacing: .045em; }
.esg-detail p { font-size: var(--type-body); line-height: 1.7; color: #505750; margin: 0 0 24px; }
@media (max-width: 1100px) {
  .esg-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .esg-project { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 32px; align-items: start; }
  .esg-copy { padding-top: 0; }
  .esg-summary { margin-bottom: 24px; }
}
@media (max-width: 650px) {
  .esg-project { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .esg-grid { gap: 48px; }
  .projects-subheading { margin-bottom: 24px; padding-top: 20px; font-size: 1rem; }
  .further-projects-heading { margin-top: 56px; }
}
.investments .project-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 24px; align-items: start; }
.project-card { color: var(--ink); }
.project-card.has-asset .project-head { gap: 12px; padding: 16px 0 10px; }
.project-card .project-head b { font-size: 1rem; letter-spacing: .025em; }
.project-card.has-asset .project-facts { grid-template-columns: 1fr 1fr; gap: 10px 16px; min-height: 0; padding-bottom: 14px; }
.project-card .project-asset-class { grid-column: 1 / -1; font-size: .875rem; line-height: 1.5; }
.project-card .project-metric strong { font-size: 1.375rem; }
.project-investment-status { display: block; margin-top: 12px; color: #505750; font-size: .875rem; font-weight: 500; line-height: 1.5; }
.project-card:focus-visible, .projects-more button:focus-visible { outline: 2px solid var(--ink); outline-offset: 6px; }
.project-visualization { position: absolute; right: 12px; bottom: 12px; z-index: 1; padding: 4px 8px; background: var(--paper); color: var(--ink); font-size: .75rem; line-height: 1.5; }
.project-image.has-asset img[data-image-src="/images/assets/wildau.png"], .asset-detail-photo[data-image-src="/images/assets/wildau.png"] { filter: saturate(.65) contrast(1.02) brightness(1.03); }
.projects-more { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 40px; }
.projects-more p { margin: 0; color: #505750; font-size: .875rem; }
.projects-more button { background: none; border: 0; border-bottom: 1px solid var(--ink); padding: 12px 0; min-height: 44px; color: var(--ink); font: inherit; font-size: .875rem; cursor: pointer; }
.project-modal .project-visualization-note { margin: -12px 0 24px; font-size: .875rem; color: #505750; }
.intro.section-grid { padding-top: 88px; padding-bottom: 88px; }
.intro .copy-columns { margin-top: 40px; }
.intro .copy-columns p { margin-bottom: 0; }
.hero-image, .berlin-photo { background-image: none; }
.hero-image > img, .berlin-photo > img { width: 100%; height: 100%; object-fit: cover; }
.hero-image > img { object-position: 50% 45%; }
.berlin-photo > img { object-position: 8% 50%; }
.holdings-note { grid-column: 1 / -1; margin: 30px 0 0; color: #a6ada8; text-align: center; font-size: .75rem; line-height: 1.6; letter-spacing: .035em; }
.mobile-languages { display: flex; gap: 24px; margin-top: 28px; }
.mobile-languages button { min-height: 44px; padding: 8px 0; border: 0; border-bottom: 1px solid transparent; background: transparent; color: #b9c1b9; font: inherit; font-size: 1rem; cursor: pointer; }
.mobile-languages button[aria-pressed="true"] { border-bottom-color: var(--paper); color: var(--paper); }
.mobile-languages button:focus-visible { outline: 2px solid var(--paper); outline-offset: 5px; }
.esg-results { list-style: none; margin: 0 0 20px; padding: 0; color: var(--ink); font-size: .875rem; line-height: 1.5; }
.esg-results li { padding: 5px 0 5px 14px; position: relative; }
.esg-results li::before { content: ''; position: absolute; left: 0; top: 14px; width: 4px; height: 4px; background: #64705e; }
@media (max-width: 650px) {
  .intro.section-grid { padding-top: 64px; padding-bottom: 64px; }
  .intro .copy-columns { margin-top: 28px; }
  .holdings-note { margin-top: 20px; }
}
.berlin-overlay { background: linear-gradient(180deg, rgba(8, 17, 10, .6) 0%, rgba(8, 17, 10, .72) 55%, #111a13 100%); }
.berlin-closing { margin-top: 48px; padding: 32px 0 22px; border-top: 1px solid #667168; }
.berlin-closing .berlin-statement { margin: 0; font-size: clamp(1.75rem, 2.6vw, 2.75rem); line-height: 1.15; letter-spacing: -.035em; }
.berlin-closing .berlin-statement br { display: none; }
/* A shared editorial surface connects the portrait with its introduction. */
.founder-section { padding: 56px 3.4vw; background: #e2e5dc; color: var(--ink); }
.founder { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .55fr); column-gap: clamp(40px, 7vw, 112px); row-gap: 24px; align-items: center; width: min(1120px, 100%); margin-inline: auto; isolation: isolate; background: inherit; }
.founder-portrait-frame { grid-column: 2; grid-row: 1 / 3; width: 100%; max-width: 300px; justify-self: center; mix-blend-mode: multiply; }
.founder-portrait { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 32%; mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent), linear-gradient(to bottom, transparent, #000 5%, #000 76%, transparent); mask-composite: intersect; }
.founder-text { display: contents; }
.founder-identity { grid-column: 1; grid-row: 1; align-self: end; padding-bottom: 24px; border-bottom: 1px solid #aeb6a8; }
.founder-identity h3 { margin: 0 0 10px; font-size: clamp(2rem, 3vw, 2.75rem); font-weight: 500; line-height: 1.1; letter-spacing: -.04em; }
.founder-role { margin: 0; color: #4e5b48; font-size: .875rem; line-height: 1.5; }
.founder-copy { grid-column: 1; grid-row: 2; align-self: start; margin: 0; max-width: 58ch; font-size: var(--type-body); line-height: 1.65; color: #3f493b; }
@media (max-width: 900px) {
  .founder-section { padding: 40px 20px; }
  .founder { grid-template-columns: minmax(0, 1fr) 220px; column-gap: 32px; }
}
@media (max-width: 650px) {
  .berlin-closing { margin-top: 32px; padding-top: 28px; }
  .founder { grid-template-columns: minmax(0, 1fr) clamp(104px, 30vw, 160px); column-gap: 16px; row-gap: 24px; }
  .founder-portrait-frame { grid-row: 1; }
  .founder-identity { align-self: center; padding: 0; border: 0; }
  .founder-identity h3 { max-width: 7ch; font-size: clamp(1.75rem, 6.6vw, 2.25rem); }
  .founder-copy { grid-column: 1 / -1; padding-top: 24px; border-top: 1px solid #aeb6a8; }
}
@media (max-width: 1023px) { .investments .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) {
  .investments .project-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .projects-more { align-items: flex-start; flex-direction: column; gap: 12px; }
  .projects-more button { width: 100%; }
}

/* One chapter rail, never stacked sticky headings. It does not change page flow. */
.chapter-page {
  --header-height: calc(68px + env(safe-area-inset-top, 0px));
  --chapter-height: 38px;
  --chapter-clearance: calc(var(--measured-header-height, var(--header-height)) + var(--chapter-height) + 16px);
}
.chapter-page > .site-header {
  height: var(--header-height);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  padding-top: env(safe-area-inset-top, 0px);
  padding-left: max(3.4vw, env(safe-area-inset-left, 0px));
  padding-right: max(3.4vw, env(safe-area-inset-right, 0px));
}
.chapter-page section[id], .chapter-page #founder,
.chapter-page #esg-heading, .chapter-page #further-projects-heading,
.chapter-page #selected-projects { scroll-margin-top: var(--chapter-clearance); }
.chapter-page #top { scroll-margin-top: 0; }
.chapter-bar {
  position: fixed;
  z-index: 49;
  inset: var(--measured-header-height, var(--header-height)) 0 auto;
  height: var(--chapter-height);
  padding: 0 max(3.4vw, env(safe-area-inset-right, 0px)) 0 max(3.4vw, env(safe-area-inset-left, 0px));
  display: flex;
  align-items: center;
  background: rgba(17, 26, 19, .96);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(185, 193, 185, .2);
  color: var(--paper);
}
.chapter-bar[hidden] { display: none; }
.chapter-bar-label { display: flex; align-items: baseline; gap: 10px; min-width: 0; white-space: nowrap; font-size: .75rem; line-height: 1.4; font-weight: 500; letter-spacing: .08em; animation: chapter-arrive .16s ease-out; }
.chapter-number { color: #aab5ab; font-variant-numeric: tabular-nums; }
.chapter-number > span { margin-left: 5px; }
.chapter-part { color: #bdc6be; font-weight: 400; letter-spacing: .045em; }
.chapter-divider { color: #89968b; }
.chapter-short { display: none; }
.desktop-nav a[aria-current="location"] { opacity: 1; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 7px; }
.mobile-menu nav a[aria-current="location"] { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.mobile-menu nav a[aria-current="location"] small { color: var(--paper); }
@keyframes chapter-arrive { from { opacity: .35; } to { opacity: 1; } }
@media (max-width: 1100px) {
  .chapter-page { --header-height: calc(62px + env(safe-area-inset-top, 0px)); }
  .chapter-page > .site-header, .chapter-bar { padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
}
@media (max-width: 650px) {
  .chapter-page { --chapter-height: 34px; }
  .chapter-bar-label { font-size: .75rem; letter-spacing: .055em; gap: 8px; }
  .chapter-full { display: none; }
  .chapter-short { display: inline; }
}
@media (prefers-reduced-motion: reduce) { .chapter-bar-label { animation: none; } }
