/*!
 * Medialemon Sitepackage – TYPO3 v14 LTS
 * Apple-inspired design system on the Medialemon palette (lime #a4c639 on navy #0d1117).
 *
 *  1  Tokens            8  Local navigation      15 Contact & map
 *  2  Base              9  Hero                  16 Legal documents
 *  3  Typography       10  Section scaffolding   17 Core content (fluid_styled_content)
 *  4  Layout           11  Intro                 18 Footer
 *  5  Controls         12  Tiles                 19 Sheet dialog & switch
 *  6  Announcement     13  Chips & benefits      20 Motion
 *  7  Super menu       14  Gallery, CTA, text    21 Preferences & responsive
 */

/* ── 1 Tokens ────────────────────────────────────────────────────────── */
:root {
    color-scheme: dark;

    /* Brand – unchanged from the original theme */
    --ml-lime: #a4c639;
    --ml-lime-bright: #c5e84b;
    --ml-lime-dim: #84a036;
    --ml-lime-soft: rgb(164 198 57 / .14);
    --ml-lime-ring: rgb(164 198 57 / .35);
    --ml-lime-glow: rgb(164 198 57 / .2);
    --ml-on-lime: #0d1117;

    /* Surfaces – lightness steps encode elevation */
    --ml-canvas: #0d1117;
    --ml-surface: #111820;
    --ml-card: #161d28;
    --ml-card-raised: #1c2431;

    /* Text – every step passes WCAG AA on every surface above */
    --ml-text: #f5f5f7;
    --ml-text-2: #a8afbb;
    --ml-text-3: #8f97a4;

    /* Lines */
    --ml-hairline: rgb(255 255 255 / .08);
    --ml-hairline-strong: rgb(255 255 255 / .16);

    /* Semantic */
    --ml-notice: #ff9f0a;
    --ml-on-notice: #0d1117;

    /* Materials (translucent chrome; content scrolls underneath) */
    --ml-material: rgb(13 17 23 / .72);
    --ml-material-heavy: rgb(17 24 32 / .9);
    --ml-material-filter: saturate(180%) blur(20px);

    /* Shape */
    --ml-radius-s: 12px;
    --ml-radius-m: 18px;
    --ml-radius-l: 28px;
    --ml-radius-pill: 980px;

    /* Space */
    --ml-gutter: clamp(1.375rem, 4.2vw, 2.75rem);
    --ml-max: 73.75rem;          /* 1180px */
    --ml-measure: 42rem;
    --ml-section: clamp(5rem, 9vw, 8.75rem);
    --ml-nav-h: 4rem;

    /* Type – the platform system font: SF Pro on Apple devices, Segoe UI on
       Windows, Roboto on Android. No web font download, no third party. */
    --ml-font: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display",
        "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

    /* Motion – critically damped feel (no overshoot) for chrome */
    --ml-ease: cubic-bezier(.25, .1, .25, 1);
    --ml-ease-out: cubic-bezier(.16, 1, .3, 1);
    --ml-ease-in: cubic-bezier(.7, 0, .84, 0);
}

/* ── 2 Base ──────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--ml-nav-h) + 1rem);
    background: var(--ml-canvas);
}
html.ml-lock { overflow: hidden; }

body {
    margin: 0;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--ml-canvas);
    color: var(--ml-text);
    font-family: var(--ml-font);
    font-size: 1.0625rem;          /* 17px – Apple body size */
    line-height: 1.47;
    letter-spacing: -.01em;
    font-optical-sizing: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

img, svg, video, iframe { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; letter-spacing: inherit; }
button { cursor: pointer; }
:where(ul, ol)[role="list"] { list-style: none; margin: 0; padding: 0; }
address { font-style: normal; }
::selection { background: var(--ml-lime); color: var(--ml-on-lime); }

:focus-visible {
    outline: 2px solid var(--ml-lime);
    outline-offset: 3px;
}

.sr-only {
    position: absolute !important;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.ml-skip {
    position: fixed;
    top: .75rem; left: .75rem;
    z-index: 1000;
    padding: .625rem 1rem;
    border-radius: var(--ml-radius-pill);
    background: var(--ml-lime);
    color: var(--ml-on-lime);
    font-weight: 600;
    text-decoration: none;
    transform: translateY(-200%);
    transition: transform .2s var(--ml-ease-out);
}
.ml-skip:focus { transform: none; }

.ml-main { flex: 1 0 auto; outline: none; }

/* ── 3 Typography ─────────────────────────────────────────────────────
   Tracking and leading are size-specific: large type is tightened,
   small type is opened up; leading shrinks as size grows. */
.ml-eyebrow {
    margin: 0 0 .75rem;
    color: var(--ml-lime);
    font-size: 1.0625rem;
    font-weight: 600;
    line-height: 1.24;
    letter-spacing: -.005em;
}

.ml-headline {
    margin: 0;
    font-size: clamp(2.25rem, 1.35rem + 3.6vw, 4rem);
    font-weight: 700;
    line-height: 1.06;
    letter-spacing: -.028em;
    text-wrap: balance;
}
.ml-headline--medium {
    font-size: clamp(1.875rem, 1.3rem + 2.3vw, 3rem);
    line-height: 1.1;
    letter-spacing: -.022em;
}
.ml-headline--large {
    font-size: clamp(2.5rem, 1.35rem + 4.6vw, 5rem);
    line-height: 1.04;
    letter-spacing: -.032em;
}

.ml-lead {
    margin: 1rem 0 0;
    color: var(--ml-text-2);
    font-size: clamp(1.1875rem, 1.05rem + .55vw, 1.4375rem);
    font-weight: 400;
    line-height: 1.38;
    letter-spacing: -.012em;
    text-wrap: pretty;
}

.ml-prose { color: var(--ml-text-2); line-height: 1.6; }
.ml-prose > :first-child { margin-top: 0; }
.ml-prose > :last-child { margin-bottom: 0; }
.ml-prose p { margin: 0 0 1em; }
.ml-prose h2 {
    margin: 2.5rem 0 .75rem;
    color: var(--ml-text);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.17;
    letter-spacing: -.018em;
}
.ml-prose h3 {
    margin: 2rem 0 .5rem;
    color: var(--ml-text);
    font-size: 1.1875rem;
    font-weight: 600;
    line-height: 1.26;
    letter-spacing: -.012em;
}
.ml-prose h4 { margin: 1.5rem 0 .5rem; color: var(--ml-text); font-size: 1.0625rem; font-weight: 600; }
.ml-prose strong, .ml-prose b { color: var(--ml-text); font-weight: 600; }
.ml-prose a:not([class]) {
    color: var(--ml-lime);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .2em;
}
.ml-prose a:not([class]):hover { color: var(--ml-lime-bright); }
.ml-prose :where(ul, ol) { margin: 0 0 1em; padding-left: 1.25em; }
.ml-prose li { margin-bottom: .4em; }
.ml-prose li::marker { color: var(--ml-lime); }
.ml-prose .ml-lead { margin: 0 0 1em; }
.ml-prose .ml-footnote, .ml-footnote { font-size: .875rem; line-height: 1.45; color: var(--ml-text-3); letter-spacing: 0; }
.ml-prose--large { font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); line-height: 1.55; }

