@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&family=Noto+Serif+TC:wght@500;600&display=swap');
:root{--navy:#142d4b;--blue:#214cbc;--ink:#172c42;--muted:#526375;--paper:#fff;--wash:#f2f5f8;--line:#d7e0e8;--light-blue:#eaf0fc;--max:1240px;font-family:'Noto Sans TC',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;font-size:16px;line-height:1.85}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.45;letter-spacing:.025em}h1,h2{font-family:'Noto Serif TC',serif;font-weight:600}h1{font-size:clamp(2.25rem,4.3vw,3.85rem)}h2{font-size:clamp(1.8rem,3vw,2.75rem)}h3{font-size:1.3rem;font-weight:600}p+p{margin-top:1em}ul{padding-left:1.25rem}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e2a600;outline-offset:5px}::selection{background:#cedbfd}.wrap{width:min(var(--max),calc(100% - 80px));margin-inline:auto}.section{padding-block:100px}.eyebrow{display:block;color:var(--blue);font-size:.875rem;letter-spacing:.14em;font-weight:600;margin-bottom:22px}.muted{color:var(--muted)}.text-link{display:inline-flex;align-items:center;gap:18px;font-size:.95rem;font-weight:600;color:var(--blue);padding-block:8px;border-bottom:1px solid #c2cfe9}.text-link > span[aria-hidden="true"]{font-family:Arial,sans-serif;font-size:1.3rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:52px;padding:12px 24px;border:1px solid var(--blue);background:var(--blue);color:#fff;border-radius:3px;font-weight:500;line-height:1.6;font-size:1rem;transition:background .18s}.btn:hover{background:#12358b}.btn-outline{background:transparent;color:var(--blue)}.btn-outline:hover{background:var(--light-blue)}.btn:disabled{opacity:.65;cursor:wait}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:32px}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:#fff;padding:12px 20px}.skip:focus{top:8px}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.98);border-bottom:1px solid var(--line)}.header-inner{height:94px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-mark{width:56px;height:56px;flex-shrink:0;object-fit:contain}.brand-name{font-family:Georgia,'Noto Serif TC',serif;font-size:1.4rem;font-weight:600;line-height:1.2;letter-spacing:0;color:var(--ink);white-space:nowrap}.brand-local{display:block;font-family:'Noto Serif TC',serif;font-size:.8125rem;letter-spacing:.25em;font-weight:600;margin-top:6px;white-space:nowrap}.desktop-nav{display:flex;align-items:center;gap:30px;margin-left:auto;font-size:.9375rem}.desktop-nav a{padding:6px 0;border-bottom:2px solid transparent}.desktop-nav a:hover,.desktop-nav [aria-current=page]{color:var(--blue);border-color:var(--blue)}.lang{font-family:Arial,sans-serif;font-size:.875rem;border-left:1px solid var(--line);padding-left:24px;white-space:nowrap}.menu-toggle{display:none;background:transparent;border:1px solid var(--line);padding:8px 12px;color:var(--ink);font-size:.875rem}.mobile-nav{padding:16px 24px 24px;border-top:1px solid var(--line)}.mobile-nav a{display:block;padding:10px}.mobile-nav[hidden]{display:none}.hero{display:grid;grid-template-columns:.94fr 1.06fr;min-height:650px;background:var(--wash)}.hero-copy{padding:76px 55px 64px max(40px,calc((100vw - var(--max))/2));align-self:center}.hero h1{max-width:590px}.hero .intro{font-size:1.0625rem;max-width:480px;line-height:1.95;margin-top:26px;color:var(--muted)}.hero-visual{position:relative;min-height:580px}.hero-visual img{height:100%;object-fit:cover}.hero-foot{font-size:.8125rem;color:var(--muted);margin-top:34px;display:flex;gap:12px;align-items:center}.hero-foot:before{content:'';width:28px;height:1px;background:#7a91ac}.status-strip{border-bottom:1px solid var(--line);padding:23px 0}.status-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}.status-title{color:var(--blue);font-weight:600;font-size:.875rem;flex-shrink:0}.status-copy{font-size:.9375rem;color:var(--muted);flex:1}.section-top{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:42px}.section-top p{max-width:450px;color:var(--muted);margin-top:16px}.section-top .eyebrow{margin-bottom:16px}.program-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.program-card{display:flex;flex-direction:column}.program-card .photo{display:block;overflow:hidden;aspect-ratio:4/3;background:var(--wash)}.program-card img{height:100%;object-fit:cover;transition:transform .4s}.program-card a:hover img{transform:scale(1.025)}.card-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.8125rem;color:var(--muted);margin-top:22px;margin-bottom:11px}.card-number{color:var(--blue);font-family:Arial,sans-serif;font-size:.875rem;letter-spacing:.05em}.program-card h3{margin-bottom:12px}.program-card p{color:var(--muted);font-size:.9375rem}.program-card .text-link{margin-top:18px;align-self:flex-start}.approach{background:var(--navy);color:#fff}.approach .eyebrow{color:#b6cbff}.approach-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:100px}.approach h2{max-width:420px}.approach-intro{color:#c4d1df;margin-top:24px;max-width:430px}.approach-list{display:grid;gap:26px}.approach-item{border-top:1px solid #496078;padding-top:24px;display:grid;grid-template-columns:38px 1fr;gap:16px}.approach-item .num{color:#a9c4ff;font-family:Arial,sans-serif}.approach-item h3{font-size:1.2rem}.approach-item p{color:#c4d1df;font-size:.9375rem;margin-top:10px}.community-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center}.community-photo{position:relative}.community-photo img{aspect-ratio:4/4;object-fit:cover}.community-copy p{color:var(--muted);margin-top:24px}.districts{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.districts span{padding:5px 13px;border:1px solid var(--line);font-size:.875rem}.fine-print{font-size:.8125rem!important;color:var(--muted)}.cta{padding:65px 0;background:var(--light-blue)}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:45px}.cta h2{font-size:clamp(1.65rem,2.7vw,2.4rem)}.cta p{margin-top:14px;color:var(--muted);max-width:720px}.cta .btn{flex-shrink:0}.site-footer{padding:64px 0 26px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr 1.1fr;gap:70px}.footer-title{font-weight:600;font-size:1rem;margin-bottom:18px}.footer-grid p,.footer-grid a{font-size:.875rem;color:var(--muted)}.footer-links{display:grid;gap:9px}.footer-contact{margin-top:22px;display:grid;gap:8px}.footer-newsletter{display:flex;margin-top:16px;gap:8px}.footer-newsletter input{width:100%;min-width:0;border:1px solid var(--line);padding:10px 12px;background:#fff;font-size:.875rem;border-radius:2px}.footer-newsletter button{border:0;background:var(--blue);color:#fff;padding:10px 18px;font-size:.875rem;white-space:nowrap;border-radius:2px}.newsletter-status{font-size:.8125rem;min-height:26px;display:block}.footer-bottom{border-top:1px solid var(--line);margin-top:45px;padding-top:22px;display:flex;justify-content:space-between;gap:22px;font-size:.75rem;color:var(--muted)}.footer-bottom a{margin-left:20px}.page-intro{background:var(--wash);padding:64px 0 70px}.breadcrumb{font-size:.8125rem;color:var(--muted);margin-bottom:34px;display:flex;gap:14px}.page-intro h1{font-size:clamp(2.3rem,4vw,3.4rem)}.page-intro .lead{margin-top:24px;color:var(--muted);max-width:780px;font-size:1.0625rem}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.split p{color:var(--muted);margin-top:24px}.split figure{position:relative}.split img{aspect-ratio:4/3;object-fit:cover}.values{background:var(--wash)}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.value{border-top:2px solid var(--blue);padding-top:26px}.value h3{margin-bottom:16px}.value p{color:var(--muted);font-size:.9375rem}.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:40px}.timeline-item{border-top:1px solid var(--line);padding-top:24px}.timeline-item strong{color:var(--blue);font-size:.875rem}.timeline-item h3{margin-top:10px}.timeline-item p{font-size:.9375rem;color:var(--muted);margin-top:12px}.service-detail{padding:75px 0;border-bottom:1px solid var(--line);scroll-margin-top:100px}.service-detail:nth-of-type(even){background:var(--wash)}.service-detail-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.service-detail figure{position:relative}.service-detail img{aspect-ratio:4/3;object-fit:cover}.service-detail h2{font-size:2rem}.service-detail p{color:var(--muted);margin-top:20px}.service-tag{color:var(--blue);font-size:.875rem;letter-spacing:.05em;margin-bottom:18px}.service-detail ul{color:var(--muted);margin-top:20px;line-height:2}.service-detail .text-link{margin-top:10px}.faq{max-width:900px}.faq h2{margin-bottom:35px}details{border-top:1px solid var(--line);padding:20px 0}details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;font-weight:500;list-style:none;display:flex;justify-content:space-between;gap:20px}summary:after{content:'+';font-family:Arial;font-size:1.4rem;color:var(--blue)}details[open] summary:after{content:'−'}details p{padding-top:15px;color:var(--muted);font-size:.9375rem}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.contact-details{margin-top:28px}.contact-row{border-bottom:1px solid var(--line);padding:18px 0}.contact-row dt{font-size:.8125rem;color:var(--muted);margin-bottom:6px}.contact-row dd{margin:0;overflow-wrap:anywhere}.contact-row a{color:var(--blue)}.contact-note{font-size:.875rem;color:var(--muted);margin-top:22px}.contact-form{padding:36px;background:var(--wash)}.contact-form h2{font-family:'Noto Sans TC',sans-serif;font-size:1.5rem}.form-lead{font-size:.875rem;color:var(--muted);margin-top:10px}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:26px}.field{display:flex;flex-direction:column;gap:8px}.field.full{grid-column:1/-1}.field label{font-size:.875rem;font-weight:500}.field input,.field select,.field textarea{width:100%;padding:11px 13px;background:#fff;border:1px solid #bfccda;border-radius:2px;color:var(--ink)}.field textarea{resize:vertical;min-height:140px}.field [aria-invalid=true]{border-color:#a52622}.field-error{font-size:.8125rem;color:#a52622}.form-privacy{font-size:.8125rem;color:var(--muted);margin-top:20px}.form-privacy a{text-decoration:underline}.form-status{font-size:.9375rem;margin-top:16px;color:var(--blue)}.form-status.error{color:#a52622}.honeypot{display:none}.contact-form .btn{margin-top:22px}.legal{max-width:840px;padding-block:70px}.legal h2{font-family:'Noto Sans TC',sans-serif;font-size:1.35rem;margin:34px 0 15px}.legal h2:first-child{margin-top:0}.legal p{color:var(--muted)}.legal a{color:var(--blue);text-decoration:underline}.legal .updated{margin-top:36px;font-size:.875rem}.map-panel{margin-top:32px}.map-panel iframe{border:1px solid var(--line);width:100%;height:280px}.map-panel summary{font-size:.875rem;color:var(--blue)}[hidden]{display:none!important}
@media(min-width:1500px){.hero-copy{padding-right:80px}.hero{min-height:710px}}
@media(max-width:1100px){.desktop-nav{gap:19px}.header-inner{gap:20px}.brand-name{font-size:1.125rem}.hero-copy{padding:55px 32px 50px 40px}.hero-visual{min-height:570px}.hero h1{font-size:2.8rem}.approach-grid,.community-grid,.split,.service-detail-inner{gap:50px}.contact-grid{gap:45px}.footer-grid{gap:35px}.lang{padding-left:18px}}
@media(max-width:800px){.wrap{width:calc(100% - 40px)}.section{padding-block:65px}.header-inner{height:76px;gap:16px}.brand-name{font-size:1.125rem}.brand-local{font-size:.75rem}.brand-mark{height:46px;width:46px}.desktop-nav{display:none}.lang{margin-left:auto;border:0;padding:0}.menu-toggle{display:block}.hero{grid-template-columns:1fr}.hero-copy{padding:48px 24px 45px}.hero h1{font-size:2.7rem;max-width:620px}.hero .intro{max-width:640px;font-size:1rem}.hero-visual{min-height:0;height:440px}.hero-visual img{object-position:center 55%}.hero-foot{margin-top:25px}.status-inner{align-items:flex-start;gap:16px;flex-wrap:wrap}.status-copy{flex-basis:calc(100% - 120px)}.status-inner .text-link{margin-left:0;font-size:.875rem}.section-top{align-items:flex-start;gap:20px;margin-bottom:30px}.section-top p{max-width:510px}.program-grid{gap:20px}.program-card h3{font-size:1.125rem}.card-meta{font-size:.75rem;gap:5px;flex-wrap:wrap}.approach-grid,.community-grid,.split,.contact-grid{grid-template-columns:1fr;gap:40px}.approach h2,.approach-intro{max-width:100%}.community-photo img{aspect-ratio:3/2}.community-copy p{margin-top:18px}.cta-inner{align-items:flex-start;flex-direction:column;gap:24px}.footer-grid{grid-template-columns:1fr 1fr;gap:35px}.footer-news{grid-column:1/-1;max-width:460px}.footer-bottom{flex-wrap:wrap}.footer-bottom a{margin-left:0;margin-right:20px}.page-intro{padding:36px 0 48px}.breadcrumb{margin-bottom:26px}.values-grid,.timeline{gap:25px}.service-detail-inner{gap:32px}.service-detail h2{font-size:1.7rem}.contact-details{margin-top:15px}.contact-form{padding:30px}.site-footer{padding-top:45px}}
@media(max-width:580px){h1{font-size:2.35rem}h2{font-size:1.9rem}.hero h1{font-size:2.35rem;line-height:1.5}.hero-visual{height:310px}.hero-copy{padding-inline:20px}.eyebrow{font-size:.8125rem;margin-bottom:20px}.hero .intro{margin-top:20px}.actions{gap:16px;margin-top:26px}.btn{font-size:.9375rem;padding:12px 20px}.hero-foot{font-size:.75rem}.status-copy{flex-basis:100%}.status-inner{gap:9px}.status-strip{padding:20px 0}.section-top{display:block}.section-top>.text-link{margin-top:15px}.program-grid,.values-grid,.timeline,.service-detail-inner{grid-template-columns:1fr}.program-grid{gap:36px}.program-card .photo{aspect-ratio:3/2}.card-meta{font-size:.8125rem;margin-top:18px}.program-card h3{font-size:1.25rem}.program-card p{font-size:1rem}.approach-item{grid-template-columns:28px 1fr;gap:10px}.community-grid{gap:30px}.values-grid{gap:30px}.timeline{gap:28px}.service-detail{padding:48px 0}.service-detail img{aspect-ratio:3/2}.service-detail-inner{gap:26px}.footer-grid{grid-template-columns:1fr;gap:30px}.footer-news{grid-column:auto}.footer-grid .brand{margin-bottom:16px}.footer-bottom{margin-top:30px}.contact-form{padding:24px 18px}.form-fields{grid-template-columns:1fr}.field.full{grid-column:auto}.contact-form .btn{width:100%}.brand{gap:8px}.brand-name{font-size:1.1rem;letter-spacing:0}.brand-local{font-size:.6875rem;letter-spacing:.2em}.header-inner{gap:13px}.menu-toggle{padding:6px 9px}.page-intro .lead{font-size:1rem}.page-intro h1{font-size:2.35rem}.cta{padding:46px 0}.contact-grid{gap:34px}.legal{padding-block:45px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.map-box{height:340px;z-index:0;background:var(--wash);margin-top:20px}.map-buttons{display:flex;flex-wrap:wrap;gap:10px;padding-top:20px}.map-buttons button{padding:8px 14px;border:1px solid var(--line);background:#fff;color:var(--blue);font-size:.875rem}.map-buttons button:hover{background:var(--light-blue)}.map-status{font-size:.875rem;color:var(--muted)}.leaflet-popup-content{font-family:'Noto Sans TC',sans-serif!important;font-size:.875rem!important;line-height:1.8!important}html[lang=en] h1,html[lang=en] h2{letter-spacing:-.025em;font-family:Georgia,serif}html[lang=en] .hero h1{font-size:clamp(2.75rem,4.3vw,4rem);line-height:1.12}html[lang=en] .hero-foot{line-height:1.7}html[lang=en] .hero .intro{line-height:1.75}@media(max-width:580px){html[lang=en] .hero h1{font-size:2.85rem}.map-box{height:300px}}
html[lang=zh-Hant-HK] .hero h1{font-size:clamp(2.3rem,3.55vw,3.2rem);line-height:1.55;letter-spacing:.01em}
.anchor-alias{display:block;scroll-margin-top:94px}

/* Motion follows the existing editorial layout; text stays readable without JS. */
:root{--motion-ease:cubic-bezier(.2,.7,.2,1)}
.site-header{transition:box-shadow .3s ease,border-color .3s ease}
.site-header.is-scrolled{box-shadow:0 6px 24px rgb(20 45 75 / 7%);border-color:#cbd6e2}
.motion-label{display:inline-grid;overflow:hidden;vertical-align:middle;padding-block:.08em;margin-block:-.08em;line-height:inherit}
.motion-label-current,.motion-label-next{grid-area:1/1;display:block;transition:transform .42s var(--motion-ease),opacity .3s ease}
.motion-label-next{transform:translateY(125%);opacity:0;pointer-events:none}
.desktop-nav a{position:relative;border-bottom-color:transparent!important}
.desktop-nav a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--motion-ease)}
.desktop-nav a[aria-current=page]:after,.desktop-nav a:focus-visible:after{transform:scaleX(1)}
.btn{position:relative;isolation:isolate;overflow:hidden;transition:background .25s ease,box-shadow .35s ease,transform .35s var(--motion-ease)}
.btn:before{content:'';position:absolute;inset:0;z-index:-1;background:#133685;transform:translateY(102%);transition:transform .42s var(--motion-ease)}
.btn-outline:before{background:var(--light-blue)}
.btn > span[aria-hidden=true],.text-link > span[aria-hidden=true]{transition:transform .35s var(--motion-ease)}
.text-link{transition:color .25s ease,border-color .25s ease}
.program-card{transition:transform .45s var(--motion-ease)}
.program-card h3 a{transition:color .25s ease}
.program-card img,.hero-visual img,.community-photo img,.split figure img,.service-detail figure img{transition:transform .75s var(--motion-ease),filter .6s ease}
.hero-visual,.community-photo,.split figure,.service-detail figure{overflow:hidden}
.value,.timeline-item,.approach-item{transition:border-color .35s ease}
.field input,.field select,.field textarea,.footer-newsletter input{transition:border-color .25s ease,box-shadow .25s ease,background .25s ease}
.field input:focus,.field select:focus,.field textarea:focus,.footer-newsletter input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgb(33 76 188 / 8%)}
.footer-links a,.footer-contact a,.lang,.menu-toggle,.footer-newsletter button,.map-buttons button{transition:color .25s ease,background .25s ease,border-color .25s ease,transform .3s var(--motion-ease)}
.faq summary{transition:color .25s ease}
.faq details[open] > p{animation:answer-enter .35s var(--motion-ease)}
@keyframes answer-enter{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.btn:focus-visible{box-shadow:0 5px 16px rgb(20 45 75 / 16%)}
.text-link:focus-visible,.program-card:focus-within h3 a,.faq summary:focus-visible{color:var(--blue)}
.program-card:focus-within .photo{outline:2px solid var(--blue);outline-offset:5px}
@media(hover:hover) and (pointer:fine){
  a:is(.btn,.text-link):hover .motion-label-current,.desktop-nav a:hover .motion-label-current{transform:translateY(-125%);opacity:0}
  a:is(.btn,.text-link):hover .motion-label-next,.desktop-nav a:hover .motion-label-next{transform:translateY(0);opacity:1}
  .desktop-nav a:hover:after{transform:scaleX(1)}
  .btn:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgb(20 45 75 / 16%)}
  .btn:hover:before{transform:translateY(0)}
  .btn:hover > span[aria-hidden=true],.text-link:hover > span[aria-hidden=true]{transform:translate(3px,-3px)}
  .text-link:hover{border-color:var(--blue)}
  .program-card:hover{transform:translateY(-7px)}
  .program-card:hover img{transform:scale(1.045);filter:saturate(1.04)}
  .program-card:hover h3 a{color:var(--blue)}
  .hero-visual:hover img,.community-photo:hover img,.split figure:hover img,.service-detail figure:hover img{transform:scale(1.025)}
  .value:hover,.timeline-item:hover{border-color:var(--blue)}
  .approach-item:hover{border-color:#a9c4ff}
  .footer-links a:hover{color:var(--blue);transform:translateX(4px)}
  .footer-contact a:hover,.lang:hover,.faq summary:hover{color:var(--blue)}
  .menu-toggle:hover{background:var(--light-blue);border-color:#b7c8e9}
  .footer-newsletter button:hover{background:#133685;transform:translateY(-2px)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation:none!important;transition:none!important}
  .motion-label-current{transform:none!important;opacity:1!important}
  .motion-label-next{display:none!important}
  .btn,.program-card,.program-card img,.hero-visual img,.community-photo img,.split figure img,.service-detail figure img,.footer-links a,.footer-newsletter button,.btn > span[aria-hidden=true],.text-link > span[aria-hidden=true]{transform:none!important}
  .btn:before{display:none}
}

@media(max-width:380px){.brand-name{font-size:.8125rem}.brand-mark{width:42px;height:42px}.header-inner{gap:8px}}
