/* Keep content visible when animations or JavaScript are unavailable. */
body[data-layout="public"] .public-main {
    animation: content-arrive 650ms ease-out both;
}

body[data-layout="public"] :is(.technology-card, .audience-grid article, .step-list li, .resource-list article) {
    transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

body[data-layout="public"] :is(.button, button, nav a) {
    transition: background-color 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

body[data-layout="public"] :is(a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--green);
    outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) {
    body[data-layout="public"] :is(.technology-card, .audience-grid article, .step-list li, .resource-list article):hover {
        transform: translateY(-4px);
        box-shadow: 0 12px 28px rgb(7 63 51 / 9%);
        border-color: #9ab9aa;
    }
}

@keyframes content-arrive {
    from { transform: translateY(12px); }
    to { transform: translateY(0); }
}

@supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
        body[data-layout="public"] :is(.home-section, .home-cta) {
            animation: section-arrive linear both;
            animation-timeline: view();
            animation-range: entry 0% entry 35%;
        }
    }
}

@keyframes section-arrive {
    from { transform: translateY(20px); }
    to { transform: translateY(0); }
}

body[data-layout="public"] .preserve-lines {
    overflow-wrap: anywhere;
}

@media (max-width: 700px) {
    .public-header nav {
        display: flex;
        gap: 6px;
        align-items: center;
    }

    .public-header nav > a {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
        padding: 6px 10px;
        background: #f2f7f4;
        border-radius: 6px;
        font-size: 13px;
    }

    .public-header .brand-copy strong {
        font-size: clamp(16px, 4.5vw, 20px);
    }

    .public-header .brand-copy > span {
        font-size: 12px;
        line-height: 1.8;
    }

    .public-header .brand-logo {
        width: 48px;
        height: 48px;
    }

    .public-main :is(.technology-detail, .public-intro, .request-intro, .auth-panel) {
        min-width: 0;
        max-width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    body[data-layout="public"] *,
    body[data-layout="public"] *::before,
    body[data-layout="public"] *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}
/* Home entrance choreography and section treatments. */
.home-hero .hero-search input{animation:search-arrive 700ms 120ms ease-out backwards}
.home-hero .hero-search button{animation:search-arrive 700ms 300ms ease-out backwards}
.home-hero .hero-actions .button{animation:search-arrive 700ms 180ms ease-out backwards}
.home-hero .hero-actions .button:nth-child(2){animation-delay:320ms}
.hero-search:focus-within{box-shadow:0 0 0 4px rgb(13 98 73 / 12%);border-color:var(--green)}
.hero-search{transition:box-shadow 200ms ease,border-color 200ms ease}
@keyframes search-arrive{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.audience-grid,#solutions,#paths,#resources{overflow-x:clip}
.audience-grid article{background:linear-gradient(145deg,#f1f7f3,#fff);border-block-start:3px solid var(--green)}
#paths{background:#edf4ef;margin-inline:-40px;padding-inline:40px}
#paths .path-grid{gap:18px}
#paths .path-grid article{background:#fff;border:1px solid #d8e5dd;border-radius:12px;padding:26px}
#paths .ordinal{color:var(--green);font-size:28px}
#resources .resource-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
#resources .resource-list article{position:relative;display:flex;flex-direction:column;align-items:start;gap:20px;padding:30px;background:#f7faf8;border-radius:14px}
#resources .resource-list article:nth-child(2),#resources .resource-list article:nth-child(3){background:#eef5f1}
.resource-number{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:var(--forest);color:#fff;font-size:19px;font-weight:bold}
#resources .resource-list h3{font-size:24px}
#resources .resource-list .button{margin-block-start:auto;gap:16px}
@media(max-width:700px){#paths{margin-inline:-18px;padding-inline:18px}#paths .path-grid{gap:14px}#resources .resource-list{grid-template-columns:1fr;gap:16px}#resources .resource-list article{padding:24px}}
/* Mobile navigation stays accessible if scripting is unavailable. */
.public-header .menu-toggle{display:none}
.menu-cross{display:none}
.menu-toggle[aria-expanded=true] .menu-lines{display:none}
.menu-toggle[aria-expanded=true] .menu-cross{display:block}
@media(max-width:700px){
.public-header.nav-ready{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:14px;align-items:center}
.public-header.nav-ready .brand{max-width:100%;gap:8px}
.public-header.nav-ready .menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:8px;background:#f2f7f4;color:var(--forest);border:1px solid var(--border)}
.public-header.nav-ready #public-navigation{grid-column:1/-1;display:none;width:100%;padding:12px;background:#f7faf8;border:1px solid var(--border);border-radius:10px;gap:4px}
.public-header.nav-ready #public-navigation.is-open{display:flex;flex-direction:column;align-items:stretch;animation:content-arrive 180ms ease-out}
.public-header.nav-ready #public-navigation>a{width:100%;padding:10px 12px;background:transparent;font-size:14px;justify-content:flex-start}
.public-header.nav-ready #public-navigation>a:hover{background:#eaf2ed}
.public-header.nav-ready #public-navigation .language-switch{width:44px;align-self:flex-start;justify-content:center}
.public-header.nav-ready #public-navigation form{margin:0}
.public-header.nav-ready #public-navigation .text-button{width:100%;justify-content:flex-start;padding:10px 12px}
}
body[data-layout="public"] .public-footer{max-width:none;margin:0;padding:30px 24px;background:var(--forest);color:#fff;border-block-start:3px solid #b2cfc0}
.footer-inner{max-width:1360px;margin-inline:auto;text-align:center;display:grid;gap:12px}
.footer-inner p{margin:0;line-height:2;overflow-wrap:anywhere}
.footer-rights{font-size:14px;color:#e4eee8}
.footer-rights strong{color:#fff;font-weight:700}
.footer-credit{font-size:13px;color:#d5e4dc}
.public-footer .footer-credit a{color:#fff;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#91b6a4}
.public-footer .footer-credit a:hover{color:#d6efdf;text-decoration-color:currentColor}
.public-footer .footer-credit a:focus-visible{outline:2px solid white;outline-offset:5px}
@media(max-width:700px){body[data-layout="public"] .public-footer{padding:24px 20px}.footer-rights strong{display:block;margin-block-start:4px}.footer-credit a{display:block}.footer-inner{gap:14px}}
