/* ADCO 2.0 — resilient editorial redesign. */
html { font-size: 75%; }
body { font-size: 1rem; line-height: 1.75; background: #f4f8f2; }
.cursor-dot { display:none !important; }
body.menu-open .site-main,
body.menu-open .site-footer { visibility:hidden; }
.offcanvas { width:100vw; height:100dvh; min-height:100vh; overflow:hidden; isolation:isolate; contain:paint; background:#082f31 !important; }

/* Keep every content block readable even before JavaScript initializes. */
.js .reveal-block,
.js .image-reveal,
.js .hero-reveal { opacity: 1; transform: none; clip-path: inset(0); }

.container { width: min(90vw, 1520px); }
.section { padding-block: clamp(7rem, 9vw, 11rem); }
.section-label { font-size: .72rem; letter-spacing: .16em; }
.section-label__line { width: 2.5rem; }

/* Header: quieter, more useful and with the original logo colors intact. */
.site-header { height: 92px; padding-top: 0; }
.site-header__inner { grid-template-columns: 180px 1fr auto; border-bottom: 1px solid rgba(255,255,255,.2); }
.site-header.is-scrolled { height: 74px; background: rgba(244,248,242,.96); }
.site-brand { width: 108px; height: 76px; padding: 7px 10px; overflow: visible; background: rgba(255,255,255,.92); box-shadow: 0 8px 28px rgba(5,48,46,.08); }
.site-brand img,
.site-brand .custom-logo,
.site-header.is-scrolled .site-brand img,
.site-header.is-scrolled .site-brand .custom-logo { width: 100%; max-height: 62px; filter: none !important; object-fit: contain; }
.header-nav { justify-self: center; gap: clamp(2rem,3.4vw,4rem); font-size: .86rem; }
.site-header__actions { gap: 1.3rem; }
.menu-toggle__icon { width: 38px; height: 38px; }

/* Hero: cinematic split composition instead of oversized centered typography. */
.hero { min-height: 92svh; align-items: stretch; background: #0a4142; }
.hero__media { inset: 0 42% 0 0; }
.hero__media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,51,51,.12),rgba(8,51,51,.72)); }
.hero__overlay { background: linear-gradient(90deg,rgba(5,45,45,.28) 0 58%,#0a4142 78%); }
.hero__grid { opacity:.13; background-size: 7vw 7vw; mask-image:none; }
.hero__content { display:grid; grid-template-columns: .86fr 1.14fr; grid-template-rows:auto 1fr auto; gap:2rem 7vw; align-items:center; padding-top:120px; padding-bottom:4rem; }
.hero__kicker { grid-column:1/-1; align-self:start; margin:0; padding-top:1rem; font-size:.74rem; }
.hero__title { grid-column:1; align-self:center; max-width:720px; margin:0; font-size:clamp(3.6rem,5.3vw,6.4rem); line-height:1.18; letter-spacing:-.04em; }
.hero__title-accent { margin-top:.15em; }
.hero__lower { grid-column:1; grid-row:3; display:grid; grid-template-columns:1fr; gap:1.4rem; align-self:end; }
.hero__lower p { max-width:560px; font-size:1.12rem; }
.hero__pillars { justify-self:start; font-size:.8rem; }
.hero__scroll { left:auto; right:5vw; bottom:3.5rem; }
.hero__coordinate { right:auto; left:2vw; }

/* Manifesto: asymmetric newspaper spread with image on the opposite axis. */
.manifesto { background:#f4f8f2; }
.manifesto__grid { grid-template-columns:.78fr 1.22fr; gap:5vw 8vw; align-items:start; }
.manifesto__statement { grid-column:2; }
.manifesto__statement h2 { max-width:780px; font-size:clamp(3rem,4.4vw,5.25rem); line-height:1.35; }
.manifesto__body { grid-column:2; max-width:600px; padding:0; }
.manifesto__body p { font-size:1.1rem; }
.manifesto__image { grid-column:1; grid-row:1/span 2; width:100%; height:min(68vw,760px); margin:0; }
.manifesto__image::after { content:"BIOLOGICAL / INFRASTRUCTURE"; position:absolute; inset:1.4rem auto auto 1.4rem; padding:.7rem 1rem; color:#fff; background:rgba(7,55,52,.82); font-size:.65rem; letter-spacing:.14em; direction:ltr; }
.manifesto__line { display:none; }

/* Value chain: legible system map, no pinned spacer. */
.value-chain { padding-bottom:clamp(7rem,9vw,11rem); background:#0b5052; }
.value-chain__intro { grid-template-columns:.5fr 1.5fr; padding-bottom:4rem; border-bottom:1px solid rgba(255,255,255,.16); }
.value-chain__intro h2 { font-size:clamp(3.4rem,5.5vw,6.5rem); }
.value-chain__story { display:grid; grid-template-columns:.72fr 1.28fr; gap:6vw; padding-top:5rem; }
.value-chain__visual { position:relative; top:auto; height:auto; min-height:560px; align-self:start; border:1px solid rgba(255,255,255,.13); background:rgba(3,34,35,.18); }
.bio-orbit { width:min(30vw,430px); }
.bio-orbit__core { width:92px; font-size:1.8rem; }
.bio-node { width:48px; }
.value-chain__status { inset:auto 2.2rem 2rem; }
.value-chain__steps { display:grid; grid-template-columns:1fr 1fr; padding:0; border-top:1px solid rgba(255,255,255,.14); }
.chain-step { min-height:290px; padding:2.5rem; grid-template-columns:42px 1fr; border-inline-end:1px solid rgba(255,255,255,.14); border-bottom:1px solid rgba(255,255,255,.14); opacity:1; }
.chain-step:nth-child(even) { border-inline-end:0; }
.chain-step h3 { font-size:clamp(1.8rem,2.2vw,2.7rem); margin:.5rem 0; }
.chain-step p { font-size:.92rem; }

/* Vision: a framed statement, not a full empty viewport. */
.vision { min-height:auto; padding-block:10rem; background:#e8f4e8; }
.vision__word { top:1.5rem; transform:translateX(-50%); font-size:15vw; opacity:.75; }
.vision__inner { grid-template-columns:180px 1fr; justify-items:start; text-align:start; gap:2rem 5vw; }
.vision__inner .section-label { grid-column:1/-1; }
.vision__icon { align-self:center; width:130px; aspect-ratio:1; display:grid; place-items:center; border:1px solid rgba(19,95,97,.25); border-radius:50%; font-size:2.7rem; }
.vision h2 { margin:0; max-width:1050px; font-size:clamp(2.7rem,4vw,4.8rem); line-height:1.45; }

/* Principles: four distinct editorial quadrants, no horizontal pin. */
.principles { padding-block:9rem; }
.principles__head { grid-template-columns:.45fr 1.55fr; margin-bottom:4rem; }
.principles__head h2 { font-size:clamp(3.2rem,5vw,5.8rem); }
.principles__track { display:grid; grid-template-columns:1fr 1fr; width:min(90vw,1520px); margin:auto; padding:0; border-top:1px solid rgba(255,255,255,.18); border-inline-start:1px solid rgba(255,255,255,.18); transform:none!important; }
.principle { width:auto; min-height:390px; padding:3rem; grid-template-columns:50px 1fr; border:0; border-inline-end:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); }
.principle:nth-child(2),.principle:nth-child(3) { background:rgba(255,255,255,.025); }
.principle__icon { width:68px; font-size:1.35rem; }
.principle h3 { font-size:clamp(2.5rem,3.2vw,3.8rem); margin-bottom:1rem; }
.principle p { font-size:.98rem; }

/* Investment arms: numbered ledger with a strong vertical rhythm. */
.arms-preview { background:#f4f8f2; }
.arms-preview__layout { grid-template-columns:.7fr 1.3fr; gap:7vw; }
.arms-preview__intro { top:110px; }
.arms-preview__intro h2 { font-size:clamp(3.3rem,5.2vw,6rem); }
.arms-preview__intro p { font-size:1rem; }
.arms-preview__list { counter-reset:arms; border-top:2px solid var(--color-primary); }
.arm-row { grid-template-columns:48px 42px 1fr 30px; padding:2rem .8rem; gap:1rem; }
.arm-row:nth-child(even) { background:rgba(19,95,97,.035); }
.arm-row h3 { font-size:clamp(1.25rem,1.65vw,1.85rem); }

/* Three worlds: a triptych that works without JavaScript. */
.worlds { height:auto; padding:0; }
.worlds__track { display:grid; grid-template-columns:repeat(3,1fr); width:100%; height:78svh; transform:none!important; }
.world-panel { width:auto; height:100%; min-width:0; }
.world-panel__shade { background:linear-gradient(0deg,rgba(3,35,34,.88),rgba(3,35,34,.08) 70%); }
.world-panel__copy { inset:auto 2.4rem 3rem; }
.world-panel h2 { font-size:clamp(2.7rem,3.5vw,4.3rem); line-height:1.15; }
.world-panel p { font-size:.9rem; }
.world-panel__number { top:2rem; right:2rem; }

/* Impact close: compact, layered and readable. */
.impact-cta { min-height:auto; padding-block:10rem; background:linear-gradient(120deg,#135f61,#0a4142); }
.impact-cta::before { width:42vw; right:auto; left:-12vw; top:-45%; }
.impact-cta__inner { display:grid; grid-template-columns:1.35fr .65fr; gap:4rem; align-items:end; }
.impact-cta__inner .eyebrow { grid-column:1/-1; }
.impact-cta__inner h2 { margin:0; font-size:clamp(3.1rem,5vw,5.8rem); }
.impact-cta__inner .text-link { justify-self:end; }

/* Footer redesign. */
.site-footer { padding-top:8rem; }
.site-footer__top { grid-template-columns:1.3fr .7fr; padding-bottom:5rem; }
.footer-intro h2 { font-size:clamp(3.1rem,5vw,5.8rem); }
.footer-links { align-content:center; }
.footer-wordmark { font-size:22vw; }

/* Internal heroes and editorial pages. */
.inner-hero { min-height:76svh; }
.inner-hero__content { display:grid; grid-template-columns:1.25fr .75fr; align-items:end; gap:4rem; padding-bottom:6rem; }
.inner-hero__content .eyebrow { grid-column:1/-1; }
.inner-hero__content h1 { margin:0; font-size:clamp(4rem,7vw,8rem); }
.inner-hero__content p { margin:0 0 .7rem; font-size:1.05rem; }
.about-editorial__grid { grid-template-columns:1.08fr .92fr; }
.about-editorial h2 { font-size:clamp(3.3rem,5vw,5.7rem); }
.about-editorial__figure { width:100%; height:620px; }
.challenge__layout { grid-template-columns:.75fr 1.25fr; }
.challenge__numbers { min-height:520px; }
.challenge__copy h2 { font-size:clamp(3rem,4.5vw,5.2rem); }
.about-vision h2,.manifesto-quote blockquote { font-size:clamp(2.8rem,4.4vw,5rem); }

/* Investments: alternating image/text rows, never a pin trap. */
.investment-story { display:grid; grid-template-columns:.7fr 1.3fr; padding-block:7rem; gap:5vw; }
.investment-story__visual { position:sticky; top:95px; height:calc(100vh - 130px); margin-inline-start:5vw; }
.investment-story__steps { padding:0 5vw 0 0; }
.investment-step { min-height:65vh; opacity:1; border-bottom:1px solid rgba(255,255,255,.16); }
.investment-step h2 { font-size:clamp(2.6rem,3.5vw,4.2rem); }
.systems__bands { border-bottom:1px solid #cad9ce; }
.system-band { padding:3.2rem 5vw; }
.system-band h3 { font-size:1.8rem; }

/* Impact ecosystem becomes a clean 2x2 linked matrix. */
.ecosystem__head h2 { font-size:clamp(3.2rem,5vw,5.7rem); }
.ecosystem__canvas { width:min(90vw,1100px); }
.eco-node { width:210px; min-height:155px; }
.impact-standard { min-height:70vh; }
.impact-standard h2 { font-size:clamp(3.3rem,5.5vw,6.2rem); }

/* Contact and legal. */
.contact-hero { min-height:100svh; }
.contact-hero__copy h1 { font-size:clamp(3.8rem,6vw,6.8rem); }
.contact-form { max-width:640px; justify-self:end; padding:3rem; }
.legal-copy h1 { font-size:clamp(3.6rem,6vw,6.8rem); }

@media (max-width: 1024px) {
    .hero__media { inset:0 30% 0 0; }
    .hero__content { grid-template-columns:.65fr 1.35fr; }
    .value-chain__story { grid-template-columns:1fr; }
    .value-chain__visual { min-height:520px; }
    .bio-orbit { width:min(65vw,430px); }
    .worlds__track { height:68svh; }
    .world-panel__copy { inset:auto 1.5rem 2rem; }
    .impact-cta__inner { grid-template-columns:1fr; }
    .impact-cta__inner .text-link { justify-self:start; }
}

@media (max-width: 768px) {
    html { font-size:75%; }
    .container { width:88vw; }
    .section { padding-block:7rem; }
    .site-header__inner { grid-template-columns:120px 1fr; }
    .site-brand { width:82px; height:66px; padding:5px 7px; }
    .hero { min-height:96svh; }
    .hero__media { inset:0; }
    .hero__media::after { background:linear-gradient(0deg,rgba(5,45,45,.95),rgba(5,45,45,.2) 70%); }
    .hero__overlay { background:linear-gradient(0deg,rgba(4,39,39,.92),rgba(4,39,39,.1) 72%); }
    .hero__content { display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; gap:1.5rem; padding-top:100px; padding-bottom:4.5rem; }
    .hero__kicker { order:0; padding:0; }
    .hero__title { order:1; max-width:100%; font-size:clamp(3.3rem,12vw,4.6rem); }
    .hero__lower { order:2; display:grid; }
    .hero__scroll,.hero__coordinate { display:none; }
    .manifesto__grid { display:flex; flex-direction:column; }
    .manifesto__statement { order:1; }.manifesto__body { order:2; }.manifesto__image { order:3; width:100%; height:105vw; }
    .manifesto__statement h2 { font-size:3rem; }
    .value-chain__intro { grid-template-columns:1fr; }
    .value-chain__story { display:block; }
    .value-chain__visual { min-height:88vw; margin-bottom:4rem; }
    .value-chain__steps { grid-template-columns:1fr; }
    .chain-step,.chain-step:nth-child(even) { min-height:auto; padding:2.4rem 1rem; border-inline-end:0; }
    .vision__inner { grid-template-columns:1fr; }
    .vision__icon { width:90px; }
    .principles__head { grid-template-columns:1fr; }
    .principles__track { grid-template-columns:1fr; width:88vw; }
    .principle { min-height:auto; padding:3rem 2rem; }
    .arms-preview__layout { grid-template-columns:1fr; }
    .arms-preview__intro { position:relative; top:auto; }
    .worlds__track { display:block; height:auto; }
    .world-panel { height:72svh; }
    .world-panel h2 { font-size:3rem; }
    .site-footer__top { grid-template-columns:1fr; }
    .inner-hero { min-height:70svh; }
    .inner-hero__content { display:block; }
    .inner-hero__content h1 { margin:1rem 0 2rem; font-size:4rem; }
    .investment-story { display:block; padding:0; }
    .investment-story__visual { position:relative; top:auto; height:55svh; margin:0; }
    .investment-story__steps { padding:2rem 6vw 6rem; }
    .investment-step { min-height:auto; padding:5rem 0; }
    .contact-hero__layout { grid-template-columns:1fr; }
    .contact-form { justify-self:stretch; }
}

@media (max-width: 430px) {
    body { font-size:1rem; }
    .hero__title { font-size:3.35rem; }
    .hero__pillars { flex-wrap:wrap; }
    .manifesto__statement h2,.vision h2 { font-size:2.65rem; }
    .value-chain__intro h2,.principles__head h2,.arms-preview__intro h2,.ecosystem__head h2 { font-size:3rem; }
    .arm-row { grid-template-columns:34px 30px 1fr 18px; }
    .impact-cta__inner h2 { font-size:3rem; }
}

/* ADCO 3.0 refinements */
html { font-size:68.75%; }
body { font-size:1.05rem; }
.hero__title { font-size:clamp(3.2rem,4.6vw,5.25rem); }
.manifesto__statement h2 { font-size:clamp(2.7rem,3.8vw,4.5rem); }
.value-chain__intro h2,.principles__head h2,.arms-preview__intro h2 { font-size:clamp(2.9rem,4.5vw,5.15rem); }
.vision h2 { font-size:clamp(2.35rem,3.4vw,4rem); }
.inner-hero__content h1 { font-size:clamp(3.4rem,5.8vw,6.4rem); }
.contact-hero__copy h1,.legal-copy h1 { font-size:clamp(3.2rem,5vw,5.7rem); }

.site-header__inner { grid-template-columns:132px 1fr auto; }
.site-brand,.site-header.is-scrolled .site-brand { width:92px; height:70px; padding:0; background:transparent; box-shadow:none; }
.site-brand img,.site-brand .custom-logo,.site-header.is-scrolled .site-brand img,.site-header.is-scrolled .site-brand .custom-logo { max-height:68px; }
body:not(.home) .site-header { color:var(--color-ink); background:rgba(244,248,242,.94); box-shadow:0 1px rgba(13,75,70,.1); backdrop-filter:blur(12px); }
body:not(.home) .site-header__inner { border-bottom-color:rgba(13,75,70,.12); }
.header-nav { justify-self:center; }
.header-menu { display:flex; align-items:center; justify-content:center; gap:clamp(1.7rem,2.7vw,3.4rem); margin:0; padding:0; list-style:none; }
.header-menu > li > a { position:relative; display:flex; align-items:center; gap:.4rem; padding:.7rem 0; font-size:.84rem; font-weight:700; }
.header-menu > li > a::after { content:""; position:absolute; inset:auto 0 0; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.header-menu > li > a:hover::after,.header-menu > li > a:focus-visible::after,.header-menu .current-menu-item > a::after { transform:scaleX(1); }
.header-menu .menu-index { display:none; }
.menu-toggle { display:none; }

.contact-panel { position:relative; overflow:hidden; color:var(--color-ink); background:#eaf2e8; }
.contact-panel__grid { position:absolute; inset:0; opacity:.06; background-image:linear-gradient(var(--color-primary) 1px,transparent 1px),linear-gradient(90deg,var(--color-primary) 1px,transparent 1px); background-size:7vw 7vw; }
.contact-panel__layout { position:relative; display:grid; grid-template-columns:1fr 1fr; align-items:stretch; box-shadow:0 25px 75px rgba(6,48,46,.12); }
.contact-panel__details { padding:clamp(4rem,6vw,7rem); color:#fff; background:#0b5052; }
.contact-panel__details h1,.contact-panel__details h2 { margin:1.5rem 0 1.2rem; font-size:clamp(3rem,4.7vw,5.2rem); line-height:1.25; letter-spacing:-.04em; }
.contact-panel__details h1 em,.contact-panel__details h2 em { color:var(--color-green-pale); font-style:normal; font-weight:300; }
.contact-panel__intro { max-width:520px; color:rgba(255,255,255,.68); }
.contact-details { margin-top:4rem; border-top:1px solid rgba(255,255,255,.18); }
.contact-detail { display:grid; grid-template-columns:32px 105px 1fr; align-items:center; gap:1rem; padding:1.25rem 0; border-bottom:1px solid rgba(255,255,255,.18); }
.contact-detail > i { color:var(--color-green-light); font-size:1.2rem; }
.contact-detail > span { color:rgba(255,255,255,.55); font-size:.72rem; }
.contact-detail > a,.contact-detail > strong { min-width:0; overflow-wrap:anywhere; font-size:.88rem; font-weight:400; }
.contact-detail > strong { color:rgba(255,255,255,.42); }
.contact-panel__form-wrap { padding:clamp(3rem,5vw,6rem); background:#f9fbf7; }
.contact-panel__form-head { display:grid; grid-template-columns:40px 1fr; gap:.15rem 1rem; margin-bottom:2.5rem; padding-bottom:1.5rem; border-bottom:1px solid #c8d5ca; }
.contact-panel__form-head span { grid-row:span 2; color:var(--color-green-medium); font-size:.72rem; }
.contact-panel__form-head strong { font-size:1.25rem; }.contact-panel__form-head small { color:#667a73; }
.contact-form--panel { max-width:none; padding:0; background:transparent; box-shadow:none; }
.contact-form--panel label { margin-bottom:1.25rem; }
.contact-form--panel input,.contact-form--panel textarea { padding:.75rem 0; }
.contact-panel--page { min-height:100svh; padding-top:clamp(11rem,13vw,15rem); }
.contact-panel--home { border-top:1px solid rgba(19,95,97,.15); }

@media (max-width: 1180px) and (min-width: 901px) {
    .header-nav { display:block!important; }
    .header-menu { gap:1.4rem; }
}

@media (max-width: 900px) {
    .site-header__inner { position:relative; grid-template-columns:105px 1fr auto; }
    .site-brand { width:76px; height:62px; }
    .header-nav { position:fixed; display:block!important; z-index:880; inset:92px 0 auto; width:100%; padding:0 5vw; color:var(--color-ink); background:rgba(244,248,242,.98); border-bottom:1px solid rgba(19,95,97,.18); box-shadow:0 18px 38px rgba(6,48,46,.12); max-height:0; overflow:hidden; visibility:hidden; opacity:0; transform:translateY(-8px); transition:max-height .45s var(--ease),opacity .3s,transform .4s,visibility 0s .45s,padding .4s,top .3s; }
    .site-header.is-scrolled .header-nav { top:74px; }
    .header-nav.is-open { max-height:520px; padding-block:1.4rem; visibility:visible; opacity:1; transform:none; transition-delay:0s; }
    .header-menu { display:flex; flex-direction:column; align-items:stretch; gap:0; }
    .header-menu > li > a { justify-content:space-between; padding:1rem 0; border-bottom:1px solid rgba(19,95,97,.13); font-size:1rem; }
    .header-menu > li:last-child > a { border-bottom:0; }
    .menu-toggle { display:flex; }
    .menu-toggle.is-active .menu-toggle__icon i:first-child { transform:translateY(3px) rotate(45deg); }
    .menu-toggle.is-active .menu-toggle__icon i:last-child { transform:translateY(-3px) rotate(-45deg); }
    .menu-toggle__icon i { transition:transform .3s; }
    .site-header__actions { justify-self:end; }
    .contact-panel__layout { grid-template-columns:1fr; }
    .contact-panel__details,.contact-panel__form-wrap { padding:5rem 6vw; }
}

@media (max-width: 620px) {
    html { font-size:68.75%; }
    .site-header__inner { grid-template-columns:82px 1fr auto; }
    .site-header__actions .language-switcher { display:flex; }
    .menu-toggle__label { display:none; }
    .hero__title { font-size:3rem; }
    .manifesto__statement h2,.vision h2 { font-size:2.4rem; }
    .inner-hero__content h1 { font-size:3.45rem; }
    .contact-panel__details h1,.contact-panel__details h2 { font-size:3rem; }
    .contact-detail { grid-template-columns:28px 78px 1fr; gap:.7rem; }
    .contact-panel__form-wrap { padding-inline:5vw; }
    .contact-form--panel .form-row { grid-template-columns:1fr; }
}
