@font-face {
    font-family: "Newsreader";
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url("../assets/fonts/landing/newsreader-latin-wght-normal.woff2") format("woff2");
}

@font-face {
    font-family: "Plus Jakarta Sans";
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url("../assets/fonts/landing/plus-jakarta-sans-latin-wght-normal.woff2") format("woff2");
}

/* Public home: mobile first, with styles scoped away from operational pages. */
.landing-page {
    --landing-ink: #293c32;
    --landing-muted: #626b61;
    --landing-forest: #365b45;
    --landing-paper: #faf7f0;
    --landing-line: #dcded1;
    min-height: 100vh;
    background: var(--landing-paper);
    color: var(--landing-ink);
    font-family: "Plus Jakarta Sans", "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
.landing-page *, .landing-page *::before, .landing-page *::after { box-sizing: border-box; }
.landing-page .container { width: min(100% - 2.5rem, 1240px); max-width: none; padding-inline: 0; }
.landing-page h3 { font-family: inherit; }
.landing-page h1, .landing-page h2, .landing-page h3 { color: var(--landing-ink); }
.landing-page h1, .landing-page h2 { font-family: "Newsreader", Georgia, serif; font-weight: 500; }
.landing-page h2 { font-size: clamp(2rem, 3.5vw, 3.2rem); line-height: 1.16; letter-spacing: -.04em; }
.landing-page em { font-style: normal; font-weight: 400; color: #547351; }
.landing-page a { text-underline-offset: .25em; }
.landing-page a:focus-visible { outline: 3px solid #ac593c; outline-offset: 5px; }
.landing-page section, .landing-footer { scroll-margin-top: 1.5rem; }
.landing-skip-link { position: absolute; left: 1rem; top: -8rem; z-index: 10; padding: 1rem; background: white; color: var(--landing-ink); }
.landing-skip-link:focus { top: 1rem; }
.landing-header-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding-block: 1rem; }
.landing-brand { display: inline-flex; align-items: center; gap: .55rem; color: var(--landing-ink); font-size: .95rem; font-weight: 650; text-decoration: none; }
.landing-brand { flex: 1; min-width: 0; }
.landing-brand span { min-width: 0; white-space: normal; line-height: 1.3; }
.landing-brand-mark, .landing-header-actions { flex-shrink: 0; }
.landing-brand:hover { color: var(--landing-forest); }
.landing-brand-mark { width: 2.5rem; height: 2.5rem; border-radius: 50%; object-fit: cover; }
.landing-brand-test { color: #a03529; }
.landing-nav { display: flex; order: 3; width: 100%; justify-content: center; gap: 1.35rem; border-top: 1px solid var(--landing-line); padding-top: .5rem; }
.landing-nav a, .landing-operator-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--landing-ink); font-size: .82rem; text-decoration: none; }
.landing-nav a:hover, .landing-operator-link:hover { text-decoration: underline; }
.landing-header-actions { display: flex; align-items: center; gap: 1.5rem; }
.landing-operator-link { display: inline-flex; }
.landing-operator-label-desktop { display: none; }
.landing-header-login { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--landing-forest); border-radius: 99px; color: var(--landing-forest); font-size: .85rem; font-weight: 600; line-height: 1; text-decoration: none; }
.landing-header-login:hover { background: var(--landing-forest); color: white; }
.landing-hero-grid { display: grid; gap: 2.5rem; padding-block: 2.5rem 3.5rem; align-items: center; }
.landing-kicker { display: flex; align-items: center; gap: .6rem; margin: 0 0 1.3rem; color: #53634c; font-size: .7rem; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; }
.landing-kicker i { font-size: 1.35rem; color: #9a593c; }
.landing-hero h1 { margin: 0 0 1.6rem; font-size: clamp(3.25rem, 6.8vw, 6.2rem); letter-spacing: -.05em; line-height: 1.04; }
.landing-hero h1 em {
    position: relative;
    display: inline-block;
    isolation: isolate;
    padding-inline: .08em;
    margin: .04em 0 .08em -.08em;
    color: var(--landing-forest);
}
.landing-hero h1 em::before {
    position: absolute;
    z-index: -1;
    inset: 8% -2% 3%;
    border-radius: .12em;
    background: #dce8cf;
    transform: rotate(-3deg);
    content: "";
}
.landing-lead { max-width: 29rem; margin-bottom: 1.8rem; color: var(--landing-muted); font-size: 1.08rem; line-height: 1.8; }
.landing-hero-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 1.5rem; }
.landing-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 52px; padding: .9rem 1.4rem; border: 1px solid transparent; border-radius: 99px; font-size: .87rem; font-weight: 600; line-height: 1; text-decoration: none; transition: background-color .2s; }
.landing-button-label { display: block; line-height: 1; }
.landing-button i, .landing-header-login i { display: block; flex: 0 0 auto; line-height: 1; transform: translateY(1px); }
.landing-button i { font-size: 1.3rem; }
.landing-header-login i { font-size: 1.1rem; }
.landing-button-primary { color: white; background: var(--landing-forest); }
.landing-button-primary:hover { color: white; background: #274531; }
.landing-text-link { display: inline-flex; align-items: center; min-height: 44px; gap: .7rem; color: var(--landing-ink); font-size: .84rem; }
.landing-text-link:hover { color: var(--landing-forest); }
.landing-hero-note { margin: 1.25rem 0 0; color: var(--landing-muted); font-size: .76rem; text-align: center; }
.landing-hero-visual { position: relative; margin: .5rem 0 1rem; padding: 0 0 1.3rem; }
.landing-hero-visual > img { display: block; width: 100%; height: auto; aspect-ratio: 1.1; object-fit: cover; border-radius: 46% 46% 1.5rem 1.5rem; }
.landing-hero-visual figcaption { position: absolute; left: -.4rem; bottom: 0; display: flex; gap: .9rem; align-items: center; padding: .95rem 1.2rem; border-radius: 1rem; background: #fffdf8; box-shadow: 0 8px 35px #293c3210; font-size: .88rem; line-height: 1.6; }
.landing-hero-visual figcaption i { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; color: #985038; background: #f6e8db; font-size: 1.4rem; }
.landing-photo-flower { position: absolute; right: -.5rem; top: 2%; font-family: Georgia, serif; font-size: 5rem; line-height: 1; color: #b96949; }
.landing-values { background: #edf0e6; padding-block: 3.5rem; }
.landing-values-grid { display: grid; gap: 2rem; }
.landing-values-intro h2 { font-size: 2rem; margin-bottom: 0; }
.landing-value > i { display: block; font-size: 1.65rem; color: #617650; margin-bottom: .9rem; }
.landing-value h3 { font-family: inherit; font-size: 1rem; font-weight: 600; margin-bottom: .7rem; }
.landing-value p { color: var(--landing-muted); font-size: .9rem; margin: 0; }
.landing-process { padding-block: 4rem; }
.landing-section-intro { max-width: 37rem; margin: 0 auto 2.5rem; text-align: center; }
.landing-section-intro .landing-kicker { justify-content: center; }
.landing-section-intro h2 { margin-bottom: 1.2rem; }
.landing-section-intro > p:last-child { color: var(--landing-muted); margin: 0; }
.landing-process-list { display: grid; gap: 1rem; padding: 0; margin: 0; list-style: none; }
.landing-process-list li { padding: 1.7rem; border: 1px solid #e8e4d9; border-radius: 1.3rem; background: #fffcf6; }
.landing-step-number { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; margin-bottom: 1.4rem; border-radius: 50%; background: #f3e7d7; color: #845438; font-family: "Newsreader", Georgia, serif; font-size: 1.1rem; }
.landing-process-list li:nth-child(2) .landing-step-number { background: #e5ebdc; color: #48623d; }
.landing-process-list li:nth-child(3) .landing-step-number { background: #f4e2d9; color: #97533c; }
.landing-process-list h3 { font-size: 1.1rem; font-weight: 600; margin-bottom: .8rem; }
.landing-process-list p { color: var(--landing-muted); font-size: .93rem; margin: 0; }
.landing-operator { padding: 0 0 4rem; }
.landing-operator-inner { display: grid; gap: 2rem; padding: 2rem !important; border-radius: 1.6rem; color: white; background: var(--landing-forest); }
.landing-operator h2 { color: #fffaf0; font-size: clamp(2rem, 3.3vw, 3rem); margin: 0; }
.landing-operator em { color: #d9dfbb; }
.landing-kicker-light { color: #d9dfbb; }
.landing-operator-copy { display: flex; flex-direction: column; align-items: center; text-align: center; }
.landing-operator-copy > p { color: #e0e7dd; font-size: .95rem; margin-bottom: 1.3rem; }
.landing-button-light { color: var(--landing-ink); background: #f9f3e5; }
.landing-button-light:hover { color: var(--landing-ink); background: #e1e9cf; }
.landing-operator-email { color: #e0e7dd; margin-top: 1rem; font-size: .85rem; overflow-wrap: anywhere; }
.landing-operator-email:hover { color: white; }
.landing-page .landing-footer { background: var(--landing-paper); padding-block: 1rem 1.5rem; }
.landing-footer-main { display: grid; gap: 2rem; padding-bottom: 3rem; }
.landing-footer-intro h2 { font-size: 2rem; }
.landing-footer-intro > p:last-child { max-width: 23rem; color: var(--landing-muted); font-size: .9rem; margin: 0; }
.landing-footer-column { min-width: 0; }
.landing-footer-column p { font-size: .75rem; font-weight: 600; color: var(--landing-muted); margin-bottom: .6rem; }
.landing-footer-column a { display: block; width: fit-content; max-width: 100%; padding-block: .4rem; color: var(--landing-ink); overflow-wrap: anywhere; font-size: .85rem; }
.landing-public-funding { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.2rem; padding-block: 1.2rem; border-block: 1px solid var(--landing-line); }
.landing-public-funding p { max-width: 44rem; color: var(--landing-muted); font-size: .75rem; margin: 0; }
.landing-public-funding img { width: 8rem; height: auto; mix-blend-mode: multiply; }
.landing-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding-top: 1.3rem; font-size: .72rem; color: var(--landing-muted); }
.landing-info-content { padding-block: 2.5rem 4rem; }
.landing-info-hero { max-width: 52rem; margin: 0 auto 2rem; text-align: center; }
.landing-info-hero .landing-kicker { justify-content: center; }
.landing-info-hero h1 { margin: 0 0 1rem; font-size: clamp(2.6rem, 5vw, 4.5rem); letter-spacing: -.05em; line-height: 1.06; }
.landing-info-hero > p:last-child { max-width: 40rem; margin: 0 auto; color: var(--landing-muted); }
.landing-info-card { max-width: 54rem; margin: 0 auto; padding: 1.5rem; border: 1px solid #e8e4d9; border-radius: 1.3rem; background: #fffcf6; }
.landing-info-card > *:first-child { margin-top: 0; }
.landing-info-card > *:last-child { margin-bottom: 0; }
.landing-info-card h2 { margin: 2.2rem 0 .85rem; font-size: clamp(1.55rem, 2.5vw, 2rem); }
.landing-info-card h3 { margin: 1.8rem 0 .65rem; color: var(--landing-ink); font-size: 1rem; font-weight: 650; }
.landing-info-card p, .landing-info-card li { color: var(--landing-muted); font-size: .94rem; }
.landing-info-card p { margin-bottom: 1rem; }
.landing-info-card a { color: var(--landing-forest); font-weight: 600; }
.landing-info-card ul { margin: 0 0 1rem; padding-left: 1.25rem; }
.landing-info-card li + li { margin-top: .55rem; }
.landing-info-card hr { margin: 2rem 0; border: 0; border-top: 1px solid var(--landing-line); opacity: 1; }
.landing-info-actions { display: grid; gap: .75rem; margin: 1.5rem 0; }
.landing-info-actions .landing-button { width: 100%; color: var(--landing-forest); border-color: #d7dfcc; background: #edf0e6; }
.landing-info-actions .landing-button:hover { background: #dce8cf; }
.landing-team-member + .landing-team-member { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--landing-line); }
.landing-info-content > .row { max-width: 58rem; margin-inline: auto; }
.landing-info-content .card { border: 1px solid #e8e4d9; border-radius: 1.3rem; background: #fffcf6; box-shadow: none; }
.landing-info-content .card-body { padding: 1.5rem; }
.landing-info-content .text-center > h4 { margin: 0; color: var(--landing-ink); font-family: "Newsreader", Georgia, serif; font-size: clamp(2.2rem, 4vw, 3.4rem); font-weight: 500; letter-spacing: -.045em; line-height: 1.12; }
.landing-info-content .text-center > p { margin-top: .8rem; color: var(--landing-muted) !important; font-size: .85rem; }
.landing-info-content .card hr { margin: 2rem 0; border: 0; border-top: 1px solid var(--landing-line); opacity: 1; }
.landing-info-content .font-size-14 { color: var(--landing-muted) !important; font-size: .94rem; line-height: 1.75; }
.landing-info-content .font-size-14 h6 { margin: 2rem 0 .8rem; color: var(--landing-ink) !important; font-family: "Newsreader", Georgia, serif; font-size: 1.45rem; font-weight: 500; }
.landing-info-content .font-size-14 p { margin-bottom: 1rem; }
.landing-info-content .font-size-14 ul { margin-bottom: 1rem; }
.landing-info-content .font-size-14 li + li { margin-top: .55rem; }
.landing-info-content .font-size-14 a { color: var(--landing-forest); }
.landing-info-content .font-size-14 .btn { min-height: 48px; margin: .3rem !important; padding: .7rem 1rem; border: 1px solid #d7dfcc; border-radius: 99px; color: var(--landing-forest); background: #edf0e6; font-size: .84rem; font-weight: 600; }
.landing-info-content .font-size-14 .btn:hover { background: #dce8cf; }
.landing-team-member h2 { margin-top: 0; }
@media (min-width: 600px) {
    .landing-page .container { width: min(100% - 4rem, 1240px); }
    .landing-operator-label-mobile { display: none; }
    .landing-operator-label-desktop { display: inline; }
    .landing-values-grid, .landing-footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .landing-hero-visual { max-width: 38rem; width: 100%; justify-self: center; }
    .landing-process-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .landing-process-list li { padding: 1.4rem; }
    .landing-info-content { padding-block: 4rem 5rem; }
    .landing-info-card { padding: 2.5rem; }
    .landing-info-content .card-body { padding: 2.5rem; }
    .landing-info-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1000px) {
    .landing-header-inner { flex-wrap: nowrap; min-height: 100px; gap: 2rem; }
    .landing-nav { order: initial; width: auto; border: 0; padding: 0; gap: 1.8rem; }
    .landing-brand { flex: initial; font-size: 1.06rem; }
    .landing-operator-copy { align-items: flex-start; text-align: left; }
    .landing-hero-grid { grid-template-columns: 1fr 1fr; gap: 4rem; padding-block: 3rem 5rem; }
    .landing-hero-actions { justify-content: flex-start; }
    .landing-hero-note { text-align: left; }
    .landing-hero-visual > img { aspect-ratio: 1.02; }
    .landing-hero-visual figcaption { left: -1.5rem; padding: 1.1rem 1.5rem; }
    .landing-photo-flower { right: -.6rem; font-size: 6.5rem; }
    .landing-values-grid { grid-template-columns: 1.2fr 1fr 1fr 1fr; gap: 2.7rem; align-items: start; }
    .landing-value { padding-top: .3rem; }
    .landing-process { padding-block: 5.5rem; }
    .landing-process-list { gap: 1.4rem; }
    .landing-process-list li { padding: 2rem; }
    .landing-operator-inner { grid-template-columns: 1.25fr 1fr; align-items: center; gap: 4rem; padding: 3.5rem !important; }
    .landing-footer-main { grid-template-columns: 1.4fr 1fr 1.35fr .7fr; gap: 2rem; }
}
@media (prefers-reduced-motion: reduce) { .landing-button { transition: none; } }

@media (max-width: 599.98px) {
    .landing-header-inner { justify-content: center; }
    .landing-brand { flex: 0 0 100%; justify-content: center; }
    .landing-header-actions { order: 2; width: 100%; justify-content: center; gap: 1rem; }
}
