body{background-color:#f5f7f6;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.app-title,.hero h2,h3.sec{font-family:"Montserrat",system-ui,sans-serif}
.app-title{font-size:2.25rem;letter-spacing:.04em}
.app-logo{width:72px;height:72px;border-radius:16px;object-fit:cover;flex:0 0 auto;box-shadow:0 6px 16px rgba(0,0,0,.12)}
main.container,header .container{max-width:960px}
.hero h2{font-weight:700;font-size:clamp(1.9rem,5vw,2.9rem);color:#1f2933;line-height:1.15}
.hero-copy{max-width:42rem}
.cta-copy{max-width:36rem}
.card{border-radius:.75rem;border:1px solid #e0e4e7}
.card-title{color:#1f2933;font-weight:600}
.btn-cta{background:#198754;border-color:#198754;color:#fff;border-radius:.5rem;font-weight:600;padding:.75rem 1.5rem}
.btn-cta:hover,.btn-cta:focus{background:#157347;border-color:#157347;color:#fff}
.btn-cta:focus-visible{box-shadow:0 0 0 .2rem rgba(25,135,84,.35)}
.subscript{font-size:.8em;vertical-align:sub}
.info{background:#fff3cd;border:1px solid #ffecb5;color:#664d03;border-radius:.75rem}
.scope-bar-track{display:flex;height:.75rem;border-radius:999px;overflow:hidden;background:#e9ecef}
.scope-bar-track span{display:block;height:100%}
.scope-bar-improved{width:45.4%;background:#198754}
.scope-bar-current{width:54.2%;background:#2d6a4f}
.scope-bar-worse{width:100%;background:#dc3545}
.s1{background:#2d6a4f}.s2{background:#1e3a8a}.s3{background:#5b21b6}.s4{background:#0c4a6e}
.scope-item{border-left:6px solid;padding-left:1rem}
.scope-item.s1{border-color:#2d6a4f;background:none}.scope-item.s2{border-color:#1e3a8a;background:none}
.scope-item.s3{border-color:#5b21b6;background:none}.scope-item.s4{border-color:#0c4a6e;background:none}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
section[id]{scroll-margin-top:1rem}
.sdg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;width:100%;padding:0}
.sdg{display:block;aspect-ratio:1/1;overflow:hidden;border-radius:.5rem}
.sdg img{display:block;width:100%;height:100%;object-fit:cover}
.school-emissions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.5rem 0;padding:1rem 1.25rem;background:#f2fbf6;border:1px solid #d1e7dd;border-radius:.75rem}
.school-emissions p{margin:0}
.carbon-footprint-icon{width:3.5rem;height:3.5rem;flex:0 0 auto;color:#198754}
.team-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:9.5rem}
.team-photo-slot{width:7.5rem;height:7.5rem;flex:0 0 7.5rem;border:1px dashed #adb5bd;border-radius:.5rem;background:#f8f9fa}
.team-photo{display:block;width:7.5rem;height:7.5rem;flex:0 0 7.5rem;border:1px solid #dee2e6;border-radius:.5rem;object-fit:cover}
.team-photo-zoom{width:7.5rem;height:7.5rem;flex:0 0 7.5rem;overflow:hidden;border:1px solid #dee2e6;border-radius:.5rem}
.team-photo-zoom img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%;transform:scale(1.35);transform-origin:center 20%}
.team-photo-rudy{object-position:center 12%}
.lang-switch .btn-lang{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .55rem;font-size:.8rem;line-height:1.1;background:#fff;border:1px solid #dee2e6;color:#343a40;box-shadow:none}
.lang-switch .btn-lang:first-child{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}
.lang-switch .btn-lang:last-child{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}
.lang-switch .btn-lang:hover{border-color:#cfd4da;background:#f8f9fa}
.lang-switch .btn-lang.active{border-color:#198754;color:#198754;background:#f2fbf6}
.lang-switch .btn-lang:focus-visible{outline:3px solid rgba(25,135,84,.45);outline-offset:2px}
.lang-switch .lang-label{font-weight:600}
.toc-side{background:#fff;border:1px solid #e0e4e7;border-radius:.75rem;padding:1rem}
@media(min-width:992px){.toc-side{position:sticky;top:1rem}}
.toc-title{font:700 .95rem "Montserrat",system-ui,sans-serif;color:#1f2933;margin:0 0 .6rem}
.toc-side ol{display:grid;gap:.25rem}
.toc-side a{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:#1f2933;font-weight:600;font-size:.92rem;padding:.4rem .5rem;border-radius:.5rem}
.toc-side a:hover{background:#f2fbf6;color:#198754}
.toc-side a[aria-current="true"]{background:#d1e7dd;color:#0f5132}
.toc-side a:focus-visible{outline:3px solid rgba(25,135,84,.45);outline-offset:2px}
.toc-side .num{width:1.6rem;height:1.6rem;font-size:.8rem}
.todo{background:#fff3cd;color:#664d03;border-radius:.25rem;padding:0 .25rem}
.num{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#198754;color:#fff;font-weight:700;font-size:.9rem;flex:0 0 auto}
.badge.text-bg-success-subtle{background:#d1e7dd!important;color:#0f5132!important;border:1px solid #badbcc;font-weight:600;letter-spacing:.03em}
@media(max-width:575.98px){.app-title{font-size:1.6rem}.app-logo{width:56px;height:56px;border-radius:14px}.btn-cta{width:100%}header .container{flex-wrap:wrap}header .container>.d-flex:first-child{min-width:0}header .container>.lang-switch{margin-left:auto}}