.ml-accent {
    color: var(--ml-lime);
    background: linear-gradient(100deg, var(--ml-lime) 15%, var(--ml-lime-bright) 85%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* ── 4 Layout ────────────────────────────────────────────────────────── */
.ml-wrap {
    width: 100%;
    max-width: calc(var(--ml-max) + 2 * var(--ml-gutter));
    margin-inline: auto;
    padding-inline: var(--ml-gutter);
}

.ml-card {
    background: var(--ml-card);
    border-radius: var(--ml-radius-l);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .04), 0 0 0 1px var(--ml-hairline);
}

/* ── 5 Controls ──────────────────────────────────────────────────────
   Feedback happens on press (pointer-down), not on release. */
.ml-btn {
    --ml-btn-h: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: var(--ml-btn-h);
    padding: 0 1.375rem;
    border: 0;
    border-radius: var(--ml-radius-pill);
    font-size: 1.0625rem;
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -.01em;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: background-color .2s var(--ml-ease), color .2s var(--ml-ease), box-shadow .2s var(--ml-ease), transform .3s var(--ml-ease-out);
}
.ml-btn:active { transform: scale(.97); transition-duration: .2s, .2s, .2s, .08s; }

.ml-btn--primary { background: var(--ml-lime); color: var(--ml-on-lime); }
.ml-btn--primary:hover { background: var(--ml-lime-bright); }

.ml-btn--secondary { background: rgb(255 255 255 / .08); color: var(--ml-text); box-shadow: inset 0 0 0 1px var(--ml-hairline); }
.ml-btn--secondary:hover { background: rgb(255 255 255 / .14); }

.ml-btn--small { --ml-btn-h: 2rem; padding: 0 .875rem; font-size: .875rem; letter-spacing: -.005em; }
.ml-btn--large { --ml-btn-h: 3.25rem; padding: 0 1.75rem; font-size: 1.0625rem; font-weight: 600; }

.ml-link-arrow {
    display: inline-flex;
    align-items: baseline;
    color: var(--ml-lime);
    font-weight: 500;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}
.ml-link-arrow::after {
    content: "›";
    display: inline-block;
    margin-left: .3em;
    font-weight: 400;
    transition: transform .3s var(--ml-ease-out);
}
.ml-link-arrow:hover { text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.ml-link-arrow:hover::after { transform: translateX(3px); }
.ml-link-arrow:active { opacity: .7; }
.ml-link-arrow--large { font-size: 1.1875rem; }

/* ── 6 Announcement / vacation ──────────────────────────────────────── */
.ml-announce {
    position: relative;
    z-index: 110;
    overflow: hidden;
    background: var(--ml-lime);
    color: var(--ml-on-lime);
    font-size: .875rem;
    line-height: 1.38;
    letter-spacing: -.005em;
    transition: height .32s var(--ml-ease-out), opacity .2s var(--ml-ease);
}
.ml-announce--vacation { background: var(--ml-notice); color: var(--ml-on-notice); }
.ml-announce[hidden] { display: none; }
.ml-announce.is-closing { opacity: 0; }

.ml-announce__inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .625rem;
    min-height: 2.75rem;
    padding-block: .5rem;
    padding-right: calc(var(--ml-gutter) + 2.25rem);
    padding-left: calc(var(--ml-gutter) + 2.25rem);
    text-align: center;
}
.ml-announce__icon { flex: none; display: inline-flex; }
.ml-announce__text { margin: 0; font-weight: 500; }
.ml-announce__link { margin-left: .375rem; color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; white-space: nowrap; }
.ml-announce__close {
    position: absolute;
    top: 50%;
    right: var(--ml-gutter);
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    margin-top: -1rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgb(0 0 0 / .1);
    color: inherit;
    transition: background-color .2s var(--ml-ease), transform .3s var(--ml-ease-out);
}
.ml-announce__close:hover { background: rgb(0 0 0 / .18); }
.ml-announce__close:active { transform: scale(.92); transition-duration: .2s, .08s; }
.ml-announce :focus-visible { outline-color: var(--ml-on-lime); }

/* ── 7 Global navigation & super menu ───────────────────────────────── */
.ml-gnav {
    position: sticky;
    top: 0;
    z-index: 100;
    --ml-mega-bg: rgb(17 24 32 / .95);
}

.ml-gnav__bar {
    position: relative;
    z-index: 3;
    background: var(--ml-material);
    -webkit-backdrop-filter: var(--ml-material-filter);
    backdrop-filter: var(--ml-material-filter);
    transition: background-color .3s var(--ml-ease);
}
/* Scroll edge effect instead of a hard divider – only once content runs underneath */
.ml-gnav__bar::after {
    content: "";
    position: absolute;
    left: 0; right: 0; top: 100%;
    height: 1.25rem;
    background: linear-gradient(to bottom, rgb(13 17 23 / .55), rgb(13 17 23 / 0));
    pointer-events: none;
    opacity: 0;
    transition: opacity .3s var(--ml-ease);
}
.ml-gnav.is-scrolled .ml-gnav__bar::after { opacity: 1; }
.ml-gnav.has-flyout .ml-gnav__bar { background: var(--ml-mega-bg); }
.ml-gnav.has-flyout .ml-gnav__bar::after { opacity: 0; }

.ml-gnav__inner {
    display: flex;
    align-items: center;
    gap: 2rem;
    height: var(--ml-nav-h);
}

.ml-gnav__logo {
    flex: none;
    display: inline-flex;
    align-items: center;
    height: 2.75rem;
    margin-left: -.375rem;
    padding: 0 .375rem;
    border-radius: var(--ml-radius-s);
    -webkit-tap-highlight-color: transparent;
}
.ml-gnav__logo img { width: auto; height: 2rem; }

.ml-gnav__list { display: flex; flex: 1 1 auto; align-items: center; gap: .25rem; }
.ml-gnav__item { display: flex; align-items: center; }

.ml-gnav__link,
.ml-gnav__trigger {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    height: 2.5rem;
    padding: 0 .9375rem;
    border: 0;
    border-radius: var(--ml-radius-pill);
    background: transparent;
    color: rgb(245 245 247 / .82);
    font-size: .9375rem;
    font-weight: 500;
    letter-spacing: -.01em;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background-color .2s var(--ml-ease), color .2s var(--ml-ease), transform .3s var(--ml-ease-out);
}
.ml-gnav__link:hover,
.ml-gnav__trigger:hover { color: var(--ml-text); background: rgb(255 255 255 / .06); }
.ml-gnav__link:active,
.ml-gnav__trigger:active { transform: scale(.97); transition-duration: .2s, .2s, .08s; }
.ml-gnav__link.is-active,
.ml-gnav__item.is-active > .ml-gnav__trigger { color: var(--ml-text); }
.ml-gnav__link[aria-current="page"] { color: var(--ml-lime); }
.ml-gnav__item.is-open > .ml-gnav__trigger { color: var(--ml-text); background: rgb(255 255 255 / .1); }
.ml-gnav__chevron { opacity: .7; transition: transform .35s var(--ml-ease-out); }
.ml-gnav__item.is-open .ml-gnav__chevron { transform: rotate(180deg); }

/* Without JavaScript the trigger is replaced by a plain link to the section page */
.ml-gnav__nojs { display: none; }
.no-js .ml-gnav__nojs { display: inline-flex; }
.no-js .ml-gnav__trigger { display: none; }

.ml-gnav__tools { flex: none; display: flex; align-items: center; gap: .75rem; margin-left: auto; }

.ml-lang { display: flex; gap: .125rem; padding: .1875rem; border-radius: var(--ml-radius-pill); background: rgb(255 255 255 / .06); }
.ml-lang__link {
    display: grid;
    place-items: center;
    min-width: 2.25rem;
    height: 1.75rem;
    padding: 0 .5rem;
    border-radius: var(--ml-radius-pill);
    color: var(--ml-text-2);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-decoration: none;
    transition: background-color .2s var(--ml-ease), color .2s var(--ml-ease);
}
.ml-lang__link:hover { color: var(--ml-text); }
.ml-lang__link.is-active { background: rgb(255 255 255 / .14); color: var(--ml-text); }
.ml-gnav__cta { --ml-btn-h: 2.375rem; padding: 0 1.125rem; font-size: .9375rem; }

/* Super menu panel – unfolds out of the bar and folds back into it */
.ml-mega {
    position: absolute;
    left: 0; right: 0; top: 100%;
    z-index: 2;
    background: var(--ml-mega-bg);
    -webkit-backdrop-filter: var(--ml-material-filter);
    backdrop-filter: var(--ml-material-filter);
    box-shadow: inset 0 1px 0 var(--ml-hairline), 0 40px 80px -30px rgb(0 0 0 / .65);
    opacity: 0;
    visibility: hidden;
    clip-path: inset(0 0 100% 0);
    transition: clip-path .36s var(--ml-ease-out), opacity .22s var(--ml-ease), visibility 0s linear .36s;
}
.ml-gnav__item--mega.is-open > .ml-mega,
.no-js .ml-gnav__item--mega:hover > .ml-mega,
.no-js .ml-gnav__item--mega:focus-within > .ml-mega {
    opacity: 1;
    visibility: visible;
    clip-path: inset(0 0 -6rem 0);
    transition: clip-path .46s var(--ml-ease-out), opacity .24s var(--ml-ease), visibility 0s;
}

.ml-mega__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 21rem;
    gap: 3rem;
    padding-top: 1.75rem;
    padding-bottom: 2.25rem;
}
.ml-mega__inner--full { grid-template-columns: minmax(0, 1fr); }

