:root {
    --green-900: #026838;
    --green-700: #007a45;
    --green-500: #00a85a;
    --ink: #363435;
    --muted: #68716d;
    --paper: #f5faf7;
    --white: #fff;
    --line: #dfe9e3;
    --shadow: 0 18px 50px rgba(2, 104, 56, .12);
    --radius: 1.25rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Arial, Helvetica, sans-serif; line-height: 1.6; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
.skip-link { position: fixed; left: 1rem; top: -4rem; z-index: 100; padding: .7rem 1rem; color: var(--white); background: var(--green-900); border-radius: .4rem; }
.skip-link:focus { top: 1rem; }
.eyebrow { margin: 0 0 .7rem; color: var(--green-700); font-size: .73rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 2.8rem; padding: .7rem 1.1rem; border: 0; border-radius: .4rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.button-primary { color: var(--white); background: var(--green-900); }
.button-primary:hover, .button-primary:focus-visible { background: var(--green-700); }
.button-block { width: 100%; }
.text-link { color: var(--green-900); font-weight: 800; text-decoration: none; }
.text-link:hover, .text-link:focus-visible { text-decoration: underline; }
.admin-body { min-height: 100vh; background: #f1f7f3; }
.admin-shell { display: flex; min-height: 100vh; }
.admin-sidebar { display: flex; width: 17rem; flex-direction: column; flex-shrink: 0; padding: 1.4rem; color: var(--white); background: var(--green-900); }
.admin-brand, .login-brand { display: block; color: inherit; text-decoration: none; }
.admin-brand strong, .login-brand strong { display: block; font-size: 1.2rem; letter-spacing: -.02em; }
.admin-brand small, .login-brand small { display: block; color: rgba(255,255,255,.72); font-size: .72rem; }
.admin-brand-mark, .login-brand-mark { display: grid; width: 2.6rem; height: 2.6rem; place-items: center; border: 2px solid rgba(255,255,255,.7); border-radius: .7rem; font-size: 1.4rem; font-weight: 800; object-fit: contain; }
.admin-brand-wordmark, .login-brand-wordmark { display: block; width: 100%; height: auto; object-fit: contain; background: var(--white); border-radius: .4rem; }
.admin-brand-wordmark { margin-bottom: .7rem; }
.admin-brand-context { display: block; color: rgba(255,255,255,.82); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.admin-nav { display: grid; gap: .35rem; margin-top: 3rem; }
.admin-nav a, .admin-sidebar-footer a, .admin-logout { padding: .7rem .8rem; border-radius: .45rem; color: rgba(255,255,255,.82); text-align: left; text-decoration: none; background: transparent; border: 0; cursor: pointer; }
.admin-nav a:hover, .admin-nav a:focus-visible, .admin-nav a.is-active, .admin-sidebar-footer a:hover, .admin-logout:hover { color: var(--white); background: rgba(255,255,255,.14); }
.admin-sidebar-footer { display: grid; gap: .2rem; margin-top: auto; padding-top: 2rem; }
.admin-main-wrap { min-width: 0; flex: 1; }
.admin-topbar { display: flex; justify-content: space-between; align-items: center; padding: 1rem 2.5rem; border-bottom: 1px solid var(--line); color: var(--muted); background: var(--white); font-size: .88rem; }
.admin-user { color: var(--green-900); font-weight: 700; }
.admin-main { max-width: 76rem; margin: 0 auto; padding: 3rem 2.5rem; }
.page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: 2.5rem; }
.page-heading h1, .login-card h1 { margin: 0 0 .5rem; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.05; }
.page-heading p:not(.eyebrow) { margin: 0; color: var(--muted); }
.admin-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.admin-stat-card, .admin-welcome-card, .empty-state { padding: 1.4rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: 0 8px 24px rgba(2,104,56,.05); }
.admin-stat-card span, .admin-stat-card small { display: block; color: var(--muted); }
.admin-stat-card strong { display: block; margin: .35rem 0; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: 2.5rem; line-height: 1; }
.admin-stat-highlight { border-color: rgba(0,168,90,.4); background: #e9f8ef; }
.admin-welcome-card { max-width: 56rem; margin-top: 2rem; padding: 2rem; }
.admin-welcome-card h2 { max-width: 34rem; margin: 0 0 .75rem; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.1; }
.admin-welcome-card p:not(.eyebrow) { max-width: 44rem; color: var(--muted); }
.empty-state { text-align: center; }
.empty-state h2 { margin-top: 0; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; }
.empty-state p { color: var(--muted); }
.admin-table-card, .admin-form-card { padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: 0 8px 24px rgba(2,104,56,.05); }
.table-scroll { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; min-width: 40rem; }
.admin-table th, .admin-table td { padding: .9rem .75rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.admin-table th { color: var(--muted); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.admin-table td small, .media-card small { display: block; color: var(--muted); font-size: .8rem; }
.status-pill { display: inline-flex; padding: .25rem .55rem; border-radius: 999px; font-size: .75rem; font-weight: 800; }
.status-published { color: #155d39; background: #def5e7; }
.status-draft, .status-scheduled { color: #79570b; background: #fff2c9; }
.status-archived { color: #5d6260; background: #e8eeea; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
.form-field { display: grid; gap: .45rem; }
.form-field-wide { grid-column: 1 / -1; }
.form-field label { color: var(--ink); font-size: .88rem; font-weight: 800; }
.form-field input, .form-field textarea, .form-field select { width: 100%; padding: .75rem .85rem; border: 1px solid #bdcdc4; border-radius: .45rem; background: var(--white); }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus { outline: 3px solid rgba(0,168,90,.25); border-color: var(--green-500); }
.form-field small { color: var(--muted); font-size: .8rem; }
.form-actions { display: flex; justify-content: flex-end; gap: .75rem; margin-top: 1.5rem; }
.button-secondary { color: var(--green-900); background: #e8f3ec; }
.button-danger { min-height: 2.2rem; padding: .45rem .75rem; color: #8c2635; background: #fde6e8; font-size: .82rem; }
.media-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.media-card { display: grid; gap: .8rem; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.media-card img { width: 100%; height: 10rem; object-fit: cover; border-radius: .7rem; background: #edf4ef; }
.media-file-icon { display: grid; height: 10rem; place-items: center; color: var(--green-900); border-radius: .7rem; background: #e6f3eb; font-weight: 800; }
.pagination { display: flex; gap: .4rem; margin-top: 1.5rem; padding: 0; list-style: none; }
.pagination a, .pagination span { display: inline-flex; min-width: 2.2rem; justify-content: center; padding: .4rem .65rem; border: 1px solid var(--line); border-radius: .35rem; text-decoration: none; }
.pagination .active span { color: var(--white); background: var(--green-900); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.site-header { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: 1.25rem clamp(1rem, 5vw, 5rem); color: var(--white); background: var(--green-900); }
.site-logo { display: inline-flex; align-items: center; gap: .7rem; color: inherit; text-decoration: none; }
.site-logo strong { display: block; font-family: Georgia, 'Times New Roman', serif; font-size: 1.35rem; }
.site-logo small { display: block; color: rgba(255,255,255,.72); font-size: .7rem; }
.site-logo-mark { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 2px solid rgba(255,255,255,.75); border-radius: .6rem; font-weight: 800; }
.site-header nav { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.site-header nav a { color: rgba(255,255,255,.9); font-size: .85rem; font-weight: 700; text-decoration: none; }
.site-header nav a:hover, .site-header nav a:focus-visible { text-decoration: underline; }
.site-footer { margin-top: 4rem; padding: 2rem clamp(1rem, 5vw, 5rem); color: var(--white); background: var(--ink); }
.public-page-heading { padding: clamp(4rem, 10vw, 8rem) clamp(1rem, 8vw, 8rem) 3rem; background: linear-gradient(135deg, #dff6e8, var(--paper)); }
.public-page-heading h1, .public-detail h1 { max-width: 56rem; margin: 0; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2.7rem, 7vw, 6.5rem); line-height: .98; }
.public-page-heading p:not(.eyebrow) { max-width: 40rem; margin-bottom: 0; color: var(--muted); font-size: 1.1rem; }
.public-list-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; max-width: 84rem; margin: 0 auto; padding: 3rem clamp(1rem, 5vw, 5rem); }
.public-card { display: flex; flex-direction: column; min-height: 18rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: 0 8px 24px rgba(2,104,56,.05); }
.public-card h2 { margin: 0 0 .8rem; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: 1.8rem; line-height: 1.1; }
.public-card h2 a { text-decoration: none; }
.public-card h2 a:hover, .public-card h2 a:focus-visible { text-decoration: underline; }
.public-card p:not(.eyebrow) { color: var(--muted); }
.public-card .text-link { margin-top: auto; }
.public-card-image { display: block; width: calc(100% + 3rem); height: 11rem; margin: -1.5rem -1.5rem 1.4rem; object-fit: cover; background: #e6f3eb; }
.public-detail { max-width: 58rem; margin: 0 auto; padding: clamp(3rem, 8vw, 7rem) clamp(1rem, 4vw, 2rem); }
.public-detail .lead { max-width: 48rem; margin: 1.5rem 0 2.5rem; color: var(--muted); font-size: 1.3rem; }
.detail-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin: 2rem 0 3rem; }
.detail-meta span { display: grid; gap: .2rem; padding: 1rem; border-left: 3px solid var(--green-500); background: var(--white); }
.detail-meta strong { color: var(--green-900); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.rich-content { margin: 1.25rem 0 2rem; color: #4e5652; }
.rich-content h2, .rich-content h3 { color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; }
.rich-content a { color: var(--green-900); font-weight: 700; }
.alert { margin-bottom: 1.5rem; padding: .9rem 1rem; border-radius: .6rem; }
.alert ul { margin-bottom: 0; }
.alert-success { color: #175b38; background: #def5e7; }
.alert-error { color: #7b2632; background: #fde6e8; }
.admin-login-page { display: grid; min-height: 100vh; place-items: center; padding: 2rem; background: radial-gradient(circle at top right, #c8edd8, transparent 42%), var(--green-900); }
.login-card { width: min(100%, 28rem); padding: 2.5rem; border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow); }
.login-brand { margin-bottom: 2.5rem; color: var(--green-900); }
.login-brand-wordmark { max-width: 20rem; }
.login-brand small { color: var(--muted); }
.login-card h1 { font-size: 2.5rem; }
.login-intro { margin-top: 0; color: var(--muted); }
.form-stack { display: grid; gap: .55rem; margin-top: 1.8rem; }
.form-stack label { color: var(--ink); font-size: .9rem; font-weight: 700; }
.form-stack input, .form-stack textarea, .form-stack select { width: 100%; padding: .75rem .85rem; border: 1px solid #bdcdc4; border-radius: .45rem; background: var(--white); }
.form-stack input:focus, .form-stack textarea:focus, .form-stack select:focus { outline: 3px solid rgba(0,168,90,.25); border-color: var(--green-500); }
.checkbox-label { display: flex; align-items: center; gap: .5rem; margin: .5rem 0 .6rem; font-weight: 400 !important; }
.checkbox-label input { width: auto; }
.back-link { display: block; margin-top: 1.5rem; color: var(--green-900); font-size: .9rem; font-weight: 700; text-align: center; }
@media (max-width: 900px) { .admin-sidebar { width: 14rem; } .admin-stat-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 640px) { .admin-shell { display: block; } .admin-sidebar { width: 100%; } .admin-nav { grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: 1.5rem; } .admin-sidebar-footer { display: flex; justify-content: space-between; } .admin-topbar, .admin-main { padding-right: 1rem; padding-left: 1rem; } .admin-topbar-title { max-width: 60%; } .page-heading { display: block; } .page-heading .button { margin-top: 1rem; } .admin-stat-grid { grid-template-columns: 1fr 1fr; gap: .65rem; } .admin-stat-card { padding: 1rem; } .admin-stat-card strong { font-size: 2rem; } .login-card { padding: 1.5rem; } }
@media (max-width: 760px) { .form-grid, .media-grid { grid-template-columns: 1fr; } .form-field-wide { grid-column: auto; } }
@media (max-width: 760px) { .site-header { align-items: flex-start; flex-direction: column; } .site-header nav { gap: .7rem 1rem; } .public-list-grid { grid-template-columns: 1fr; } .detail-meta { grid-template-columns: 1fr; } }

/* Public editorial experience */
.public-body { background: var(--paper); }
.public-container { width: min(100% - 2rem, 80rem); margin-inline: auto; }
.announcement-bar { color: var(--white); background: var(--green-900); font-size: .78rem; letter-spacing: .02em; }
.announcement-inner { display: flex; justify-content: space-between; gap: 1rem; padding-block: .55rem; }
.announcement-inner a { color: var(--white); font-weight: 800; text-decoration: none; }
.announcement-inner a:hover, .announcement-inner a:focus-visible { text-decoration: underline; }
.site-header { position: relative; display: block; padding: 0; color: var(--ink); background: var(--white); border-bottom: 1px solid var(--line); }
.site-header-inner { display: flex; justify-content: space-between; align-items: center; gap: 2rem; min-height: 5.6rem; }
.site-logo { gap: 0; color: var(--green-900); }
.site-logo-wordmark { display: block; width: clamp(12rem, 20vw, 17rem); height: auto; max-height: 4.5rem; object-fit: contain; object-position: left center; }
.site-logo-symbol { display: block; width: 3.7rem; height: 3.7rem; object-fit: contain; }
.site-logo-copy strong { font-family: Georgia, 'Times New Roman', serif; font-size: 1.55rem; letter-spacing: -.03em; }
.site-logo-copy small { color: var(--muted); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.site-logo-mark { border-color: var(--green-900); }
.site-logo-copy { margin-left: .8rem; }
.site-header-actions { display: flex; align-items: center; gap: .75rem; }
.header-search-link, .menu-toggle { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.4rem; padding: .45rem .7rem; color: var(--green-900); border: 1px solid var(--line); border-radius: .3rem; background: var(--white); font-size: .8rem; font-weight: 800; text-decoration: none; }
.header-search-link:hover, .header-search-link:focus-visible, .menu-toggle:hover, .menu-toggle:focus-visible { border-color: var(--green-500); background: #eef9f2; }
.menu-toggle { display: none; cursor: pointer; }
.site-nav { display: flex; align-items: center; gap: clamp(.7rem, 2vw, 1.6rem); min-height: 3.2rem; padding-bottom: .8rem; }
.site-nav[hidden] { display: flex; }
.site-header .site-nav a { color: var(--ink); }
.site-nav a { position: relative; color: var(--ink); font-size: .79rem; font-weight: 800; text-decoration: none; }
.site-nav a::after { position: absolute; right: 0; bottom: -.45rem; left: 0; height: 2px; background: var(--green-500); content: ''; opacity: 0; transform: scaleX(.4); transition: .2s ease; }
.site-nav a:hover::after, .site-nav a:focus-visible::after, .site-nav a.is-active::after { opacity: 1; transform: scaleX(1); }
.site-nav .nav-cta { margin-left: auto; padding: .65rem .9rem; color: var(--white); background: var(--green-900); border-radius: .3rem; }
.site-nav .nav-cta::after { display: none; }
.site-nav .nav-cta:hover, .site-nav .nav-cta:focus-visible { background: var(--green-700); }
.home-hero { overflow: hidden; color: var(--white); background: var(--green-900); }
.home-hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr); align-items: center; min-height: min(44rem, calc(100vh - 9rem)); gap: 3rem; padding-block: clamp(4rem, 9vw, 8rem); }
.home-hero .eyebrow, .home-feature-band .eyebrow, .home-cta .eyebrow { color: #9de7bb; }
.home-hero h1 { max-width: 44rem; margin: 0; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(3.2rem, 7vw, 7.5rem); line-height: .91; letter-spacing: -.06em; }
.hero-lead { max-width: 36rem; margin: 1.8rem 0 0; color: rgba(255,255,255,.8); font-size: clamp(1.05rem, 1.8vw, 1.35rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.2rem; }
.button-outline { color: var(--white); background: transparent; border: 1px solid rgba(255,255,255,.55); }
.button-outline:hover, .button-outline:focus-visible { background: rgba(255,255,255,.12); }
.button-light { color: var(--green-900); background: var(--white); }
.button-light:hover, .button-light:focus-visible { color: var(--green-900); background: #dff6e8; }
.home-hero-art { position: relative; min-height: 31rem; }
.hero-art-orbit { position: absolute; border: 1px solid rgba(157,231,187,.4); border-radius: 50%; transform: rotate(-22deg); }
.hero-art-orbit-one { inset: 4% 7% 12% 10%; }
.hero-art-orbit-two { inset: 16% -5% 1% 20%; border-color: rgba(255,255,255,.22); transform: rotate(34deg); }
.hero-art-panel { position: absolute; inset: 13% 14% 17% 21%; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(1.5rem, 4vw, 3rem); color: var(--green-900); background: #a4e4bd; transform: rotate(-7deg); box-shadow: 1rem 1rem 0 rgba(0,0,0,.12); }
.hero-art-image { position: absolute; inset: 5% 3% 8% 7%; width: 90%; height: 87%; object-fit: cover; opacity: .22; mix-blend-mode: screen; transform: rotate(4deg); }
.hero-art-panel::before { position: absolute; inset: 1.5rem; border: 1px solid rgba(2,104,56,.42); content: ''; }
.hero-art-number { position: relative; z-index: 1; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(8rem, 19vw, 15rem); line-height: .7; }
.hero-art-label { position: relative; z-index: 1; align-self: flex-end; font-weight: 800; letter-spacing: .05em; text-align: right; text-transform: uppercase; }
.hero-art-note { position: absolute; right: 0; bottom: 5%; padding: .65rem .9rem; color: var(--green-900); background: #f8d98d; font-size: .75rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; transform: rotate(4deg); }
.section-light { background: #eaf6ee; }
.home-intro { padding-block: clamp(4rem, 8vw, 7.5rem); }
.intro-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 5rem; }
.home-intro h2, .section-heading h2, .feature-band-lead h2, .home-cta h2 { max-width: 45rem; margin: 0; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2.3rem, 4.8vw, 5rem); line-height: .98; letter-spacing: -.04em; }
.intro-copy { align-self: end; max-width: 34rem; }
.intro-copy p { margin: 0 0 1.4rem; color: var(--muted); font-size: 1.2rem; }
.home-section, .public-list-section, .search-results-section { padding-block: clamp(4rem, 8vw, 7rem); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 2.5rem; }
.section-heading h2 { font-size: clamp(2.2rem, 4.5vw, 4.6rem); }
.editorial-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.editorial-card { position: relative; display: flex; flex-direction: column; min-height: 24rem; padding: clamp(1.3rem, 3vw, 2.2rem); border: 1px solid var(--line); background: var(--white); transition: .2s ease; }
.editorial-card:hover { border-color: var(--green-500); box-shadow: var(--shadow); transform: translateY(-.25rem); }
.editorial-card .eyebrow { margin-top: 2rem; }
.editorial-card h3, .catalog-card h2 { max-width: 19rem; margin: 0 0 .8rem; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.65rem, 2.6vw, 2.4rem); line-height: 1.02; }
.editorial-card h3 a, .catalog-card h2 a { text-decoration: none; }
.editorial-card h3 a:hover, .editorial-card h3 a:focus-visible, .catalog-card h2 a:hover, .catalog-card h2 a:focus-visible { text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .12em; }
.editorial-card > p:not(.eyebrow) { color: var(--muted); }
.card-index { position: absolute; top: 1rem; right: 1.3rem; color: #9bb8a5; font-family: Georgia, 'Times New Roman', serif; font-size: 2.1rem; }
.card-meta { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: auto; padding-top: 1.3rem; color: var(--green-900); font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.card-meta span + span { padding-left: .45rem; border-left: 1px solid var(--line); }
.card-arrow { position: absolute; right: 1.3rem; bottom: 1.3rem; color: var(--green-900); font-size: 1.4rem; text-decoration: none; }
.home-feature-band { color: var(--white); background: var(--green-700); }
.feature-band-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 8vw, 8rem); padding-block: clamp(4rem, 8vw, 7rem); }
.feature-band-lead h2, .home-cta h2 { color: var(--white); font-size: clamp(2.3rem, 4.8vw, 5rem); }
.feature-band-lead > p:not(.eyebrow) { max-width: 28rem; color: rgba(255,255,255,.78); }
.feature-band-lead .button { margin-top: 1rem; }
.feature-list { align-self: center; border-top: 1px solid rgba(255,255,255,.38); }
.feature-list-item { display: grid; grid-template-columns: 7rem 1fr auto; align-items: center; gap: 1rem; padding: 1.2rem 0; color: var(--white); border-bottom: 1px solid rgba(255,255,255,.38); text-decoration: none; }
.feature-list-item span:first-child { color: #9de7bb; font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.feature-list-item strong { font-family: Georgia, 'Times New Roman', serif; font-size: 1.35rem; }
.feature-list-item:hover strong, .feature-list-item:focus-visible strong { text-decoration: underline; }
.news-section { background: #fff; }
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.news-card { display: flex; flex-direction: column; min-height: 18rem; padding-top: 1.2rem; border-top: 1px solid var(--green-900); }
.news-card h3 { margin: .2rem 0 .7rem; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.6rem, 2.4vw, 2.3rem); line-height: 1.03; }
.news-card h3 a { text-decoration: none; }
.news-card h3 a:hover, .news-card h3 a:focus-visible { text-decoration: underline; }
.news-card > p:not(.eyebrow) { color: var(--muted); }
.news-card .text-link { margin-top: auto; }
.home-events { padding-block: clamp(4rem, 8vw, 7rem); }
.event-list { border-top: 1px solid var(--line); }
.event-row { display: grid; grid-template-columns: 5rem 1fr auto; align-items: center; gap: 1rem; padding: 1.1rem 0; color: var(--ink); border-bottom: 1px solid var(--line); text-decoration: none; }
.event-row time { display: grid; justify-items: center; color: var(--green-900); border-right: 1px solid var(--line); }
.event-row time strong { font-family: Georgia, 'Times New Roman', serif; font-size: 2rem; line-height: 1; }
.event-row time span { font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.event-row > span:nth-child(2) { display: grid; gap: .2rem; }
.event-row > span:nth-child(2) strong { color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: 1.25rem; }
.event-row small { color: var(--muted); }
.event-row:hover > span:last-child, .event-row:focus-visible > span:last-child { color: var(--green-500); }
.home-cta { color: var(--white); background: var(--ink); }
.home-cta-inner { display: flex; justify-content: space-between; align-items: end; gap: 3rem; padding-block: clamp(4rem, 8vw, 7rem); }
.home-cta-inner > div { max-width: 48rem; }
.home-cta h2 { max-width: 42rem; }
.home-cta p:not(.eyebrow) { max-width: 38rem; color: rgba(255,255,255,.72); font-size: 1.1rem; }
.quick-links-section { padding-block: clamp(3rem, 6vw, 5rem); background: #fff; }
.quick-links-inner { display: grid; grid-template-columns: minmax(15rem, .7fr) minmax(0, 1.3fr); gap: 3rem; align-items: start; }
.quick-links-inner h2 { margin: 0; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2rem, 3.5vw, 3.6rem); line-height: .98; letter-spacing: -.04em; }
.quick-links-list { border-top: 1px solid var(--line); }
.quick-links-list a { display: grid; grid-template-columns: 2rem 1fr auto; align-items: center; gap: .7rem; padding: .9rem 0; color: var(--green-900); border-bottom: 1px solid var(--line); text-decoration: none; }
.quick-links-list a > span:first-child { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; border: 1px solid var(--green-500); border-radius: 50%; font-size: .8rem; }
.quick-links-list a strong { font-family: Georgia, 'Times New Roman', serif; font-size: 1.2rem; }
.quick-links-list a:hover strong, .quick-links-list a:focus-visible strong { text-decoration: underline; }
.editorial-heading { padding-block: clamp(4.5rem, 10vw, 9rem) 3rem; background: #e5f4ea; }
.editorial-heading h1 { max-width: 60rem; }
.public-page-heading h1 { margin: 0; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(3rem, 7vw, 7rem); line-height: .92; letter-spacing: -.06em; }
.public-page-heading p:not(.eyebrow) { max-width: 42rem; margin: 1.4rem 0 0; color: var(--muted); font-size: 1.2rem; }
.public-list-section { background: #fff; }
.catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.catalog-card { min-height: 20rem; }
.catalog-card .public-card-image { width: calc(100% + clamp(2.6rem, 6vw, 4.4rem)); height: 12rem; margin: clamp(-2.2rem, -3vw, -1.3rem) clamp(-2.2rem, -3vw, -1.3rem) 1.3rem; }
.card-date, .privacy-version { color: var(--green-900) !important; font-size: .82rem; font-weight: 800; }
.public-detail { max-width: 64rem; padding-block: clamp(3.5rem, 8vw, 7rem); }
.page-detail { max-width: 58rem; }
.public-detail h1 { max-width: 60rem; }
.public-detail h2 { margin-top: 2.5rem; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.8rem, 3.5vw, 3rem); line-height: 1; }
.catalog-detail { max-width: 62rem; }
.search-heading { padding-bottom: clamp(3rem, 6vw, 5rem); }
.site-search-form { max-width: 52rem; margin-top: 2.4rem; }
.site-search-form label { display: block; margin-bottom: .5rem; color: var(--green-900); font-size: .85rem; font-weight: 900; }
.site-search-form > div { display: flex; gap: .65rem; }
.site-search-form input { flex: 1; min-width: 0; padding: .8rem 1rem; border: 1px solid #a8c2b2; border-radius: .35rem; background: #fff; }
.site-search-form input:focus { outline: 3px solid rgba(0,168,90,.25); border-color: var(--green-500); }
.search-results-section { background: #fff; }
.search-summary { margin: 0 0 2rem; color: var(--muted); font-size: 1.1rem; }
.search-group { max-width: 60rem; margin-top: 2.5rem; }
.search-group h2 { margin: 0 0 .8rem; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: 2.2rem; }
.search-result { display: grid; grid-template-columns: 8rem 1fr auto; align-items: center; gap: 1rem; padding: 1rem 0; color: var(--ink); border-top: 1px solid var(--line); text-decoration: none; }
.search-result .eyebrow { margin: 0; }
.search-result strong { color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: 1.3rem; }
.search-result > span:nth-child(3) { color: var(--muted); font-size: .9rem; }
.search-result:hover strong, .search-result:focus-visible strong { text-decoration: underline; }
.site-footer { margin-top: 0; padding-block: clamp(3.5rem, 7vw, 6rem) 1rem; color: rgba(255,255,255,.78); background: #1e2924; }
.footer-grid { display: grid; grid-template-columns: 1.35fr repeat(4, 1fr); gap: 2rem; }
.footer-intro { max-width: 20rem; }
.footer-brand { display: inline-flex; align-items: center; gap: .75rem; margin-bottom: .6rem; color: var(--white); font-family: Georgia, 'Times New Roman', serif; font-size: 2.3rem; font-weight: 800; text-decoration: none; }
.footer-brand-mark { width: 3rem; height: 3rem; object-fit: contain; }
.footer-intro p { margin: 0 0 1.3rem; }
.site-footer h2 { margin: 0 0 .8rem; color: #9de7bb; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.site-footer > .public-container > div:not(.footer-intro) { display: grid; align-content: start; gap: .4rem; }
.site-footer a:not(.button) { color: rgba(255,255,255,.86); text-decoration: none; }
.site-footer a:not(.button):hover, .site-footer a:not(.button):focus-visible { color: var(--white); text-decoration: underline; }
.footer-contact p { margin: 0; }
.footer-moodle { margin-top: .7rem; color: #9de7bb !important; font-weight: 900; }
.footer-social { display: grid; gap: .4rem; }
.footer-social a { font-size: .88rem; }
.media-warning { margin: 0; padding: .6rem .7rem; color: #79570b; background: #fff5d8; font-size: .8rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 4rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.16); font-size: .75rem; }
@media (max-width: 900px) {
    .site-header-inner { min-height: 5rem; }
    .menu-toggle { display: inline-flex; }
    .site-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; padding-top: 0; padding-bottom: 1rem; }
    .site-nav[hidden] { display: none; }
    .site-nav .nav-cta { margin-left: 0; text-align: center; }
    .home-hero-grid, .feature-band-grid, .intro-grid { grid-template-columns: 1fr; }
    .quick-links-inner { grid-template-columns: 1fr; gap: 1.5rem; }
    .home-hero-grid { min-height: auto; }
    .home-hero-art { min-height: 24rem; max-width: 34rem; width: 100%; margin-inline: auto; }
    .editorial-card-grid, .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .news-grid { grid-template-columns: 1fr; gap: 1rem; }
    .news-card { min-height: 0; padding-block: 1.2rem; }
    .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .announcement-inner, .site-header-inner, .home-cta-inner, .footer-bottom { align-items: flex-start; flex-direction: column; }
    .announcement-inner { gap: .2rem; }
    .site-header-actions { align-self: stretch; justify-content: flex-end; }
    .site-logo-wordmark { width: min(72vw, 14rem); max-height: 3.7rem; }
    .site-logo-symbol { width: 3.2rem; height: 3.2rem; }
    .home-hero h1 { font-size: clamp(3rem, 16vw, 5rem); }
    .home-hero-art { min-height: 19rem; }
    .hero-art-panel { inset: 10% 10% 15% 15%; }
    .hero-art-number { font-size: 8rem; }
    .editorial-card-grid, .catalog-grid { grid-template-columns: 1fr; }
    .section-heading { display: block; }
    .section-heading .text-link { display: inline-block; margin-top: 1rem; }
    .feature-list-item { grid-template-columns: 5rem 1fr auto; }
    .site-search-form > div { align-items: stretch; flex-direction: column; }
    .search-result { grid-template-columns: 1fr auto; }
    .search-result .eyebrow, .search-result > span:nth-child(3) { grid-column: 1 / -1; }
    .footer-grid { grid-template-columns: 1fr; }
    .footer-bottom { margin-top: 3rem; }
}
.contact-section { padding-block: clamp(4rem, 8vw, 7rem); background: #fff; }
.contact-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 8vw, 7rem); align-items: start; }
.contact-intro h2 { max-width: 28rem; margin: 0; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2.5rem, 5vw, 5rem); line-height: .96; letter-spacing: -.05em; }
.contact-intro > p:not(.eyebrow) { max-width: 27rem; margin: 1.5rem 0 0; color: var(--muted); font-size: 1.1rem; }
.contact-details { display: grid; gap: 1rem; margin-top: 3rem; }
.contact-details div { display: grid; gap: .15rem; padding-top: .75rem; border-top: 1px solid var(--line); }
.contact-details strong { color: var(--green-900); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.contact-details a { color: var(--green-900); font-weight: 800; text-decoration: none; }
.contact-details a:hover, .contact-details a:focus-visible { text-decoration: underline; }
.contact-form-card { padding: clamp(1.3rem, 4vw, 2.5rem); border: 1px solid var(--line); background: var(--paper); }
.contact-form-card .form-stack { margin-top: 0; }
.contact-form-card .form-grid { gap: 1rem; }
.contact-form-card .checkbox-label { align-items: flex-start; margin-top: 1rem; color: var(--muted); font-size: .85rem; }
.contact-form-card .checkbox-label input { margin-top: .25rem; flex-shrink: 0; }
.form-help { margin: 1rem 0 0; color: var(--muted); font-size: .82rem; }
.detail-image { display: block; width: 100%; max-height: 30rem; margin: 0 0 2rem; object-fit: cover; border-radius: .8rem; background: #e6f3eb; }
.detail-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.honeypot-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.admin-filter-bar { display: flex; align-items: end; gap: 1rem; margin-bottom: 1.5rem; padding: 1rem 1.2rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.admin-filter-bar .form-field { flex: 1; }
.admin-filter-bar .button { flex-shrink: 0; }
.status-new, .status-in_review { color: #79570b; background: #fff2c9; }
.status-contacted { color: #155d39; background: #def5e7; }
.status-follow_up { color: #195b76; background: #dff2fb; }
.status-closed { color: #5d6260; background: #e8eeea; }
.lead-detail-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(18rem, .8fr); gap: 1rem; }
.lead-message-card, .lead-update-card { min-width: 0; }
.lead-message { min-height: 8rem; margin: 0; padding: 1rem; color: var(--ink); border-left: 3px solid var(--green-500); background: #f4faf6; white-space: pre-wrap; }
.lead-contact-links { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.2rem; }
.admin-form-card h2 { margin-top: 0; color: var(--green-900); font-family: Georgia, 'Times New Roman', serif; }
.lead-data-list { display: grid; gap: .8rem; margin: 0; }
.lead-data-list div { padding-top: .65rem; border-top: 1px solid var(--line); }
.lead-data-list dt { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.lead-data-list dd { margin: .15rem 0 0; }
.lead-data-list a { color: var(--green-900); font-weight: 700; }
.lead-update-card { margin-top: 1rem; }
.form-field-label { color: var(--ink); font-size: .88rem; font-weight: 800; }
.role-checkbox-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin-top: .4rem; }
.role-checkbox-grid .checkbox-label { align-items: flex-start; margin: 0; padding: .7rem; border: 1px solid var(--line); border-radius: .45rem; background: #f7fbf8; }
.role-checkbox-grid .checkbox-label span { display: grid; gap: .1rem; }
.role-checkbox-grid .checkbox-label small { color: var(--muted); font-size: .75rem; }
.admin-table code { color: var(--green-900); font-size: .8rem; }
@media (max-width: 760px) {
    .admin-filter-bar, .lead-detail-grid { display: block; }
    .admin-filter-bar .form-field, .admin-filter-bar .button { width: 100%; margin-top: .7rem; }
    .lead-detail-grid > * + * { margin-top: 1rem; }
    .role-checkbox-grid { grid-template-columns: 1fr; }
}

/* Public navigation, search and motion layer */
body.has-overlay-open { overflow: hidden; }
.header-search-link, .menu-toggle { cursor: pointer; }
.header-search-link[aria-expanded="true"], .menu-toggle[aria-expanded="true"] { color: var(--green-900); border-color: var(--green-500); background: #e8f3ec; }
.menu-toggle { display: inline-flex; }
.site-menu-panel, .site-search-panel { position: fixed; inset: 0; z-index: 90; overflow-y: auto; color: var(--white); background: linear-gradient(135deg, #026838, #004b28); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-1rem); transition: opacity .26s ease, transform .26s ease, visibility 0s linear .26s; }
.site-search-panel { background: linear-gradient(135deg, #026838, #1e2924); }
.site-menu-panel[hidden], .site-search-panel[hidden] { display: block; }
.site-menu-panel.is-open, .site-search-panel.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition-delay: 0s; }
.site-menu-panel-inner, .site-search-panel-inner { min-height: 100%; padding-block: clamp(1.5rem, 4vw, 3rem); }
.site-overlay-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; padding-bottom: clamp(1.5rem, 4vw, 3rem); border-bottom: 1px solid rgba(255,255,255,.24); }
.site-overlay-heading .eyebrow, .site-menu-aside .eyebrow, .search-panel-suggestions .eyebrow { color: #9de7bb; }
.site-overlay-heading h2 { max-width: 46rem; margin: 0; color: var(--white); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2.7rem, 7vw, 6.2rem); line-height: .92; letter-spacing: -.06em; }
.overlay-close { display: inline-flex; align-items: center; gap: .45rem; flex-shrink: 0; min-height: 2.6rem; padding: .55rem .75rem; color: var(--white); border: 1px solid rgba(255,255,255,.45); border-radius: .3rem; background: transparent; font-size: .8rem; font-weight: 800; cursor: pointer; }
.overlay-close:hover, .overlay-close:focus-visible { border-color: #9de7bb; background: rgba(255,255,255,.12); }
.overlay-close > span { font-size: 1.5rem; line-height: .7; }
.site-menu-content { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(15rem, .6fr); gap: clamp(2rem, 7vw, 7rem); padding-block: clamp(2rem, 6vw, 5rem); }
.site-menu-primary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 5rem); }
.site-menu-category h3 { margin: 0 0 .7rem; color: #9de7bb; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; }
.site-menu-link { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; align-items: center; gap: .8rem; padding: 1rem 0; color: var(--white); border-top: 1px solid rgba(255,255,255,.22); text-decoration: none; }
.site-menu-link:hover, .site-menu-link:focus-visible, .site-menu-link.is-active { color: #f8d98d; }
.site-menu-link > span:nth-child(2) { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.25rem, 2.2vw, 2rem); line-height: 1.05; }
.site-menu-link-index { color: #9de7bb; font-size: .75rem; font-weight: 900; }
.site-menu-aside { align-self: start; padding: 1.35rem; border: 1px solid rgba(255,255,255,.24); background: rgba(0,0,0,.12); }
.site-menu-aside-link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 0; color: var(--white); border-top: 1px solid rgba(255,255,255,.22); font-weight: 800; text-decoration: none; }
.site-menu-aside-link:hover, .site-menu-aside-link:focus-visible { color: #f8d98d; }
.site-menu-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; padding-top: 1rem; color: rgba(255,255,255,.7); border-top: 1px solid rgba(255,255,255,.24); font-size: .78rem; }
.site-menu-footer span { margin-right: auto; }
.site-menu-footer a { color: var(--white); text-decoration: none; }
.site-menu-footer a:hover, .site-menu-footer a:focus-visible { color: #f8d98d; text-decoration: underline; }
.site-search-panel-inner { max-width: 76rem; }
.site-search-overlay-form { max-width: 58rem; padding-block: clamp(2rem, 7vw, 6rem); }
.site-search-overlay-form label { display: block; margin-bottom: .65rem; color: #9de7bb; font-size: .8rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.site-search-overlay-form > div { display: flex; gap: .7rem; }
.site-search-overlay-form input { flex: 1; min-width: 0; padding: 1rem 1.1rem; color: var(--ink); border: 0; border-radius: .35rem; background: var(--white); font-size: clamp(1rem, 2vw, 1.3rem); }
.site-search-overlay-form input:focus { outline: 3px solid #9de7bb; outline-offset: 2px; }
.site-search-overlay-form .button { min-width: 8rem; }
.search-panel-suggestions { max-width: 58rem; }
.search-suggestion-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; border-top: 1px solid rgba(255,255,255,.24); }
.search-suggestion-list a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 0; color: var(--white); border-bottom: 1px solid rgba(255,255,255,.24); font-family: Georgia, 'Times New Roman', serif; font-size: 1.15rem; text-decoration: none; }
.search-suggestion-list a:hover, .search-suggestion-list a:focus-visible { color: #f8d98d; }
.search-empty-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-top: 1.5rem; }
.search-empty-links a { display: inline-flex; align-items: center; gap: .6rem; padding: .7rem .85rem; color: var(--green-900); border: 1px solid var(--line); border-radius: .3rem; font-weight: 800; text-decoration: none; }
.search-empty-links a:hover, .search-empty-links a:focus-visible { border-color: var(--green-500); background: #e8f3ec; }
.search-result { grid-template-columns: minmax(7rem, .25fr) minmax(0, 1fr) auto; }
.search-result-copy { display: grid; gap: .2rem; min-width: 0; }
.search-result-copy > span { color: var(--muted); font-size: .9rem; }
.search-result-type { align-self: start; }
[data-reveal] { --reveal-delay: 0ms; }
.js-enabled [data-reveal] { opacity: 0; transform: translateY(1.25rem); transition: opacity .6s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay), transform .6s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay); }
.js-enabled [data-reveal].is-visible { opacity: 1; transform: none; }
@keyframes educare-fade-up { from { opacity: 0; transform: translateY(1rem); } to { opacity: 1; transform: none; } }
@keyframes educare-panel-in { from { opacity: 0; transform: translateY(1.2rem) rotate(-7deg); } to { opacity: 1; transform: rotate(-7deg); } }
@keyframes educare-orbit-in { from { opacity: 0; transform: rotate(-22deg) scale(.94); } to { opacity: 1; transform: rotate(-22deg) scale(1); } }
.home-hero-copy { animation: educare-fade-up .7s cubic-bezier(.22, 1, .36, 1) both; }
.hero-art-panel { animation: educare-panel-in .8s .12s cubic-bezier(.22, 1, .36, 1) both; }
.hero-art-orbit-one { animation: educare-orbit-in .9s .2s cubic-bezier(.22, 1, .36, 1) both; }
@media (max-width: 760px) {
    .site-menu-content { grid-template-columns: 1fr; }
    .site-menu-primary { gap: 2rem; }
    .site-menu-aside { max-width: 32rem; }
}
@media (max-width: 640px) {
    .site-overlay-heading { gap: 1rem; }
    .site-overlay-heading h2 { font-size: clamp(2.3rem, 13vw, 4.2rem); }
    .site-menu-primary { grid-template-columns: 1fr; gap: 1.5rem; }
    .site-menu-link { padding-block: .8rem; }
    .site-menu-link > span:nth-child(2) { font-size: 1.4rem; }
    .site-menu-footer { display: grid; grid-template-columns: 1fr 1fr; }
    .site-menu-footer span { grid-column: 1 / -1; margin-right: 0; }
    .site-search-overlay-form > div { flex-direction: column; }
    .site-search-overlay-form .button { width: 100%; }
    .search-suggestion-list { grid-template-columns: 1fr; }
    .search-result { grid-template-columns: 1fr auto; }
    .search-result-type { grid-column: 1 / -1; }
    .search-result-copy { grid-column: 1 / 2; }
    .search-result > span:last-child { grid-column: 2; grid-row: 2; justify-self: end; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .site-menu-panel, .site-search-panel { transition: none; transform: none; }
    .js-enabled [data-reveal] { opacity: 1; transform: none; transition: none; }
    .home-hero-copy, .hero-art-panel, .hero-art-orbit-one { animation: none; }
}

/* Premium editorial menu refinement */
.site-menu-panel { background: linear-gradient(115deg, #06150f 0%, #026838 52%, #031f15 100%); }
.site-menu-panel::before { position: fixed; right: -7vw; bottom: -13vw; z-index: 0; color: rgba(157,231,187,.06); content: 'E'; font-family: Georgia, 'Times New Roman', serif; font-size: 55vw; font-weight: 700; line-height: .7; pointer-events: none; }
.site-menu-panel::after { position: fixed; inset: 0; z-index: 0; background: radial-gradient(circle at 72% 42%, rgba(157,231,187,.12), transparent 26%), linear-gradient(135deg, transparent 60%, rgba(0,0,0,.22)); content: ''; pointer-events: none; }
.site-menu-panel-inner { position: relative; z-index: 1; width: min(100% - 3rem, 116rem); }
.site-menu-topbar { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 4.8rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(255,255,255,.24); }
.site-menu-brand { display: inline-flex; align-items: center; gap: .8rem; color: var(--white); text-decoration: none; }
.site-menu-brand .site-logo-symbol { width: 3.5rem; height: 3.5rem; }
.site-menu-brand > span { display: grid; gap: .1rem; }
.site-menu-brand strong { font-family: Georgia, 'Times New Roman', serif; font-size: 1.35rem; letter-spacing: -.02em; }
.site-menu-brand small { color: rgba(255,255,255,.7); font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; }
.overlay-close { border: 0; background: transparent; }
.overlay-close .overlay-close-label { font-size: 1rem; line-height: 1; }
.overlay-close .overlay-close-icon { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; font-size: 1.7rem; line-height: 1; }
.overlay-close:hover .overlay-close-icon, .overlay-close:focus-visible .overlay-close-icon { border-color: #9de7bb; background: rgba(255,255,255,.12); }
.site-menu-content { grid-template-columns: minmax(13rem, .7fr) minmax(19rem, 1fr) minmax(17rem, 1.1fr); gap: 0; padding-block: clamp(2.5rem, 7vw, 6.5rem); }
.site-menu-category-rail { min-width: 0; padding-right: clamp(1rem, 3vw, 3rem); }
.site-menu-category-rail .eyebrow { color: #9de7bb; }
.site-menu-category-tab { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; align-items: center; width: 100%; gap: .7rem; padding: .9rem 0; color: rgba(255,255,255,.58); border: 0; border-bottom: 1px solid rgba(255,255,255,.2); background: transparent; text-align: left; cursor: pointer; }
.site-menu-category-tab:hover, .site-menu-category-tab:focus-visible, .site-menu-category-tab.is-active { color: var(--white); }
.site-menu-category-tab.is-active { border-bottom-color: var(--white); }
.site-menu-category-index { color: #9de7bb; font-size: .72rem; font-weight: 900; }
.site-menu-category-label { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.55rem, 3vw, 3.2rem); letter-spacing: -.04em; line-height: 1; }
.site-menu-context-column { min-width: 0; min-height: 22rem; padding-inline: clamp(1.5rem, 4vw, 4.5rem); border-inline: 1px solid rgba(255,255,255,.2); }
.site-menu-context-panel[hidden], .site-menu-related-panel[hidden] { display: none; }
.site-menu-context-panel.is-active, .site-menu-related-panel.is-active { animation: educare-menu-panel-in .42s cubic-bezier(.22, 1, .36, 1) both; }
.site-menu-context-panel .eyebrow, .site-menu-related-panel .eyebrow { color: #9de7bb; }
.site-menu-context-panel h3 { max-width: 29rem; margin: 0 0 1rem; color: var(--white); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2rem, 4vw, 4.5rem); letter-spacing: -.05em; line-height: .95; }
.site-menu-context-panel > p:not(.eyebrow) { max-width: 30rem; margin: 0 0 1.7rem; color: rgba(255,255,255,.78); font-size: 1rem; }
.site-menu-featured-link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 0; color: var(--white); border-top: 1px solid rgba(255,255,255,.25); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.25rem, 2.2vw, 2rem); text-decoration: none; }
.site-menu-featured-link:hover, .site-menu-featured-link:focus-visible { color: #f8d98d; }
.site-menu-context-action { display: inline-flex; align-items: center; gap: .55rem; margin-top: .65rem; color: #f8d98d; font-weight: 900; text-decoration: none; }
.site-menu-context-action:hover, .site-menu-context-action:focus-visible { color: var(--white); text-decoration: underline; }
.site-menu-related-column { min-width: 0; padding-left: clamp(1.5rem, 4vw, 4rem); }
.site-menu-related-link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; color: var(--white); border-top: 1px solid rgba(255,255,255,.2); font-size: clamp(1rem, 1.5vw, 1.25rem); font-weight: 800; text-decoration: none; }
.site-menu-related-link:hover, .site-menu-related-link:focus-visible { color: #f8d98d; }
.site-menu-quickbar { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem clamp(1rem, 3vw, 3rem); padding-block: 1rem; border-top: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); }
.site-menu-quickbar > span { margin-right: auto; color: #9de7bb; font-weight: 800; }
.site-menu-quickbar a { color: var(--white); font-weight: 800; text-decoration: none; }
.site-menu-quickbar a:hover, .site-menu-quickbar a:focus-visible { color: #f8d98d; text-decoration: underline; }
.site-menu-quickbar .site-menu-admin-link { padding: .6rem .85rem; color: #f8d98d; border: 1px solid rgba(248,217,141,.7); border-radius: .25rem; }
.site-menu-quickbar .site-menu-admin-link:hover, .site-menu-quickbar .site-menu-admin-link:focus-visible { color: #06150f; background: #f8d98d; border-color: #f8d98d; text-decoration: none; }
.site-menu-footer { border-top: 0; }
@keyframes educare-menu-panel-in { from { opacity: 0; transform: translateY(.7rem); } to { opacity: 1; transform: none; } }
@media (max-width: 900px) {
    .site-menu-content { grid-template-columns: 1fr; gap: 2rem; }
    .site-menu-category-rail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 1rem; padding-right: 0; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(255,255,255,.2); }
    .site-menu-category-rail > .eyebrow { grid-column: 1 / -1; }
    .site-menu-category-tab { border-bottom: 0; }
    .site-menu-context-column { min-height: auto; padding-inline: 0; border-inline: 0; }
    .site-menu-related-column { padding-left: 0; }
}
@media (max-width: 640px) {
    .site-menu-panel-inner { width: min(100% - 2rem, 116rem); }
    .site-menu-topbar { min-height: 4rem; }
    .site-menu-brand .site-logo-symbol { width: 2.8rem; height: 2.8rem; }
    .site-menu-brand strong { font-size: 1.15rem; }
    .site-menu-brand small { font-size: .55rem; }
    .site-menu-content { padding-block: 2rem 3rem; }
    .site-menu-category-rail { grid-template-columns: 1fr; gap: 0; padding-bottom: 1rem; }
    .site-menu-category-tab { grid-template-columns: 2rem minmax(0, 1fr) auto; padding-block: .8rem; }
    .site-menu-category-label { font-size: 1.8rem; }
    .site-menu-context-panel h3 { font-size: clamp(2.2rem, 11vw, 3.6rem); }
    .site-menu-related-column { padding-top: 1rem; }
    .site-menu-quickbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; }
    .site-menu-quickbar > span { grid-column: 1 / -1; margin-right: 0; }
    .site-menu-footer { display: grid; grid-template-columns: 1fr 1fr; }
    .site-menu-footer span { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
    .site-menu-context-panel.is-active, .site-menu-related-panel.is-active { animation: none; }
}

/* Editorial search, scroll cue and staggered motion refinement */
.site-search-panel { background: linear-gradient(118deg, #06150f 0%, #075b36 58%, #032719 100%); }
.site-search-panel::before { position: fixed; right: -9vw; bottom: -15vw; z-index: 0; color: rgba(157,231,187,.055); content: 'E'; font-family: Georgia, 'Times New Roman', serif; font-size: 58vw; font-weight: 700; line-height: .7; pointer-events: none; }
.site-search-panel::after { position: fixed; inset: 0; z-index: 0; background: radial-gradient(circle at 18% 35%, rgba(157,231,187,.13), transparent 24%), linear-gradient(135deg, transparent 50%, rgba(0,0,0,.24)); content: ''; pointer-events: none; }
.site-search-panel-inner { position: relative; z-index: 1; width: min(100% - 3rem, 116rem); }
.site-search-topbar { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 4.8rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(255,255,255,.24); }
.site-search-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(18rem, .8fr); gap: clamp(2rem, 8vw, 8rem); align-items: stretch; padding-block: clamp(3rem, 8vw, 7rem); }
.site-search-copy { max-width: 52rem; }
.site-search-copy h2 { max-width: 48rem; margin: 0; color: var(--white); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(3.3rem, 8vw, 8rem); line-height: .88; letter-spacing: -.07em; }
.site-search-intro { max-width: 34rem; margin: 1.5rem 0 0; color: rgba(255,255,255,.76); font-size: clamp(1rem, 1.7vw, 1.25rem); }
.site-search-overlay-form { max-width: 58rem; padding-block: clamp(2rem, 5vw, 4rem) 0; }
.site-search-overlay-form input { min-height: 3.6rem; border-radius: .2rem; }
.site-search-overlay-form .button { min-height: 3.6rem; border-radius: .2rem; }
.site-search-discovery { align-self: stretch; padding-left: clamp(1.5rem, 4vw, 4rem); border-left: 1px solid rgba(255,255,255,.22); }
.site-search-discovery .eyebrow { color: #9de7bb; }
.site-search-discovery .search-suggestion-list { grid-template-columns: 1fr; }
.site-search-discovery .search-suggestion-list a { display: grid; grid-template-columns: 2.2rem minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding-block: 1.05rem; }
.search-suggestion-index { color: #9de7bb; font-family: Arial, Helvetica, sans-serif; font-size: .72rem; font-weight: 900; letter-spacing: .06em; }
.site-search-quickbar { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem clamp(1rem, 3vw, 3rem); padding-block: 1rem; border-top: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); }
.site-search-quickbar > span { margin-right: auto; color: #9de7bb; font-weight: 800; }
.site-search-quickbar a { color: var(--white); font-weight: 800; text-decoration: none; }
.site-search-quickbar a:hover, .site-search-quickbar a:focus-visible { color: #f8d98d; text-decoration: underline; }
.home-hero { position: relative; background: radial-gradient(circle at 78% 48%, rgba(0,168,90,.22), transparent 26%), var(--green-900); }
.home-hero-grid { position: relative; z-index: 1; padding-bottom: clamp(5rem, 9vw, 8rem); }
.home-hero-scroll { position: absolute; right: max(1rem, calc((100vw - 80rem) / 2)); bottom: 1.35rem; z-index: 2; display: inline-flex; align-items: center; gap: .8rem; color: rgba(255,255,255,.76); font-size: .72rem; font-weight: 900; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.home-hero-scroll::before { display: block; width: 3.2rem; height: 1px; background: rgba(255,255,255,.45); content: ''; }
.home-hero-scroll > span:last-child { color: #9de7bb; font-size: 1.25rem; line-height: 1; animation: educare-scroll-bob 1.8s ease-in-out infinite; }
.home-hero-scroll:hover, .home-hero-scroll:focus-visible { color: var(--white); }
.home-hero-scroll:hover > span:last-child, .home-hero-scroll:focus-visible > span:last-child { color: #f8d98d; }
@keyframes educare-scroll-bob { 0%, 100% { transform: translateY(-.15rem); } 50% { transform: translateY(.2rem); } }
.js-enabled [data-reveal-item] { opacity: 0; transform: translateY(1rem); transition: opacity .6s cubic-bezier(.22, 1, .36, 1) var(--reveal-item-delay), transform .6s cubic-bezier(.22, 1, .36, 1) var(--reveal-item-delay); }
.js-enabled [data-reveal-item].is-visible { opacity: 1; transform: none; }
.editorial-card .card-arrow, .feature-list-item > span:last-child, .event-row > span:last-child, .quick-links-list a > span:last-child, .site-menu-related-link > span, .site-menu-featured-link > span, .site-search-quickbar a > span { transition: transform .22s ease; }
.editorial-card:hover .card-arrow, .editorial-card:focus-within .card-arrow, .feature-list-item:hover > span:last-child, .feature-list-item:focus-visible > span:last-child, .event-row:hover > span:last-child, .event-row:focus-visible > span:last-child, .quick-links-list a:hover > span:last-child, .quick-links-list a:focus-visible > span:last-child, .site-menu-related-link:hover > span, .site-menu-related-link:focus-visible > span, .site-menu-featured-link:hover > span, .site-menu-featured-link:focus-visible > span, .site-search-quickbar a:hover > span, .site-search-quickbar a:focus-visible > span { transform: translateX(.3rem); }
@media (max-width: 900px) {
    .site-search-layout { grid-template-columns: 1fr; gap: 3rem; }
    .site-search-discovery { padding-top: 2rem; padding-left: 0; border-top: 1px solid rgba(255,255,255,.22); border-left: 0; }
    .home-hero-scroll { right: 1rem; }
}
@media (max-width: 640px) {
    .site-search-panel-inner { width: min(100% - 2rem, 116rem); }
    .site-search-topbar { min-height: 4rem; }
    .site-search-layout { gap: 2rem; padding-block: 2.5rem 3rem; }
    .site-search-copy h2 { font-size: clamp(3rem, 15vw, 5rem); }
    .site-search-intro { margin-top: 1.1rem; }
    .site-search-overlay-form { padding-top: 2rem; }
    .site-search-overlay-form > div { flex-direction: column; }
    .site-search-overlay-form .button { width: 100%; }
    .site-search-quickbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; }
    .site-search-quickbar > span { grid-column: 1 / -1; margin-right: 0; }
    .home-hero-scroll { position: static; width: min(100% - 2rem, 80rem); margin: 0 auto 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .home-hero-scroll > span:last-child { animation: none; }
    .js-enabled [data-reveal-item] { opacity: 1; transform: none; transition: none; }
}

/* Brand imagery layer */
.hero-art-image { z-index: 1; width: 100%; height: 100%; opacity: .78; mix-blend-mode: normal; filter: saturate(.82) contrast(.96); transform: rotate(3deg); }
.hero-art-panel { z-index: 2; background: rgba(164,228,189,.78); backdrop-filter: blur(1px); }
.hero-art-note { z-index: 3; }
.programs-visual-story { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(13rem, .45fr); gap: clamp(1.5rem, 5vw, 5rem); align-items: end; margin-bottom: clamp(2rem, 5vw, 4.5rem); }
.programs-visual-frame { position: relative; min-height: 22rem; margin: 0; overflow: hidden; color: var(--white); background: var(--green-900); }
.programs-visual-frame::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 48%, rgba(3,31,21,.78)); content: ''; pointer-events: none; }
.programs-visual-frame img { display: block; width: 100%; height: 22rem; object-fit: cover; filter: saturate(.9); transition: transform .7s cubic-bezier(.22, 1, .36, 1); }
.programs-visual-frame:hover img, .programs-visual-frame:focus-within img { transform: scale(1.035); }
.programs-visual-frame figcaption { position: absolute; right: clamp(1rem, 3vw, 2rem); bottom: 1.2rem; left: clamp(1rem, 3vw, 2rem); z-index: 1; display: flex; justify-content: space-between; gap: 1rem; color: var(--white); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.programs-visual-frame figcaption span:first-child { color: #9de7bb; }
.programs-visual-copy { max-width: 18rem; padding-bottom: .7rem; border-top: 1px solid var(--green-900); }
.programs-visual-copy .eyebrow { margin-top: .9rem; }
.programs-visual-copy p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 1.05rem; }
.feature-band-side { display: grid; gap: 1.5rem; align-self: stretch; }
.feature-band-media { position: relative; min-height: 15rem; margin: 0; overflow: hidden; background: #164d35; }
.feature-band-media::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(3,31,21,.86)); content: ''; pointer-events: none; }
.feature-band-media img { display: block; width: 100%; height: 15rem; object-fit: cover; filter: saturate(.82); transition: transform .7s cubic-bezier(.22, 1, .36, 1); }
.feature-band-media:hover img, .feature-band-media:focus-within img { transform: scale(1.035); }
.feature-band-media figcaption { position: absolute; right: 1.2rem; bottom: 1rem; left: 1.2rem; z-index: 1; display: grid; gap: .25rem; color: var(--white); }
.feature-band-media figcaption span { color: #9de7bb; font-size: .7rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.feature-band-media figcaption strong { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.3rem, 2.5vw, 2rem); line-height: 1; }
.news-feature { position: relative; min-height: 20rem; margin: 0 0 clamp(2rem, 5vw, 4rem); overflow: hidden; color: var(--white); background: var(--green-900); }
.news-feature::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,31,21,.8), transparent 70%), linear-gradient(0deg, rgba(3,31,21,.55), transparent 50%); content: ''; pointer-events: none; }
.news-feature img { display: block; width: 100%; height: clamp(20rem, 34vw, 31rem); object-fit: cover; object-position: center 55%; filter: saturate(.88); transition: transform .8s cubic-bezier(.22, 1, .36, 1); }
.news-feature:hover img { transform: scale(1.025); }
.news-feature figcaption { position: absolute; right: clamp(1.2rem, 5vw, 5rem); bottom: clamp(1.2rem, 4vw, 3rem); left: clamp(1.2rem, 5vw, 5rem); z-index: 1; display: grid; gap: .35rem; max-width: 34rem; }
.news-feature figcaption span { color: #9de7bb; font-size: .72rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.news-feature figcaption strong { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.8rem, 4vw, 4.2rem); line-height: .98; letter-spacing: -.04em; }
@media (max-width: 900px) {
    .programs-visual-story { grid-template-columns: 1fr; gap: 1.5rem; }
    .programs-visual-copy { max-width: 32rem; }
    .feature-band-side { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; }
}
@media (max-width: 640px) {
    .programs-visual-frame, .programs-visual-frame img { min-height: 16rem; height: 16rem; }
    .feature-band-side { grid-template-columns: 1fr; }
    .feature-band-media, .feature-band-media img { min-height: 13rem; height: 13rem; }
    .news-feature, .news-feature img { min-height: 17rem; height: 17rem; }
}
@media (prefers-reduced-motion: reduce) {
    .programs-visual-frame img, .feature-band-media img, .news-feature img { transition: none; }
}
