@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Nunito:wght@600;700;800;900&display=swap');
:root{--green:#1f684d;--deep:#173e34;--lime:#d8ef8a;--cream:#fbf8ef;--ink:#20352e;--muted:#68766f;--white:#fff;--line:#e2e8df;--orange:#efad64}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;line-height:1.65}a{color:inherit}.topbar{background:var(--deep);color:#fff;font-size:.85rem}.topbar .inner{max-width:1180px;margin:auto;padding:9px 24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.topbar a{text-decoration:none}.header{background:#fff;position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line)}.head-inner{max-width:1180px;margin:auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;min-width:240px}.crest{width:48px;height:52px;background:var(--green);color:var(--lime);border-radius:14px 14px 19px 19px;display:grid;place-items:center;font-family:Nunito;font-weight:900;font-size:1.3rem;box-shadow:inset 0 0 0 3px #ffffff30}.brand strong{display:block;font:900 1.05rem Nunito,sans-serif;line-height:1.15;color:var(--deep)}.brand small{font-size:.76rem;color:var(--muted)}nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}nav a,.navdrop{font-size:.9rem;text-decoration:none;padding:9px 10px;border-radius:9px;font-weight:700}nav a:hover,.navdrop:hover{background:#edf5e9;color:var(--green)}.menu-toggle{display:none;border:0;background:var(--green);color:white;border-radius:9px;padding:10px 13px;font-size:1rem}.hero{background:var(--green);color:white;overflow:hidden;position:relative}.hero-inner{max-width:1180px;margin:auto;padding:76px 24px 70px;display:grid;grid-template-columns:1.15fr .85fr;gap:42px;align-items:center}.eyebrow{color:var(--lime);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800}.hero h1{font:900 clamp(2.5rem,5vw,4.6rem)/1.04 Nunito,sans-serif;letter-spacing:-.04em;margin:16px 0 22px;max-width:700px}.hero p{font-size:1.12rem;color:#e3eee7;max-width:590px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;padding:13px 19px;border-radius:12px;background:var(--lime);color:var(--deep);font-weight:800;text-decoration:none}.btn.secondary{background:transparent;border:1px solid #ffffff80;color:white}.hero-art{min-height:310px;border-radius:30px;background:#dff0bc;position:relative;overflow:hidden;display:grid;place-items:center}.sun{position:absolute;width:100px;height:100px;border-radius:50%;background:#f5bc6d;right:16%;top:12%}.hill{position:absolute;bottom:-65px;width:120%;height:210px;border-radius:50% 50% 0 0;background:#9bcf84;transform:rotate(-8deg)}.hill.two{bottom:-100px;left:-20%;background:#5c9b70;transform:rotate(8deg)}.schoolhouse{z-index:2;position:relative;margin-top:30px;width:200px;height:130px;background:#fff9e8;border:5px solid var(--deep);border-radius:8px 8px 0 0;box-shadow:0 10px 0 #173e3420}.roof{position:absolute;left:-20px;top:-62px;width:230px;height:80px;background:#e9a25b;clip-path:polygon(50% 0,100% 100%,0 100%);border-bottom:5px solid var(--deep)}.door{position:absolute;bottom:0;left:80px;width:42px;height:74px;background:#d5e8a5;border:4px solid var(--deep);border-bottom:0}.window{position:absolute;top:25px;width:34px;height:34px;background:#b8e0e8;border:4px solid var(--deep)}.window.left{left:18px}.window.right{right:18px}.section{max-width:1180px;margin:auto;padding:64px 24px}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:26px}.section h2{font:900 clamp(1.8rem,3vw,2.7rem)/1.1 Nunito,sans-serif;color:var(--deep);margin:0 0 12px}.section-head p{margin:0;color:var(--muted);max-width:560px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:23px;text-decoration:none;transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #173e3412}.card .icon{width:44px;height:44px;border-radius:13px;background:#edf5e9;display:grid;place-items:center;font-size:1.35rem;margin-bottom:16px}.card h3{font:800 1.18rem Nunito,sans-serif;color:var(--deep);margin:0 0 7px}.card p{color:var(--muted);margin:0;font-size:.95rem}.quicklinks{background:#edf4e8}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.quick{background:#fff;border-radius:14px;padding:18px;text-decoration:none;font-weight:800;color:var(--deep);border:1px solid #dce8d7}.quick span{display:block;color:var(--muted);font-size:.85rem;font-weight:500;margin-top:4px}.page-hero{background:var(--green);color:white;padding:54px 24px}.page-hero .inner{max-width:1180px;margin:auto}.page-hero .eyebrow{display:block;margin-bottom:10px}.page-hero h1{font:900 clamp(2.3rem,4vw,3.6rem)/1.1 Nunito,sans-serif;margin:0 0 12px}.page-hero p{max-width:750px;color:#e2eee7;margin:0;font-size:1.05rem}.content{max-width:900px;margin:0 auto;padding:52px 24px 76px}.content h2{font:800 1.5rem Nunito;color:var(--deep)}.content p{font-size:1.02rem}.notice{background:#fff6df;border-left:4px solid var(--orange);border-radius:10px;padding:16px 18px;margin:25px 0;color:#60491f}.class-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.class-card{background:white;border:1px solid var(--line);border-radius:16px;padding:20px;text-decoration:none}.class-card strong{display:block;font:800 1.1rem Nunito;color:var(--deep)}.class-card span{color:var(--muted);font-size:.9rem}.footer{background:var(--deep);color:#e9f0e9}.footer-inner{max-width:1180px;margin:auto;padding:44px 24px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}.footer h3{font:800 1.05rem Nunito;color:white}.footer p,.footer a{color:#d2e1d6;font-size:.92rem}.footer a{display:block;text-decoration:none;margin:6px 0}.copyright{border-top:1px solid #ffffff25;padding:15px 24px;text-align:center;color:#c7d7cb;font-size:.82rem}.crumb{font-size:.85rem;color:#d8ebdf;margin-bottom:10px}.crumb a{color:#fff}.small-note{font-size:.86rem;color:var(--muted)}@media(max-width:900px){.head-inner{flex-wrap:wrap}.menu-toggle{display:block}nav{display:none;width:100%;flex-direction:column;align-items:stretch}nav.open{display:flex}nav a{padding:12px}.hero-inner{grid-template-columns:1fr;padding-top:55px}.hero-art{min-height:260px}.cards{grid-template-columns:repeat(2,1fr)}.quick-grid{grid-template-columns:repeat(2,1fr)}.footer-inner{grid-template-columns:1fr 1fr}}@media(max-width:600px){.topbar .inner{padding:8px 16px}.head-inner{padding:12px 16px}.brand{min-width:0}.brand strong{font-size:.95rem}.brand small{font-size:.7rem}.hero-inner{padding:48px 18px}.hero-art{min-height:220px}.section{padding:45px 18px}.section-head{display:block}.cards,.class-list{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr 1fr}.page-hero{padding:42px 18px}.content{padding:36px 18px 55px}.footer-inner{grid-template-columns:1fr;padding:35px 18px}}
/* Homepage village hero refresh */
.hero-village{background:#123c31 url('castlebridge-hero.jpg') center right/cover no-repeat;isolation:isolate;min-height:560px}
.hero-village:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,48,39,.97) 0%,rgba(10,48,39,.91) 30%,rgba(10,48,39,.58) 51%,rgba(10,48,39,.05) 82%)}
.hero-village .hero-inner{display:flex;align-items:center;min-height:560px;padding-top:68px;padding-bottom:72px}
.hero-copy{max-width:660px}
.hero-village h1{font-size:clamp(2.8rem,5.7vw,5rem);margin:18px 0 22px;max-width:680px}
.hero-village h1 em{font-style:normal;color:var(--lime)}
.hero-village p{font-size:1.1rem;max-width:580px;color:#f1f5f0}
.hero-village .btn{background:#ffdf56;color:#173e34;padding:14px 20px}
.hero-village .btn.secondary{background:rgba(14,57,45,.28);border:1px solid rgba(255,255,255,.85);color:#fff}
.hero-location{display:block;margin-top:26px;color:#e2eee7;font-size:.85rem;letter-spacing:.04em}
@media(max-width:700px){.hero-village{min-height:540px;background-position:58% center}.hero-village:before{background:linear-gradient(90deg,rgba(10,48,39,.92),rgba(10,48,39,.76))}.hero-village .hero-inner{min-height:540px;padding:52px 20px}.hero-village h1{font-size:clamp(2.65rem,11vw,4rem)}.hero-village p{font-size:1rem}}