.ml-mega__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .875rem;
    padding-inline: 1rem;
}
.ml-mega__label { margin: 0; color: var(--ml-text-3); font-size: .8125rem; font-weight: 500; letter-spacing: 0; }
.ml-mega__all { font-size: .875rem; }

.ml-mega__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .375rem .75rem;
}

/* Card shared by the desktop panel and the mobile menu */
.ml-mcard {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: .875rem 1rem;
    border-radius: var(--ml-radius-m);
    color: var(--ml-text);
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    transition: background-color .2s var(--ml-ease), transform .3s var(--ml-ease-out);
}
.ml-mcard:hover { background: rgb(255 255 255 / .055); }
.ml-mcard:active { transform: scale(.985); transition-duration: .2s, .08s; }
.ml-mcard.is-active { background: rgb(164 198 57 / .08); }

.ml-mcard__icon {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 14px;
    background: var(--ml-lime-soft);
    color: var(--ml-lime);
    transition: background-color .25s var(--ml-ease), color .25s var(--ml-ease);
}
.ml-mcard__icon .ml-symbol { width: 1.375rem; height: 1.375rem; }
.ml-mcard:hover .ml-mcard__icon,
.ml-mcard:focus-visible .ml-mcard__icon,
.ml-mcard.is-active .ml-mcard__icon { background: var(--ml-lime); color: var(--ml-on-lime); }
.ml-mcard__initial { font-size: 1.0625rem; font-weight: 700; }

.ml-mcard__body { display: grid; gap: .125rem; }
.ml-mcard__title { font-size: 1.0625rem; font-weight: 600; line-height: 1.25; letter-spacing: -.012em; }
.ml-mcard__teaser {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--ml-text-2);
    font-size: .875rem;
    line-height: 1.38;
    letter-spacing: -.005em;
}
.ml-mcard__arrow {
    color: var(--ml-lime);
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity .2s var(--ml-ease), transform .35s var(--ml-ease-out);
}
.ml-mcard:hover .ml-mcard__arrow,
.ml-mcard:focus-visible .ml-mcard__arrow { opacity: 1; transform: none; }

/* Entrance: cards settle in sequence, only while the panel opens */
.ml-gnav__item--mega.is-open .ml-mega .ml-mcard { animation: ml-card-in .5s var(--ml-ease-out) both; }
.ml-gnav__item--mega.is-open .ml-mega .ml-mcard--d2 { animation-delay: .035s; }
.ml-gnav__item--mega.is-open .ml-mega .ml-mcard--d3 { animation-delay: .07s; }
.ml-gnav__item--mega.is-open .ml-mega .ml-mcard--d4 { animation-delay: .105s; }
.ml-gnav__item--mega.is-open .ml-mega .ml-mcard--d5 { animation-delay: .14s; }
.ml-gnav__item--mega.is-open .ml-mega .ml-mcard--d6 { animation-delay: .175s; }
.ml-gnav__item--mega.is-open .ml-mega__aside { animation: ml-card-in .55s var(--ml-ease-out) .08s both; }
@keyframes ml-card-in { from { opacity: 0; transform: translateY(-.5rem); } }

.ml-mega__aside { display: grid; gap: .75rem; align-content: start; }

.ml-feature {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 1.5rem;
    border-radius: 22px;
    background: var(--ml-card);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .05), 0 0 0 1px var(--ml-hairline);
}
.ml-feature__glow {
    position: absolute;
    z-index: -1;
    top: -9rem;
    right: -7rem;
    width: 18rem;
    height: 18rem;
    background: radial-gradient(closest-side, rgb(164 198 57 / .24), rgb(164 198 57 / 0));
    pointer-events: none;
}
.ml-feature__eyebrow { margin: 0; color: var(--ml-lime); font-size: .8125rem; font-weight: 600; letter-spacing: 0; }
.ml-feature__title { margin: .375rem 0 .5rem; font-size: 1.3125rem; font-weight: 700; line-height: 1.2; letter-spacing: -.018em; }
.ml-feature__text { margin: 0; color: var(--ml-text-2); font-size: .875rem; line-height: 1.45; letter-spacing: -.005em; }
.ml-feature__cta { margin-top: 1.125rem; }

.ml-mcontact { display: grid; gap: .125rem; }
.ml-mcontact__row {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .5rem .75rem;
    border-radius: var(--ml-radius-s);
    color: var(--ml-text-2);
    font-size: .875rem;
    letter-spacing: -.005em;
    text-decoration: none;
    transition: background-color .2s var(--ml-ease), color .2s var(--ml-ease);
}
a.ml-mcontact__row:hover { background: rgb(255 255 255 / .05); color: var(--ml-text); }
.ml-mcontact__icon {
    flex: none;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: rgb(255 255 255 / .06);
    color: var(--ml-lime);
}
.ml-mcontact__icon .ml-symbol { width: 1rem; height: 1rem; }

.ml-mega__foot { border-top: 1px solid var(--ml-hairline); background: rgb(0 0 0 / .14); }
.ml-mega__foot-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem 2rem;
    padding-block: .875rem;
    color: var(--ml-text-3);
    font-size: .8125rem;
}
.ml-mega__foot-inner p { margin: 0; }
.ml-mega__foot-links { display: flex; gap: 1.5rem; }
.ml-mega__foot-links a { color: var(--ml-text-2); text-decoration: none; }
.ml-mega__foot-links a:hover { color: var(--ml-text); text-decoration: underline; text-underline-offset: .2em; }

/* Content stays visible but steps back while the super menu is open */
.ml-scrim {
    position: fixed;
    inset: 0;
    z-index: 90;
    background: rgb(5 8 12 / .5);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s var(--ml-ease), visibility 0s linear .3s;
}
html.ml-flyout-open .ml-scrim,
.no-js .ml-gnav:has(.ml-gnav__item--mega:hover) + .ml-scrim {
    opacity: 1;
    visibility: visible;
    transition: opacity .3s var(--ml-ease), visibility 0s;
}

/* Burger (two lines → cross) */
.ml-gnav__burger {
    position: relative;
    display: none;
    width: 2.75rem;
    height: 2.75rem;
    margin-right: -.625rem;
    padding: 0;
    border: 0;
    background: none;
    -webkit-tap-highlight-color: transparent;
}
.ml-gnav__burger-line {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 1.125rem;
    height: 1.5px;
    margin-left: -.5625rem;
    border-radius: 1px;
    background: var(--ml-text);
    transition: transform .36s var(--ml-ease-out);
}
.ml-gnav__burger-line:nth-of-type(2) { transform: translateY(-4px); }
.ml-gnav__burger-line:nth-of-type(3) { transform: translateY(3px); }
.ml-gnav__burger[aria-expanded="true"] .ml-gnav__burger-line:nth-of-type(2) { transform: rotate(45deg); }
.ml-gnav__burger[aria-expanded="true"] .ml-gnav__burger-line:nth-of-type(3) { transform: rotate(-45deg); }

