*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:#253a40;background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:16px;line-height:1.95}a{color:inherit;text-decoration:none}a,summary{ -webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:2px solid #477c86;outline-offset:5px}header{position:relative;z-index:10;min-height:110px;padding:25px 4%;display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid #e8eeee;background:#fff}.brand{font-family:Georgia,serif;font-size:28px;letter-spacing:.12em;line-height:1.4}.brand span{display:block;font-family:sans-serif;font-size:11px;letter-spacing:.12em;margin-top:5px}nav{display:flex;gap:24px;flex-wrap:wrap;font-size:13px}.languages{display:flex;gap:12px;font-size:13px;white-space:nowrap}.languages a[aria-current]{border-bottom:1px solid #263e42}a:hover{color:#467d86}h1,h2,h3,p{margin:0}h1,h2{font-family:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif;font-weight:400}h1{font-size:clamp(42px,5.5vw,78px);line-height:1.6;letter-spacing:.06em}h2{font-size:clamp(27px,3vw,42px);line-height:1.7;letter-spacing:.035em}h3{font-size:18px;font-weight:500;line-height:1.7}.eyebrow{font-size:13px;letter-spacing:.16em;color:#568088;margin-bottom:22px}.hero{position:relative;isolation:isolate;overflow:hidden;min-height:690px;padding:95px 9% 125px;background:linear-gradient(115deg,#f6f9f8 10%,#e4eeee 65%,#d2e4e7);border-bottom-right-radius:140px}.hero-inner{position:relative;z-index:1}.intro{margin-top:28px;font-size:17px;line-height:2.1}.hero-side{position:absolute;right:45px;top:120px;writing-mode:vertical-rl;font-size:12px;letter-spacing:.22em}.hero-bottom{position:absolute;bottom:-37px;right:8%;font-size:clamp(90px,17vw,230px);line-height:1.1;letter-spacing:.05em;font-family:Georgia,serif;color:#fff9;z-index:0}.round-link{display:inline-flex;align-items:center;gap:50px;font-size:14px;margin-top:34px}.round-link span{display:grid;place-items:center;width:43px;height:43px;border:1px solid #8faab0;border-radius:50%;transition:transform .3s}.round-link:hover span{transform:translate(3px,3px)}.section{padding:110px max(7%,calc((100vw - 1120px)/2))}.section-head{margin-bottom:45px}.about{display:grid;grid-template-columns:1fr 1fr;gap:80px}.copy p+p{margin-top:24px}.services{background:#f5f7f7;border-radius:65px 65px 0 0}.service-intro{max-width:760px;margin-bottom:45px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 50px}.service{border-top:1px solid #cbd6d8}.service summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:18px;min-height:115px;padding:24px 0}.service summary::-webkit-details-marker{display:none}.index{font:13px Georgia,serif;color:#6b858a}.service-name{flex:1}.service-name small{font-size:12px;color:#648087;letter-spacing:.04em}.plus{font-weight:300;font-size:28px;transition:transform .3s}.service[open] .plus{transform:rotate(45deg)}.service>p{padding:0 20px 28px 35px;font-size:15px;line-height:2}.fee-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}.fee-grid>div{padding:30px 25px;border:1px solid #d6e0e2;border-radius:20px}.fee-grid h3{font-size:15px;min-height:55px}.price{font:36px Georgia,serif;margin-top:30px}.price span{display:block;font:13px sans-serif;margin-top:15px;color:#668086}.message-grid{display:grid;grid-template-columns:220px 1fr;gap:75px}.portrait-block img{width:170px;height:225px;object-fit:cover;object-position:50% 25%;border-radius:5px 40px 5px 5px}.portrait-block p{font-size:13px;margin-top:17px}.portrait-block strong{font-size:23px;font-weight:400}.text-link{display:inline-block;border-bottom:1px solid #a6babf;padding-bottom:5px;margin-top:24px;font-size:14px}.community{background:#eaf0ef;border-radius:0 70px 0 0}.community-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.org{font:55px Georgia,serif;display:block;margin-bottom:20px;color:#38616a}.company{display:grid;grid-template-columns:1fr 1.5fr;gap:60px}dl{margin:0}dl>div{display:grid;grid-template-columns:100px 1fr;gap:30px;padding:23px 0;border-bottom:1px solid #dbe3e4}dt{color:#698187;font-size:14px}dd{margin:0}.contact{background:#244b54;color:white;border-radius:75px 0 0 0}.contact .eyebrow{color:#b9d5db}.contact h2{margin-bottom:20px}.contact-links{display:flex;gap:25px;margin-top:35px}.contact-links a{border:1px solid #85a4ab;border-radius:40px;padding:14px 30px;min-width:130px;text-align:center}.contact-links a:hover{background:#fff;color:#244b54}footer{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:50px 7%;font-size:13px;flex-wrap:wrap}.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}.legal{max-width:960px;margin:auto;padding:80px 7%}.legal h2{font-size:23px;margin:35px 0 15px}.legal h1{font-size:38px}.legal p{margin-bottom:20px}@media(max-width:950px){header{flex-wrap:wrap}nav{order:3;width:100%;gap:18px}.about,.company{gap:35px}.section{padding:75px 7%}}@media(max-width:650px){header{padding:20px 6%;gap:15px}.brand{font-size:24px}nav{font-size:12px;gap:12px 18px}.hero{padding:60px 7% 110px;min-height:575px;border-bottom-right-radius:70px}.hero-side{display:none}h1{font-size:38px;letter-spacing:.02em}.intro{font-size:16px}.hero-bottom{bottom:-10px;font-size:75px}.section{padding:65px 7%}.about,.company,.service-grid,.community-grid,.fee-grid,.message-grid{grid-template-columns:1fr;gap:28px}.section-head{margin-bottom:27px}.services{border-radius:35px 35px 0 0}.fee-grid h3{min-height:0}.price span{display:inline;margin-left:10px}.message-grid .portrait-block{display:flex;gap:22px;align-items:end}.portrait-block img{width:120px;height:158px}.community{border-radius:0 40px 0 0}.community-grid{gap:45px}.contact{border-radius:40px 0 0 0}.contact-links{flex-wrap:wrap;gap:15px}dl>div{grid-template-columns:75px 1fr;gap:18px}footer{align-items:start;flex-direction:column}.languages{margin-left:auto}html[lang=en] h1{font-size:42px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}

