:root {
    --black: #0a0a0a;
    --white: #ffffff;
    --off-white: #f5f5f1;
    --accent: #ff5a1f;
    --text: #0a0a0a;
    --muted: #6a6a67;
    --border: #deded8;
    --container: 1280px;
    --pad: clamp(20px, 4vw, 56px);
    --section: clamp(72px, 10vw, 144px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    padding-top: 82px;
    background: var(--off-white);
    color: var(--text);
    font-family: Inter, Arial, Helvetica, sans-serif;
    font-size: 18px;
    line-height: 1.55;
}
a { color: inherit; }
img { max-width: 100%; height: auto; display: block; }
.container { width: min(var(--container), calc(100% - (var(--pad) * 2))); margin-inline: auto; }
.section { padding: var(--section) 0; }
.section--dark { background: var(--black); color: var(--white); }

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 9999;
    background: rgba(245,245,241,.92);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(10,10,10,.08);
    transform: none;
    transition: none;
}
.site-header__inner { height: 82px; min-height: 82px; display:flex; align-items:center; justify-content:space-between; gap:32px; }

/* Keep the fixed site header below the WordPress admin bar while logged in. */
.admin-bar .site-header { top: 32px; }
.brand { text-decoration:none; font-weight:800; letter-spacing:-.03em; }
.brand__text { font-size: 20px; }
.site-nav { display:flex; align-items:center; gap:28px; }
.site-nav__menu { display:flex; gap:26px; margin:0; padding:0; list-style:none; }
.site-nav__menu a { text-decoration:none; font-size:15px; font-weight:650; }

/* v0.7.70 — Header: compact "Onze Stichting" dropdown. */
.site-nav__item--dropdown { position:relative; }
.site-nav__dropdown-link { display:inline-flex; align-items:center; gap:6px; }
.site-nav__dropdown-arrow {
    display:inline-block;
    font-size:14px;
    line-height:1;
    transform:translateY(-1px);
    transition:transform .2s ease;
}
.site-nav__submenu {
    position:absolute;
    z-index:30;
    top:calc(100% + 14px);
    left:-20px;
    min-width:220px;
    margin:0;
    padding:10px;
    list-style:none;
    background:var(--white);
    border:1px solid rgba(10,10,10,.09);
    border-radius:16px;
    box-shadow:0 18px 46px rgba(10,10,10,.12);
    opacity:0;
    visibility:hidden;
    transform:translateY(-6px);
    transition:opacity .2s ease, transform .2s ease, visibility .2s;
}
.site-nav__submenu::before {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:100%;
    height:16px;
}
.site-nav__submenu li + li { margin-top:2px; }
.site-nav__submenu a {
    display:block;
    padding:11px 12px;
    border-radius:10px;
    white-space:nowrap;
    transition:background-color .18s ease;
}
.site-nav__submenu a:hover,
.site-nav__submenu a:focus-visible { background:var(--off-white); }
.site-nav__item--dropdown:hover .site-nav__submenu,
.site-nav__item--dropdown:focus-within .site-nav__submenu {
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}
.site-nav__item--dropdown:hover .site-nav__dropdown-arrow,
.site-nav__item--dropdown:focus-within .site-nav__dropdown-arrow { transform:translateY(-1px) rotate(180deg); }

.menu-toggle { display:none; border:0; background:none; padding:10px; }
.menu-toggle span:not(.screen-reader-text) { display:block; width:24px; height:2px; margin:5px 0; background:var(--black); }

.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 22px; text-decoration:none; font-weight:750; border:1px solid var(--black); }
.button--accent { background:var(--accent); border-color:var(--accent); color:var(--black); }

/* Featured project CTA: deliberately softer and more modern than the structural UI. */
.site-nav__actions {
    display:flex;
    align-items:center;
    gap:10px;
}

.site-nav__cta {
    min-height: 46px;
    padding: 0 21px 0 23px;
    border-radius: 999px;
    gap: 10px;
    white-space: nowrap;
    line-height: 1;
    transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease;
    will-change: transform;
}
.site-nav__cta::after {
    content: "→";
    display: inline-block;
    font-size: 1.05em;
    line-height: 1;
    transition: transform .22s ease;
}
.site-nav__cta:hover,
.site-nav__cta:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(10,10,10,.12);
}
.site-nav__cta:hover::after,
.site-nav__cta:focus-visible::after {
    transform: translateX(3px);
}
.site-nav__cta:active {
    transform: translateY(0);
    box-shadow: 0 3px 10px rgba(10,10,10,.10);
}
.text-link { font-weight:750; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:2px; }

.hero { padding: clamp(34px, 4.5vh, 50px) 0; min-height:calc(100svh - 82px); box-sizing:border-box; display:flex; align-items:center; }
.hero__inner { max-width: 1100px; }
.hero h1 { margin:.10em 0 .24em; font-size:clamp(58px, 7.6vw, 118px); line-height:.86; letter-spacing:-.065em; font-weight:850; }
.hero__lead { max-width:760px; margin:0; font-size:clamp(20px, 2vw, 30px); line-height:1.22; color:#343431; }
.hero__actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:28px; }
.eyebrow { margin:0 0 18px; font-size:13px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.eyebrow--light { color:#bdbdb7; }

h1,h2,h3 { letter-spacing:-.045em; line-height:1; }
h2 { font-size:clamp(44px, 7vw, 96px); margin:.15em 0 .3em; }
.prose { max-width:900px; }
.prose h1 { font-size:clamp(56px, 8vw, 110px); margin:.15em 0 .5em; }
.prose p { max-width:760px; }

.card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-top:56px; }
.card { background:var(--white); border:1px solid var(--border); }
.card__media { aspect-ratio:16/10; overflow:hidden; background:#ddd; }
.card__media img { width:100%; height:100%; object-fit:cover; }
.card__body { padding:28px; }
.card__body h2 { font-size:34px; }
.partner-logo { max-width:260px; margin:32px 0; }

.site-footer { background:var(--black); color:var(--white); padding:96px 0 28px; }
.site-footer__grid { display:grid; grid-template-columns:2fr 1fr; gap:72px; }
.site-footer__brand { font-size:clamp(64px,9vw,126px); font-weight:850; line-height:.78; letter-spacing:-.07em; }
.site-footer__tagline { max-width:420px; color:#b9b9b4; margin-top:30px; }
.site-footer__menu { list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.site-footer__menu a { color:white; text-decoration:none; }
.site-footer__bottom { border-top:1px solid #2c2c2c; margin-top:72px; padding-top:24px; display:flex; justify-content:space-between; gap:24px; color:#8e8e89; font-size:13px; }
.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media (max-width: 900px) {
    body { font-size:17px; padding-top:72px; }
    .site-header__inner { height:72px; min-height:72px; }
    .menu-toggle { display:block; }
    .site-nav { display:none; position:absolute; inset:72px 0 auto; background:var(--off-white); padding:28px var(--pad) 36px; border-bottom:1px solid var(--border); }
    .site-nav.is-open { display:block; }
    .site-nav__menu { flex-direction:column; gap:18px; margin-bottom:24px; }
    .site-nav__menu a { font-size:26px; letter-spacing:-.03em; }
    .site-nav__item--dropdown { display:block; }
    .site-nav__dropdown-link { width:fit-content; }
    .site-nav__dropdown-arrow { display:none; }
    .site-nav__submenu {
        position:static;
        min-width:0;
        margin:10px 0 0 18px;
        padding:0 0 0 16px;
        border:0;
        border-left:1px solid rgba(10,10,10,.16);
        border-radius:0;
        box-shadow:none;
        background:transparent;
        opacity:1;
        visibility:visible;
        transform:none;
        transition:none;
    }
    .site-nav__submenu::before { display:none; }
    .site-nav__submenu li + li { margin-top:8px; }
    .site-nav__submenu a { padding:3px 0; border-radius:0; font-size:18px; letter-spacing:-.02em; }
    .site-nav__submenu a:hover,
    .site-nav__submenu a:focus-visible { background:transparent; }
    .site-nav__actions { display:flex; flex-wrap:wrap; gap:10px; }
    .site-nav__cta { width: fit-content; min-height: 50px; padding-inline: 24px 21px; }
    .site-footer__grid { grid-template-columns:1fr; }
    .site-footer__bottom { flex-direction:column; }
    .card-grid { grid-template-columns:1fr; }
    .hero { min-height:auto; padding:54px 0 64px; }
}

/* Homepage content blocks */
.section--white { background: var(--white); }
.section--accent { background: var(--accent); color: var(--black); }
.content-block { max-width: 1040px; }
.content-block h2, .split-heading h2 { max-width: 1000px; }
.section-lead { max-width: 780px; font-size: clamp(20px, 2vw, 30px); line-height: 1.35; color: #41413e; }
.section-lead--light { color: #bdbdb7; }
.section-button { margin-top: 30px; }
.button--light { background: var(--white); color: var(--black); border-color: var(--white); }
.button--dark { background: var(--black); color: var(--white); border-color: var(--black); }

.content-block--cta h2 { max-width: 900px; }

/* v0.7.25 — homepage block 2 keeps exactly the same total vertical spacing,
   but its content starts earlier: half the normal space above, 1.5x below. */
.section.home-position--2 {
    padding-top: clamp(36px, 5vw, 72px);
    padding-bottom: clamp(108px, 15vw, 216px);
}


/* v0.7.26 — scroll-linked blur-to-sharp reveal for homepage position 2 */
.section.home-position--2 .eyebrow,
.section.home-position--2 h2,
.section.home-position--2 .section-lead,
.section.home-position--2 .section-button,
/* v0.7.26 — scroll-linked blur-to-sharp reveal for homepage position 2 */
{
    --focus-progress: 0;
    filter: blur(calc((1 - var(--focus-progress)) * 12px));
    opacity: calc(.22 + (var(--focus-progress) * .78));
    will-change: filter, opacity;
}

.section.home-position--2 .eyebrow {
    --focus-offset: 0;
}
.section.home-position--2 h2 {
    --focus-offset: .08;
}
.section.home-position--2 .section-lead {
    --focus-offset: .16;
}
.section.home-position--2 .section-button {
    --focus-offset: .24;
}

@media (max-width: 640px) {
    .offer-grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .section.home-position--2 .eyebrow,
    .section.home-position--2 h2,
    .section.home-position--2 .section-lead,
    .section.home-position--2 .section-button,
{
        filter: none !important;
        opacity: 1 !important;
    }
}

/* v0.7.24 — dynamic homepage colour sequence: light → dark → accent */
.home-tone--light {
    background: var(--off-white);
    color: var(--black);
}
.home-tone--dark {
    background: var(--black);
    color: var(--white);
}
.home-tone--accent {
    background: var(--accent);
    color: var(--black);
}

/* Body copy and labels adapt automatically to the active section tone. */
.home-tone--light .section-lead,
.home-tone--light .hero__lead {
    color: #41413e;
}
.home-tone--dark .section-lead,
.home-tone--dark .hero__lead {
    color: #bdbdb7;
}
.home-tone--accent .section-lead,
.home-tone--accent .hero__lead {
    color: #232321;
}
.home-tone--light .eyebrow,
.home-tone--accent .eyebrow {
    color: var(--black);
}
.home-tone--dark .eyebrow {
    color: #bdbdb7;
}

/* Keep buttons clearly visible on every background. */
.home-tone--dark .button--dark {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--black);
}
.home-tone--accent .button--accent {
    background: var(--black);
    border-color: var(--black);
    color: var(--white);
}
.home-tone--dark .text-link {
    color: var(--white);
}
.home-tone--accent .text-link,
.home-tone--light .text-link {
    color: var(--black);
}



/* v0.7.28 — compact offer section, visually kept within hero scale on desktop */
.offer-section {
    min-height: 84svh;
    padding-top: clamp(44px, 5.5vh, 68px);
    padding-bottom: clamp(44px, 5.5vh, 68px);
    box-sizing: border-box;
    display: flex;
    align-items: center;
}


/* v0.7.30 — staged intro sequence for homepage offer block */
.offer-section {
    position: relative;
    overflow: hidden;
}
.offer-section__content {
    position: relative;
    z-index: 2;
    width: 100%;
    display: flex;
    align-items: center;
}
.offer-intro-overlay {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: grid;
    place-items: center;
    pointer-events: none;
    perspective: 1000px;
}
.offer-intro-overlay__text {
    max-width: min(86vw, 1100px);
    text-align: center;
    font-size: clamp(48px, 7.2vw, 112px);
    line-height: .88;
    letter-spacing: -.055em;
    font-weight: 900;
    color: var(--black);
    transform-origin: center center;
    backface-visibility: hidden;
}
.offer-section:not(.offer-sequence--revealing):not(.offer-sequence--done) .offer-card {
    visibility: hidden;
}
.offer-section.offer-sequence--revealing .offer-intro-overlay__text {
    animation: evolvoOfferBackflipOut .56s cubic-bezier(.55,.08,.65,.98) .42s both;
}
.offer-section.offer-sequence--revealing .offer-intro-overlay {
    animation: evolvoOfferOverlayHide .01s linear 1.00s forwards;
}
.offer-section.offer-sequence--revealing .offer-card {
    visibility: visible;
    animation: evolvoOfferCardFromLeft .64s cubic-bezier(.16,.84,.32,1) both;
}
.offer-section.offer-sequence--revealing .offer-card:nth-child(4) { animation-delay: .86s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(3) { animation-delay: 1.50s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(2) { animation-delay: 2.14s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(1) { animation-delay: 2.78s; }

.offer-section.offer-sequence--done .offer-intro-overlay {
    display: none;
}
.offer-section.offer-sequence--done .offer-card {
    visibility: visible;
    opacity: 1;
    transform: translateX(0);
}

@keyframes evolvoOfferBackflipOut {
    0% {
        opacity: 1;
        transform: perspective(1000px) rotateX(0deg) translateY(0);
    }
    100% {
        opacity: 0;
        transform: perspective(1000px) rotateX(-100deg) translateY(-8px);
    }
}
@keyframes evolvoOfferOverlayHide {
    to { visibility: hidden; }
}
@keyframes evolvoOfferCardFromLeft {
    from {
        opacity: 0;
        transform: translateX(-110px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* v0.7.27 — Evolvo offer postcards */
.offer-section__head {
    max-width: 920px;
    margin-bottom: clamp(20px, 2.5vw, 30px);
}
.offer-section__head .eyebrow {
    margin-bottom: 10px;
}
.offer-section__head h2 {
    margin-top: 0;
    margin-bottom: 10px;
    font-size: clamp(42px, 5vw, 72px);
    line-height: .94;
}
.offer-section__head .section-lead {
    max-width: 760px;
    margin-top: 0;
    font-size: clamp(17px, 1.45vw, 21px);
    line-height: 1.35;
}
.offer-section__head h2 {
    max-width: 900px;
}
.offer-grid {
    width: calc(100% - clamp(24px, 3vw, 48px));
    margin-inline: auto;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(16px, 1.7vw, 24px);
}
.offer-card {
    min-height: clamp(380px, 34vw, 420px);
    padding: clamp(24px, 2.2vw, 32px);
    background: var(--off-white);
    color: var(--black);
    border: 1px solid rgba(10,10,10,.10);
    border-radius: 32px;
    box-shadow: 0 18px 50px rgba(10,10,10,.08);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transform: translateX(-110px);
    opacity: 0;
    transition:
        transform .72s cubic-bezier(.16,.84,.32,1),
        opacity .58s ease,
        box-shadow .28s ease;
    will-change: transform, opacity;
}
.offer-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}
.offer-card__number {
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .12em;
}
.offer-card__subtitle {
    max-width: 145px;
    text-align: right;
    font-size: 12px;
    line-height: 1.25;
    font-weight: 750;
}

.offer-card__visual {
    width: 100%;
    height: clamp(116px, 10.5vw, 150px);
    margin-top: clamp(14px, 1.5vw, 20px);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--black);
}
.offer-card__visual svg {
    width: 100%;
    height: 100%;
    overflow: visible;
}
.offer-graphic__path,
.offer-graphic__link {
    fill: none;
    stroke: currentColor;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.offer-graphic__node {
    fill: currentColor;
    transform-box: fill-box;
    transform-origin: center;
}
.offer-graphic__shape {
    fill: none;
    stroke: currentColor;
    stroke-width: 3;
    transform-box: fill-box;
    transform-origin: center;
}

/* Each illustration starts dormant and animates after its card has landed. */
.offer-card__visual--community .offer-graphic__link {
    stroke-dasharray: 180;
    stroke-dashoffset: 180;
}
.offer-card__visual--community .offer-graphic__node,
.offer-card__visual--coaching .offer-graphic__node,
.offer-card__visual--mentorship .offer-graphic__node {
    opacity: 0;
    transform: scale(.62);
}
.offer-card__visual--workshops .offer-graphic__shape {
    opacity: 0;
}
.offer-card__visual--workshops .offer-graphic__shape--workshop-1 {
    transform: translate(-18px, 8px);
}
.offer-card__visual--workshops .offer-graphic__shape--workshop-2 {
    transform: translateY(-12px);
}
.offer-card__visual--workshops .offer-graphic__shape--workshop-3 {
    transform: translate(18px, 8px);
}
.offer-card__visual--mentorship .mentor-compass__mark,
.offer-card__visual--mentorship .mentor-compass__needle-front,
.offer-card__visual--mentorship .mentor-compass__needle-back {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.offer-card__visual--mentorship .mentor-compass__mark {
    stroke-width: 2;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    transform: scale(.55);
}

.offer-card__visual--mentorship .mentor-compass__needle {
    transform-box: view-box;
    transform-origin: 130px 75px;
    transform: rotate(28deg);
    opacity: 0;
}

.offer-card__visual--mentorship .mentor-compass__needle-front {
    stroke-width: 3;
}

.offer-card__visual--mentorship .mentor-compass__needle-back {
    stroke-width: 2;
    opacity: .38;
}

.offer-card__visual--mentorship .mentor-compass__needle-tip {
    fill: currentColor;
    stroke: none;
}

.offer-card__visual--mentorship .mentor-compass__pivot-ring {
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    transform: scale(.55);
}

.offer-card__visual--mentorship .mentor-compass__pivot {
    fill: currentColor;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    transform: scale(.55);
}

@keyframes evolvoCompassMarkIn {
    from { opacity: 0; transform: scale(.55); }
    to { opacity: .48; transform: scale(1); }
}

@keyframes evolvoCompassPivotIn {
    from { opacity: 0; transform: scale(.55); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes evolvoCompassFindDirection {
    0% { opacity: 0; transform: rotate(28deg); }
    18% { opacity: 1; transform: rotate(28deg); }
    48% { opacity: 1; transform: rotate(-12deg); }
    72% { opacity: 1; transform: rotate(6deg); }
    88% { opacity: 1; transform: rotate(-2deg); }
    100% { opacity: 1; transform: rotate(0deg); }
}

.offer-section.offer-sequence--revealing .offer-card:nth-child(1) .mentor-compass__mark {
    animation: evolvoCompassMarkIn .34s cubic-bezier(.16,1,.3,1) forwards;
}
.offer-section.offer-sequence--revealing .offer-card:nth-child(1) .mentor-compass__mark--north { animation-delay: 3.38s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(1) .mentor-compass__mark--east { animation-delay: 3.46s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(1) .mentor-compass__mark--south { animation-delay: 3.54s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(1) .mentor-compass__mark--west { animation-delay: 3.62s; }

.offer-section.offer-sequence--revealing .offer-card:nth-child(1) .mentor-compass__pivot-ring,
.offer-section.offer-sequence--revealing .offer-card:nth-child(1) .mentor-compass__pivot {
    animation: evolvoCompassPivotIn .36s cubic-bezier(.16,1,.3,1) forwards;
    animation-delay: 3.66s;
}

.offer-section.offer-sequence--revealing .offer-card:nth-child(1) .mentor-compass__needle {
    animation: evolvoCompassFindDirection 1.45s cubic-bezier(.22,.72,.24,1) forwards;
    animation-delay: 3.78s;
}

.offer-section.offer-sequence--done .mentor-compass__mark {
    opacity: .48;
    transform: scale(1);
}
.offer-section.offer-sequence--done .mentor-compass__pivot-ring,
.offer-section.offer-sequence--done .mentor-compass__pivot {
    opacity: 1;
    transform: scale(1);
}
.offer-section.offer-sequence--done .mentor-compass__needle {
    opacity: 1;
    transform: rotate(0deg);
}

.offer-card__visual--coaching .offer-graphic__path,
.offer-card__visual--mentorship .offer-graphic__path {
    stroke-dasharray: 320;
    stroke-dashoffset: 320;
}

/* Reverse reveal remains intact: Community → Workshops → Coaching → Mentorship. */
.offer-section.offer-sequence--revealing .offer-card:nth-child(4) .offer-graphic__link {
    animation: evolvoCommunityLinkIn .48s ease forwards;
}
.offer-section.offer-sequence--revealing .offer-card:nth-child(4) .offer-graphic__link--community-1 { animation-delay: 1.50s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(4) .offer-graphic__link--community-2 { animation-delay: 1.56s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(4) .offer-graphic__link--community-3 { animation-delay: 1.62s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(4) .offer-graphic__link--community-4 { animation-delay: 1.68s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(4) .offer-graphic__link--community-5 { animation-delay: 1.74s; }

.offer-section.offer-sequence--revealing .offer-card:nth-child(4) .offer-graphic__node {
    animation: evolvoOfferNodeIn .32s cubic-bezier(.16,1,.3,1) forwards;
}
.offer-section.offer-sequence--revealing .offer-card:nth-child(4) .offer-graphic__node--community-1 { animation-delay: 1.48s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(4) .offer-graphic__node--community-2 { animation-delay: 1.58s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(4) .offer-graphic__node--community-3 { animation-delay: 1.68s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(4) .offer-graphic__node--community-4 { animation-delay: 1.78s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(4) .offer-graphic__node--community-5 { animation-delay: 1.88s; }

.offer-section.offer-sequence--revealing .offer-card:nth-child(3) .offer-graphic__shape {
    animation: evolvoWorkshopShapeIn .42s cubic-bezier(.16,1,.3,1) forwards;
}
.offer-section.offer-sequence--revealing .offer-card:nth-child(3) .offer-graphic__shape--workshop-1 { animation-delay: 2.14s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(3) .offer-graphic__shape--workshop-2 { animation-delay: 2.24s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(3) .offer-graphic__shape--workshop-3 { animation-delay: 2.34s; }

.offer-section.offer-sequence--revealing .offer-card:nth-child(2) .offer-graphic__path {
    animation: evolvoCoachPathIn .58s ease forwards;
    animation-delay: 2.78s;
}
.offer-section.offer-sequence--revealing .offer-card:nth-child(2) .offer-graphic__node {
    animation: evolvoOfferNodeIn .32s cubic-bezier(.16,1,.3,1) forwards;
}
.offer-section.offer-sequence--revealing .offer-card:nth-child(2) .offer-graphic__node--coach-1 { animation-delay: 2.76s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(2) .offer-graphic__node--coach-2 { animation-delay: 2.92s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(2) .offer-graphic__node--coach-3 { animation-delay: 3.08s; }
.offer-section.offer-sequence--revealing .offer-card:nth-child(2) .offer-graphic__node--coach-4 { animation-delay: 3.24s; }



.offer-section.offer-sequence--done .offer-graphic__link,
.offer-section.offer-sequence--done .offer-graphic__path {
    stroke-dashoffset: 0;
}
.offer-section.offer-sequence--done .offer-graphic__node,
.offer-section.offer-sequence--done .offer-graphic__shape {
    opacity: 1;
    transform: none;
}

@keyframes evolvoCommunityLinkIn {
    to { stroke-dashoffset: 0; }
}
@keyframes evolvoOfferNodeIn {
    to {
        opacity: 1;
        transform: scale(1);
    }
}
@keyframes evolvoWorkshopShapeIn {
    to {
        opacity: 1;
        transform: none;
    }
}
@keyframes evolvoCoachPathIn {
    to { stroke-dashoffset: 0; }
}

.offer-card__body {
    margin-top: auto;
    padding-top: 26px;
}
.offer-card__body h3 {
    margin: 0 0 8px;
    font-size: clamp(28px, 2.35vw, 40px);
    line-height: .94;
    letter-spacing: -.05em;
}
.offer-card__body p {
    max-width: 34ch;
    margin: 0;
    color: #41413e;
    font-size: 15.5px;
    line-height: 1.38;
}
.offer-card__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    margin-top: 14px;
    color: var(--black);
    text-decoration: none;
    font-size: 14px;
    font-weight: 800;
}
.offer-card__link span {
    transition: transform .22s ease;
}
.offer-section.offer-sequence--done .offer-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 18px 44px rgba(10,10,10,.12);
}
.offer-card:hover .offer-card__link span,
.offer-card__link:focus-visible span {
    transform: translateX(5px);
}

@media (min-width: 901px) and (max-height: 800px) {
    .offer-section {
        min-height: 84svh;
        padding-top: 34px;
        padding-bottom: 34px;
    }
    .offer-section__head {
        margin-bottom: 18px;
    }
    .offer-section__head h2 {
        font-size: clamp(38px, 4.4vw, 62px);
        margin-bottom: 8px;
    }
    .offer-section__head .section-lead {
        font-size: 16px;
    }
    .offer-card {
        min-height: 330px;
        padding: 24px 28px;
        border-radius: 32px;
    }
    .offer-card__body {
        padding-top: 22px;
    }
    .offer-card__body h3 {
        font-size: clamp(28px, 2.5vw, 38px);
    }
    .offer-card__body p {
        font-size: 14.5px;
        line-height: 1.34;
    }
}


/* v0.7.92 — clean typography with a handwriting-style reveal mask.
   The final text itself is never hand-drawn. */
.offer-drive-script {
    position: absolute;
    right: max(24px, calc((100vw - min(1180px, calc(100vw - 48px))) / 2 + 18px));
    bottom: clamp(12px, 1.8vh, 24px);
    z-index: 3;
    width: clamp(275px, 24vw, 365px);
    display: block;
    color: var(--black);
    text-decoration: none;
    transform: rotate(-2deg);
    transform-origin: 62% 50%;
    pointer-events: none;
}

.offer-section.offer-sequence--done .offer-drive-script {
    pointer-events: auto;
}

.offer-drive-script__svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

/* v0.7.95 — the final wordmark is a fixed vector outline.
   Typography no longer depends on browser text layout, kerning or font availability. */
.offer-drive-vector-wordmark,
.offer-drive-wordmark-path {
    fill: currentColor;
}

/* Each indexed stroke paints white into the mask and reveals the clean type underneath. */
.offer-drive-mask-stroke {
    fill: none;
    stroke: white;
    stroke-width: 34;
    stroke-linecap: butt;
    stroke-linejoin: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    opacity: 0;
}

.offer-drive-arrow {
    fill: none;
    stroke: currentColor;
    stroke-width: 2.65;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
}

.offer-section.offer-sequence--done .offer-drive-mask-stroke {
    animation: evolvoOfferDriveWrite .34s cubic-bezier(.22,.74,.24,1) forwards;
}

/* Explicit 9-letter reveal order. Slight overlap makes it feel continuously written. */
.offer-section.offer-sequence--done .offer-drive-mask-stroke--01 { animation-delay: .10s; }
.offer-section.offer-sequence--done .offer-drive-mask-stroke--02 { animation-delay: .30s; }
.offer-section.offer-sequence--done .offer-drive-mask-stroke--03 { animation-delay: .48s; }
.offer-section.offer-sequence--done .offer-drive-mask-stroke--04 { animation-delay: .66s; }
.offer-section.offer-sequence--done .offer-drive-mask-stroke--05 { animation-delay: .98s; }
.offer-section.offer-sequence--done .offer-drive-mask-stroke--06 { animation-delay: 1.16s; }
.offer-section.offer-sequence--done .offer-drive-mask-stroke--07 { animation-delay: 1.32s; }
.offer-section.offer-sequence--done .offer-drive-mask-stroke--08 { animation-delay: 1.46s; }
.offer-section.offer-sequence--done .offer-drive-mask-stroke--09 { animation-delay: 1.62s; }

.offer-section.offer-sequence--done .offer-drive-arrow {
    animation:
        evolvoOfferDriveWrite .55s cubic-bezier(.22,.74,.24,1) 1.98s forwards,
        evolvoOfferDriveArrowFloat 2.2s ease-in-out 2.76s infinite;
}

@keyframes evolvoOfferDriveWrite {
    0% {
        stroke-dashoffset: 1;
        opacity: 0;
    }
    0.1% {
        opacity: 1;
    }
    100% {
        stroke-dashoffset: 0;
        opacity: 1;
    }
}

@keyframes evolvoOfferDriveArrowFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(4px); }
}

@media (max-width: 900px) {
    .offer-section {
        min-height: auto;
        display: block;
        padding-top: 42px;
        padding-bottom: 42px;
    }
    .offer-grid {
        width: 100%;
        margin-inline: 0;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }
    .offer-card {
        min-height: 0;
        padding: 26px;
        border-radius: 24px;
    }
    .offer-card__visual {
        height: 110px;
        margin-top: 12px;
    }
    .offer-card__body {
        padding-top: 26px;
    }
    .offer-card__body h3 {
        font-size: clamp(34px, 10vw, 46px);
    }
    .offer-card__body p {
        font-size: 16px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .offer-intro-overlay {
        display: none !important;
    }
    .offer-section .offer-card {
        visibility: visible !important;
        animation: none !important;
        transform: none !important;
        opacity: 1 !important;
        transition: none !important;
    }
    .offer-section .offer-graphic__link,
    .offer-section .offer-graphic__path {
        stroke-dashoffset: 0 !important;
        animation: none !important;
    }
    .offer-section .offer-graphic__node,
    .offer-section .offer-graphic__shape {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
    }
}


/* v0.7.55 — Impact Soest: anchors scroll to the true section top.
   The fixed header overlays the section, so no strip of the previous block remains visible. */
.impact-anchor {
    scroll-margin-top: 0;
}
.admin-bar .impact-anchor {
    scroll-margin-top: 0;
}
@media (max-width: 900px) {
    .impact-anchor,
    .admin-bar .impact-anchor {
        scroll-margin-top: 0;
    }
}

/* One-page navigation */
.anchor-section { scroll-margin-top:0; }
.admin-bar .anchor-section { scroll-margin-top:0; }
.site-nav__menu a { position: relative; }
.site-nav__menu a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -6px;
    height: 1px;
    background: var(--black);
    transition: right .22s ease;
}
.site-nav__menu a:hover::after,
.site-nav__menu a:focus-visible::after { right: 0; }

@media (max-width: 1100px) and (min-width: 901px) {
    .site-header__inner { gap: 18px; }
    .site-nav { gap: 18px; }
    .site-nav__menu { gap: 16px; }
    .site-nav__menu a { font-size: 14px; }
    .site-nav__cta { padding-inline: 16px; }
}

@media (max-width: 900px) {
    .anchor-section { scroll-margin-top: 82px; }
    .site-nav__menu a::after { display: none; }
}


/* WordPress uses a taller admin bar on narrow screens. */
@media screen and (max-width: 782px) {
    .admin-bar .site-header { top: 46px; }
    .admin-bar .anchor-section { scroll-margin-top: 134px; }
}


/* v0.6 — Impact project */
.button--pill { border-radius:999px; gap:10px; transition:transform .2s ease, box-shadow .2s ease; }
.button--pill:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(10,10,10,.12); }
.project-hero { min-height:calc(100svh - 82px); padding:clamp(34px,4.5vh,50px) 0; box-sizing:border-box; display:flex; align-items:center; background:var(--off-white); overflow:hidden; }
.project-hero__inner { width:100%; max-width:1180px; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr); gap:clamp(36px,5vw,78px); align-items:center; }
.project-hero__copy { min-width:0; position:relative; z-index:2; }
.project-hero h1 { margin:.06em 0 .17em; font-size:clamp(64px,7.7vw,112px); line-height:.83; letter-spacing:-.072em; }
.project-hero__tagline { margin:0; max-width:670px; font-size:clamp(27px,3.15vw,46px); font-weight:750; line-height:1.02; letter-spacing:-.04em; }
.project-hero__intro { max-width:620px; margin:18px 0 0; font-size:20px; color:var(--muted); }
.project-progress { padding:50px 0 72px; background:var(--accent); }
.project-progress__numbers { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.project-progress__numbers div { display:flex; flex-direction:column; }
.project-progress__numbers strong { font-size:clamp(54px,7vw,94px); line-height:.9; letter-spacing:-.06em; }
.project-progress__numbers span { margin-top:10px; font-weight:700; }
.progress-card { margin-top:48px; padding-top:28px; border-top:1px solid rgba(10,10,10,.35); }
.progress-card__top { display:flex; justify-content:space-between; gap:20px; margin-bottom:14px; }
.progress-track { height:14px; overflow:hidden; border-radius:999px; background:rgba(10,10,10,.18); }
.progress-track span { display:block; height:100%; background:var(--black); border-radius:inherit; }
.project-two-col { display:grid; grid-template-columns:minmax(160px,1fr) minmax(0,3fr); gap:clamp(40px,8vw,140px); }
.project-two-col h2 { margin-top:0; }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:58px; background:#30302e; }
.process-step { min-height:290px; padding:30px; background:var(--black); }
.process-step span { color:var(--accent); font-size:13px; font-weight:800; }
.process-step h3 { margin:70px 0 16px; font-size:28px; }
.process-step p { color:#bdbdb7; }
.project-finance { background:#e8e8e2; }
.finance-panel { display:grid; grid-template-columns:1.4fr 1fr; gap:80px; align-items:start; }
.finance-panel h2 { margin-top:.15em; }
.finance-amount { font-size:clamp(80px,10vw,150px); font-weight:850; line-height:.8; letter-spacing:-.075em; color:var(--accent); }
.finance-panel p { max-width:520px; }
.project-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; }
.project-section-heading h2 { max-width:950px; }
.project-section-heading > span { font-size:28px; font-weight:800; white-space:nowrap; }
.partner-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:52px; }
.partner-tile { min-height:180px; display:flex; align-items:center; justify-content:center; padding:28px; background:var(--off-white); text-decoration:none; border:1px solid var(--border); }
.partner-tile img { max-height:90px; width:auto; filter:grayscale(1); }
.empty-partners { margin-top:50px; padding:38px; border:1px solid var(--border); }
.transparency-panel { padding:clamp(38px,6vw,76px); background:var(--black); color:var(--white); }
.transparency-panel h2 { max-width:850px; }
.transparency-panel > div:first-child p { max-width:720px; color:#c6c6c0; }
.transparency-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin:55px 0 24px; background:#353532; }
.transparency-stats div { padding:28px; background:var(--black); display:flex; flex-direction:column; }
.transparency-stats strong { color:var(--accent); font-size:clamp(42px,5vw,72px); line-height:1; }
.transparency-stats span { margin-top:10px; color:#c6c6c0; }
.transparency-panel small { color:#8e8e89; }
.project-final-cta h2 { max-width:1050px; }
.project-final-cta .section-lead { max-width:760px; }
.cta-availability { margin:36px 0 0; font-size:22px; }
.cta-availability strong { font-size:46px; margin-right:8px; }
.cta-note { max-width:720px; margin-top:32px; padding:18px 20px; border:1px solid rgba(10,10,10,.3); font-size:15px; }

@media (max-width: 900px) {
    .project-progress__numbers, .transparency-stats { grid-template-columns:1fr; }
    .project-two-col, .finance-panel { grid-template-columns:1fr; gap:28px; }
    .process-grid { grid-template-columns:1fr 1fr; }
    .partner-grid { grid-template-columns:1fr 1fr; }
    .project-section-heading { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 560px) {
    .process-grid, .partner-grid { grid-template-columns:1fr; }
    .progress-card__top { flex-direction:column; }
    .process-step { min-height:220px; }
    .process-step h3 { margin-top:42px; }
}

.site-footer__foundation{margin:14px 0 0;font-size:13px;font-weight:700;letter-spacing:.02em;opacity:.72;}

@media (min-width: 901px) and (max-height: 800px) {
    .hero { padding:34px 0 42px; }
    .hero h1 { font-size:clamp(56px, 7.7vw, 112px); }
    .hero__lead { font-size:clamp(19px,1.75vw,27px); }
    .hero__actions { margin-top:22px; }
    .eyebrow { margin-bottom:12px; }
}


/* v0.7.11 — editable image beside homepage hero copy */
.hero__layout {
    display: block;
}
.hero--with-image .hero__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
    gap: clamp(34px, 4.5vw, 72px);
    align-items: center;
}
.hero--with-image .hero__content {
    min-width: 0;
}
.hero--with-image h1 {
    font-size: clamp(52px, 6vw, 92px);
    max-width: 760px;
}
.hero--with-image .hero__lead {
    max-width: 650px;
    font-size: clamp(19px, 1.7vw, 26px);
}
.hero__media {
    width: 100%;
    min-height: clamp(440px, 60vh, 610px);
    align-self: stretch;
    overflow: hidden;
    background: var(--off-white);
    border-radius: 32px;
}
.hero__media img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
    object-position: 62% center;
}

@media (max-width: 980px) {
    .hero--with-image .hero__layout {
        grid-template-columns: minmax(0, 1fr) minmax(300px, .82fr);
        gap: 28px;
    }
    .hero--with-image h1 {
        font-size: clamp(48px, 6.5vw, 76px);
    }
    .hero__media {
        min-height: 440px;
    }
}

@media (max-width: 760px) {
    .hero--with-image .hero__layout {
        display: block;
    }
    .hero__media {
        min-height: 0;
        aspect-ratio: 4 / 5;
        margin-top: 34px;
        border-radius: 24px;
    }
    .hero__media img {
        min-height: 0;
    }
}


/* v0.7.16 — slower cinematic homepage hero entrance + subtle living photo */
.hero--home .eyebrow,
.hero--home .hero__title-line,
.hero--home .hero__lead,
.hero--home .hero__actions,
.hero--home .hero__media {
    will-change: opacity, transform;
}

.hero--home .eyebrow {
    animation: evolvoHeroRise 1.86s cubic-bezier(.22,.75,.28,1) 0s both;
}

.hero--home .hero__title-line {
    display: block;
    animation: evolvoHeroRise 2.04s cubic-bezier(.22,.75,.28,1) calc(.45s + (var(--hero-line-index) * .45s)) both;
}

.hero--home .hero__lead {
    transform-origin: top center;
    backface-visibility: hidden;
    animation: evolvoHeroLeadFlip .92s cubic-bezier(.2,.72,.2,1) 1.55s both;
}

.hero--home .hero__actions {
    animation: none;
}

.hero--home .hero__actions > * {
    will-change: opacity, transform;
    animation: evolvoHeroCtaSlide .65s cubic-bezier(.16,.84,.32,1) 2.90s both;
}

.hero--home .hero__actions > *:nth-child(2) {
    animation-delay: 3.02s;
}

.hero--home .hero__media {
    animation: evolvoHeroMediaIn 2.16s cubic-bezier(.22,.75,.28,1) .75s both;
}

.hero--home .hero__media img {
    transform-origin: center center;
    animation: evolvoHeroPhotoZoom 14s ease-in-out .85s infinite alternate;
}

@keyframes evolvoHeroCtaSlide {
    0% {
        opacity: 0;
        transform: translateX(-48px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes evolvoHeroLeadFlip {
    0% {
        opacity: 0;
        transform: perspective(900px) rotateX(72deg) translateY(14px);
    }
    60% {
        opacity: 1;
    }
    100% {
        opacity: 1;
        transform: perspective(900px) rotateX(0deg) translateY(0);
    }
}

@keyframes evolvoHeroRise {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes evolvoHeroMediaIn {
    from { opacity: 0; transform: translateX(28px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes evolvoHeroPhotoZoom {
    from { transform: scale(1); }
    to { transform: scale(1.035); }
}

@media (prefers-reduced-motion: reduce) {
    .hero--home .eyebrow,
    .hero--home .hero__title-line,
    .hero--home .hero__lead,
    .hero--home .hero__actions,
    .hero--home .hero__media,
    .hero--home .hero__media img {
        animation: none !important;
        transform: none !important;
        opacity: 1 !important;
    }
}


/* v0.7.45 — indexed vector road network, growing line-by-line from Soest centre */
.impact-network{
    width:100%;max-width:540px;justify-self:end;color:var(--black);
    opacity:0;transform:translateX(18px);
    animation:impactNetworkIn 1.15s cubic-bezier(.22,.75,.28,1) .2s both
}
.impact-network__stage{
    position:relative;width:100%;aspect-ratio:1/1;isolation:isolate;transform-origin:center
}
.soest-road-network{
    position:absolute;inset:4%;width:92%;height:92%;z-index:1;overflow:visible
}
.soest-road-network__road{
    fill:none;
    stroke:rgba(10,10,10,.27);
    stroke-width:1.05;
    stroke-linecap:round;
    stroke-linejoin:round;
    vector-effect:non-scaling-stroke;
    opacity:0;
    stroke-dasharray:var(--road-length,1);
    stroke-dashoffset:var(--road-length,1)
}
.soest-road-network__road--rail{
    stroke:rgba(10,10,10,.40);
    stroke-width:1.25
}
.impact-network.is-map-ready .soest-road-network__road{
    opacity:1;
    animation:soestRoadDraw var(--road-duration,.7s) cubic-bezier(.22,.67,.32,1) var(--road-delay,0s) forwards
}
.impact-network__lines{
    position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2
}
.impact-network__line{
    fill:none;stroke:rgba(10,10,10,.48);stroke-width:1.35;stroke-linecap:round;
    stroke-dasharray:620;stroke-dashoffset:620
}
.impact-network.is-map-ready .impact-network__line{
    animation:impactLineDraw 1.35s cubic-bezier(.2,.7,.3,1) forwards
}
.impact-network.is-map-ready .impact-network__line--1{animation-delay:2.85s}
.impact-network.is-map-ready .impact-network__line--2{animation-delay:3.05s}
.impact-network.is-map-ready .impact-network__line--3{animation-delay:3.25s}
.impact-network__center{
    position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%) scale(.92);
    padding:7px 10px;background:rgba(245,245,241,.90);border-radius:8px;opacity:0
}
.impact-network.is-map-ready .impact-network__center{
    animation:impactCenterIn .68s cubic-bezier(.18,.82,.32,1.08) .72s forwards
}
.impact-network__center span{
    font-size:22px;font-weight:950;line-height:1;letter-spacing:-.045em
}
.impact-network__endpoint{
    position:absolute;z-index:5;display:flex;align-items:center;gap:9px;opacity:0
}
.impact-network.is-map-ready .impact-network__endpoint{
    animation:impactEndpointIn .62s cubic-bezier(.18,.82,.32,1.12) forwards
}
.impact-network.is-map-ready .impact-network__endpoint--one{left:17%;top:21%;animation-delay:3.18s}
.impact-network.is-map-ready .impact-network__endpoint--two{right:5%;top:36%;animation-delay:3.38s}
.impact-network.is-map-ready .impact-network__endpoint--three{left:66%;top:83%;animation-delay:3.58s}
.impact-network__point{
    display:block;width:13px;height:13px;flex:0 0 13px;border-radius:50%;
    background:var(--accent);box-shadow:0 0 0 6px rgba(255,90,31,.09)
}
.impact-network__label{
    font-size:10px;font-weight:900;letter-spacing:.13em;white-space:nowrap;color:rgba(10,10,10,.72)
}
.impact-network__signal{
    position:absolute;z-index:3;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;
    border:1.5px solid rgba(255,90,31,.68);border-radius:50%;opacity:0;pointer-events:none
}
.impact-network.is-map-ready .impact-network__signal{
    animation:impactSignal 5.8s ease-out 3.85s infinite
}
@keyframes impactNetworkIn{
    from{opacity:0;transform:translateX(18px)}
    to{opacity:1;transform:translateX(0)}
}
@keyframes soestRoadDraw{
    from{stroke-dashoffset:var(--road-length,1)}
    to{stroke-dashoffset:0}
}
@keyframes impactLineDraw{to{stroke-dashoffset:0}}
@keyframes impactCenterIn{
    from{opacity:0;transform:translate(-50%,-50%) scale(.92)}
    to{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
@keyframes impactEndpointIn{
    from{opacity:0;transform:scale(.7)}
    to{opacity:1;transform:scale(1)}
}
@keyframes impactSignal{
    0%{opacity:.42;transform:scale(.55)}
    58%{opacity:0;transform:scale(13)}
    100%{opacity:0;transform:scale(13)}
}
@media (max-width:1050px) and (min-width:901px){
    .project-hero__inner{grid-template-columns:minmax(0,1fr) minmax(330px,.78fr);gap:30px}
    .project-hero h1{font-size:clamp(60px,7.2vw,88px)}
    .project-hero__tagline{font-size:clamp(25px,3vw,38px)}
    .impact-network{max-width:445px}
    .impact-network__label{font-size:9px}
}
@media (max-width:900px){
    .project-hero__inner{display:block;max-width:760px}
    .impact-network{max-width:450px;margin:42px auto 0;justify-self:auto}
}
@media (max-width:560px){
    .impact-network{margin-top:34px}
    .impact-network__stage{transform:scale(.94)}
    .impact-network__center span{font-size:19px}
    .impact-network__label{font-size:8px;letter-spacing:.1em}
    .impact-network__point{width:11px;height:11px;flex-basis:11px}
}
@media (prefers-reduced-motion:reduce){
    .impact-network,
    .soest-road-network__road,
    .impact-network__line,
    .impact-network__center,
    .impact-network__endpoint,
    .impact-network__signal{animation:none!important}
    .impact-network{opacity:1;transform:none}
    .soest-road-network__road{opacity:1;stroke-dashoffset:0}
    .impact-network__center,.impact-network__endpoint{opacity:1}
    .impact-network__center{transform:translate(-50%,-50%) scale(1)}
    .impact-network__line{stroke-dashoffset:0}
    .impact-network__signal{display:none}
}

.project-hero .hero__actions {
    margin-top: 22px;
}


@media (min-width: 901px) and (max-height: 800px) {
    .project-hero {
        padding:34px 0 42px;
    }
    .project-hero h1 {
        margin-bottom:.14em;
        font-size:clamp(58px,7vw,96px);
    }
    .project-hero__tagline {
        font-size:clamp(25px,2.8vw,39px);
    }
    .project-hero__intro {
        margin-top:15px;
        font-size:18px;
        line-height:1.42;
    }
    .impact-network {
        max-width:min(430px,56vh);
    }
    .project-hero .hero__actions {
        margin-top:19px;
    }
}


@media (max-width: 900px) {
    .project-hero {
        min-height:auto;
        padding:54px 0 64px;
        display:block;
    }
}

/* v0.7.63 — Impact Soest process block: natural geometry.
   Anchor positioning is handled separately in JS; this spacing is purely visual. */
.project-process {
    padding: clamp(24px, 3vh, 36px) 0;
}

@media (min-width: 901px) {
    .project-process .eyebrow {
        margin-bottom: clamp(10px, 1.4vh, 14px);
    }

    .project-process h2 {
        margin: 0;
        font-size: clamp(44px, 6vw, 84px);
    }

    .project-process .process-grid {
        margin-top: clamp(22px, 3vh, 34px);
    }

    .project-process .process-step {
        min-height: clamp(270px, 30vh, 340px);
        padding: clamp(20px, 2.4vw, 30px);
        display: flex;
        flex-direction: column;
    }

    .project-process .process-step h3 {
        margin: clamp(26px, 3.2vh, 32px) 0 clamp(10px, 1.6vh, 14px);
        font-size: clamp(23px, 2.15vw, 28px);
    }

    .project-process .process-step p {
        margin-bottom: 0;
        font-size: clamp(15px, 1.25vw, 18px);
        line-height: 1.45;
    }
}

/* Lower desktop screens only compact the content; no header/anchor compensation here. */
@media (min-width: 901px) and (max-height: 800px) {
    .project-process {
        padding: 24px 0;
    }

    .project-process h2 {
        font-size: clamp(42px, 5.2vw, 70px);
    }

    .project-process .process-grid {
        margin-top: 20px;
    }

    .project-process .process-step {
        min-height: 250px;
        padding: 20px 22px;
    }

    .project-process .process-step h3 {
        margin: 24px 0 10px;
        font-size: 23px;
    }

    .project-process .process-step p {
        font-size: 15px;
        line-height: 1.38;
    }
}

/* v0.7.60 — CTA at the bottom of "Zo maken we impact". */
.project-process__progress-cta-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    perspective: 900px;
}

.project-process__progress-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: 246px;
    padding: 15px 22px;
    border-radius: 18px;
    background: var(--white);
    color: var(--black);
    text-decoration: none;
    font-weight: 700;
    line-height: 1;
    opacity: 0;
    transform: translateY(12px) rotateX(92deg);
    transform-origin: center bottom;
    pointer-events: none;
    backface-visibility: hidden;
    box-shadow: 0 16px 40px rgba(0,0,0,.22);
    will-change: transform, opacity;
}

.project-process__progress-cta.is-visible {
    opacity: 1;
    transform: translateY(0) rotateX(0deg);
    pointer-events: auto;
    transition:
        transform .72s cubic-bezier(.2,.75,.2,1),
        opacity .2s ease;
}

.project-process__progress-arrow {
    display: inline-block;
    font-size: 1.2em;
    line-height: 1;
}

.project-process__progress-cta.is-visible .project-process__progress-arrow {
    animation: processProgressArrow 1.5s ease-in-out .8s infinite;
}

@keyframes processProgressArrow {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(3px); }
}

@media (min-width: 901px) {
    .project-process__progress-cta-wrap {
        padding: 20px 0 0;
    }
}

@media (max-width: 900px) {
    .project-process__progress-cta-wrap {
        margin-top: 28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .project-process__progress-cta {
        opacity: 1;
        transform: none;
        pointer-events: auto;
        transition: none;
    }

    .project-process__progress-arrow {
        animation: none !important;
    }
}

/* v0.7.65 — Impact Soest progress reveal: slot-machine stats + rolling progress bar. */
.project-progress[data-progress-reveal] .project-progress__numbers,
.project-progress[data-progress-reveal] .progress-card {
    opacity: 0;
}

.project-progress[data-progress-reveal].is-progress-active .project-progress__numbers {
    opacity: 1;
    transition: opacity .18s ease;
}

.project-progress[data-progress-reveal].is-progress-active .progress-card {
    opacity: 1;
    transition: opacity .55s ease 3.05s;
}

.project-progress__stat {
    overflow: hidden;
}

.odometer-number {
    display: inline-flex;
    align-items: baseline;
    min-height: 1em;
    line-height: .9;
    overflow: hidden;
    white-space: nowrap;
}

.odometer-prefix {
    display: inline-block;
    margin-right: .04em;
}

.odometer-digit {
    position: relative;
    display: inline-block;
    width: .62em;
    height: .92em;
    overflow: hidden;
    vertical-align: bottom;
}

.odometer-digit__reel {
    display: flex;
    flex-direction: column;
    align-items: center;
    transform: translateY(0);
    will-change: transform;
}

.odometer-digit__reel span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: .92em;
    margin: 0;
    font: inherit;
    line-height: .92;
}

.project-progress.is-progress-active .odometer-digit__reel {
    transition-property: transform;
    transition-timing-function: cubic-bezier(.12,.72,.18,1);
}

.project-progress .progress-track {
    position: relative;
    overflow: hidden;
}

.project-progress .progress-track__fill {
    position: relative;
    display: block;
    width: 100%;
    transform: scaleX(0);
    transform-origin: left center;
    will-change: transform;
}

.project-progress.is-progress-active .progress-track__fill {
    transform: scaleX(var(--progress-target, 0));
    transition: transform 2.2s cubic-bezier(.18,.82,.22,1) 3.35s;
}

.project-progress .progress-track__fill::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: currentColor;
    opacity: 0;
    transform: translate(50%, -50%) scale(.65);
    box-shadow: 0 0 0 5px rgba(255,255,255,.16);
}

.project-progress.is-progress-active .progress-track__fill::after {
    opacity: 1;
    transform: translate(50%, -50%) scale(1);
    transition: opacity .25s ease 3.55s, transform .25s ease 3.55s;
}

@media (prefers-reduced-motion: reduce) {
    .project-progress[data-progress-reveal] .project-progress__numbers,
    .project-progress[data-progress-reveal] .progress-card {
        opacity: 1 !important;
        transition: none !important;
    }

    .project-progress .odometer-digit__reel {
        transition: none !important;
    }

    .project-progress .progress-track__fill {
        transform: scaleX(var(--progress-target, 0)) !important;
        transition: none !important;
    }

    .project-progress .progress-track__fill::after {
        opacity: 1 !important;
        transform: translate(50%, -50%) scale(1) !important;
        transition: none !important;
    }
}







/* v0.7.76 — Homepage hero title: smaller, stable two-line composition. */
.hero__copy,
.hero h1 {
    min-width: 0;
    max-width: 100%;
}

@media (min-width: 901px) {
    .hero h1 {
        font-size: clamp(50px, 4.6vw, 82px);
        line-height: .90;
        letter-spacing: -.055em;
    }

    .hero-title-line {
        display: block;
        max-width: 100%;
        white-space: nowrap;
    }
}

/* Smaller desktop/laptop widths: reduce further before the mobile layout begins. */
@media (min-width: 901px) and (max-width: 1250px) {
    .hero h1 {
        font-size: clamp(44px, 4.25vw, 62px);
    }
}

@media (max-width: 900px) {
    .hero-title-line {
        display: inline;
        white-space: normal;
    }

    .hero-title-line + .hero-title-line::before {
        content: " ";
    }
}


/* v0.7.77 — Homepage viewport hero + exact anchor landing support. */
@media (min-width: 901px) {
    .home .hero {
        min-height: calc(100svh - 82px);
        box-sizing: border-box;
    }
}

@media (max-width: 900px) {
    .home .hero {
        min-height: auto;
    }
}

.home .anchor-section,
.admin-bar.home .anchor-section {
    scroll-margin-top: 0;
}



/* Medium-height desktop/laptop screens */
@media (min-width: 901px) and (max-height: 900px) {
    .home #ons-doel {
        padding-top: clamp(30px, 4vh, 44px);
        padding-bottom: clamp(30px, 4vh, 44px);
    }

    .home #ons-doel h2 {
        font-size: clamp(54px, 7.2vh, 86px);
        line-height: .92;
        margin-bottom: clamp(24px, 3.4vh, 34px);
    }

    .home #ons-doel .eyebrow {
        margin-bottom: clamp(16px, 2.1vh, 22px);
    }

    .home #ons-doel p {
        font-size: clamp(22px, 2.75vh, 28px);
        line-height: 1.36;
    }

    .home #ons-doel p + p {
        margin-top: clamp(22px, 3vh, 34px);
    }
}

/* Lower laptop viewports: preserve the same design while compressing vertically. */
@media (min-width: 901px) and (max-height: 760px) {
    .home #ons-doel {
        padding-top: 24px;
        padding-bottom: 24px;
    }

    .home #ons-doel .eyebrow {
        margin-bottom: 12px;
    }

    .home #ons-doel h2 {
        font-size: clamp(48px, 6.6vh, 68px);
        line-height: .91;
        margin-bottom: 20px;
    }

    .home #ons-doel p {
        font-size: clamp(19px, 2.45vh, 24px);
        line-height: 1.30;
    }

    .home #ons-doel p + p {
        margin-top: 18px;
    }
}

/* Very low desktop viewport: last-resort safe fit, still only Ons doel. */
@media (min-width: 901px) and (max-height: 660px) {
    .home #ons-doel {
        padding-top: 18px;
        padding-bottom: 18px;
    }

    .home #ons-doel .eyebrow {
        margin-bottom: 10px;
    }

    .home #ons-doel h2 {
        font-size: clamp(42px, 6.1vh, 58px);
        margin-bottom: 16px;
    }

    .home #ons-doel p {
        font-size: clamp(17px, 2.25vh, 21px);
        line-height: 1.26;
    }

    .home #ons-doel p + p {
        margin-top: 14px;
    }
}


/* v0.7.79 — Homepage "Ons doel": content-driven height + animated growth line. */
.home #ons-doel {
    min-height: 0;
    overflow: visible;
    padding-top: clamp(54px, 6vw, 88px);
    padding-bottom: clamp(64px, 7vw, 104px);
}

/* Override the generic position-2 oversized bottom spacing only for Ons doel. */
.home #ons-doel.home-position--2 {
    padding-top: clamp(54px, 6vw, 88px);
    padding-bottom: clamp(64px, 7vw, 104px);
}

.home #ons-doel .content-block {
    min-height: 0;
}

.goal-growth {
    width: min(760px, 78%);
    margin: clamp(46px, 5.5vw, 74px) auto 0;
    opacity: 0;
    transform: translateY(14px);
    transition:
        opacity .55s ease .55s,
        transform .75s cubic-bezier(.2,.72,.2,1) .55s;
}

.goal-growth__svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.goal-growth__guide {
    fill: none;
    stroke: rgba(255,255,255,.13);
    stroke-width: 2;
    stroke-linecap: round;
}

.goal-growth__line {
    fill: none;
    stroke: rgba(255,255,255,.88);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
}

.goal-growth__node {
    fill: var(--black);
    stroke: rgba(255,255,255,.88);
    stroke-width: 3;
    opacity: 0;
    transform: scale(.25);
    transform-box: fill-box;
    transform-origin: center;
}

.goal-growth__node--4 {
    fill: var(--accent);
    stroke: var(--accent);
}

.goal-growth__finish {
    fill: none;
    stroke: var(--accent);
    stroke-width: 3;
    stroke-linecap: round;
    opacity: 0;
    transform: translateY(8px);
}

.home #ons-doel.is-goal-growth-active .goal-growth {
    opacity: 1;
    transform: translateY(0);
}

.home #ons-doel.is-goal-growth-active .goal-growth__line {
    stroke-dashoffset: 0;
    transition: stroke-dashoffset 2.15s cubic-bezier(.18,.74,.18,1) .72s;
}

.home #ons-doel.is-goal-growth-active .goal-growth__node {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity .28s ease,
        transform .5s cubic-bezier(.2,.8,.2,1);
}

.home #ons-doel.is-goal-growth-active .goal-growth__node--1 { transition-delay: .75s; }
.home #ons-doel.is-goal-growth-active .goal-growth__node--2 { transition-delay: 1.28s; }
.home #ons-doel.is-goal-growth-active .goal-growth__node--3 { transition-delay: 1.83s; }
.home #ons-doel.is-goal-growth-active .goal-growth__node--4 { transition-delay: 2.42s; }

.home #ons-doel.is-goal-growth-active .goal-growth__finish {
    opacity: 1;
    transform: translateY(0);
    transition:
        opacity .36s ease 2.55s,
        transform .55s cubic-bezier(.2,.8,.2,1) 2.55s;
}

@media (max-width: 900px) {
    .home #ons-doel,
    .home #ons-doel.home-position--2 {
        padding-top: clamp(48px, 10vw, 72px);
        padding-bottom: clamp(56px, 11vw, 80px);
    }

    .goal-growth {
        width: min(620px, 94%);
        margin-top: clamp(36px, 9vw, 56px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .goal-growth,
    .goal-growth__line,
    .goal-growth__node,
    .goal-growth__finish {
        transition: none !important;
    }

    .goal-growth {
        opacity: 1;
        transform: none;
    }

    .goal-growth__line {
        stroke-dashoffset: 0;
    }

    .goal-growth__node,
    .goal-growth__finish {
        opacity: 1;
        transform: none;
    }
}






/* v0.7.82 — Live handwriting CTA: real vector strokes, right of the graph. */
.goal-growth-stage {
    position: relative;
    width: min(1020px, 100%);
    margin: clamp(46px, 5.5vw, 74px) auto 0;
    min-height: clamp(150px, 15vw, 190px);
}

.goal-growth-stage .goal-growth {
    width: 71%;
    margin: 0 0 0 1%;
}

.goal-growth-handwrite {
    position: absolute;
    z-index: 2;
    right: -1%;
    top: 45%;
    width: clamp(225px, 29%, 315px);
    color: rgba(255,255,255,.96);
    text-decoration: none;
    transform: translateY(-50%) rotate(-2.2deg);
}

.goal-growth-handwrite__svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.goal-script-stroke {
    stroke-width: 3.05;
    vector-effect: non-scaling-stroke;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    opacity: 0;
}

.goal-growth-handwrite__arrow {
    stroke: var(--accent);
    stroke-width: 3.25;
    vector-effect: non-scaling-stroke;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    opacity: 0;
}

/* Sequential pen movement; slight overlap keeps it feeling continuous rather than typed. */
.home #ons-doel.is-goal-growth-active .goal-script-stroke {
    animation-name: goalLiveWrite;
    animation-timing-function: cubic-bezier(.34,.12,.2,1);
    animation-fill-mode: forwards;
}

.home #ons-doel.is-goal-growth-active .goal-script-stroke--1  { animation-duration:.34s; animation-delay:3.08s; }
.home #ons-doel.is-goal-growth-active .goal-script-stroke--2  { animation-duration:.25s; animation-delay:3.36s; }
.home #ons-doel.is-goal-growth-active .goal-script-stroke--3  { animation-duration:.18s; animation-delay:3.56s; }
.home #ons-doel.is-goal-growth-active .goal-script-stroke--4  { animation-duration:.23s; animation-delay:3.69s; }
.home #ons-doel.is-goal-growth-active .goal-script-stroke--5  { animation-duration:.27s; animation-delay:3.87s; }
.home #ons-doel.is-goal-growth-active .goal-script-stroke--6  { animation-duration:.15s; animation-delay:4.09s; }

.home #ons-doel.is-goal-growth-active .goal-script-stroke--7  { animation-duration:.25s; animation-delay:4.22s; }
.home #ons-doel.is-goal-growth-active .goal-script-stroke--8  { animation-duration:.24s; animation-delay:4.42s; }
.home #ons-doel.is-goal-growth-active .goal-script-stroke--9  { animation-duration:.23s; animation-delay:4.61s; }

.home #ons-doel.is-goal-growth-active .goal-script-stroke--10 { animation-duration:.29s; animation-delay:4.82s; }
.home #ons-doel.is-goal-growth-active .goal-script-stroke--11 { animation-duration:.24s; animation-delay:5.05s; }
.home #ons-doel.is-goal-growth-active .goal-script-stroke--12 { animation-duration:.24s; animation-delay:5.24s; }
.home #ons-doel.is-goal-growth-active .goal-script-stroke--13 { animation-duration:.24s; animation-delay:5.43s; }
.home #ons-doel.is-goal-growth-active .goal-script-stroke--14 { animation-duration:.24s; animation-delay:5.62s; }
.home #ons-doel.is-goal-growth-active .goal-script-stroke--15 { animation-duration:.29s; animation-delay:5.81s; }

.home #ons-doel.is-goal-growth-active .goal-growth-handwrite__arrow {
    animation:
        goalLiveWrite .42s cubic-bezier(.34,.12,.2,1) 6.05s forwards,
        goalHandwriteArrowBounce 1.7s ease-in-out 6.67s infinite;
}

.goal-growth-handwrite:hover {
    color: #fff;
}

.goal-growth-handwrite:focus-visible {
    outline: 2px solid rgba(255,255,255,.9);
    outline-offset: 7px;
    border-radius: 4px;
}

@keyframes goalLiveWrite {
    0% {
        stroke-dashoffset: 1;
        opacity: 0;
    }
    2% {
        opacity: 1;
    }
    100% {
        stroke-dashoffset: 0;
        opacity: 1;
    }
}

@keyframes goalHandwriteArrowBounce {
    0%, 100% { transform: translateY(0); }
    45% { transform: translateY(5px); }
}

@media (max-width: 900px) {
    .goal-growth-stage {
        width: 100%;
        margin-top: clamp(36px, 9vw, 56px);
        min-height: clamp(130px, 28vw, 176px);
    }

    .goal-growth-stage .goal-growth {
        width: 68%;
        margin-left: 0;
    }

    .goal-growth-handwrite {
        right: -2%;
        top: 50%;
        width: clamp(165px, 37%, 235px);
    }

    .goal-script-stroke {
        stroke-width: 2.85;
    }

    .goal-growth-handwrite__arrow {
        stroke-width: 3.05;
    }
}

@media (max-width: 560px) {
    .goal-growth-stage {
        min-height: 128px;
    }

    .goal-growth-stage .goal-growth {
        width: 64%;
    }

    .goal-growth-handwrite {
        width: 41%;
        right: -3%;
        top: 52%;
    }

    .goal-script-stroke {
        stroke-width: 2.7;
    }

    .goal-growth-handwrite__arrow {
        stroke-width: 2.95;
    }
}

@media (prefers-reduced-motion: reduce) {
    .goal-script-stroke,
    .goal-growth-handwrite__arrow {
        animation: none !important;
        stroke-dashoffset: 0;
        opacity: 1;
    }
}




/* v0.7.92 — cue only becomes flow content when the cards stack. */
@media (max-width: 900px) {
    .offer-drive-script {
        position: relative;
        right: auto;
        bottom: auto;
        width: clamp(245px, 48vw, 325px);
        margin: 28px clamp(4px, 3vw, 24px) 0 auto;
        transform: rotate(-1.8deg);
    }
.offer-drive-arrow {
        stroke-width: 2.55;
    }
}

@media (max-width: 640px) {
    .offer-drive-script {
        width: min(275px, 84vw);
        margin-top: 30px;
        margin-right: 0;
        transform: rotate(-1.5deg);
    }
.offer-drive-arrow {
        stroke-width: 2.5;
    }
}

@media (prefers-reduced-motion: reduce) {
    .offer-drive-mask-stroke,
    .offer-drive-arrow,
    .offer-section.offer-sequence--done .offer-drive-mask-stroke,
    .offer-section.offer-sequence--done .offer-drive-arrow {
        animation: none !important;
        stroke-dashoffset: 0 !important;
        opacity: 1 !important;
    }
}


/* v0.7.94 — mask start-state hardening:
   reveal strokes are fully transparent until their own animation starts. */

/* v0.7.95 — "Onze drive" uses immutable vector outlines.
   The nine indexed mask strokes control reveal timing only. */


/* v0.7.96 — Homepage Missie & Visie
   Mission = three vertical pillars. Vision = three wide horizontal principles. */
.mission-vision {
    overflow: hidden;
    padding-top: clamp(70px, 8vw, 120px);
    padding-bottom: clamp(78px, 9vw, 132px);
}

.mission-vision__container {
    width: min(var(--container), calc(100% - (var(--pad) * 2)));
}

.mission-block__intro,
.vision-block__intro {
    max-width: 980px;
}

.mission-block__intro h2,
.vision-block__intro h2 {
    margin: 0;
    max-width: 940px;
    font-size: clamp(46px, 6.6vw, 96px);
    line-height: .91;
    letter-spacing: -.055em;
}

.mission-block__intro .section-lead {
    margin-top: 24px;
}

.mission-pillars {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 1.8vw, 26px);
    margin-top: clamp(44px, 5.5vw, 76px);
}

.mission-pillar {
    position: relative;
    min-height: clamp(330px, 34vw, 430px);
    padding: clamp(24px, 2.4vw, 34px);
    border: 1px solid rgba(10,10,10,.13);
    border-radius: 28px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    background: rgba(255,255,255,.30);
}

.mission-pillar::after {
    content: "";
    position: absolute;
    inset: auto -22% -42% 34%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--accent);
    opacity: .10;
    transform: scale(.75);
    transition: transform .8s cubic-bezier(.16,1,.3,1);
    pointer-events: none;
}

.mission-pillar:hover::after {
    transform: scale(1);
}

.mission-pillar__number {
    position: relative;
    z-index: 1;
    display: block;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .14em;
    color: var(--accent);
}

.mission-pillar__body {
    position: relative;
    z-index: 1;
}

.mission-pillar h3 {
    margin: 0 0 14px;
    font-size: clamp(30px, 3vw, 46px);
    line-height: .95;
    letter-spacing: -.045em;
}

.mission-pillar p {
    margin: 0;
    max-width: 34ch;
    font-size: clamp(16px, 1.25vw, 19px);
    line-height: 1.5;
    color: #4a4a46;
}

/* Dark and orange positions keep the same geometry, with tone-aware surfaces. */
.home-tone--dark .mission-pillar {
    border-color: rgba(255,255,255,.16);
    background: rgba(255,255,255,.045);
}
.home-tone--dark .mission-pillar p {
    color: #c8c8c2;
}
.home-tone--dark .mission-pillar__number {
    color: var(--accent);
}
.home-tone--accent .mission-pillar {
    border-color: rgba(10,10,10,.18);
    background: rgba(245,245,241,.16);
}
.home-tone--accent .mission-pillar p {
    color: #292927;
}
.home-tone--accent .mission-pillar__number {
    color: var(--black);
}

/* Vision deliberately changes rhythm: wide rows instead of another card grid. */
.vision-block {
    margin-top: clamp(104px, 12vw, 172px);
}

.vision-block__intro {
    margin-bottom: clamp(42px, 5vw, 68px);
}

.vision-rows {
    border-top: 1px solid rgba(10,10,10,.20);
}

.vision-row {
    position: relative;
    display: grid;
    grid-template-columns: 72px minmax(220px, .8fr) minmax(320px, 1.2fr);
    align-items: start;
    gap: clamp(20px, 3vw, 54px);
    padding: clamp(28px, 3.8vw, 48px) 0;
}

.vision-row::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: currentColor;
    opacity: .20;
    transform: scaleX(0);
    transform-origin: left center;
}

.vision-row__number {
    padding-top: 7px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .14em;
    color: var(--accent);
}

.vision-row h3 {
    margin: 0;
    max-width: 13ch;
    font-size: clamp(28px, 3vw, 44px);
    line-height: .97;
    letter-spacing: -.045em;
}

.vision-row p {
    margin: 3px 0 0;
    max-width: 54ch;
    font-size: clamp(17px, 1.45vw, 21px);
    line-height: 1.5;
    color: #4a4a46;
}

.home-tone--dark .vision-rows {
    border-top-color: rgba(255,255,255,.22);
}
.home-tone--dark .vision-row p {
    color: #c8c8c2;
}
.home-tone--dark .vision-row__number {
    color: var(--accent);
}
.home-tone--accent .vision-rows {
    border-top-color: rgba(10,10,10,.26);
}
.home-tone--accent .vision-row p {
    color: #292927;
}
.home-tone--accent .vision-row__number {
    color: var(--black);
}

/* Mission reveal: intro first, then 01 → 02 → 03. */
[data-mission-reveal] .mission-block__intro,
[data-mission-reveal] .mission-pillar {
    opacity: 0;
    transform: translateY(28px);
}

[data-mission-reveal].is-mission-active .mission-block__intro {
    animation: evolvoMissionRise .75s cubic-bezier(.16,1,.3,1) forwards;
}

[data-mission-reveal].is-mission-active .mission-pillar:nth-child(1) {
    animation: evolvoMissionRise .78s cubic-bezier(.16,1,.3,1) .20s forwards;
}
[data-mission-reveal].is-mission-active .mission-pillar:nth-child(2) {
    animation: evolvoMissionRise .78s cubic-bezier(.16,1,.3,1) .36s forwards;
}
[data-mission-reveal].is-mission-active .mission-pillar:nth-child(3) {
    animation: evolvoMissionRise .78s cubic-bezier(.16,1,.3,1) .52s forwards;
}

/* Vision has its own viewport trigger, so the lower content never animates off-screen. */
[data-vision-reveal] .vision-block__intro {
    opacity: 0;
    transform: translateY(24px);
}

[data-vision-reveal] .vision-row__number,
[data-vision-reveal] .vision-row h3,
[data-vision-reveal] .vision-row p {
    opacity: 0;
    transform: translateY(14px);
}

[data-vision-reveal].is-vision-active .vision-block__intro {
    animation: evolvoMissionRise .78s cubic-bezier(.16,1,.3,1) forwards;
}

[data-vision-reveal].is-vision-active .vision-row:nth-child(1)::after {
    animation: evolvoVisionLine .72s cubic-bezier(.2,.75,.2,1) .18s forwards;
}
[data-vision-reveal].is-vision-active .vision-row:nth-child(2)::after {
    animation: evolvoVisionLine .72s cubic-bezier(.2,.75,.2,1) .42s forwards;
}
[data-vision-reveal].is-vision-active .vision-row:nth-child(3)::after {
    animation: evolvoVisionLine .72s cubic-bezier(.2,.75,.2,1) .66s forwards;
}

[data-vision-reveal].is-vision-active .vision-row:nth-child(1) > * {
    animation: evolvoVisionText .62s cubic-bezier(.16,1,.3,1) .30s forwards;
}
[data-vision-reveal].is-vision-active .vision-row:nth-child(2) > * {
    animation: evolvoVisionText .62s cubic-bezier(.16,1,.3,1) .54s forwards;
}
[data-vision-reveal].is-vision-active .vision-row:nth-child(3) > * {
    animation: evolvoVisionText .62s cubic-bezier(.16,1,.3,1) .78s forwards;
}

@keyframes evolvoMissionRise {
    from { opacity: 0; transform: translateY(28px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes evolvoVisionLine {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}

@keyframes evolvoVisionText {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 900px) {
    .mission-vision {
        padding-top: clamp(58px, 10vw, 86px);
        padding-bottom: clamp(68px, 11vw, 94px);
    }

    .mission-block__intro h2,
    .vision-block__intro h2 {
        font-size: clamp(44px, 9.2vw, 72px);
    }

    .mission-pillars {
        grid-template-columns: 1fr;
    }

    .mission-pillar {
        min-height: 260px;
    }

    .vision-block {
        margin-top: clamp(82px, 14vw, 120px);
    }

    .vision-row {
        grid-template-columns: 54px minmax(0, 1fr);
        gap: 12px 18px;
    }

    .vision-row p {
        grid-column: 2;
        margin-top: 6px;
    }
}

@media (max-width: 640px) {
    .mission-block__intro h2,
    .vision-block__intro h2 {
        font-size: clamp(40px, 12.5vw, 58px);
    }

    .mission-pillars {
        margin-top: 36px;
        gap: 14px;
    }

    .mission-pillar {
        min-height: 230px;
        padding: 24px;
        border-radius: 24px;
    }

    .vision-block {
        margin-top: 76px;
    }

    .vision-block__intro {
        margin-bottom: 34px;
    }

    .vision-row {
        grid-template-columns: 42px minmax(0, 1fr);
        padding: 28px 0;
    }

    .vision-row h3 {
        font-size: clamp(27px, 8vw, 36px);
    }

    .vision-row p {
        font-size: 17px;
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-mission-reveal] .mission-block__intro,
    [data-mission-reveal] .mission-pillar,
    [data-vision-reveal] .vision-block__intro,
    [data-vision-reveal] .vision-row__number,
    [data-vision-reveal] .vision-row h3,
    [data-vision-reveal] .vision-row p {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
    }

    [data-vision-reveal] .vision-row::after {
        transform: scaleX(1) !important;
        animation: none !important;
    }
}


/* v0.7.97 — Missie and Visie are now two separate visual chapters.
   Missie = exact white viewport. Visie = black, minimum one viewport. */
.home .mission-screen {
    position: relative;
    min-height: calc(100svh - 82px);
    height: calc(100svh - 82px);
    box-sizing: border-box;
    padding: clamp(34px, 4.2vh, 54px) 0 clamp(62px, 7.5vh, 82px);
    overflow: hidden;
    background: var(--off-white);
    color: var(--black);
}

.mission-screen__container {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.mission-screen .mission-block {
    width: 100%;
}

.mission-screen .mission-block__intro {
    max-width: 900px;
}

.mission-screen .mission-block__intro h2 {
    font-size: clamp(42px, 5.2vw, 76px);
    line-height: .92;
}

.mission-screen .mission-pillars {
    margin-top: clamp(26px, 3.8vh, 44px);
    gap: clamp(14px, 1.5vw, 22px);
}

.mission-screen .mission-pillar {
    min-height: clamp(220px, 27vh, 290px);
    padding: clamp(20px, 2vw, 28px);
    border-radius: 26px;
    background: rgba(255,255,255,.34);
}

.mission-screen .mission-pillar h3 {
    font-size: clamp(28px, 2.5vw, 38px);
}

.mission-screen .mission-pillar p {
    font-size: clamp(15px, 1.08vw, 17px);
    line-height: 1.45;
}

.mission-screen__down {
    position: absolute;
    left: 50%;
    bottom: clamp(14px, 2vh, 22px);
    z-index: 5;
    width: 42px;
    height: 42px;
    margin-left: -21px;
    display: grid;
    place-items: center;
    color: var(--black);
    text-decoration: none;
    font-size: 25px;
    line-height: 1;
    opacity: .72;
}

.mission-screen__down span {
    display: block;
    animation: evolvoMissionDown 1.9s ease-in-out infinite;
}

@keyframes evolvoMissionDown {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(5px); }
}

/* Vision is intentionally a new black chapter, not the lower half of Mission. */
.home .vision-screen {
    min-height: calc(100svh - 82px);
    box-sizing: border-box;
    padding: clamp(64px, 7.5vw, 108px) 0 clamp(72px, 8vw, 118px);
    background: var(--black);
    color: var(--white);
}

.vision-screen__container {
    min-height: calc(100svh - 82px - clamp(136px, 15.5vw, 226px));
    display: flex;
    align-items: center;
}

.vision-screen .vision-block {
    width: 100%;
    margin-top: 0;
}

.vision-screen .vision-block__intro h2 {
    font-size: clamp(44px, 6vw, 86px);
}

.vision-screen .vision-rows {
    border-top-color: rgba(255,255,255,.22);
}

.vision-screen .vision-row p {
    color: #c8c8c2;
}

.vision-screen .vision-row__number {
    color: var(--accent);
}

@media (max-height: 760px) and (min-width: 901px) {
    .home .mission-screen {
        padding-top: 24px;
        padding-bottom: 54px;
    }

    .mission-screen .mission-block__intro h2 {
        font-size: clamp(38px, 4.6vw, 64px);
    }

    .mission-screen .mission-pillars {
        margin-top: 22px;
    }

    .mission-screen .mission-pillar {
        min-height: 205px;
        padding: 20px 22px;
    }

    .mission-screen .mission-pillar h3 {
        font-size: clamp(26px, 2.2vw, 34px);
    }

    .mission-screen .mission-pillar p {
        font-size: 15px;
    }
}

@media (max-width: 900px) {
    .home .mission-screen {
        height: auto;
        min-height: calc(100svh - 72px);
        padding: 54px 0 78px;
        overflow: visible;
    }

    .mission-screen__container {
        min-height: calc(100svh - 72px - 132px);
        height: auto;
        justify-content: center;
    }

    .mission-screen .mission-pillars {
        margin-top: 34px;
    }

    .mission-screen .mission-pillar {
        min-height: 190px;
    }

    .mission-screen__down {
        bottom: 14px;
    }

    .home .vision-screen {
        min-height: calc(100svh - 72px);
        padding: 64px 0 76px;
    }

    .vision-screen__container {
        min-height: auto;
        display: block;
    }
}

@media (max-width: 640px) {
    .mission-screen .mission-pillar {
        min-height: 180px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mission-screen__down span {
        animation: none !important;
    }
}


/* v0.7.98 — Visie now fits one desktop viewport.
   The title gets a compact top zone; the three statements share the remaining height. */
@media (min-width: 901px) {
    .home .vision-screen {
        height: calc(100svh - 82px);
        min-height: calc(100svh - 82px);
        padding: clamp(30px, 4vh, 46px) 0 clamp(28px, 3.8vh, 44px);
        overflow: hidden;
    }

    .vision-screen__container {
        height: 100%;
        min-height: 0;
        display: block;
    }

    .vision-screen .vision-block {
        height: 100%;
        display: grid;
        grid-template-rows: auto minmax(0, 1fr);
        margin: 0;
    }

    .vision-screen .vision-block__intro {
        margin: 0 0 clamp(18px, 2.2vh, 28px);
        max-width: 900px;
    }

    .vision-screen .vision-block__intro .eyebrow {
        margin-bottom: 10px;
    }

    .vision-screen .vision-block__intro h2 {
        font-size: clamp(38px, 4.9vw, 70px);
        line-height: .91;
        max-width: 860px;
    }

    .vision-screen .vision-rows {
        min-height: 0;
        height: 100%;
        display: grid;
        grid-template-rows: repeat(3, minmax(0, 1fr));
    }

    .vision-screen .vision-row {
        min-height: 0;
        height: 100%;
        display: grid;
        grid-template-columns: 62px minmax(210px, .78fr) minmax(300px, 1.22fr);
        align-items: center;
        gap: clamp(18px, 2.5vw, 42px);
        padding: clamp(12px, 1.8vh, 20px) 0;
    }

    .vision-screen .vision-row__number {
        padding-top: 0;
        align-self: center;
    }

    .vision-screen .vision-row h3 {
        align-self: center;
        font-size: clamp(25px, 2.35vw, 36px);
        line-height: .96;
        max-width: 14ch;
    }

    .vision-screen .vision-row p {
        align-self: center;
        margin: 0;
        max-width: 58ch;
        font-size: clamp(15px, 1.22vw, 18px);
        line-height: 1.42;
    }
}

/* Extra compression for common laptop heights. */
@media (min-width: 901px) and (max-height: 760px) {
    .home .vision-screen {
        padding-top: 22px;
        padding-bottom: 22px;
    }

    .vision-screen .vision-block__intro {
        margin-bottom: 14px;
    }

    .vision-screen .vision-block__intro .eyebrow {
        margin-bottom: 7px;
    }

    .vision-screen .vision-block__intro h2 {
        font-size: clamp(34px, 4.2vw, 58px);
    }

    .vision-screen .vision-row {
        grid-template-columns: 54px minmax(190px, .76fr) minmax(280px, 1.24fr);
        gap: 16px 28px;
        padding: 8px 0;
    }

    .vision-screen .vision-row h3 {
        font-size: clamp(23px, 2vw, 31px);
    }

    .vision-screen .vision-row p {
        font-size: 14.5px;
        line-height: 1.36;
    }
}

/* Very short desktop windows: keep the complete section visible without clipping text. */
@media (min-width: 901px) and (max-height: 620px) {
    .home .vision-screen {
        height: auto;
        min-height: calc(100svh - 82px);
        overflow: visible;
        padding: 28px 0 34px;
    }

    .vision-screen__container,
    .vision-screen .vision-block,
    .vision-screen .vision-rows {
        height: auto;
    }

    .vision-screen .vision-rows {
        display: block;
    }

    .vision-screen .vision-row {
        height: auto;
        min-height: 0;
        padding: 14px 0;
    }
}


/* v0.7.99 — Homepage Impact Soest / current project: full orange theme.
   The entire section now follows the accent palette, not just the background. */
.home .current-project {
    background: var(--accent);
    color: var(--black);
}

.home .current-project .eyebrow,
.home .current-project h1,
.home .current-project h2,
.home .current-project h3,
.home .current-project h4,
.home .current-project p,
.home .current-project li,
.home .current-project strong,
.home .current-project .section-lead {
    color: var(--black);
}

.home .current-project a:not(.button):not(.btn):not(.site-nav__cta) {
    color: var(--black);
}

.home .current-project hr,
.home .current-project [class*="divider"],
.home .current-project [class*="line"] {
    border-color: rgba(10,10,10,.22);
}

.home .current-project [class*="card"],
.home .current-project [class*="panel"],
.home .current-project [class*="stat"] {
    border-color: rgba(10,10,10,.18);
}

.home .current-project .button,
.home .current-project .btn,
.home .current-project [class*="cta"] a {
    background: var(--black);
    color: var(--off-white);
    border-color: var(--black);
}

.home .current-project .button:hover,
.home .current-project .btn:hover,
.home .current-project [class*="cta"] a:hover {
    background: var(--off-white);
    color: var(--black);
    border-color: var(--off-white);
}

.home .current-project svg {
    color: var(--black);
}

.home .current-project svg [stroke]:not([stroke="none"]) {
    stroke: currentColor;
}

.home .current-project svg [fill]:not([fill="none"]) {
    fill: currentColor;
}

/* Preserve photography/media itself while removing dark-theme overlays where present. */
.home .current-project img,
.home .current-project video {
    color: initial;
}

.home .current-project::before,
.home .current-project::after {
    border-color: rgba(10,10,10,.18);
}


/* v0.7.100 — Impact Soest homepage block: 65/35 copy + local-impact banner. */
.home .current-project {
    padding: clamp(64px, 8vw, 112px) 0;
}

.home .current-project__container {
    width: min(var(--container), calc(100% - (var(--pad) * 2)));
}

.home .current-project__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(300px, .9fr);
    gap: clamp(30px, 5vw, 74px);
    align-items: center;
}

.home .current-project__content {
    max-width: 780px;
}

.home .current-project__content .eyebrow {
    margin-bottom: 14px;
}

.home .current-project__content h2 {
    margin: 0;
    max-width: 9.5ch;
    font-size: clamp(52px, 6.4vw, 92px);
    line-height: .91;
    letter-spacing: -.055em;
}

.home .current-project__lead {
    margin: clamp(24px, 3vw, 34px) 0 0;
    max-width: 60ch;
    font-size: clamp(17px, 1.45vw, 21px);
    line-height: 1.5;
    color: var(--black);
}

.home .current-project__cta {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: clamp(26px, 3vw, 38px);
}

.home .current-project__cta span {
    display: inline-block;
    transition: transform .25s ease;
}

.home .current-project__cta:hover span {
    transform: translateX(4px);
}

.home .current-project__local-banner {
    width: 100%;
    min-height: clamp(360px, 38vw, 470px);
    box-sizing: border-box;
    padding: clamp(30px, 3.1vw, 42px);
    border-radius: 34px 34px 88px 34px;
    background: var(--black);
    color: var(--off-white);
    display: flex;
    align-items: stretch;
}

.home .current-project__local-banner-inner {
    width: 100%;
    display: flex;
    flex-direction: column;
}

.home .current-project__local-kicker {
    margin: 0 0 22px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    color: var(--accent) !important;
}

.home .current-project__local-banner h3 {
    margin: 0;
    max-width: 9ch;
    font-size: clamp(34px, 3.4vw, 52px);
    line-height: .94;
    letter-spacing: -.045em;
    color: var(--off-white) !important;
}

.home .current-project__local-banner > *,
.home .current-project__local-banner p,
.home .current-project__local-banner strong,
.home .current-project__local-banner span {
    color: var(--off-white);
}

.home .current-project__local-banner > .current-project__local-banner-inner > p:not(.current-project__local-kicker) {
    margin: 24px 0 0;
    max-width: 32ch;
    font-size: clamp(16px, 1.25vw, 18px);
    line-height: 1.5;
    color: #d8d8d2 !important;
}

.home .current-project__partner {
    margin-top: auto;
    padding-top: 34px;
    border-top: 1px solid rgba(255,255,255,.20);
}

.home .current-project__partner span {
    display: block;
    margin-bottom: 7px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--accent) !important;
}

.home .current-project__partner strong {
    display: block;
    max-width: 15ch;
    font-size: clamp(20px, 2vw, 28px);
    line-height: 1.05;
    letter-spacing: -.025em;
    color: var(--off-white) !important;
}

@media (max-width: 900px) {
    .home .current-project {
        padding: 62px 0 72px;
    }

    .home .current-project__grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .home .current-project__content h2 {
        max-width: 10ch;
        font-size: clamp(46px, 10vw, 70px);
    }

    .home .current-project__local-banner {
        min-height: 340px;
        border-radius: 30px 30px 68px 30px;
    }
}

@media (max-width: 640px) {
    .home .current-project__content h2 {
        font-size: clamp(42px, 12vw, 58px);
    }

    .home .current-project__local-banner {
        min-height: 320px;
        padding: 28px 24px;
        border-radius: 28px 28px 58px 28px;
    }

    .home .current-project__local-banner h3 {
        font-size: clamp(34px, 9.5vw, 44px);
    }
}

/* v0.7.106 — Impact Soest definitive layout.
   Desktop geometry is exactly:
   SPACE | COPY | SPACE | BANNER | SPACE
   The same --impact-space track is used for all three visible orange gaps. */
.home .current-project {
    --impact-space: clamp(34px, 4vw, 72px);
    width: 100%;
    min-height: 0;
    padding: clamp(64px, 7vw, 96px) 0;
    box-sizing: border-box;
    background: var(--accent);
    color: var(--black);
}

.home .current-project__container {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.home .current-project__grid {
    width: 100%;
    display: grid;
    grid-template-columns:
        var(--impact-space)
        minmax(0, 1fr)
        var(--impact-space)
        minmax(0, 1fr)
        var(--impact-space);
    column-gap: 0;
    row-gap: 0;
    align-items: center;
}

.home .current-project__content {
    grid-column: 2;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.home .current-project__content .eyebrow {
    margin: 0 0 14px;
}

.home .current-project__content h2 {
    margin: 0;
    max-width: 11ch;
    font-size: clamp(44px, 4.6vw, 72px);
    line-height: .94;
    letter-spacing: -.05em;
}

.home .current-project__lead {
    margin: clamp(22px, 2.5vw, 30px) 0 0;
    max-width: 54ch;
    font-size: clamp(16px, 1.2vw, 19px);
    line-height: 1.5;
}

.home .current-project__cta {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: clamp(24px, 2.8vw, 34px);
    padding: 0 22px;
    border: 1px solid var(--black);
    border-radius: 999px;
    background: var(--black) !important;
    color: var(--off-white) !important;
    font-size: 14px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    box-sizing: border-box;
}

.home .current-project__local-banner {
    grid-column: 4;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: clamp(28px, 3vw, 40px);
    justify-self: stretch;
    align-self: center;
    border-radius: 30px;
    background: var(--black);
    color: var(--off-white);
    box-sizing: border-box;
}

.home .current-project__local-banner-inner {
    width: 100%;
    min-height: clamp(300px, 27vw, 360px);
    display: flex;
    flex-direction: column;
}

.home .current-project__local-kicker {
    margin: 0 0 18px;
}

.home .current-project__local-banner h3 {
    margin: 0;
    max-width: 12ch;
    font-size: clamp(30px, 2.8vw, 44px);
    line-height: .97;
    letter-spacing: -.04em;
}

.home .current-project__local-banner > .current-project__local-banner-inner > p:not(.current-project__local-kicker) {
    margin: 20px 0 0;
    max-width: 34ch;
    font-size: clamp(15px, 1.05vw, 17px);
    line-height: 1.48;
}

.home .current-project__partner {
    margin-top: auto;
    padding-top: 22px;
    border-top: 1px solid rgba(255,255,255,.20);
}

/* Laptop: same five-track geometry; only the single shared space changes. */
@media (min-width: 901px) and (max-width: 1180px) {
    .home .current-project {
        --impact-space: clamp(28px, 3.5vw, 42px);
    }

    .home .current-project__content h2 {
        font-size: clamp(40px, 5vw, 58px);
    }

    .home .current-project__lead {
        font-size: 16px;
    }

    .home .current-project__local-banner {
        padding: 28px;
    }

    .home .current-project__local-banner-inner {
        min-height: 290px;
    }
}

/* Tablet/mobile: one content column with exactly equal left/right gutters.
   The same shared space is also used vertically between copy and banner. */
@media (max-width: 900px) {
    .home .current-project {
        --impact-space: clamp(24px, 5vw, 36px);
        padding: 58px 0 70px;
    }

    .home .current-project__grid {
        grid-template-columns:
            var(--impact-space)
            minmax(0, 1fr)
            var(--impact-space);
        grid-template-rows: auto var(--impact-space) auto;
    }

    .home .current-project__content {
        grid-column: 2;
        grid-row: 1;
    }

    .home .current-project__local-banner {
        grid-column: 2;
        grid-row: 3;
        width: 100%;
    }

    .home .current-project__content h2 {
        max-width: 11ch;
        font-size: clamp(42px, 9vw, 64px);
    }

    .home .current-project__lead {
        max-width: 58ch;
        font-size: 17px;
    }

    .home .current-project__local-banner-inner {
        min-height: 285px;
    }
}

@media (max-width: 640px) {
    .home .current-project {
        --impact-space: 22px;
        padding: 50px 0 60px;
    }

    .home .current-project__content h2 {
        max-width: 10ch;
        font-size: clamp(40px, 11.5vw, 54px);
    }

    .home .current-project__lead {
        font-size: 16px;
    }

    .home .current-project__local-banner {
        padding: 26px 24px;
        border-radius: 26px;
    }
}



/* v0.7.107 — Impact Soest banner photo.
   Keeps the existing outer section/grid proportions intact.
   Only the black banner interior is split into copy + media. */
.home .current-project__local-banner {
    overflow: hidden;
}

.home .current-project__local-banner-inner {
    min-height: clamp(300px, 27vw, 360px);
    display: flex;
    flex-direction: column;
}

.home .current-project__local-top {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(180px, .9fr);
    gap: clamp(22px, 2vw, 32px);
    align-items: start;
}

.home .current-project__local-copy {
    min-width: 0;
}

.home .current-project__local-copy > p:not(.current-project__local-kicker) {
    margin: 20px 0 0;
    max-width: 34ch;
    font-size: clamp(15px, 1.05vw, 17px);
    line-height: 1.48;
}

.home .current-project__local-media {
    width: 100%;
    margin: 0;
    padding: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 20px;
    background: var(--black);
}

.home .current-project__local-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.home .current-project__partner {
    margin-top: auto;
    padding-top: 22px;
}

/* Laptop: keep photo top-right, scale it with the banner. */
@media (min-width: 901px) and (max-width: 1180px) {
    .home .current-project__local-top {
        grid-template-columns: minmax(0, 1.35fr) minmax(150px, .8fr);
        gap: 22px;
    }

    .home .current-project__local-media {
        border-radius: 18px;
    }
}

/* Tablet: still side-by-side while the banner has room. */
@media (min-width: 641px) and (max-width: 900px) {
    .home .current-project__local-top {
        grid-template-columns: minmax(0, 1.35fr) minmax(180px, .85fr);
        gap: 24px;
    }
}

/* Mobile: media moves above the copy, fully inside the same black padding. */
@media (max-width: 640px) {
    .home .current-project__local-top {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .home .current-project__local-media {
        order: -1;
        aspect-ratio: 16 / 10;
        border-radius: 18px;
    }
}


/* v0.7.109 — Impact Soest partner logo fit.
   Preserve the full uploaded image: no cropping, no distortion.
   Any unused media area is the exact same black as the banner. */
.home .current-project__local-media {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--black);
}

.home .current-project__local-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}


/* v0.7.111 — Impact Soest: reduce top whitespace only.
   No grid, spacing, banner, typography or bottom-spacing changes. */
.home .current-project {
    padding-top: clamp(38px, 4vw, 56px);
}




/* v0.7.114 — Impact Soest content-only scroll blur.
   The orange section background remains perfectly sharp.
   Only the left content and the black local-impact banner are blurred. */
.home .current-project.impact-scroll-blur .current-project__content,
.home .current-project.impact-scroll-blur .current-project__local-banner {
    filter: blur(var(--impact-scroll-blur, 8px));
    will-change: filter;
}

@media (prefers-reduced-motion: reduce) {
    .home .current-project.impact-scroll-blur .current-project__content,
    .home .current-project.impact-scroll-blur .current-project__local-banner {
        filter: none;
    }
}

/* v0.7.120 — Impactpartners aligned to Impact Soest outer geometry.
   Uses the same five-column SPACE | CONTENT | SPACE | VISUAL | SPACE model. */
.home .home-partners--recruit {
    --impact-space: clamp(32px, 4vw, 72px);
    width: 100%;
    padding: 0;
    box-sizing: border-box;
    background: var(--off-white);
}

.home .home-partners__container {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.home .home-partners__recruit-grid {
    width: 100%;
    display: grid;
    grid-template-columns:
        var(--impact-space)
        minmax(0, 1fr)
        var(--impact-space)
        minmax(0, 1fr)
        var(--impact-space);
    column-gap: 0;
    row-gap: 0;
    align-items: start;
    padding-top: 34px;
    padding-bottom: 40px;
    box-sizing: border-box;
}

.home .home-partners__recruit-copy {
    grid-column: 2;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.home .home-partners__recruit-copy .eyebrow {
    margin-top: 0;
}

.home .home-partners__recruit-copy h2 {
    margin: 14px 0 0;
    max-width: 13.5ch;
    font-size: clamp(44px, 4.15vw, 68px);
    line-height: .99;
}

.home .home-partners__recruit-text {
    margin: 20px 0 0;
    max-width: 54ch;
    font-size: clamp(16px, 1vw, 18px);
    line-height: 1.47;
}

.home .home-partners__recruit-cta {
    margin-top: clamp(24px, 2.6vw, 34px);
}

.home .home-partners__recruit-cta p {
    margin: 0 0 14px;
    font-weight: 800;
    font-size: clamp(18px, 1.2vw, 20px);
}

.home .home-partners__network {
    grid-column: 4;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: 10px 0 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    box-sizing: border-box;
}

.home .home-partners__network-svg {
    display: block;
    width: min(88%, 500px);
    height: auto;
    overflow: visible;
}

/* Network drawing */
.home .network-line {
    fill: none;
    stroke: var(--black);
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    opacity: .9;
}

.home .network-node--outer {
    fill: var(--off-white);
    stroke: var(--black);
    stroke-width: 3;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    transform: scale(.55);
}

.home .network-node--center {
    fill: var(--orange);
    stroke: var(--black);
    stroke-width: 3;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    transform: scale(.6);
}

.home .network-node--pulse {
    fill: none;
    stroke: var(--orange);
    stroke-width: 3;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
}

.home .home-partners--recruit.is-network-visible .network-line {
    animation: evolvoNetworkLine .9s cubic-bezier(.22,.61,.36,1) forwards;
}

.home .home-partners--recruit.is-network-visible .network-line--2 { animation-delay: .10s; }
.home .home-partners--recruit.is-network-visible .network-line--3 { animation-delay: .18s; }
.home .home-partners--recruit.is-network-visible .network-line--4 { animation-delay: .26s; }
.home .home-partners--recruit.is-network-visible .network-line--5 { animation-delay: .34s; }
.home .home-partners--recruit.is-network-visible .network-line--6 { animation-delay: .42s; }
.home .home-partners--recruit.is-network-visible .network-line--7 { animation-delay: .50s; }
.home .home-partners--recruit.is-network-visible .network-line--8 { animation-delay: .58s; }
.home .home-partners--recruit.is-network-visible .network-line--9 { animation-delay: .66s; }
.home .home-partners--recruit.is-network-visible .network-line--10 { animation-delay: .74s; }

.home .home-partners--recruit.is-network-visible .network-node--center {
    animation: evolvoNetworkNode .5s cubic-bezier(.2,.8,.2,1) .05s forwards;
}

.home .home-partners--recruit.is-network-visible .network-node--1 { animation: evolvoNetworkNode .42s cubic-bezier(.2,.8,.2,1) .52s forwards; }
.home .home-partners--recruit.is-network-visible .network-node--2 { animation: evolvoNetworkNode .42s cubic-bezier(.2,.8,.2,1) .62s forwards; }
.home .home-partners--recruit.is-network-visible .network-node--3 { animation: evolvoNetworkNode .42s cubic-bezier(.2,.8,.2,1) .70s forwards; }
.home .home-partners--recruit.is-network-visible .network-node--4 { animation: evolvoNetworkNode .42s cubic-bezier(.2,.8,.2,1) .78s forwards; }
.home .home-partners--recruit.is-network-visible .network-node--5 { animation: evolvoNetworkNode .42s cubic-bezier(.2,.8,.2,1) .86s forwards; }
.home .home-partners--recruit.is-network-visible .network-node--6 { animation: evolvoNetworkNode .42s cubic-bezier(.2,.8,.2,1) .94s forwards; }

.home .home-partners--recruit.is-network-visible .network-node--pulse {
    animation: evolvoNetworkPulse 1.8s ease-out .28s 2;
}

@keyframes evolvoNetworkLine {
    from { stroke-dashoffset: 1; opacity: .15; }
    to { stroke-dashoffset: 0; opacity: .9; }
}

@keyframes evolvoNetworkNode {
    from { opacity: 0; transform: scale(.55); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes evolvoNetworkPulse {
    0% { opacity: 0; transform: scale(.7); }
    20% { opacity: .5; }
    100% { opacity: 0; transform: scale(1.7); }
}

@media (min-width: 1500px) {
    .home .home-partners--recruit {
        --impact-space: clamp(64px, 4vw, 76px);
    }
}

@media (min-width: 901px) and (max-width: 1180px) {
    .home .home-partners--recruit {
        --impact-space: clamp(28px, 3.4vw, 40px);
    }

    .home .home-partners__recruit-copy h2 {
        font-size: clamp(42px, 4.2vw, 60px);
    }

    .home .home-partners__network-svg {
        width: min(92%, 460px);
    }
}

@media (max-width: 900px) {
    .home .home-partners--recruit {
        --impact-space: clamp(24px, 5vw, 36px);
    }

    .home .home-partners__recruit-grid {
        grid-template-columns:
            var(--impact-space)
            minmax(0, 1fr)
            var(--impact-space);
        grid-template-rows: auto var(--impact-space) auto;
        column-gap: 0;
        row-gap: 0;
        padding-top: 28px;
        padding-bottom: 34px;
    }

    .home .home-partners__recruit-copy {
        grid-column: 2;
        grid-row: 1;
    }

    .home .home-partners__network {
        grid-column: 2;
        grid-row: 3;
        padding-top: 0;
    }

    .home .home-partners__recruit-copy h2 {
        max-width: 12ch;
        font-size: clamp(42px, 10vw, 64px);
    }

    .home .home-partners__network-svg {
        width: min(84%, 460px);
    }
}

@media (max-width: 640px) {
    .home .home-partners--recruit {
        --impact-space: 22px;
    }

    .home .home-partners__recruit-grid {
        padding-top: 24px;
        padding-bottom: 30px;
    }

    .home .home-partners__recruit-copy h2 {
        font-size: clamp(38px, 12vw, 54px);
    }

    .home .home-partners__recruit-text {
        margin-top: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home .network-line {
        stroke-dashoffset: 0;
        opacity: .9;
        animation: none !important;
    }

    .home .network-node--outer,
    .home .network-node--center {
        opacity: 1;
        transform: none;
        animation: none !important;
    }

    .home .network-node--pulse {
        display: none;
    }
}


/* v0.7.126 — Contact: simple, clean and fully content-driven. */
.home .home-final-cta {
    min-height: 0;
    height: auto;
    padding: 0;
    background: var(--off-white);
}

.home .home-final-cta__inner {
    padding-top: clamp(44px, 4.5vw, 64px);
    padding-bottom: clamp(48px, 5vw, 70px);
}

.home .home-final-cta__inner h2 {
    margin: 14px 0 0;
    max-width: 820px;
    font-size: clamp(44px, 5.2vw, 72px);
    line-height: .98;
}

.home .home-final-cta__text {
    margin: 20px 0 26px;
    max-width: 58ch;
    font-size: clamp(16px, 1vw, 18px);
    line-height: 1.52;
}

.home .home-final-cta .button {
    border-radius: 999px;
}

@media (max-width: 640px) {
    .home .home-final-cta__inner {
        padding-top: 36px;
        padding-bottom: 42px;
    }

    .home .home-final-cta__inner h2 {
        font-size: clamp(40px, 11vw, 54px);
    }
}


/* v0.7.125 — Impactpartners CTA uses the exact same corner radius as header CTAs. */
.home .home-partners--recruit .button {
    border-radius: 999px;
}

/* v0.7.128 — WhatsApp: VelgenProf pill/interaction, Evolvo popup styling. */
.evolvo-wa{position:fixed;right:clamp(18px,2.4vw,34px);bottom:clamp(18px,2.4vw,30px);z-index:1200;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.evolvo-wa__trigger{appearance:none;border:0;margin:0;min-height:58px;padding:0 24px 0 18px;border-radius:999px;background:#25D366;color:#fff;box-shadow:0 10px 26px rgba(0,0,0,.22);display:inline-flex;align-items:center;gap:12px;font:inherit;font-size:17px;font-weight:700;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}
.evolvo-wa__trigger:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.25)}
.evolvo-wa__icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:#fff;flex:0 0 28px}
.evolvo-wa__icon svg{width:100%;height:100%;display:block}
.evolvo-wa__panel{position:absolute;right:0;bottom:calc(100% + 12px);width:min(330px,calc(100vw - 36px));padding:24px;border-radius:24px;background:var(--off-white);color:var(--black);box-shadow:0 18px 50px rgba(0,0,0,.22);border:1px solid rgba(10,10,10,.09);opacity:0;visibility:hidden;transform:translateY(10px) scale(.98);transform-origin:bottom right;transition:opacity .2s ease,transform .2s ease,visibility .2s}
.evolvo-wa.is-open .evolvo-wa__panel{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.evolvo-wa__close{position:absolute;top:12px;right:14px;appearance:none;border:0;background:transparent;color:var(--black);font-size:25px;line-height:1;cursor:pointer}
.evolvo-wa__kicker{margin:0 34px 10px 0;font-size:12px;line-height:1;font-weight:800;letter-spacing:.16em}
.evolvo-wa__title{margin:0;max-width:12ch;font-size:27px;line-height:1.02;font-weight:800}
.evolvo-wa__text{margin:14px 0 20px;font-size:15px;line-height:1.5}
.evolvo-wa__start{min-height:48px;padding:0 18px;border-radius:999px;background:var(--black);color:var(--off-white);display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;text-decoration:none}
@media(max-width:640px){.evolvo-wa{right:16px;bottom:16px}.evolvo-wa__trigger{min-height:54px;padding:0 18px 0 15px;font-size:15px}.evolvo-wa__icon{width:26px;height:26px;flex-basis:26px}.evolvo-wa__panel{width:min(310px,calc(100vw - 32px));padding:22px}}
@media(prefers-reduced-motion:reduce){.evolvo-wa__trigger,.evolvo-wa__panel{transition:none}}


/* v0.7.130 — Ons Aanbod page: editorial, alternating and content-driven. */
.offer-page-hero{background:var(--off-white);padding:clamp(58px,7vw,100px) 0 clamp(64px,7.5vw,110px)}
.offer-page-hero__inner{max-width:1180px}
.offer-page-hero h1{margin:14px 0 0;max-width:12ch;font-size:clamp(58px,7.2vw,112px);line-height:.91;letter-spacing:-.055em}
.offer-page-hero__intro{margin:28px 0 0;max-width:59ch;font-size:clamp(18px,1.35vw,22px);line-height:1.52}

.offer-page-list{background:var(--off-white)}
.offer-page-item{border-top:1px solid rgba(10,10,10,.15);padding:clamp(48px,6vw,88px) 0}
.offer-page-item:last-child{border-bottom:1px solid rgba(10,10,10,.15)}
.offer-page-item__grid{width:100%;display:grid;grid-template-columns:var(--impact-space,clamp(32px,4vw,72px)) minmax(0,1fr) var(--impact-space,clamp(32px,4vw,72px)) minmax(0,1fr) var(--impact-space,clamp(32px,4vw,72px));align-items:center}
.offer-page-item__content{grid-column:2;min-width:0}
.offer-page-item__visual{grid-column:4;min-width:0}
.offer-page-item--reverse .offer-page-item__content{grid-column:4}
.offer-page-item--reverse .offer-page-item__visual{grid-column:2;grid-row:1}
.offer-page-item__index{margin:0 0 16px;font-size:12px;font-weight:800;letter-spacing:.15em}
.offer-page-item h2{margin:0;max-width:10ch;font-size:clamp(50px,5vw,82px);line-height:.94;letter-spacing:-.045em}
.offer-page-item__subtitle{margin:18px 0 0;font-size:clamp(19px,1.4vw,24px);font-weight:750}
.offer-page-item__description{margin:18px 0 0;max-width:52ch;font-size:clamp(16px,1vw,18px);line-height:1.55}
.offer-page-item__meta{display:flex;flex-wrap:wrap;gap:28px;margin:26px 0}
.offer-page-item__meta span{display:flex;flex-direction:column;gap:5px;font-weight:700}
.offer-page-item__meta small{font-size:10px;letter-spacing:.14em;color:#6e6e68}
.offer-page-item__button{margin-top:4px;border-radius:999px}
.offer-page-item__visual{aspect-ratio:4/3;overflow:hidden;border-radius:30px;background:#0A0A0A}
.offer-page-item__visual img{width:100%;height:100%;display:block;object-fit:cover}
.offer-page-item__graphic{width:100%;height:100%;position:relative;overflow:hidden;background:var(--black)}
.offer-page-item__graphic span{position:absolute;border:2px solid var(--orange,#FF5A1F);border-radius:999px}
.offer-page-item__graphic span:nth-child(1){width:62%;aspect-ratio:1;left:19%;top:19%}
.offer-page-item__graphic span:nth-child(2){width:38%;aspect-ratio:1;left:31%;top:31%}
.offer-page-item__graphic span:nth-child(3){width:14%;aspect-ratio:1;left:43%;top:43%;background:var(--orange,#FF5A1F)}

.offer-page-cta{background:var(--off-white);padding:clamp(54px,6vw,84px) 0}
.offer-page-cta__inner h2{margin:14px 0 0;max-width:12ch;font-size:clamp(46px,5vw,76px);line-height:.96}
.offer-page-cta__inner>p:not(.eyebrow){max-width:55ch;margin:20px 0 28px;font-size:17px;line-height:1.55}
.offer-page-cta .button{border-radius:999px}

.offer-detail{background:var(--off-white);padding:clamp(60px,7vw,100px) 0}
.offer-detail__inner{max-width:1120px}
.offer-detail__back{display:inline-block;margin-bottom:48px;color:inherit;text-decoration:none;font-weight:700}
.offer-detail h1{margin:14px 0 0;font-size:clamp(60px,8vw,118px);line-height:.9;letter-spacing:-.055em}
.offer-detail__subtitle{font-size:clamp(20px,1.6vw,26px);font-weight:750;margin:24px 0 0}
.offer-detail__description{max-width:60ch;font-size:clamp(17px,1.15vw,20px);line-height:1.58;margin:20px 0}
.offer-detail__image{margin-top:42px;border-radius:30px;overflow:hidden}
.offer-detail__image img{display:block;width:100%;height:auto}

@media(max-width:900px){
 .offer-page-item__grid{grid-template-columns:clamp(22px,5vw,36px) minmax(0,1fr) clamp(22px,5vw,36px);grid-template-rows:auto 28px auto}
 .offer-page-item__content,.offer-page-item--reverse .offer-page-item__content{grid-column:2;grid-row:1}
 .offer-page-item__visual,.offer-page-item--reverse .offer-page-item__visual{grid-column:2;grid-row:3}
 .offer-page-item__visual{border-radius:24px}
 .offer-page-item h2{max-width:12ch}
}
@media(max-width:640px){
 .offer-page-hero{padding:42px 0 54px}
 .offer-page-hero h1{font-size:clamp(48px,14vw,68px)}
 .offer-page-item{padding:42px 0}
 .offer-page-item h2{font-size:clamp(44px,13vw,62px)}
 .offer-page-item__visual{border-radius:20px}
}


/* v0.7.131 — Ons Aanbod rebuilt as a static interactive four-postcard onepager. */
.offer-onepager{background:var(--off-white);min-height:calc(100svh - 82px)}
.offer-onepager__stage{min-height:calc(100svh - 82px);box-sizing:border-box;padding:clamp(34px,4.2vh,52px) clamp(22px,3.4vw,58px) clamp(28px,3.6vh,44px);display:flex;flex-direction:column}
.offer-onepager__intro{flex:0 0 auto}
.offer-onepager__intro h1{margin:10px 0 0;max-width:14ch;font-size:clamp(42px,4.25vw,68px);line-height:.94;letter-spacing:-.045em}
.offer-onepager__intro>p:not(.eyebrow){margin:14px 0 0;max-width:58ch;font-size:clamp(15px,.95vw,17px);line-height:1.48}

.offer-postcards{position:relative;flex:1 1 auto;min-height:0;margin-top:clamp(24px,3vh,38px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.45vw,24px);align-items:stretch}
.offer-postcard{appearance:none;width:100%;min-width:0;min-height:0;margin:0;padding:0;border:1px solid rgba(10,10,10,.14);border-radius:28px;background:#fff;color:var(--black);overflow:hidden;text-align:left;font:inherit;display:flex;flex-direction:column;cursor:pointer;box-shadow:0 0 0 rgba(0,0,0,0);transition:transform .28s ease,box-shadow .28s ease,opacity .28s ease,filter .28s ease}
.offer-postcard:hover,.offer-postcard:focus-visible{transform:translateY(-6px);box-shadow:0 18px 40px rgba(10,10,10,.12);outline:none}
.offer-postcards.has-open-card .offer-postcard:not(.is-active){opacity:.38;filter:blur(1.5px)}
.offer-postcard.is-active{transform:translateY(-4px)}

.offer-postcard__visual{position:relative;display:block;flex:1 1 48%;min-height:145px;overflow:hidden;background:var(--black)}
.offer-postcard__visual img{display:block;width:100%;height:100%;object-fit:cover}
.offer-postcard__graphic{position:absolute;inset:0;display:block;overflow:hidden}
.offer-postcard__graphic i{position:absolute;display:block;border:2px solid var(--orange,#FF5A1F);border-radius:999px;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.offer-postcard__graphic i:nth-child(1){width:62%;aspect-ratio:1;left:19%;top:18%}
.offer-postcard__graphic i:nth-child(2){width:38%;aspect-ratio:1;left:31%;top:30%}
.offer-postcard__graphic i:nth-child(3){width:12%;aspect-ratio:1;left:44%;top:43%;background:var(--orange,#FF5A1F)}
.offer-postcard--2 .offer-postcard__graphic i:nth-child(1){border-radius:0;width:72%;height:2px;left:14%;top:35%;transform:rotate(-18deg)}
.offer-postcard--2 .offer-postcard__graphic i:nth-child(2){width:44%;left:28%;top:31%}
.offer-postcard--3 .offer-postcard__graphic i:nth-child(1){width:52%;left:10%;top:25%}
.offer-postcard--3 .offer-postcard__graphic i:nth-child(2){width:52%;left:38%;top:25%}
.offer-postcard--4 .offer-postcard__graphic i:nth-child(1){width:18%;left:18%;top:34%}
.offer-postcard--4 .offer-postcard__graphic i:nth-child(2){width:18%;left:41%;top:24%}
.offer-postcard--4 .offer-postcard__graphic i:nth-child(3){width:18%;left:64%;top:40%;background:transparent}
.offer-postcard:hover .offer-postcard__graphic i:nth-child(1){transform:scale(1.06)}
.offer-postcard:hover .offer-postcard__graphic i:nth-child(2){transform:scale(.94)}
.offer-postcard:hover .offer-postcard__graphic i:nth-child(3){transform:scale(1.14)}

.offer-postcard__body{display:flex;flex-direction:column;flex:0 0 auto;padding:clamp(18px,1.55vw,24px)}
.offer-postcard__number{font-size:10px;font-weight:800;letter-spacing:.13em;margin-bottom:9px}
.offer-postcard__body strong{font-size:clamp(25px,2vw,34px);line-height:.95;letter-spacing:-.035em}
.offer-postcard__subtitle{margin-top:9px;font-size:14px;font-weight:750}
.offer-postcard__copy{margin-top:9px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.42}
.offer-postcard__discover{margin-top:16px;display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:850;letter-spacing:.12em}
.offer-postcard__discover b{font-size:18px;line-height:1}

.offer-balloon{position:fixed;inset:0;z-index:1300;padding:24px;display:flex;align-items:center;justify-content:center;background:rgba(245,245,241,.68);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .24s ease,visibility .24s}
.offer-balloon.is-open{opacity:1;visibility:visible}
.offer-balloon__panel{position:relative;width:min(620px,calc(100vw - 48px));max-height:min(720px,calc(100svh - 48px));overflow:auto;padding:clamp(30px,4vw,54px);box-sizing:border-box;border:1px solid rgba(10,10,10,.13);border-radius:36px;background:var(--off-white);color:var(--black);box-shadow:0 30px 90px rgba(10,10,10,.2);transform:translateY(18px) scale(.975);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.offer-balloon.is-open .offer-balloon__panel{transform:translateY(0) scale(1)}
.offer-balloon__close{position:absolute;right:20px;top:17px;appearance:none;border:0;background:transparent;color:inherit;font-size:30px;line-height:1;cursor:pointer}
.offer-balloon__eyebrow{margin:0 42px 12px 0;font-size:11px;font-weight:850;letter-spacing:.16em}
.offer-balloon h2{margin:0;max-width:10ch;font-size:clamp(48px,5vw,72px);line-height:.92;letter-spacing:-.05em}
.offer-balloon__subtitle{margin:18px 0 0;font-size:clamp(18px,1.4vw,22px);font-weight:750}
.offer-balloon__text{margin:18px 0 0;max-width:52ch;font-size:16px;line-height:1.55}
.offer-balloon__meta{display:flex;flex-wrap:wrap;gap:28px;margin:26px 0}
.offer-balloon__meta span{display:flex;flex-direction:column;gap:5px;font-weight:750}
.offer-balloon__meta small{font-size:10px;letter-spacing:.13em;color:#686862}
.offer-balloon__cta{border-radius:999px}
.offer-onepager__mobile-hint{display:none}

body.offer-dialog-open{overflow:hidden}

@media(min-width:901px) and (max-height:760px){
 .offer-onepager__stage{padding-top:24px;padding-bottom:22px}
 .offer-onepager__intro h1{font-size:clamp(38px,3.7vw,56px)}
 .offer-onepager__intro>p:not(.eyebrow){margin-top:9px}
 .offer-postcards{margin-top:20px}
 .offer-postcard__visual{min-height:120px}
 .offer-postcard__body{padding:16px 18px}
 .offer-postcard__copy{display:none}
 .offer-postcard__discover{margin-top:11px}
}


@media(prefers-reduced-motion:reduce){
 .offer-postcard,.offer-postcard__graphic i,.offer-balloon,.offer-balloon__panel{transition:none}
}


/* v0.7.132 — Ons Aanbod intro compacted so more of the postcards fit above the fold. */
@media (min-width:901px){
 .offer-onepager__intro h1{
   max-width:20ch;
 }
 .offer-onepager__intro>p:not(.eyebrow){
   max-width:74ch;
 }
 .offer-postcards{
   margin-top:clamp(18px,2.2vh,28px);
 }
}


/* v0.7.133 — More breathing room below Ons Aanbod postcards. */
@media (min-width:901px){
 .offer-onepager__stage{
   padding-bottom:calc(clamp(28px,3.6vh,44px) + 44px);
 }
}


/* v0.7.134 — Homepage ending colour rhythm: black Contact, orange footer. */
.home .home-final-cta{
    background:var(--black);
    color:var(--off-white);
}
.home .home-final-cta .eyebrow{
    color:var(--accent);
}
.home .home-final-cta__inner h2{
    color:var(--off-white);
}
.home .home-final-cta__text{
    color:rgba(245,245,241,.78);
}
.home .home-final-cta .button--dark{
    background:var(--accent);
    border-color:var(--accent);
    color:var(--black);
}
.home .home-final-cta .button--dark:hover,
.home .home-final-cta .button--dark:focus-visible{
    background:var(--off-white);
    border-color:var(--off-white);
    color:var(--black);
}

.home .site-footer{
    background:var(--accent);
    color:var(--black);
}
.home .site-footer__brand,
.home .site-footer__tagline,
.home .site-footer__foundation,
.home .site-footer__menu a,
.home .site-footer__bottom{
    color:var(--black);
}
.home .site-footer__tagline{
    opacity:.72;
}
.home .site-footer__foundation{
    opacity:.72;
}
.home .site-footer__menu a{
    opacity:.88;
}
.home .site-footer__menu a:hover,
.home .site-footer__menu a:focus-visible{
    opacity:1;
}
.home .site-footer__bottom{
    border-top-color:rgba(10,10,10,.28);
    color:rgba(10,10,10,.68);
}

/* v0.7.135 — More breathing room before the CTA in Ons Aanbod information balloons. */
.offer-balloon__cta{margin-top:32px;}
@media (max-width:900px){
 .offer-balloon__cta{margin-top:26px;}
}

/* v0.7.136 — Friendly delayed WhatsApp nudge above the existing button. */
.evolvo-wa__nudge{position:relative;width:min(330px,calc(100vw - 36px));box-sizing:border-box;padding:18px 42px 18px 19px;border:1px solid rgba(10,10,10,.1);border-radius:20px;background:var(--off-white);color:var(--black);box-shadow:0 16px 42px rgba(10,10,10,.16);opacity:0;visibility:hidden;transform:translateY(10px) scale(.985);transition:opacity .28s ease,transform .28s ease,visibility .28s}
.evolvo-wa__nudge.is-visible{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.evolvo-wa__nudge-open{appearance:none;border:0;background:none;padding:0;margin:0;text-align:left;color:inherit;font:inherit;cursor:pointer;width:100%}
.evolvo-wa__nudge-open strong{display:block;font-size:15px;line-height:1.2;letter-spacing:-.01em}
.evolvo-wa__nudge-open span{display:block;margin-top:6px;font-size:13px;line-height:1.4;opacity:.72}
.evolvo-wa__nudge-close{position:absolute;top:8px;right:9px;width:28px;height:28px;border:0;background:transparent;color:var(--black);font:inherit;font-size:20px;line-height:1;cursor:pointer;opacity:.52}
.evolvo-wa__nudge-close:hover,.evolvo-wa__nudge-close:focus-visible{opacity:1}
@media(max-width:640px){.evolvo-wa__nudge{width:min(300px,calc(100vw - 32px));padding:16px 40px 16px 17px;border-radius:18px}.evolvo-wa__nudge-open strong{font-size:14px}.evolvo-wa__nudge-open span{font-size:12px}}
@media(prefers-reduced-motion:reduce){.evolvo-wa__nudge{transition:none}}

/* v0.7.137 — Dedicated Evolvo contact page. */
.contact-page{background:var(--off-white);color:var(--black);padding:clamp(54px,6.5vw,96px) 0 clamp(64px,7vw,108px)}
.contact-page__grid{display:grid;grid-template-columns:minmax(0,.72fr) minmax(480px,1.08fr);gap:clamp(60px,7vw,124px);align-items:start}
.contact-page__intro{position:sticky;top:126px}
.contact-page__intro h1{margin:12px 0 0;max-width:8.5ch;font-size:clamp(58px,6.2vw,94px);line-height:.91;letter-spacing:-.055em}
.contact-page__lead{margin:25px 0 0;max-width:49ch;font-size:clamp(17px,1.2vw,20px);line-height:1.52}
.contact-page__direct{margin-top:clamp(34px,4vw,54px);border-top:1px solid rgba(10,10,10,.18)}
.contact-direct{appearance:none;width:100%;box-sizing:border-box;border:0;border-bottom:1px solid rgba(10,10,10,.18);background:transparent;color:var(--black);padding:18px 2px;display:grid;grid-template-columns:120px 1fr auto;gap:18px;align-items:center;text-align:left;text-decoration:none;font:inherit;cursor:pointer}
.contact-direct span{font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;opacity:.55}
.contact-direct strong{font-size:15px}
.contact-direct b{font-size:18px;font-weight:500;transition:transform .2s ease}
.contact-direct:hover b,.contact-direct:focus-visible b{transform:translate(3px,-3px)}
.contact-page__form{min-width:0;background:#fff;border:1px solid rgba(10,10,10,.1);border-radius:32px;padding:clamp(28px,3.2vw,48px);box-shadow:0 18px 60px rgba(10,10,10,.05)}
.contact-page__form-placeholder{min-height:360px;display:flex;flex-direction:column;justify-content:center}
.contact-page__form-placeholder span{font-size:10px;font-weight:850;letter-spacing:.13em;color:var(--accent)}
.contact-page__form-placeholder strong{margin-top:12px;font-size:clamp(26px,2.2vw,38px);line-height:1}
.contact-page__form-placeholder p{max-width:48ch;line-height:1.5;opacity:.65}
/* Fluent Forms is visually absorbed into the Evolvo design. */
.contact-page .fluentform .ff-el-group{margin-bottom:26px}
.contact-page .fluentform label{font-size:10px!important;font-weight:850!important;letter-spacing:.12em!important;text-transform:uppercase;color:rgba(10,10,10,.62)!important}
.contact-page .fluentform input:not([type=checkbox]):not([type=radio]),.contact-page .fluentform select,.contact-page .fluentform textarea{width:100%;box-sizing:border-box;border:0!important;border-bottom:1px solid rgba(10,10,10,.25)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:12px 0 14px!important;color:var(--black)!important;font:inherit!important;font-size:17px!important;transition:border-color .2s ease}
.contact-page .fluentform textarea{min-height:132px;resize:vertical}
.contact-page .fluentform input:focus,.contact-page .fluentform select:focus,.contact-page .fluentform textarea:focus{outline:none!important;border-bottom-color:var(--accent)!important}
.contact-page .fluentform .ff-btn-submit{border:1px solid var(--accent)!important;border-radius:999px!important;background:var(--accent)!important;color:var(--black)!important;padding:15px 24px!important;font-weight:850!important;letter-spacing:.05em!important;cursor:pointer!important;box-shadow:none!important;opacity:1!important}
.contact-page .fluentform .ff-btn-submit:hover,.contact-page .fluentform .ff-btn-submit:focus-visible{background:var(--black)!important;border-color:var(--black)!important;color:#fff!important}
.contact-reassurance{background:var(--black);color:var(--off-white);padding:clamp(58px,6.5vw,96px) 0}
.contact-reassurance__inner{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:clamp(50px,8vw,140px);align-items:end}
.contact-reassurance .eyebrow{color:var(--accent)}
.contact-reassurance h2{margin:12px 0 0;max-width:16ch;font-size:clamp(42px,5vw,76px);line-height:.94;letter-spacing:-.045em}
.contact-reassurance__inner>p{margin:0;max-width:46ch;color:rgba(245,245,241,.72);font-size:clamp(16px,1.15vw,19px);line-height:1.55}
@media(max-width:900px){
 .contact-page{padding:38px 0 64px}
 .contact-page__grid{grid-template-columns:1fr;gap:44px}
 .contact-page__intro{position:static}
 .contact-page__intro h1{max-width:10ch;font-size:clamp(52px,13vw,76px)}
 .contact-page__form{padding:26px 22px;border-radius:26px}
 .contact-reassurance__inner{grid-template-columns:1fr;gap:28px}
 .contact-reassurance h2{font-size:clamp(42px,11vw,60px)}
}
@media(max-width:560px){.contact-direct{grid-template-columns:1fr auto}.contact-direct span{grid-column:1/-1}.contact-direct strong{overflow-wrap:anywhere}}

/* v0.7.139 — Header has one action only: the existing orange CTA. */
.site-header .site-nav__actions .button--accent.site-nav__cta,
.home-tone--accent .site-header .site-nav__actions .button--accent.site-nav__cta{
    background:var(--accent) !important;
    border-color:var(--accent) !important;
    color:var(--black) !important;
}

/* v0.7.140 — Contact landing: three equal contact routes above the fold. */
.contact-choice{
    min-height:calc(100svh - 82px);
    box-sizing:border-box;
    display:flex;
    background:var(--off-white);
    color:var(--black);
    padding:clamp(32px,4vh,48px) 0 clamp(34px,4.5vh,52px);
}
.contact-choice__inner{display:flex;flex-direction:column;min-height:0;width:100%}
.contact-choice__intro{flex:0 0 auto}
.contact-choice__intro h1{
    margin:9px 0 0;
    max-width:12ch;
    font-size:clamp(48px,5.3vw,80px);
    line-height:.93;
    letter-spacing:-.05em
}
.contact-choice__intro>p:not(.eyebrow){
    margin:14px 0 0;
    max-width:56ch;
    font-size:clamp(16px,1.05vw,18px);
    line-height:1.48;
    color:rgba(10,10,10,.68)
}
.contact-routes{
    flex:1 1 auto;
    min-height:0;
    margin-top:clamp(24px,3vh,38px);
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:clamp(14px,1.45vw,24px)
}
.contact-route{
    appearance:none;
    width:100%;
    min-width:0;
    min-height:300px;
    margin:0;
    padding:clamp(22px,2vw,30px);
    box-sizing:border-box;
    border:1px solid rgba(10,10,10,.14);
    border-radius:30px;
    text-decoration:none;
    text-align:left;
    font:inherit;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    cursor:pointer;
    overflow:hidden;
    transition:transform .28s ease,box-shadow .28s ease
}
.contact-route:hover,.contact-route:focus-visible{
    transform:translateY(-6px);
    box-shadow:0 20px 48px rgba(10,10,10,.13);
    outline:none
}
.contact-route--call{background:#fff;color:var(--black)}
.contact-route--whatsapp{background:var(--accent);color:var(--black);border-color:rgba(10,10,10,.12)}
.contact-route--form{background:var(--black);color:var(--off-white);border-color:var(--black)}
.contact-route--disabled{cursor:default;opacity:.76}
.contact-route--disabled:hover{transform:none;box-shadow:none}
.contact-route__number{
    display:block;
    font-size:10px;
    line-height:1;
    font-weight:850;
    letter-spacing:.13em;
    text-transform:uppercase;
    opacity:.65
}
.contact-route__body{padding:clamp(18px,2.4vh,30px) 0}
.contact-route__symbol{
    display:flex;
    align-items:center;
    justify-content:center;
    width:48px;
    height:48px;
    margin-bottom:clamp(22px,2.6vh,34px);
    border:1px solid currentColor;
    border-radius:50%;
    font-size:22px;
    line-height:1
}
.contact-route__body h2{
    margin:0;
    max-width:12ch;
    font-size:clamp(29px,2.45vw,40px);
    line-height:.96;
    letter-spacing:-.04em;
    color:inherit
}
.contact-route__body p{
    margin:13px 0 0;
    max-width:34ch;
    font-size:14px;
    line-height:1.48;
    color:inherit;
    opacity:.72
}
.contact-route__action{
    padding-top:16px;
    border-top:1px solid currentColor;
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px 16px;
    align-items:center
}
.contact-route__action span{
    font-size:10px;
    font-weight:850;
    letter-spacing:.11em;
    text-transform:uppercase
}
.contact-route__action strong{
    grid-column:1/2;
    font-size:14px;
    overflow-wrap:anywhere
}
.contact-route__action b{
    grid-column:2/3;
    grid-row:1/3;
    align-self:center;
    font-size:19px;
    font-weight:500;
    transition:transform .2s ease
}
.contact-route:hover .contact-route__action b{transform:translate(3px,-3px)}
.contact-route--form:hover .contact-route__action b{transform:translateY(3px)}

.contact-form-section{
    scroll-margin-top:82px;
    background:var(--off-white);
    color:var(--black);
    padding:clamp(78px,8vw,126px) 0
}
.contact-form-section__grid{
    display:grid;
    grid-template-columns:minmax(280px,.75fr) minmax(480px,1.25fr);
    gap:clamp(64px,8vw,138px);
    align-items:start
}
.contact-form-section__intro{position:sticky;top:126px}
.contact-form-section__intro h2{
    margin:11px 0 0;
    max-width:10ch;
    font-size:clamp(48px,5vw,76px);
    line-height:.94;
    letter-spacing:-.045em
}
.contact-form-section__intro>p:not(.eyebrow){
    margin:20px 0 0;
    max-width:40ch;
    font-size:16px;
    line-height:1.55;
    color:rgba(10,10,10,.68)
}
.contact-form-section__form{
    min-width:0;
    background:#fff;
    border:1px solid rgba(10,10,10,.1);
    border-radius:32px;
    padding:clamp(30px,3.5vw,52px);
    box-shadow:0 18px 60px rgba(10,10,10,.05)
}
/* Fluent Forms styling for the separated form section. */
.contact-form-section .fluentform .ff-el-group{margin-bottom:26px}
.contact-form-section .fluentform label{font-size:10px!important;font-weight:850!important;letter-spacing:.12em!important;text-transform:uppercase;color:rgba(10,10,10,.62)!important}
.contact-form-section .fluentform input:not([type=checkbox]):not([type=radio]),
.contact-form-section .fluentform select,
.contact-form-section .fluentform textarea{
    width:100%;box-sizing:border-box;border:0!important;border-bottom:1px solid rgba(10,10,10,.25)!important;
    border-radius:0!important;background:transparent!important;box-shadow:none!important;
    padding:12px 0 14px!important;color:var(--black)!important;font:inherit!important;font-size:17px!important;
    transition:border-color .2s ease
}
.contact-form-section .fluentform textarea{min-height:132px;resize:vertical}
.contact-form-section .fluentform input:focus,
.contact-form-section .fluentform select:focus,
.contact-form-section .fluentform textarea:focus{outline:none!important;border-bottom-color:var(--accent)!important}
.contact-form-section .fluentform .ff-btn-submit{
    border:1px solid var(--accent)!important;border-radius:999px!important;background:var(--accent)!important;
    color:var(--black)!important;padding:15px 24px!important;font-weight:850!important;letter-spacing:.05em!important;
    cursor:pointer!important;box-shadow:none!important;opacity:1!important
}
.contact-form-section .fluentform .ff-btn-submit:hover,
.contact-form-section .fluentform .ff-btn-submit:focus-visible{
    background:var(--black)!important;border-color:var(--black)!important;color:#fff!important
}
@media(min-width:901px) and (max-height:760px){
    .contact-choice{padding-top:24px;padding-bottom:26px}
    .contact-choice__intro h1{font-size:clamp(44px,4.4vw,64px)}
    .contact-choice__intro>p:not(.eyebrow){margin-top:9px}
    .contact-routes{margin-top:20px}
    .contact-route{min-height:270px;padding:20px 22px}
    .contact-route__body{padding:14px 0}
    .contact-route__symbol{width:40px;height:40px;margin-bottom:16px}
    .contact-route__body h2{font-size:clamp(27px,2.1vw,34px)}
    .contact-route__body p{margin-top:8px}
}
@media(max-width:900px){
    .contact-choice{min-height:0;padding:30px 0 46px}
    .contact-choice__intro h1{font-size:clamp(50px,12vw,68px)}
    .contact-routes{grid-template-columns:1fr;margin-top:28px;gap:16px}
    .contact-route{min-height:330px;border-radius:26px}
    .contact-form-section{scroll-margin-top:72px;padding:66px 0 80px}
    .contact-form-section__grid{grid-template-columns:1fr;gap:38px}
    .contact-form-section__intro{position:static}
    .contact-form-section__intro h2{font-size:clamp(44px,11vw,62px)}
    .contact-form-section__form{padding:26px 22px;border-radius:26px}
}
@media(prefers-reduced-motion:reduce){
    .contact-route,.contact-route__action b{transition:none}
    .contact-route:hover,.contact-route:focus-visible{transform:none}
}

/* v0.7.141 — Contact hero refinement: elegant floating postcards, exact desktop viewport. */
@media (min-width:901px){
  .contact-choice{
    height:calc(100svh - 82px);
    min-height:0;
    overflow:hidden;
    padding:clamp(24px,3.4vh,42px) 0 clamp(38px,5.2vh,64px);
  }
  .contact-choice__inner{height:100%;justify-content:flex-start}
  .contact-choice__intro h1{
    font-size:clamp(44px,4.5vw,70px);
    line-height:.92;
    max-width:13ch;
  }
  .contact-choice__intro>p:not(.eyebrow){
    margin-top:10px;
    font-size:clamp(15px,.95vw,17px);
  }
  .contact-routes{
    flex:0 0 auto;
    width:min(100%,1560px);
    align-self:center;
    margin-top:clamp(24px,3.4vh,40px);
    gap:clamp(16px,1.55vw,26px);
  }
  .contact-route{
    height:clamp(310px,39vh,380px);
    min-height:0;
    padding:clamp(20px,1.65vw,28px);
    border-radius:28px;
    box-shadow:0 10px 32px rgba(10,10,10,.055);
  }
  .contact-route__top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
  }
  .contact-route__symbol{
    flex:0 0 auto;
    width:38px;
    height:38px;
    margin:0;
    font-size:17px;
  }
  .contact-route__body{
    padding:clamp(20px,3.2vh,34px) 0 clamp(14px,2.3vh,24px);
    margin-top:auto;
  }
  .contact-route__body h2{
    max-width:13ch;
    font-size:clamp(27px,2vw,35px);
  }
  .contact-route__body p{
    margin-top:10px;
    font-size:13px;
  }
  .contact-route__action{padding-top:13px}
}
/* Lower laptop screens: compact the whole composition instead of clipping it. */
@media (min-width:901px) and (max-height:800px){
  .contact-choice{padding-top:22px;padding-bottom:34px}
  .contact-choice__intro h1{font-size:clamp(40px,4vw,58px)}
  .contact-choice__intro>p:not(.eyebrow){margin-top:7px;font-size:14px}
  .contact-routes{margin-top:18px}
  .contact-route{height:clamp(270px,38vh,320px);padding:18px 20px;border-radius:25px}
  .contact-route__symbol{width:34px;height:34px;font-size:15px}
  .contact-route__body{padding:14px 0 12px}
  .contact-route__body h2{font-size:clamp(25px,1.8vw,31px)}
  .contact-route__body p{margin-top:7px;font-size:12.5px}
  .contact-route__action{padding-top:10px}
}
@media (min-width:901px) and (max-height:680px){
  .contact-choice{padding-top:16px;padding-bottom:24px}
  .contact-choice__intro h1{font-size:clamp(36px,3.6vw,50px)}
  .contact-choice__intro>p:not(.eyebrow){margin-top:5px}
  .contact-routes{margin-top:14px}
  .contact-route{height:clamp(235px,37vh,270px);padding:15px 18px;border-radius:23px}
  .contact-route__symbol{width:30px;height:30px}
  .contact-route__body{padding:9px 0 8px}
  .contact-route__body h2{font-size:clamp(22px,1.65vw,27px)}
  .contact-route__body p{margin-top:5px;line-height:1.35}
  .contact-route__action{padding-top:8px}
}
/* Mobile: preserve card presence with a horizontal swipe deck. */
@media (max-width:900px){
  .contact-choice{min-height:calc(100svh - 72px);overflow:hidden;padding:28px 0 32px}
  .contact-choice__inner{display:block}
  .contact-choice__intro h1{font-size:clamp(46px,11vw,64px)}
  .contact-routes{
    display:flex;
    width:auto;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    gap:16px;
    margin-top:26px;
    padding:0 max(22px,calc((100vw - 720px)/2)) 12px;
  }
  .contact-routes::-webkit-scrollbar{display:none}
  .contact-route{
    flex:0 0 min(82vw,390px);
    min-height:390px;
    scroll-snap-align:center;
    border-radius:26px;
  }
  .contact-route__top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
  .contact-route__symbol{width:38px;height:38px;margin:0;font-size:17px}
  .contact-route__body{padding:32px 0 22px;margin-top:auto}
  .contact-route__body h2{font-size:clamp(30px,8vw,38px)}
}

/* v0.7.142 — Contact hero as one precisely centered composition. */
@media (min-width:901px){
  .contact-choice{
    height:calc(100svh - 82px);
    min-height:0;
    overflow:hidden;
    padding:0;
    display:flex;
    align-items:center;
  }
  .contact-choice__inner{
    width:min(calc(100% - clamp(96px,12vw,240px)),1420px);
    max-width:none;
    height:auto;
    min-height:0;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .contact-choice__intro{
    width:100%;
    flex:0 0 auto;
  }
  .contact-choice__intro h1{
    margin-top:8px;
    max-width:13ch;
    font-size:clamp(43px,4.25vw,66px);
    line-height:.92;
  }
  .contact-choice__intro>p:not(.eyebrow){
    margin-top:9px;
    max-width:54ch;
    font-size:clamp(14px,.92vw,16px);
  }
  .contact-routes{
    width:100%;
    max-width:none;
    align-self:auto;
    flex:0 0 auto;
    margin-top:clamp(30px,4vh,42px);
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:clamp(28px,2.5vw,42px);
  }
  .contact-route{
    height:clamp(285px,34vh,325px);
    min-height:0;
    padding:clamp(22px,1.7vw,28px);
    border-radius:27px;
    box-shadow:0 12px 34px rgba(10,10,10,.065);
  }
  .contact-route__top{display:block}
  .contact-route__body{
    margin-top:auto;
    padding:clamp(18px,2.6vh,26px) 0 clamp(14px,1.8vh,20px);
  }
  .contact-route__body h2{
    max-width:12.5ch;
    font-size:clamp(27px,1.9vw,34px);
    line-height:.96;
  }
  .contact-route__body p{margin-top:9px;font-size:13px}
  .contact-route__action{padding-top:12px}
  .contact-route__symbol{display:none!important}
}
/* Normal/lower laptops: scale the complete centered object, never anchor it to an edge. */
@media (min-width:901px) and (max-height:800px){
  .contact-choice__inner{width:min(calc(100% - clamp(80px,10vw,190px)),1360px)}
  .contact-choice__intro h1{font-size:clamp(38px,3.75vw,56px)}
  .contact-choice__intro>p:not(.eyebrow){margin-top:6px;font-size:14px}
  .contact-routes{margin-top:22px;gap:clamp(24px,2.2vw,34px)}
  .contact-route{height:clamp(245px,33vh,285px);padding:19px 21px;border-radius:24px}
  .contact-route__body{padding:12px 0 10px}
  .contact-route__body h2{font-size:clamp(23px,1.7vw,29px)}
  .contact-route__body p{margin-top:6px;font-size:12.5px}
  .contact-route__action{padding-top:9px}
}
@media (min-width:901px) and (max-height:680px){
  .contact-choice__inner{width:min(calc(100% - clamp(72px,9vw,170px)),1320px)}
  .contact-choice__intro h1{font-size:clamp(34px,3.3vw,48px)}
  .contact-choice__intro>p:not(.eyebrow){margin-top:4px}
  .contact-routes{margin-top:16px;gap:clamp(22px,2vw,30px)}
  .contact-route{height:clamp(215px,32vh,245px);padding:16px 18px;border-radius:22px}
  .contact-route__body{padding:8px 0 7px}
  .contact-route__body h2{font-size:clamp(21px,1.55vw,26px)}
  .contact-route__body p{margin-top:4px;font-size:12px;line-height:1.32}
  .contact-route__action{padding-top:7px}
}
/* The Contact page already offers WhatsApp as a primary route; hide the redundant floating trigger. */
.evolvo-contact-page .evolvo-wa{display:none!important}

/* Mobile remains a swipe deck; the page itself may flow naturally for usability. */
@media (max-width:900px){
  .contact-choice__inner{width:auto;margin:0}
  .contact-route__top{display:block}
  .contact-route__symbol{display:none!important}
}

/* v0.7.143 — Optical vertical centering for the Contact hero. */
@media (min-width:901px){
  .contact-choice__inner{
    transform:translateY(clamp(-72px,-5.5vh,-42px));
  }
  .contact-routes{
    margin-top:clamp(26px,3.2vh,34px);
  }
}
/* On lower laptop screens, keep the lift subtler so every element remains comfortably visible. */
@media (min-width:901px) and (max-height:800px){
  .contact-choice__inner{
    transform:translateY(clamp(-48px,-4.4vh,-30px));
  }
  .contact-routes{
    margin-top:20px;
  }
}
@media (min-width:901px) and (max-height:680px){
  .contact-choice__inner{
    transform:translateY(clamp(-30px,-3.4vh,-18px));
  }
  .contact-routes{
    margin-top:14px;
  }
}
@media (max-width:900px){
  .contact-choice__inner{transform:none}
}

/* v0.7.145 — Contact hero: 68/32 composition with a right info panel sharing the cards' bottom edge. */
@media (min-width:901px){
  .contact-choice__inner{
    width:min(calc(100% - clamp(88px,9vw,180px)),1560px);
    display:grid;
    grid-template-columns:minmax(0,2.15fr) minmax(300px,.85fr);
    gap:clamp(42px,4.2vw,76px);
    align-items:stretch;
  }
  .contact-choice__left{
    min-width:0;
    display:flex;
    flex-direction:column;
  }
  .contact-choice__intro{flex:0 0 auto}
  .contact-choice__left .contact-routes{
    width:100%;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:clamp(18px,1.45vw,26px);
    margin-top:clamp(26px,3.2vh,34px);
  }
  .contact-choice__left .contact-route{
    height:clamp(285px,34vh,325px);
    min-width:0;
  }
  .contact-info-panel{
    min-width:0;
    align-self:stretch;
    display:flex;
    flex-direction:column;
    box-sizing:border-box;
    padding:clamp(28px,2.6vw,42px);
    border-radius:30px;
    background:var(--black);
    color:var(--off-white);
    box-shadow:0 16px 48px rgba(10,10,10,.11);
  }
  .contact-info-panel__eyebrow{
    margin:0;
    color:var(--accent);
    font-size:10px;
    font-weight:850;
    letter-spacing:.14em;
  }
  .contact-info-panel h2{
    margin:14px 0 0;
    max-width:9ch;
    color:var(--off-white);
    font-size:clamp(34px,2.8vw,48px);
    line-height:.94;
    letter-spacing:-.045em;
  }
  .contact-info-panel__contact{
    margin-top:auto;
    padding-top:clamp(28px,4vh,48px);
    display:grid;
    gap:18px;
  }
  .contact-info-panel__contact a{
    display:flex;
    flex-direction:column;
    gap:6px;
    color:var(--off-white);
    text-decoration:none;
  }
  .contact-info-panel__contact span,
  .contact-info-panel__business span{
    font-size:9px;
    font-weight:800;
    letter-spacing:.12em;
    color:rgba(245,245,241,.5);
  }
  .contact-info-panel__contact strong{font-size:15px;overflow-wrap:anywhere}
  .contact-info-panel__business{
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid rgba(245,245,241,.18);
    display:flex;
    flex-direction:column;
    gap:7px;
  }
  .contact-info-panel__business>strong{
    margin-bottom:3px;
    font-size:12px;
    letter-spacing:.04em;
    color:var(--off-white);
  }
  /* Form card becomes light so the tall black panel is the visual anchor. */
  .contact-choice__left .contact-route--form{
    background:#fff;
    color:var(--black);
    border-color:rgba(10,10,10,.14);
  }
}
/* Scale the whole two-column composition on lower laptops while preserving the common bottom edge. */
@media (min-width:901px) and (max-height:800px){
  .contact-choice__inner{
    width:min(calc(100% - clamp(72px,8vw,150px)),1480px);
    grid-template-columns:minmax(0,2.2fr) minmax(280px,.8fr);
    gap:clamp(34px,3.5vw,58px);
  }
  .contact-choice__left .contact-routes{margin-top:20px;gap:18px}
  .contact-choice__left .contact-route{height:clamp(245px,33vh,285px)}
  .contact-info-panel{padding:24px 28px;border-radius:26px}
  .contact-info-panel h2{font-size:clamp(30px,2.4vw,40px)}
  .contact-info-panel__contact{padding-top:22px;gap:13px}
  .contact-info-panel__business{margin-top:17px;padding-top:15px}
}
@media (min-width:901px) and (max-height:680px){
  .contact-choice__inner{
    width:min(calc(100% - clamp(64px,7vw,130px)),1420px);
    gap:30px;
  }
  .contact-choice__left .contact-routes{margin-top:14px;gap:15px}
  .contact-choice__left .contact-route{height:clamp(215px,32vh,245px)}
  .contact-info-panel{padding:18px 22px;border-radius:23px}
  .contact-info-panel h2{margin-top:8px;font-size:clamp(26px,2.1vw,34px)}
  .contact-info-panel__contact{padding-top:14px;gap:9px}
  .contact-info-panel__business{margin-top:11px;padding-top:10px;gap:4px}
}
/* Mobile: preserve the established swipe deck; place the information panel after it. */
@media (max-width:900px){
  .contact-choice__left{display:block}
  .contact-info-panel{
    margin:24px clamp(22px,5vw,36px) 0;
    padding:28px 24px;
    border-radius:26px;
    background:var(--black);
    color:var(--off-white);
  }
  .contact-info-panel__eyebrow{margin:0;color:var(--accent);font-size:10px;font-weight:850;letter-spacing:.13em}
  .contact-info-panel h2{margin:10px 0 0;color:var(--off-white);font-size:34px;line-height:.96}
  .contact-info-panel__contact{margin-top:28px;display:grid;gap:16px}
  .contact-info-panel__contact a{display:flex;flex-direction:column;gap:5px;color:var(--off-white);text-decoration:none}
  .contact-info-panel__contact span,.contact-info-panel__business span{font-size:9px;letter-spacing:.12em;color:rgba(245,245,241,.5)}
  .contact-info-panel__business{margin-top:22px;padding-top:18px;border-top:1px solid rgba(245,245,241,.18);display:flex;flex-direction:column;gap:6px}
  .contact-info-panel__business>strong{color:var(--off-white)}
}

/* v0.7.146 — Visual action language for the three Contact cards.
   Geometry from v0.7.145 remains unchanged. */
.contact-route{
  position:relative;
  overflow:hidden;
  cursor:pointer;
  text-align:left;
  transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;
}
button.contact-route{width:100%;font:inherit;-webkit-appearance:none;appearance:none}
.contact-route--disabled{cursor:default}
.contact-route:not(.contact-route--disabled):hover{
  transform:translateY(-4px);
  box-shadow:0 18px 42px rgba(10,10,10,.11);
}
.contact-route:not(.contact-route--disabled):focus-visible{
  outline:2px solid var(--accent);
  outline-offset:4px;
}
.contact-route__visual{
  position:absolute;
  top:43px;
  right:15px;
  width:clamp(72px,6.4vw,102px);
  height:clamp(72px,6.4vw,102px);
  opacity:.20;
  pointer-events:none;
  transform:rotate(-3deg);
  transition:transform .28s cubic-bezier(.2,.75,.25,1),opacity .22s ease;
}
.contact-route__visual svg{
  width:100%;height:100%;
  fill:none;stroke:currentColor;stroke-width:4;
  stroke-linecap:round;stroke-linejoin:round;
}
.contact-route__visual-accent{stroke:var(--accent)}
.contact-route--whatsapp .contact-route__visual-accent{stroke:var(--black)}
.contact-route__top,.contact-route__body,.contact-route__action{position:relative;z-index:1}
.contact-route:not(.contact-route--disabled):hover .contact-route__visual{
  opacity:.32;
  transform:translate(-3px,-3px) rotate(2deg) scale(1.04);
}
.contact-route--call:not(.contact-route--disabled):hover .contact-route__visual{
  transform:translate(-3px,-3px) rotate(7deg) scale(1.04);
}
.contact-route__action b{
  display:inline-block;
  transition:transform .22s ease;
}
.contact-route:not(.contact-route--disabled):hover .contact-route__action b{transform:translateX(4px)}
.contact-choice__left .contact-route--form{background:var(--off-white)}
/* Keep the existing WhatsApp popup engine available, but hide its redundant
   floating launcher on the Contact page. */
.evolvo-contact-page .evolvo-wa{display:block!important}
.evolvo-contact-page .evolvo-wa__trigger,
.evolvo-contact-page .evolvo-wa__nudge{display:none!important}
@media(prefers-reduced-motion:reduce){
  .contact-route,.contact-route__visual,.contact-route__action b{transition:none!important}
  .contact-route:not(.contact-route--disabled):hover{transform:none}
}
@media(max-width:900px){
  .contact-route__visual{top:48px;right:18px;width:96px;height:96px}
}

/* v0.7.147 — Clearer interactive feedback; phone number stays hidden inside the call card. */
.contact-route:not(.contact-route--disabled){
  will-change:transform;
}
.contact-route:not(.contact-route--disabled):hover{
  transform:translateY(-6px);
  box-shadow:0 22px 50px rgba(10,10,10,.15);
  border-color:rgba(10,10,10,.24);
}
.contact-route--whatsapp:not(.contact-route--disabled):hover{
  border-color:rgba(10,10,10,.32);
}
.contact-route:not(.contact-route--disabled):hover .contact-route__visual{
  opacity:.42;
  transform:translate(-4px,-4px) rotate(3deg) scale(1.075);
}
.contact-route--call:not(.contact-route--disabled):hover .contact-route__visual{
  opacity:.48;
  transform:translate(-4px,-5px) rotate(9deg) scale(1.09);
}
.contact-route__arrow{
  display:inline-block;
  margin-left:8px;
  font:inherit;
  transition:transform .22s ease;
}
.contact-route--call:not(.contact-route--disabled):hover .contact-route__arrow{
  transform:translateX(5px);
}
@media(prefers-reduced-motion:reduce){
  .contact-route:not(.contact-route--disabled):hover{transform:none}
  .contact-route__arrow{transition:none}
  .contact-route--call:not(.contact-route--disabled):hover .contact-route__arrow{transform:none}
}


/* v0.7.151 — Contact info panel: postcard bottom edge is authoritative on desktop.
   The right panel no longer determines the grid-row height when more metadata is filled in. */
@media (min-width:901px){
  .contact-choice__inner{
    position:relative;
  }

  .contact-info-panel{
    position:absolute;
    grid-column:2;
    grid-row:1;
    inset-block:0;
    inset-inline:0;
    min-height:0;
    overflow:hidden;
  }

  /* Keep the established typography, but make vertical spacing content-proof. */
  .contact-info-panel h2{
    margin-top:clamp(8px,1.2vh,12px);
  }

  .contact-info-panel__contact{
    margin-top:0;
    padding-top:clamp(18px,2.4vh,26px);
    gap:clamp(10px,1.5vh,14px);
  }

  .contact-info-panel__business{
    margin-top:clamp(12px,1.7vh,18px);
    padding-top:clamp(11px,1.5vh,15px);
    gap:5px;
  }

  .contact-info-panel__contact strong,
  .contact-info-panel__business strong,
  .contact-info-panel__business span{
    min-width:0;
    overflow-wrap:anywhere;
  }
}

/* Lower laptop heights: preserve the exact same common baseline with tighter inner rhythm. */
@media (min-width:901px) and (max-height:800px){
  .contact-info-panel__contact{
    padding-top:16px;
    gap:9px;
  }
  .contact-info-panel__business{
    margin-top:10px;
    padding-top:10px;
    gap:4px;
  }
}

@media (min-width:901px) and (max-height:680px){
  .contact-info-panel__contact{
    padding-top:10px;
    gap:6px;
  }
  .contact-info-panel__business{
    margin-top:7px;
    padding-top:7px;
    gap:3px;
  }
}


/* v0.7.152 — Contact block 02: orange action section with a calm off-white form card. */
.contact-form-section{
  background:var(--accent);
  color:var(--black);
}
.contact-form-section .eyebrow,
.contact-form-section__intro h2,
.contact-form-section__intro > p{
  color:var(--black);
}
.contact-form-section__form{
  background:var(--off-white);
  color:var(--black);
  border-color:rgba(10,10,10,.10);
  box-shadow:0 18px 52px rgba(10,10,10,.12);
}
.contact-form-section .fluentform label,
.contact-form-section .fluentform .ff-el-input--label label,
.contact-form-section .fluentform .ff-el-form-check-label{
  color:var(--black)!important;
}
.contact-form-section .fluentform input,
.contact-form-section .fluentform select,
.contact-form-section .fluentform textarea{
  color:var(--black)!important;
  border-bottom-color:rgba(10,10,10,.38)!important;
}
.contact-form-section .fluentform input:focus,
.contact-form-section .fluentform select:focus,
.contact-form-section .fluentform textarea:focus{
  border-bottom-color:var(--black)!important;
}
.contact-form-section .fluentform .ff-btn-submit{
  background:var(--black)!important;
  border-color:var(--black)!important;
  color:var(--off-white)!important;
}
.contact-form-section .fluentform .ff-btn-submit:hover,
.contact-form-section .fluentform .ff-btn-submit:focus-visible{
  background:transparent!important;
  border-color:var(--black)!important;
  color:var(--black)!important;
}
.contact-form-section .contact-page__form-placeholder{
  color:var(--black);
}


/* v0.7.153 — Contact block 02: full-screen desktop section + uniform anchor alignment. */
.contact-form-section{
  scroll-margin-top:82px;
}

@media (min-width:901px){
  .contact-form-section{
    min-height:calc(100svh - 82px);
    box-sizing:border-box;
    display:flex;
    align-items:center;
    padding-top:clamp(34px,4.5vh,56px);
    padding-bottom:clamp(34px,4.5vh,56px);
  }

  .contact-form-section__grid{
    width:100%;
    align-items:center;
  }

  .contact-form-section__intro,
  .contact-form-section__form{
    align-self:center;
  }
}

@media (min-width:901px) and (max-height:800px){
  .contact-form-section{
    padding-top:28px;
    padding-bottom:28px;
  }
}

@media (min-width:901px) and (max-height:680px){
  .contact-form-section{
    padding-top:20px;
    padding-bottom:20px;
  }
}

@media (max-width:900px){
  .contact-form-section{
    min-height:0;
    display:block;
    scroll-margin-top:72px;
  }
}


/* v0.7.154 — Contact block 02: complete form card inside one desktop viewport. */
@media (min-width:901px){
  .contact-form-section{
    height:calc(100svh - 82px);
    min-height:0;
    overflow:hidden;
    padding-top:clamp(22px,3vh,34px);
    padding-bottom:clamp(22px,3vh,34px);
  }

  .contact-form-section__grid{
    height:100%;
    min-height:0;
    align-items:center;
  }

  .contact-form-section__intro{
    align-self:center;
  }

  .contact-form-section__form{
    align-self:center;
    box-sizing:border-box;
    width:min(100%,820px);
    max-height:100%;
    padding:clamp(22px,2.2vw,34px) clamp(26px,2.7vw,42px);
    border-radius:clamp(24px,2vw,32px);
  }

  /* Fluent Forms: retain field readability while removing excess vertical air. */
  .contact-form-section .fluentform .ff-el-group{
    margin-bottom:clamp(9px,1.15vh,14px)!important;
  }

  .contact-form-section .fluentform .ff-el-input--label{
    margin-bottom:2px!important;
  }

  .contact-form-section .fluentform label,
  .contact-form-section .fluentform .ff-el-input--label label{
    line-height:1.15!important;
  }

  .contact-form-section .fluentform input,
  .contact-form-section .fluentform select,
  .contact-form-section .fluentform textarea{
    padding:7px 0 9px!important;
    line-height:1.25!important;
    font-size:clamp(15px,.95vw,17px)!important;
  }

  .contact-form-section .fluentform textarea{
    min-height:76px!important;
    height:clamp(76px,10vh,96px)!important;
  }

  .contact-form-section .fluentform .ff-btn-submit{
    padding:12px 22px!important;
    margin-top:2px!important;
  }
}

/* Compact laptop fallback: guarantee that the full form, including CTA, remains in view. */
@media (min-width:901px) and (max-height:800px){
  .contact-form-section{
    padding-top:18px;
    padding-bottom:18px;
  }

  .contact-form-section__form{
    padding:18px 28px;
    border-radius:24px;
  }

  .contact-form-section .fluentform .ff-el-group{
    margin-bottom:7px!important;
  }

  .contact-form-section .fluentform input,
  .contact-form-section .fluentform select,
  .contact-form-section .fluentform textarea{
    padding:5px 0 7px!important;
  }

  .contact-form-section .fluentform textarea{
    min-height:60px!important;
    height:60px!important;
  }

  .contact-form-section .fluentform .ff-btn-submit{
    padding:10px 20px!important;
  }
}

@media (min-width:901px) and (max-height:680px){
  .contact-form-section{
    padding-top:12px;
    padding-bottom:12px;
  }

  .contact-form-section__form{
    padding:14px 24px;
    border-radius:22px;
  }

  .contact-form-section .fluentform .ff-el-group{
    margin-bottom:5px!important;
  }

  .contact-form-section .fluentform input,
  .contact-form-section .fluentform select,
  .contact-form-section .fluentform textarea{
    padding:4px 0 5px!important;
    font-size:14px!important;
  }

  .contact-form-section .fluentform textarea{
    min-height:48px!important;
    height:48px!important;
  }

  .contact-form-section .fluentform .ff-btn-submit{
    padding:9px 18px!important;
  }
}

/* Mobile remains natural/content-driven. */
@media (max-width:900px){
  .contact-form-section{
    height:auto;
    overflow:visible;
  }
}


/* v0.7.155 — Contact handwritten cue: one-line vector handwriting revealed left-to-right. */
.contact-handwrite{
  width:min(100%,500px);
  margin-top:clamp(28px,4.2vh,44px);
  color:var(--black);
}
.contact-handwrite__svg{
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
}
.contact-handwrite__letters{
  fill:currentColor;
}
.contact-handwrite__arrow{
  fill:none;
  stroke:currentColor;
  stroke-width:3.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.contact-handwrite__reveal{
  transform-box:fill-box;
  transform-origin:left center;
  transform:scaleX(0);
}
.contact-handwrite.is-written .contact-handwrite__reveal{
  animation:contactHandwriteReveal 5s cubic-bezier(.22,.61,.36,1) .25s forwards;
}
@keyframes contactHandwriteReveal{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}

@media (min-width:901px) and (max-height:800px){
  .contact-handwrite{
    width:min(100%,430px);
    margin-top:22px;
  }
}
@media (min-width:901px) and (max-height:680px){
  .contact-handwrite{
    width:min(100%,380px);
    margin-top:14px;
  }
}
@media (max-width:900px){
  .contact-handwrite{
    width:min(100%,430px);
    margin-top:28px;
  }
}
@media (prefers-reduced-motion:reduce){
  .contact-handwrite__reveal{
    transform:scaleX(1)!important;
    animation:none!important;
  }
}


/* v0.7.160 — Editable Ons doel CTA label without disturbing the established default artwork. */
.goal-growth-handwrite--custom-label{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    text-decoration:none;
}
.goal-growth-handwrite--custom-label .goal-growth-handwrite__custom-label{
    position:absolute;
    right:34px;
    top:46%;
    z-index:2;
    max-width:220px;
    font-size:clamp(15px,1.15vw,18px);
    font-weight:800;
    line-height:1.15;
    letter-spacing:-.02em;
    color:currentColor;
    text-align:right;
}
.goal-growth-handwrite--custom-label .goal-growth-handwrite__script .goal-script-stroke{
    opacity:.10;
}
.goal-growth-handwrite--custom-label .goal-growth-handwrite__arrow{
    opacity:1;
}
@media(max-width:900px){
    .goal-growth-handwrite--custom-label .goal-growth-handwrite__custom-label{
        right:28px;
        font-size:15px;
    }
}


/* v0.7.165 — left-to-right Impact Wall with active sponsor toggle. */
.progress-card--linked{display:block;color:inherit;text-decoration:none;cursor:pointer;transition:transform .3s ease}.progress-card--linked:hover{transform:translateY(-3px)}
.progress-card__wall-link{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;padding-top:18px;border-top:1px solid rgba(10,10,10,.22);font-weight:850;letter-spacing:-.02em}.progress-card__wall-link b{font-size:24px}

.evolvo-impact-wall-page{background:var(--off-white)}
.impact-wall-stage{box-sizing:border-box;height:calc(100dvh - 82px);min-height:0;padding:clamp(22px,3vh,34px) 0 clamp(36px,5vh,68px);background:var(--off-white);overflow:hidden}
.impact-wall-stage__inner{box-sizing:border-box}
.impact-wall-stage__head{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;margin-bottom:clamp(24px,3.4vh,42px)}
.impact-wall-stage__head .eyebrow{margin-bottom:5px;color:var(--accent)}
.impact-wall-stage__head h1{margin:0;font-size:clamp(34px,4.4vw,68px);line-height:.91;letter-spacing:-.055em}
.impact-wall-stage__count{white-space:nowrap;color:var(--accent);font-size:clamp(38px,4.5vw,66px);line-height:.82;letter-spacing:-.06em}
.impact-wall-stage__count span{color:var(--black);opacity:.28}

/* Five consistent columns on desktop. Partial rows stay left aligned. */
.impact-wall-postcards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(12px,1vw,18px);align-items:stretch}
/* The first five real partners get extra presence without turning the wall into a full-screen card layout. */
.impact-wall-postcards--early{grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(14px,1.15vw,20px)}
.impact-wall-postcards--early .impact-wall-postcard{aspect-ratio:auto;height:clamp(300px,36vh,350px);padding:clamp(20px,1.55vw,27px);border-radius:30px}
.impact-wall-postcards--early .impact-wall-postcard__logo img{max-height:112px;max-width:84%}
.impact-wall-postcards--early .impact-wall-postcard.is-filled strong{font-size:clamp(14px,1.12vw,18px)}
.impact-wall-postcards--early .impact-wall-postcard--cta>b{font-size:clamp(50px,4.4vw,72px)}
.impact-wall-postcards--early .impact-wall-postcard--cta>strong{font-size:clamp(20px,1.65vw,28px)}
.impact-wall-postcards--early .impact-wall-postcard__cta-link{margin-top:18px;padding-top:13px;font-size:12px}
.impact-wall-postcard{position:relative;box-sizing:border-box;min-width:0;aspect-ratio:1.28/1;border:1px solid rgba(10,10,10,.12);border-radius:26px;background:#fff;color:var(--black);padding:clamp(15px,1.25vw,21px);display:flex;flex-direction:column;text-align:left;font:inherit;overflow:hidden;text-decoration:none}
.impact-wall-postcard__number{font-size:10px;font-weight:850;opacity:.35}
button.impact-wall-postcard{cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
button.impact-wall-postcard:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(10,10,10,.08);border-color:rgba(10,10,10,.22)}
.impact-wall-postcard__logo{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px 14px}
.impact-wall-postcard__logo img{display:block;max-width:80%;max-height:76px;width:auto;height:auto;object-fit:contain}
.impact-wall-postcard.is-filled strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(12px,.95vw,15px)}

.impact-wall-postcard--cta{background:var(--accent);border-color:var(--accent);border-radius:26px;color:var(--black);cursor:pointer;transition:transform .25s ease,box-shadow .25s ease}
.impact-wall-postcard--cta:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(10,10,10,.11)}
.impact-wall-postcard--cta>b{margin:auto 0;font-size:clamp(36px,3.5vw,58px);line-height:.8;letter-spacing:-.06em}
.impact-wall-postcard--cta>strong{max-width:15ch;font-size:clamp(16px,1.35vw,23px);line-height:.98;letter-spacing:-.04em}
.impact-wall-postcard__cta-link{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid rgba(10,10,10,.24);font-size:11px;font-weight:850}
.impact-wall-postcard__cta-link i{font-style:normal;font-size:19px}

.impact-wall-balloon[hidden]{display:none}.impact-wall-balloon{position:fixed;z-index:10000;inset:0;display:grid;place-items:center;padding:24px}
.impact-wall-balloon__backdrop{position:absolute;inset:0;border:0;background:rgba(10,10,10,.58);backdrop-filter:blur(7px)}
.impact-wall-balloon__card{position:relative;z-index:1;width:min(92vw,520px);max-height:82svh;overflow:auto;background:var(--off-white);padding:clamp(28px,4vw,48px);border-radius:28px;box-shadow:0 28px 90px rgba(0,0,0,.28)}
.impact-wall-balloon__close{position:absolute;right:18px;top:14px;border:0;background:transparent;font-size:34px;cursor:pointer}
.impact-wall-balloon__logo{height:100px;display:flex;align-items:center;margin-bottom:34px}.impact-wall-balloon__logo img{max-width:70%;max-height:90px;object-fit:contain}
.impact-wall-balloon__card .eyebrow{color:var(--accent)}.impact-wall-balloon__card h2{margin:8px 0 16px;font-size:clamp(34px,5vw,54px);line-height:.95;letter-spacing:-.05em}
.impact-wall-balloon__link{display:inline-flex;gap:12px;margin-top:24px;color:var(--black);font-weight:850;text-decoration:none;border-bottom:2px solid var(--accent);padding-bottom:4px}


@media(min-width:901px){
 body.admin-bar .impact-wall-stage{height:calc(100dvh - 82px - 32px)}
}
@media(min-width:901px) and (max-height:760px){
 .impact-wall-stage{padding-top:18px;padding-bottom:24px}
 .impact-wall-stage__head{margin-bottom:20px}
 .impact-wall-stage__head h1{font-size:clamp(34px,4vw,56px)}
 .impact-wall-stage__count{font-size:clamp(36px,4vw,56px)}
 .impact-wall-postcards--early .impact-wall-postcard{aspect-ratio:auto;height:clamp(270px,39vh,310px)}
}
@media(max-width:1180px) and (min-width:901px){
 .impact-wall-postcards{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:900px){
 .impact-wall-stage{height:auto;min-height:calc(100svh - 72px);overflow:visible;padding:28px 0 60px}
 .impact-wall-stage__head{align-items:flex-start}
 .impact-wall-postcards,.impact-wall-postcards--early{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .impact-wall-postcards--early .impact-wall-postcard{aspect-ratio:1.28/1;padding:clamp(15px,1.25vw,21px);border-radius:22px}
 .impact-wall-postcard{border-radius:22px}
}
@media(max-width:620px){
 .impact-wall-stage__head{gap:18px}.impact-wall-stage__count{font-size:32px}
 .impact-wall-postcards,.impact-wall-postcards--early{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .impact-wall-postcard,.impact-wall-postcards--early .impact-wall-postcard{border-radius:20px;padding:12px;aspect-ratio:1.08/1}
 .impact-wall-postcard__logo img{max-width:90%;max-height:52px}.impact-wall-postcard.is-filled strong{font-size:11px}
 .impact-wall-postcard--cta>b{font-size:34px}.impact-wall-postcard--cta>strong{font-size:16px}.impact-wall-postcard__cta-link{font-size:10px}
}
@media(prefers-reduced-motion:reduce){button.impact-wall-postcard,.impact-wall-postcard--cta,.progress-card--linked{transition:none!important}}

/* v0.7.168 — Impact Soest funnel rebuild. */
.project-partnership{box-sizing:border-box;height:calc(100dvh - 82px);min-height:0;background:var(--black);color:var(--off-white);padding:clamp(34px,4.8vh,54px) 0;overflow:hidden}
.project-partnership>.container{height:100%;display:grid;grid-template-rows:auto auto auto auto;align-content:center;row-gap:clamp(24px,3.5vh,38px)}
.project-partnership .eyebrow{color:var(--accent);margin:0}
.project-partnership__head{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr);gap:48px;align-items:end;margin:0}
.project-partnership__head h2,.project-finance-v2__head h2{margin:0;font-size:clamp(34px,3.8vw,58px);line-height:.96;letter-spacing:-.05em;max-width:820px}
.project-partnership__amount{text-align:right}
.project-price-toggle{display:inline-grid;grid-template-columns:1fr 1fr;margin:0 0 13px auto;padding:3px;border:1px solid rgba(245,245,241,.24);border-radius:999px;background:rgba(245,245,241,.04)}
.project-price-toggle button{appearance:none;border:0;border-radius:999px;background:transparent;color:rgba(245,245,241,.55);padding:6px 10px;font:inherit;font-size:10px;font-weight:850;line-height:1;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;transition:background .22s ease,color .22s ease}
.project-price-toggle button[aria-pressed="true"]{background:var(--accent);color:var(--black)}
.project-price-toggle button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.project-partnership__amount strong{display:block;color:var(--accent);font-size:clamp(58px,6.7vw,102px);line-height:.78;letter-spacing:-.065em}
.project-partnership__amount span{display:block;margin-top:8px;font-weight:800;color:var(--off-white)}
.project-value-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid rgba(245,245,241,.28);border-bottom:1px solid rgba(245,245,241,.28)}
.project-value-grid article{position:relative;min-height:170px;padding:22px 30px 20px 0;background:transparent;border:0;border-radius:0;display:flex;flex-direction:column}
.project-value-grid article+article{border-left:1px solid rgba(245,245,241,.28);padding-left:30px}
.project-value-grid article>span{font-size:11px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.project-value-grid h3{margin:auto 0 9px;font-size:clamp(23px,2vw,32px);line-height:1;letter-spacing:-.04em;color:var(--off-white)}
.project-value-grid p{max-width:420px;margin:0;line-height:1.48;font-size:14px;color:rgba(245,245,241,.70)}
.project-partnership__closing{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:0;max-width:none;margin:0;padding:18px 0 0;color:var(--off-white);text-decoration:none;border-top:1px solid rgba(245,245,241,.16)}
.project-partnership__closing-copy{position:relative;display:block;width:100%;max-width:1050px;min-height:58px}
.project-partnership__closing-layer{display:block;width:100%}
.project-partnership__closing-layer--blur{position:relative;opacity:0;filter:blur(20px);pointer-events:none}
.project-partnership__closing-layer--sharp{position:absolute;inset:0 auto auto 0;opacity:0;clip-path:inset(0 100% 0 0);will-change:clip-path,opacity}
.project-partnership__closing-title{display:block;font-size:clamp(17px,1.45vw,21px);line-height:1.35;letter-spacing:-.02em;font-weight:600;color:rgba(245,245,241,.84)}
.project-partnership__closing-meta{display:block;margin-top:7px;font-size:13px;line-height:1.3;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:var(--accent)}
.project-partnership__closing-arrow{width:54px;height:54px;margin-top:20px;border:1px solid rgba(245,245,241,.34);border-radius:50%;display:grid;place-items:center;color:var(--accent);font-size:28px;line-height:1;opacity:0;transform:translateY(-7px);pointer-events:none}
.project-partnership__closing.is-revealed .project-partnership__closing-layer--blur{animation:siPartnershipBlurIn .35s ease 1s forwards,siPartnershipBlurOut .24s ease 4.02s forwards}
.project-partnership__closing.is-revealed .project-partnership__closing-layer--sharp{animation:siPartnershipSharpReveal 2.36s cubic-bezier(.22,.61,.36,1) 1.75s forwards}
.project-partnership__closing.is-revealed .project-partnership__closing-arrow{animation:siPartnershipArrowIn .28s ease 4.35s forwards,siPartnershipArrowNudge .34s cubic-bezier(.22,.61,.36,1) 4.65s 1}
.project-partnership__closing:hover .project-partnership__closing-arrow{border-color:var(--accent)}
@keyframes siPartnershipBlurIn{from{opacity:0;filter:blur(24px)}to{opacity:.66;filter:blur(18px)}}
@keyframes siPartnershipBlurOut{from{opacity:.66}to{opacity:0}}
@keyframes siPartnershipSharpReveal{0%{opacity:1;clip-path:inset(0 100% 0 0)}100%{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes siPartnershipArrowIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
@keyframes siPartnershipArrowNudge{0%{transform:translateY(0)}55%{transform:translateY(5px)}100%{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
 .project-partnership__closing-layer--blur{display:none}
 .project-partnership__closing-layer--sharp{position:relative;opacity:1;clip-path:none}
 .project-partnership__closing-arrow{opacity:1;transform:none}
 .project-partnership__closing.is-revealed .project-partnership__closing-layer--sharp,
 .project-partnership__closing.is-revealed .project-partnership__closing-arrow{animation:none}
}.project-finance-v2{background:#fff}.project-finance-v2__head{display:flex;justify-content:space-between;gap:40px;align-items:flex-end}.project-finance-v2__head>strong{font-size:clamp(60px,8vw,118px);line-height:.8;color:var(--accent);letter-spacing:-.065em}.project-finance-v2__intro{max-width:760px;font-size:18px;line-height:1.55;margin:28px 0 38px}.project-finance-v2__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(10,10,10,.15);border:1px solid rgba(10,10,10,.15)}.project-finance-v2__grid article{background:var(--off-white);padding:30px;min-height:230px}.project-finance-v2__grid article>strong{display:block;color:var(--accent);font-size:36px;margin-bottom:28px}.project-finance-v2__grid h3{font-size:24px;margin:0 0 12px;letter-spacing:-.035em}.project-finance-v2__grid p{margin:0;line-height:1.5}
.project-local-impact{background:var(--off-white)}.project-partners--teaser .partner-grid{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:28px}.project-partners--teaser .partner-tile{border-radius:24px;overflow:hidden}
.project-transparency .transparency-stats{grid-template-columns:repeat(4,1fr)}
@media(min-width:901px){
 body.admin-bar .project-partnership{height:calc(100dvh - 82px - 32px)}
}
@media(min-width:901px) and (max-height:760px){
 .project-partnership{padding:20px 0 24px}
 .project-partnership>.container{row-gap:18px}
 .project-partnership__head h2{font-size:clamp(31px,3.25vw,48px)}
 .project-partnership__amount strong{font-size:clamp(48px,5.2vw,76px)}
 .project-value-grid article{min-height:145px;padding-top:17px;padding-bottom:16px}
 .project-value-grid article+article{padding-left:24px}
 .project-value-grid h3{font-size:clamp(20px,1.8vw,27px)}
 .project-value-grid p{font-size:12.5px}
 .project-partnership__closing{padding-top:12px}.project-partnership__closing-copy{min-height:50px}.project-partnership__closing-title{font-size:15px;line-height:1.3}.project-partnership__closing-meta{margin-top:5px;font-size:10px}.project-partnership__closing-arrow{width:44px;height:44px;margin-top:14px;font-size:23px}
}
@media(max-width:900px){.project-partnership{height:auto;min-height:calc(100svh - 72px);overflow:visible;padding:36px 0 56px}.project-partnership>.container{height:auto;display:grid;row-gap:28px;align-content:start}.project-partnership__head{grid-template-columns:1fr}.project-partnership__amount{text-align:left;margin-top:12px}.project-value-grid{grid-template-columns:1fr;border-bottom:0}.project-value-grid article{min-height:170px;padding:22px 0;border-bottom:1px solid rgba(245,245,241,.28)}.project-value-grid article+article{border-left:0;padding-left:0}.project-partnership__closing{padding-top:16px}.project-partnership__closing-copy{min-height:56px}.project-partnership__closing-title{font-size:17px;line-height:1.4}.project-partnership__closing-meta{font-size:10px;line-height:1.35}.project-partnership__closing-arrow{width:48px;height:48px;margin-top:16px;font-size:24px}.project-finance-v2__grid{grid-template-columns:1fr}.project-finance-v2__head{align-items:flex-start;flex-direction:column}.project-partners--teaser .partner-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-transparency .transparency-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.project-partners--teaser .partner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-value-grid article{border-radius:22px}.project-transparency .transparency-stats{grid-template-columns:1fr}}

/* v0.7.172 — Impact Soest block 3 orange theme only. */
.project-process{
    background:var(--accent);
    color:var(--black);
}
.project-process .eyebrow,
.project-process .eyebrow--light{
    color:var(--black);
}
.project-process h2,
.project-process h3,
.project-process .process-step>span{
    color:var(--black);
}
.project-process .process-step p{
    color:rgba(10,10,10,.76);
}
.project-process .process-step{
    border-color:rgba(10,10,10,.22);
}
.project-process .project-process__progress-cta{
    color:var(--black);
    border-color:rgba(10,10,10,.28);
}
.project-process .project-process__progress-cta:hover{
    border-color:rgba(10,10,10,.5);
}

/* v0.7.173 — Block 3 correction: orange editorial process, no black cards. */
.project-process .process-grid{
    background:transparent;
    border-top:1px solid rgba(10,10,10,.28);
    border-bottom:1px solid rgba(10,10,10,.28);
}
.project-process .process-step{
    background:transparent !important;
    color:var(--black);
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
}
.project-process .process-step+.process-step{
    border-left:1px solid rgba(10,10,10,.28) !important;
}
.project-process .process-step>span,
.project-process .process-step h3{
    color:var(--black);
}
.project-process .process-step p{
    color:rgba(10,10,10,.74);
}
@media(max-width:900px){
    .project-process .process-grid{border-bottom:0}
    .project-process .process-step+.process-step{border-left:0 !important}
    .project-process .process-step{border-bottom:1px solid rgba(10,10,10,.28) !important}
}

.project-partnership[data-price-mode="excl"] [data-price-copy="incl"],
.project-partnership[data-price-mode="incl"] [data-price-copy="excl"]{display:none}
@media(max-width:900px){
 .project-price-toggle{margin-left:0}
}


/* v0.7.181 — Block 3: editorial horizontal impact route. */
.project-process{
  box-sizing:border-box;
  min-height:calc(100dvh - 82px);
  display:flex;
  align-items:center;
  background:var(--accent);
  color:var(--black);
  padding:clamp(44px,6vh,72px) 0;
  overflow:hidden;
}
.project-process>.container{
  width:100%;
}
.project-process__head{
  margin:0 0 clamp(54px,8vh,88px);
}
.project-process__head .eyebrow{
  margin:0 0 18px;
  color:var(--black);
}
.project-process__head h2{
  max-width:1180px;
  margin:0;
  font-size:clamp(46px,5.25vw,80px);
  line-height:.96;
  letter-spacing:-.055em;
  color:var(--black);
}
.project-process .process-route{
  position:relative;
}
.project-process .process-route__track{
  position:absolute;
  top:57px;
  left:0;
  right:0;
  height:1px;
  background:rgba(10,10,10,.22);
  overflow:hidden;
}
.project-process .process-route__track span{
  display:block;
  width:100%;
  height:2px;
  background:var(--black);
  transform:scaleX(0);
  transform-origin:left center;
  will-change:transform;
}
.project-process .process-grid{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(30px,3vw,56px);
  border:0;
  background:transparent;
}
.project-process .process-step,
.project-process .process-step+.process-step{
  min-width:0;
  padding:0;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  opacity:0;
  transform:translateY(10px);
}
.project-process .process-step__marker{
  height:82px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.project-process .process-step__number{
  display:block;
  font-size:20px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.03em;
  color:var(--black);
}
.project-process .process-step__marker i{
  position:relative;
  z-index:2;
  display:block;
  width:11px;
  height:11px;
  margin-top:27px;
  border-radius:50%;
  background:var(--black);
  box-shadow:0 0 0 6px var(--accent);
}
.project-process .process-step:first-child .process-step__marker i,
.project-process .process-step:last-child .process-step__marker i{
  width:15px;
  height:15px;
  margin-top:25px;
}
.project-process .process-step__copy{
  max-width:305px;
  padding-top:23px;
}
.project-process .process-step h3{
  min-height:2.1em;
  margin:0 0 18px;
  font-size:clamp(23px,1.75vw,30px);
  line-height:1.02;
  letter-spacing:-.045em;
  color:var(--black);
}
.project-process .process-step p{
  margin:0;
  font-size:15px;
  line-height:1.52;
  color:rgba(10,10,10,.72);
}
.project-process.is-route-visible .process-route__track span{
  animation:siProcessRouteDraw 1.35s cubic-bezier(.22,.61,.36,1) .18s forwards;
}
.project-process.is-route-visible .process-step{
  animation:siProcessStepIn .48s ease forwards;
  animation-delay:calc(.34s + (var(--process-index) * .22s));
}
@keyframes siProcessRouteDraw{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}
@keyframes siProcessStepIn{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}
@media(min-width:901px){
  body.admin-bar .project-process{min-height:calc(100dvh - 82px - 32px)}
}
@media(min-width:901px) and (max-height:760px){
  .project-process{padding:30px 0 38px}
  .project-process__head{margin-bottom:42px}
  .project-process__head h2{font-size:clamp(42px,4.6vw,68px)}
  .project-process .process-route__track{top:49px}
  .project-process .process-step__marker{height:70px}
  .project-process .process-step__number{font-size:18px}
  .project-process .process-step__marker i{margin-top:23px}
  .project-process .process-step:first-child .process-step__marker i,
  .project-process .process-step:last-child .process-step__marker i{margin-top:21px}
  .project-process .process-step__copy{padding-top:18px}
  .project-process .process-step h3{font-size:22px;margin-bottom:12px}
  .project-process .process-step p{font-size:13px;line-height:1.43}
}
@media(max-width:900px){
  .project-process{
    min-height:0;
    display:block;
    padding:52px 0 64px;
    overflow:visible;
  }
  .project-process__head{margin-bottom:44px}
  .project-process__head h2{
    max-width:680px;
    font-size:clamp(39px,10vw,58px);
  }
  .project-process .process-route__track{
    top:0;
    bottom:0;
    left:20px;
    right:auto;
    width:1px;
    height:auto;
    background:rgba(10,10,10,.22);
  }
  .project-process .process-route__track span{
    width:2px;
    height:100%;
    transform:scaleY(0);
    transform-origin:center top;
  }
  .project-process .process-grid{
    grid-template-columns:1fr;
    gap:0;
  }
  .project-process .process-step,
  .project-process .process-step+.process-step{
    display:grid;
    grid-template-columns:64px minmax(0,1fr);
    gap:0;
    padding:0 0 42px;
    border:0 !important;
  }
  .project-process .process-step:last-child{padding-bottom:0}
  .project-process .process-step__marker{
    height:auto;
    min-height:118px;
    position:relative;
  }
  .project-process .process-step__number{
    font-size:18px;
    margin-left:0;
  }
  .project-process .process-step__marker i,
  .project-process .process-step:first-child .process-step__marker i,
  .project-process .process-step:last-child .process-step__marker i{
    position:absolute;
    top:44px;
    left:14px;
    width:13px;
    height:13px;
    margin:0;
  }
  .project-process .process-step__copy{
    max-width:520px;
    padding:0;
  }
  .project-process .process-step h3{
    min-height:0;
    margin:0 0 12px;
    font-size:25px;
  }
  .project-process .process-step p{
    font-size:14px;
    line-height:1.5;
  }
  .project-process.is-route-visible .process-route__track span{
    animation-name:siProcessRouteDrawMobile;
  }
  @keyframes siProcessRouteDrawMobile{
    from{transform:scaleY(0)}
    to{transform:scaleY(1)}
  }
}
@media(prefers-reduced-motion:reduce){
  .project-process .process-route__track span{transform:none !important}
  .project-process .process-step{opacity:1 !important;transform:none !important}
  .project-process.is-route-visible .process-route__track span,
  .project-process.is-route-visible .process-step{animation:none !important}
}


/* v0.7.182 — Block 3 viewport/layout correction: same stable geometry as other fullscreen blocks. */
@media(min-width:901px){
  .project-process{
    box-sizing:border-box;
    height:calc(100dvh - 82px);
    min-height:0;
    display:block;
    padding:0;
    overflow:hidden;
  }
  .project-process>.container{
    height:100%;
    display:grid;
    grid-template-rows:auto auto;
    align-content:start;
    padding-top:clamp(44px,5.2vh,54px);
  }
  .project-process__head{
    margin:0 0 clamp(44px,5.5vh,58px);
  }
  body.admin-bar .project-process{
    height:calc(100dvh - 82px - 32px);
    min-height:0;
  }
}
@media(min-width:901px) and (max-height:760px){
  .project-process{
    height:calc(100dvh - 82px);
    min-height:0;
    padding:0;
  }
  .project-process>.container{
    padding-top:28px;
  }
  .project-process__head{
    margin-bottom:32px;
  }
  body.admin-bar .project-process{
    height:calc(100dvh - 82px - 32px);
  }
}


/* v0.7.183 — Block 3: centered route with compact editorial postcards. */
@media(min-width:901px){
  .project-process>.container{
    width:min(100% - 96px,1480px);
    margin-inline:auto;
    padding-inline:0;
  }
  .project-process__head{
    max-width:1220px;
  }
  .project-process .process-route{
    width:100%;
    margin-inline:auto;
  }
  .project-process .process-route__track{
    top:51px;
    left:calc((100% - (3 * clamp(28px,2.5vw,42px))) / 8);
    right:calc((100% - (3 * clamp(28px,2.5vw,42px))) / 8);
    background:rgba(10,10,10,.24);
  }
  .project-process .process-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:clamp(28px,2.5vw,42px);
  }
  .project-process .process-step,
  .project-process .process-step+.process-step{
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }
  .project-process .process-step__marker{
    height:75px;
    align-items:center;
  }
  .project-process .process-step__number{
    font-size:18px;
  }
  .project-process .process-step__marker i{
    margin-top:23px;
    box-shadow:0 0 0 6px var(--accent);
  }
  .project-process .process-step:first-child .process-step__marker i,
  .project-process .process-step:last-child .process-step__marker i{
    margin-top:21px;
  }
  .project-process .process-step__copy{
    box-sizing:border-box;
    width:100%;
    max-width:none;
    min-height:255px;
    margin-top:10px;
    padding:28px 28px 30px;
    border-radius:20px;
    background:var(--black);
    color:var(--off-white);
  }
  .project-process .process-step h3{
    min-height:2.08em;
    margin:0 0 18px;
    color:var(--off-white);
    font-size:clamp(22px,1.55vw,27px);
    line-height:1.04;
  }
  .project-process .process-step p{
    max-width:290px;
    color:rgba(245,245,241,.72);
    font-size:14px;
    line-height:1.5;
  }
}
@media(min-width:901px) and (max-width:1250px){
  .project-process>.container{width:min(100% - 64px,1480px)}
  .project-process .process-grid{gap:22px}
  .project-process .process-step__copy{padding:24px;min-height:270px}
  .project-process .process-step h3{font-size:21px}
  .project-process .process-step p{font-size:13px}
}
@media(min-width:901px) and (max-height:760px){
  .project-process>.container{padding-top:24px}
  .project-process__head{margin-bottom:22px}
  .project-process .process-route__track{top:43px}
  .project-process .process-step__marker{height:63px}
  .project-process .process-step__marker i{margin-top:19px}
  .project-process .process-step:first-child .process-step__marker i,
  .project-process .process-step:last-child .process-step__marker i{margin-top:17px}
  .project-process .process-step__copy{
    min-height:218px;
    margin-top:8px;
    padding:22px 24px 24px;
  }
  .project-process .process-step h3{
    min-height:2em;
    margin-bottom:12px;
    font-size:20px;
  }
  .project-process .process-step p{font-size:12.5px;line-height:1.43}
}
@media(max-width:900px){
  .project-process .process-step__copy{
    box-sizing:border-box;
    max-width:520px;
    padding:24px;
    border-radius:18px;
    background:var(--black);
    color:var(--off-white);
  }
  .project-process .process-step h3{color:var(--off-white)}
  .project-process .process-step p{color:rgba(245,245,241,.72)}
}


/* v0.7.184 — Block 3 postcard typography refinement. */
.project-process .process-step__copy{
  position:relative;
}
.project-process .process-step__copy h3{
  max-width:290px;
  min-height:2.15em;
  margin:0;
  font-size:clamp(27px,1.75vw,31px);
  line-height:.98;
  letter-spacing:-.055em;
  font-weight:800;
  text-wrap:balance;
}
.project-process .process-step__copy h3::after{
  content:"";
  display:block;
  width:42px;
  height:3px;
  margin:22px 0 21px;
  border-radius:999px;
  background:var(--accent);
}
.project-process .process-step__copy p{
  max-width:300px;
  margin:0;
  font-size:15.5px;
  line-height:1.55;
  letter-spacing:-.012em;
  color:rgba(245,245,241,.80);
}
@media(min-width:901px) and (max-width:1250px){
  .project-process .process-step__copy h3{
    font-size:25px;
  }
  .project-process .process-step__copy h3::after{
    margin:19px 0 18px;
  }
  .project-process .process-step__copy p{
    font-size:14px;
    line-height:1.5;
  }
}
@media(min-width:901px) and (max-height:760px){
  .project-process .process-step__copy h3{
    min-height:2em;
    font-size:23px;
    line-height:1;
  }
  .project-process .process-step__copy h3::after{
    width:36px;
    height:2px;
    margin:14px 0 14px;
  }
  .project-process .process-step__copy p{
    font-size:13px;
    line-height:1.43;
  }
}
@media(max-width:900px){
  .project-process .process-step__copy h3{
    min-height:0;
    font-size:27px;
    line-height:1;
  }
  .project-process .process-step__copy h3::after{
    width:38px;
    height:3px;
    margin:18px 0;
  }
  .project-process .process-step__copy p{
    font-size:15px;
    line-height:1.52;
  }
}


/* v0.7.185 — Block 3 postcards: quieter, premium editorial typography. */
.project-process .process-step__copy{
  padding-top:31px;
}
.project-process .process-step__copy h3{
  max-width:285px;
  min-height:2.08em;
  margin:0 0 30px;
  font-size:clamp(26px,1.6vw,29px);
  line-height:1.02;
  letter-spacing:-.045em;
  font-weight:680;
  text-wrap:balance;
  color:var(--off-white);
}
.project-process .process-step__copy h3::after{
  content:none;
  display:none;
}
.project-process .process-step__copy p{
  max-width:295px;
  margin:0;
  font-size:14.25px;
  line-height:1.62;
  letter-spacing:-.006em;
  font-weight:400;
  color:rgba(245,245,241,.68);
}
@media(min-width:901px) and (max-width:1250px){
  .project-process .process-step__copy{
    padding-top:27px;
  }
  .project-process .process-step__copy h3{
    margin-bottom:25px;
    font-size:24px;
  }
  .project-process .process-step__copy p{
    font-size:13.5px;
    line-height:1.58;
  }
}
@media(min-width:901px) and (max-height:760px){
  .project-process .process-step__copy{
    padding-top:24px;
  }
  .project-process .process-step__copy h3{
    min-height:2em;
    margin-bottom:19px;
    font-size:22px;
    line-height:1.02;
  }
  .project-process .process-step__copy p{
    font-size:12.75px;
    line-height:1.5;
  }
}
@media(max-width:900px){
  .project-process .process-step__copy{
    padding-top:27px;
  }
  .project-process .process-step__copy h3{
    min-height:0;
    margin-bottom:24px;
    font-size:26px;
    line-height:1.02;
  }
  .project-process .process-step__copy p{
    font-size:14px;
    line-height:1.6;
  }
}


/* v0.7.186 — Block 3: evolving SVG story, aligned below copy and moving left-to-right. */
.project-process .process-step__copy{
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.project-process .process-step__visual{
  width:104px;
  height:66px;
  margin-top:auto;
  padding-top:22px;
  opacity:.9;
  transform:translateY(5px);
}
.project-process .process-step__visual svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}
.project-process .process-step__visual svg *{
  vector-effect:non-scaling-stroke;
}
.project-process .process-step__visual .svg-main,
.project-process .process-step__visual .svg-muted{
  fill:none;
  stroke:var(--off-white);
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.project-process .process-step__visual .svg-muted{opacity:.34}
.project-process .process-step__visual .svg-accent{
  fill:var(--accent);
  stroke:none;
}
.project-process .process-step__visual--1{align-self:flex-start}
.project-process .process-step__visual--2{align-self:flex-start;margin-left:25%}
.project-process .process-step__visual--3{align-self:flex-start;margin-left:50%}
.project-process .process-step__visual--4{align-self:flex-end}
.project-process.is-route-visible .process-step__visual{
  animation:siProcessVisualIn .55s ease forwards;
  animation-delay:calc(.7s + (var(--process-index) * .22s));
}
@keyframes siProcessVisualIn{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:.9;transform:translateY(5px)}
}
@media(min-width:901px) and (max-height:760px){
  .project-process .process-step__visual{
    width:88px;
    height:54px;
    padding-top:14px;
  }
}
@media(max-width:900px){
  .project-process .process-step__visual{
    width:96px;
    height:60px;
    padding-top:22px;
  }
  .project-process .process-step__visual--1{margin-left:0}
  .project-process .process-step__visual--2{margin-left:22%}
  .project-process .process-step__visual--3{margin-left:44%}
  .project-process .process-step__visual--4{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){
  .project-process .process-step__visual{
    opacity:.9 !important;
    transform:translateY(5px) !important;
    animation:none !important;
  }
}


/* v0.7.187 — Block 3 equal card bottoms + premium hover interaction. */
@media(min-width:901px){
  .project-process .process-grid{
    align-items:stretch;
  }
  .project-process .process-step,
  .project-process .process-step+.process-step{
    height:100%;
  }
  .project-process .process-step__copy{
    flex:1 1 auto;
    height:100%;
    min-height:0;
    transform-origin:center center;
    transition:
      transform .36s cubic-bezier(.22,.61,.36,1),
      background-color .36s ease;
    will-change:transform;
  }
  .project-process .process-step__visual{
    transition:
      transform .36s cubic-bezier(.22,.61,.36,1),
      opacity .36s ease;
    transform-origin:center center;
  }
  .project-process .process-step__visual .svg-main,
  .project-process .process-step__visual .svg-muted{
    transition:opacity .36s ease,stroke .36s ease;
  }
}
@media(min-width:901px) and (hover:hover) and (pointer:fine){
  .project-process .process-step{
    position:relative;
    z-index:1;
  }
  .project-process .process-step:hover{
    z-index:8;
  }
  .project-process .process-step:hover .process-step__copy{
    transform:translateY(-5px) scale(1.035);
  }
  .project-process .process-step:hover .process-step__visual{
    transform:translateY(5px) scale(1.09);
    opacity:1;
  }
  .project-process .process-step:hover .process-step__visual .svg-main{
    opacity:1;
  }
  .project-process .process-step:hover .process-step__visual .svg-muted{
    opacity:.52;
  }
}
@media(prefers-reduced-motion:reduce){
  .project-process .process-step__copy,
  .project-process .process-step__visual,
  .project-process .process-step__visual .svg-main,
  .project-process .process-step__visual .svg-muted{
    transition:none !important;
  }
  .project-process .process-step:hover .process-step__copy{
    transform:none !important;
  }
  .project-process .process-step:hover .process-step__visual{
    transform:translateY(5px) !important;
  }
}


/* v0.7.188 — Block 3 readability + subtle price emphasis. */
.project-process .process-step__copy p{
  font-size:15.5px;
  line-height:1.57;
  color:rgba(245,245,241,.80);
}
.project-process .process-step__price{
  color:var(--accent);
  font-size:1.07em;
  font-weight:650;
  letter-spacing:-.01em;
  white-space:nowrap;
}
@media(min-width:901px) and (max-width:1250px){
  .project-process .process-step__copy p{
    font-size:14.5px;
    line-height:1.56;
  }
}
@media(min-width:901px) and (max-height:760px){
  .project-process .process-step__copy p{
    font-size:13.25px;
    line-height:1.48;
  }
}
@media(max-width:900px){
  .project-process .process-step__copy p{
    font-size:15px;
    line-height:1.58;
  }
}


/* v0.7.189 — Transparency block: exact desktop viewport + earlier top start. */
@media(min-width:901px){
  .project-finance-v2{
    box-sizing:border-box;
    height:calc(100dvh - 82px);
    min-height:0;
    padding:0;
    overflow:hidden;
  }
  .project-finance-v2>.container{
    box-sizing:border-box;
    height:100%;
    display:grid;
    grid-template-rows:auto auto auto auto;
    align-content:start;
    padding-top:32px;
    padding-bottom:24px;
  }
  .project-finance-v2>.container>.eyebrow{
    margin-top:0;
  }
  .project-finance-v2__head{
    margin-top:8px;
  }
  .project-finance-v2__intro{
    margin-top:22px;
    margin-bottom:28px;
  }
  body.admin-bar .project-finance-v2{
    height:calc(100dvh - 82px - 32px);
  }
}
@media(min-width:901px) and (max-height:760px){
  .project-finance-v2{
    height:calc(100dvh - 82px);
    min-height:0;
    padding:0;
  }
  .project-finance-v2>.container{
    padding-top:22px;
    padding-bottom:18px;
  }
  .project-finance-v2__head{
    margin-top:4px;
  }
  .project-finance-v2__head h2{
    font-size:clamp(38px,4.6vw,62px);
  }
  .project-finance-v2__head>strong{
    font-size:clamp(52px,6.5vw,88px);
  }
  .project-finance-v2__intro{
    margin-top:15px;
    margin-bottom:20px;
    font-size:16px;
    line-height:1.48;
  }
  .project-finance-v2__grid article{
    min-height:185px;
    padding:24px;
  }
  .project-finance-v2__grid article>strong{
    margin-bottom:20px;
    font-size:32px;
  }
  body.admin-bar .project-finance-v2{
    height:calc(100dvh - 82px - 32px);
  }
}
@media(max-width:900px){
  .project-finance-v2{
    height:auto;
    min-height:0;
    overflow:visible;
  }
}


/* v0.7.190 — Transparency block: open editorial financial distribution. */
.project-finance-v2__distribution{position:relative;margin-top:4px}
.project-finance-v2__rail{position:absolute;top:13px;left:0;right:0;height:1px;background:rgba(10,10,10,.18);overflow:hidden}
.project-finance-v2__rail span{display:block;width:100%;height:2px;background:var(--black);transform:scaleX(0);transform-origin:left center}
.project-finance-v2__destinations{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(42px,5vw,90px)}
.project-finance-v2__destination{min-width:0;padding:0;border:0;background:transparent}
.project-finance-v2__marker{position:relative;z-index:2;display:block;width:11px;height:11px;margin:8px 0 27px;border-radius:50%;background:var(--black);box-shadow:0 0 0 6px var(--off-white);transition:background-color .3s ease,transform .3s ease}
.project-finance-v2__index{display:block;margin-bottom:11px;font-size:12px;line-height:1;font-weight:800;letter-spacing:.14em;color:rgba(10,10,10,.48)}
.project-finance-v2__destination h3{max-width:360px;margin:0 0 18px;font-size:clamp(23px,1.65vw,29px);line-height:1.03;letter-spacing:-.045em}
.project-finance-v2__destination strong{display:block;margin:0 0 15px;font-size:clamp(34px,3vw,52px);line-height:.95;letter-spacing:-.055em;color:var(--black);transition:color .3s ease}
.project-finance-v2__destination p{max-width:360px;margin:0;font-size:15px;line-height:1.5;color:rgba(10,10,10,.67);transition:color .3s ease}
.project-finance-v2.is-visible .project-finance-v2__rail span{animation:siFinanceRailDraw 1.1s cubic-bezier(.22,.61,.36,1) .12s forwards}
@keyframes siFinanceRailDraw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(min-width:901px) and (hover:hover) and (pointer:fine){
 .project-finance-v2__destination:hover .project-finance-v2__marker{background:var(--accent);transform:scale(1.18)}
 .project-finance-v2__destination:hover strong{color:var(--accent)}
 .project-finance-v2__destination:hover p{color:rgba(10,10,10,.88)}
}
@media(min-width:901px) and (max-height:760px){
 .project-finance-v2__marker{margin-bottom:19px}
 .project-finance-v2__destination h3{margin-bottom:12px;font-size:22px}
 .project-finance-v2__destination strong{margin-bottom:10px;font-size:34px}
 .project-finance-v2__destination p{font-size:13.5px;line-height:1.42}
}
@media(max-width:900px){
 .project-finance-v2__rail{top:0;bottom:0;left:6px;right:auto;width:1px;height:auto}
 .project-finance-v2__rail span{width:2px;height:100%;transform:scaleY(1)}
 .project-finance-v2__destinations{grid-template-columns:1fr;gap:38px}
 .project-finance-v2__destination{position:relative;padding-left:34px}
 .project-finance-v2__marker{position:absolute;left:1px;margin:3px 0 0}
}
@media(prefers-reduced-motion:reduce){.project-finance-v2__rail span{transform:none!important;animation:none!important}}


/* v0.7.191 — Transparency block: matching VAT switch in light theme. */
.project-finance-v2__amount{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:14px;
}
.project-finance-v2__amount>strong{
  display:block;
  margin:0;
  font-size:clamp(68px,7vw,108px);
  line-height:.86;
  letter-spacing:-.07em;
  color:var(--accent);
}
.project-price-toggle--light{
  background:rgba(10,10,10,.045);
  border-color:rgba(10,10,10,.14);
}
.project-price-toggle--light button{
  color:rgba(10,10,10,.66);
}
.project-price-toggle--light button:hover{
  color:var(--black);
  background:rgba(10,10,10,.045);
}
.project-price-toggle--light button[aria-pressed="true"]{
  background:var(--black);
  color:var(--off-white);
}
@media(min-width:901px) and (max-height:760px){
  .project-finance-v2__amount{gap:9px}
  .project-finance-v2__amount>strong{font-size:clamp(58px,6vw,86px)}
}
@media(max-width:900px){
  .project-finance-v2__amount{
    align-items:flex-start;
    gap:12px;
  }
  .project-finance-v2__amount>strong{
    font-size:clamp(58px,17vw,84px);
  }
}


/* v0.7.193 — Finance-to-collaboration backflip reveal CTA. */
.project-finance-v2__next{
  align-self:end;
  justify-self:center;
  display:block;
  margin-top:clamp(18px,2.4vh,34px);
  color:var(--black);
  text-decoration:none;
  perspective:1100px;
  text-align:center;
}
.project-finance-v2__next-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  opacity:0;
  visibility:hidden;
  transform:translateY(22px) rotateX(92deg);
  transform-origin:50% 100%;
  backface-visibility:hidden;
  will-change:transform,opacity;
}
.project-finance-v2__next.is-revealed .project-finance-v2__next-inner{
  visibility:visible;
  animation:siFinanceNextBackflip 1s cubic-bezier(.2,.72,.18,1.16) both;
}
.project-finance-v2__next-kicker{
  display:block;
  margin-bottom:7px;
  font-size:10px;
  line-height:1;
  font-weight:850;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(10,10,10,.48);
}
.project-finance-v2__next strong{
  display:block;
  font-size:clamp(19px,1.75vw,28px);
  line-height:1;
  letter-spacing:-.045em;
  transition:color .28s ease;
}
.project-finance-v2__next-arrow{
  position:relative;
  display:block;
  width:18px;
  height:38px;
  margin-top:13px;
  transition:transform .28s cubic-bezier(.22,.61,.36,1);
}
.project-finance-v2__next-arrow i{
  position:absolute;
  left:50%;
  top:0;
  width:1px;
  height:30px;
  background:currentColor;
  transform:translateX(-50%);
}
.project-finance-v2__next-arrow i::before,
.project-finance-v2__next-arrow i::after{
  content:"";
  position:absolute;
  bottom:0;
  width:8px;
  height:1px;
  background:currentColor;
}
.project-finance-v2__next-arrow i::before{
  right:0;
  transform-origin:right center;
  transform:rotate(45deg);
}
.project-finance-v2__next-arrow i::after{
  left:0;
  transform-origin:left center;
  transform:rotate(-45deg);
}
@keyframes siFinanceNextBackflip{
  0%{opacity:0;transform:translateY(22px) rotateX(92deg)}
  64%{opacity:1;transform:translateY(-3px) rotateX(-8deg)}
  82%{opacity:1;transform:translateY(1px) rotateX(3deg)}
  100%{opacity:1;transform:translateY(0) rotateX(0)}
}
@media(min-width:901px){
  .project-finance-v2__next{
    align-self:auto;
  }
}
@media(min-width:901px) and (hover:hover) and (pointer:fine){
  .project-finance-v2__next:hover strong{color:var(--accent)}
  .project-finance-v2__next:hover .project-finance-v2__next-arrow{transform:translateY(5px)}
}
@media(min-width:901px) and (max-height:760px){
  .project-finance-v2__next{margin-top:10px}
  .project-finance-v2__next-kicker{font-size:9px;margin-bottom:5px}
  .project-finance-v2__next strong{font-size:18px}
  .project-finance-v2__next-arrow{height:28px;margin-top:7px}
  .project-finance-v2__next-arrow i{height:22px}
}
@media(max-width:900px){
  .project-finance-v2__next{
    margin-top:54px;
    margin-bottom:8px;
  }
  .project-finance-v2__next strong{font-size:22px}
}
@media(prefers-reduced-motion:reduce){
  .project-finance-v2__next .project-finance-v2__next-inner{
    visibility:visible;
    opacity:1;
    transform:none;
    animation:none!important;
  }
}


/* v0.7.194 — Robust finance CTA placement without changing the fixed viewport. */
@media(min-width:901px){
  .project-finance-v2>.container{
    grid-template-rows:auto auto auto auto auto;
  }
  .project-finance-v2__next{
    align-self:auto;
    justify-self:center;
    margin-top:clamp(20px,3.1vh,38px);
    margin-bottom:0;
  }
}
@media(min-width:901px) and (max-height:820px){
  .project-finance-v2__next{
    margin-top:14px;
  }
  .project-finance-v2__next-arrow{
    height:30px;
    margin-top:8px;
  }
  .project-finance-v2__next-arrow i{height:23px}
}
@media(min-width:901px) and (max-height:720px){
  .project-finance-v2__next{
    margin-top:8px;
  }
  .project-finance-v2__next-kicker{font-size:8.5px}
  .project-finance-v2__next strong{font-size:17px}
  .project-finance-v2__next-arrow{
    height:23px;
    margin-top:5px;
  }
  .project-finance-v2__next-arrow i{height:18px}
}


/* v0.7.195 — Restore the small centered process-block down arrow only. */
.project-process{position:relative}
.project-process__next-arrow{
  position:absolute;
  z-index:12;
  left:50%;
  bottom:16px;
  width:34px;
  height:34px;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--black);
  text-decoration:none;
}
.project-process__next-arrow span{
  position:relative;
  display:block;
  width:1px;
  height:22px;
  background:currentColor;
  transition:transform .25s cubic-bezier(.22,.61,.36,1);
}
.project-process__next-arrow span::before,
.project-process__next-arrow span::after{
  content:"";
  position:absolute;
  bottom:0;
  width:8px;
  height:1px;
  background:currentColor;
}
.project-process__next-arrow span::before{
  right:0;
  transform-origin:right center;
  transform:rotate(45deg);
}
.project-process__next-arrow span::after{
  left:0;
  transform-origin:left center;
  transform:rotate(-45deg);
}
@media(min-width:901px) and (hover:hover) and (pointer:fine){
  .project-process__next-arrow:hover span{transform:translateY(4px)}
}
@media(min-width:901px) and (max-height:760px){
  .project-process__next-arrow{bottom:9px;height:28px}
  .project-process__next-arrow span{height:18px}
}
@media(max-width:900px){
  .project-process__next-arrow{
    position:relative;
    left:auto;
    bottom:auto;
    margin:26px auto 0;
    transform:none;
  }
}
@media(prefers-reduced-motion:reduce){
  .project-process__next-arrow span{transition:none}
}

/* v0.7.196 — Transparency block: trim only the empty space below the CTA. */
@media(min-width:901px){
  .project-finance-v2{
    height:auto;
    min-height:0;
    overflow:visible;
  }
  .project-finance-v2>.container{
    height:auto;
    padding-bottom:36px;
  }
}
@media(min-width:901px) and (max-height:760px){
  .project-finance-v2{
    height:auto;
    min-height:0;
    overflow:visible;
  }
  .project-finance-v2>.container{
    height:auto;
    padding-bottom:28px;
  }
}

/* v0.7.197 — Fix WordPress admin-bar specificity for content-driven transparency height. */
@media(min-width:901px){
  body.admin-bar .project-finance-v2{
    height:auto;
    min-height:0;
    overflow:visible;
  }
  body.admin-bar .project-finance-v2>.container{
    height:auto;
    padding-bottom:36px;
  }
}
@media(min-width:901px) and (max-height:760px){
  body.admin-bar .project-finance-v2{
    height:auto;
    min-height:0;
  }
  body.admin-bar .project-finance-v2>.container{
    height:auto;
    padding-bottom:28px;
  }
}


/* v0.7.202 — Impact Soest / Onze voortgang: fullscreen black editorial treatment. */
@media (min-width:901px){
  .project-transparency{
    box-sizing:border-box;
    height:calc(100dvh - 82px);
    min-height:0;
    padding:0;
    overflow:hidden;
    background:var(--black);
    color:var(--off-white);
  }

  body.admin-bar .project-transparency{
    height:calc(100dvh - 82px - 32px);
    min-height:0;
  }

  .project-transparency>.transparency-panel{
    box-sizing:border-box;
    width:min(100% - 96px,1480px);
    height:100%;
    margin-inline:auto;
    padding:clamp(44px,5.4vh,62px) 0 clamp(28px,3.8vh,42px);
    background:transparent;
    color:var(--off-white);
    display:grid;
    grid-template-rows:auto 1fr auto auto;
    align-content:stretch;
  }

  .project-transparency .transparency-panel>div:first-child{
    max-width:980px;
  }

  .project-transparency .eyebrow{
    margin:0 0 18px;
    color:var(--accent);
  }

  .project-transparency .transparency-panel h2{
    max-width:980px;
    margin:0 0 28px;
    color:var(--off-white);
    font-size:clamp(58px,6.8vw,104px);
    line-height:.92;
    letter-spacing:-.06em;
  }

  .project-transparency .transparency-panel>div:first-child p{
    max-width:760px;
    margin:0;
    color:rgba(245,245,241,.72);
    font-size:clamp(17px,1.35vw,21px);
    line-height:1.55;
  }

  .project-transparency .transparency-stats{
    align-self:end;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0;
    margin:0 0 24px;
    background:transparent;
    border-top:1px solid rgba(245,245,241,.18);
    border-bottom:1px solid rgba(245,245,241,.18);
  }

  .project-transparency .transparency-stats div{
    min-width:0;
    padding:25px 26px 23px;
    background:transparent;
    border-left:1px solid rgba(245,245,241,.14);
  }

  .project-transparency .transparency-stats div:first-child{
    border-left:0;
    padding-left:0;
  }

  .project-transparency .transparency-stats strong{
    color:var(--accent);
    font-size:clamp(40px,4.2vw,66px);
    line-height:.95;
    letter-spacing:-.045em;
  }

  .project-transparency .transparency-stats span{
    margin-top:10px;
    color:rgba(245,245,241,.62);
    font-size:13px;
    line-height:1.35;
  }

  .project-transparency .text-link{
    justify-self:start;
    color:var(--off-white);
    border-color:rgba(245,245,241,.45);
  }

  .project-transparency .transparency-panel small{
    display:block;
    margin-top:12px;
    color:rgba(245,245,241,.42);
  }
}

@media (min-width:901px) and (max-height:760px){
  .project-transparency>.transparency-panel{
    padding-top:28px;
    padding-bottom:22px;
  }

  .project-transparency .eyebrow{
    margin-bottom:12px;
  }

  .project-transparency .transparency-panel h2{
    margin-bottom:18px;
    font-size:clamp(50px,5.8vw,84px);
  }

  .project-transparency .transparency-panel>div:first-child p{
    font-size:16px;
    line-height:1.45;
  }

  .project-transparency .transparency-stats{
    margin-bottom:18px;
  }

  .project-transparency .transparency-stats div{
    padding-top:18px;
    padding-bottom:17px;
  }

  .project-transparency .transparency-stats strong{
    font-size:clamp(36px,3.6vw,54px);
  }
}

@media (max-width:900px){
  .project-transparency{
    box-sizing:border-box;
    height:auto;
    min-height:calc(100svh - 72px);
    padding:0;
    overflow:visible;
    background:var(--black);
    color:var(--off-white);
  }

  .project-transparency>.transparency-panel{
    box-sizing:border-box;
    width:min(var(--container),calc(100% - (var(--pad) * 2)));
    min-height:calc(100svh - 72px);
    margin-inline:auto;
    padding:52px 0 56px;
    background:transparent;
    color:var(--off-white);
  }

  .project-transparency .eyebrow{
    color:var(--accent);
  }

  .project-transparency .transparency-panel h2{
    max-width:720px;
    margin:.12em 0 .3em;
    color:var(--off-white);
    font-size:clamp(46px,11vw,72px);
    line-height:.94;
  }

  .project-transparency .transparency-panel>div:first-child p{
    max-width:680px;
    color:rgba(245,245,241,.72);
    font-size:16px;
    line-height:1.55;
  }

  .project-transparency .transparency-stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    margin:46px 0 26px;
    background:transparent;
    border-top:1px solid rgba(245,245,241,.18);
  }

  .project-transparency .transparency-stats div{
    padding:22px 18px 22px 0;
    background:transparent;
    border-bottom:1px solid rgba(245,245,241,.18);
  }

  .project-transparency .transparency-stats div:nth-child(even){
    padding-left:18px;
    border-left:1px solid rgba(245,245,241,.14);
  }

  .project-transparency .transparency-stats strong{
    color:var(--accent);
    font-size:clamp(38px,9vw,58px);
  }

  .project-transparency .transparency-stats span{
    color:rgba(245,245,241,.62);
  }

  .project-transparency .text-link{
    color:var(--off-white);
    border-color:rgba(245,245,241,.45);
  }

  .project-transparency .transparency-panel small{
    display:block;
    margin-top:12px;
    color:rgba(245,245,241,.42);
  }
}

@media (max-width:620px){
  .project-transparency .transparency-stats{
    grid-template-columns:1fr;
  }

  .project-transparency .transparency-stats div,
  .project-transparency .transparency-stats div:nth-child(even){
    padding:20px 0;
    border-left:0;
  }
}


/* v0.7.203 — Onze voortgang: centered cinematic reveal meter. */
.project-transparency__intro{
  max-width:1100px;
  margin-inline:auto;
  text-align:center;
}
.project-transparency__intro .eyebrow{
  text-align:center;
}
.project-transparency__intro h2{
  max-width:1100px !important;
  margin:0 auto 24px !important;
  text-align:center;
  text-wrap:balance;
}
.project-transparency__intro>p:last-child{
  max-width:720px !important;
  margin:0 auto !important;
  text-align:center;
}

.impact-meter{
  width:min(100%,1120px);
  margin-inline:auto;
  align-self:end;
}
.impact-meter__labels{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  margin-bottom:12px;
  color:rgba(245,245,241,.42);
  font-size:11px;
  font-weight:850;
  letter-spacing:.14em;
}
.impact-meter__labels strong{
  color:rgba(245,245,241,.72);
  font-size:12px;
}
.impact-meter__track{
  position:relative;
  height:2px;
  background:rgba(245,245,241,.16);
  overflow:visible;
}
.impact-meter__progress{
  position:absolute;
  inset:0 auto 0 0;
  width:100%;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left center;
  will-change:transform;
}
.impact-meter__marker{
  position:absolute;
  top:50%;
  left:0;
  width:16px;
  height:16px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 7px rgba(255,90,31,.13);
  transform:translate(-50%,-50%);
  opacity:0;
  will-change:left,opacity;
}
.impact-meter__current{
  width:max-content;
  max-width:100%;
  margin-top:24px;
  opacity:0;
  transform:translateY(14px);
}
.impact-meter__current strong{
  display:block;
  color:var(--off-white);
  font-size:clamp(34px,4.2vw,58px);
  line-height:.96;
  letter-spacing:-.045em;
}
.impact-meter__current>span{
  display:block;
  margin-top:8px;
  color:rgba(245,245,241,.54);
  font-size:11px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.impact-reveal-stats{
  width:min(100%,1120px);
  margin:clamp(30px,4.5vh,50px) auto 0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid rgba(245,245,241,.16);
  border-bottom:1px solid rgba(245,245,241,.16);
}
.impact-reveal-stats>div{
  min-width:0;
  padding:22px 28px;
  border-left:1px solid rgba(245,245,241,.12);
  opacity:0;
  transform:translateY(18px);
}
.impact-reveal-stats>div:first-child{
  border-left:0;
  padding-left:0;
}
.impact-reveal-stats>div:last-child{
  padding-right:0;
}
.impact-reveal-stats>div>span:first-child{
  display:block;
  margin-bottom:12px;
  color:var(--accent);
  font-size:11px;
  font-weight:850;
  letter-spacing:.14em;
}
.impact-reveal-stats strong{
  display:block;
  color:var(--off-white);
  font-size:clamp(18px,1.6vw,24px);
  line-height:1.2;
  letter-spacing:-.025em;
  font-weight:650;
}

.project-transparency__footer{
  width:min(100%,1120px);
  margin:18px auto 0;
  text-align:center;
  opacity:0;
  transform:translateY(10px);
}
.project-transparency__footer .text-link{
  display:inline-block;
}

.project-transparency.is-revealed .impact-meter__progress{
  animation:siImpactProgress 1.15s cubic-bezier(.22,.61,.36,1) .28s forwards;
}
.project-transparency.is-revealed .impact-meter__marker{
  animation:siImpactMarkerIn 1.15s cubic-bezier(.22,.61,.36,1) .28s forwards;
}
.project-transparency.is-revealed .impact-meter__current{
  animation:siImpactFadeUp .5s ease .88s forwards;
}
.project-transparency.is-revealed .impact-reveal-stats>div:nth-child(1){
  animation:siImpactFadeUp .46s ease 1.12s forwards;
}
.project-transparency.is-revealed .impact-reveal-stats>div:nth-child(2){
  animation:siImpactFadeUp .46s ease 1.28s forwards;
}
.project-transparency.is-revealed .impact-reveal-stats>div:nth-child(3){
  animation:siImpactFadeUp .46s ease 1.44s forwards;
}
.project-transparency.is-revealed .project-transparency__footer{
  animation:siImpactFadeUp .46s ease 1.64s forwards;
}

@keyframes siImpactProgress{
  to{transform:scaleX(var(--impact-progress,0))}
}
@keyframes siImpactMarkerIn{
  0%{opacity:0;left:0}
  15%{opacity:1}
  100%{opacity:1;left:calc(var(--impact-progress,0) * 100%)}
}
@keyframes siImpactFadeUp{
  to{opacity:1;transform:translateY(0)}
}

@media(min-width:901px){
  .project-transparency>.transparency-panel{
    grid-template-rows:auto 1fr auto auto;
  }
  .impact-meter{
    margin-bottom:2px;
  }
}

@media(max-width:900px){
  .project-transparency__intro h2{
    font-size:clamp(46px,11vw,72px) !important;
  }
  .impact-meter{
    margin-top:48px;
  }
  .impact-reveal-stats{
    grid-template-columns:1fr;
  }
  .impact-reveal-stats>div,
  .impact-reveal-stats>div:first-child,
  .impact-reveal-stats>div:last-child{
    padding:18px 0;
    border-left:0;
    border-bottom:1px solid rgba(245,245,241,.12);
  }
  .impact-reveal-stats>div:last-child{
    border-bottom:0;
  }
}

@media(prefers-reduced-motion:reduce){
  .impact-meter__progress{
    transform:scaleX(var(--impact-progress,0)) !important;
    animation:none !important;
  }
  .impact-meter__marker{
    left:calc(var(--impact-progress,0) * 100%) !important;
    opacity:1 !important;
    animation:none !important;
  }
  .impact-meter__current,
  .impact-reveal-stats>div,
  .project-transparency__footer{
    opacity:1 !important;
    transform:none !important;
    animation:none !important;
  }
}


/* v0.7.204 — Progress reveal content: left eyebrow + three measurable KPIs. */
.project-transparency__intro .eyebrow{
  width:min(100%,1120px);
  margin-left:auto;
  margin-right:auto;
  text-align:left;
}

.impact-reveal-stats strong small{
  display:block;
  margin-top:9px;
  color:rgba(245,245,241,.58);
  font-size:12px;
  line-height:1.35;
  letter-spacing:.01em;
  font-weight:500;
}

.impact-reveal-stats>div>span:first-child{
  white-space:nowrap;
}

@media(max-width:620px){
  .impact-reveal-stats>div>span:first-child{
    white-space:normal;
  }
}


/* v0.7.210 — Results title: scroll-driven converge + deblur. */
.impact-scroll-title{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
  --si-title-progress:0;
}

.impact-scroll-title__line{
  display:block;
  will-change:transform,filter,opacity;
  filter:blur(calc((1 - var(--si-title-progress)) * 10px));
  opacity:calc(.32 + (var(--si-title-progress) * .68));
  transform:translate3d(0,0,0);
}

.impact-scroll-title__line--top{
  transform:translate3d(0,calc((1 - var(--si-title-progress)) * -56px),0);
}

.impact-scroll-title__line--bottom{
  transform:translate3d(0,calc((1 - var(--si-title-progress)) * 64px),0);
}

@media(max-width:900px){
  .impact-scroll-title__line--top{
    transform:translate3d(0,calc((1 - var(--si-title-progress)) * -34px),0);
  }

  .impact-scroll-title__line--bottom{
    transform:translate3d(0,calc((1 - var(--si-title-progress)) * 40px),0);
  }
}

@media(prefers-reduced-motion:reduce){
  .impact-scroll-title{
    --si-title-progress:1 !important;
  }

  .impact-scroll-title__line{
    filter:none !important;
    opacity:1 !important;
    transform:none !important;
  }
}


/* v0.7.215 — Deterministic cinematic arrival for CTA navigation.
   These selectors intentionally override the scroll-driven title transforms
   only while the CTA-triggered arrival sequence is active. */
.impact-scroll-title.is-cinematic-prep .impact-scroll-title__line,
.impact-scroll-title.is-cinematic-arrival .impact-scroll-title__line{
  will-change:transform,filter,opacity;
}

.impact-scroll-title.is-cinematic-prep .impact-scroll-title__line{
  transition:none !important;
  filter:blur(10px) !important;
  opacity:.32 !important;
}

.impact-scroll-title.is-cinematic-prep .impact-scroll-title__line--top{
  transform:translate3d(0,-56px,0) !important;
}

.impact-scroll-title.is-cinematic-prep .impact-scroll-title__line--bottom{
  transform:translate3d(0,64px,0) !important;
}

.impact-scroll-title.is-cinematic-arrival .impact-scroll-title__line{
  transition:
    transform 1.35s cubic-bezier(.22,.61,.36,1),
    filter 1.15s cubic-bezier(.22,.61,.36,1),
    opacity .9s ease-out !important;
  filter:blur(0) !important;
  opacity:1 !important;
  transform:translate3d(0,0,0) !important;
}

@media(max-width:900px){
  .impact-scroll-title.is-cinematic-prep .impact-scroll-title__line--top{
    transform:translate3d(0,-34px,0) !important;
  }

  .impact-scroll-title.is-cinematic-prep .impact-scroll-title__line--bottom{
    transform:translate3d(0,40px,0) !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .impact-scroll-title.is-cinematic-prep .impact-scroll-title__line,
  .impact-scroll-title.is-cinematic-arrival .impact-scroll-title__line{
    transition:none !important;
    filter:none !important;
    opacity:1 !important;
    transform:none !important;
  }
}


/* v0.7.218 — One-clock CTA cinematic.
   --si-cta-progress is written by the same frame that moves the page. */
.impact-scroll-title.is-cta-cinematic .impact-scroll-title__line{
  transition:none !important;
  will-change:transform,filter,opacity;
  filter:blur(calc((1 - var(--si-cta-progress)) * 10px)) !important;
  opacity:calc(.32 + (var(--si-cta-progress) * .68)) !important;
}

.impact-scroll-title.is-cta-cinematic .impact-scroll-title__line--top{
  transform:translate3d(
    0,
    calc((1 - var(--si-cta-progress)) * -56px),
    0
  ) !important;
}

.impact-scroll-title.is-cta-cinematic .impact-scroll-title__line--bottom{
  transform:translate3d(
    0,
    calc((1 - var(--si-cta-progress)) * 64px),
    0
  ) !important;
}

@media(max-width:900px){
  .impact-scroll-title.is-cta-cinematic .impact-scroll-title__line--top{
    transform:translate3d(
      0,
      calc((1 - var(--si-cta-progress)) * -34px),
      0
    ) !important;
  }

  .impact-scroll-title.is-cta-cinematic .impact-scroll-title__line--bottom{
    transform:translate3d(
      0,
      calc((1 - var(--si-cta-progress)) * 40px),
      0
    ) !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .impact-scroll-title.is-cta-cinematic .impact-scroll-title__line{
    filter:none !important;
    opacity:1 !important;
    transform:none !important;
  }
}

/* v0.7.224 — VOORTGANG follows the outer results grid, while the centered
   intro/title keeps exactly the v0.7.221 geometry. */
.project-transparency__eyebrow{
  width:auto;
  margin:0;
  text-align:left;
}

/* v0.7.228 — Impact Soest / Blok 5: correct frontend selector.
   Fullscreen desktop scene + reduced vertical padding + Evolvo template orange.
   Typography, columns, copy and all other project blocks remain untouched. */
.project-local-impact{
  background:#FF5A1F;
}

@media(min-width:901px){
  .project-local-impact{
    box-sizing:border-box;
    height:calc(100dvh - 82px);
    min-height:0;
    padding-top:48px;
    padding-bottom:48px;
    overflow:hidden;
  }

  body.admin-bar .project-local-impact{
    height:calc(100dvh - 82px - 32px);
  }
}

/* v0.7.229 — Blok 5: editorial partner spotlight. */
.project-local-impact__editorial{height:100%;display:grid;grid-template-columns:minmax(180px,.72fr) minmax(0,1.7fr);gap:clamp(48px,7vw,120px);align-items:start}
.project-local-impact__rail{min-width:0;display:flex;flex-direction:column;justify-content:space-between;height:100%}
.project-local-impact__rail .eyebrow{margin:0}
.project-local-impact__index{font-size:12px;line-height:1;letter-spacing:.12em;opacity:.48}
.project-local-impact__spotlight{width:min(100%,860px);min-width:0}
.project-local-impact__spotlight h2{margin:0 0 clamp(34px,5vh,62px);max-width:760px}
.project-local-impact__partner{padding:18px 0 20px;border-top:1px solid rgba(10,10,10,.72);border-bottom:1px solid rgba(10,10,10,.28);display:flex;align-items:baseline;justify-content:space-between;gap:28px}
.project-local-impact__partner-label{font-size:11px;line-height:1.2;letter-spacing:.12em;text-transform:uppercase;opacity:.62}
.project-local-impact__partner strong{font-size:clamp(20px,2vw,30px);line-height:1.05;font-weight:600;text-align:right}
.project-local-impact__copy{max-width:650px;margin:clamp(28px,4vh,44px) 0 0}
.project-local-impact__link{margin-top:clamp(32px,5vh,56px);padding-bottom:8px;width:max-content;max-width:100%;display:flex;align-items:center;gap:14px;border-bottom:1px solid currentColor;color:inherit;text-decoration:none;font-weight:600}
.project-local-impact__link span:last-child{transition:transform .25s ease}
.project-local-impact__link:hover span:last-child,.project-local-impact__link:focus-visible span:last-child{transform:translate(3px,-3px)}
@media(max-width:900px){
 .project-local-impact__editorial{height:auto;display:block}
 .project-local-impact__rail{height:auto;display:block}
 .project-local-impact__index{display:none}
 .project-local-impact__spotlight{margin-top:34px}
 .project-local-impact__partner{align-items:flex-start;flex-direction:column;gap:10px}
 .project-local-impact__partner strong{text-align:left}
}

/* v0.7.230 — Blok 5: optional photo inside the existing empty left rail.
   No changes to the v0.7.229 grid, typography or right-hand composition. */
.project-local-impact__image{
  width:82%;
  flex:1 1 auto;
  min-height:0;
  margin:28px 0;
  overflow:hidden;
}
.project-local-impact__image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}
@media(max-width:900px){
  .project-local-impact__image{
    width:100%;
    height:min(72vw,520px);
    margin:28px 0 0;
  }
}

/* v0.7.234 — Results subtitle: driven by the existing title reveal.
   Hidden while the title is blurred; after title progress reaches 100%,
   a 200ms pause precedes the one-time left-to-right arrival. */
.project-transparency__intro > p:last-child.is-scroll-subtitle-flight{
  opacity:0;
  transform:translate3d(-90px,0,0);
  filter:blur(5px);
  will-change:transform,opacity,filter;
  transition:
    transform 700ms cubic-bezier(.22,1,.36,1),
    opacity 500ms ease,
    filter 600ms ease;
}
.project-transparency__intro > p:last-child.is-scroll-subtitle-flight.is-scroll-subtitle-visible{
  opacity:1;
  transform:translate3d(0,0,0);
  filter:blur(0);
}

@media(prefers-reduced-motion:reduce){
  .project-transparency__intro > p:last-child.is-scroll-subtitle-flight,
  .project-transparency__intro > p:last-child.is-scroll-subtitle-flight.is-scroll-subtitle-visible{
    opacity:1;
    transform:none;
    filter:none;
    transition:none;
  }
}

/* v0.7.237 — Impact Soest / Blok 6: true fullscreen composition.
   Keep the existing visual language, but make the internal layout fit the
   available desktop viewport instead of clipping the partner grid / CTA. */
@media(min-width:901px){
  .project-partners--teaser{
    box-sizing:border-box;
    height:calc(100dvh - 82px);
    min-height:0;
    padding:clamp(34px,4.8vh,54px) 0;
    overflow:hidden;
  }

  body.admin-bar .project-partners--teaser{
    height:calc(100dvh - 82px - 32px);
  }

  .project-partners--teaser>.container{
    height:100%;
    min-height:0;
    display:grid;
    grid-template-rows:auto auto minmax(0,1fr) auto;
    align-content:stretch;
    row-gap:clamp(18px,2.8vh,30px);
  }

  .project-partners--teaser .eyebrow{
    margin:0;
  }

  .project-partners--teaser .project-section-heading{
    margin:0;
  }

  .project-partners--teaser .partner-grid{
    min-height:0;
    margin:0;
    align-self:stretch;
  }

  .project-partners--teaser .partner-tile{
    min-height:0;
  }

  .project-partners--teaser .section-button{
    margin-top:0;
    align-self:start;
  }

  .project-partners--teaser .empty-partners{
    min-height:0;
    margin:0;
    align-self:center;
  }
}

@media(min-width:901px) and (max-height:800px){
  .project-partners--teaser{
    padding:24px 0 28px;
  }

  .project-partners--teaser>.container{
    row-gap:16px;
  }

  .project-partners--teaser .project-section-heading h2{
    font-size:clamp(46px,5.8vw,84px);
  }

  .project-partners--teaser .partner-grid{
    max-height:220px;
  }
}

@media(max-width:900px){
  .project-partners--teaser{
    height:auto;
    overflow:visible;
  }
}

/* v0.7.238 — Block 6 fullscreen typography fix.
   The global h2 scale was too large for this fixed-height scene. Give this
   section its own scale/rhythm so heading, partners and CTA all remain visible. */
@media(min-width:901px){
  .project-partners--teaser .project-section-heading h2{
    max-width:1120px;
    margin:0;
    font-size:clamp(42px,5vw,72px);
    line-height:.96;
    letter-spacing:-.05em;
  }

  .project-partners--teaser .project-section-heading{
    align-items:end;
  }

  .project-partners--teaser .partner-grid{
    align-items:stretch;
  }

  .project-partners--teaser .partner-tile{
    height:100%;
    max-height:190px;
  }
}

@media(min-width:901px) and (max-height:850px){
  .project-partners--teaser{
    padding:20px 0 24px;
  }

  .project-partners--teaser>.container{
    grid-template-rows:auto auto minmax(120px,1fr) auto;
    row-gap:14px;
  }

  .project-partners--teaser .project-section-heading h2{
    max-width:1180px;
    font-size:clamp(40px,4.45vw,64px);
    line-height:.94;
  }

  .project-partners--teaser .partner-grid{
    max-height:170px;
  }

  .project-partners--teaser .partner-tile{
    max-height:170px;
  }

  .project-partners--teaser .section-button{
    margin-top:0;
  }
}

/* v0.7.239 — Block 6 mini Impact Wall.
   Same partner source and same postcard component as the full Impact Wall.
   Show up to four real partners plus the live recruitment card. */
.project-partners__wall-preview{
  min-height:0;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:clamp(14px,1.15vw,20px);
  align-items:stretch;
}
.project-partners__wall-preview .impact-wall-postcard{
  aspect-ratio:auto;
  height:100%;
  min-height:0;
  padding:clamp(18px,1.45vw,25px);
  border-radius:30px;
}
.project-partners__wall-preview .impact-wall-postcard__logo img{
  max-height:100px;
  max-width:84%;
}
.project-partners__wall-preview .impact-wall-postcard.is-filled>strong{
  font-size:clamp(14px,1.08vw,18px);
}
.project-partners__wall-preview .impact-wall-postcard--cta>b{
  font-size:clamp(46px,4vw,68px);
}
.project-partners__wall-preview .impact-wall-postcard--cta>strong{
  font-size:clamp(19px,1.5vw,26px);
}
.project-partners__wall-preview .impact-wall-postcard__cta-link{
  margin-top:16px;
  padding-top:12px;
  font-size:11px;
}

@media(min-width:901px){
  .project-partners--teaser>.container{
    grid-template-rows:auto auto minmax(0,1fr) auto;
  }
  .project-partners__wall-preview{
    height:100%;
    max-height:210px;
  }
  .project-partners--teaser .project-partners__wall-card{
    max-height:none;
  }
}

@media(min-width:901px) and (max-height:850px){
  .project-partners__wall-preview{
    max-height:175px;
  }
  .project-partners__wall-preview .impact-wall-postcard{
    padding:16px 18px;
    border-radius:24px;
  }
  .project-partners__wall-preview .impact-wall-postcard__logo img{
    max-height:72px;
  }
  .project-partners__wall-preview .impact-wall-postcard--cta>b{
    font-size:44px;
  }
  .project-partners__wall-preview .impact-wall-postcard--cta>strong{
    font-size:18px;
  }
}

@media(max-width:1180px) and (min-width:901px){
  .project-partners__wall-preview{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
}

@media(max-width:900px){
  .project-partners__wall-preview{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-bottom:28px;
  }
  .project-partners__wall-preview .impact-wall-postcard{
    aspect-ratio:1.28/1;
    height:auto;
  }
}

@media(max-width:620px){
  .project-partners__wall-preview{
    grid-template-columns:1fr;
  }
}

/* v0.7.240 — Block 6 postcard reveal.
   Cards begin on an EVOLVO back and flip to their live Impact Wall face,
   one by one, once the fullscreen scene is substantially in view. */
.project-partners__flip{
  min-width:0;
  height:100%;
  min-height:0;
  perspective:1100px;
}
.project-partners__flip-inner{
  position:relative;
  width:100%;
  height:100%;
  min-height:0;
  transform-style:preserve-3d;
  transform:rotateY(0deg);
  transition:transform 720ms cubic-bezier(.22,1,.36,1);
  transition-delay:calc(var(--si-flip-index,0) * 150ms);
}
.project-partners__flip.is-revealed .project-partners__flip-inner{
  transform:rotateY(180deg);
}
.project-partners__flip .project-partners__wall-card{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-height:none;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.project-partners__card-back{
  transform:rotateY(0deg);
  background:var(--off-white);
  border-color:rgba(10,10,10,.12);
  display:flex;
  align-items:stretch;
}
.project-partners__card-front{
  transform:rotateY(180deg);
}
.project-partners__back-brand{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  font-size:clamp(20px,1.7vw,29px);
  font-weight:850;
  letter-spacing:.12em;
}
.project-partners__back-brand small{
  font-size:9px;
  font-weight:850;
  letter-spacing:.2em;
  opacity:.42;
}
.project-partners__wall-preview .project-partners__flip .impact-wall-postcard{
  height:100%;
}

@media(prefers-reduced-motion:reduce){
  .project-partners__flip-inner{
    transition:none;
    transform:rotateY(180deg);
  }
}

/* v0.7.242 — Block 6 unified postcard interaction.
   Hover lives on the 3D shell, not on the Impact Wall face. This prevents
   the CTA face's inherited translate transform from fighting the flip transform. */
.project-partners__flip{
  transition:transform 260ms cubic-bezier(.22,1,.36,1),filter 260ms ease;
  transform:scale(1);
  transform-origin:center;
  z-index:0;
}
.project-partners__flip:hover{
  transform:scale(1.035);
  z-index:2;
}
.project-partners__flip:hover .project-partners__card-front,
.project-partners__flip:hover .project-partners__card-back,
.project-partners__wall-preview .impact-wall-postcard:hover,
.project-partners__wall-preview a.impact-wall-postcard:hover{
  transform:rotateY(180deg);
  box-shadow:none;
}
.project-partners__flip:hover .project-partners__card-back{
  transform:rotateY(0deg);
}
.project-partners__card-front{
  cursor:pointer;
}
.project-partners__wall-preview a.project-partners__card-front{
  text-decoration:none;
}

@media(prefers-reduced-motion:reduce){
  .project-partners__flip{
    transition:none;
  }
  .project-partners__flip:hover{
    transform:none;
  }
}

/* v0.7.244 — Block 5 editorial body typography.
   Keep all content and composition intact; narrow only the long-form copy
   for a calmer editorial measure and tighter paragraph rhythm. */
@media(min-width:901px){
  .project-local-impact__copy{
    width:min(100%,660px);
    max-width:660px;
    font-size:20px;
    line-height:1.43;
  }
  .project-local-impact__copy p{
    margin:0;
  }
  .project-local-impact__copy p+p{
    margin-top:22px;
  }
}

/* v0.7.245 — Block 5 vertical rebalance.
   Same content and same image size: redistribute the existing 96px desktop
   section padding upward, tighten the headline, and preserve more breathing
   room below the final copy. */
@media(min-width:901px){
  .project-local-impact{
    padding-top:28px;
    padding-bottom:68px;
  }

  .project-local-impact__spotlight h2{
    max-width:760px;
    margin:0 0 clamp(24px,3.2vh,38px);
    font-size:clamp(64px,5.45vw,92px);
    line-height:.94;
    letter-spacing:-.055em;
  }

  /* Keep the left image area's total vertical margin unchanged (56px),
     but bias it upward: same available image box, higher visual position. */
  .project-local-impact__image{
    margin:12px 0 44px;
  }

  .project-local-impact__copy{
    margin-top:24px;
  }

  .project-local-impact__link{
    margin-top:clamp(24px,3.5vh,38px);
  }
}

@media(min-width:901px) and (max-height:800px){
  .project-local-impact{
    padding-top:22px;
    padding-bottom:74px;
  }

  .project-local-impact__spotlight h2{
    font-size:clamp(58px,5vw,82px);
    margin-bottom:22px;
  }

  .project-local-impact__partner{
    padding-top:15px;
    padding-bottom:17px;
  }

  .project-local-impact__copy{
    margin-top:20px;
  }

  .project-local-impact__image{
    margin:8px 0 48px;
  }
}

/* v0.7.246 — Block 5 horizontal blur-curtain reveal.
   Two blurred overlays meet at the vertical centre and move left/right
   in direct response to scroll progress. The underlying content stays still. */
.project-local-impact{
  --si-curtain-progress:0;
  position:relative;
  isolation:isolate;
}
.project-local-impact>.container{
  position:relative;
  z-index:1;
}
.project-local-impact::before,
.project-local-impact::after{
  content:"";
  position:absolute;
  z-index:3;
  top:0;
  bottom:0;
  width:50.15%;
  pointer-events:none;
  background:rgba(255,90,31,.26);
  -webkit-backdrop-filter:blur(24px) saturate(.92);
  backdrop-filter:blur(24px) saturate(.92);
  will-change:transform;
}
.project-local-impact::before{
  left:0;
  transform:translate3d(calc(var(--si-curtain-progress) * -100%),0,0);
  border-right:1px solid rgba(245,245,241,.14);
}
.project-local-impact::after{
  right:0;
  transform:translate3d(calc(var(--si-curtain-progress) * 100%),0,0);
  border-left:1px solid rgba(245,245,241,.14);
}

@media(prefers-reduced-motion:reduce){
  .project-local-impact{
    --si-curtain-progress:1 !important;
  }
}

/* v0.7.248 — Evolvo footer: stronger final act, four-column information
   architecture and a full-width closing CTA. Existing black/off-white
   identity is preserved; orange appears only as interaction accent. */
.site-footer{
  padding:0 0 28px;
  background:var(--black);
  color:var(--white);
}
.site-footer__cta-wrap{
  padding-top:54px;
}
.site-footer__cta{
  min-height:170px;
  padding:30px 0 34px;
  border-top:1px solid #343431;
  border-bottom:1px solid #343431;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:48px;
  color:var(--white);
  text-decoration:none;
}
.site-footer__cta-copy{
  display:grid;
  gap:15px;
}
.site-footer__cta-copy small,
.site-footer__column-label,
.site-footer__foundation-prefix{
  font-size:11px;
  line-height:1.2;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:750;
  color:#8e8e89;
}
.site-footer__cta-copy strong{
  display:block;
  max-width:980px;
  font-size:clamp(46px,5.4vw,82px);
  line-height:.94;
  letter-spacing:-.055em;
}
.site-footer__cta-action{
  flex:0 0 auto;
  padding-bottom:7px;
  display:flex;
  align-items:center;
  gap:16px;
  border-bottom:1px solid currentColor;
  font-size:15px;
  font-weight:700;
  white-space:nowrap;
}
.site-footer__cta-action i{
  font-style:normal;
  font-size:24px;
  line-height:1;
  transition:transform .28s cubic-bezier(.22,1,.36,1);
}
.site-footer__cta:hover .site-footer__cta-action i,
.site-footer__cta:focus-visible .site-footer__cta-action i{
  transform:translateX(7px);
}
.site-footer__grid{
  padding-top:72px;
  display:grid;
  grid-template-columns:minmax(360px,2.25fr) repeat(3,minmax(130px,.72fr));
  gap:clamp(34px,4.2vw,78px);
  align-items:start;
}
.site-footer__identity{
  min-width:0;
}
.site-footer__brand{
  font-size:clamp(72px,9.2vw,138px);
  font-weight:850;
  line-height:.78;
  letter-spacing:-.075em;
}
.site-footer__tagline{
  max-width:430px;
  margin:34px 0 0;
  color:#b9b9b4;
  font-size:17px;
  line-height:1.42;
}
.site-footer__column-label{
  margin:3px 0 24px;
}
.site-footer__menu{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:13px;
}
.site-footer__menu a,
.site-footer__contact a{
  width:max-content;
  max-width:100%;
  color:var(--white);
  text-decoration:none;
  font-size:15px;
  line-height:1.3;
  transition:color .2s ease,transform .2s ease;
}
.site-footer__menu a:hover,
.site-footer__menu a:focus-visible,
.site-footer__contact a:hover,
.site-footer__contact a:focus-visible{
  color:var(--accent);
}
.site-footer__contact{
  display:grid;
  gap:13px;
}
.site-footer__contact a{
  display:flex;
  gap:8px;
  align-items:baseline;
  overflow-wrap:anywhere;
}
.site-footer__contact a span{
  transition:transform .2s ease;
}
.site-footer__contact a:hover span,
.site-footer__contact a:focus-visible span{
  transform:translate(2px,-2px);
}
.site-footer__foundation-row{
  margin-top:70px;
  padding-top:22px;
  border-top:1px solid #2c2c2c;
  display:flex;
  align-items:baseline;
  gap:14px;
}
.site-footer__foundation-row strong{
  font-size:13px;
  line-height:1.3;
  font-weight:650;
  color:#b9b9b4;
}
.site-footer__bottom{
  margin-top:22px;
  padding-top:22px;
  border-top:1px solid #202020;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  color:#777772;
  font-size:12px;
}
.site-footer__legal{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:22px;
}
.site-footer__legal a{
  color:#8e8e89;
  text-decoration:none;
}
.site-footer__legal a:hover,
.site-footer__legal a:focus-visible{
  color:var(--white);
}

@media(max-width:1100px) and (min-width:901px){
  .site-footer__grid{
    grid-template-columns:minmax(320px,1.7fr) repeat(3,minmax(120px,.65fr));
    gap:30px;
  }
  .site-footer__brand{
    font-size:clamp(68px,8vw,105px);
  }
}

@media(max-width:900px){
  .site-footer{
    padding-bottom:24px;
  }
  .site-footer__cta-wrap{
    padding-top:36px;
  }
  .site-footer__cta{
    min-height:0;
    padding:24px 0 28px;
    display:grid;
    gap:28px;
  }
  .site-footer__cta-copy strong{
    font-size:clamp(38px,10.5vw,58px);
  }
  .site-footer__cta-action{
    justify-self:start;
  }
  .site-footer__grid{
    padding-top:52px;
    grid-template-columns:1fr 1fr;
    gap:48px 28px;
  }
  .site-footer__identity{
    grid-column:1/-1;
  }
  .site-footer__brand{
    font-size:clamp(66px,20vw,112px);
  }
  .site-footer__tagline{
    margin-top:26px;
    font-size:16px;
  }
  .site-footer__foundation-row{
    margin-top:52px;
    align-items:flex-start;
    flex-direction:column;
    gap:7px;
  }
  .site-footer__bottom{
    align-items:flex-start;
    flex-direction:column;
    gap:14px;
  }
  .site-footer__legal{
    justify-content:flex-start;
    gap:14px 20px;
  }
}

@media(max-width:560px){
  .site-footer__grid{
    grid-template-columns:1fr;
    gap:38px;
  }
  .site-footer__identity{
    grid-column:auto;
  }
}

/* v0.7.249 — Compact footer pass.
   Preserve the richer v0.7.248 architecture, but return the desktop footprint
   to roughly the original footer scale. */
@media(min-width:901px){
  .site-footer__cta-wrap{
    padding-top:24px;
  }
  .site-footer__cta{
    min-height:102px;
    padding:18px 0 20px;
    gap:36px;
  }
  .site-footer__cta-copy{
    gap:9px;
  }
  .site-footer__cta-copy strong{
    max-width:850px;
    font-size:clamp(38px,3.55vw,54px);
    line-height:.96;
  }
  .site-footer__cta-action{
    padding-bottom:5px;
    font-size:14px;
  }

  .site-footer__grid{
    padding-top:44px;
    grid-template-columns:minmax(330px,2.15fr) repeat(3,minmax(125px,.72fr));
    gap:clamp(28px,3.5vw,58px);
  }
  .site-footer__brand{
    font-size:clamp(64px,8vw,126px);
    line-height:.78;
  }
  .site-footer__tagline{
    margin-top:24px;
    font-size:16px;
  }
  .site-footer__column-label{
    margin-bottom:18px;
  }
  .site-footer__menu,
  .site-footer__contact{
    gap:10px;
  }

  .site-footer__foundation-row{
    margin-top:42px;
    padding-top:17px;
  }
  .site-footer__bottom{
    margin-top:16px;
    padding-top:16px;
  }
}

/* v0.7.250 — Footer contrast hierarchy on orange backgrounds.
   Layout and dimensions stay untouched. White is reserved for the closing CTA;
   supporting/footer information uses Evolvo black at deliberate opacity levels. */
.site-footer__column-label,
.site-footer__foundation-prefix{
  color:rgba(10,10,10,.62);
}
.site-footer__tagline{
  color:rgba(10,10,10,.78);
}
.site-footer__menu a,
.site-footer__contact a{
  color:#0A0A0A;
}
.site-footer__foundation-row strong{
  color:rgba(10,10,10,.68);
}
.site-footer__bottom{
  color:rgba(10,10,10,.62);
}
.site-footer__legal a{
  color:rgba(10,10,10,.62);
}
.site-footer__legal a:hover,
.site-footer__legal a:focus-visible{
  color:#0A0A0A;
}
.site-footer__cta-copy small{
  color:rgba(245,245,241,.68);
}
.site-footer__cta-copy strong,
.site-footer__cta-action{
  color:#F5F5F1;
}

/* v0.7.254 — Corrected horizontal footer watermark.
   Positioned inside the existing left identity area. */
.site-footer{
  position:relative;
}
.site-footer__identity{
  position:relative;
}
.site-footer__watermark--horizontal{
  position:absolute;
  z-index:0;
  left:0;
  top:118px;
  display:block;
  margin:0;
  padding:0;
  color:rgba(10,10,10,.16);
  font-size:clamp(66px,5.7vw,84px);
  font-weight:850;
  line-height:.78;
  letter-spacing:-.07em;
  white-space:nowrap;
  pointer-events:none;
  user-select:none;
}
.site-footer__identity>.site-footer__brand,
.site-footer__identity>.site-footer__tagline{
  position:relative;
  z-index:1;
}
.site-footer__foundation-row strong,
.site-footer__bottom>span{
  position:relative;
  z-index:2;
}
@media(max-width:900px){
  .site-footer__watermark--horizontal{
    display:none;
  }
}

/* v0.7.255 — Footer rebuilt to match the approved visual.
   No absolute-positioned watermark: the wordmark is now a real grid item,
   with separate main, foundation and legal rows in normal document flow. */
.site-footer{
  position:relative;
  overflow:visible;
  padding:0 0 24px;
  background:#FF5A1F;
  color:#0A0A0A;
}

.site-footer__main{
  min-height:280px;
  padding-top:58px;
  padding-bottom:42px;
  display:grid;
  grid-template-columns:minmax(0,2.35fr) repeat(3,minmax(150px,.72fr));
  gap:clamp(34px,4vw,74px);
  align-items:center;
}

.site-footer__wordmark{
  align-self:center;
  justify-self:start;
  margin:0;
  color:rgba(10,10,10,.16);
  font-size:clamp(76px,6.7vw,102px);
  font-weight:850;
  line-height:.78;
  letter-spacing:-.075em;
  white-space:nowrap;
  pointer-events:none;
  user-select:none;
}

.site-footer__column{
  align-self:center;
}

.site-footer__column-label{
  margin:0 0 24px;
  color:rgba(10,10,10,.68);
  font-size:11px;
  line-height:1.2;
  letter-spacing:.15em;
  text-transform:uppercase;
  font-weight:800;
}

.site-footer__menu,
.site-footer__contact{
  margin:0;
  padding:0;
  display:grid;
  gap:16px;
}

.site-footer__menu{
  list-style:none;
}

.site-footer__menu a,
.site-footer__contact a{
  width:max-content;
  max-width:100%;
  color:#0A0A0A;
  text-decoration:none;
  font-size:17px;
  line-height:1.3;
  font-weight:450;
}

.site-footer__contact a{
  display:flex;
  align-items:baseline;
  gap:8px;
}

.site-footer__menu a:hover,
.site-footer__menu a:focus-visible,
.site-footer__contact a:hover,
.site-footer__contact a:focus-visible{
  color:#0A0A0A;
  opacity:.68;
}

.site-footer__foundation-row{
  min-height:76px;
  margin-top:0;
  padding-top:0;
  border-top:1px solid rgba(10,10,10,.62);
  display:flex;
  align-items:center;
  gap:24px;
}

.site-footer__foundation-prefix{
  color:rgba(10,10,10,.72);
  font-size:11px;
  line-height:1.2;
  letter-spacing:.15em;
  text-transform:uppercase;
  font-weight:800;
}

.site-footer__foundation-row strong{
  color:#0A0A0A;
  font-size:14px;
  line-height:1.3;
  font-weight:650;
}

.site-footer__bottom{
  min-height:68px;
  margin-top:0;
  padding-top:0;
  border-top:1px solid rgba(10,10,10,.22);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  color:rgba(10,10,10,.78);
  font-size:12px;
}

.site-footer__legal{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:22px;
  color:rgba(10,10,10,.68);
}

.site-footer__legal a{
  color:rgba(10,10,10,.68);
  text-decoration:none;
}

.site-footer__legal a:hover,
.site-footer__legal a:focus-visible{
  color:#0A0A0A;
}

/* Hide the previous large CTA and legacy identity block in the footer itself:
   the approved visual is the compact orange footer shown in the reference. */
.site-footer__cta-wrap,
.site-footer__grid,
.site-footer__identity,
.site-footer__brand,
.site-footer__tagline,
.site-footer__watermark,
.site-footer__watermark--horizontal{
  display:none !important;
}

@media(max-width:1100px) and (min-width:901px){
  .site-footer__main{
    grid-template-columns:minmax(260px,1.7fr) repeat(3,minmax(130px,.7fr));
    gap:28px;
  }
  .site-footer__wordmark{
    font-size:clamp(68px,7vw,88px);
  }
}

@media(max-width:900px){
  .site-footer{
    padding-bottom:20px;
  }
  .site-footer__main{
    min-height:0;
    padding-top:42px;
    padding-bottom:36px;
    grid-template-columns:1fr 1fr;
    gap:38px 28px;
    align-items:start;
  }
  .site-footer__wordmark{
    grid-column:1/-1;
    font-size:clamp(58px,16vw,88px);
  }
  .site-footer__column{
    align-self:start;
  }
  .site-footer__foundation-row{
    min-height:72px;
    align-items:flex-start;
    justify-content:center;
    flex-direction:column;
    gap:7px;
    padding:16px 0;
  }
  .site-footer__bottom{
    min-height:0;
    align-items:flex-start;
    flex-direction:column;
    padding:16px 0 0;
    gap:14px;
  }
  .site-footer__legal{
    justify-content:flex-start;
    gap:14px 20px;
  }
}

@media(max-width:560px){
  .site-footer__main{
    grid-template-columns:1fr;
  }
  .site-footer__wordmark{
    grid-column:auto;
  }
}

/* v0.7.256 — Footer column alignment only.
   Navigation, Impact and Contact now share the exact same top alignment. */
@media(min-width:901px){
  .site-footer__main{
    align-items:start;
  }
  .site-footer__main>.site-footer__column{
    align-self:start;
  }
}

/* v0.7.257 — Contact page footer theme only.
   Geometry, spacing, alignment and responsive behavior are unchanged. */
body.evolvo-contact-page .site-footer{
  background:#0A0A0A;
  color:#F5F5F1;
}

body.evolvo-contact-page .site-footer__wordmark{
  color:rgba(245,245,241,.16);
}

body.evolvo-contact-page .site-footer__column-label,
body.evolvo-contact-page .site-footer__foundation-prefix{
  color:rgba(245,245,241,.62);
}

body.evolvo-contact-page .site-footer__menu a,
body.evolvo-contact-page .site-footer__contact a{
  color:#F5F5F1;
}

body.evolvo-contact-page .site-footer__menu a:hover,
body.evolvo-contact-page .site-footer__menu a:focus-visible,
body.evolvo-contact-page .site-footer__contact a:hover,
body.evolvo-contact-page .site-footer__contact a:focus-visible{
  color:#F5F5F1;
  opacity:.72;
}

body.evolvo-contact-page .site-footer__foundation-row{
  border-top-color:rgba(245,245,241,.18);
}

body.evolvo-contact-page .site-footer__foundation-row strong{
  color:rgba(245,245,241,.86);
}

body.evolvo-contact-page .site-footer__bottom{
  border-top-color:rgba(245,245,241,.12);
  color:rgba(245,245,241,.58);
}

body.evolvo-contact-page .site-footer__legal{
  color:rgba(245,245,241,.58);
}

body.evolvo-contact-page .site-footer__legal a{
  color:rgba(245,245,241,.58);
}

body.evolvo-contact-page .site-footer__legal a:hover,
body.evolvo-contact-page .site-footer__legal a:focus-visible{
  color:#F5F5F1;
}

/* v0.7.259 — Homepage hero: mobile-only composition pass.
   Desktop (901px+) is intentionally untouched. */
@media (max-width: 900px) {
  .hero--home {
    min-height: auto;
    padding: 34px 0 46px;
    align-items: flex-start;
  }

  .hero--home .hero__layout,
  .hero--home.hero--with-image .hero__layout {
    display: block;
  }

  .hero--home .hero__content {
    width: 100%;
    max-width: 100%;
  }

  .hero--home .eyebrow {
    margin-bottom: 14px;
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: .15em;
  }

  .hero--home h1,
  .hero--home.hero--with-image h1 {
    max-width: 100%;
    margin: .08em 0 .30em;
    font-size: clamp(46px, 13.2vw, 58px);
    line-height: .94;
    letter-spacing: -.055em;
  }

  .hero--home .hero-title-line {
    display: block;
  }

  .hero--home .hero__lead,
  .hero--home.hero--with-image .hero__lead {
    width: min(100%, 34rem);
    max-width: 92%;
    font-size: 18px;
    line-height: 1.43;
  }

  .hero--home .hero__actions {
    gap: 14px 18px;
    margin-top: 24px;
  }

  .hero--home .hero__actions .button {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .hero--home .hero__media {
    min-height: 0;
    aspect-ratio: 16 / 10;
    margin-top: 30px;
    border-radius: 20px;
  }

  .hero--home .hero__media img {
    min-height: 0;
    object-position: 62% center;
  }

  /* Same motion language, but shorter travel/timing on a small screen. */
  .hero--home .eyebrow {
    animation-duration: 1.15s;
  }

  .hero--home .hero__title-line {
    animation-duration: 1.25s;
  }

  .hero--home .hero__lead {
    animation-duration: .72s;
    animation-delay: 1.15s;
  }

  .hero--home .hero__actions > * {
    animation-duration: .52s;
    animation-delay: 1.72s;
  }

  .hero--home .hero__actions > *:nth-child(2) {
    animation-delay: 1.82s;
  }

  .hero--home .hero__media {
    animation-duration: 1.20s;
    animation-delay: .55s;
  }
}

@media (max-width: 430px) {
  .hero--home {
    padding-top: 28px;
    padding-bottom: 40px;
  }

  .hero--home h1,
  .hero--home.hero--with-image h1 {
    font-size: clamp(44px, 13.4vw, 54px);
  }

  .hero--home .hero__lead,
  .hero--home.hero--with-image .hero__lead {
    max-width: 100%;
    font-size: 17px;
  }

  .hero--home .hero__media {
    margin-top: 26px;
    border-radius: 18px;
  }
}

/* v0.7.260 — Homepage hero CTA scale: mobile only.
   Gives the CTA group more visual weight against the hero image.
   Hero image dimensions/crop and desktop (901px+) remain untouched. */
@media (max-width: 900px) {
  .hero--home .hero__actions .button {
    min-height: 56px;
    padding: 0 28px;
    font-size: 19px;
    line-height: 1.15;
  }

  .hero--home .hero__actions .text-link {
    font-size: 19px;
    line-height: 1.25;
    padding-bottom: 4px;
  }
}

@media (max-width: 430px) {
  .hero--home .hero__actions .button {
    min-height: 56px;
    padding-left: 27px;
    padding-right: 27px;
  }

  .hero--home .hero__actions .text-link {
    font-size: 19px;
  }
}

/* v0.7.261 — Homepage hero primary CTA radius.
   Applies uniformly on desktop and mobile; all other hero geometry remains unchanged. */
.hero--home .hero__actions .button--accent {
  border-radius: 18px;
}

/* v0.7.262 — Homepage "Ons doel": mobile-only editorial composition.
   Desktop 901px+ remains frozen. Existing graph/handwriting concept is retained. */
@media (max-width: 900px) {
  .home #ons-doel,
  .home #ons-doel.home-position--2 {
    padding-top: 52px;
    padding-bottom: 68px;
  }

  .home #ons-doel .content-block {
    max-width: 100%;
  }

  .home #ons-doel .eyebrow {
    margin-bottom: 14px;
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: .15em;
  }

  .home #ons-doel h2 {
    max-width: 100%;
    margin: .08em 0 .30em;
    font-size: clamp(48px, 13vw, 56px);
    line-height: .94;
    letter-spacing: -.055em;
  }

  .home #ons-doel .section-lead {
    width: min(100%, 35rem);
    max-width: 94%;
    margin: 0;
    font-size: 18px;
    line-height: 1.45;
  }

  .home #ons-doel .goal-growth-stage {
    width: 100%;
    margin-top: 42px;
    min-height: clamp(142px, 31vw, 178px);
  }

  .home #ons-doel .goal-growth-stage .goal-growth {
    width: 67%;
    margin: 0;
  }

  .home #ons-doel .goal-growth-handwrite {
    width: clamp(168px, 39%, 228px);
    right: -1%;
    top: 50%;
  }
}

@media (max-width: 560px) {
  .home #ons-doel,
  .home #ons-doel.home-position--2 {
    padding-top: 46px;
    padding-bottom: 60px;
  }

  .home #ons-doel h2 {
    font-size: clamp(46px, 13.2vw, 52px);
  }

  .home #ons-doel .section-lead {
    max-width: 100%;
    font-size: 17px;
  }

  .home #ons-doel .goal-growth-stage {
    margin-top: 36px;
    min-height: 132px;
  }

  .home #ons-doel .goal-growth-stage .goal-growth {
    width: 63%;
  }

  .home #ons-doel .goal-growth-handwrite {
    width: 42%;
    right: -2%;
    top: 51%;
  }
}

/* v0.7.263 — Homepage "Ons doel": content-driven mobile height.
   Section follows its content; only a compact closing breathing space remains.
   Desktop 901px+ is untouched. */
@media (max-width: 900px) {
  .home #ons-doel,
  .home #ons-doel.home-position--2 {
    height: auto;
    min-height: 0;
    padding-bottom: 30px;
  }

  .home #ons-doel .goal-growth-stage {
    height: auto;
    min-height: clamp(118px, 27vw, 148px);
    margin-bottom: 0;
  }
}

@media (max-width: 560px) {
  .home #ons-doel,
  .home #ons-doel.home-position--2 {
    padding-bottom: 26px;
  }

  .home #ons-doel .goal-growth-stage {
    min-height: 118px;
    margin-bottom: 0;
  }
}

/* v0.7.264 — Homepage workflow: mobile vertical journey.
   Desktop 901px+ remains frozen. Existing card illustrations/content stay intact,
   but the mobile composition becomes a connected editorial sequence. */
@media (max-width: 900px) {
  .home .offer-section {
    min-height: 0;
    height: auto;
    display: block;
    padding-top: 48px;
    padding-bottom: 34px;
    align-items: initial;
  }

  .home .offer-section__content {
    display: block;
  }

  .home .offer-grid {
    position: relative;
    width: 100%;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }

  /* Continuous journey line behind the numbered steps. */
  .home .offer-grid::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 17px;
    top: 18px;
    bottom: 18px;
    width: 1px;
    background: rgba(10,10,10,.22);
    pointer-events: none;
  }

  .home .offer-card {
    position: relative;
    z-index: 1;
    min-height: 0;
    padding: 0 0 42px 48px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    overflow: visible;
  }

  .home .offer-card:last-child {
    padding-bottom: 0;
  }

  .home .offer-card__top {
    position: relative;
    min-height: 34px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
  }

  .home .offer-card__number {
    position: absolute;
    left: -48px;
    top: 0;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--black);
    color: var(--off-white);
    font-size: 10px;
    line-height: 1;
    letter-spacing: .08em;
  }

  .home .offer-card__subtitle {
    max-width: 70%;
    margin-left: auto;
    text-align: right;
    font-size: 11px;
    line-height: 1.3;
  }

  .home .offer-card__visual {
    width: min(100%, 310px);
    height: 112px;
    margin: 8px 0 0;
    justify-content: flex-start;
  }

  .home .offer-card__body {
    padding-top: 14px;
  }

  .home .offer-card__body h3 {
    margin-bottom: 10px;
    font-size: clamp(30px, 8.6vw, 38px);
    line-height: .98;
    letter-spacing: -.045em;
  }

  .home .offer-card__body p {
    max-width: 34rem;
    margin: 0;
    font-size: 17px;
    line-height: 1.45;
  }

  .home .offer-card__link {
    margin-top: 18px;
  }

  /* Keep the intro moment, but make it proportionate to a phone viewport. */
  .home .offer-intro-overlay__text {
    max-width: 88vw;
    font-size: clamp(46px, 13vw, 64px);
    line-height: .90;
  }

  .home .offer-section.offer-sequence--revealing .offer-card {
    animation-duration: .46s;
  }
}

@media (max-width: 560px) {
  .home .offer-section {
    padding-top: 42px;
    padding-bottom: 30px;
  }

  .home .offer-card {
    padding-left: 44px;
    padding-bottom: 38px;
  }

  .home .offer-card__number {
    left: -44px;
  }

  .home .offer-grid::before {
    left: 17px;
  }

  .home .offer-card__visual {
    height: 102px;
  }

  .home .offer-card__body h3 {
    font-size: clamp(29px, 8.8vw, 35px);
  }

  .home .offer-card__body p {
    font-size: 16.5px;
  }
}

/* v0.7.265 — Homepage workflow mobile: scroll-driven postcard stack.
   Desktop 901px+ remains frozen. The existing postcard design is restored on mobile;
   only layout/scroll behaviour changes. */
@media (max-width: 900px) {
  .home .offer-section {
    --offer-mobile-progress: 0;
    --offer-mobile-intro: 0;
    --offer-mobile-card-1: 0;
    --offer-mobile-card-2: 0;
    --offer-mobile-card-3: 0;
    min-height: 360svh;
    height: auto;
    padding: 0;
    display: block;
    overflow: visible;
    position: relative;
  }

  .home .offer-section__content {
    position: sticky;
    top: 82px;
    height: calc(100svh - 82px);
    min-height: 520px;
    padding-block: clamp(22px, 5vh, 42px);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    overflow: hidden;
  }

  .home .offer-grid {
    position: relative;
    width: min(100%, 520px);
    height: min(68svh, 560px);
    min-height: 420px;
    margin: 0 auto;
    display: block;
  }

  .home .offer-grid::before {
    content: none;
  }

  .home .offer-card {
    --mobile-card-p: 0;
    position: absolute;
    inset: 0;
    z-index: calc(10 - var(--offer-index));
    min-height: 0;
    width: 100%;
    height: 100%;
    padding: clamp(24px, 6vw, 32px);
    background: var(--off-white);
    color: var(--black);
    border: 1px solid rgba(10,10,10,.10);
    border-radius: 28px;
    box-shadow: 0 18px 50px rgba(10,10,10,.10);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    visibility: visible;
    opacity: calc(1 - var(--mobile-card-p));
    transform:
      translateY(calc((var(--offer-index) * 8px) - (var(--mobile-card-p) * 92px)))
      rotate(calc((var(--mobile-card-p) * -2deg) + (var(--offer-index) * .35deg)))
      scale(calc(1 - (var(--offer-index) * .012) + (var(--mobile-card-p) * .012)));
    transform-origin: 50% 18%;
    transition: none;
    will-change: transform, opacity;
    pointer-events: none;
  }

  .home .offer-card:nth-child(1) { --mobile-card-p: var(--offer-mobile-card-1); }
  .home .offer-card:nth-child(2) { --mobile-card-p: var(--offer-mobile-card-2); }
  .home .offer-card:nth-child(3) { --mobile-card-p: var(--offer-mobile-card-3); }
  .home .offer-card:nth-child(4) { --mobile-card-p: 0; }

  .home .offer-card__top {
    position: static;
    min-height: 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
  }

  .home .offer-card__number {
    position: static;
    width: auto;
    height: auto;
    display: inline;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-size: 12px;
    line-height: 1;
    letter-spacing: .12em;
  }

  .home .offer-card__subtitle {
    max-width: 145px;
    margin-left: 0;
    text-align: right;
    font-size: 12px;
    line-height: 1.25;
  }

  .home .offer-card__visual {
    width: 100%;
    height: clamp(112px, 27vw, 150px);
    margin-top: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .home .offer-card__body {
    padding-top: 20px;
  }

  .home .offer-card__body h3 {
    margin-bottom: 10px;
    font-size: clamp(34px, 10vw, 46px);
    line-height: .98;
  }

  .home .offer-card__body p {
    max-width: none;
    font-size: 16px;
    line-height: 1.45;
  }

  .home .offer-card__link {
    margin-top: 18px;
    pointer-events: auto;
  }

  /* Intro remains visually identical; its existing flip is now driven by scroll. */
  .home .offer-intro-overlay {
    position: sticky;
    top: 82px;
    height: calc(100svh - 82px);
    inset-inline: 0;
    z-index: 20;
    display: grid;
    place-items: center;
    perspective: 1000px;
    opacity: calc(1 - var(--offer-mobile-intro));
    visibility: visible;
    transform: none;
    pointer-events: none;
  }

  .home .offer-intro-overlay__text {
    max-width: min(86vw, 1100px);
    font-size: clamp(48px, 7.2vw, 112px);
    line-height: .88;
    transform:
      perspective(1000px)
      rotateX(calc(var(--offer-mobile-intro) * -100deg))
      translateY(calc(var(--offer-mobile-intro) * -8px));
    opacity: calc(1 - var(--offer-mobile-intro));
    transform-origin: 50% 50%;
    will-change: transform, opacity;
  }

  /* Disable the desktop timer choreography on mobile. */
  .home .offer-section.offer-sequence--revealing .offer-intro-overlay,
  .home .offer-section.offer-sequence--revealing .offer-intro-overlay__text,
  .home .offer-section.offer-sequence--revealing .offer-card,
  .home .offer-section.offer-sequence--done .offer-card {
    animation: none;
  }

  .home .offer-section.offer-sequence--done .offer-intro-overlay {
    display: grid;
  }

  .home .offer-section[data-mobile-stack-ready="1"] .offer-card {
    visibility: visible;
  }
}

@media (max-width: 560px) {
  .home .offer-section {
    min-height: 340svh;
  }

  .home .offer-section__content {
    top: 74px;
    height: calc(100svh - 74px);
    min-height: 480px;
    padding-block: 20px 28px;
  }

  .home .offer-grid {
    width: 100%;
    height: min(70svh, 535px);
    min-height: 410px;
  }

  .home .offer-card {
    padding: 24px;
    border-radius: 24px;
  }

  .home .offer-card__visual {
    height: clamp(104px, 29vw, 132px);
  }

  .home .offer-card__body {
    padding-top: 16px;
  }

  .home .offer-card__body h3 {
    font-size: clamp(32px, 9.5vw, 40px);
  }

  .home .offer-intro-overlay {
    top: 74px;
    height: calc(100svh - 74px);
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .home .offer-section {
    min-height: auto;
    padding: 42px 0 30px;
  }

  .home .offer-section__content {
    position: relative;
    top: auto;
    height: auto;
    min-height: 0;
    padding: 0;
    overflow: visible;
  }

  .home .offer-intro-overlay {
    display: none !important;
  }

  .home .offer-grid {
    height: auto;
    min-height: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .home .offer-card {
    position: relative;
    inset: auto;
    height: auto;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto;
  }
}

/* v0.7.266 — Mobile workflow state fix.
   Explicit previous/current/waiting card states prevent the first postcard
   and the desktop sequence state from masking the remaining stack. */
@media (max-width: 900px) {
  .home .offer-section[data-mobile-stack-ready="1"] .offer-card {
    visibility: visible !important;
    animation: none !important;
    transition: none !important;
  }

  .home .offer-section[data-mobile-stack-ready="1"] .offer-card[data-mobile-card-state="waiting"] {
    z-index: calc(20 - var(--offer-index));
    opacity: 1;
    transform:
      translateY(calc(var(--mobile-stack-depth) * 9px))
      rotate(calc(var(--mobile-stack-depth) * .35deg))
      scale(calc(1 - (var(--mobile-stack-depth) * .014)));
    pointer-events: none;
  }

  .home .offer-section[data-mobile-stack-ready="1"] .offer-card[data-mobile-card-state="active"] {
    z-index: 40;
    opacity: 1;
    transform: translateY(0) rotate(0deg) scale(1);
    pointer-events: auto;
  }

  .home .offer-section[data-mobile-stack-ready="1"] .offer-card[data-mobile-card-state="leaving"] {
    z-index: 50;
    opacity: calc(1 - var(--mobile-exit-progress));
    transform:
      translateY(calc(var(--mobile-exit-progress) * -96px))
      rotate(calc(var(--mobile-exit-progress) * -2deg))
      scale(calc(1 - (var(--mobile-exit-progress) * .018)));
    pointer-events: none;
  }

  .home .offer-section[data-mobile-stack-ready="1"] .offer-card[data-mobile-card-state="gone"] {
    z-index: 0;
    visibility: hidden !important;
    opacity: 0;
    transform: translateY(-96px) rotate(-2deg) scale(.982);
    pointer-events: none;
  }

  /* Desktop sequence classes must never hide or animate mobile cards. */
  .home .offer-section[data-mobile-stack-ready="1"].offer-sequence--revealing .offer-card,
  .home .offer-section[data-mobile-stack-ready="1"].offer-sequence--done .offer-card {
    animation: none !important;
  }
}

/* v0.7.267 — Homepage workflow: hide "Onze drive" cue on mobile only.
   It is removed from layout entirely; desktop 901px+ remains unchanged. */
@media (max-width: 900px) {
  .home .offer-section .offer-drive-script {
    display: none !important;
  }
}

/* v0.7.268 — WhatsApp floating trigger: compact icon-only button on mobile.
   Popup behaviour stays intact; desktop remains unchanged. */
@media (max-width: 900px) {
  .evolvo-wa {
    right: 16px;
    bottom: 18px;
  }

  .evolvo-wa__trigger {
    width: 54px;
    min-width: 54px;
    height: 54px;
    min-height: 54px;
    padding: 0;
    gap: 0;
    border-radius: 50%;
    justify-content: center;
  }

  .evolvo-wa__trigger .evolvo-wa__label {
    display: none;
  }

  .evolvo-wa__trigger .evolvo-wa__icon {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
  }
}

/* v0.7.269 — Mobile workflow postcard geometry.
   The stack now sizes from the actual postcard content instead of a rigid svh box.
   Desktop 901px+ remains untouched. */
@media (max-width: 900px) {
  .home .offer-section {
    --offer-mobile-card-height: 460px;
    --offer-mobile-stack-offset: 12px;
    --offer-mobile-sticky-top: 94px;
  }

  .home .offer-section__content {
    position: sticky;
    top: var(--offer-mobile-sticky-top);
    height: auto;
    min-height: 0;
    padding: 0 0 44px;
    display: block;
    overflow: visible;
  }

  .home .offer-grid {
    position: relative;
    width: min(94%, 520px);
    height: calc(var(--offer-mobile-card-height) + (var(--offer-mobile-stack-offset) * 3));
    min-height: 0;
    margin: 0 auto;
    overflow: visible;
  }

  .home .offer-card {
    inset: 0 auto auto 0;
    width: 100%;
    height: var(--offer-mobile-card-height);
    min-height: 0;
    max-height: none;
    box-sizing: border-box;
    overflow: hidden;
  }

  .home .offer-section[data-mobile-stack-ready="1"] .offer-card[data-mobile-card-state="waiting"] {
    transform:
      translateY(calc(var(--mobile-stack-depth) * var(--offer-mobile-stack-offset)))
      rotate(calc(var(--mobile-stack-depth) * .28deg))
      scale(calc(1 - (var(--mobile-stack-depth) * .014)));
  }

  .home .offer-card__visual {
    height: clamp(108px, 26vw, 146px);
    flex: 0 0 auto;
  }

  .home .offer-card__body {
    padding-top: 18px;
  }
}

@media (max-width: 560px) {
  .home .offer-section {
    --offer-mobile-stack-offset: 11px;
  }

  .home .offer-grid {
    width: min(94%, 460px);
  }

  .home .offer-card {
    padding: 22px;
  }

  .home .offer-card__visual {
    height: clamp(98px, 27vw, 126px);
  }

  .home .offer-card__body {
    padding-top: 14px;
  }

  .home .offer-card__body h3 {
    font-size: clamp(31px, 9vw, 38px);
  }

  .home .offer-card__body p {
    font-size: 16px;
    line-height: 1.42;
  }
}

/* On short phone viewports, compact the illustration before touching body copy. */
@media (max-width: 900px) and (max-height: 700px) {
  .home .offer-card__visual {
    height: 92px;
    margin-top: 8px;
  }

  .home .offer-card__body {
    padding-top: 10px;
  }

  .home .offer-card__body h3 {
    margin-bottom: 8px;
  }
}

/* v0.7.270 — Mobile workflow: viewport-first postcard composition.
   One complete postcard sits centered below the header with visible breathing
   room. The illustration/whitespace compress before the body copy. */
@media (max-width: 900px) {
  .home .offer-section {
    --offer-mobile-card-height: 500px;
    --offer-mobile-sticky-top: 104px;
    --offer-mobile-visual-height: 96px;
    --offer-mobile-stack-offset: 10px;
    min-height: 360svh;
  }

  .home .offer-section__content {
    position: sticky;
    top: var(--offer-mobile-sticky-top);
    height: auto;
    min-height: 0;
    padding: 0;
    overflow: visible;
  }

  .home .offer-grid {
    width: min(calc(100% - 28px), 500px);
    height: calc(var(--offer-mobile-card-height) + 30px);
    min-height: 0;
    margin-inline: auto;
    overflow: visible;
  }

  .home .offer-card {
    width: 100%;
    height: var(--offer-mobile-card-height);
    min-height: 0;
    max-height: none;
    padding: 20px 22px 22px;
    border-radius: 26px;
    box-sizing: border-box;
    overflow: hidden;
    justify-content: flex-start;
  }

  .home .offer-card__top {
    flex: 0 0 auto;
    margin: 0;
  }

  .home .offer-card__visual {
    flex: 0 0 var(--offer-mobile-visual-height);
    width: 100%;
    height: var(--offer-mobile-visual-height);
    min-height: 0;
    margin: 8px 0 0;
  }

  .home .offer-card__visual svg {
    max-height: 100%;
  }

  .home .offer-card__body {
    flex: 0 1 auto;
    padding-top: 12px;
    margin-top: auto;
  }

  .home .offer-card__body h3 {
    margin: 0 0 8px;
    font-size: clamp(30px, 8.5vw, 38px);
    line-height: .98;
  }

  .home .offer-card__body p {
    margin: 0;
    font-size: clamp(14.5px, 4vw, 16px);
    line-height: 1.38;
  }

  .home .offer-card__link {
    margin-top: 12px;
    flex: 0 0 auto;
  }

  .home .offer-section[data-mobile-stack-ready="1"] .offer-card[data-mobile-card-state="waiting"] {
    transform:
      translateY(calc(var(--mobile-stack-depth) * var(--offer-mobile-stack-offset)))
      rotate(calc(var(--mobile-stack-depth) * .22deg))
      scale(calc(1 - (var(--mobile-stack-depth) * .012)));
  }

  .home .offer-section[data-mobile-stack-ready="1"] .offer-card[data-mobile-card-state="leaving"] {
    opacity: calc(1 - var(--mobile-exit-progress));
    transform:
      translateY(calc(var(--mobile-exit-progress) * -78px))
      rotate(calc(var(--mobile-exit-progress) * -1.6deg))
      scale(calc(1 - (var(--mobile-exit-progress) * .014)));
  }

  /* The intro itself remains visually the same, but its motion is controlled
     exclusively by --offer-mobile-intro from scroll progress. */
  .home .offer-intro-overlay,
  .home .offer-intro-overlay__text,
  .home .offer-card,
  .home .offer-card * {
    animation-play-state: paused;
  }
}

@media (max-width: 560px) {
  .home .offer-grid {
    width: calc(100% - 24px);
  }

  .home .offer-card {
    padding: 18px 20px 20px;
    border-radius: 24px;
  }

  .home .offer-card__subtitle {
    max-width: 132px;
    font-size: 11px;
  }

  .home .offer-card__body h3 {
    font-size: clamp(29px, 8.8vw, 36px);
  }

  .home .offer-card__body p {
    font-size: clamp(14px, 3.9vw, 15.5px);
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .home .offer-card {
    padding-top: 16px;
    padding-bottom: 18px;
  }

  .home .offer-card__visual {
    margin-top: 4px;
  }

  .home .offer-card__body {
    padding-top: 8px;
  }

  .home .offer-card__body h3 {
    margin-bottom: 6px;
    font-size: clamp(27px, 8vw, 34px);
  }

  .home .offer-card__body p {
    font-size: 14px;
    line-height: 1.32;
  }

  .home .offer-card__link {
    margin-top: 8px;
  }
}

/* v0.7.271 — Mobile workflow: rebalance postcard vertical composition.
   Keep the approved top spacing, pull title/body directly up under the visual,
   and reserve deliberate breathing room below the final content. */
@media (max-width: 900px) {
  .home .offer-card {
    padding-bottom: 30px;
  }

  .home .offer-card__body {
    flex: 0 0 auto;
    margin-top: 18px;
    padding-top: 0;
  }

  .home .offer-card__body h3 {
    margin-top: 0;
  }

  .home .offer-card__link {
    flex: 0 0 auto;
  }
}

@media (max-width: 560px) {
  .home .offer-card {
    padding-bottom: 28px;
  }

  .home .offer-card__body {
    margin-top: 16px;
    padding-top: 0;
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .home .offer-card {
    padding-bottom: 24px;
  }

  .home .offer-card__body {
    margin-top: 12px;
    padding-top: 0;
  }
}

/* v0.7.272 — Mobile workflow: copy first, animation second, orange stage visible.
   The title moves into the former illustration zone; the illustration becomes
   the closing visual beneath the copy. Desktop remains untouched. */
@media (max-width: 900px) {
  .home .offer-section {
    --offer-mobile-stack-offset: 9px;
  }

  .home .offer-grid {
    height: calc(var(--offer-mobile-card-height) + 28px);
  }

  .home .offer-card {
    padding: 18px 22px 18px;
    justify-content: flex-start;
  }

  .home .offer-card__top {
    order: 1;
  }

  .home .offer-card__body {
    order: 2;
    flex: 0 0 auto;
    margin-top: 22px;
    padding-top: 0;
  }

  .home .offer-card__visual {
    order: 3;
    flex: 0 0 var(--offer-mobile-visual-height);
    width: 100%;
    height: var(--offer-mobile-visual-height);
    margin: 18px 0 0;
  }

  .home .offer-card__link {
    order: 4;
    margin-top: 12px;
  }

  .home .offer-card__body h3 {
    margin: 0 0 8px;
  }

  .home .offer-card__body p {
    margin: 0;
  }
}

@media (max-width: 560px) {
  .home .offer-card {
    padding: 17px 20px 16px;
  }

  .home .offer-card__body {
    margin-top: 20px;
  }

  .home .offer-card__visual {
    margin-top: 16px;
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .home .offer-card {
    padding-top: 15px;
    padding-bottom: 14px;
  }

  .home .offer-card__body {
    margin-top: 16px;
  }

  .home .offer-card__visual {
    margin-top: 12px;
  }
}

/* v0.7.273 — Mobile workflow: hard orange breathing room below the stack.
   Shorten the postcard and stack so the orange stage remains visibly present
   between postcard transitions. The approved top spacing remains unchanged. */
@media (max-width: 900px) {
  .home .offer-section {
    --offer-mobile-stack-offset: 7px;
  }

  .home .offer-grid {
    height: calc(var(--offer-mobile-card-height) + 22px);
  }

  .home .offer-card {
    padding: 16px 20px 14px;
  }

  .home .offer-card__body {
    margin-top: 18px;
  }

  .home .offer-card__visual {
    margin-top: 14px;
  }
}

@media (max-width: 560px) {
  .home .offer-card {
    padding: 15px 18px 13px;
  }

  .home .offer-card__body {
    margin-top: 17px;
  }

  .home .offer-card__visual {
    margin-top: 12px;
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .home .offer-card {
    padding-top: 14px;
    padding-bottom: 12px;
  }

  .home .offer-card__body {
    margin-top: 14px;
  }

  .home .offer-card__visual {
    margin-top: 10px;
  }
}

/* v0.7.274 — Mobile postcard illustration motion is owned by scroll.
   Prevent any inherited desktop animation/timer from advancing on its own. */
@media (max-width: 900px) {
  .home .offer-section .offer-card__visual *,
  .home .offer-section.offer-sequence--revealing .offer-card__visual *,
  .home .offer-section.offer-sequence--done .offer-card__visual * {
    animation: none !important;
  }
}

/* v0.7.275 — Mobile Mission: compact sticky editorial journey.
   Three calmer statement cards share one stage; scroll controls every transition.
   Desktop 901px+ is frozen. */
@media (max-width: 900px) {
  .home .mission-screen {
    height: 300svh;
    min-height: 300svh;
    padding: 0;
    overflow: visible;
    background: var(--off-white);
  }

  .home .mission-screen__container {
    position: sticky;
    top: 72px;
    height: calc(100svh - 72px);
    min-height: 0;
    padding-top: clamp(28px, 5svh, 44px);
    padding-bottom: 52px;
    box-sizing: border-box;
    display: block;
    overflow: hidden;
  }

  .home .mission-screen .mission-block {
    position: relative;
    height: 100%;
  }

  .home .mission-screen .mission-block__intro {
    position: relative;
    z-index: 5;
    max-width: 620px;
    opacity: calc(1 - var(--mission-intro-progress, 0));
    transform: translateY(calc(var(--mission-intro-progress, 0) * -24px));
    pointer-events: none;
  }

  .home .mission-screen .mission-block__intro h2 {
    font-size: clamp(42px, 11.5vw, 58px);
    line-height: .92;
  }

  .home .mission-screen .mission-block__intro .section-lead {
    margin-top: 16px;
    max-width: 34ch;
    font-size: 16px;
    line-height: 1.42;
  }

  .home .mission-screen .mission-pillars {
    position: absolute;
    inset: clamp(170px, 27svh, 220px) 0 38px;
    width: 100%;
    margin: 0;
    display: block;
  }

  .home .mission-screen .mission-pillar {
    position: absolute;
    inset: 0;
    width: 100%;
    min-height: 0;
    height: 100%;
    padding: 24px 24px 26px;
    border-radius: 26px;
    box-sizing: border-box;
    background: rgba(255,255,255,.48);
    opacity: var(--mission-card-opacity, 0);
    transform:
      translateY(var(--mission-card-y, 54px))
      scale(var(--mission-card-scale, .975));
    transform-origin: 50% 50%;
    transition: none !important;
    pointer-events: none;
    will-change: transform, opacity;
  }

  .home .mission-screen[data-mobile-mission-ready="1"] .mission-pillar {
    animation: none !important;
  }

  .home .mission-screen .mission-pillar::after {
    transform: scale(var(--mission-orb-scale, .72));
    transition: none;
  }

  .home .mission-screen .mission-pillar__number {
    font-size: 12px;
  }

  .home .mission-screen .mission-pillar__body {
    max-width: 34ch;
  }

  .home .mission-screen .mission-pillar h3 {
    margin-bottom: 12px;
    font-size: clamp(34px, 9.5vw, 44px);
    line-height: .94;
  }

  .home .mission-screen .mission-pillar p {
    font-size: clamp(15px, 4vw, 17px);
    line-height: 1.45;
  }

  .home .mission-screen__down {
    bottom: 8px;
    opacity: .58;
  }

  .home .mission-screen__down span {
    animation: none;
  }
}

@media (max-width: 560px) {
  .home .mission-screen {
    height: 285svh;
    min-height: 285svh;
  }

  .home .mission-screen__container {
    padding-top: 28px;
    padding-bottom: 46px;
  }

  .home .mission-screen .mission-pillars {
    inset: clamp(160px, 26svh, 205px) 0 34px;
  }

  .home .mission-screen .mission-pillar {
    padding: 22px 21px 24px;
    border-radius: 24px;
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .home .mission-screen .mission-block__intro h2 {
    font-size: clamp(38px, 10vw, 48px);
  }

  .home .mission-screen .mission-block__intro .section-lead {
    margin-top: 10px;
    font-size: 15px;
  }

  .home .mission-screen .mission-pillars {
    inset: 142px 0 30px;
  }

  .home .mission-screen .mission-pillar {
    padding: 19px 20px 20px;
  }

  .home .mission-screen .mission-pillar h3 {
    font-size: clamp(30px, 8vw, 38px);
  }

  .home .mission-screen .mission-pillar p {
    font-size: 14.5px;
    line-height: 1.38;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .home .mission-screen {
    height: auto;
    min-height: 0;
    padding: 46px 0 64px;
  }

  .home .mission-screen__container {
    position: relative;
    top: auto;
    height: auto;
    overflow: visible;
    padding: 0;
  }

  .home .mission-screen .mission-block__intro {
    opacity: 1;
    transform: none;
  }

  .home .mission-screen .mission-pillars {
    position: relative;
    inset: auto;
    display: grid;
    gap: 14px;
    margin-top: 28px;
  }

  .home .mission-screen .mission-pillar {
    position: relative;
    inset: auto;
    height: auto;
    min-height: 180px;
    opacity: 1;
    transform: none;
  }
}

/* v0.7.276 — Mobile Mission rebuild: one shared sticky stage.
   The intro and each mission statement occupy the exact same canvas,
   eliminating overlap caused by guessed intro heights. */
@media (max-width: 900px) {
  html,
  body,
  .home .mission-screen,
  .home .mission-screen__container,
  .home .mission-screen .mission-block {
    max-width: 100%;
  }

  .home .mission-screen {
    height: 320svh;
    min-height: 320svh;
    padding: 0;
    overflow: clip;
  }

  .home .mission-screen__container {
    position: sticky;
    top: 72px;
    height: calc(100svh - 72px);
    min-height: 0;
    padding: 0;
    overflow: hidden;
  }

  .home .mission-screen .mission-block {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  .home .mission-screen .mission-block__intro,
  .home .mission-screen .mission-pillar {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    box-sizing: border-box;
    opacity: var(--mission-state-opacity, 0);
    transform:
      translate3d(0, var(--mission-state-y, 44px), 0)
      scale(var(--mission-state-scale, .985));
    transform-origin: 50% 50%;
    transition: none !important;
    pointer-events: none;
    will-change: transform, opacity;
  }

  .home .mission-screen .mission-block__intro {
    z-index: 5;
    padding: clamp(34px, 6svh, 52px) 0 78px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    max-width: none;
  }

  .home .mission-screen .mission-block__intro .eyebrow {
    margin-bottom: 22px;
  }

  .home .mission-screen .mission-block__intro h2 {
    max-width: 9.3ch;
    font-size: clamp(44px, 12vw, 64px);
    line-height: .89;
    letter-spacing: -.055em;
  }

  .home .mission-screen .mission-block__intro .section-lead {
    margin-top: 20px;
    max-width: 31ch;
    font-size: clamp(15px, 4.15vw, 17px);
    line-height: 1.44;
  }

  .home .mission-screen .mission-pillars {
    position: static;
    inset: auto;
    width: auto;
    height: auto;
    margin: 0;
    display: block;
  }

  .home .mission-screen .mission-pillar {
    z-index: 4;
    padding: clamp(38px, 6.5svh, 56px) 0 74px;
    border: 0;
    border-radius: 0;
    background: transparent;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    overflow: hidden;
    box-shadow: none;
  }

  .home .mission-screen .mission-pillar::before {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    margin: 0 0 28px;
    background: rgba(10,10,10,.16);
  }

  .home .mission-screen .mission-pillar::after {
    inset: auto -24vw -17vw auto;
    width: min(76vw, 330px);
    height: min(76vw, 330px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--accent);
    opacity: .11;
    transform: scale(var(--mission-orb-scale, .70));
    transform-origin: 50% 50%;
    transition: none;
  }

  .home .mission-screen .mission-pillar__number {
    margin-bottom: clamp(50px, 10svh, 82px);
    font-size: 13px;
    letter-spacing: .16em;
  }

  .home .mission-screen .mission-pillar__body {
    position: relative;
    z-index: 2;
    max-width: 33ch;
  }

  .home .mission-screen .mission-pillar h3 {
    margin: 0 0 18px;
    max-width: 11ch;
    font-size: clamp(43px, 11.5vw, 60px);
    line-height: .91;
    letter-spacing: -.055em;
  }

  .home .mission-screen .mission-pillar p {
    max-width: 31ch;
    font-size: clamp(15px, 4.15vw, 17px);
    line-height: 1.46;
  }

  .home .mission-screen__down {
    z-index: 20;
    bottom: 10px;
  }

  .home .mission-screen[data-mobile-mission-ready="1"] .mission-block__intro,
  .home .mission-screen[data-mobile-mission-ready="1"] .mission-pillar {
    animation: none !important;
  }

  .home .mission-screen,
  .home .mission-screen * {
    min-width: 0;
  }

  .home {
    overflow-x: clip;
  }
}

@media (max-width: 560px) {
  .home .mission-screen {
    height: 305svh;
    min-height: 305svh;
  }

  .home .mission-screen .mission-block__intro {
    padding-top: 32px;
  }

  .home .mission-screen .mission-block__intro h2 {
    font-size: clamp(42px, 11.7vw, 56px);
  }

  .home .mission-screen .mission-pillar {
    padding-top: 34px;
  }

  .home .mission-screen .mission-pillar::before {
    margin-bottom: 24px;
  }

  .home .mission-screen .mission-pillar__number {
    margin-bottom: clamp(42px, 8svh, 64px);
  }

  .home .mission-screen .mission-pillar h3 {
    font-size: clamp(40px, 10.8vw, 52px);
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .home .mission-screen .mission-block__intro {
    padding-top: 24px;
  }

  .home .mission-screen .mission-block__intro .eyebrow {
    margin-bottom: 14px;
  }

  .home .mission-screen .mission-block__intro h2 {
    font-size: clamp(38px, 9.8vw, 48px);
  }

  .home .mission-screen .mission-block__intro .section-lead {
    margin-top: 12px;
    font-size: 14.5px;
  }

  .home .mission-screen .mission-pillar {
    padding-top: 24px;
  }

  .home .mission-screen .mission-pillar::before {
    margin-bottom: 18px;
  }

  .home .mission-screen .mission-pillar__number {
    margin-bottom: 30px;
  }

  .home .mission-screen .mission-pillar h3 {
    margin-bottom: 12px;
    font-size: clamp(34px, 8.5vw, 42px);
  }

  .home .mission-screen .mission-pillar p {
    font-size: 14px;
    line-height: 1.38;
  }

  .home .mission-screen .mission-pillar::after {
    width: min(58vw, 250px);
    height: min(58vw, 250px);
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .home .mission-screen {
    height: auto;
    min-height: 0;
    padding: 48px 0 64px;
    overflow: hidden;
  }

  .home .mission-screen__container {
    position: relative;
    top: auto;
    height: auto;
    overflow: visible;
  }

  .home .mission-screen .mission-block {
    height: auto;
    overflow: visible;
  }

  .home .mission-screen .mission-block__intro,
  .home .mission-screen .mission-pillar {
    position: relative;
    inset: auto;
    height: auto;
    opacity: 1 !important;
    transform: none !important;
  }

  .home .mission-screen .mission-pillars {
    display: grid;
    gap: 38px;
    margin-top: 52px;
  }

  .home .mission-screen .mission-pillar {
    min-height: 300px;
  }
}

/* v0.7.277 — Mobile Mission: physical full-stage 3D page flips.
   The header stays fixed; only the white mission content plane below it flips.
   Intro -> 01 retains v0.7.276's reveal. */
@media (max-width: 900px) {
  .home .mission-screen {
    height: 340svh;
    min-height: 340svh;
    perspective: 1200px;
    perspective-origin: 50% 44%;
  }

  .home .mission-screen .mission-block {
    --mission-flip-angle: 0deg;
    --mission-flip-shade: 0;
    transform-style: preserve-3d;
  }

  /* During a flip, the two involved statements become the front/back of one
     full-size physical plane. Rotation around the top edge makes the lower
     edge come toward the viewer and fold upward. */
  .home .mission-screen[data-mission-flip-phase="flip-12"] .mission-pillar:nth-child(1),
  .home .mission-screen[data-mission-flip-phase="flip-12"] .mission-pillar:nth-child(2),
  .home .mission-screen[data-mission-flip-phase="flip-23"] .mission-pillar:nth-child(2),
  .home .mission-screen[data-mission-flip-phase="flip-23"] .mission-pillar:nth-child(3) {
    opacity: 1 !important;
    transform-origin: 50% 0%;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    will-change: transform;
  }

  .home .mission-screen[data-mission-flip-phase="flip-12"] .mission-pillar:nth-child(1),
  .home .mission-screen[data-mission-flip-phase="flip-23"] .mission-pillar:nth-child(2) {
    transform: rotateX(var(--mission-flip-angle)) !important;
    z-index: 8;
  }

  .home .mission-screen[data-mission-flip-phase="flip-12"] .mission-pillar:nth-child(2),
  .home .mission-screen[data-mission-flip-phase="flip-23"] .mission-pillar:nth-child(3) {
    transform: rotateX(calc(var(--mission-flip-angle) + 180deg)) !important;
    z-index: 7;
  }

  /* Subtle physical shading, strongest when the sheet is edge-on. */
  .home .mission-screen[data-mission-flip-phase^="flip-"] .mission-block::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 12;
    pointer-events: none;
    background: rgba(10,10,10, calc(var(--mission-flip-shade) * .12));
    opacity: 1;
  }

  .home .mission-screen[data-mission-flip-phase^="flip-"] .mission-pillar {
    background: var(--off-white);
  }

  /* Reading states are perfectly flat. */
  .home .mission-screen[data-mission-flip-phase="reading-1"] .mission-pillar:nth-child(1),
  .home .mission-screen[data-mission-flip-phase="reading-2"] .mission-pillar:nth-child(2),
  .home .mission-screen[data-mission-flip-phase="reading-3"] .mission-pillar:nth-child(3) {
    transform: translate3d(0,0,0) scale(1) !important;
  }
}

@media (max-width: 560px) {
  .home .mission-screen {
    height: 325svh;
    min-height: 325svh;
    perspective: 1050px;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .home .mission-screen {
    perspective: none;
  }

  .home .mission-screen .mission-block,
  .home .mission-screen .mission-pillar {
    transform-style: flat;
  }
}

/* v0.7.278 — Mobile Mission: same physical plane, one-direction half-turn.
   The plane rotates continuously 0 -> -180deg around a horizontal axis.
   At edge-on, only the content swaps; the motion never reverses direction. */
@media (max-width: 900px) {
  .home .mission-screen {
    height: 345svh;
    min-height: 345svh;
    perspective: 1250px;
    perspective-origin: 50% 42%;
  }

  .home .mission-screen .mission-block {
    --mission-plane-angle: 0deg;
    --mission-plane-copy-angle: 0deg;
    --mission-plane-shade: 0;
    transform-style: preserve-3d;
  }

  .home .mission-screen[data-mission-plane-state^="flip-"] .mission-pillar {
    opacity: var(--mission-state-opacity, 0) !important;
    transform-origin: 50% 42%;
    backface-visibility: visible;
    -webkit-backface-visibility: visible;
    transform:
      rotateX(var(--mission-plane-angle))
      translateZ(0) !important;
    z-index: 8;
  }

  /* Keep the newly swapped copy readable on the second half of the same turn. */
  .home .mission-screen[data-mission-plane-state^="flip-"] .mission-pillar__number,
  .home .mission-screen[data-mission-plane-state^="flip-"] .mission-pillar__body,
  .home .mission-screen[data-mission-plane-state^="flip-"] .mission-pillar::before,
  .home .mission-screen[data-mission-plane-state^="flip-"] .mission-pillar::after {
    transform: rotateX(var(--mission-plane-copy-angle));
    transform-style: preserve-3d;
  }

  .home .mission-screen[data-mission-plane-state^="flip-"] .mission-pillar::after {
    transform:
      rotateX(var(--mission-plane-copy-angle))
      scale(var(--mission-orb-scale, .70));
  }

  /* Physical light falloff is strongest while the sheet is edge-on. */
  .home .mission-screen[data-mission-plane-state^="flip-"] .mission-block::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 12;
    pointer-events: none;
    background: rgba(10,10,10, calc(var(--mission-plane-shade) * .11));
  }

  .home .mission-screen[data-mission-plane-state="reading-1"] .mission-pillar:nth-child(1),
  .home .mission-screen[data-mission-plane-state="reading-2"] .mission-pillar:nth-child(2),
  .home .mission-screen[data-mission-plane-state="reading-3"] .mission-pillar:nth-child(3) {
    transform: translate3d(0,0,0) scale(1) !important;
  }
}

@media (max-width: 560px) {
  .home .mission-screen {
    height: 330svh;
    min-height: 330svh;
    perspective: 1100px;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .home .mission-screen {
    perspective: none;
  }

  .home .mission-screen .mission-block,
  .home .mission-screen .mission-pillar {
    transform-style: flat;
  }
}

/* v0.7.279 — Mobile Mission: preserve cumulative physical orientation.
   v0.7.278 flattened each reading state back to 0deg; that caused the visible
   jump after the mirrored 02 frame. Reading states now hold 0/-180/-360deg. */
@media (max-width: 900px) {
  .home .mission-screen[data-mission-plane-state="reading-1"] .mission-pillar:nth-child(1),
  .home .mission-screen[data-mission-plane-state="reading-2"] .mission-pillar:nth-child(2),
  .home .mission-screen[data-mission-plane-state="reading-3"] .mission-pillar:nth-child(3) {
    opacity: var(--mission-state-opacity, 1) !important;
    transform-origin: 50% 42%;
    backface-visibility: visible;
    -webkit-backface-visibility: visible;
    transform: rotateX(var(--mission-plane-angle)) translateZ(0) !important;
  }

  .home .mission-screen[data-mission-plane-state="reading-2"] .mission-pillar__number,
  .home .mission-screen[data-mission-plane-state="reading-2"] .mission-pillar__body,
  .home .mission-screen[data-mission-plane-state="reading-2"] .mission-pillar::before,
  .home .mission-screen[data-mission-plane-state="reading-3"] .mission-pillar__number,
  .home .mission-screen[data-mission-plane-state="reading-3"] .mission-pillar__body,
  .home .mission-screen[data-mission-plane-state="reading-3"] .mission-pillar::before {
    transform: rotateX(var(--mission-plane-copy-angle));
  }

  .home .mission-screen[data-mission-plane-state="reading-2"] .mission-pillar::after,
  .home .mission-screen[data-mission-plane-state="reading-3"] .mission-pillar::after {
    transform:
      rotateX(var(--mission-plane-copy-angle))
      scale(var(--mission-orb-scale, 1));
  }
}

/* v0.7.280 — Mobile Vision mirrors Mission v0.7.279.
   Same sticky canvas, typography hierarchy, scroll length, perspective,
   shadow behaviour and cumulative rotation — but +180/+360 instead of -180/-360.
   Desktop 901px+ remains completely unchanged. */
@media (max-width: 900px) {
  .home .vision-screen {
    position: relative;
    height: 345svh;
    min-height: 345svh;
    padding: 0;
    overflow: clip;
    background: var(--black);
    color: var(--white);
    perspective: 1250px;
    perspective-origin: 50% 42%;
  }

  .home .vision-screen__container {
    position: sticky;
    top: 72px;
    width: min(var(--container), calc(100% - (var(--pad) * 2)));
    height: calc(100svh - 72px);
    min-height: 0;
    padding: 0;
    overflow: hidden;
  }

  .home .vision-screen .vision-block {
    --vision-plane-angle: 0deg;
    --vision-plane-copy-angle: 0deg;
    --vision-plane-shade: 0;
    position: relative;
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
    transform-style: preserve-3d;
  }

  .home .vision-screen .vision-block__intro,
  .home .vision-screen .vision-row {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    box-sizing: border-box;
    opacity: var(--vision-state-opacity, 0) !important;
    transform:
      translate3d(0, var(--vision-state-y, 44px), 0)
      scale(var(--vision-state-scale, .985));
    transform-origin: 50% 50%;
    transition: none !important;
    animation: none !important;
    pointer-events: none;
    will-change: transform, opacity;
  }

  .home .vision-screen .vision-block__intro {
    z-index: 5;
    max-width: none;
    padding: clamp(34px, 6svh, 52px) 0 78px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }

  .home .vision-screen .vision-block__intro .eyebrow {
    margin-bottom: 22px;
  }

  .home .vision-screen .vision-block__intro h2 {
    max-width: 9.3ch;
    font-size: clamp(44px, 12vw, 64px);
    line-height: .89;
    letter-spacing: -.055em;
  }

  .home .vision-screen .vision-rows {
    position: static;
    height: auto;
    border: 0;
  }

  .home .vision-screen .vision-row {
    z-index: 4;
    padding: clamp(38px, 6.5svh, 56px) 0 74px;
    border: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    overflow: hidden;
    background: transparent;
  }

  /* Mission-style top rule. Existing row pseudo line is repurposed here. */
  .home .vision-screen .vision-row::after {
    content: "";
    position: relative;
    inset: auto;
    order: -2;
    display: block;
    width: 100%;
    height: 1px;
    margin: 0 0 28px;
    background: rgba(255,255,255,.22);
    transform: none !important;
    animation: none !important;
  }

  /* Orange circle, equivalent to Mission's decorative orb. */
  .home .vision-screen .vision-row::before {
    content: "";
    position: absolute;
    right: -24vw;
    bottom: -17vw;
    width: min(76vw, 330px);
    height: min(76vw, 330px);
    border-radius: 50%;
    background: var(--accent);
    opacity: .15;
    transform: scale(var(--vision-orb-scale, .70));
    transform-origin: 50% 50%;
    pointer-events: none;
  }

  .home .vision-screen .vision-row__number {
    order: -1;
    align-self: auto;
    margin: 0 0 clamp(50px, 10svh, 82px);
    padding: 0;
    opacity: 1 !important;
    transform: none !important;
    font-size: 13px;
    letter-spacing: .16em;
    color: var(--accent);
    animation: none !important;
  }

  .home .vision-screen .vision-row h3 {
    position: relative;
    z-index: 2;
    margin: 0 0 18px;
    max-width: 11ch;
    align-self: auto;
    opacity: 1 !important;
    transform: none !important;
    font-size: clamp(43px, 11.5vw, 60px);
    line-height: .91;
    letter-spacing: -.055em;
    color: var(--white);
    animation: none !important;
  }

  .home .vision-screen .vision-row p {
    position: relative;
    z-index: 2;
    grid-column: auto;
    align-self: auto;
    margin: 0;
    max-width: 31ch;
    opacity: 1 !important;
    transform: none !important;
    font-size: clamp(15px, 4.15vw, 17px);
    line-height: 1.46;
    color: #c8c8c2;
    animation: none !important;
  }

  .home .vision-screen[data-vision-plane-state^="flip-"] .vision-row {
    opacity: var(--vision-state-opacity, 0) !important;
    transform-origin: 50% 42%;
    backface-visibility: visible;
    -webkit-backface-visibility: visible;
    transform: rotateX(var(--vision-plane-angle)) translateZ(0) !important;
    z-index: 8;
  }

  .home .vision-screen[data-vision-plane-state^="flip-"] .vision-row__number,
  .home .vision-screen[data-vision-plane-state^="flip-"] .vision-row h3,
  .home .vision-screen[data-vision-plane-state^="flip-"] .vision-row p,
  .home .vision-screen[data-vision-plane-state^="flip-"] .vision-row::after {
    transform: rotateX(var(--vision-plane-copy-angle)) !important;
    transform-style: preserve-3d;
  }

  .home .vision-screen[data-vision-plane-state^="flip-"] .vision-row::before {
    transform:
      rotateX(var(--vision-plane-copy-angle))
      scale(var(--vision-orb-scale, .70));
  }

  .home .vision-screen[data-vision-plane-state^="flip-"] .vision-block::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 12;
    pointer-events: none;
    background: rgba(255,255,255, calc(var(--vision-plane-shade) * .055));
  }

  /* Preserve cumulative +180/+360 orientation while stationary. */
  .home .vision-screen[data-vision-plane-state="reading-1"] .vision-row:nth-child(1),
  .home .vision-screen[data-vision-plane-state="reading-2"] .vision-row:nth-child(2),
  .home .vision-screen[data-vision-plane-state="reading-3"] .vision-row:nth-child(3) {
    opacity: var(--vision-state-opacity, 1) !important;
    transform-origin: 50% 42%;
    backface-visibility: visible;
    -webkit-backface-visibility: visible;
    transform: rotateX(var(--vision-plane-angle)) translateZ(0) !important;
  }

  .home .vision-screen[data-vision-plane-state="reading-2"] .vision-row__number,
  .home .vision-screen[data-vision-plane-state="reading-2"] .vision-row h3,
  .home .vision-screen[data-vision-plane-state="reading-2"] .vision-row p,
  .home .vision-screen[data-vision-plane-state="reading-2"] .vision-row::after,
  .home .vision-screen[data-vision-plane-state="reading-3"] .vision-row__number,
  .home .vision-screen[data-vision-plane-state="reading-3"] .vision-row h3,
  .home .vision-screen[data-vision-plane-state="reading-3"] .vision-row p,
  .home .vision-screen[data-vision-plane-state="reading-3"] .vision-row::after {
    transform: rotateX(var(--vision-plane-copy-angle)) !important;
  }

  .home .vision-screen[data-vision-plane-state="reading-2"] .vision-row::before,
  .home .vision-screen[data-vision-plane-state="reading-3"] .vision-row::before {
    transform:
      rotateX(var(--vision-plane-copy-angle))
      scale(var(--vision-orb-scale, 1));
  }
}

@media (max-width: 560px) {
  .home .vision-screen {
    height: 330svh;
    min-height: 330svh;
    perspective: 1100px;
  }

  .home .vision-screen .vision-block__intro {
    padding-top: 32px;
  }

  .home .vision-screen .vision-block__intro h2 {
    font-size: clamp(42px, 11.7vw, 56px);
  }

  .home .vision-screen .vision-row {
    padding-top: 34px;
  }

  .home .vision-screen .vision-row::after {
    margin-bottom: 24px;
  }

  .home .vision-screen .vision-row__number {
    margin-bottom: clamp(42px, 8svh, 64px);
  }

  .home .vision-screen .vision-row h3 {
    font-size: clamp(40px, 10.8vw, 52px);
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .home .vision-screen .vision-block__intro {
    padding-top: 24px;
  }

  .home .vision-screen .vision-block__intro .eyebrow {
    margin-bottom: 14px;
  }

  .home .vision-screen .vision-block__intro h2 {
    font-size: clamp(38px, 9.8vw, 48px);
  }

  .home .vision-screen .vision-row {
    padding-top: 24px;
  }

  .home .vision-screen .vision-row::after {
    margin-bottom: 18px;
  }

  .home .vision-screen .vision-row__number {
    margin-bottom: 30px;
  }

  .home .vision-screen .vision-row h3 {
    margin-bottom: 12px;
    font-size: clamp(34px, 8.5vw, 42px);
  }

  .home .vision-screen .vision-row p {
    font-size: 14px;
    line-height: 1.38;
  }

  .home .vision-screen .vision-row::before {
    width: min(58vw, 250px);
    height: min(58vw, 250px);
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .home .vision-screen {
    height: auto;
    min-height: 0;
    padding: 48px 0 64px;
    perspective: none;
    overflow: hidden;
  }

  .home .vision-screen__container {
    position: relative;
    top: auto;
    height: auto;
    overflow: visible;
  }

  .home .vision-screen .vision-block {
    height: auto;
    overflow: visible;
    transform-style: flat;
  }

  .home .vision-screen .vision-block__intro,
  .home .vision-screen .vision-row {
    position: relative;
    inset: auto;
    height: auto;
    opacity: 1 !important;
    transform: none !important;
  }

  .home .vision-screen .vision-rows {
    display: grid;
    gap: 38px;
    margin-top: 52px;
  }

  .home .vision-screen .vision-row {
    min-height: 300px;
  }
}

/* v0.7.284 — Shared Mission/Vision 3D geometry.
   These are the exact approved Mission values. Both chapters now resolve their
   physical plane through the same geometry; only JS direction differs. */
@media (max-width: 900px) {
  .home .mission-screen,
  .home .vision-screen {
    perspective: 1250px;
    perspective-origin: 50% 42%;
  }

  .home .mission-screen[data-mission-plane-state^="flip-"] .mission-pillar,
  .home .mission-screen[data-mission-plane-state="reading-1"] .mission-pillar:nth-child(1),
  .home .mission-screen[data-mission-plane-state="reading-2"] .mission-pillar:nth-child(2),
  .home .mission-screen[data-mission-plane-state="reading-3"] .mission-pillar:nth-child(3),
  .home .vision-screen[data-vision-plane-state^="flip-"] .vision-row,
  .home .vision-screen[data-vision-plane-state="reading-1"] .vision-row:nth-child(1),
  .home .vision-screen[data-vision-plane-state="reading-2"] .vision-row:nth-child(2),
  .home .vision-screen[data-vision-plane-state="reading-3"] .vision-row:nth-child(3) {
    transform-origin: 50% 42%;
    backface-visibility: visible;
    -webkit-backface-visibility: visible;
  }

  .home .mission-screen[data-mission-plane-state^="flip-"] .mission-pillar {
    transform: rotateX(var(--mission-plane-angle)) translateZ(0) !important;
  }

  .home .vision-screen[data-vision-plane-state^="flip-"] .vision-row {
    transform: rotateX(var(--vision-plane-angle)) translateZ(0) !important;
  }
}

@media (max-width: 560px) {
  .home .mission-screen,
  .home .vision-screen {
    perspective: 1100px;
  }
}

/* v0.7.285 — Mobile Vision: explicit toward-viewer depth cue.
   The shared v0.7.284 flip engine remains the source of truth. Mission is not
   changed. Vision still uses the same origin/perspective/timing, but its already
   opposite +rotateX motion is now made perceptually unambiguous:
   - slight scale-up at the edge-on midpoint;
   - a small LOCAL-Z excursion after rotation (not a whole-screen Z shove).
   Both cues are zero at the start/end of every flip, so there are no state jumps. */
@media (max-width: 900px) {
  .home .vision-screen .vision-block {
    --vision-plane-approach: 1;
    --vision-plane-local-depth: 0px;
  }

  .home .vision-screen[data-vision-plane-state^="flip-"] .vision-row {
    transform:
      scale3d(var(--vision-plane-approach), var(--vision-plane-approach), 1)
      rotateX(var(--vision-plane-angle))
      translateZ(var(--vision-plane-local-depth)) !important;
  }

  /* A real black plane makes the perspective readable without changing the
     approved black visual language. The faint edge cue disappears at rest. */
  .home .vision-screen[data-vision-plane-state^="flip-"] .vision-row {
    background: #0A0A0A;
    box-shadow:
      0 1px 0 rgba(255,255,255, calc(var(--vision-plane-shade) * .08)),
      0 18px 44px rgba(0,0,0, calc(var(--vision-plane-shade) * .28));
  }
}

/* v0.7.288 — Mobile Vision intro cover.
   Give the opening Vision plane the same graphic language as 01/02/03 without
   adding copy: thin rule + oversized, partially clipped orange orb. */
@media (max-width: 900px) {
  .home .vision-screen .vision-block__intro {
    isolation: isolate;
  }

  .home .vision-screen .vision-block__intro::before {
    content: "";
    position: relative;
    z-index: 2;
    order: -1;
    display: block;
    width: 100%;
    height: 1px;
    margin: 0 0 28px;
    background: rgba(255,255,255,.22);
    flex: 0 0 auto;
  }

  .home .vision-screen .vision-block__intro::after {
    content: "";
    position: absolute;
    z-index: 0;
    right: -30vw;
    bottom: -24vw;
    width: min(92vw, 410px);
    height: min(92vw, 410px);
    border-radius: 50%;
    background: var(--accent);
    opacity: .17;
    transform:
      translate3d(0, var(--vision-intro-orb-y, 18px), 0)
      scale(var(--vision-intro-orb-scale, .78));
    transform-origin: 50% 50%;
    pointer-events: none;
    will-change: transform, opacity;
  }

  .home .vision-screen .vision-block__intro .eyebrow,
  .home .vision-screen .vision-block__intro h2 {
    position: relative;
    z-index: 2;
  }
}

@media (max-width: 560px) {
  .home .vision-screen .vision-block__intro::before {
    margin-bottom: 24px;
  }
}

/* v0.7.293 — Mobile Impact Soest: three-state sticky editorial chapter.
   Desktop keeps the original Impact Soest implementation. Mobile becomes one
   orange fullscreen stage with scroll-scrubbed vertical typography and progress. */
@media (min-width: 901px) {
  .home .impact-soest-mobile { display: none !important; }
  .home .current-project__desktop { display: block; }
}

@media (max-width: 900px) {
  .home .current-project {
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: var(--accent) !important;
    color: #0A0A0A !important;
  }

  .home .current-project__desktop { display: none !important; }

  .home .impact-soest-mobile {
    display: block;
    position: relative;
    height: 300svh;
    background: var(--accent);
    color: #0A0A0A;
  }

  .home .impact-soest-mobile__sticky {
    position: sticky;
    top: 82px;
    height: calc(100svh - 82px);
    overflow: hidden;
    background: var(--accent);
  }

  .home .impact-soest-mobile__frame {
    position: relative;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    padding: clamp(28px, 4svh, 38px) 28px clamp(30px, 4.5svh, 42px);
    overflow: hidden;
  }

  .home .impact-soest-mobile__counter {
    position: absolute;
    z-index: 5;
    top: clamp(30px, 4.2svh, 40px);
    right: 28px;
    display: flex;
    gap: 5px;
    align-items: baseline;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .14em;
    color: rgba(10,10,10,.55);
  }

  .home .impact-soest-mobile__rail {
    position: absolute;
    z-index: 5;
    top: clamp(64px, 9svh, 78px);
    right: 31px;
    bottom: 34px;
    width: 1px;
    background: rgba(10,10,10,.18);
  }

  .home .impact-soest-mobile__rail-fill {
    display: block;
    width: 1px;
    height: var(--impact-soest-progress, 0%);
    background: #0A0A0A;
    transform-origin: top;
  }

  .home .impact-soest-mobile__state {
    position: absolute;
    z-index: 2;
    inset: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(30px, 5svh, 44px) 58px clamp(34px, 5svh, 48px) 28px;
    opacity: var(--impact-state-opacity, 0);
    transform: translate3d(0, var(--impact-state-y, 42px), 0);
    pointer-events: none;
    will-change: transform, opacity;
  }

  .home .impact-soest-mobile__state--1 {
    --impact-state-opacity: 1;
    --impact-state-y: 0px;
  }

  .home .impact-soest-mobile__eyebrow {
    margin: 0 0 clamp(24px, 3.6svh, 32px);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: rgba(10,10,10,.58);
  }

  .home .impact-soest-mobile__state h2 {
    max-width: 8.8ch;
    margin: 0 0 clamp(26px, 4svh, 34px);
    font-size: clamp(48px, 13vw, 68px);
    line-height: .88;
    letter-spacing: -.06em;
    color: #0A0A0A !important;
  }

  .home .impact-soest-mobile__text {
    max-width: 30ch;
    margin: 0;
    font-size: clamp(15px, 4.1vw, 18px);
    line-height: 1.48;
    color: rgba(10,10,10,.74) !important;
  }

  .home .impact-soest-mobile__state--3 {
    justify-content: flex-start;
    padding-top: clamp(72px, 10svh, 92px);
  }

  .home .impact-soest-mobile__state--3 h2 {
    max-width: 9ch;
    margin-bottom: clamp(24px, 3.5svh, 30px);
    font-size: clamp(40px, 10.8vw, 56px);
  }

  .home .impact-soest-mobile__logo {
    width: min(58vw, 230px);
    height: clamp(105px, 28vw, 135px);
    margin: 0 0 20px;
    box-sizing: border-box;
    overflow: hidden;
    background: rgba(245,245,241,.96);
  }

  .home .impact-soest-mobile__logo img {
    display: block;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    padding: 12px 16px;
    object-fit: contain;
  }

  .home .impact-soest-mobile__partner {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    max-width: 330px;
    padding-top: 14px;
    border-top: 1px solid rgba(10,10,10,.25);
  }

  .home .impact-soest-mobile__partner span {
    font-size: 9px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: rgba(10,10,10,.52);
  }

  .home .impact-soest-mobile__partner strong {
    max-width: 17ch;
    font-size: 12px;
    line-height: 1.25;
    text-align: right;
  }

  .home .impact-soest-mobile__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(100%, 330px);
    margin-top: auto;
    padding: 17px 19px;
    box-sizing: border-box;
    border-radius: 18px;
    background: #0A0A0A;
    color: #F5F5F1;
    pointer-events: auto;
  }
}

@media (max-width: 560px) {
  .home .impact-soest-mobile__sticky {
    top: 72px;
    height: calc(100svh - 72px);
  }

  .home .impact-soest-mobile__frame {
    padding-left: 24px;
    padding-right: 24px;
  }

  .home .impact-soest-mobile__counter {
    right: 24px;
  }

  .home .impact-soest-mobile__rail {
    right: 27px;
  }

  .home .impact-soest-mobile__state {
    padding-left: 24px;
    padding-right: 52px;
  }

  .home .impact-soest-mobile__state h2 {
    font-size: clamp(44px, 12.2vw, 58px);
  }

  .home .impact-soest-mobile__state--3 h2 {
    font-size: clamp(36px, 9.8vw, 46px);
  }
}

/* v0.7.294 — Impact Soest mobile state 01 normalized to state 02.
   Same frame geometry, top position and rhythm. All copy remains; only state 01
   body typography is compacted slightly so the longer text fits the same stage. */
@media (max-width: 900px) {
  .home .impact-soest-mobile__state--1,
  .home .impact-soest-mobile__state--2 {
    justify-content: center;
    padding-top: clamp(30px, 5svh, 44px);
    padding-bottom: clamp(34px, 5svh, 48px);
  }

  .home .impact-soest-mobile__state--1 .impact-soest-mobile__eyebrow,
  .home .impact-soest-mobile__state--2 .impact-soest-mobile__eyebrow {
    margin-bottom: clamp(24px, 3.6svh, 32px);
  }

  .home .impact-soest-mobile__state--1 h2,
  .home .impact-soest-mobile__state--2 h2 {
    margin-bottom: clamp(26px, 4svh, 34px);
  }

  /* State 01 has more copy than state 02: preserve every word but make the
     paragraph slightly denser/wider so its visual bottom aligns much better. */
  .home .impact-soest-mobile__state--1 .impact-soest-mobile__text {
    max-width: 32ch;
    font-size: clamp(14px, 3.85vw, 17px);
    line-height: 1.42;
    letter-spacing: -.01em;
  }
}

@media (max-width: 560px) {
  .home .impact-soest-mobile__state--1 .impact-soest-mobile__text {
    max-width: 33ch;
    font-size: clamp(14px, 3.75vw, 16px);
    line-height: 1.4;
  }

  .home .impact-soest-mobile__state--1 h2 {
    font-size: clamp(42px, 11.7vw, 56px);
    line-height: .88;
  }
}

/* v0.7.295 — Impact Soest mobile states 01/02 share one fixed vertical grid.
   Previous versions centered each state's full content block, so the longer
   state 01 started higher than state 02. Both now anchor from the same top
   position with identical heading geometry; only state 01 body is compacted. */
@media (max-width: 900px) {
  .home .impact-soest-mobile__state--1,
  .home .impact-soest-mobile__state--2 {
    justify-content: flex-start !important;
    padding-top: clamp(72px, 10svh, 92px) !important;
    padding-bottom: clamp(34px, 5svh, 48px) !important;
  }

  .home .impact-soest-mobile__state--1 .impact-soest-mobile__eyebrow,
  .home .impact-soest-mobile__state--2 .impact-soest-mobile__eyebrow {
    margin-bottom: clamp(24px, 3.6svh, 32px) !important;
  }

  .home .impact-soest-mobile__state--1 h2,
  .home .impact-soest-mobile__state--2 h2 {
    max-width: 8.8ch !important;
    margin-bottom: clamp(26px, 4svh, 34px) !important;
    font-size: clamp(48px, 13vw, 68px) !important;
    line-height: .88 !important;
    letter-spacing: -.06em !important;
  }

  /* Preserve every word in 01 while fitting the shared fixed grid. */
  .home .impact-soest-mobile__state--1 .impact-soest-mobile__text {
    max-width: 33ch !important;
    font-size: clamp(14px, 3.75vw, 16px) !important;
    line-height: 1.40 !important;
    letter-spacing: -.01em !important;
  }

  .home .impact-soest-mobile__state--2 .impact-soest-mobile__text {
    max-width: 30ch !important;
  }
}

@media (max-width: 560px) {
  .home .impact-soest-mobile__state--1,
  .home .impact-soest-mobile__state--2 {
    padding-top: 72px !important;
  }

  .home .impact-soest-mobile__state--1 h2,
  .home .impact-soest-mobile__state--2 h2 {
    font-size: clamp(44px, 12.2vw, 58px) !important;
    line-height: .88 !important;
  }

  .home .impact-soest-mobile__state--1 .impact-soest-mobile__text {
    max-width: 34ch !important;
    font-size: clamp(13.5px, 3.55vw, 15.5px) !important;
    line-height: 1.38 !important;
  }
}

/* v0.7.296 — Impact Soest state 01 text-fit refinement.
   Preserve the fixed grid from v0.7.295 exactly; only make state 01 typography
   more space-efficient so all existing copy fits within the sticky viewport. */
@media (max-width: 900px) {
  .home .impact-soest-mobile__state--1 h2 {
    font-size: clamp(45px, 12.2vw, 64px) !important;
    line-height: .86 !important;
    letter-spacing: -.06em !important;
    margin-bottom: clamp(22px, 3.4svh, 28px) !important;
  }

  .home .impact-soest-mobile__state--1 .impact-soest-mobile__text {
    max-width: 35ch !important;
    font-size: clamp(13.5px, 3.55vw, 15.5px) !important;
    line-height: 1.34 !important;
    letter-spacing: -.012em !important;
  }
}

@media (max-width: 560px) {
  .home .impact-soest-mobile__state--1 h2 {
    font-size: clamp(41px, 11.2vw, 53px) !important;
    line-height: .85 !important;
    margin-bottom: 20px !important;
  }

  .home .impact-soest-mobile__state--1 .impact-soest-mobile__text {
    max-width: 36ch !important;
    font-size: clamp(13px, 3.4vw, 14.5px) !important;
    line-height: 1.32 !important;
  }
}

/* v0.7.297 — Impact Soest state 03: cropped compact partner lockup.
   Combine the useful parts of options B/C: visually crop the source image's
   whitespace, then use the enlarged heart mark as a supporting partner badge
   beside the partner name. States 01/02 and scroll geometry stay untouched. */
@media (max-width: 900px) {
  .home .impact-soest-mobile__state--3 {
    padding-top: clamp(58px, 8svh, 72px);
  }

  .home .impact-soest-mobile__state--3 .impact-soest-mobile__eyebrow {
    margin-bottom: clamp(18px, 2.6svh, 22px);
  }

  .home .impact-soest-mobile__state--3 h2 {
    max-width: 8.5ch;
    margin-bottom: 16px;
    font-size: clamp(38px, 10.2vw, 52px);
    line-height: .88;
  }

  .home .impact-soest-mobile__partner-copy {
    max-width: 29ch;
    margin: 0 0 clamp(20px, 3svh, 26px);
    font-size: clamp(13px, 3.5vw, 15px);
    line-height: 1.4;
    color: rgba(10,10,10,.72);
  }

  .home .impact-soest-mobile__partner-lockup {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    width: min(100%, 330px);
    padding-top: 16px;
    border-top: 1px solid rgba(10,10,10,.25);
  }

  .home .impact-soest-mobile__logo {
    position: relative;
    width: 82px;
    height: 82px;
    margin: 0;
    overflow: hidden;
    background: rgba(245,245,241,.96);
  }

  /* The uploaded/source artwork contains substantial baked-in whitespace.
     Scale the complete image inside an overflow-hidden badge so the actual
     heart mark becomes the visible focal point without editing the source. */
  .home .impact-soest-mobile__logo img {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 285%;
    height: 285%;
    max-width: none;
    padding: 0;
    object-fit: contain;
    transform: translate(-50%, -50%);
  }

  .home .impact-soest-mobile__partner {
    display: block;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
  }

  .home .impact-soest-mobile__partner span {
    display: block;
    margin-bottom: 7px;
    font-size: 9px;
    line-height: 1;
    letter-spacing: .13em;
    text-align: left;
  }

  .home .impact-soest-mobile__partner strong {
    display: block;
    max-width: 17ch;
    font-size: 13px;
    line-height: 1.2;
    text-align: left;
  }

  .home .impact-soest-mobile__cta {
    width: min(100%, 330px);
    margin-top: clamp(22px, 3.4svh, 30px);
  }
}

@media (max-width: 560px) {
  .home .impact-soest-mobile__state--3 {
    padding-top: 54px;
  }

  .home .impact-soest-mobile__state--3 h2 {
    font-size: clamp(35px, 9.5vw, 44px);
  }

  .home .impact-soest-mobile__partner-lockup {
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 14px;
  }

  .home .impact-soest-mobile__logo {
    width: 74px;
    height: 74px;
  }
}

/* v0.7.298 — Impact Soest mobile finale.
   Keep states 01/02 untouched. State 03 restores the full logo in a compact
   partner lockup. New state 04 is the dedicated conversion finale. */
@media (max-width: 900px) {
  .home .impact-soest-mobile {
    height: 400svh;
  }

  /* State 03: restore the complete heart-shaped logo, no artificial crop. */
  .home .impact-soest-mobile__logo {
    width: 90px;
    height: 90px;
  }

  .home .impact-soest-mobile__logo img {
    position: static;
    width: 100%;
    height: 100%;
    max-width: 100%;
    padding: 10px;
    box-sizing: border-box;
    object-fit: contain;
    transform: none;
  }

  .home .impact-soest-mobile__partner-lockup {
    grid-template-columns: 90px minmax(0, 1fr);
  }

  /* State 04 — dedicated CTA finale. */
  .home .impact-soest-mobile__state--4 {
    justify-content: flex-start;
    padding-top: clamp(66px, 9svh, 84px);
  }

  .home .impact-soest-mobile__state--4 h2 {
    max-width: 8.5ch;
    margin-bottom: clamp(22px, 3.3svh, 28px);
    font-size: clamp(42px, 11.4vw, 58px);
    line-height: .88;
    letter-spacing: -.058em;
  }

  .home .impact-soest-mobile__text--finale {
    max-width: 29ch;
    margin: 0;
    font-size: clamp(14px, 3.75vw, 16px);
    line-height: 1.42;
    color: rgba(10,10,10,.72);
  }

  .home .impact-soest-mobile__cta--finale {
    width: min(100%, 336px);
    margin-top: auto;
    padding: 20px 20px;
    border-radius: 18px;
    font-size: clamp(17px, 4.5vw, 20px);
  }

  .home .impact-soest-mobile__continue {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    align-self: flex-start;
    margin-top: 18px;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .16em;
    text-decoration: none;
    color: rgba(10,10,10,.56);
    pointer-events: auto;
  }
}

@media (max-width: 560px) {
  .home .impact-soest-mobile__logo {
    width: 86px;
    height: 86px;
  }

  .home .impact-soest-mobile__partner-lockup {
    grid-template-columns: 86px minmax(0, 1fr);
  }

  .home .impact-soest-mobile__state--4 {
    padding-top: 58px;
  }

  .home .impact-soest-mobile__state--4 h2 {
    font-size: clamp(39px, 10.6vw, 50px);
  }
}

/* v0.7.300 — Impact Soest mobile state 01 viewport entrance blur only.
   The first state sharpens while entering and is fully sharp at its sticky reading point.
   States 02/03/04 remain unblurred and otherwise untouched. */
@media (max-width: 900px) {
  .home .impact-soest-mobile__state--1 {
    filter: blur(var(--impact-state-1-blur, 0px));
    will-change: transform, opacity, filter;
  }

  .home .impact-soest-mobile__state--2,
  .home .impact-soest-mobile__state--3,
  .home .impact-soest-mobile__state--4 {
    filter: none;
  }
}


/* v0.7.301 — Impact Soest mobile partner mark: remove the visible white logo field.
   The source artwork is supplied dynamically by WordPress, so mobile renders its white
   pixels into the orange canvas and lets the heart itself read as the standalone mark.
   Desktop remains untouched. */
@media (max-width: 900px) {
  .home .impact-soest-mobile__logo {
    width: 82px;
    height: 82px;
    overflow: visible;
    background: transparent;
  }

  .home .impact-soest-mobile__logo img {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 150%;
    height: 150%;
    max-width: none;
    padding: 0;
    box-sizing: border-box;
    object-fit: contain;
    transform: translate(-50%, -50%);
    mix-blend-mode: multiply;
  }

  .home .impact-soest-mobile__partner-lockup {
    grid-template-columns: 82px minmax(0, 1fr);
  }
}

@media (max-width: 560px) {
  .home .impact-soest-mobile__logo {
    width: 76px;
    height: 76px;
  }

  .home .impact-soest-mobile__partner-lockup {
    grid-template-columns: 76px minmax(0, 1fr);
  }
}

/* v0.7.302 — Impact Soest mobile partner lockup spacing.
   Add breathing room between the standalone heart mark and its copy only.
   The WhatsApp trigger, state geometry and desktop >=901px remain untouched. */
@media (max-width: 900px) {
  .home .impact-soest-mobile__partner-lockup {
    column-gap: 14px;
  }
}

/* v0.7.303 — Impact Soest mobile partner lockup geometry correction.
   The heart artwork is rendered larger than its nominal logo box (150%),
   so reserve space for its visual width before the copy starts.
   Keep the WhatsApp trigger and desktop >=901px untouched. */
@media (max-width: 900px) {
  .home .impact-soest-mobile__partner-lockup {
    grid-template-columns: 104px minmax(0, 1fr);
    column-gap: 12px;
    padding-right: 56px;
  }

  .home .impact-soest-mobile__partner {
    min-width: 0;
  }

  .home .impact-soest-mobile__partner strong {
    max-width: 15ch;
  }
}

@media (max-width: 560px) {
  .home .impact-soest-mobile__partner-lockup {
    grid-template-columns: 100px minmax(0, 1fr);
    column-gap: 12px;
    padding-right: 52px;
  }
}

/* v0.7.304 — Impact Soest mobile state 04 editorial finale.
   Rebalance type, spacing and CTA proportions while preserving content,
   scroll engine, WhatsApp trigger and desktop >=901px. */
@media (max-width: 900px) {
  .home .impact-soest-mobile__state--4 {
    justify-content: flex-start;
    padding-top: clamp(64px, 8.2svh, 78px);
    padding-bottom: 34px;
  }

  .home .impact-soest-mobile__state--4 h2 {
    max-width: 10.8ch;
    margin-bottom: clamp(26px, 3.8svh, 34px);
    font-size: clamp(36px, 9.8vw, 50px);
    line-height: .90;
    letter-spacing: -.052em;
  }

  .home .impact-soest-mobile__text--finale {
    max-width: 27ch;
    margin-bottom: clamp(22px, 3.2svh, 28px);
    font-size: clamp(15px, 3.9vw, 17px);
    line-height: 1.38;
  }

  .home .impact-soest-mobile__state--4 .impact-soest-mobile__cta {
    width: min(100%, 282px);
    min-height: 58px;
    margin-top: 0;
    padding-left: 24px;
    padding-right: 22px;
  }

  .home .impact-soest-mobile__state--4 .impact-soest-mobile__cta-wrap {
    width: 100%;
    padding-right: 64px;
  }

  .home .impact-soest-mobile__state--4 .impact-soest-mobile__continue {
    margin-top: clamp(18px, 2.6svh, 24px);
    margin-bottom: 0;
  }
}

@media (max-width: 560px) {
  .home .impact-soest-mobile__state--4 {
    padding-top: 56px;
    padding-bottom: 28px;
  }

  .home .impact-soest-mobile__state--4 h2 {
    max-width: 10.5ch;
    font-size: clamp(34px, 9.3vw, 44px);
    line-height: .91;
  }

  .home .impact-soest-mobile__text--finale {
    max-width: 25ch;
    font-size: clamp(14.5px, 3.75vw, 16px);
  }

  .home .impact-soest-mobile__state--4 .impact-soest-mobile__cta {
    width: min(100%, 272px);
    min-height: 56px;
  }

  .home .impact-soest-mobile__state--4 .impact-soest-mobile__cta-wrap {
    padding-right: 58px;
  }
}

/* v0.7.305 — Impact Soest mobile state 04 bottom breathing room.
   Add a small, deliberate cushion below the subtle "VERDER" hint only.
   Preserve state 04 composition, WhatsApp trigger and desktop >=901px. */
@media (max-width: 900px) {
  .home .impact-soest-mobile__state--4 {
    padding-bottom: 54px;
  }
}

@media (max-width: 560px) {
  .home .impact-soest-mobile__state--4 {
    padding-bottom: 48px;
  }
}

/* v0.7.306 — Impact Soest mobile state 04: center "VERDER" in the remaining
   vertical space between the CTA and the bottom of the sticky orange stage.
   Undo the v0.7.305 bottom-padding approach; keep desktop >=901px untouched. */
@media (max-width: 900px) {
  .home .impact-soest-mobile__state--4 {
    padding-bottom: 0;
  }

  .home .impact-soest-mobile__state--4 .impact-soest-mobile__continue {
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 0;
    margin-bottom: 0;
    display: flex;
    align-items: center;
  }
}

@media (max-width: 560px) {
  .home .impact-soest-mobile__state--4 {
    padding-bottom: 0;
  }
}

/* v0.7.307 — Homepage Impactpartners mobile editorial composition.
   Mobile only: turn the existing stacked desktop reduction into a deliberate
   recruitment chapter: copy first, network as the visual anchor, CTA last.
   Desktop >=901px remains untouched. */
@media (max-width: 900px) {
  .home .home-partners--recruit {
    --impact-space: clamp(24px, 6vw, 34px);
  }

  .home .home-partners__recruit-grid {
    grid-template-columns:
      var(--impact-space)
      minmax(0, 1fr)
      var(--impact-space);
    grid-template-rows: auto auto auto auto auto;
    row-gap: 0;
    padding-top: clamp(36px, 5.5svh, 52px);
    padding-bottom: clamp(42px, 6svh, 58px);
  }

  /* Let the existing copy children participate directly in the mobile grid,
     so the network can sit between explanation and conversion without
     changing desktop markup. */
  .home .home-partners__recruit-copy {
    display: contents;
  }

  .home .home-partners__recruit-copy .eyebrow {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
  }

  .home .home-partners__recruit-copy h2 {
    grid-column: 2;
    grid-row: 2;
    max-width: 10.6ch;
    margin: 16px 0 0;
    font-size: clamp(39px, 10.7vw, 50px);
    line-height: .93;
    letter-spacing: -.045em;
  }

  .home .home-partners__recruit-text {
    grid-column: 2;
    grid-row: 3;
    max-width: 30ch;
    margin: clamp(22px, 3.4svh, 28px) 0 0;
    font-size: clamp(15px, 3.9vw, 17px);
    line-height: 1.48;
  }

  .home .home-partners__network {
    grid-column: 2;
    grid-row: 4;
    width: 100%;
    margin: 0;
    padding: clamp(28px, 4.5svh, 38px) 0 clamp(24px, 3.8svh, 32px);
    align-items: center;
    justify-content: center;
  }

  .home .home-partners__network-svg {
    width: min(72%, 330px);
  }

  .home .home-partners__recruit-cta {
    grid-column: 2;
    grid-row: 5;
    width: 100%;
    margin: 0;
  }

  .home .home-partners__recruit-cta p {
    margin: 0 0 14px;
    font-size: clamp(18px, 4.8vw, 21px);
    line-height: 1.15;
  }

  .home .home-partners__recruit-cta .button {
    width: min(100%, 282px);
    min-height: 56px;
    padding-left: 24px;
    padding-right: 22px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
  }
}

@media (max-width: 560px) {
  .home .home-partners--recruit {
    --impact-space: 22px;
  }

  .home .home-partners__recruit-grid {
    padding-top: 34px;
    padding-bottom: 44px;
  }

  .home .home-partners__recruit-copy h2 {
    max-width: 10.4ch;
    font-size: clamp(37px, 10.3vw, 45px);
  }

  .home .home-partners__recruit-text {
    max-width: 28ch;
    font-size: clamp(14.5px, 3.75vw, 16px);
  }

  .home .home-partners__network-svg {
    width: min(74%, 300px);
  }

  .home .home-partners__recruit-cta .button {
    width: min(100%, 272px);
  }
}

/* v0.7.308 — Homepage Impactpartners mobile one-screen composition.
   Hard mobile requirement: eyebrow + heading + network + CTA must fit within
   one mobile viewport. Hide explanatory body copy on mobile only.
   Desktop >=901px remains untouched. */
@media (max-width: 900px) {
  .home .home-partners--recruit {
    height: calc(100svh - 82px);
    min-height: 0;
    overflow: hidden;
  }

  .home .home-partners__container,
  .home .home-partners__recruit-grid {
    height: 100%;
    min-height: 0;
  }

  .home .home-partners__recruit-grid {
    grid-template-columns:
      var(--impact-space)
      minmax(0, 1fr)
      var(--impact-space);
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    padding-top: clamp(20px, 3.2svh, 30px);
    padding-bottom: clamp(18px, 2.8svh, 26px);
  }

  .home .home-partners__recruit-copy {
    display: contents;
  }

  .home .home-partners__recruit-copy .eyebrow {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
  }

  .home .home-partners__recruit-copy h2 {
    grid-column: 2;
    grid-row: 2;
    max-width: 10.5ch;
    margin: clamp(10px, 1.6svh, 14px) 0 0;
    font-size: clamp(34px, min(9.2vw, 6.3svh), 46px);
    line-height: .93;
    letter-spacing: -.045em;
  }

  .home .home-partners__recruit-text {
    display: none !important;
  }

  .home .home-partners__network {
    grid-column: 2;
    grid-row: 3;
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: clamp(10px, 1.7svh, 16px) 0 clamp(8px, 1.4svh, 14px);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .home .home-partners__network-svg {
    width: min(76%, 300px);
    max-height: 31svh;
    height: auto;
  }

  .home .home-partners__recruit-cta {
    grid-column: 2;
    grid-row: 4;
    width: 100%;
    margin: 0;
  }

  .home .home-partners__recruit-cta p {
    margin: 0 0 clamp(8px, 1.3svh, 12px);
    font-size: clamp(17px, 4.4vw, 20px);
    line-height: 1.05;
  }

  .home .home-partners__recruit-cta .button {
    width: min(100%, 280px);
    min-height: clamp(52px, 7svh, 58px);
    padding: 0 22px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
  }
}

@media (max-width: 560px) {
  .home .home-partners--recruit {
    height: calc(100svh - 72px);
  }

  .home .home-partners--recruit {
    --impact-space: 22px;
  }

  .home .home-partners__recruit-grid {
    padding-top: clamp(18px, 2.8svh, 24px);
    padding-bottom: clamp(16px, 2.4svh, 22px);
  }

  .home .home-partners__recruit-copy h2 {
    max-width: 10.2ch;
    font-size: clamp(32px, min(9.8vw, 5.9svh), 42px);
  }

  .home .home-partners__network-svg {
    width: min(78%, 280px);
    max-height: 29svh;
  }

  .home .home-partners__recruit-cta .button {
    width: min(100%, 270px);
    min-height: clamp(50px, 6.6svh, 56px);
  }
}

/* Extra guard for short mobile screens: preserve the one-screen requirement
   by reducing only the scalable visual/type, never the CTA or content order. */
@media (max-width: 900px) and (max-height: 700px) {
  .home .home-partners__recruit-grid {
    padding-top: 16px;
    padding-bottom: 14px;
  }

  .home .home-partners__recruit-copy h2 {
    margin-top: 8px;
    font-size: clamp(30px, min(8.8vw, 5.3svh), 38px);
  }

  .home .home-partners__network {
    padding-top: 6px;
    padding-bottom: 6px;
  }

  .home .home-partners__network-svg {
    max-height: 25svh;
    width: min(70%, 250px);
  }

  .home .home-partners__recruit-cta p {
    margin-bottom: 7px;
    font-size: 17px;
  }

  .home .home-partners__recruit-cta .button {
    min-height: 50px;
  }
}

/* v0.7.312 — Mobile hero: static one-screen cover with scroll-linked vertical EVOLVO reveal.
   Desktop >=901px stays untouched. The visible hero is exactly one mobile viewport
   below the fixed header; only the letter reveal is scrubbed by scroll. */
.hero__mobile-word,
.hero__mobile-continue {
  display: none;
}

@media (max-width: 900px) {
  .home .hero--home[data-mobile-hero-reveal] {
    /* Extra document travel creates the reveal range while the one-screen cover
       stays pinned. Once the reveal is complete, normal page flow pushes it away. */
    height: 145svh;
    min-height: 0;
    padding: 0;
    overflow: visible;
    display: block;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__layout,
  .home .hero--home[data-mobile-hero-reveal].hero--with-image .hero__layout {
    position: sticky;
    top: 72px;
    width: 100%;
    height: calc(100svh - 72px);
    min-height: 0;
    padding-top: clamp(26px, 4svh, 34px);
    padding-bottom: clamp(18px, 2.7svh, 24px);
    box-sizing: border-box;
    display: block;
    overflow: hidden;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__content {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 100%;
  }

  .home .hero--home[data-mobile-hero-reveal] .eyebrow {
    margin: 0 0 clamp(12px, 1.8svh, 16px);
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: .15em;
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .home .hero--home[data-mobile-hero-reveal] h1,
  .home .hero--home[data-mobile-hero-reveal].hero--with-image h1 {
    max-width: 10.5ch;
    margin: 0;
    font-size: clamp(44px, min(12.4vw, 7.2svh), 54px);
    line-height: .90;
    letter-spacing: -.058em;
    animation: none !important;
    transform: none !important;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero-title-line {
    display: block;
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__lead,
  .home .hero--home[data-mobile-hero-reveal] .hero__actions,
  .home .hero--home[data-mobile-hero-reveal] .hero__media {
    display: none !important;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__mobile-word {
    position: absolute;
    z-index: 1;
    left: 50%;
    top: clamp(230px, 35svh, 300px);
    bottom: clamp(62px, 9svh, 78px);
    display: grid;
    grid-template-rows: repeat(6, minmax(0, 1fr));
    align-items: center;
    justify-items: center;
    width: min(34vw, 138px);
    transform: translateX(-50%);
    pointer-events: none;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__mobile-word span {
    display: block;
    font-size: clamp(34px, min(9.8vw, 5.8svh), 48px);
    line-height: 1;
    font-weight: 850;
    letter-spacing: -.05em;
    opacity: var(--hero-letter-opacity, .05);
    filter: blur(var(--hero-letter-blur, 5px));
    transform: translateY(var(--hero-letter-y, 9px));
    transition: none;
    will-change: opacity, filter, transform;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__mobile-continue {
    position: absolute;
    z-index: 3;
    left: 50%;
    bottom: clamp(18px, 2.7svh, 24px);
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    color: currentColor;
    text-decoration: none;
    font-size: 11px;
    line-height: 1;
    font-weight: 850;
    letter-spacing: .14em;
    opacity: var(--hero-continue-opacity, .45);
    transform: translateX(-50%);
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__mobile-continue > span:first-child {
    font-size: 15px;
    letter-spacing: 0;
  }
}

@media (max-width: 560px) {
  .home .hero--home[data-mobile-hero-reveal] {
    height: 142svh;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__layout,
  .home .hero--home[data-mobile-hero-reveal].hero--with-image .hero__layout {
    padding-top: clamp(22px, 3.3svh, 28px);
    padding-bottom: 18px;
  }

  .home .hero--home[data-mobile-hero-reveal] h1,
  .home .hero--home[data-mobile-hero-reveal].hero--with-image h1 {
    max-width: 10.3ch;
    font-size: clamp(40px, min(11.7vw, 6.8svh), 49px);
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__mobile-word {
    top: clamp(210px, 34svh, 270px);
    bottom: clamp(58px, 8.5svh, 72px);
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__mobile-word span {
    font-size: clamp(31px, min(9vw, 5.4svh), 43px);
  }
}

/* Short-screen guard: all six letters and the scroll cue remain inside the
   single visible hero viewport. */
@media (max-width: 900px) and (max-height: 700px) {
  .home .hero--home[data-mobile-hero-reveal] {
    height: 138svh;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__layout,
  .home .hero--home[data-mobile-hero-reveal].hero--with-image .hero__layout {
    padding-top: 15px;
    padding-bottom: 12px;
  }

  .home .hero--home[data-mobile-hero-reveal] .eyebrow {
    margin-bottom: 8px;
  }

  .home .hero--home[data-mobile-hero-reveal] h1,
  .home .hero--home[data-mobile-hero-reveal].hero--with-image h1 {
    font-size: clamp(35px, min(10.3vw, 6svh), 42px);
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__mobile-word {
    top: clamp(176px, 31svh, 215px);
    bottom: 50px;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__mobile-word span {
    font-size: clamp(27px, min(8.3vw, 4.8svh), 34px);
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__mobile-continue {
    bottom: 11px;
    gap: 3px;
  }
}

/* v0.7.314 — Mobile hero exit: true layered 3D reveal.
   Based on the approved v0.7.312 hero. Ons doel is the real underlay; the hero
   folds away from the viewer around its top edge in the final scroll phase. */
@media (max-width: 900px) {
  .home {
    --mobile-header-height: 72px;
  }

  .home .hero--home[data-mobile-hero-reveal] {
    position: relative;
    z-index: 3;
    height: 165svh;
    min-height: 0;
    padding: 0;
    overflow: visible;
    perspective: 1200px;
    perspective-origin: 50% 10%;
    background: transparent;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__layout,
  .home .hero--home[data-mobile-hero-reveal].hero--with-image .hero__layout {
    position: sticky;
    top: var(--mobile-header-height);
    z-index: 2;
    width: 100%;
    height: calc(100svh - var(--mobile-header-height));
    min-height: 0;
    background: var(--off-white);
    transform-origin: 50% 0%;
    transform:
      translateY(var(--hero-fold-y, 0px))
      scale(var(--hero-fold-scale, 1))
      rotateX(var(--hero-fold-angle, 0deg));
    opacity: var(--hero-fold-opacity, 1);
    box-shadow:
      0 calc(16px * var(--hero-fold-shadow, 0))
      calc(44px * var(--hero-fold-shadow, 0))
      rgba(0,0,0,calc(.30 * var(--hero-fold-shadow, 0)));
    backface-visibility: hidden;
    transform-style: preserve-3d;
    will-change: transform, opacity, box-shadow;
  }

  /* Pull the actual Ons doel chapter upward behind the folding hero. No fake
     background is used: this is the existing live section and its real content. */
  .home [data-mobile-hero-underlay] {
    position: relative;
    z-index: 1;
    margin-top: calc(-1 * (100svh - var(--mobile-header-height)));
    min-height: calc(100svh - var(--mobile-header-height));
    box-sizing: border-box;
    transform: translateY(var(--hero-underlay-y, 18px));
    opacity: var(--hero-underlay-opacity, .92);
    will-change: transform, opacity;
  }

  /* During the reveal, make sure the underlay starts directly below the fixed
     header so the opening created by the fold exposes Ons doel immediately. */
  .home [data-mobile-hero-underlay] .content-block {
    position: relative;
    z-index: 1;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__mobile-continue {
    opacity: calc(var(--hero-continue-opacity, .45) * var(--hero-cue-fold-opacity, 1));
  }
}

@media (max-width: 560px) {
  .home .hero--home[data-mobile-hero-reveal] {
    height: 160svh;
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .home .hero--home[data-mobile-hero-reveal] {
    height: 155svh;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .home .hero--home[data-mobile-hero-reveal] {
    perspective: none;
  }

  .home .hero--home[data-mobile-hero-reveal] .hero__layout,
  .home .hero--home[data-mobile-hero-reveal].hero--with-image .hero__layout {
    transform: none !important;
    opacity: 1 !important;
    box-shadow: none !important;
  }

  .home [data-mobile-hero-underlay] {
    margin-top: 0;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* v0.7.315 — Finish the mobile hero fold completely.
   The final scroll phase takes the cover to ~-88deg and fades it to zero,
   preventing the folded plane from covering Ons doel. */
@media (max-width: 900px) {
  .home .hero--home[data-mobile-hero-reveal] .hero__layout,
  .home .hero--home[data-mobile-hero-reveal].hero--with-image .hero__layout {
    visibility: visible;
  }
}

/* v0.7.316 — Mobile Ons doel: one-screen editorial chapter + scroll-linked growth.
   Desktop >=901px remains untouched. */
.section-lead--mobile,
.goal-mobile-continue {
  display: none;
}

@media (max-width: 900px) {
  .home #ons-doel[data-mobile-goal-scroll],
  .home #ons-doel[data-mobile-goal-scroll].home-position--2 {
    position: relative;
    z-index: 1;
    min-height: 160svh;
    padding: 0;
    overflow: visible;
  }

  .home #ons-doel[data-mobile-goal-scroll] > .content-block {
    position: sticky;
    top: 72px;
    height: calc(100svh - 72px);
    min-height: 0;
    width: 100%;
    box-sizing: border-box;
    padding-top: clamp(30px, 4.6svh, 42px);
    padding-bottom: clamp(18px, 2.8svh, 24px);
    display: grid;
    grid-template-rows: auto auto auto minmax(0, 1fr) auto;
    align-content: stretch;
    overflow: hidden;
  }

  .home #ons-doel[data-mobile-goal-scroll] .eyebrow {
    margin: 0 0 clamp(12px, 1.8svh, 16px);
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: .15em;
    filter: none !important;
    opacity: 1 !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] h2 {
    max-width: 9.4ch;
    margin: 0;
    font-size: clamp(42px, min(11.5vw, 7.2svh), 54px);
    line-height: .91;
    letter-spacing: -.052em;
    filter: none !important;
    opacity: 1 !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] .section-lead--desktop {
    display: none !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] .section-lead--mobile {
    display: block;
    max-width: 27ch;
    margin: clamp(18px, 2.7svh, 24px) 0 0;
    font-size: clamp(15px, min(3.9vw, 2.25svh), 17px);
    line-height: 1.42;
    color: #bdbdb7;
    filter: none !important;
    opacity: 1 !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth-stage {
    min-height: 0;
    margin: 0;
    padding: clamp(20px, 3.4svh, 30px) 0 clamp(12px, 2svh, 18px);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth {
    width: min(94%, 390px);
    max-height: 27svh;
    margin: 0;
    opacity: 1 !important;
    transform: none !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth__svg {
    width: 100%;
    height: auto;
    max-height: 27svh;
    overflow: visible;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth__guide {
    stroke: rgba(255,255,255,.10);
    stroke-width: 2.2;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth__line {
    stroke-width: 3.4;
    stroke-dasharray: 1;
    stroke-dashoffset: var(--goal-line-offset, 1) !important;
    transition: none !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth__node {
    opacity: var(--goal-node-opacity, 0) !important;
    transform: scale(var(--goal-node-scale, .35)) !important;
    transition: none !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth__finish {
    opacity: var(--goal-finish-opacity, 0) !important;
    transform: translateY(var(--goal-finish-y, 7px)) !important;
    transition: none !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-mobile-continue {
    justify-self: center;
    align-self: end;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    color: #bdbdb7;
    text-decoration: none;
    font-size: 11px;
    line-height: 1;
    font-weight: 850;
    letter-spacing: .14em;
    opacity: var(--goal-continue-opacity, .38);
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-mobile-continue > span:first-child {
    font-size: 15px;
    letter-spacing: 0;
  }
}

@media (max-width: 560px) {
  .home #ons-doel[data-mobile-goal-scroll],
  .home #ons-doel[data-mobile-goal-scroll].home-position--2 {
    min-height: 154svh;
  }

  .home #ons-doel[data-mobile-goal-scroll] > .content-block {
    padding-top: clamp(26px, 4svh, 34px);
    padding-bottom: 16px;
  }

  .home #ons-doel[data-mobile-goal-scroll] h2 {
    max-width: 9.1ch;
    font-size: clamp(39px, min(10.8vw, 6.8svh), 49px);
  }

  .home #ons-doel[data-mobile-goal-scroll] .section-lead--mobile {
    max-width: 25ch;
    font-size: clamp(14.5px, min(3.75vw, 2.15svh), 16px);
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth {
    width: min(96%, 360px);
    max-height: 25svh;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth__svg {
    max-height: 25svh;
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .home #ons-doel[data-mobile-goal-scroll],
  .home #ons-doel[data-mobile-goal-scroll].home-position--2 {
    min-height: 148svh;
  }

  .home #ons-doel[data-mobile-goal-scroll] > .content-block {
    padding-top: 16px;
    padding-bottom: 10px;
  }

  .home #ons-doel[data-mobile-goal-scroll] .eyebrow {
    margin-bottom: 8px;
  }

  .home #ons-doel[data-mobile-goal-scroll] h2 {
    font-size: clamp(34px, min(9.8vw, 5.9svh), 41px);
  }

  .home #ons-doel[data-mobile-goal-scroll] .section-lead--mobile {
    margin-top: 12px;
    font-size: clamp(13.5px, 3.5vw, 15px);
    line-height: 1.34;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth-stage {
    padding-top: 12px;
    padding-bottom: 8px;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth,
  .home #ons-doel[data-mobile-goal-scroll] .goal-growth__svg {
    max-height: 22svh;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-mobile-continue {
    gap: 3px;
    font-size: 10px;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .home #ons-doel[data-mobile-goal-scroll] {
    min-height: calc(100svh - 72px);
  }

  .home #ons-doel[data-mobile-goal-scroll] > .content-block {
    position: relative;
    top: auto;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth__line {
    stroke-dashoffset: 0 !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth__node,
  .home #ons-doel[data-mobile-goal-scroll] .goal-growth__finish {
    opacity: 1 !important;
    transform: none !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-mobile-continue {
    opacity: .7;
  }
}

/* v0.7.317 — Mobile Ons doel correction:
   - restore the shared mobile side grid;
   - keep the growth/handwriting composition inside the viewport;
   - disable legacy timer animations on mobile so handwriting is scroll-scrubbed. */
@media (max-width: 900px) {
  .home #ons-doel[data-mobile-goal-scroll],
  .home #ons-doel[data-mobile-goal-scroll].home-position--2 {
    min-height: 176svh;
  }

  .home #ons-doel[data-mobile-goal-scroll] > .content-block {
    padding-left: clamp(22px, 6vw, 30px);
    padding-right: clamp(22px, 6vw, 30px);
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth-stage {
    width: calc(100% + 8px);
    max-width: none;
    margin-left: -4px;
    margin-right: -4px;
    padding-left: 0;
    padding-right: 0;
    overflow: visible;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth-stage .goal-growth {
    width: 100%;
    max-width: 390px;
    margin: 0 auto;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth-handwrite {
    right: 0;
    top: 57%;
    width: min(42%, 170px);
    transform: translateY(-50%) rotate(-2.2deg);
  }

  /* Mobile handwriting is controlled entirely by the v0.7.317 scroll controller. */
  .home #ons-doel[data-mobile-goal-scroll].is-goal-growth-active .goal-script-stroke,
  .home #ons-doel[data-mobile-goal-scroll].is-goal-growth-active .goal-growth-handwrite__arrow {
    animation: none !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-script-stroke {
    stroke-dasharray: 1;
    stroke-dashoffset: var(--goal-script-offset, 1) !important;
    opacity: var(--goal-script-opacity, 0) !important;
    transition: none !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth-handwrite__arrow {
    stroke-dasharray: 1;
    stroke-dashoffset: var(--goal-arrow-offset, 1) !important;
    opacity: var(--goal-arrow-opacity, 0) !important;
    transform: translateY(var(--goal-arrow-y, 4px));
    transition: none !important;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-mobile-continue {
    margin-top: 0;
  }
}

@media (max-width: 560px) {
  .home #ons-doel[data-mobile-goal-scroll],
  .home #ons-doel[data-mobile-goal-scroll].home-position--2 {
    min-height: 170svh;
  }

  .home #ons-doel[data-mobile-goal-scroll] > .content-block {
    padding-left: 20px;
    padding-right: 20px;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth-stage {
    width: calc(100% + 4px);
    margin-left: -2px;
    margin-right: -2px;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth-stage .goal-growth {
    width: 100%;
    max-width: 360px;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth-handwrite {
    right: 2px;
    top: 58%;
    width: min(44%, 156px);
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .home #ons-doel[data-mobile-goal-scroll],
  .home #ons-doel[data-mobile-goal-scroll].home-position--2 {
    min-height: 164svh;
  }

  .home #ons-doel[data-mobile-goal-scroll] > .content-block {
    padding-left: 18px;
    padding-right: 18px;
  }

  .home #ons-doel[data-mobile-goal-scroll] .goal-growth-handwrite {
    top: 58%;
    width: min(41%, 145px);
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .home #ons-doel[data-mobile-goal-scroll] .goal-script-stroke,
  .home #ons-doel[data-mobile-goal-scroll] .goal-growth-handwrite__arrow {
    stroke-dashoffset: 0 !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* v0.7.318 — Mobile navigation rebuild.
   Same menu structure/data as desktop, rendered as a clean editorial mobile menu. */
.site-nav__cta-label--mobile {
  display: none;
}

@media (max-width: 900px) {
  body.is-mobile-menu-open {
    overflow: hidden;
  }

  .site-header {
    background: var(--off-white);
  }

  .site-header__inner {
    position: relative;
    z-index: 2;
  }

  .menu-toggle {
    position: relative;
    z-index: 3;
    width: 44px;
    height: 44px;
    margin-right: -10px;
    padding: 10px;
    display: grid;
    place-content: center;
  }

  .menu-toggle span:not(.screen-reader-text) {
    width: 28px;
    height: 2px;
    margin: 0;
    transition: transform .22s ease, opacity .22s ease;
  }

  .menu-toggle span:not(.screen-reader-text) + span:not(.screen-reader-text) {
    margin-top: 7px;
  }

  .menu-toggle[aria-expanded="true"] span:not(.screen-reader-text):first-child {
    transform: translateY(4.5px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] span:not(.screen-reader-text):nth-child(2) {
    transform: translateY(-4.5px) rotate(-45deg);
  }

  .site-nav {
    position: fixed;
    inset: 72px 0 0;
    z-index: 1;
    display: block;
    height: calc(100svh - 72px);
    padding: clamp(28px, 4.5svh, 42px) clamp(22px, 6vw, 30px) clamp(24px, 4svh, 34px);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--off-white);
    border: 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    pointer-events: none;
    transition:
      opacity .20s ease,
      transform .24s cubic-bezier(.2,.75,.2,1),
      visibility .20s;
  }

  .site-nav.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }

  .site-nav__menu {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
  }

  .site-nav__menu > li {
    margin: 0;
    padding: 0;
  }

  .site-nav__menu > li + li {
    margin-top: clamp(22px, 3.2svh, 30px);
  }

  .site-nav__menu > li > a,
  .site-nav__menu > li > .site-nav__dropdown-link {
    display: inline-flex;
    width: auto;
    padding: 0;
    font-size: clamp(28px, 7.4vw, 36px);
    line-height: .98;
    font-weight: 800;
    letter-spacing: -.045em;
    text-decoration: none;
  }

  .site-nav__dropdown-arrow {
    display: none !important;
  }

  .site-nav__submenu {
    position: static;
    min-width: 0;
    width: 100%;
    margin: clamp(14px, 2.1svh, 18px) 0 0;
    padding: 0 0 0 18px;
    display: grid;
    gap: 9px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: none;
  }

  .site-nav__submenu::before {
    display: none;
  }

  .site-nav__submenu li,
  .site-nav__submenu li + li {
    margin: 0;
    padding: 0;
  }

  .site-nav__submenu a {
    display: inline-block;
    padding: 2px 0;
    border-radius: 0;
    white-space: normal;
    font-size: clamp(17px, 4.7vw, 21px);
    line-height: 1.22;
    font-weight: 650;
    letter-spacing: -.025em;
    color: rgba(10,10,10,.72);
  }

  .site-nav__submenu a:hover,
  .site-nav__submenu a:focus-visible {
    background: transparent;
    color: var(--black);
  }

  .site-nav__actions {
    width: 100%;
    margin-top: clamp(30px, 5svh, 46px);
    padding-top: clamp(22px, 3.2svh, 30px);
    border-top: 1px solid rgba(10,10,10,.12);
  }

  .site-nav__cta {
    width: 100%;
    min-height: 58px;
    padding: 0 24px;
    border-radius: 18px;
    display: inline-flex;
    justify-content: space-between;
    font-size: 15px;
    font-weight: 850;
    letter-spacing: .025em;
    text-transform: uppercase;
  }

  .site-nav__cta::after {
    margin-left: auto;
    font-size: 1.2em;
  }

  .site-nav__cta-label--desktop {
    display: none;
  }

  .site-nav__cta-label--mobile {
    display: inline;
  }
}

@media (max-width: 560px) {
  .site-nav {
    padding-left: 20px;
    padding-right: 20px;
    padding-top: 26px;
  }

  .site-nav__menu > li + li {
    margin-top: 21px;
  }

  .site-nav__submenu {
    margin-top: 13px;
    padding-left: 16px;
    gap: 8px;
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .site-nav {
    padding-top: 20px;
    padding-bottom: 20px;
  }

  .site-nav__menu > li + li {
    margin-top: 17px;
  }

  .site-nav__menu > li > a,
  .site-nav__menu > li > .site-nav__dropdown-link {
    font-size: clamp(25px, 6.6vw, 31px);
  }

  .site-nav__submenu {
    margin-top: 10px;
    gap: 6px;
  }

  .site-nav__submenu a {
    font-size: clamp(16px, 4.2vw, 19px);
  }

  .site-nav__actions {
    margin-top: 24px;
    padding-top: 18px;
  }

  .site-nav__cta {
    min-height: 54px;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .site-nav,
  .menu-toggle span:not(.screen-reader-text) {
    transition: none !important;
  }
}

/* v0.7.320 — Mobile menu option B: true compact accordion.
   Closed state takes zero vertical space. Opening the submenu creates height
   and pushes the following main navigation items down naturally. */
.site-nav__mobile-accordion-toggle {
  display: none;
}

@media (max-width: 900px) {
  .site-nav__dropdown-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }

  .site-nav__dropdown-row .site-nav__dropdown-link {
    min-width: 0;
    flex: 1 1 auto;
  }

  .site-nav__mobile-accordion-toggle {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    margin: -8px -8px -8px 0;
    padding: 0;
    display: grid;
    place-items: center;
    border: 0;
    background: transparent;
    color: var(--black);
    cursor: pointer;
  }

  .site-nav__mobile-accordion-icon {
    position: relative;
    display: block;
    width: 16px;
    height: 16px;
  }

  .site-nav__mobile-accordion-icon::before,
  .site-nav__mobile-accordion-icon::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 16px;
    height: 2px;
    background: currentColor;
    transform: translate(-50%, -50%);
    transition: transform .22s ease, opacity .22s ease;
  }

  .site-nav__mobile-accordion-icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
  }

  .site-nav__mobile-accordion-toggle[aria-expanded="true"] .site-nav__mobile-accordion-icon::after {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(90deg) scaleX(.2);
  }

  /* Critical compact closed state: no height, no margin, no padding, no gap. */
  .site-nav__item--dropdown > .site-nav__submenu {
    display: block;
    max-height: 0;
    margin: 0;
    padding: 0 0 0 18px;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transform: none;
    transition:
      max-height .30s cubic-bezier(.2,.75,.2,1),
      opacity .18s ease,
      margin-top .30s cubic-bezier(.2,.75,.2,1),
      visibility .18s;
  }

  .site-nav__item--dropdown > .site-nav__submenu > li,
  .site-nav__item--dropdown > .site-nav__submenu > li + li {
    margin: 0;
    padding: 0;
  }

  .site-nav__item--dropdown > .site-nav__submenu > li + li {
    margin-top: 9px;
  }

  .site-nav__item--dropdown.is-mobile-submenu-open > .site-nav__submenu {
    max-height: 360px;
    margin-top: clamp(14px, 2.1svh, 18px);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* Desktop hover/focus rules must never reserve mobile submenu space. */
  .site-nav__item--dropdown:hover > .site-nav__submenu,
  .site-nav__item--dropdown:focus-within > .site-nav__submenu {
    transform: none;
  }

  .site-nav__item--dropdown:not(.is-mobile-submenu-open):hover > .site-nav__submenu,
  .site-nav__item--dropdown:not(.is-mobile-submenu-open):focus-within > .site-nav__submenu {
    max-height: 0;
    margin-top: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

@media (max-width: 560px) {
  .site-nav__item--dropdown > .site-nav__submenu {
    padding-left: 16px;
  }

  .site-nav__item--dropdown > .site-nav__submenu > li + li {
    margin-top: 8px;
  }

  .site-nav__item--dropdown.is-mobile-submenu-open > .site-nav__submenu {
    margin-top: 13px;
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .site-nav__item--dropdown > .site-nav__submenu > li + li {
    margin-top: 6px;
  }

  .site-nav__item--dropdown.is-mobile-submenu-open > .site-nav__submenu {
    margin-top: 10px;
    max-height: 320px;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .site-nav__item--dropdown > .site-nav__submenu,
  .site-nav__mobile-accordion-icon::before,
  .site-nav__mobile-accordion-icon::after {
    transition: none !important;
  }
}

/* v0.7.321 — Mobile menu polish:
   "Onze Stichting" must render exactly like the other top-level navigation items. */
@media (max-width: 900px) {
  .site-nav__menu > li > .site-nav__dropdown-row > .site-nav__dropdown-link {
    color: var(--black) !important;
    font-family: inherit;
    font-size: clamp(28px, 7.4vw, 36px);
    line-height: .98;
    font-weight: 800;
    letter-spacing: -.045em;
    text-decoration: none;
    opacity: 1 !important;
    -webkit-text-fill-color: currentColor;
  }

  .site-nav__menu > li > .site-nav__dropdown-row > .site-nav__dropdown-link:visited,
  .site-nav__menu > li > .site-nav__dropdown-row > .site-nav__dropdown-link:hover,
  .site-nav__menu > li > .site-nav__dropdown-row > .site-nav__dropdown-link:focus,
  .site-nav__menu > li > .site-nav__dropdown-row > .site-nav__dropdown-link:active {
    color: var(--black) !important;
    opacity: 1 !important;
  }
}

@media (max-width: 900px) and (max-height: 700px) {
  .site-nav__menu > li > .site-nav__dropdown-row > .site-nav__dropdown-link {
    font-size: clamp(25px, 6.6vw, 31px);
  }
}

/* v0.7.340 — Ons Aanbod mobile: consolidated scroll-story CSS.
   Single authoritative mobile layout. Scroll geometry lives on the position
   wrapper; the postcard itself is one normal interactive grid card. */
@media (max-width: 900px) {
  .offer-onepager__stage {
    position: relative;
    display: block;
    height: auto !important;
    min-height: 350svh;
    padding: 0 !important;
    overflow: visible;
  }

  .offer-onepager__sticky-shell {
    position: sticky;
    top: 72px;
    height: calc(100svh - 72px);
    min-height: calc(100svh - 72px);
    box-sizing: border-box;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden;
    background: var(--off-white, #f5f5f1);
  }

  .offer-onepager__intro {
    position: relative;
    z-index: 3;
    padding: 14px clamp(22px,5vw,36px) 6px;
    transform: scale(var(--offer-intro-scale,1));
    transform-origin: left top;
    opacity: var(--offer-intro-opacity,1);
    transition: none;
    will-change: transform,opacity;
  }

  .offer-onepager__intro .eyebrow {
    margin-bottom: 6px;
  }

  .offer-onepager__intro h1 {
    max-width: 12.5em;
    margin-bottom: 0;
    font-size: clamp(34px,8.7vw,38px);
    line-height: .96;
    letter-spacing: -.045em;
  }

  .offer-onepager__intro > p:not(.eyebrow) {
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.35;
  }

  .offer-onepager__carousel-viewport {
    position: relative;
    min-height: 0;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    align-items: stretch;
    overflow: hidden;
    padding: 5px 0 8px;
  }

  .offer-postcards {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 12px;
    width: max-content;
    max-width: none;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
    scroll-snap-type: none;
    touch-action: pan-y;
    transform: translate3d(var(--offer-track-x,0px),0,0);
    transition: none;
    will-change: transform;
  }

  .offer-postcard-position {
    flex: 0 0 calc(100vw - 44px);
    width: calc(100vw - 44px);
    max-width: 430px;
    height: 100%;
    min-height: 0;
    box-sizing: border-box;
    transform: scale(var(--offer-card-scale,1));
    transform-origin: center center;
    opacity: var(--offer-card-opacity,1);
    filter: blur(var(--offer-card-blur,0px));
    transition: none;
    will-change: transform,opacity,filter;
  }

  .offer-postcard,
  .offer-postcard[role="button"] {
    position: relative;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-width: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border-radius: 28px;
    background: #fff;
    cursor: pointer;
    pointer-events: auto;
    transform: translate3d(0,var(--offer-card-lift,0px),0);
    box-shadow: var(--offer-card-shadow,0 10px 30px rgba(10,10,10,.08));
    transition: transform .18s ease,box-shadow .18s ease,border-color .18s ease;
    will-change: transform;
  }

  /* v0.7.340 — Geometry fix.
     The visual row previously had a hard minimum height. Together with the
     auto-sized white body this could make the grid content taller than the
     article itself. The visual row may now shrink, keeping the complete
     visible postcard inside the article's real hit rectangle. */

  /* Mobile: the article itself is the only pointer target.
     Every visible child becomes passive so a tap anywhere on the postcard
     lands directly on .offer-postcard. */
  .offer-postcard * {
    pointer-events: none;
  }

  .offer-postcard__visual {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 0;
    height: auto;
    max-height: none;
    overflow: hidden;
    border-radius: 28px 28px 0 0;
  }

  .offer-postcard__body {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 0;
    box-sizing: border-box;
    padding: 16px 20px 18px;
    background: #fff;
    transition: background-color .18s ease;
  }

  .offer-postcard__body strong {
    font-size: clamp(29px,7.8vw,37px);
  }

  .offer-postcard__subtitle {
    margin-top: 7px;
  }

  .offer-postcard__copy {
    margin-top: 7px;
  }

  .offer-postcard__discover {
    margin-top: 12px;
  }

  .offer-postcard:hover,
  .offer-postcard:focus-visible,
  .offer-postcard.is-active,
  .offer-postcard.is-current {
    --offer-card-lift: -4px;
    --offer-card-shadow:
      0 18px 42px rgba(10,10,10,.14),
      0 0 0 2px rgba(10,10,10,.16);
  }

  .offer-postcard:hover .offer-postcard__body,
  .offer-postcard:focus-visible .offer-postcard__body,
  .offer-postcard.is-active .offer-postcard__body,
  .offer-postcard.is-current .offer-postcard__body {
    background: #f0f0eb;
  }

  .offer-postcard:active {
    --offer-card-lift: -1px;
  }

  .offer-postcard[role="button"]:focus-visible {
    outline: 2px solid var(--black,#0a0a0a);
    outline-offset: 3px;
  }

  .offer-postcard__graphic i {
    transition: transform .3s cubic-bezier(.2,.8,.2,1);
  }

  .offer-postcard:hover .offer-postcard__graphic i:nth-child(1),
  .offer-postcard:focus-visible .offer-postcard__graphic i:nth-child(1),
  .offer-postcard.is-current .offer-postcard__graphic i:nth-child(1) {
    transform: scale(1.06);
  }

  .offer-postcard:hover .offer-postcard__graphic i:nth-child(2),
  .offer-postcard:focus-visible .offer-postcard__graphic i:nth-child(2),
  .offer-postcard.is-current .offer-postcard__graphic i:nth-child(2) {
    transform: scale(.94);
  }

  .offer-postcard:hover .offer-postcard__graphic i:nth-child(3),
  .offer-postcard:focus-visible .offer-postcard__graphic i:nth-child(3),
  .offer-postcard.is-current .offer-postcard__graphic i:nth-child(3) {
    transform: scale(1.14);
  }

  .offer-postcard__discover b {
    transition: transform .18s ease;
  }

  .offer-postcard:hover .offer-postcard__discover b,
  .offer-postcard:focus-visible .offer-postcard__discover b,
  .offer-postcard.is-current .offer-postcard__discover b {
    transform: translate3d(4px,-4px,0);
  }

  .offer-postcard__swipe-cue {
    display: none;
  }

  .offer-onepager__mobile-hint {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 6px clamp(22px,5vw,36px) 18px;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .13em;
  }

  .offer-onepager__dialogs {
    position: static;
  }

  .offer-onepager__dialogs .offer-balloon {
    position: fixed;
    inset: 0;
    z-index: 1500;
    align-items: flex-end;
    padding: 0;
    background: rgba(10,10,10,.22);
    backdrop-filter: blur(8px);
  }

  .offer-onepager__dialogs .offer-balloon__panel {
    width: 100%;
    max-height: 86svh;
    padding: 34px 24px 30px;
    border-radius: 30px 30px 0 0;
    background: var(--off-white,#f5f5f1);
    transform: translateY(100%) scale(1);
  }

  .offer-onepager__dialogs .offer-balloon.is-open .offer-balloon__panel {
    transform: translateY(0) scale(1);
  }
}

@media (max-width: 900px) and (max-height: 760px) {
  .offer-onepager__intro {
    padding-top: 10px;
    padding-bottom: 4px;
  }

  .offer-onepager__intro h1 {
    font-size: clamp(32px,8.2vw,36px);
    line-height: .95;
  }

  .offer-postcard {
    grid-template-rows: minmax(0,1fr) auto;
  }

  .offer-postcard__body {
    padding: 14px 18px 15px;
  }

  .offer-postcard__copy {
    display: none;
  }

  .offer-postcard__discover {
    margin-top: 10px;
  }

  .offer-onepager__mobile-hint {
    padding-bottom: 16px;
  }
}

@media (max-width: 560px) {
  .offer-onepager__stage {
    min-height: 340svh;
  }
}

@media (max-width: 900px) and (max-height: 660px) {
  .offer-onepager__stage {
    min-height: 320svh;
  }

  .offer-onepager__intro h1 {
    font-size: clamp(30px,7.8vw,34px);
  }

  .offer-postcard {
    grid-template-rows: minmax(0,1fr) auto;
  }

  .offer-postcard__body {
    padding: 12px 17px 13px;
  }

  .offer-postcard__body strong {
    font-size: clamp(27px,7.3vw,34px);
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 900px) {
  .offer-postcard-position {
    filter: none !important;
  }

  .offer-onepager__intro {
    transform: none !important;
    opacity: 1 !important;
  }
}

/* v0.7.345 — Projecten poster wall */
.projects-poster-page {
    background: var(--black);
    color: #fff;
}

.projects-poster-wall {
    min-height: calc(100svh - 82px);
    background: var(--black);
    overflow: hidden;
}

.projects-poster-wall__inner {
    min-height: calc(100svh - 82px);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: clamp(20px, 2.7vh, 34px);
    padding-top: clamp(28px, 4vh, 46px);
    padding-bottom: clamp(24px, 3.5vh, 40px);
    box-sizing: border-box;
}

.projects-poster-wall__head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 36px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(255,255,255,.18);
}

.projects-poster-wall__head .eyebrow {
    margin: 0 0 8px;
    color: var(--accent);
}

.projects-poster-wall__head h1 {
    margin: 0;
    font-size: clamp(36px, 4.5vw, 68px);
    line-height: .95;
    letter-spacing: -.055em;
    color: #fff;
}

.projects-poster-wall__head-meta {
    display: flex;
    gap: 28px;
    padding-bottom: 5px;
    font-size: 10px;
    line-height: 1;
    letter-spacing: .15em;
    font-weight: 800;
    white-space: nowrap;
}

.projects-poster-wall__viewport {
    min-height: 0;
    overflow: hidden;
}

.projects-poster-wall__track {
    height: 100%;
    display: flex;
    gap: clamp(14px, 1.5vw, 24px);
    transition: transform .45s cubic-bezier(.2,.7,.2,1);
    will-change: transform;
}

.project-poster {
    position: relative;
    flex: 0 0 calc((100% - (3 * clamp(14px, 1.5vw, 24px))) / 4);
    min-width: 0;
    height: 100%;
    overflow: hidden;
    padding: clamp(22px, 2vw, 32px);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background: var(--accent);
    color: var(--black);
    text-decoration: none;
    isolation: isolate;
    transition:
        transform .38s cubic-bezier(.2,.7,.2,1),
        filter .38s ease;
}

.project-poster--v2 {
    background: var(--off-white);
}

.project-poster--v3 {
    background: #1c1c1c;
    color: #fff;
}

.project-poster.has-image {
    background: #151515;
    color: #fff;
}

.project-poster__image,
.project-poster__shade {
    position: absolute;
    inset: 0;
}

.project-poster__image {
    z-index: -2;
    background-image: var(--project-image);
    background-position: center;
    background-size: cover;
    transform: scale(1.03);
    transition: transform .55s cubic-bezier(.2,.7,.2,1);
}

.project-poster__shade {
    z-index: -1;
    background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.04) 46%, rgba(0,0,0,.68));
}

.project-poster__shape {
    position: absolute;
    pointer-events: none;
    transition: transform .55s cubic-bezier(.2,.7,.2,1);
}

.project-poster__shape--one {
    width: 80%;
    aspect-ratio: 1;
    right: -30%;
    top: 10%;
    border-radius: 50%;
    border: clamp(30px, 3.2vw, 52px) solid rgba(10,10,10,.12);
}

.project-poster--v2 .project-poster__shape--one {
    right: auto;
    left: -34%;
    border-color: rgba(255,90,31,.28);
}

.project-poster--v3 .project-poster__shape--one {
    border-color: rgba(255,255,255,.11);
}

.project-poster__shape--two {
    width: 54%;
    height: 10px;
    left: 8%;
    top: 50%;
    background: rgba(10,10,10,.16);
    transform: rotate(-22deg);
}

.project-poster--v2 .project-poster__shape--two {
    background: var(--accent);
}

.project-poster--v3 .project-poster__shape--two {
    background: rgba(255,255,255,.20);
}

.project-poster__top,
.project-poster__bottom {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    font-size: 10px;
    line-height: 1;
    letter-spacing: .15em;
    font-weight: 850;
    text-transform: uppercase;
}

.project-poster__body {
    position: relative;
    z-index: 2;
    display: block;
    margin-top: auto;
    padding: 30px 0 28px;
}

.project-poster__body strong {
    display: block;
    max-width: 92%;
    font-size: clamp(42px, 4.4vw, 72px);
    line-height: .86;
    letter-spacing: -.06em;
    font-weight: 850;
}

.project-poster__excerpt {
    display: block;
    max-width: 90%;
    max-height: 0;
    margin-top: 0;
    overflow: hidden;
    opacity: 0;
    font-size: clamp(14px, 1vw, 17px);
    line-height: 1.4;
    transition: max-height .35s ease, margin-top .35s ease, opacity .25s ease;
}

.project-poster__arrow {
    font-size: 24px;
    letter-spacing: 0;
    transition: transform .22s ease;
}

.projects-poster-wall__track:hover .project-poster {
    filter: brightness(.94);
}

.projects-poster-wall__track .project-poster:hover {
    filter: brightness(1);
    transform: translateY(-6px);
}

.project-poster:hover .project-poster__excerpt {
    max-height: 120px;
    margin-top: 18px;
    opacity: .82;
}

.project-poster:hover .project-poster__shape--one {
    transform: scale(1.06);
}

.project-poster:hover .project-poster__shape--two {
    transform: rotate(-22deg) translateX(16px);
}

.project-poster:hover .project-poster__image {
    transform: scale(1.075);
}

.project-poster:hover .project-poster__arrow {
    transform: translate(5px,-5px);
}

.projects-poster-wall__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 34px;
    padding-top: 15px;
    border-top: 1px solid rgba(255,255,255,.18);
    font-size: 10px;
    line-height: 1;
    letter-spacing: .15em;
    font-weight: 800;
}

.projects-poster-wall__controls {
    display: flex;
    gap: 8px;
}

.projects-poster-wall__controls[aria-hidden="true"] {
    visibility: hidden;
}

.projects-poster-wall__controls button {
    width: 34px;
    height: 34px;
    border: 1px solid rgba(255,255,255,.26);
    background: transparent;
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-size: 16px;
    transition: background-color .18s ease, color .18s ease;
}

.projects-poster-wall__controls button:hover {
    background: #fff;
    color: var(--black);
}

.projects-poster-wall__empty {
    align-self: center;
    padding: 60px 0;
}

@media (max-width: 900px) {
    .projects-poster-wall,
    .projects-poster-wall__inner {
        min-height: calc(100svh - 72px);
        height: calc(100svh - 72px);
    }

    .projects-poster-wall__inner {
        grid-template-rows: auto minmax(0, 1fr) auto;
        gap: clamp(10px, 1.8vh, 16px);
        padding-top: clamp(14px, 2.2vh, 22px);
        padding-bottom: clamp(12px, 1.8vh, 18px);
    }

    .projects-poster-wall__head {
        align-items: start;
        padding-bottom: clamp(10px, 1.4vh, 14px);
        gap: 18px;
    }

    .projects-poster-wall__head .eyebrow {
        margin-bottom: 5px;
        font-size: 12px;
        letter-spacing: .2em;
    }

    .projects-poster-wall__head h1 {
        font-size: clamp(34px, 10.5vw, 40px);
        line-height: .94;
        white-space: nowrap;
    }

    .projects-poster-wall__head-meta {
        display: none;
    }

    .projects-poster-wall__viewport {
        min-height: 0;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 0;
    }

    .projects-poster-wall__viewport::-webkit-scrollbar {
        display: none;
    }

    .projects-poster-wall__track {
        width: max-content;
        height: 100%;
        gap: 12px;
        transform: none !important;
    }

    .project-poster {
        flex: 0 0 min(84vw, 360px);
        height: 100%;
        min-height: 0;
        padding: clamp(18px, 4.8vw, 24px);
        scroll-snap-align: start;
    }

    .projects-poster-wall__track:hover .project-poster,
    .projects-poster-wall__track .project-poster:hover {
        filter: none;
        transform: none;
    }

    .project-poster__body {
        padding: clamp(18px, 3vh, 26px) 0 clamp(14px, 2.2vh, 20px);
    }

    .project-poster__body strong {
        font-size: clamp(42px, 13vw, 54px);
        line-height: .88;
    }

    .project-poster__excerpt {
        max-height: 88px;
        margin-top: clamp(10px, 1.5vh, 14px);
        opacity: .82;
        font-size: clamp(14px, 4vw, 16px);
        line-height: 1.35;
    }

    .project-poster__top,
    .project-poster__bottom {
        font-size: 9px;
        letter-spacing: .14em;
    }

    .project-poster__arrow {
        font-size: 20px;
    }

    .projects-poster-wall__foot {
        min-height: 26px;
        padding-top: clamp(8px, 1.2vh, 12px);
        font-size: 9px;
    }

    .projects-poster-wall__controls {
        display: none;
    }
}




/* v0.7.356 — Contact: exact v0.7.345 desktop markup + isolated approved mobile UI. */
.contact-mobile-actions {
    display: none;
}
.contact-info-modal-backdrop,
.contact-info-panel--mobile {
    display: none;
}

@media (max-width: 900px) {
    body.evolvo-contact-page .contact-choice {
        min-height: calc(100svh - 72px);
        height: calc(100svh - 72px);
        box-sizing: border-box;
        overflow: hidden;
        padding: clamp(14px, 2.2vh, 20px) 0 clamp(14px, 2.2vh, 20px);
        display: flex;
        align-items: flex-start;
    }

    body.evolvo-contact-page .contact-choice__inner {
        width: 100%;
        margin: 0 auto;
        display: block;
    }

    body.evolvo-contact-page .contact-choice__left {
        width: 100%;
    }

    body.evolvo-contact-page .contact-choice__intro h1 {
        margin-top: 5px;
        max-width: 10ch;
        font-size: clamp(40px, 10.5vw, 46px);
        line-height: .90;
    }

    body.evolvo-contact-page .contact-choice__intro > p:not(.eyebrow) {
        max-width: 34ch;
        margin-top: 7px;
        font-size: 14px;
        line-height: 1.34;
    }

    /* Four horizontal mini-postcards, stacked vertically. */
    body.evolvo-contact-page .contact-mobile-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
        margin-top: clamp(14px, 2vh, 18px);
    }

    body.evolvo-contact-page .contact-mobile-action {
        width: calc(100% - 16px);
        min-height: 58px;
        box-sizing: border-box;
        margin: 0 8px;
        padding: 0 20px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 18px;
        overflow: hidden;
        border: 1px solid rgba(10, 10, 10, .14);
        border-radius: 30px;
        background: #fff;
        color: var(--black);
        box-shadow: 0 7px 20px rgba(10, 10, 10, .035);
        text-decoration: none;
        text-align: left;
        font: inherit;
        cursor: pointer;
        -webkit-appearance: none;
        appearance: none;
        transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
    }

    body.evolvo-contact-page .contact-mobile-action__label {
        min-width: 0;
        display: flex;
        align-items: center;
        gap: 12px;
    }

    body.evolvo-contact-page .contact-mobile-action__number {
        flex: 0 0 auto;
        font-size: 9px;
        line-height: 1;
        font-weight: 850;
        letter-spacing: .13em;
        opacity: .52;
    }

    body.evolvo-contact-page .contact-mobile-action__text {
        font-size: 11px;
        line-height: 1;
        font-weight: 850;
        letter-spacing: .13em;
        text-transform: uppercase;
    }

    body.evolvo-contact-page .contact-mobile-action__icon {
        flex: 0 0 auto;
        width: 32px;
        height: 32px;
        display: grid;
        place-items: center;
        border: 1px solid currentColor;
        border-radius: 50%;
        color: currentColor;
        opacity: .96;
    }

    body.evolvo-contact-page .contact-mobile-action__icon svg {
        width: 17px;
        height: 17px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    body.evolvo-contact-page .contact-mobile-action--whatsapp .contact-mobile-action__icon svg {
        width: 18px;
        height: 18px;
        fill: currentColor;
        stroke: none;
    }

    body.evolvo-contact-page .contact-mobile-action--whatsapp {
        background: #25D366;
        border-color: #25D366;
        color: #fff;
        box-shadow: 0 7px 20px rgba(10, 10, 10, .035);
    }

    body.evolvo-contact-page .contact-mobile-action[href^="tel:"] {
        background: #fff;
        border-color: rgba(10, 10, 10, .14);
        color: var(--black);
        box-shadow: 0 7px 20px rgba(10, 10, 10, .035);
    }

    body.evolvo-contact-page .contact-mobile-action--details {
        background: var(--black);
        border-color: var(--black);
        color: var(--off-white);
        box-shadow: none;
    }

    body.evolvo-contact-page .contact-mobile-action--form {
        background: var(--accent);
        border-color: rgba(10, 10, 10, .12);
        color: var(--black);
        box-shadow: 0 7px 20px rgba(10, 10, 10, .035);
    }

    body.evolvo-contact-page .contact-mobile-action:active {
        transform: scale(.985);
    }

    body.evolvo-contact-page .contact-mobile-action--disabled {
        opacity: .45;
        cursor: default;
    }

    body.evolvo-contact-page .contact-mobile-action:focus-visible {
        outline: 2px solid var(--accent);
        outline-offset: 3px;
    }

    /* Desktop postcard routes are replaced by the four mobile mini-postcards. */
    body.evolvo-contact-page .contact-routes {
        display: none !important;
    }

    /* Existing details content becomes a true viewport modal on mobile. */
    body.evolvo-contact-page .contact-info-modal-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1198;
        display: block;
        background: rgba(10, 10, 10, .56);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        backdrop-filter: blur(3px);
        transition: opacity .24s ease, visibility 0s linear .24s;
    }

    body.evolvo-contact-page .contact-info-modal-backdrop.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    body.evolvo-contact-page .contact-info-panel--mobile {
        display: block;
        position: fixed;
        left: 50%;
        top: calc(72px + ((100svh - 72px) / 2));
        z-index: 1199;
        width: min(calc(100vw - 32px), 420px);
        max-height: calc(100svh - 72px - 32px);
        box-sizing: border-box;
        margin: 0;
        padding: 24px 24px 22px;
        overflow: auto;
        overscroll-behavior: contain;
        border-radius: 30px;
        background: var(--black);
        color: var(--off-white);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translate(-50%, -46%) scale(.965);
        transform-origin: center;
        box-shadow: 0 28px 90px rgba(0, 0, 0, .38);
        transition: opacity .22s ease, transform .3s cubic-bezier(.2,.7,.2,1), visibility 0s linear .3s;
    }

    body.evolvo-contact-page .contact-info-panel--mobile.is-mobile-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translate(-50%, -50%) scale(1);
        transition-delay: 0s;
    }

    body.evolvo-contact-page .contact-info-panel--mobile__close {
        display: grid;
        position: absolute;
        top: 16px;
        right: 16px;
        width: 34px;
        height: 34px;
        display: grid;
        place-items: center;
        padding: 0;
        border: 1px solid rgba(245,245,241,.34);
        border-radius: 50%;
        background: transparent;
        color: var(--off-white);
        font: inherit;
        font-size: 20px;
        line-height: 1;
        cursor: pointer;
    }

    body.evolvo-contact-page .contact-info-panel--mobile__eyebrow {
        padding-right: 48px;
        font-size: 9px;
    }

    body.evolvo-contact-page .contact-info-panel--mobile h2 {
        max-width: calc(100% - 44px);
        font-size: 30px;
    }

    body.evolvo-contact-page .contact-info-panel--mobile__contact {
        margin-top: 22px;
        gap: 13px;
    }

    body.evolvo-contact-page .contact-info-panel--mobile__business {
        margin-top: 17px;
        padding-top: 15px;
    }

    body.contact-info-modal-open {
        overflow: hidden;
        touch-action: none;
    }

    /* Block 02: one screen in rest state, while still allowing keyboard-driven overflow. */
    body.evolvo-contact-page .contact-form-section {
        height: calc(100svh - 72px);
        min-height: calc(100svh - 72px);
        box-sizing: border-box;
        scroll-margin-top: 72px;
        padding: 14px 0;
        display: flex;
        align-items: stretch;
        overflow: hidden;
        background: var(--accent);
    }

    body.evolvo-contact-page .contact-form-section__grid {
        width: 100%;
        height: 100%;
        min-height: 0;
        display: block;
    }

    body.evolvo-contact-page .contact-form-section__intro {
        display: none;
    }

    body.evolvo-contact-page .contact-handwrite {
        display: none;
    }

    body.evolvo-contact-page .contact-form-section__form {
        width: calc(100% - 24px);
        height: 100%;
        min-height: 0;
        box-sizing: border-box;
        margin-left: 12px;
        margin-right: 12px;
        padding: 22px 22px 24px;
        border-radius: 30px;
        box-shadow: 0 14px 38px rgba(10, 10, 10, .10);
        overflow-y: auto;
        overflow-x: hidden;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
        scrollbar-color: rgba(10,10,10,.28) transparent;
    }

    body.evolvo-contact-page .contact-form-section__form::-webkit-scrollbar {
        width: 5px;
    }

    body.evolvo-contact-page .contact-form-section__form::-webkit-scrollbar-thumb {
        background: rgba(10,10,10,.28);
        border-radius: 999px;
    }

    body.evolvo-contact-page .contact-form-section .fluentform .ff-el-group {
        margin-bottom: 10px !important;
    }

    body.evolvo-contact-page .contact-form-section .fluentform .ff-el-input--label {
        margin-bottom: 1px !important;
    }

    body.evolvo-contact-page .contact-form-section .fluentform input,
    body.evolvo-contact-page .contact-form-section .fluentform select,
    body.evolvo-contact-page .contact-form-section .fluentform textarea {
        padding: 7px 0 9px !important;
        font-size: 15px !important;
        line-height: 1.2 !important;
    }

    body.evolvo-contact-page .contact-form-section .fluentform textarea {
        min-height: 74px !important;
        height: 88px !important;
    }

    body.evolvo-contact-page .contact-form-section .fluentform .ff-btn-submit {
        padding: 11px 20px !important;
        margin-top: 1px !important;
    }

    /* Mobile page ends after the form; footer is block 03. */
    body.evolvo-contact-page .contact-reassurance {
        display: none !important;
    }
}

@media (max-width: 900px) and (max-height: 720px) {
    body.evolvo-contact-page .contact-choice {
        padding-top: 10px;
        padding-bottom: 10px;
    }

    body.evolvo-contact-page .contact-choice__intro h1 {
        font-size: 36px;
    }

    body.evolvo-contact-page .contact-choice__intro > p:not(.eyebrow) {
        margin-top: 5px;
        font-size: 13px;
        line-height: 1.3;
    }

    body.evolvo-contact-page .contact-mobile-actions {
        margin-top: 11px;
        gap: 7px;
    }

    body.evolvo-contact-page .contact-mobile-action {
        min-height: 52px;
        border-radius: 26px;
        padding-inline: 17px;
    }

    body.evolvo-contact-page .contact-mobile-action__icon {
        width: 30px;
        height: 30px;
    }

    body.evolvo-contact-page .contact-mobile-action__icon svg {
        width: 16px;
        height: 16px;
    }

    body.evolvo-contact-page .contact-form-section {
        padding-top: 10px;
        padding-bottom: 10px;
    }

    body.evolvo-contact-page .contact-form-section__form {
        padding: 16px 18px 18px;
        border-radius: 26px;
    }

    body.evolvo-contact-page .contact-form-section .fluentform .ff-el-group {
        margin-bottom: 6px !important;
    }

    body.evolvo-contact-page .contact-form-section .fluentform textarea {
        min-height: 46px !important;
        height: 46px !important;
    }

    body.evolvo-contact-page .contact-form-section .fluentform .ff-btn-submit {
        padding: 9px 17px !important;
    }
}


@media (max-width: 900px) and (max-height: 640px) {
    body.evolvo-contact-page .contact-info-panel--mobile {
        top: calc(72px + ((100svh - 72px) / 2));
        max-height: calc(100svh - 72px - 24px);
        padding-top: 20px;
        padding-bottom: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.evolvo-contact-page .contact-mobile-action,
    body.evolvo-contact-page .contact-info-panel--mobile {
        transition: none !important;
    }
}


/* v0.7.356 — Final hard isolation between Contact desktop and mobile UI. */
@media (min-width: 901px) {
    body.evolvo-contact-page .contact-mobile-actions,
    body.evolvo-contact-page .contact-info-modal-backdrop,
    body.evolvo-contact-page .contact-info-panel--mobile {
        display: none !important;
    }
}

@media (max-width: 900px) {
    body.evolvo-contact-page .contact-choice__inner > .contact-info-panel:not(.contact-info-panel--mobile) {
        display: none !important;
    }
}


/* v0.7.357 — Ons Aanbod desktop: mobile scroll cues never render visually. */
@media (min-width: 901px) {
    .offer-onepager .offer-postcard__swipe-cue,
    .offer-onepager .offer-onepager__mobile-hint {
        display: none !important;
    }
}

/* v0.7.358 — Impact Soest mobile hero: text -> scroll-driven Soest network -> release. */
.project-hero__mobile-copy{display:none}
@media (max-width:900px){
 .impact-project .project-hero{position:relative;height:260svh;min-height:260svh;padding:0;display:block;overflow:visible;background:var(--off-white)}
 .impact-project .project-hero__inner{position:sticky;top:72px;width:100%;height:calc(100svh - 72px);min-height:0;max-width:none;box-sizing:border-box;padding:0 22px;display:block;overflow:hidden;isolation:isolate}
 .impact-project .project-hero__copy{display:none!important}
 .impact-project .project-hero__mobile-copy{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:0 22px;box-sizing:border-box;opacity:var(--si-hero-copy-opacity,1);transform:translateY(var(--si-hero-copy-y,0px));will-change:opacity,transform;pointer-events:none}
 .impact-project .project-hero__mobile-copy .eyebrow{margin:0 0 18px;font-size:10px;line-height:1;letter-spacing:.14em;font-weight:850}
 .impact-project .project-hero__mobile-copy h1{margin:0;font-size:clamp(54px,15vw,72px);line-height:.88;letter-spacing:-.065em}
 .impact-project .project-hero__mobile-tagline{margin:24px 0 0;font-size:clamp(25px,7.4vw,34px);line-height:.98;letter-spacing:-.04em;font-weight:800}
 .impact-project .project-hero__mobile-intro{margin:8px 0 0;font-size:18px;line-height:1.25;font-weight:500}
 .impact-project .project-hero .impact-network{position:absolute;left:50%;top:50%;z-index:3;width:min(92vw,500px);max-width:none;margin:0;opacity:var(--si-network-opacity,0)!important;transform:translate(-50%,-50%) scale(var(--si-network-scale,.94))!important;animation:none!important;will-change:opacity,transform;pointer-events:none}
 .impact-project .project-hero .impact-network__stage{transform:none}
 .impact-project .project-hero .soest-road-network__road{opacity:1;animation:none!important;transition:none!important}
 .impact-project .project-hero .impact-network__line{animation:none!important;transition:none!important}
 .impact-project .project-hero .impact-network__center,.impact-project .project-hero .impact-network__endpoint{animation:none!important;transition:none!important;opacity:var(--si-network-detail-opacity,0)}
 .impact-project .project-hero .impact-network__center{transform:translate(-50%,-50%) scale(var(--si-network-center-scale,.92))}
 .impact-project .project-hero .impact-network__signal{display:none!important}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){
 .impact-project .project-hero{height:calc(100svh - 72px);min-height:calc(100svh - 72px)}
 .impact-project .project-hero__inner{position:relative;top:auto}
 .impact-project .project-hero__mobile-copy{opacity:1!important;transform:none!important}
 .impact-project .project-hero .impact-network{display:none!important}
}


/* v0.7.359 — Impact Soest mobile block 2: intro -> physical scroll-scrubbed card deck. */
.project-partnership__mobile-stage{display:none}

@media(max-width:900px){
 .impact-project .project-partnership{
   position:relative;
   height:500svh;
   min-height:500svh;
   padding:0;
   overflow:visible;
   background:var(--black);
 }
 .impact-project .project-partnership>.container{display:none!important}
 .impact-project .project-partnership__mobile-stage{
   position:sticky;
   top:72px;
   width:100%;
   height:calc(100svh - 72px);
   min-height:0;
   box-sizing:border-box;
   display:block;
   overflow:hidden;
   isolation:isolate;
   background:var(--black);
   color:var(--off-white);
 }
 .impact-project .project-partnership__mobile-intro{
   position:absolute;
   inset:0;
   z-index:5;
   display:flex;
   flex-direction:column;
   justify-content:center;
   padding:0 22px;
   box-sizing:border-box;
   opacity:var(--si-offer-intro-opacity,1);
   transform:translateY(var(--si-offer-intro-y,0px));
   will-change:opacity,transform;
 }
 .impact-project .project-partnership__mobile-intro .eyebrow{
   margin:0 0 18px;
   color:var(--accent);
   font-size:10px;
   line-height:1;
   font-weight:850;
   letter-spacing:.14em;
 }
 .impact-project .project-partnership__mobile-intro h2{
   margin:0;
   max-width:9.5em;
   color:var(--off-white);
   font-size:clamp(43px,12vw,60px);
   line-height:.92;
   letter-spacing:-.055em;
 }
 .impact-project .project-partnership__mobile-deck{
   position:absolute;
   inset:0;
   z-index:4;
   display:grid;
   place-items:center;
   padding:22px;
   box-sizing:border-box;
   opacity:var(--si-offer-deck-opacity,0);
   transform:translateY(var(--si-offer-deck-y,26px)) scale(var(--si-offer-deck-scale,.965));
   will-change:opacity,transform;
 }
 .impact-project .project-partnership__mobile-card{
   position:absolute;
   left:22px;
   right:22px;
   top:50%;
   min-height:min(62svh,500px);
   box-sizing:border-box;
   padding:28px 26px 30px;
   display:flex;
   flex-direction:column;
   border-radius:30px;
   background:var(--off-white);
   color:var(--black);
   box-shadow:0 22px 65px rgba(0,0,0,.25);
   transform-origin:50% 90%;
   will-change:transform,opacity;
   overflow:hidden;
 }
 .impact-project .project-partnership__mobile-card>span{
   display:block;
   color:var(--accent);
   font-size:10px;
   line-height:1;
   font-weight:850;
   letter-spacing:.12em;
   text-transform:uppercase;
 }
 .impact-project .project-partnership__mobile-card h3{
   margin:auto 0 16px;
   max-width:8em;
   color:var(--black);
   font-size:clamp(38px,10.5vw,52px);
   line-height:.92;
   letter-spacing:-.055em;
 }
 .impact-project .project-partnership__mobile-card p{
   margin:0;
   max-width:31em;
   color:rgba(10,10,10,.72);
   font-size:16px;
   line-height:1.48;
 }
 .impact-project .project-partnership__mobile-card:nth-child(1){
   z-index:3;
   opacity:var(--si-card1-opacity,1);
   transform:translate3d(var(--si-card1-x,0px),calc(-50% + var(--si-card1-y,0px)),0) rotate(var(--si-card1-r,0deg)) scale(var(--si-card1-s,1));
 }
 .impact-project .project-partnership__mobile-card:nth-child(2){
   z-index:2;
   opacity:var(--si-card2-opacity,1);
   transform:translate3d(var(--si-card2-x,0px),calc(-50% + var(--si-card2-y,10px)),0) rotate(var(--si-card2-r,1.5deg)) scale(var(--si-card2-s,.965));
 }
 .impact-project .project-partnership__mobile-card:nth-child(3){
   z-index:1;
   opacity:var(--si-card3-opacity,1);
   transform:translate3d(var(--si-card3-x,0px),calc(-50% + var(--si-card3-y,20px)),0) rotate(var(--si-card3-r,-1.5deg)) scale(var(--si-card3-s,.93));
 }
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){
 .impact-project .project-partnership{height:auto;min-height:0;padding:52px 0}
 .impact-project .project-partnership__mobile-stage{position:relative;top:auto;height:auto;overflow:visible;padding:0 22px}
 .impact-project .project-partnership__mobile-intro{position:relative;inset:auto;padding:0;opacity:1!important;transform:none!important}
 .impact-project .project-partnership__mobile-deck{position:relative;inset:auto;display:grid;gap:18px;margin-top:42px;padding:0;opacity:1!important;transform:none!important}
 .impact-project .project-partnership__mobile-card,.impact-project .project-partnership__mobile-card:nth-child(n){position:relative;left:auto;right:auto;top:auto;min-height:360px;opacity:1!important;transform:none!important}
}


/* v0.7.360 — Block 2 finale: last card dissolves, then the offer builds on scroll. */
@media(max-width:900px){
 .impact-project .project-partnership__mobile-card:nth-child(3){
   filter:blur(var(--si-card3-blur,0px));
   opacity:var(--si-card3-opacity,1);
 }
 .impact-project .project-partnership__mobile-offer{
   position:absolute;
   inset:0;
   z-index:6;
   display:flex;
   flex-direction:column;
   justify-content:center;
   padding:0 22px;
   box-sizing:border-box;
   pointer-events:var(--si-offer-pointer,none);
 }
 .impact-project .project-partnership__mobile-offer>.eyebrow{
   margin:0 0 18px;
   color:var(--accent);
   font-size:10px;
   line-height:1;
   font-weight:850;
   letter-spacing:.14em;
   opacity:var(--si-final-eyebrow-opacity,0);
   transform:translateY(var(--si-final-eyebrow-y,14px));
   will-change:opacity,transform;
 }
 .impact-project .project-partnership__mobile-offer>h2{
   margin:0;
   max-width:9em;
   color:var(--off-white);
   font-size:clamp(42px,11.5vw,58px);
   line-height:.92;
   letter-spacing:-.055em;
   opacity:var(--si-final-title-opacity,0);
   transform:translateY(var(--si-final-title-y,18px));
   will-change:opacity,transform;
 }
 .impact-project .project-partnership__mobile-amount{
   margin-top:38px;
   display:grid;
   grid-template-columns:1fr auto;
   align-items:end;
   gap:5px 16px;
   opacity:var(--si-final-amount-opacity,0);
   transform:translateY(var(--si-final-amount-y,22px));
   will-change:opacity,transform;
 }
 .impact-project .project-partnership__mobile-amount .project-price-toggle{
   grid-column:1/-1;
   justify-self:start;
   margin-bottom:18px;
   opacity:var(--si-final-toggle-opacity,0);
   transform:translateY(var(--si-final-toggle-y,12px));
   pointer-events:var(--si-final-toggle-pointer,none);
   will-change:opacity,transform;
 }
 .impact-project .project-partnership__mobile-amount>strong{
   color:var(--off-white);
   font-size:clamp(70px,20vw,98px);
   line-height:.82;
   letter-spacing:-.07em;
 }
 .impact-project .project-partnership__mobile-amount>span{
   padding-bottom:5px;
   color:rgba(245,245,241,.64);
   font-size:12px;
   font-weight:750;
   letter-spacing:.08em;
   text-transform:uppercase;
 }
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){
 .impact-project .project-partnership__mobile-offer{position:relative;inset:auto;margin-top:48px;padding:0}
 .impact-project .project-partnership__mobile-offer>*,
 .impact-project .project-partnership__mobile-amount,
 .impact-project .project-partnership__mobile-amount .project-price-toggle{opacity:1!important;transform:none!important}
}


/* v0.7.361 — Impact Soest mobile offer: place "eenmalig" below the amount. */
@media(max-width:900px){
 .impact-project .project-partnership__mobile-amount{
   grid-template-columns:1fr;
   align-items:start;
 }
 .impact-project .project-partnership__mobile-amount .project-price-toggle{
   grid-column:1;
 }
 .impact-project .project-partnership__mobile-amount>strong{
   grid-column:1;
   display:block;
 }
 .impact-project .project-partnership__mobile-amount>span{
   grid-column:1;
   display:block;
   padding:9px 0 0;
   justify-self:start;
 }
}


/* v0.7.362 — Impact Soest mobile block 3: sticky process timeline with scroll progress. */
.project-process__mobile-stage{display:none}
@media(max-width:900px){
 .impact-project .project-process{
   position:relative;
   height:450svh;
   min-height:450svh;
   padding:0;
   overflow:visible;
   background:var(--black);
 }
 .impact-project .project-process>.container,
 .impact-project .project-process>.project-process__next-arrow{display:none!important}
 .impact-project .project-process__mobile-stage{
   position:sticky;
   top:72px;
   width:100%;
   height:calc(100svh - 72px);
   min-height:0;
   display:block;
   overflow:hidden;
   isolation:isolate;
   box-sizing:border-box;
   background:var(--black);
   color:var(--off-white);
 }
 .impact-project .project-process__mobile-intro{
   position:absolute;
   inset:0;
   z-index:5;
   display:flex;
   flex-direction:column;
   justify-content:center;
   padding:0 22px;
   box-sizing:border-box;
   opacity:var(--si-process-intro-opacity,1);
   filter:blur(var(--si-process-intro-blur,0px));
   transform:translateY(var(--si-process-intro-y,0px));
   will-change:opacity,filter,transform;
 }
 .impact-project .project-process__mobile-intro .eyebrow{
   margin:0 0 18px;
   color:var(--accent);
   font-size:10px;
   line-height:1;
   font-weight:850;
   letter-spacing:.14em;
 }
 .impact-project .project-process__mobile-intro h2{
   margin:0;
   max-width:9.5em;
   color:var(--off-white);
   font-size:clamp(43px,12vw,60px);
   line-height:.92;
   letter-spacing:-.055em;
 }
 .impact-project .project-process__mobile-timeline{
   position:absolute;
   inset:0;
   z-index:4;
   display:grid;
   grid-template-columns:38px minmax(0,1fr);
   gap:22px;
   align-items:center;
   padding:0 22px;
   box-sizing:border-box;
   opacity:var(--si-process-timeline-opacity,0);
   transform:translateY(var(--si-process-timeline-y,18px));
   will-change:opacity,transform;
 }
 .impact-project .project-process__mobile-progress{
   position:relative;
   width:20px;
   height:min(54svh,430px);
   justify-self:center;
 }
 .impact-project .project-process__mobile-progress::before{
   content:"";
   position:absolute;
   left:9px;
   top:9px;
   bottom:9px;
   width:2px;
   border-radius:99px;
   background:rgba(245,245,241,.16);
 }
 .impact-project .project-process__mobile-progress-line{
   position:absolute;
   left:9px;
   top:9px;
   width:2px;
   height:calc((100% - 18px) * var(--si-process-progress,0));
   max-height:calc(100% - 18px);
   border-radius:99px;
   background:var(--accent);
   transform-origin:top;
   will-change:height;
 }
 .impact-project .project-process__mobile-dot{
   position:absolute;
   left:4px;
   top:calc(9px + (var(--dot-index) - 1) * ((100% - 18px) / 3));
   width:12px;
   height:12px;
   box-sizing:border-box;
   border:2px solid rgba(245,245,241,.42);
   border-radius:50%;
   background:var(--black);
   transition:none;
 }
 .impact-project .project-process__mobile-dot:nth-of-type(2){--dot-fill:var(--si-dot1,0)}
 .impact-project .project-process__mobile-dot:nth-of-type(3){--dot-fill:var(--si-dot2,0)}
 .impact-project .project-process__mobile-dot:nth-of-type(4){--dot-fill:var(--si-dot3,0)}
 .impact-project .project-process__mobile-dot:nth-of-type(5){--dot-fill:var(--si-dot4,0)}
 .impact-project .project-process__mobile-dot{
   border-color:color-mix(in srgb,var(--accent) calc(var(--dot-fill,0) * 100%),rgba(245,245,241,.42));
   box-shadow:inset 0 0 0 calc(var(--dot-fill,0) * 5px) var(--accent);
 }
 .impact-project .project-process__mobile-steps{
   position:relative;
   min-width:0;
   height:min(54svh,430px);
 }
 .impact-project .project-process__mobile-step{
   position:absolute;
   inset:0;
   display:flex;
   flex-direction:column;
   justify-content:center;
   opacity:var(--step-opacity,0);
   filter:blur(var(--step-blur,12px));
   transform:translateY(var(--step-y,8px));
   will-change:opacity,filter,transform;
   pointer-events:none;
 }
 .impact-project .project-process__mobile-step>span{
   margin:0 0 18px;
   color:var(--accent);
   font-size:11px;
   line-height:1;
   font-weight:850;
   letter-spacing:.14em;
 }
 .impact-project .project-process__mobile-step h3{
   margin:0;
   max-width:9em;
   color:var(--off-white);
   font-size:clamp(38px,10.5vw,52px);
   line-height:.94;
   letter-spacing:-.05em;
 }
 .impact-project .project-process__mobile-step p{
   margin:20px 0 0;
   max-width:29em;
   color:rgba(245,245,241,.68);
   font-size:16px;
   line-height:1.5;
 }
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){
 .impact-project .project-process{height:auto;min-height:0;padding:52px 0}
 .impact-project .project-process__mobile-stage{position:relative;top:auto;height:auto;overflow:visible;padding:0 22px}
 .impact-project .project-process__mobile-intro{position:relative;inset:auto;padding:0;opacity:1!important;filter:none!important;transform:none!important}
 .impact-project .project-process__mobile-timeline{position:relative;inset:auto;display:block;margin-top:48px;padding:0;opacity:1!important;transform:none!important}
 .impact-project .project-process__mobile-progress{display:none}
 .impact-project .project-process__mobile-steps{height:auto}
 .impact-project .project-process__mobile-step{position:relative;inset:auto;margin:0 0 42px;opacity:1!important;filter:none!important;transform:none!important}
}


/* v0.7.363 — Impact Soest mobile block 3: orange theme + every process step fits one viewport. */
@media(max-width:900px){
 .impact-project .project-process,
 .impact-project .project-process__mobile-stage{
   background:#FF5A1F;
   color:var(--black);
 }
 .impact-project .project-process__mobile-intro{
   color:var(--black);
 }
 .impact-project .project-process__mobile-intro .eyebrow,
 .impact-project .project-process__mobile-intro h2{
   color:var(--black);
 }

 /* Reserve a compact rail and give the copy the rest of the viewport. */
 .impact-project .project-process__mobile-timeline{
   grid-template-columns:24px minmax(0,1fr);
   gap:18px;
   padding:clamp(18px,3.2svh,28px) 18px;
 }
 .impact-project .project-process__mobile-progress{
   width:18px;
   height:min(48svh,350px);
 }
 .impact-project .project-process__mobile-progress::before{
   left:8px;
   background:rgba(10,10,10,.24);
 }
 .impact-project .project-process__mobile-progress-line{
   left:8px;
   background:var(--black);
 }
 .impact-project .project-process__mobile-dot{
   left:3px;
   width:12px;
   height:12px;
   border-color:rgba(10,10,10,.48);
   background:#FF5A1F;
   box-shadow:inset 0 0 0 calc(var(--dot-fill,0) * 5px) var(--black);
 }

 /* The content canvas itself can never exceed the visible sticky viewport. */
 .impact-project .project-process__mobile-steps{
   height:min(70svh,520px);
   min-height:0;
 }
 .impact-project .project-process__mobile-step{
   justify-content:center;
   min-height:0;
   overflow:visible;
 }
 .impact-project .project-process__mobile-step>span{
   margin:0 0 clamp(10px,1.8svh,16px);
   color:var(--black);
   font-size:10px;
 }
 .impact-project .project-process__mobile-step h3{
   margin:0;
   max-width:100%;
   color:var(--black);
   font-size:clamp(31px,9.2vw,44px);
   line-height:.93;
   letter-spacing:-.05em;
   overflow-wrap:break-word;
   hyphens:auto;
 }
 .impact-project .project-process__mobile-step p{
   margin:clamp(13px,2.2svh,19px) 0 0;
   max-width:100%;
   color:rgba(10,10,10,.72);
   font-size:clamp(13px,3.65vw,15.5px);
   line-height:1.38;
   overflow-wrap:break-word;
 }
}

/* Short mobile viewports: compact typography/spacing rather than introducing inner scrolling. */
@media(max-width:900px) and (max-height:720px){
 .impact-project .project-process__mobile-timeline{
   grid-template-columns:22px minmax(0,1fr);
   gap:15px;
   padding:14px 16px;
 }
 .impact-project .project-process__mobile-progress{height:min(44svh,300px)}
 .impact-project .project-process__mobile-steps{height:min(72svh,460px)}
 .impact-project .project-process__mobile-step h3{
   font-size:clamp(28px,8.4vw,38px);
   line-height:.92;
 }
 .impact-project .project-process__mobile-step p{
   margin-top:11px;
   font-size:clamp(12px,3.35vw,14px);
   line-height:1.32;
 }
 .impact-project .project-process__mobile-step>span{margin-bottom:9px}
}
@media(max-width:900px) and (max-height:620px){
 .impact-project .project-process__mobile-timeline{padding:10px 14px}
 .impact-project .project-process__mobile-progress{height:40svh}
 .impact-project .project-process__mobile-steps{height:74svh}
 .impact-project .project-process__mobile-step h3{font-size:clamp(25px,7.8vw,34px)}
 .impact-project .project-process__mobile-step p{font-size:12px;line-height:1.27}
}


/* v0.7.364 — Impact Soest mobile block 4: block-2-style physical deck, inverted palette. */
.project-finance-v2__mobile-stage{display:none}
@media(max-width:900px){
 .impact-project .project-finance-v2{
   position:relative;
   height:390svh;
   min-height:390svh;
   padding:0;
   overflow:visible;
   background:var(--off-white);
 }
 .impact-project .project-finance-v2>.container{display:none!important}
 .impact-project .project-finance-v2__mobile-stage{
   position:sticky;
   top:72px;
   width:100%;
   height:calc(100svh - 72px);
   min-height:0;
   display:block;
   overflow:hidden;
   isolation:isolate;
   box-sizing:border-box;
   background:var(--off-white);
   color:var(--black);
 }
 .impact-project .project-finance-v2__mobile-intro{
   position:absolute;
   inset:0;
   z-index:5;
   display:flex;
   flex-direction:column;
   justify-content:center;
   padding:0 22px;
   box-sizing:border-box;
   opacity:var(--si-fin-intro-opacity,1);
   transform:translateY(var(--si-fin-intro-y,0px));
   will-change:opacity,transform;
 }
 .impact-project .project-finance-v2__mobile-intro .eyebrow{
   margin:0 0 18px;
   color:var(--accent);
   font-size:10px;
   line-height:1;
   font-weight:850;
   letter-spacing:.14em;
 }
 .impact-project .project-finance-v2__mobile-intro h2{
   margin:0;
   max-width:9.5em;
   color:var(--black);
   font-size:clamp(43px,12vw,60px);
   line-height:.92;
   letter-spacing:-.055em;
 }
 .impact-project .project-finance-v2__mobile-deck{
   position:absolute;
   inset:0;
   z-index:4;
   display:grid;
   place-items:center;
   padding:22px;
   box-sizing:border-box;
   opacity:var(--si-fin-deck-opacity,0);
   transform:translateY(var(--si-fin-deck-y,26px)) scale(var(--si-fin-deck-scale,.965));
   will-change:opacity,transform;
 }
 .impact-project .project-finance-v2__mobile-card{
   position:absolute;
   left:22px;
   right:22px;
   top:50%;
   min-height:min(62svh,500px);
   box-sizing:border-box;
   padding:28px 26px 30px;
   display:flex;
   flex-direction:column;
   border-radius:30px;
   background:var(--black);
   color:var(--off-white);
   box-shadow:0 22px 65px rgba(10,10,10,.18);
   transform-origin:50% 90%;
   will-change:transform,opacity;
   overflow:hidden;
 }
 .impact-project .project-finance-v2__mobile-card>span{
   color:var(--accent);
   font-size:10px;
   line-height:1;
   font-weight:850;
   letter-spacing:.14em;
 }
 .impact-project .project-finance-v2__mobile-card h3{
   margin:auto 0 12px;
   max-width:9em;
   color:var(--off-white);
   font-size:clamp(36px,10vw,50px);
   line-height:.93;
   letter-spacing:-.05em;
 }
 .impact-project .project-finance-v2__mobile-card strong{
   display:block;
   margin:0 0 16px;
   color:var(--accent);
   font-size:clamp(30px,8vw,42px);
   line-height:1;
   letter-spacing:-.045em;
 }
 .impact-project .project-finance-v2__mobile-card p{
   margin:0;
   max-width:31em;
   color:rgba(245,245,241,.68);
   font-size:15px;
   line-height:1.46;
 }
 .impact-project .project-finance-v2__mobile-card:nth-child(1){
   z-index:3;opacity:var(--si-fin-card1-opacity,1);
   transform:translate3d(var(--si-fin-card1-x,0px),calc(-50% + var(--si-fin-card1-y,0px)),0) rotate(var(--si-fin-card1-r,0deg)) scale(var(--si-fin-card1-s,1));
 }
 .impact-project .project-finance-v2__mobile-card:nth-child(2){
   z-index:2;opacity:var(--si-fin-card2-opacity,1);
   transform:translate3d(var(--si-fin-card2-x,0px),calc(-50% + var(--si-fin-card2-y,10px)),0) rotate(var(--si-fin-card2-r,1.5deg)) scale(var(--si-fin-card2-s,.965));
 }
 .impact-project .project-finance-v2__mobile-card:nth-child(3){
   z-index:1;opacity:1;
   transform:translate3d(0,calc(-50% + var(--si-fin-card3-y,20px)),0) rotate(var(--si-fin-card3-r,-1.5deg)) scale(var(--si-fin-card3-s,.93));
 }
}
@media(max-width:900px) and (max-height:680px){
 .impact-project .project-finance-v2__mobile-card{min-height:min(66svh,440px);padding:22px 23px 24px}
 .impact-project .project-finance-v2__mobile-card h3{font-size:clamp(31px,8.8vw,42px)}
 .impact-project .project-finance-v2__mobile-card strong{font-size:clamp(27px,7.5vw,36px);margin-bottom:12px}
 .impact-project .project-finance-v2__mobile-card p{font-size:13px;line-height:1.38}
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){
 .impact-project .project-finance-v2{height:auto;min-height:0;padding:52px 0}
 .impact-project .project-finance-v2__mobile-stage{position:relative;top:auto;height:auto;overflow:visible;padding:0 22px}
 .impact-project .project-finance-v2__mobile-intro{position:relative;inset:auto;padding:0;opacity:1!important;transform:none!important}
 .impact-project .project-finance-v2__mobile-deck{position:relative;inset:auto;display:grid;gap:18px;margin-top:42px;padding:0;opacity:1!important;transform:none!important}
 .impact-project .project-finance-v2__mobile-card,.impact-project .project-finance-v2__mobile-card:nth-child(n){position:relative;left:auto;right:auto;top:auto;min-height:360px;opacity:1!important;transform:none!important}
}


/* v0.7.365 — Impact Soest mobile block 5: compact one-screen cumulative results + barometer. */
.project-transparency__mobile-stage{display:none}
@media(max-width:900px){
 .impact-project .project-transparency{position:relative;height:260svh;min-height:260svh;padding:0;overflow:visible;background:var(--off-white);color:var(--black)}
 .impact-project .project-transparency>.transparency-panel{display:none!important}
 .impact-project .project-transparency__mobile-stage{position:sticky;top:72px;width:100%;height:calc(100svh - 72px);min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:14px;align-items:center;padding:clamp(16px,3svh,26px) 18px;box-sizing:border-box;overflow:hidden;background:var(--off-white);color:var(--black)}
 .impact-project .project-transparency__mobile-copy{min-width:0;max-height:100%;display:flex;flex-direction:column;justify-content:center}
 .impact-project .project-transparency__mobile-copy>.eyebrow{margin:0 0 8px;color:var(--accent);font-size:9px;line-height:1;font-weight:850;letter-spacing:.14em}
 .impact-project .project-transparency__mobile-copy>h2{margin:0 0 clamp(18px,3.2svh,28px);max-width:10em;color:var(--black);font-size:clamp(27px,7.8vw,38px);line-height:.94;letter-spacing:-.05em}
 .impact-project .project-transparency__mobile-stats{display:grid;gap:clamp(13px,2.3svh,21px)}
 .impact-project .project-transparency__mobile-stats article{opacity:var(--stat-opacity,0);filter:blur(var(--stat-blur,10px));transform:translateY(var(--stat-y,10px));will-change:opacity,filter,transform}
 .impact-project .project-transparency__mobile-stats article>span{display:block;margin:0 0 5px;color:rgba(10,10,10,.58);font-size:9px;line-height:1.15;font-weight:850;letter-spacing:.09em;text-transform:uppercase}
 .impact-project .project-transparency__mobile-stats article>strong{display:block;color:var(--black);font-size:clamp(29px,8.5vw,42px);line-height:.88;letter-spacing:-.055em}
 .impact-project .project-transparency__mobile-stats article>strong b{font:inherit}
 .impact-project .project-transparency__mobile-stats article>p{margin:5px 0 0;color:rgba(10,10,10,.68);font-size:clamp(11px,3vw,13px);line-height:1.25}
 .impact-project .project-transparency__mobile-meter{position:relative;align-self:center;justify-self:end;width:38px;height:min(64svh,480px)}
 .impact-project .project-transparency__mobile-meter-track,.impact-project .project-transparency__mobile-meter-fill{position:absolute;left:17px;top:8px;bottom:34px;width:3px;border-radius:99px}
 .impact-project .project-transparency__mobile-meter-track{background:rgba(10,10,10,.14)}
 .impact-project .project-transparency__mobile-meter-fill{bottom:auto;height:calc((100% - 42px) * var(--si-mobile-meter,0));background:var(--accent);will-change:height}
 .impact-project .project-transparency__mobile-meter i{position:absolute;left:12px;top:calc(8px + var(--meter-dot) * (100% - 42px));width:13px;height:13px;box-sizing:border-box;border:2px solid rgba(10,10,10,.35);border-radius:50%;background:var(--off-white);transform:translateY(-50%)}
 .impact-project .project-transparency__mobile-meter i:nth-of-type(1){--dot-active:var(--si-mobile-dot1,0)}
 .impact-project .project-transparency__mobile-meter i:nth-of-type(2){--dot-active:var(--si-mobile-dot2,0)}
 .impact-project .project-transparency__mobile-meter i:nth-of-type(3){--dot-active:var(--si-mobile-dot3,0)}
 .impact-project .project-transparency__mobile-meter i{box-shadow:inset 0 0 0 calc(var(--dot-active,0) * 5px) var(--accent);border-color:color-mix(in srgb,var(--accent) calc(var(--dot-active,0) * 100%),rgba(10,10,10,.35))}
 .impact-project .project-transparency__mobile-meter>strong{position:absolute;left:50%;bottom:0;transform:translateX(-50%);white-space:nowrap;color:var(--black);font-size:9px;line-height:1;font-weight:850;letter-spacing:-.02em}
 .impact-project .project-transparency__mobile-meter>strong b{font:inherit}
}
@media(max-width:900px) and (max-height:680px){
 .impact-project .project-transparency__mobile-stage{padding:12px 16px;grid-template-columns:minmax(0,1fr) 38px;gap:10px}
 .impact-project .project-transparency__mobile-copy>h2{margin-bottom:14px;font-size:clamp(24px,7vw,32px)}
 .impact-project .project-transparency__mobile-stats{gap:10px}
 .impact-project .project-transparency__mobile-stats article>strong{font-size:clamp(26px,7.6vw,36px)}
 .impact-project .project-transparency__mobile-stats article>p{font-size:11px;margin-top:3px}
 .impact-project .project-transparency__mobile-meter{height:min(58svh,390px)}
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){
 .impact-project .project-transparency{height:calc(100svh - 72px);min-height:calc(100svh - 72px)}
 .impact-project .project-transparency__mobile-stage{position:relative;top:auto}
 .impact-project .project-transparency__mobile-stats article{opacity:1!important;filter:none!important;transform:none!important}
 .impact-project .project-transparency__mobile-meter{--si-mobile-meter:1;--si-mobile-dot1:1;--si-mobile-dot2:1;--si-mobile-dot3:1}
}


/* v0.7.366 — Impact Soest mobile block 6: minimal Impactpartners reveal. */
.project-partners__mobile-stage{display:none}
@media(max-width:900px){
 .impact-project .project-partners--teaser{
   position:relative;
   height:220svh;
   min-height:220svh;
   padding:0;
   overflow:visible;
   background:var(--black);
 }
 .impact-project .project-partners--teaser>.container{display:none!important}
 .impact-project .project-partners__mobile-stage{
   position:sticky;
   top:72px;
   display:block;
   width:100%;
   height:calc(100svh - 72px);
   min-height:0;
   overflow:hidden;
   box-sizing:border-box;
   background:var(--black);
   color:var(--off-white);
   isolation:isolate;
 }
 .impact-project .project-partners__mobile-intro{
   position:absolute;
   inset:0;
   z-index:3;
   display:flex;
   flex-direction:column;
   justify-content:center;
   padding:0 22px;
   box-sizing:border-box;
   opacity:var(--si-partners-intro-opacity,1);
   filter:blur(var(--si-partners-intro-blur,0px));
   will-change:opacity,filter;
 }
 .impact-project .project-partners__mobile-intro .eyebrow{
   margin:0 0 18px;
   color:var(--accent);
   font-size:10px;
   line-height:1;
   font-weight:850;
   letter-spacing:.15em;
 }
 .impact-project .project-partners__mobile-intro h2{
   margin:0;
   max-width:9.6em;
   color:var(--off-white);
   font-size:clamp(42px,11.7vw,60px);
   line-height:.93;
   letter-spacing:-.055em;
 }
 .impact-project .project-partners__mobile-showcase{
   position:absolute;
   inset:0;
   z-index:2;
   display:flex;
   flex-direction:column;
   align-items:center;
   justify-content:center;
   gap:30px;
   padding:24px 22px;
   box-sizing:border-box;
   opacity:var(--si-partners-show-opacity,0);
   transform:translateY(var(--si-partners-show-y,32px));
   will-change:opacity,transform;
 }
 .impact-project .project-partners__mobile-stack{
   position:relative;
   width:min(78vw,330px);
   aspect-ratio:1.38/1;
 }
 .impact-project .project-partners__mobile-postcard{
   position:absolute;
   inset:0;
   width:100%;
   height:100%;
   box-sizing:border-box;
   border-radius:28px;
   box-shadow:0 24px 60px rgba(0,0,0,.28);
 }
 .impact-project .project-partners__mobile-postcard--back{
   z-index:1;
   transform:translate3d(15px,-13px,0) rotate(4.5deg) scale(.97);
   opacity:.64;
 }
 .impact-project .project-partners__mobile-postcard--front{
   z-index:2;
   transform:rotate(-1.5deg);
 }
 .impact-project .project-partners__mobile-postcard .project-partners__back-brand{
   position:absolute;
   left:26px;
   bottom:25px;
 }
 .impact-project .project-partners__mobile-cta{
   margin:0;
   opacity:var(--si-partners-cta-opacity,0);
   transform:translateY(var(--si-partners-cta-y,14px));
   will-change:opacity,transform;
 }
}
@media(max-width:900px) and (max-height:650px){
 .impact-project .project-partners__mobile-intro h2{font-size:clamp(36px,10vw,48px)}
 .impact-project .project-partners__mobile-showcase{gap:20px;padding-top:16px;padding-bottom:16px}
 .impact-project .project-partners__mobile-stack{width:min(65vw,280px)}
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){
 .impact-project .project-partners--teaser{height:auto;min-height:calc(100svh - 72px)}
 .impact-project .project-partners__mobile-stage{position:relative;top:auto;min-height:calc(100svh - 72px);height:auto;padding:54px 22px}
 .impact-project .project-partners__mobile-intro,.impact-project .project-partners__mobile-showcase{position:relative;inset:auto;padding:0;opacity:1!important;filter:none!important;transform:none!important}
 .impact-project .project-partners__mobile-showcase{margin-top:48px}
 .impact-project .project-partners__mobile-cta{opacity:1!important;transform:none!important}
}


/* v0.7.367 — Block 6 correction: real desktop partner postcard component. */
@media(max-width:900px){
 .impact-project .project-partners__mobile-stack{width:min(78vw,330px);aspect-ratio:1.28/1}
 .impact-project .project-partners__mobile-postcard{
   padding:clamp(18px,5vw,25px);border:1px solid rgba(10,10,10,.12);
   border-radius:30px;background:#fff;color:var(--black);box-shadow:none;
 }
 .impact-project .project-partners__mobile-postcard .impact-wall-postcard__logo{
   flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px 14px;
 }
 .impact-project .project-partners__mobile-postcard .impact-wall-postcard__logo img{
   display:block;width:auto;height:auto;max-width:84%;max-height:100px;object-fit:contain;
 }
 .impact-project .project-partners__mobile-postcard.is-filled>strong{
   overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(14px,4vw,18px);
 }
 .impact-project .project-partners__mobile-postcard--back{
   transform:translate3d(15px,-13px,0) rotate(4.5deg) scale(.97);opacity:.72;
 }
 .impact-project .project-partners__mobile-postcard--front{transform:rotate(-1.5deg)}
}


/* v0.7.370 — Block 6 interaction layering fix. */
@media(max-width:900px){
 .impact-project .project-partners__mobile-intro{pointer-events:none}
 .impact-project .project-partners__mobile-showcase{pointer-events:none}
 .impact-project .project-partners__mobile-showcase.is-interactive{pointer-events:auto}
 .impact-project .project-partners__mobile-postcard,
 .impact-project .project-partners__mobile-cta{pointer-events:auto}
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){
 .impact-project .project-partners__mobile-showcase{pointer-events:auto}
}


/* v0.7.371 — Impact Soest mobile block 7: collaboration curtain chapter. */
.project-local-impact__mobile-stage{display:none}
@media(max-width:900px){
 .impact-project .project-local-impact{
   position:relative;height:340svh;min-height:340svh;padding:0;overflow:visible;background:#ff5a1f;
 }
 .impact-project .project-local-impact>.project-local-impact__editorial{display:none!important}
 .impact-project .project-local-impact__mobile-stage{
   position:sticky;top:72px;display:block;width:100%;height:calc(100svh - 72px);
   overflow:hidden;box-sizing:border-box;background:#ff5a1f;color:#0a0a0a;isolation:isolate;
 }
 .impact-project .project-local-impact__mobile-statement,
 .impact-project .project-local-impact__mobile-partner,
 .impact-project .project-local-impact__mobile-copy{
   position:absolute;inset:0;box-sizing:border-box;
 }
 .impact-project .project-local-impact__mobile-statement{
   z-index:5;display:flex;align-items:center;padding:24px 22px;background:#f5f5f1;
   opacity:var(--si-collab-statement-opacity,1);filter:blur(var(--si-collab-statement-blur,0px));
   pointer-events:none;will-change:opacity,filter;
 }
 .impact-project .project-local-impact__mobile-statement h2{
   margin:0;max-width:9.5em;color:#0a0a0a;font-size:clamp(43px,12vw,62px);line-height:.94;letter-spacing:-.055em;
 }
 .impact-project .project-local-impact__mobile-curtain{
   position:absolute;top:0;bottom:0;z-index:4;width:50.5%;background:#f5f5f1;
   will-change:transform;pointer-events:none;
 }
 .impact-project .project-local-impact__mobile-curtain--left{left:0;transform:translateX(var(--si-collab-curtain-left,0%))}
 .impact-project .project-local-impact__mobile-curtain--right{right:0;transform:translateX(var(--si-collab-curtain-right,0%))}
 .impact-project .project-local-impact__mobile-partner{
   z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:30px 24px;
   text-align:center;opacity:var(--si-collab-partner-opacity,0);filter:blur(var(--si-collab-partner-blur,7px));
   transform:scale(var(--si-collab-partner-scale,.96));pointer-events:none;will-change:opacity,filter,transform;
 }
 .impact-project .project-local-impact__mobile-logo{
   display:flex;align-items:center;justify-content:center;width:min(58vw,260px);max-height:180px;
 }
 .impact-project .project-local-impact__mobile-logo img{display:block;width:auto;height:auto;max-width:100%;max-height:180px;object-fit:contain}
 .impact-project .project-local-impact__mobile-partner>strong{
   max-width:12em;font-size:clamp(25px,7vw,36px);line-height:1;letter-spacing:-.035em;
 }
 .impact-project .project-local-impact__mobile-copy{
   z-index:3;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:28px;padding:28px 24px;
   opacity:var(--si-collab-copy-opacity,0);filter:blur(var(--si-collab-copy-blur,8px));
   transform:translateY(var(--si-collab-copy-y,18px));pointer-events:none;will-change:opacity,filter,transform;
 }
 .impact-project .project-local-impact__mobile-copy.is-interactive{pointer-events:auto}
 .impact-project .project-local-impact__mobile-copy p{
   margin:0;max-width:31rem;font-size:clamp(24px,6.8vw,34px);line-height:1.08;letter-spacing:-.035em;font-weight:650;
 }
 .impact-project .project-local-impact__mobile-copy a{
   display:inline-flex;align-items:center;gap:10px;color:#0a0a0a;text-decoration:none;font-size:15px;font-weight:800;
   border-bottom:1px solid currentColor;padding-bottom:4px;
 }
}
@media(max-width:900px) and (max-height:650px){
 .impact-project .project-local-impact__mobile-statement h2{font-size:clamp(36px,10vw,48px)}
 .impact-project .project-local-impact__mobile-logo{width:min(45vw,210px);max-height:120px}
 .impact-project .project-local-impact__mobile-logo img{max-height:120px}
 .impact-project .project-local-impact__mobile-copy p{font-size:clamp(20px,5.8vw,28px)}
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){
 .impact-project .project-local-impact{height:auto;min-height:calc(100svh - 72px)}
 .impact-project .project-local-impact__mobile-stage{position:relative;top:auto;height:auto;min-height:calc(100svh - 72px);padding:48px 22px}
 .impact-project .project-local-impact__mobile-curtain{display:none}
 .impact-project .project-local-impact__mobile-statement,
 .impact-project .project-local-impact__mobile-partner,
 .impact-project .project-local-impact__mobile-copy{
   position:relative;inset:auto;padding:24px 0;background:transparent;opacity:1!important;filter:none!important;transform:none!important;
 }
 .impact-project .project-local-impact__mobile-copy{pointer-events:auto}
}


/* v0.7.374 — Block 3 mobile: frame + progress rail are one centered composition. */
@media(max-width:900px){
 .impact-project .project-process__mobile-timeline{
   position:absolute!important;
   inset:0!important;
   display:grid!important;
   grid-template-columns:minmax(0,1fr) 28px!important;
   grid-template-rows:minmax(0,1fr)!important;
   column-gap:12px!important;
   align-items:center!important;
   width:auto!important;
   height:auto!important;
   min-width:0!important;
   padding:clamp(26px,6svh,48px) 18px!important;
   box-sizing:border-box!important;
 }
 .impact-project .project-process__mobile-frame{
   position:relative!important;
   grid-column:1!important;
   grid-row:1!important;
   align-self:center!important;
   width:100%!important;
   min-width:0!important;
   height:min(58svh,430px)!important;
   max-height:100%!important;
   box-sizing:border-box!important;
   border:1.5px solid #0a0a0a!important;
   border-radius:26px!important;
   background:#ff5a1f!important;
   overflow:hidden!important;
 }
 .impact-project .project-process__mobile-frame-label{
   position:absolute;top:0;left:24px;z-index:6;
   transform:translateY(-50%);
   padding:0 7px;background:#ff5a1f;color:#0a0a0a;
   font-size:9px;line-height:1;font-weight:850;letter-spacing:.14em;
 }
 .impact-project .project-process__mobile-frame .project-process__mobile-steps{
   position:relative!important;
   inset:auto!important;
   width:100%!important;
   height:100%!important;
   min-width:0!important;
 }
 .impact-project .project-process__mobile-frame .project-process__mobile-step{
   box-sizing:border-box!important;
   width:100%!important;
   min-width:0!important;
   padding:30px 24px!important;
 }
 .impact-project .project-process__mobile-frame .project-process__mobile-step>span{
   display:block!important;margin:0 0 15px!important;white-space:nowrap!important;
   font-size:10px!important;line-height:1!important;font-weight:850!important;letter-spacing:.13em!important;
 }
 .impact-project .project-process__mobile-frame .project-process__mobile-step h3,
 .impact-project .project-process__mobile-frame .project-process__mobile-step p{
   max-width:100%!important;word-break:normal!important;overflow-wrap:normal!important;
 }
 .impact-project .project-process__mobile-progress{
   position:relative!important;
   inset:auto!important;
   grid-column:2!important;
   grid-row:1!important;
   align-self:center!important;
   justify-self:center!important;
   width:28px!important;
   height:min(42svh,300px)!important;
   min-height:210px!important;
   max-height:72%!important;
   margin:0!important;
 }
}
@media(max-width:900px) and (max-height:650px){
 .impact-project .project-process__mobile-timeline{padding:20px 16px!important}
 .impact-project .project-process__mobile-frame{height:min(55svh,320px)!important;border-radius:22px!important}
 .impact-project .project-process__mobile-frame .project-process__mobile-step{padding:23px 20px!important}
 .impact-project .project-process__mobile-progress{height:min(40svh,235px)!important;min-height:175px!important}
}


/* v0.7.375 — Block 3: keep the frame label fully inside the border. */
@media(max-width:900px){
 .impact-project .project-process__mobile-frame-label{
   top:14px!important;
   transform:none!important;
   padding:0!important;
 }
}


/* v0.7.376 — Block 3: identical label spacing for steps 01–04. */
@media(max-width:900px){
 .impact-project .project-process__mobile-frame-label{
   top:16px!important;
   left:26px!important;
 }
 .impact-project .project-process__mobile-frame .project-process__mobile-step{
   padding-top:48px!important;
 }
 .impact-project .project-process__mobile-frame .project-process__mobile-step>span{
   position:absolute!important;
   top:32px!important;
   left:26px!important;
   margin:0!important;
 }
 .impact-project .project-process__mobile-frame .project-process__mobile-step h3{
   margin-top:20px!important;
 }
}
@media(max-width:900px) and (max-height:650px){
 .impact-project .project-process__mobile-frame .project-process__mobile-step{
   padding-top:48px!important;
 }
}


/* v0.7.377 — /soest/impactpartners/: deliberately simple mobile partner overview. */
.impact-wall-mobile{display:none}
@media(max-width:900px){
 body.evolvo-impact-wall-page .impact-wall-stage{display:none!important}
 body.evolvo-impact-wall-page .impact-wall-mobile{
   display:block;background:#f5f5f1;color:#0a0a0a;padding:0 16px 24px;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__hero{
   min-height:clamp(260px,38svh,360px);
   display:flex;flex-direction:column;justify-content:flex-end;
   padding:42px 4px 30px;box-sizing:border-box;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__hero .eyebrow{
   margin:0 0 12px;font-size:10px;font-weight:850;letter-spacing:.14em;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__hero h1{
   margin:0;max-width:9em;font-size:clamp(43px,12vw,62px);line-height:.92;letter-spacing:-.055em;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__hero>p:last-child{
   margin:18px 0 0;max-width:28rem;font-size:17px;line-height:1.35;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__list{
   display:flex;flex-direction:column;gap:12px;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__card{
   position:relative;display:flex;flex-direction:column;
   min-height:300px;padding:18px;border:1px solid #0a0a0a;border-radius:26px;
   box-sizing:border-box;background:#fff;color:#0a0a0a;text-decoration:none;overflow:hidden;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__meta{
   display:flex;justify-content:space-between;gap:12px;
   font-size:9px;line-height:1;font-weight:850;letter-spacing:.12em;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__meta b{font:inherit}
 body.evolvo-impact-wall-page .impact-wall-mobile__logo{
   flex:1;display:flex;align-items:center;justify-content:center;padding:28px 18px;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__logo img{
   display:block;width:auto;height:auto;max-width:72%;max-height:120px;object-fit:contain;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__name{
   display:flex;align-items:flex-end;justify-content:space-between;gap:18px;
   font-size:clamp(24px,7vw,34px);line-height:1;letter-spacing:-.035em;font-weight:800;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__name i{
   flex:0 0 auto;font-size:20px;font-style:normal;font-weight:500;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__cta{
   margin-top:12px;padding:34px 24px 30px;border-radius:26px;background:#0a0a0a;color:#f5f5f1;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__cta .eyebrow{
   margin:0 0 18px;font-size:9px;font-weight:850;letter-spacing:.14em;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__cta h2{
   margin:0;font-size:clamp(34px,10vw,48px);line-height:.95;letter-spacing:-.045em;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__cta>p:not(.eyebrow){
   margin:18px 0 26px;max-width:27rem;font-size:16px;line-height:1.4;
 }
 body.evolvo-impact-wall-page .impact-wall-mobile__cta>a{
   display:inline-flex;align-items:center;gap:12px;color:#f5f5f1;text-decoration:none;
   font-size:15px;font-weight:800;border-bottom:1px solid currentColor;padding-bottom:5px;
 }
}

/* v0.7.378 — Mobile Impactpartners reuses the desktop balloon interaction. */
@media(max-width:900px){
 body.evolvo-impact-wall-page button.impact-wall-mobile__card{
   appearance:none;-webkit-appearance:none;text-align:left;font:inherit;cursor:pointer;
 }
 body.evolvo-impact-wall-page .impact-wall-balloon{padding:18px}
 body.evolvo-impact-wall-page .impact-wall-balloon__card{
   width:min(100%,520px);max-height:calc(100svh - 108px);padding:32px 24px 28px;border-radius:26px;
 }
}

/* v0.7.381 — Dedicated configurable mobile menu.
   Keep the mobile nav closed until the existing menu controller adds .is-open. */
.site-nav--mobile-config{display:none}
@media(max-width:900px){
 .site-nav--desktop-config{display:none!important}
 .site-nav--mobile-config{display:none}
 .site-nav--mobile-config.is-open{display:block}
}


/* v0.7.384 — Impact Soest mobile collaboration:
   disable the legacy desktop section curtains on real mobile viewports.
   Block 7 has its own in-stage curtains; stacking both systems caused the
   peach side overlays to sit above the sticky mobile statement on devices. */
@media(max-width:900px){
 .impact-project .project-local-impact::before,
 .impact-project .project-local-impact::after{
   content:none!important;
   display:none!important;
   -webkit-backdrop-filter:none!important;
   backdrop-filter:none!important;
 }
 .impact-project .project-local-impact__mobile-stage{
   left:0!important;
   right:0!important;
   max-width:100%!important;
   min-width:0!important;
   margin:0!important;
 }
 .impact-project .project-local-impact__mobile-statement{
   width:100%!important;
   min-width:0!important;
   max-width:100%!important;
   overflow:hidden!important;
 }
 .impact-project .project-local-impact__mobile-statement h2{
   max-width:min(9.5em,100%)!important;
   overflow-wrap:normal!important;
   word-break:normal!important;
 }
}


/* v0.7.388 — Configurable mobile menu: authoritative visible state.
   The dedicated mobile nav must keep its top-level labels and CTA text visible
   on real mobile browsers; only the accordion submenu owns a hidden state. */
@media (max-width:900px){
  .site-nav.site-nav--mobile-config.is-open{
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:translateY(0) !important;
    pointer-events:auto !important;
  }

  .site-nav--mobile-config .site-nav__menu,
  .site-nav--mobile-config .site-nav__menu > li,
  .site-nav--mobile-config .site-nav__dropdown-row,
  .site-nav--mobile-config .site-nav__actions{
    opacity:1 !important;
    visibility:visible !important;
  }

  .site-nav--mobile-config .site-nav__menu > li > a,
  .site-nav--mobile-config .site-nav__menu > li > .site-nav__dropdown-link,
  .site-nav--mobile-config .site-nav__menu > li > .site-nav__dropdown-row > .site-nav__dropdown-link{
    display:inline-flex;
    color:var(--black,#0a0a0a) !important;
    -webkit-text-fill-color:var(--black,#0a0a0a) !important;
    opacity:1 !important;
    visibility:visible !important;
  }

  .site-nav--mobile-config .site-nav__cta,
  .site-nav--mobile-config .site-nav__cta:visited,
  .site-nav--mobile-config .site-nav__cta:hover,
  .site-nav--mobile-config .site-nav__cta:focus,
  .site-nav--mobile-config .site-nav__cta:active{
    color:var(--black,#0a0a0a) !important;
    -webkit-text-fill-color:var(--black,#0a0a0a) !important;
    opacity:1 !important;
    visibility:visible !important;
  }

  .site-nav--mobile-config .site-nav__cta-label--mobile{
    display:inline !important;
    color:inherit !important;
    -webkit-text-fill-color:currentColor !important;
    opacity:1 !important;
    visibility:visible !important;
  }

  /* Preserve the intentional accordion behaviour. */
  .site-nav--mobile-config .site-nav__item--dropdown:not(.is-mobile-submenu-open) > .site-nav__submenu{
    max-height:0;
    margin-top:0;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }
  .site-nav--mobile-config .site-nav__item--dropdown.is-mobile-submenu-open > .site-nav__submenu{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
}


/* v0.7.389 — Isolated mobile navigation.
   This component intentionally does not inherit the legacy .site-nav child
   classes. Desktop navigation remains on the original component. */
.ev-mobile-nav{display:none}
@media(max-width:900px){
  .ev-mobile-nav{
    position:fixed;
    inset:72px 0 0;
    z-index:1000;
    box-sizing:border-box;
    height:calc(100svh - 72px);
    padding:clamp(28px,4.5svh,42px) clamp(22px,6vw,30px) clamp(24px,4svh,34px);
    overflow-y:auto;
    overscroll-behavior:contain;
    background:var(--off-white,#f5f5f1);
    border:0;
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    pointer-events:none;
    transition:opacity .20s ease,transform .24s cubic-bezier(.2,.75,.2,1),visibility .20s;
  }
  .ev-mobile-nav.is-open{
    display:block!important;
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    pointer-events:auto;
  }
  .ev-mobile-nav__menu{
    display:flex!important;
    flex-direction:column;
    gap:0;
    margin:0;
    padding:0;
    list-style:none;
    opacity:1;
    visibility:visible;
  }
  .ev-mobile-nav__menu>li{display:block;margin:0;padding:0;opacity:1;visibility:visible}
  .ev-mobile-nav__menu>li+li{margin-top:clamp(22px,3.2svh,30px)}
  .ev-mobile-nav__menu>li>a,
  .ev-mobile-nav__dropdown-link{
    display:inline-flex!important;
    width:auto;
    padding:0;
    color:#0a0a0a!important;
    -webkit-text-fill-color:#0a0a0a!important;
    font:800 clamp(28px,7.4vw,36px)/.98 inherit;
    letter-spacing:-.045em;
    text-decoration:none;
    opacity:1!important;
    visibility:visible!important;
  }
  .ev-mobile-nav__dropdown-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
  .ev-mobile-nav__dropdown-link{min-width:0;flex:1 1 auto}
  .ev-mobile-nav__dropdown-arrow{display:none}
  .ev-mobile-nav__accordion-toggle{
    flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;
    margin:-8px -8px -8px 0;padding:0;border:0;background:transparent;
    color:#0a0a0a;cursor:pointer;
  }
  .ev-mobile-nav__accordion-icon{position:relative;display:block;width:16px;height:16px}
  .ev-mobile-nav__accordion-icon::before,
  .ev-mobile-nav__accordion-icon::after{
    content:"";position:absolute;left:50%;top:50%;width:16px;height:2px;
    background:currentColor;transform:translate(-50%,-50%);
    transition:transform .22s ease,opacity .22s ease;
  }
  .ev-mobile-nav__accordion-icon::after{transform:translate(-50%,-50%) rotate(90deg)}
  .ev-mobile-nav__accordion-toggle[aria-expanded="true"] .ev-mobile-nav__accordion-icon::after{opacity:0}
  .ev-mobile-nav__submenu{
    position:static;display:block;box-sizing:border-box;width:100%;max-height:0;
    margin:0;padding:0 0 0 18px;overflow:hidden;list-style:none;
    border:0;background:transparent;box-shadow:none;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:max-height .30s cubic-bezier(.2,.75,.2,1),opacity .18s ease,margin-top .30s cubic-bezier(.2,.75,.2,1),visibility .18s;
  }
  .ev-mobile-nav__submenu li{margin:0;padding:0}
  .ev-mobile-nav__submenu li+li{margin-top:9px}
  .ev-mobile-nav__submenu a{
    display:inline-block;padding:2px 0;color:rgba(10,10,10,.72)!important;
    -webkit-text-fill-color:rgba(10,10,10,.72)!important;
    font-size:clamp(17px,4.7vw,21px);line-height:1.22;font-weight:650;
    letter-spacing:-.025em;text-decoration:none;opacity:1;visibility:visible;
  }
  .ev-mobile-nav__item--dropdown.is-mobile-submenu-open>.ev-mobile-nav__submenu{
    max-height:360px;margin-top:clamp(14px,2.1svh,18px);
    opacity:1;visibility:visible;pointer-events:auto;
  }
  .ev-mobile-nav__actions{
    display:block;width:100%;margin-top:clamp(30px,5svh,46px);
    padding-top:clamp(22px,3.2svh,30px);border-top:1px solid rgba(10,10,10,.12);
    opacity:1;visibility:visible;
  }
  .ev-mobile-nav__cta{
    box-sizing:border-box;display:inline-flex!important;align-items:center;justify-content:space-between;
    width:100%;min-height:58px;padding:0 24px;border:0;border-radius:18px;
    background:var(--orange,#ff5a1f)!important;color:#0a0a0a!important;
    -webkit-text-fill-color:#0a0a0a!important;text-decoration:none;
    font-size:15px;font-weight:850;letter-spacing:.025em;text-transform:uppercase;
    opacity:1!important;visibility:visible!important;
  }
  .ev-mobile-nav__cta::after{content:"→";margin-left:auto;font-size:1.2em}
  .ev-mobile-nav__cta-label{display:inline!important;color:inherit!important;-webkit-text-fill-color:currentColor!important}
}
@media(max-width:560px){
  .ev-mobile-nav{padding:26px 20px 24px}
  .ev-mobile-nav__menu>li+li{margin-top:21px}
  .ev-mobile-nav__submenu{padding-left:16px}
}
@media(max-width:900px) and (max-height:700px){
  .ev-mobile-nav{padding-top:20px;padding-bottom:20px}
  .ev-mobile-nav__menu>li+li{margin-top:17px}
  .ev-mobile-nav__menu>li>a,.ev-mobile-nav__dropdown-link{font-size:clamp(25px,6.6vw,31px)}
  .ev-mobile-nav__actions{margin-top:24px;padding-top:18px}
  .ev-mobile-nav__cta{min-height:54px}
}