/* Mobile super menu – full-height sheet below the bar */
.ml-mnav {
    position: fixed;
    inset: var(--ml-mnav-top, var(--ml-nav-h)) 0 0 0;
    z-index: 1;
    display: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: rgb(13 17 23 / .96);
    -webkit-backdrop-filter: var(--ml-material-filter);
    backdrop-filter: var(--ml-material-filter);
    opacity: 0;
    visibility: hidden;
    transition: opacity .28s var(--ml-ease), visibility 0s linear .28s;
}
.ml-mnav.is-open { opacity: 1; visibility: visible; transition: opacity .32s var(--ml-ease), visibility 0s; }
.ml-mnav__inner { display: grid; gap: 1.75rem; padding-top: 1.25rem; padding-bottom: calc(3rem + env(safe-area-inset-bottom)); }
.ml-mnav__item {
    opacity: 0;
    transform: translateY(-.5rem);
    transition: opacity .2s var(--ml-ease), transform .2s var(--ml-ease);
}
.ml-mnav.is-open .ml-mnav__item { opacity: 1; transform: none; transition: opacity .4s var(--ml-ease), transform .5s var(--ml-ease-out); }
.ml-mnav.is-open .ml-mnav__item--d2 { transition-delay: .04s; }
.ml-mnav.is-open .ml-mnav__item--d3 { transition-delay: .08s; }
.ml-mnav.is-open .ml-mnav__item--d4 { transition-delay: .12s; }
.ml-mnav.is-open .ml-mnav__item--d5 { transition-delay: .16s; }
.ml-mnav__label { margin: 0 0 .5rem; padding-inline: 1rem; color: var(--ml-text-3); font-size: .8125rem; font-weight: 500; }
.ml-mnav__cards { display: grid; gap: .125rem; margin-inline: -.5rem; }
.ml-mnav .ml-mcard { padding: .75rem .5rem .75rem 1rem; }
.ml-mnav .ml-mcard__arrow { opacity: .55; transform: none; }
.ml-mnav__all { margin-top: .75rem; padding-left: .5rem; font-size: .9375rem; }
.ml-mnav__link {
    display: block;
    padding: .25rem .5rem;
    color: var(--ml-text);
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1.14;
    letter-spacing: -.022em;
    text-decoration: none;
}
.ml-mnav__link[aria-current="page"] { color: var(--ml-lime); }
.ml-mnav__aside { display: grid; gap: .75rem; }
.ml-mnav__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.ml-lang--mobile { display: inline-flex; justify-self: start; margin-top: .5rem; }

/* ── 9 Hero ──────────────────────────────────────────────────────────── */
.ml-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding-block: clamp(4rem, 8vw, 7rem) clamp(3rem, 6vw, 5rem);
    text-align: center;
}
.ml-hero__glow {
    position: absolute;
    z-index: -1;
    left: 50%;
    top: -18rem;
    width: min(70rem, 140vw);
    height: 46rem;
    transform: translateX(-50%);
    background: radial-gradient(closest-side, var(--ml-lime-glow), rgb(164 198 57 / 0));
    pointer-events: none;
}
.ml-hero__inner { display: flex; flex-direction: column; align-items: center; }
.ml-hero__copy { display: flex; flex-direction: column; align-items: center; }

.ml-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 1.5rem;
    padding: .375rem .875rem;
    border-radius: var(--ml-radius-pill);
    background: var(--ml-lime-soft);
    color: var(--ml-lime);
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: -.005em;
}
.ml-hero__dot { width: .4375rem; height: .4375rem; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px rgb(164 198 57 / .25); }

.ml-hero__title {
    max-width: 14ch;
    margin: 0;
    font-size: clamp(2.75rem, 1.1rem + 6.6vw, 6rem);
    font-weight: 700;
    line-height: 1.03;
    letter-spacing: -.034em;
    text-wrap: balance;
}
.ml-hero__title-rest { display: block; }

.ml-hero__lead {
    max-width: 34em;
    margin: 1.5rem 0 0;
    color: var(--ml-text-2);
    font-size: clamp(1.1875rem, 1rem + .8vw, 1.5rem);
    line-height: 1.33;
    letter-spacing: -.014em;
    text-wrap: pretty;
}

.ml-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1rem 1.75rem;
    margin-top: 2.25rem;
}
.ml-hero__actions:empty { display: none; }

/* Key figures – on plain stages as quiet cards, on the image as glass */
.ml-stats {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
    margin: clamp(2.5rem, 5vw, 3.5rem) 0 0;
    padding: 0;
    list-style: none;
}
.ml-stat {
    min-width: 9.5rem;
    padding: .875rem 1.25rem;
    border-radius: var(--ml-radius-m);
    background: var(--ml-card);
    box-shadow: 0 0 0 1px var(--ml-hairline);
    text-align: left;
}
.ml-stat__value {
    display: block;
    color: var(--ml-lime);
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.022em;
    font-variant-numeric: tabular-nums;
}
.ml-stat__label {
    display: block;
    margin-top: .125rem;
    color: var(--ml-text-2);
    font-size: .8125rem;
    font-weight: 500;
    letter-spacing: .01em;
}

/* Image stage: the large photo fills the stage edge to edge, the copy sits on it.
   A scrim keeps every text step above 4.5 : 1 on any photo and fades into the canvas,
   so the stage flows into the page without a hard edge. */
.ml-hero--image {
    display: flex;
    align-items: flex-end;
    min-height: clamp(34rem, calc(100svh - var(--ml-nav-h)), 60rem);
    padding-block: calc(var(--ml-nav-h) + 2rem) clamp(2.5rem, 7vh, 5.5rem);
    text-align: left;
}
.ml-hero__backdrop {
    position: absolute;
    z-index: -1;
    inset: 0;
    overflow: hidden;
    background: var(--ml-canvas);
}
.ml-hero__backdrop picture { display: contents; }
.ml-hero__backdrop .ml-hero__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 40%;
}
.ml-hero__backdrop::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgb(13 17 23 / .45) 0%, rgb(13 17 23 / .08) 28%, rgb(13 17 23 / .35) 58%, rgb(13 17 23 / .9) 88%, var(--ml-canvas) 100%),
        linear-gradient(90deg, rgb(13 17 23 / .62) 0%, rgb(13 17 23 / .2) 55%, rgb(13 17 23 / 0) 80%),
        radial-gradient(ellipse at 80% 15%, rgb(164 198 57 / .12) 0%, rgb(164 198 57 / 0) 60%);
}
.ml-hero--image .ml-hero__inner {
    width: 100%;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2.5rem 3rem;
}
.ml-hero--image .ml-hero__copy { align-items: flex-start; max-width: 46rem; }
.ml-hero--image .ml-hero__title { max-width: 13ch; font-size: clamp(2.75rem, 1.2rem + 5.4vw, 5.25rem); text-shadow: 0 2px 30px rgb(13 17 23 / .35); }
.ml-hero--image .ml-hero__lead {
    max-width: 30em;
    color: rgb(245 245 247 / .9);     /* vibrancy over the image */
    text-shadow: 0 1px 16px rgb(13 17 23 / .5);
}
.ml-hero--image .ml-hero__actions { justify-content: flex-start; margin-top: 2rem; }
.ml-hero--image .ml-hero__eyebrow {
    background: rgb(13 17 23 / .5);
    -webkit-backdrop-filter: var(--ml-material-filter);
    backdrop-filter: var(--ml-material-filter);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .12), 0 0 0 1px rgb(255 255 255 / .08);
    color: var(--ml-lime-bright);
}
.ml-hero--image .ml-stats { flex: none; flex-direction: column; margin: 0; }
.ml-hero--image .ml-stat {
    background: rgb(13 17 23 / .5);
    -webkit-backdrop-filter: var(--ml-material-filter);
    backdrop-filter: var(--ml-material-filter);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .14), 0 0 0 1px rgb(255 255 255 / .08);
}
.ml-hero--image .ml-stat__label { color: rgb(245 245 247 / .88); }

/* The photo settles once on load – a single, critically damped move, no loop */
@media (prefers-reduced-motion: no-preference) {
    .ml-hero__backdrop .ml-hero__img { animation: ml-hero-settle 1.8s var(--ml-ease-out) both; }
}
@keyframes ml-hero-settle { from { transform: scale(1.06); } }

/* On the start page the photo runs underneath the translucent global navigation */
.ml-hero--home.ml-hero--image { margin-top: calc(-1 * var(--ml-nav-h)); min-height: clamp(36rem, calc(100svh - 2.75rem), 60rem); }