.service-detail{padding:0 12px 30px 35px}.service-detail h4{font-size:18px;font-weight:500;line-height:1.8;margin:0 0 16px}.service-detail p{font-size:15px}.service-detail .examples{margin-top:20px;padding:16px 20px;background:#eaf0ef;border-radius:12px;font-size:14px}.org-detail{margin-top:24px}.partners{margin-top:60px;border-top:1px solid #c4d2d2;padding-top:35px}.partner-note{font-size:13px;margin-top:12px;color:#526c70}.motion-toggle{margin:18px 0;padding:8px 20px;border:1px solid #9bb2b7;background:transparent;border-radius:24px;color:inherit;font:inherit;font-size:13px;cursor:pointer}.logo-window{overflow:hidden}.logo-track{display:flex;width:max-content;animation:logos 65s linear infinite}.logo-group{display:flex;gap:22px;padding-right:22px}.logo-tile{display:flex;align-items:center;justify-content:center;width:230px;height:110px;background:white;border-radius:10px;overflow:hidden}.logo-crop{position:relative;display:block;overflow:hidden}.logo-crop img{position:absolute;height:auto}.partners.paused .logo-track,.logo-window:hover .logo-track{animation-play-state:paused}@keyframes logos{to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.logo-window{overflow-x:auto}.logo-track{animation:none}.logo-group[aria-hidden]{display:none}.motion-toggle{display:none}}

.values{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-top:0}.values h2{font-size:26px;margin-bottom:25px}.values article{border-top:1px solid #cbd6d8;padding-top:30px}@media(max-width:650px){.values{grid-template-columns:1fr;gap:40px}.values h2{font-size:24px}}
.brand{position:relative;padding-left:58px}.brand-logo{position:absolute;left:0;top:-4px;width:43px;height:53px;object-fit:contain}.fees{padding-top:55px;padding-bottom:55px}.fees .section-head{margin-bottom:15px}.fees h2{font-size:27px}.fee-grid{display:block;margin-top:18px;max-width:850px}.fee-grid>div{padding:15px 0;border:0;border-bottom:1px solid #d6e0e2;border-radius:0;display:flex;align-items:center;justify-content:space-between;gap:20px}.fee-grid h3{min-height:0;font-size:14px}.fee-grid .price{font-family:inherit;font-size:20px;margin:0;white-space:nowrap}.fee-grid .price span{display:inline;font-size:12px;margin-left:10px}.fees>p{font-size:13px}.service-detail h4:not(:first-child){margin-top:30px}.volunteer-gallery{display:grid;grid-template-columns:1.3fr .8fr 1fr;grid-template-rows:250px 250px;gap:15px;margin-top:50px}.volunteer-gallery img{width:100%;height:100%;object-fit:cover;border-radius:12px}.volunteer-gallery img:nth-child(2){grid-row:span 2}.logo-tile{width:165px;height:75px;background:transparent;border:0;border-radius:0;mix-blend-mode:multiply}.logo-crop{transform:scale(.67)}.logo-window:hover .logo-track{animation-play-state:running}.logo-group{gap:14px;padding-right:14px}.logo-crop{clip-path:inset(3px)}.community-grid article{min-width:0}@media(max-width:650px){.volunteer-gallery{grid-template-columns:1fr 1fr;grid-template-rows:180px 180px 180px}.volunteer-gallery img:nth-child(2){grid-row:auto}.fee-grid>div{align-items:start}.fee-grid .price{font-size:18px}.brand{padding-left:48px}.brand-logo{width:36px;height:45px}}

.service-visual{display:block;width:100%;height:290px;object-fit:cover;object-position:50% 58%;border-radius:14px 60px 14px 14px;margin-bottom:35px}@media(max-width:650px){.service-visual{height:195px;border-radius:12px 35px 12px 12px}}
/* Header and CSR refinements */
.brand-logo{filter:brightness(1.1);background:#fff}
header nav{font-size:14px;gap:20px}
.service-overview{margin-bottom:28px}
.service-detail .risk-note{font-size:13px;color:#526c70;margin-top:15px}
.csr-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:60px;align-items:center}
.csr-copy{min-width:0}.csr-story .org{font-size:42px}.csr-story .org-detail{margin-top:20px}
.csr-gallery{position:relative;display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:auto 200px;gap:14px;align-items:stretch;padding:20px 0 30px}
.csr-gallery img{display:block;width:100%;height:100%;object-fit:cover}
.csr-photo-main{grid-column:1/-1;aspect-ratio:4/3;border-radius:10px 55px 10px 10px}
.csr-photo-people{object-position:50% 35%;border-radius:10px 10px 10px 35px}
.csr-photo-supplies{border-radius:10px;object-position:center}
.fpc-story{display:block;margin-top:90px;padding-top:65px;border-top:1px solid #c4d2d2}
.fpc-story .csr-copy{max-width:900px}.fpc-story .partners{margin-top:35px;padding-top:0;border:0}
.logo-window{margin-top:26px}.logo-tile{flex:0 0 165px;overflow:visible}
.logo-crop{flex:none;transform:none;clip-path:none;isolation:isolate}
.logo-group{flex:none}.logo-crop img{max-width:none}
@media(max-width:950px){.csr-story{grid-template-columns:1fr;gap:25px}.csr-gallery{max-width:720px;width:100%;margin:auto}.fpc-story{margin-top:55px}}
@media(max-width:650px){header nav{font-size:13px;gap:12px 18px}.csr-gallery{grid-template-rows:auto 170px;padding:5px 0 0;gap:10px}.csr-photo-main{border-top-right-radius:35px}.fpc-story{padding-top:40px}.csr-story .org{font-size:36px}}

/* Keep the partner strip visible without deferred image loading or blend compositing. */
.community.reveal{opacity:1;transform:none}.fpc-story .partners{min-width:0;max-width:100%}.logo-window{background:#fff;min-height:85px;padding:5px 0}.logo-tile{mix-blend-mode:normal}.logo-crop{isolation:auto}.logo-crop img{display:block;visibility:visible;opacity:1}.logo-track{will-change:transform}

/* Hide screenshot-edge pixels without changing the logo content or animation. */
.fpc-story .logo-window,.fpc-story .logo-tile,.fpc-story .logo-crop{border:0;outline:0;box-shadow:none}
.fpc-story .logo-crop{clip-path:inset(1.5px)}

/* Philosophy flows left, mission right, vision left. */
.about{display:block;padding-bottom:72px}.about .section-head{max-width:680px;margin-bottom:28px}.about .copy{max-width:680px}
.values{display:flex;flex-direction:column;gap:80px;padding-top:0}.values article{width:64%;max-width:720px}.values article:first-child{align-self:flex-end}.values article:last-child{align-self:flex-start}
@media(max-width:650px){.about{padding-bottom:48px}.values{gap:48px}.values article{width:100%;max-width:none}}
