:root{--ink:#243528;--green:#2e6b40;--leaf:#5fae4e;--cream:#fbf5e9;--mint:#e7f0df;--gold:#f4c75b;--line:#e7dec9;--muted:#687764;--white:#fff;--max:1180px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.65;background:#fff}
img{max-width:100%;height:auto}
a{color:var(--green)}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:1000;background:#fff;color:var(--ink);padding:.7rem 1rem;border:2px solid var(--green);border-radius:.5rem}
.skip-link:focus{left:8px}
.topline{background:var(--green);color:#e3f0df;font-size:.82rem}
.topline .wrap{min-height:42px;display:flex;gap:1rem;align-items:center;justify-content:space-between}
.wrap{width:min(calc(100% - 2rem),var(--max));margin-inline:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}
.nav-row{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:1.2rem}
.brand{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}
.brand-logo{display:block;width:clamp(190px,20vw,275px);height:auto}
.desktop-nav{display:flex;align-items:center;gap:1.4rem}
.desktop-nav a{color:var(--ink);font-weight:650;text-decoration:none}
.desktop-nav a[aria-current="page"]{color:var(--green)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.78rem 1.2rem;border:2px solid transparent;border-radius:999px;background:var(--green);color:#fff;text-decoration:none;font-weight:750;cursor:pointer}
.button:hover,.button:focus-visible{filter:brightness(.94)}
.button.gold{background:var(--gold);color:var(--ink)}
.button.outline{background:transparent;border-color:var(--green);color:var(--green)}
.mobile-menu{display:none;position:relative}
.mobile-menu summary{list-style:none;font-size:1.7rem;cursor:pointer;line-height:1;padding:.4rem}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu nav{position:absolute;right:0;top:44px;width:min(290px,calc(100vw - 2rem));padding:.55rem;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 45px rgba(36,53,40,.18)}
.mobile-menu nav a{display:block;padding:.7rem .85rem;color:var(--ink);text-decoration:none;font-weight:650;border-radius:8px}
.mobile-menu nav a:hover,.mobile-menu nav a:focus-visible{background:var(--mint)}
.hero{padding:clamp(3rem,8vw,6.5rem) 0;background:var(--cream)}
.hero-grid,.two-col{display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.eyebrow{display:inline-block;padding:.38rem .85rem;border-radius:999px;background:var(--mint);color:var(--green);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
h1,h2,h3{line-height:1.15;letter-spacing:-.025em}
h1{font-size:clamp(2.45rem,6vw,4.65rem);margin:1rem 0;color:var(--ink)}
h2{font-size:clamp(1.85rem,4vw,2.65rem);margin:.55rem 0 1rem}
h3{font-size:1.22rem;margin:.35rem 0}
.lead{font-size:clamp(1.05rem,2vw,1.2rem);color:var(--muted);max-width:68ch}
.hero-image{aspect-ratio:16/11;object-fit:cover;border-radius:26px;box-shadow:0 24px 60px rgba(36,53,40,.18)}
.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.5rem}
.section{padding:clamp(3.6rem,8vw,6rem) 0}
.section.cream{background:var(--cream)}
.section.dark{background:var(--green);color:#e5f1e1}
.section.dark h2{color:#fff}
.section-head{max-width:760px;margin-bottom:2rem}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}
.card{display:block;padding:1.4rem;background:#fff;border:1px solid var(--line);border-radius:18px;color:inherit;text-decoration:none;box-shadow:0 10px 30px rgba(36,53,40,.05)}
.card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;margin-bottom:1rem}
.card p{color:var(--muted);margin:.55rem 0 0}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.stat{padding:1.4rem;border:1px solid var(--line);border-radius:16px;background:#fff}
.stat strong{display:block;color:var(--green);font-size:2rem}
.mission-cards{display:grid;gap:1rem;width:100%}
.mission-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:1rem;align-items:start;padding:1.25rem;border:1px solid var(--line);border-radius:18px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 10px 30px rgba(36,53,40,.06)}
.mission-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:16px;background:var(--mint);font-size:2rem;line-height:1}
.mission-card strong{display:block;margin:.1rem 0 .35rem;color:var(--green);font-size:1.15rem;line-height:1.3}
.mission-card small{display:block;color:var(--muted);font-size:.95rem;line-height:1.55}
.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.gallery img{display:block;width:100%;height:340px;object-fit:cover;border-radius:16px}
.gallery img:last-child{grid-column:1/-1;height:470px}
.gallery .people-photo{object-position:center 25%}
.timeline{list-style:none;padding:0;margin:2rem 0 0}
.timeline li{position:relative;padding:0 0 2rem 2.6rem}
.timeline li:not(:last-child)::before{content:"";position:absolute;left:.7rem;top:1.5rem;bottom:-.15rem;width:2px;background:var(--line)}
.timeline li::after{content:"";position:absolute;left:0;top:.2rem;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--leaf);border:4px solid var(--mint)}
.timeline time{color:var(--leaf);font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem}
.page-hero{padding:4.6rem 0 3.8rem;background:var(--cream)}
.page-hero h1{font-size:clamp(2.35rem,5vw,3.45rem);max-width:900px}
.prose{max-width:820px}
.prose h2{margin-top:2.2rem;font-size:1.75rem}
.faq{display:grid;gap:.7rem}
.faq details{border:1px solid var(--line);border-radius:14px;padding:1rem 1.15rem;background:#fff}
.faq summary{font-weight:800;cursor:pointer}
.contact-box{padding:1.6rem;border:1px solid var(--line);border-radius:18px;background:#fff}
.partners{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:center}
.partners figure{margin:0;min-height:150px;display:grid;place-items:center;padding:1rem;border:1px solid var(--line);border-radius:16px;background:#fff}
.partners img{max-height:110px;width:auto}
.software-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin:2rem 0 2.5rem}.software-gallery figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 12px 30px rgba(36,53,40,.1)}.software-gallery img{display:block;width:100%;height:auto}.software-gallery figcaption{padding:1rem;font-weight:700;color:var(--ink)}
.page-photo img{display:block;width:100%;max-height:360px;object-fit:cover;border-radius:22px;box-shadow:0 18px 42px rgba(36,53,40,.14)}
.events-list{display:grid;gap:2rem}
.event-card{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);overflow:hidden;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 16px 42px rgba(36,53,40,.09)}
.event-card:nth-child(even) .event-image{order:2}
.event-image{width:100%;height:100%;min-height:430px;object-fit:cover}
.event-content{padding:clamp(1.4rem,3vw,2.4rem)}
.event-content h2{margin:.45rem 0 .7rem;font-size:clamp(1.65rem,3vw,2.15rem)}
.event-content ul{padding-left:1.25rem;margin:1rem 0 1.4rem}
.event-content li{margin:.42rem 0;color:var(--muted)}
.event-status{display:inline-flex;padding:.42rem .72rem;border-radius:999px;background:var(--mint);color:var(--green);font-size:.86rem;font-weight:800}
.event-type{margin:.9rem 0 0;color:var(--muted);font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.035em}
.small-button{padding:.56rem 1rem;font-size:.94rem}
.site-footer{padding:3.5rem 0 1.4rem;background:var(--ink);color:#b9c5b3}
.footer-grid{display:grid;grid-template-columns:1.45fr repeat(3,1fr);gap:2rem}
.site-footer h2,.site-footer h3{color:#fff}
.footer-logo{display:block;width:min(100%,290px);height:auto;margin-bottom:1rem}
.site-footer a{display:block;color:#b9c5b3;text-decoration:none;margin:.35rem 0}
.footer-bottom{margin-top:2rem;padding-top:1.2rem;border-top:1px solid #435345;font-size:.86rem}
.notice{padding:1rem 1.1rem;border-left:5px solid var(--gold);background:#fff9e7;border-radius:8px}
.knowledge-card{position:relative;display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.knowledge-card:hover{transform:translateY(-4px);border-color:var(--leaf);box-shadow:0 16px 38px rgba(36,53,40,.11)}
.knowledge-icon{display:grid;place-items:center;width:58px;height:58px;margin-bottom:1rem;border-radius:16px;background:var(--mint);color:var(--green);font-size:1.7rem;font-weight:900}
.knowledge-tag{color:var(--green);font-size:.78rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase}
.knowledge-card h3{font-size:1.35rem;margin:.45rem 0 0}
.knowledge-card .card-link{margin-top:auto;padding-top:1.3rem;color:var(--green);font-weight:800}
.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.video-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(36,53,40,.06)}
.video-embed{display:grid;place-items:center;aspect-ratio:9/16;max-height:520px;background:linear-gradient(145deg,var(--ink),var(--green));color:#fff}
.video-embed iframe{display:block;width:100%;height:100%;border:0}
.video-load{display:grid;place-items:center;gap:.85rem;width:100%;height:100%;padding:2rem;border:0;background:transparent;color:#fff;font:inherit;font-weight:800;cursor:pointer}
.video-load:hover,.video-load:focus-visible{background:rgba(255,255,255,.08)}
.video-copy{padding:1.25rem}.video-copy h3{margin:.1rem 0 .55rem}.video-copy p{margin:0 0 .9rem;color:var(--muted)}.video-copy a{color:var(--green);font-weight:800;text-decoration:none}
.play-icon{display:grid;place-items:center;flex:0 0 50px;width:50px;height:50px;border-radius:50%;background:var(--green);color:#fff;padding-left:3px}
.video-load .play-icon{background:var(--gold);color:var(--ink);box-shadow:0 10px 24px rgba(0,0,0,.2)}
.quiz-promo{background:linear-gradient(135deg,#fff 0%,#f8f3e7 100%)}
.quiz-promo-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:3rem;align-items:center}
.quiz-promo-art{display:grid;place-items:center;align-content:center;width:250px;aspect-ratio:1;margin-inline:auto;border-radius:50%;background:var(--green);color:#fff;box-shadow:0 24px 55px rgba(46,107,64,.25)}
.quiz-promo-art strong{font-size:4.8rem;line-height:.9}.quiz-promo-art span{font-weight:800;text-transform:uppercase;letter-spacing:.08em}.quiz-promo-art div{margin-top:.7rem;font-size:2rem;color:var(--gold)}
.article-wrap,.article-prose{max-width:850px}.back-link{display:block;width:max-content;margin-bottom:1.25rem;font-weight:800;text-decoration:none}.article-prose{font-size:1.07rem}.article-prose h2{margin:2.4rem 0 .75rem;font-size:clamp(1.55rem,3vw,2rem)}.article-prose li{margin:.65rem 0}.article-steps{padding-left:1.35rem}.article-callout{margin:2rem 0;padding:1.3rem 1.4rem;border-left:5px solid var(--leaf);border-radius:10px;background:var(--mint)}.article-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2.5rem}
.quiz-wrap{max-width:820px}.quiz-card{padding:clamp(1.35rem,4vw,2.2rem);border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 14px 40px rgba(36,53,40,.08)}.quiz-hidden{display:none!important}.quiz-progress-row{display:flex;justify-content:space-between;margin-bottom:.5rem;color:var(--muted);font-size:.9rem;font-weight:800}.quiz-bar{height:10px;margin-bottom:2rem;overflow:hidden;border-radius:999px;background:#eee6d5}.quiz-bar>div{width:0;height:100%;border-radius:999px;background:var(--leaf);transition:width .3s ease}.quiz-fieldset{margin:0;padding:0;border:0}.quiz-fieldset legend{margin:0 0 1.2rem;padding:0;font-size:1.3rem;font-weight:850;line-height:1.4}.quiz-option{display:flex;gap:.8rem;align-items:flex-start;margin:.7rem 0;padding:1rem;border:1.5px solid var(--line);border-radius:14px;cursor:pointer}.quiz-option:hover{border-color:var(--leaf);background:#fcfbf7}.quiz-option input{width:19px;height:19px;margin:.2rem 0 0;accent-color:var(--green)}.quiz-option.is-correct{border-color:var(--leaf);background:var(--mint)}.quiz-option.is-wrong{border-color:#b23b3b;background:#fbecec}.quiz-feedback{display:none;margin:1rem 0;padding:1rem 1.1rem;border-radius:12px}.quiz-feedback.show{display:block}.quiz-feedback.ok{border:1px solid var(--leaf);background:var(--mint)}.quiz-feedback.no{border:1px solid #b23b3b;background:#fbecec}.quiz-feedback strong{display:block;margin-bottom:.25rem}.quiz-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.2rem}.quiz-score{margin:.8rem 0;font-size:4rem;font-weight:900;line-height:1;color:var(--green)}.quiz-score small{font-size:1.4rem;color:var(--muted)}.quiz-review{margin:1.8rem 0 0;padding:0;list-style:none}.quiz-review li{display:flex;gap:.75rem;padding:.8rem 0;border-top:1px solid var(--line)}.quiz-mark{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:50%;color:#fff;font-weight:900}.quiz-mark.ok{background:var(--leaf)}.quiz-mark.no{background:#b23b3b}.quiz-note{margin-top:1.5rem;color:var(--muted);font-size:.86rem}
.faq-page{max-width:850px}.faq-filters{display:flex;gap:.65rem;flex-wrap:wrap;margin-bottom:1.8rem}.faq-chip{padding:.55rem 1.05rem;border:1.5px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:.9rem;font-weight:750;cursor:pointer}.faq-chip:hover{border-color:var(--leaf)}.faq-chip[aria-pressed="true"]{border-color:var(--green);background:var(--green);color:#fff}.faq-interactive{display:grid;gap:.8rem}.faq-item{overflow:hidden;border:1.5px solid var(--line);border-radius:15px;background:#fff}.faq-heading{margin:0}.faq-toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:1.15rem 1.25rem;border:0;background:#fff;color:var(--ink);font:inherit;font-size:1.03rem;font-weight:800;text-align:left;cursor:pointer}.faq-toggle:hover{background:#fcfbf7}.faq-icon{display:grid;place-items:center;flex:0 0 27px;width:27px;height:27px;border-radius:50%;background:var(--mint);color:var(--green);font-size:1.2rem;transition:transform .2s ease}.faq-toggle[aria-expanded="true"] .faq-icon{transform:rotate(45deg)}.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}.faq-answer.open{grid-template-rows:1fr}.faq-answer-inner{overflow:hidden}.faq-answer-inner>div{padding:0 1.25rem 1.25rem;color:var(--muted)}.faq-answer-inner p{margin:0}.faq-empty{display:none;color:var(--muted)}.faq-empty.show{display:block}.faq-contact{margin-top:2.3rem;padding:1.5rem;border:1px solid var(--line);border-radius:18px;background:var(--cream)}.faq-contact h2{margin:0 0 .55rem;font-size:1.35rem}.faq-contact p{margin:0 0 1rem;color:var(--muted)}
.contact-location-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(2rem,5vw,4rem);align-items:center}.contact-location-image{display:block;width:100%;min-height:380px;max-height:500px;object-fit:cover;border-radius:24px;box-shadow:0 20px 48px rgba(36,53,40,.16)}.contact-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.contact-card{display:flex;gap:1rem;padding:1.35rem;border:1px solid var(--line);border-radius:18px;background:#fff}.contact-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:14px;background:var(--mint);color:var(--green);font-size:1.4rem;font-weight:900}.contact-card h3{margin:.1rem 0 .35rem}.contact-card p{margin:0 0 .45rem;font-weight:750}.contact-card small{display:block;color:var(--muted);line-height:1.5}.phone-reveal{padding:0;border:0;border-bottom:2px dotted var(--green);background:transparent;color:var(--green);font:inherit;font-weight:800;cursor:pointer}.protected-phone-link{font-size:1.08rem;font-weight:850;text-decoration:none}.contact-action-grid ul{padding-left:1.25rem}.contact-action-grid li{margin:.45rem 0;color:var(--muted)}
.legal-prose{max-width:900px}.legal-prose h2{margin:2.35rem 0 .75rem;font-size:1.7rem}.legal-prose h3{margin:1.5rem 0 .5rem}.legal-prose p,.legal-prose li,.legal-prose dd{color:#40503f}.legal-prose dl{margin:0}.legal-prose dt{margin-top:.85rem;font-weight:850}.legal-prose dd{margin:.1rem 0}.legal-prose table{width:100%;margin:1rem 0;border-collapse:collapse;font-size:.94rem}.legal-prose th,.legal-prose td{padding:.75rem;border:1px solid var(--line);text-align:left;vertical-align:top}.legal-prose th{background:var(--cream)}.legal-prose .updated{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}.legal-note{padding:1rem 1.1rem;border-left:5px solid var(--green);border-radius:8px;background:var(--mint)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
@media(max-width:900px){.desktop-nav,.header-cta{display:none}.mobile-menu{display:block}.hero-grid,.two-col{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.partners{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.software-gallery{grid-template-columns:1fr}}
@media(max-width:900px){.event-card{grid-template-columns:1fr}.event-card:nth-child(even) .event-image{order:0}.event-image{height:auto;min-height:0;aspect-ratio:16/9}}
@media(max-width:900px){.video-grid{grid-template-columns:1fr}.quiz-promo-grid{grid-template-columns:1fr}.quiz-promo-art{width:210px}}
@media(max-width:900px){.contact-location-grid{grid-template-columns:1fr}.contact-cards{grid-template-columns:1fr}.contact-location-image{min-height:0;aspect-ratio:16/10}}
@media(max-width:620px){.topline .wrap{padding:.55rem 0;display:block}.cards,.stats,.gallery,.footer-grid{grid-template-columns:1fr}.gallery img,.gallery img:last-child{grid-column:auto;height:auto;aspect-ratio:4/3}.partners{grid-template-columns:1fr}.hero{padding-top:3.5rem}.section{padding:3.5rem 0}}
@media(max-width:620px){.mission-card{grid-template-columns:52px minmax(0,1fr);padding:1rem}.mission-icon{width:52px;height:52px;font-size:1.6rem}.gallery .people-photo{object-position:center 25%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.legal-prose{overflow-wrap:anywhere}
.legal-prose table{display:block;overflow-x:auto}