/* Sub-page hero */
.ml-hero--page { padding-block: clamp(3.5rem, 7vw, 6rem) clamp(2rem, 4vw, 3.5rem); }
.ml-hero--page .ml-hero__glow { top: -24rem; opacity: .7; }
.ml-hero--page .ml-hero__title { max-width: 18ch; font-size: clamp(2.5rem, 1.4rem + 4.6vw, 5rem); line-height: 1.04; letter-spacing: -.032em; }
.ml-hero--page:not(.ml-hero--image) .ml-hero__eyebrow { background: none; padding: 0; margin-bottom: 1rem; font-size: 1.0625rem; }
.ml-hero--page:not(.ml-hero--image) .ml-hero__dot { display: none; }
.ml-hero--page.ml-hero--image { min-height: clamp(26rem, 62svh, 40rem); }

/* ── 10 Section scaffolding ──────────────────────────────────────────── */
.ml-section { padding-block: var(--ml-section); }
.ml-section + .ml-section { padding-top: calc(var(--ml-section) * .5); }
.ml-hero + .ml-section { padding-top: calc(var(--ml-section) * .6); }

.ml-section__header {
    max-width: 46rem;
    margin: 0 auto clamp(2.5rem, 5vw, 4rem);
    text-align: center;
}
.ml-section__header--start { margin-inline: 0; text-align: left; }

/* ── 11 Intro ────────────────────────────────────────────────────────── */
.ml-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    align-items: center;
    gap: clamp(2.5rem, 6vw, 6rem);
}
.ml-intro__copy .ml-headline { margin-bottom: 1.5rem; }
.ml-intro--reverse .ml-intro__visual { order: -1; }

.ml-intro__media { position: relative; margin: 0; }
.ml-intro__img { width: 100%; aspect-ratio: 4 / 3.2; object-fit: cover; border-radius: var(--ml-radius-l); box-shadow: 0 0 0 1px var(--ml-hairline); }

.ml-glass-badge {
    position: absolute;
    left: 1.25rem;
    bottom: 1.25rem;
    padding: 1rem 1.25rem;
    border-radius: var(--ml-radius-m);
    background: rgb(13 17 23 / .55);
    -webkit-backdrop-filter: var(--ml-material-filter);
    backdrop-filter: var(--ml-material-filter);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .14);
}
.ml-glass-badge__value { display: block; color: var(--ml-lime); font-size: 2rem; font-weight: 700; line-height: 1; letter-spacing: -.024em; font-variant-numeric: tabular-nums; }
.ml-glass-badge__label { display: block; margin-top: .25rem; color: rgb(245 245 247 / .88); font-size: .8125rem; font-weight: 500; letter-spacing: .01em; }

.ml-intro__panel {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    aspect-ratio: 4 / 3.4;
    overflow: hidden;
    padding: 2rem;
    border-radius: var(--ml-radius-l);
    background:
        radial-gradient(60% 60% at 50% 35%, rgb(164 198 57 / .16), rgb(164 198 57 / 0)),
        var(--ml-card);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .05), 0 0 0 1px var(--ml-hairline);
    text-align: center;
}
.ml-intro__mark { width: clamp(6rem, 12vw, 9rem); height: auto; margin-bottom: 1.5rem; }
.ml-intro__panel-value {
    margin: 0;
    color: var(--ml-lime);
    font-size: clamp(3rem, 2rem + 4vw, 5rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -.04em;
    font-variant-numeric: tabular-nums;
}
.ml-intro__panel-label { margin: .5rem 0 0; color: var(--ml-text-2); font-size: 1.0625rem; }

/* ── 12 Tiles ────────────────────────────────────────────────────────── */
.ml-tiles__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 1.25rem;
}
@media (min-width: 1068px) {
    .ml-tiles__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ml-tiles__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ml-tiles__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 734px) and (max-width: 1067px) {
    .ml-tiles__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.ml-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 21rem;
    padding: clamp(1.75rem, 2.8vw, 2.5rem);
    overflow: hidden;
    border-radius: var(--ml-radius-l);
    background: var(--ml-card);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .05), 0 0 0 1px var(--ml-hairline);
    transition: transform .5s var(--ml-ease-out), box-shadow .5s var(--ml-ease-out), background-color .3s var(--ml-ease);
}
@media (hover: hover) and (pointer: fine) {
    .ml-tile:has(.ml-tile__link):hover {
        transform: translateY(-4px);
        background: var(--ml-card-raised);
        box-shadow: inset 0 1px 0 rgb(255 255 255 / .06), 0 0 0 1px var(--ml-lime-ring), 0 30px 60px -30px rgb(0 0 0 / .7);
    }
}
.ml-tile:has(.ml-tile__link):active { transform: scale(.985); transition-duration: .1s; }

.ml-tile__icon {
    display: grid;
    place-items: center;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: var(--ml-radius-m);
    color: var(--ml-lime);
}
.ml-tile__icon:has(.ml-symbol) { width: 3.5rem; height: 3.5rem; background: var(--ml-lime-soft); }
.ml-tile__icon img { width: 5rem; height: 5rem; object-fit: contain; }
.ml-tile__icon:has(img) { width: 5rem; height: 5rem; }
.ml-symbol { width: 1.75rem; height: 1.75rem; }

.ml-tile__title {
    margin: 1.75rem 0 .5rem;
    font-size: 1.5rem;
    font-weight: 650;
    line-height: 1.17;
    letter-spacing: -.018em;
}
.ml-tile__text { margin: 0; color: var(--ml-text-2); }
.ml-tile__link { margin-top: auto; padding-top: 1.75rem; }
.ml-tile__link::before {
    /* Whole tile is the hit area, the visible link stays the label */
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
}
.ml-tile__link:focus-visible { outline: none; }
.ml-tile__link:focus-visible::before { outline: 2px solid var(--ml-lime); outline-offset: 3px; }
.ml-tile__index {
    position: absolute;
    top: 1.5rem;
    right: 1.75rem;
    color: var(--ml-text-3);
    font-size: .8125rem;
    font-weight: 500;
    letter-spacing: .02em;
    font-variant-numeric: tabular-nums;
}

/* ── 13 Chips & benefits ─────────────────────────────────────────────── */
.ml-audience .ml-section__header { margin-bottom: 2.25rem; }
.ml-chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .625rem;
    max-width: 62rem;
    margin-inline: auto;
}
.ml-chip {
    padding: .5625rem 1.125rem;
    border-radius: var(--ml-radius-pill);
    background: var(--ml-card);
    box-shadow: inset 0 0 0 1px var(--ml-hairline);
    color: var(--ml-text-2);
    font-size: .9375rem;
    font-weight: 500;
    letter-spacing: -.005em;
}

.ml-benefits__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.75rem 2.5rem;
}
.ml-benefit { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: start; padding-top: 1.5rem; border-top: 1px solid var(--ml-hairline); }
.ml-benefit__check {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--ml-lime-soft);
    color: var(--ml-lime);
}
.ml-benefit__text { margin: .125rem 0 0; color: var(--ml-text); font-size: 1.1875rem; line-height: 1.42; letter-spacing: -.012em; text-wrap: pretty; }

/* ── 14 Gallery, CTA, text section ───────────────────────────────────── */
.ml-refs__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.ml-refs__head .ml-section__header { margin-bottom: 0; }
.ml-paddles { display: flex; gap: .75rem; flex: none; }
.ml-paddle {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgb(255 255 255 / .08);
    color: var(--ml-text);
    transition: background-color .2s var(--ml-ease), opacity .2s var(--ml-ease), transform .3s var(--ml-ease-out);
}
.ml-paddle:hover:not(:disabled) { background: rgb(255 255 255 / .16); }
.ml-paddle:active:not(:disabled) { transform: scale(.92); transition-duration: .2s, .2s, .08s; }
.ml-paddle:disabled { opacity: .35; cursor: default; }
.ml-refs.is-static .ml-paddles { display: none; }

.ml-refs__track {
    --ml-track-pad: max(var(--ml-gutter), calc((100vw - var(--ml-max)) / 2));
    display: grid;
    grid-auto-flow: column;
    /* three cards fill the content width on desktop; phones see one and a peek */
    grid-auto-columns: min(82vw, max(20rem, calc((min(100vw - 2 * var(--ml-gutter), var(--ml-max)) - 2.5rem) / 3)));
    gap: 1.25rem;
    padding-inline: var(--ml-track-pad);
    padding-bottom: .5rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--ml-track-pad);
    scrollbar-width: none;
}
.ml-refs__track::-webkit-scrollbar { display: none; }
.ml-refs__track:focus-visible { outline-offset: -2px; border-radius: var(--ml-radius-l); }

.ml-ref { scroll-snap-align: start; overflow: hidden; border-radius: var(--ml-radius-l); background: var(--ml-card); box-shadow: 0 0 0 1px var(--ml-hairline); }
.ml-ref__media { margin: 0; aspect-ratio: 16 / 10; background: var(--ml-surface); }
.ml-ref__img { width: 100%; height: 100%; object-fit: cover; }
.ml-ref__body { padding: 1.5rem 1.5rem 1.75rem; }
.ml-ref__category { margin: 0 0 .25rem; color: var(--ml-text-3); font-size: .8125rem; font-weight: 500; letter-spacing: .01em; }
.ml-ref__title { margin: 0; font-size: 1.3125rem; font-weight: 650; line-height: 1.2; letter-spacing: -.016em; }
.ml-ref__link { margin-top: .75rem; font-size: .9375rem; }

.ml-cta { position: relative; isolation: isolate; overflow: hidden; padding-block: calc(var(--ml-section) * 1.15); text-align: center; }
.ml-section + .ml-cta { padding-top: calc(var(--ml-section) * 1.15); }
.ml-cta__glow {
    position: absolute;
    z-index: -1;
    left: 50%;
    top: 50%;
    width: min(64rem, 150vw);
    height: 40rem;
    transform: translate(-50%, -50%);
    background: radial-gradient(closest-side, rgb(164 198 57 / .17), rgb(164 198 57 / 0));
    pointer-events: none;
}
.ml-cta__inner { max-width: calc(52rem + 2 * var(--ml-gutter)); }
.ml-cta .ml-lead { margin-top: 1.25rem; }
.ml-cta .ml-btn { margin-top: 2.25rem; }

.ml-textsection__inner { max-width: calc(var(--ml-measure) + 2 * var(--ml-gutter)); }
.ml-textsection--wide .ml-textsection__inner { max-width: calc(60rem + 2 * var(--ml-gutter)); }
.ml-textsection .ml-headline { margin-bottom: 1.5rem; }
.ml-textsection .ml-prose { font-size: 1.125rem; line-height: 1.6; }

.ml-downloads { display: grid; gap: .75rem; margin-top: 2rem; }
.ml-download {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-radius: var(--ml-radius-m);
    background: var(--ml-card);
    box-shadow: 0 0 0 1px var(--ml-hairline);
    color: var(--ml-text);
    text-decoration: none;
    transition: background-color .2s var(--ml-ease), transform .3s var(--ml-ease-out);
}
.ml-download:hover { background: var(--ml-card-raised); }
.ml-download:active { transform: scale(.985); transition-duration: .2s, .08s; }
.ml-download__icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--ml-lime-soft); color: var(--ml-lime); }
.ml-download__name { font-weight: 600; }
.ml-download__meta { color: var(--ml-text-3); font-size: .8125rem; }

/* ── 15 Contact & map ─────────────────────────────────────────────────── */
.ml-contact__grid {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    gap: 1.25rem;
    align-items: stretch;
}
.ml-contact__grid--single { grid-template-columns: minmax(0, 40rem); justify-content: center; }
.ml-contact__card { padding: clamp(1.75rem, 3vw, 2.5rem); }
.ml-contact__card .ml-prose { margin-bottom: 1.75rem; }

.ml-contact__list { margin: 0; }
.ml-contact__row {
    display: grid;
    grid-template-columns: 8rem minmax(0, 1fr);
    gap: 1rem;
    padding-block: .875rem;
    border-top: 1px solid var(--ml-hairline);
}
.ml-contact__row dt { color: var(--ml-text-3); font-size: .875rem; font-weight: 500; }
.ml-contact__row dd { margin: 0; }
.ml-contact__row a { color: var(--ml-text); text-decoration: none; }
.ml-contact__row a:hover { color: var(--ml-lime); text-decoration: underline; text-underline-offset: .2em; }
.ml-contact__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }

.ml-map {
    position: relative;
    min-height: 28rem;
    overflow: hidden;
    border-radius: var(--ml-radius-l);
    background: var(--ml-card);
    box-shadow: 0 0 0 1px var(--ml-hairline);
}
.ml-map__frame { position: absolute; inset: 0; }
.ml-map__frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
    /* Night mode for the OSM tiles, so the map belongs to the dark page */
    filter: invert(90%) hue-rotate(180deg) brightness(.92) contrast(.92) saturate(.8);
}
.ml-map__placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    padding: 2rem 2rem 4.5rem;
    text-align: center;
}
.ml-map.is-loaded .ml-map__placeholder { display: none; }
.ml-map__art {
    position: absolute;
    inset: 0;
    z-index: -0;
    background:
        radial-gradient(circle at 50% 42%, rgb(164 198 57 / .14), rgb(164 198 57 / 0) 40%),
        repeating-linear-gradient(28deg, rgb(255 255 255 / .035) 0 2px, transparent 2px 46px),
        repeating-linear-gradient(-62deg, rgb(255 255 255 / .03) 0 2px, transparent 2px 64px);
    pointer-events: none;
}
.ml-map__pin {
    position: absolute;
    left: 50%;
    top: 22%;
    width: 1.25rem;
    height: 1.25rem;
    margin-left: -.625rem;
    border-radius: 50% 50% 50% 0;
    background: var(--ml-lime);
    transform: rotate(-45deg);
    box-shadow: 0 0 0 .5rem rgb(164 198 57 / .18);
}
.ml-map__notice, .ml-map__actions { position: relative; }
.ml-map__notice { max-width: 26rem; margin: 3rem 0 0; color: var(--ml-text-2); font-size: .9375rem; line-height: 1.47; }
.ml-map__actions { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.ml-map__external {
    position: absolute;
    z-index: 2;
    left: 1rem;
    bottom: 1rem;
    padding: .5rem .875rem;
    border-radius: var(--ml-radius-pill);
    background: var(--ml-material);
    -webkit-backdrop-filter: var(--ml-material-filter);
    backdrop-filter: var(--ml-material-filter);
    font-size: .8125rem;
}

/* ── 16 Legal documents ──────────────────────────────────────────────── */
.ml-legal { max-width: calc(48rem + 2 * var(--ml-gutter)); padding-block: clamp(3rem, 7vw, 6rem) var(--ml-section); }
.ml-legal .ml-section { padding-block: 0; }
.ml-legal .ml-section + .ml-section, .ml-legal > * + * { margin-top: 3.5rem; }
.ml-legal .ml-wrap { padding-inline: 0; }

.ml-legal-doc__header { margin-bottom: 2.5rem; }
.ml-legal-doc__title {
    margin: 0;
    font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.028em;
    text-wrap: balance;
}
.ml-legal-doc__header .ml-lead { margin-top: 1.25rem; }
.ml-legal-doc .ml-prose { font-size: 1.0625rem; }

/* Imprint – the facts as a calm grid of cards, then the legal notes */
.ml-imprint__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
    gap: 1rem;
    margin-bottom: 3.5rem;
}
.ml-imprint__item {
    padding: 1.375rem 1.5rem;
    border-radius: var(--ml-radius-m);
    background: var(--ml-card);
    box-shadow: 0 0 0 1px var(--ml-hairline);
}
.ml-imprint__item h2 {
    margin: 0 0 .5rem;
    color: var(--ml-lime);
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: .01em;
}
.ml-imprint__item p, .ml-imprint__item address {
    margin: 0;
    color: var(--ml-text);
    font-style: normal;
    font-size: 1.0625rem;
    line-height: 1.5;
}
.ml-imprint__item a { color: inherit; text-decoration-color: var(--ml-hairline-strong); text-underline-offset: .2em; }
.ml-imprint__item a:hover { color: var(--ml-lime-bright); }

.ml-facts { margin: 0 0 3rem; padding: .5rem 1.5rem; border-radius: var(--ml-radius-l); background: var(--ml-card); box-shadow: 0 0 0 1px var(--ml-hairline); }
.ml-facts__row { display: grid; grid-template-columns: 12rem minmax(0, 1fr); gap: 1rem; padding-block: .875rem; }
.ml-facts__row + .ml-facts__row { border-top: 1px solid var(--ml-hairline); }
.ml-facts dt { color: var(--ml-text-3); font-size: .9375rem; font-weight: 500; }
.ml-facts dd { margin: 0; }
.ml-facts a { color: var(--ml-text); text-decoration: none; }
.ml-facts a:hover { color: var(--ml-lime); text-decoration: underline; text-underline-offset: .2em; }

.ml-toc { margin: 0 0 3rem; padding: 1.5rem 1.75rem; border-radius: var(--ml-radius-l); background: var(--ml-card); box-shadow: 0 0 0 1px var(--ml-hairline); }
.ml-toc ol { margin: 0; padding-left: 1.25rem; columns: 2; column-gap: 2rem; color: var(--ml-text-3); }
.ml-toc li { margin-bottom: .375rem; break-inside: avoid; }
.ml-toc a { color: var(--ml-text-2); text-decoration: none; }
.ml-toc a:hover { color: var(--ml-lime); }

/* ── 17 Core content elements (fluid_styled_content) ─────────────────── */
.ml-main > .frame, .ml-legal > .frame {
    max-width: calc(var(--ml-measure) + 2 * var(--ml-gutter));
    margin-inline: auto;
    padding: 3rem var(--ml-gutter);
    color: var(--ml-text-2);
    line-height: 1.6;
}
.ml-legal > .frame { padding-inline: 0; }
.frame :is(h1, h2, h3, h4) { color: var(--ml-text); letter-spacing: -.02em; line-height: 1.15; }
.frame h1 { font-size: clamp(2.25rem, 1.5rem + 3vw, 3.5rem); }
.frame h2 { font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.5rem); }
.frame a:not([class]) { color: var(--ml-lime); text-underline-offset: .2em; }
.frame img { border-radius: var(--ml-radius-m); }
.frame li::marker { color: var(--ml-lime); }

/* ── 18 Footer ───────────────────────────────────────────────────────── */
.ml-footer {
    margin-top: auto;
    background: var(--ml-surface);
    box-shadow: 0 -1px 0 var(--ml-hairline);
    color: var(--ml-text-3);
    font-size: .8125rem;
    line-height: 1.5;
    letter-spacing: 0;
}
.ml-footer a { color: var(--ml-text-2); text-decoration: none; }
.ml-footer a:hover { color: var(--ml-text); text-decoration: underline; text-underline-offset: .2em; }

.ml-crumbs { padding-block: 1rem; border-bottom: 1px solid var(--ml-hairline); }
.ml-crumbs__list { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .5rem; margin: 0; padding: 0; list-style: none; }
.ml-crumbs__item { display: inline-flex; align-items: center; gap: .5rem; }
.ml-crumbs__item + .ml-crumbs__item::before { content: "›"; color: var(--ml-text-3); }
.ml-crumbs__item [aria-current="page"] { color: var(--ml-text); }
.ml-crumbs__home { display: inline-flex; padding: .125rem; border-radius: 50%; }
.ml-crumbs__home img { width: 1.125rem; height: 1.125rem; }

.ml-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
    gap: 2.5rem;
    padding-block: 2.75rem 2.25rem;
}
.ml-footer__logo { width: auto; height: 1.75rem; }
.ml-footer__brand p { max-width: 22rem; margin: 1rem 0 0; }
.ml-footer__heading { margin: 0 0 .75rem; color: var(--ml-text); font-size: .8125rem; font-weight: 600; letter-spacing: 0; }
.ml-footer__heading a { color: inherit; }
.ml-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.ml-footer__address { line-height: 1.75; }
.ml-footer__more { margin-top: .75rem; font-size: .8125rem; }
.ml-footer .ml-link-arrow { color: var(--ml-lime); }
.ml-footer__button { padding: 0; border: 0; background: none; color: var(--ml-text-2); font-size: inherit; text-align: left; }
.ml-footer__button:hover { color: var(--ml-text); text-decoration: underline; text-underline-offset: .2em; }

.ml-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .5rem 2rem;
    padding-block: 1.25rem 2.25rem;
    border-top: 1px solid var(--ml-hairline);
}
.ml-footer__bottom p { margin: 0; }

/* ── 19 Sheet dialog & switch ────────────────────────────────────────── */
.ml-sheet {
    width: min(100% - 2rem, 32rem);
    max-width: 32rem;
    max-height: min(88dvh, 44rem);
    margin: auto;
    padding: 0;
    border: 0;
    border-radius: var(--ml-radius-l);
    background: var(--ml-card-raised);
    color: var(--ml-text);
    box-shadow: 0 0 0 1px var(--ml-hairline-strong), 0 40px 100px rgb(0 0 0 / .6);
    overflow: auto;
    overscroll-behavior: contain;
}
.ml-sheet::backdrop { background: rgb(5 8 12 / .55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.ml-sheet[open] { animation: ml-sheet-in .42s var(--ml-ease-out); }
.ml-sheet[open]::backdrop { animation: ml-fade-in .3s var(--ml-ease); }
.ml-sheet.is-closing { animation: ml-sheet-out .24s var(--ml-ease-in) forwards; }
.ml-sheet.is-closing::backdrop { animation: ml-fade-out .24s var(--ml-ease) forwards; }

.ml-sheet__body { padding: 1.75rem; }
.ml-sheet__title { margin: 0; font-size: 1.5rem; font-weight: 700; line-height: 1.17; letter-spacing: -.02em; }
.ml-sheet__intro { margin: .5rem 0 0; color: var(--ml-text-2); font-size: .9375rem; line-height: 1.47; }

.ml-prefs { margin: 1.5rem 0 0; }
.ml-pref { padding-block: 1rem; border-top: 1px solid var(--ml-hairline); }
.ml-pref, .ml-pref__toggle { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; }
.ml-pref__toggle { width: 100%; cursor: pointer; }
.ml-pref__copy { display: grid; gap: .125rem; }
.ml-pref__title { margin: 0; font-size: .9375rem; font-weight: 600; }
.ml-pref__desc { margin: 0; color: var(--ml-text-3); font-size: .8125rem; line-height: 1.42; }
.ml-pref__state { flex: none; color: var(--ml-lime); font-size: .8125rem; font-weight: 600; }

.ml-sheet__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .75rem; margin-top: 1.5rem; }
.ml-sheet__more { margin-right: auto; font-size: .9375rem; }

.ml-switch { position: relative; display: inline-flex; align-items: center; gap: .75rem; cursor: pointer; }
.ml-switch__input { position: absolute; opacity: 0; width: 3.1875rem; height: 1.9375rem; margin: 0; cursor: pointer; }
.ml-switch__track {
    position: relative;
    flex: none;
    width: 3.1875rem;
    height: 1.9375rem;
    border-radius: var(--ml-radius-pill);
    background: rgb(255 255 255 / .16);
    transition: background-color .25s var(--ml-ease);
}
.ml-switch__track::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 1.6875rem;
    height: 1.6875rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 3px 8px rgb(0 0 0 / .25), 0 1px 1px rgb(0 0 0 / .16);
    transition: transform .3s var(--ml-ease-out);
}
.ml-switch__input:checked + .ml-switch__track { background: var(--ml-lime); }
.ml-switch__input:checked + .ml-switch__track::after { transform: translateX(1.25rem); }
.ml-switch__input:active + .ml-switch__track::after { width: 1.9375rem; }
.ml-switch__input:checked:active + .ml-switch__track::after { transform: translateX(1rem); }
.ml-switch__input:focus-visible + .ml-switch__track { outline: 2px solid var(--ml-lime); outline-offset: 3px; }
.ml-switch__label { color: var(--ml-text-2); font-size: .9375rem; }

/* ── 20 Motion ───────────────────────────────────────────────────────── */
@keyframes ml-sheet-in { from { opacity: 0; transform: translateY(1rem) scale(.98); filter: blur(6px); } }
@keyframes ml-sheet-out { to { opacity: 0; transform: translateY(1rem) scale(.98); filter: blur(6px); } }
@keyframes ml-fade-in { from { opacity: 0; } }
@keyframes ml-fade-out { to { opacity: 0; } }
@keyframes ml-failsafe { to { opacity: 1; transform: none; } }

/* Scroll reveal. Hidden only when scripting is on; if the script never runs,
   a failsafe shows everything after 3 s. */
@media (scripting: enabled) {
    .ml-reveal {
        opacity: 0;
        transform: translateY(1.5rem);
        transition: opacity .8s var(--ml-ease-out), transform .9s var(--ml-ease-out);
    }
    html:not(.ml-js) .ml-reveal { animation: ml-failsafe 0s linear 3s forwards; }
    .ml-reveal--media { transform: translateY(1rem) scale(1.025); transition-duration: 1s, 1.2s; }
    .ml-reveal.is-visible { opacity: 1; transform: none; }
    .ml-reveal--d1 { transition-delay: .06s; }
    .ml-reveal--d2 { transition-delay: .12s; }
    .ml-reveal--d3 { transition-delay: .18s; }
    .ml-reveal--d4 { transition-delay: .24s; }
    .ml-reveal--d5 { transition-delay: .3s; }
    .ml-reveal--d6 { transition-delay: .36s; }
}

/* ── 21 Preferences & responsive ─────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
    .ml-hero__backdrop .ml-hero__img { animation: none !important; }
    .ml-reveal, .ml-reveal--media { transform: none !important; transition: opacity .4s var(--ml-ease) !important; }
    .ml-mnav__item, .ml-sheet, .ml-mcard { transform: none !important; }
    .ml-mega { clip-path: none !important; }
    .ml-gnav__item--mega.is-open .ml-mega .ml-mcard, .ml-gnav__item--mega.is-open .ml-mega__aside { animation: none !important; }
    .ml-tile, .ml-btn, .ml-link-arrow::after, .ml-paddle, .ml-download { transform: none !important; }
    .ml-sheet[open] { animation: ml-fade-in .2s var(--ml-ease) !important; }
}

@media (prefers-reduced-transparency: reduce) {
    :root { --ml-material: #0d1117; --ml-material-heavy: #111820; }
    .ml-gnav { --ml-mega-bg: #111820; }
    .ml-gnav__bar, .ml-mega, .ml-mnav, .ml-stat, .ml-hero__eyebrow, .ml-glass-badge, .ml-map__external, .ml-scrim {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
    .ml-mnav { background: var(--ml-canvas); }
    .ml-stat, .ml-glass-badge, .ml-hero--image .ml-stat, .ml-hero--image .ml-hero__eyebrow { background: var(--ml-card-raised); }
}

@media (prefers-contrast: more) {
    :root {
        --ml-text-2: #d6dae1;
        --ml-text-3: #c3c8d0;
        --ml-hairline: rgb(255 255 255 / .32);
        --ml-hairline-strong: rgb(255 255 255 / .5);
        --ml-material: #0d1117;
        --ml-material-heavy: #111820;
    }
    .ml-gnav__bar { box-shadow: 0 1px 0 var(--ml-hairline); }
    .ml-map__frame iframe { filter: none; }
    .ml-btn--secondary { box-shadow: inset 0 0 0 1px var(--ml-text); }
    .ml-hero__backdrop::after { background: rgb(13 17 23 / .78) !important; }
}

@media (forced-colors: active) {
    .ml-btn, .ml-chip, .ml-tile, .ml-card, .ml-paddle { border: 1px solid CanvasText; }
    .ml-accent { -webkit-text-fill-color: currentColor; background: none; }
}

/* Tablet */
@media (max-width: 1067px) {
    .ml-hero--image .ml-hero__inner { flex-direction: column; align-items: flex-start; }
    .ml-hero--image .ml-stats { flex-direction: row; }
    .ml-benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ml-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ml-footer__brand { grid-column: 1 / -1; }
    .ml-contact__grid { grid-template-columns: minmax(0, 1fr); }
}

/* Compact navigation – the super menu becomes a full-height sheet */
@media (max-width: 1067px) {
    .ml-gnav__list, .ml-gnav__tools > .ml-lang { display: none; }
    .ml-gnav__burger { display: inline-block; }
    .js .ml-mnav { display: block; }
    .ml-mega { display: none; }

    /* Without JavaScript the list simply wraps under the logo */
    .no-js .ml-gnav__inner { flex-wrap: wrap; height: auto; padding-block: .5rem; }
    .no-js .ml-gnav__list { display: flex; flex-wrap: wrap; order: 3; width: 100%; }
    .no-js .ml-gnav__burger { display: none; }
}

/* Phone */
@media (max-width: 733px) {
    body { font-size: 1.0625rem; }
    .ml-intro__grid { grid-template-columns: minmax(0, 1fr); }
    .ml-intro--reverse .ml-intro__visual { order: 0; }
    .ml-benefits__grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
    .ml-tile { min-height: 0; }
    .ml-hero { text-align: left; }
    .ml-hero__inner, .ml-hero__copy { align-items: flex-start; }
    .ml-hero__actions { justify-content: flex-start; }
    .ml-stats { justify-content: flex-start; width: 100%; }
    .ml-stat { flex: 1 1 8rem; min-width: 0; }
    .ml-hero--image { min-height: clamp(32rem, calc(100svh - var(--ml-nav-h)), 46rem); }
    .ml-hero--image .ml-hero__backdrop .ml-hero__img { object-position: 62% 40%; }
    .ml-hero--image .ml-hero__backdrop::after {
        background:
            linear-gradient(180deg, rgb(13 17 23 / .4) 0%, rgb(13 17 23 / .15) 25%, rgb(13 17 23 / .7) 55%, rgb(13 17 23 / .92) 82%, var(--ml-canvas) 100%);
    }
    .ml-hero--image .ml-hero__actions .ml-btn { width: 100%; justify-content: center; }
    .ml-section__header { text-align: left; margin-inline: 0; }
    .ml-chips { justify-content: flex-start; }
    .ml-refs__head { align-items: flex-start; flex-direction: column; gap: 1.25rem; }
    .ml-contact__row, .ml-facts__row { grid-template-columns: minmax(0, 1fr); gap: .125rem; }
    .ml-map { min-height: 24rem; }
    .ml-toc ol { columns: 1; }
    .ml-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
    .ml-gnav__cta { display: none; }
    .ml-mnav__link { font-size: 1.5rem; }
    .ml-cta { text-align: left; }
    .ml-sheet {
        width: 100%;
        max-width: none;
        margin: auto 0 0;
        border-radius: var(--ml-radius-l) var(--ml-radius-l) 0 0;
        padding-bottom: env(safe-area-inset-bottom);
    }
    .ml-sheet[open] { animation-name: ml-sheet-up; }
    .ml-sheet.is-closing { animation-name: ml-sheet-down; }
    .ml-sheet__actions .ml-btn { flex: 1 1 auto; }
    .ml-sheet__more { flex-basis: 100%; }
}
@keyframes ml-sheet-up { from { transform: translateY(100%); } }
@keyframes ml-sheet-down { to { transform: translateY(100%); } }

@media print {
    .ml-gnav, .ml-scrim, .ml-mega, .ml-announce, .ml-sheet, .ml-paddles, .ml-map, .ml-crumbs, .ml-hero__glow, .ml-hero__backdrop, .ml-cta__glow { display: none !important; }
    .ml-hero--image { min-height: 0; padding-block: 2rem; }
    body, .ml-footer { background: #fff; color: #111; }
    .ml-reveal { opacity: 1 !important; transform: none !important; }
    .ml-accent { -webkit-text-fill-color: currentColor; color: #4d6b0f; background: none; }
    .ml-prose, .ml-lead, .ml-tile__text { color: #333; }
    .ml-tile, .ml-card, .ml-facts { box-shadow: none; border: 1px solid #ccc; background: #fff; }
}
