:root{
 --paper:#fbfaf4;--white:#fff;--ink:#183e35;--fern:#246447;--river:#2b6e80;--sky:#e8f3f7;--mint:#eaf3e9;--muted:#52675e;--gold:#ebcc62;--line:#d0dfd4;--serif:"Noto Serif JP",serif;--sans:"Noto Sans JP",sans-serif
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.85 var(--sans)}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin-top:0}a:focus-visible,button:focus-visible{outline:3px solid var(--river);outline-offset:5px}
.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:0 clamp(20px,4.5vw,68px);background:rgba(251,250,244,.97);border-bottom:1px solid #d8e3dc;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:13px;min-width:max-content}.brand-mark{width:43px;height:43px;background:#e4efe2;color:var(--fern);display:grid;place-items:center;font:700 21px var(--serif);box-shadow:3px 3px 0 var(--gold)}.brand strong,.brand small{display:block}.brand strong{font-size:14px;line-height:1.4}.brand small{color:var(--muted);font-size:8px;letter-spacing:.09em;line-height:1.5;margin-top:3px}nav{display:flex;align-items:center;gap:clamp(16px,2vw,30px);font-size:12px}nav a{color:#34544a;transition:color .2s}nav a:hover{color:var(--river)}.head-tools{display:flex;gap:8px;align-items:center}.lang-button,.menu-button{border:1px solid #9bb7a8;border-radius:6px;background:transparent;color:var(--ink);padding:9px 12px;min-height:40px;font:500 12px var(--sans);cursor:pointer}.lang-button:hover,.menu-button:hover{background:var(--mint)}.menu-button{display:none}
.hero{min-height:670px;position:relative;display:flex;align-items:center;overflow:hidden;background:#f4f8ef;border-bottom:1px solid #d8e5dd}.hero-art{position:absolute;inset:0;background:url("../assets/nz-waikato-bright.webp") center right/cover no-repeat}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(251,250,244,.99) 0%,rgba(251,250,244,.94) 29%,rgba(251,250,244,.74) 43%,rgba(251,250,244,.22) 61%,transparent 75%)}.hero-content{position:relative;width:min(660px,58%);margin-left:clamp(24px,8.5vw,130px);padding:78px 0 90px}.eyebrow{color:var(--river);font-size:11px;font-weight:600;letter-spacing:.17em;margin:0 0 18px}.route{font:500 10px/1.5 var(--sans);letter-spacing:.15em;color:#4a7061;display:flex;align-items:center;gap:14px;margin:0 0 24px}.route i{height:2px;width:44px;background:var(--gold)}.hero h1{font:700 clamp(44px,5.4vw,73px)/1.4 var(--serif);letter-spacing:.025em;margin:0 0 20px}.hero-copy{font-size:18px;line-height:1.9;color:#3f6052;max-width:520px;margin-bottom:23px}.status{display:flex;align-items:center;gap:10px;color:#3b6452;font-size:12px;margin-bottom:30px}.status-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:var(--fern);box-shadow:0 0 0 5px #24634e12}.button{display:inline-flex;min-height:50px;align-items:center;padding:0 23px;border-radius:7px;background:var(--fern);color:white;font-size:13px;font-weight:600;box-shadow:0 5px 17px #24634e16;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px);background:#1f593f}.hero-foot{position:absolute;bottom:22px;left:clamp(24px,4.5vw,68px);right:clamp(24px,4.5vw,68px);display:flex;justify-content:space-between;color:#496c5b;font:10px var(--sans);letter-spacing:.13em}.hero-foot span:last-child{background:#fbfaf4df;border-radius:3px;padding:5px 9px}
.section{padding:95px clamp(24px,8.5vw,130px)}.section-index{font:600 11px var(--sans);letter-spacing:.12em;color:#826719;display:flex;gap:16px;align-items:center;margin-bottom:43px}.section-index::after{content:"";height:1px;width:75px;background:#d6ddcf}.section-index span{color:#526f60;font-weight:400}.intro{background:var(--paper)}.intro-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:8vw;align-items:start}.intro h2,.outline h2,.budget h2,.open-items h2{font:700 clamp(38px,4.3vw,58px)/1.5 var(--serif);letter-spacing:.015em;margin:0}.intro-lead{font-size:16px;line-height:2.1;color:#3e5c4f;margin-bottom:20px}.note{padding:13px 17px;background:#f2f5ec;border-left:3px solid #d6b647;color:#556957;font-size:13px;margin:0}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:60px}.pillars article{min-height:270px;padding:28px;border:1px solid #d9e4da;border-radius:14px;background:#fff}.pillars article:nth-child(2){background:#eff7f6;border-color:#d3e5e3}.pillars article:nth-child(3){background:#f7f6e9;border-color:#e3e3cb}.pillar-no{font-size:10px;letter-spacing:.13em;color:#526f60}.line-icon{width:44px;height:44px;display:grid;place-items:center;background:#e9f1e7;border-radius:50%;margin:24px 0 15px;font:600 19px var(--serif);color:var(--fern)}.pillars article:nth-child(2) .line-icon{background:#dceeed;color:var(--river)}.pillars article:nth-child(3) .line-icon{background:#f3e9bc;color:#846a21}.pillars h3{font:700 21px var(--serif);margin:0 0 12px}.pillars p{font-size:14px;line-height:1.9;color:var(--muted);margin:0}
.outline{background:var(--mint)}.outline-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:35px}.outline-head h2{font-size:clamp(36px,4vw,52px)}.outline-head p{font-size:14px;color:var(--muted);margin:0}.facts{display:grid;grid-template-columns:repeat(4,1fr);background:#ffffffa3;border:1px solid #cbded3;border-radius:12px}.facts>div{padding:24px 20px 28px;min-height:155px}.facts>div+div{border-left:1px solid #cbded3}.facts span{display:block;color:#526f60;font-size:10px;letter-spacing:.13em;margin-bottom:14px}.facts b{display:block;font:600 clamp(20px,2vw,26px)/1.6 var(--serif);color:var(--ink);margin-bottom:5px}.facts small{font-size:12px;color:var(--muted)}.school-area{margin-top:68px;display:grid;grid-template-columns:.62fr 1fr;gap:10px 6vw}.school-heading{grid-row:span 2;display:flex;gap:16px}.gold-rule{width:3px;background:var(--gold);height:74px;margin-top:7px}.school-heading h3{font:700 29px var(--serif);margin:0}.eyebrow.dark{margin:0 0 10px;color:var(--river)}.school-note{font-size:13px;color:var(--muted);max-width:570px;margin:0 0 8px}.school-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}.school-card{background:#fff;border:1px solid #c4dace;border-radius:12px;padding:22px;transition:border-color .2s,transform .2s;box-shadow:0 7px 24px #244c3c07}.school-card:hover{border-color:var(--fern);transform:translateY(-3px)}.school-place{font:10px var(--sans);letter-spacing:.14em;color:var(--river)}.school-card h4{font:600 19px/1.6 var(--serif);margin:10px 0 2px}.school-card p{font-size:13px;color:#60776b;margin:0}.external{display:block;font-size:10px;letter-spacing:.1em;color:#3d7060;margin-top:17px}
.experience{display:grid;grid-template-columns:1fr 1fr;background:#f1f5e8;min-height:495px}.experience-art{background:url("../assets/nz-waikato-bright.webp") 86% center/cover no-repeat;position:relative}.experience-art::after{content:"KARUIZAWA → NEW ZEALAND";position:absolute;left:25px;bottom:25px;color:var(--fern);font:600 10px var(--sans);letter-spacing:.14em;background:#fbfaf4ed;border-radius:5px;padding:8px 12px}.experience-copy{padding:75px clamp(30px,6vw,95px);align-self:center}.experience-copy h2,.easter h2{font:700 clamp(32px,3.6vw,47px)/1.6 var(--serif);margin:0 0 21px}.experience-copy>p:not(.eyebrow){font-size:15px;color:#4d6755;line-height:2}.text-link{display:inline-block;margin-top:10px;border-bottom:1px solid #9cae7c;padding-bottom:4px;font-size:13px;color:var(--fern)}
.budget{background:#eef7fa}.budget-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:7vw;align-items:start}.budget h2{font-size:clamp(36px,4vw,52px);margin-bottom:22px}.budget-grid>div:first-child>p:last-child{font-size:15px;color:#556c67}.budget-card{background:white;border:1px solid #d2e3e2;border-top:4px solid #71a7a4;border-radius:14px;padding:29px 30px 26px;box-shadow:0 15px 45px #215c6610}.estimate-label{display:flex;justify-content:space-between;gap:10px;align-items:center;color:#466d67;font-size:14px}.estimate-label small{font-size:12px;color:var(--muted)}.budget-card>strong{display:block;font:700 clamp(25px,2.7vw,37px)/1.6 var(--serif);margin:12px 0 7px;letter-spacing:-.04em;color:var(--river)}.budget-card>strong i{font-style:normal;color:#60776b}.estimate-note{color:#60766e;font-size:13px;line-height:1.9;margin-bottom:23px}.cost-lines{border-top:1px solid #d5e3df}.cost-lines div{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid #e1eae6;font-size:12px}.cost-lines span{color:#537164}.cost-lines b{white-space:nowrap;font-weight:600;color:#294f42}.smallprint{font-size:12px;line-height:1.95;color:#5d756b;margin:18px 0 0}.sources{border-top:1px solid #cfdfda;margin-top:34px;padding-top:19px;display:flex;gap:15px 24px;align-items:center;flex-wrap:wrap;font-size:12px}.sources>span{font-weight:600;color:#5c766c}.sources a{color:#246771;text-decoration:underline;text-underline-offset:4px}
.easter{background:#fff3c9;display:grid;grid-template-columns:185px 1fr;gap:4vw;align-items:center;padding:67px clamp(24px,12vw,180px);border-top:1px solid #eee2b7;border-bottom:1px solid #eee2b7}.easter-date{border-right:1px solid #dacf9f;display:flex;flex-direction:column;color:#647547;line-height:1.4}.easter-date span{font-size:12px;letter-spacing:.16em}.easter-date b{font:700 29px var(--serif);margin:8px 0;color:#365139}.easter-date small{font-size:10px;letter-spacing:.12em;color:#6b795c}.easter .eyebrow{color:#786922}.easter h2{font-size:clamp(29px,3vw,40px);color:#425633}.easter>div:last-child>p:not(.eyebrow){color:#62704d;font-size:14px;max-width:760px}.easter a{color:#416d50;font-size:12px;text-decoration:underline;text-underline-offset:4px}
.open-items{background:var(--paper)}.open-items h2{font-size:clamp(32px,4vw,48px);margin-bottom:38px}.open-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #cfddd1}.open-grid>div{padding:24px 22px 20px 0}.open-grid>div+div{border-left:1px solid #cfddd1;padding-left:22px}.open-grid span{display:block;color:#826719;font:12px var(--sans);margin-bottom:16px}.open-grid b{font:600 18px var(--serif)}.open-grid p{font-size:13px;color:var(--muted);margin:10px 0 0}
.contact{text-align:center;position:relative;overflow:hidden;background:linear-gradient(125deg,var(--sky),var(--mint));border-top:3px solid var(--gold);padding:87px 24px}.contact::before,.contact::after{content:"";position:absolute;width:300px;height:300px;border:1px solid #abcaba66;border-radius:50%;pointer-events:none}.contact::before{left:-160px;top:-150px}.contact::after{right:-180px;bottom:-170px;width:420px;height:420px}.contact h2{font:700 clamp(42px,5vw,61px)/1.45 var(--serif);margin:0 0 18px}.contact>p:not(.eyebrow){max-width:650px;color:#4c6c60;font-size:15px;margin:0 auto 24px}.button.light{margin:4px auto 20px;min-width:220px;justify-content:center}.contact small{display:block;color:#5e786c;font-size:12px}
footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:32px clamp(20px,4.5vw,68px);background:#f3f7ee;border-top:1px solid #cbdccf}footer .brand strong{font-size:12px}footer .brand small{font-size:7px}footer .brand-mark{width:34px;height:34px;font-size:17px}footer p,footer .back{color:#526f60;font-size:10px;letter-spacing:.04em;margin:0}footer .back{text-decoration:underline;text-underline-offset:4px}
@media(max-width:1180px){
 .site-header{padding:0 25px}.brand strong{font-size:13px}.brand small{font-size:7px}nav{gap:15px;font-size:11px}.intro-grid,.budget-grid{gap:5vw}.pillars{gap:20px}.pillars article{padding:24px}.school-area{grid-template-columns:.55fr 1fr}.school-cards{grid-template-columns:1fr}
}
@media(max-width:1050px){
 .menu-button{display:block}nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--paper);padding:25px;flex-direction:column;align-items:flex-start;border-bottom:1px solid #cbdcd2;box-shadow:0 15px 20px #173f3508}nav.open{display:flex}.site-header nav{font-size:14px;gap:17px}.head-tools{margin-left:auto}.hero-content{width:63%}.hero h1{font-size:58px}.hero-copy{font-size:16px}.experience-copy{padding:55px 35px}
}
@media(max-width:760px){
 html{scroll-padding-top:85px}.site-header{height:72px;padding:0 20px;gap:12px}.brand-mark{width:36px;height:36px;font-size:18px}.brand strong{font-size:12px}.brand small{display:none}nav{top:72px}
 .hero{min-height:0;display:flex;flex-direction:column;align-items:stretch;background:#f6faf3}.hero-content{order:1;width:auto;margin:0;padding:43px 24px 34px}.hero-art{order:2;position:relative;inset:auto;width:100%;height:270px;background-position:78% center}.hero-shade,.hero-foot{display:none}.hero h1{font-size:clamp(44px,9vw,61px)}.hero-copy{font-size:16px;max-width:520px}.hero .eyebrow{font-size:10px}.route{font-size:9px;margin-bottom:20px}.route i{width:30px}.status{font-size:12px;margin-bottom:23px}
 .section{padding:68px 24px}.section-index{margin-bottom:30px}.intro-grid,.budget-grid{grid-template-columns:1fr;gap:26px}.intro h2{font-size:40px}.intro-lead{font-size:15px}.pillars{grid-template-columns:1fr;gap:17px;margin-top:35px}.pillars article{padding:25px;min-height:0}.line-icon{margin:15px 0 12px}.pillars p{max-width:560px}
 .outline-head{display:block}.outline-head h2{font-size:38px}.outline-head p{margin-top:10px}.facts{grid-template-columns:1fr 1fr}.facts>div{min-height:142px;padding:20px 17px}.facts>div:nth-child(3){border-left:0;border-top:1px solid #cbded3}.facts>div:nth-child(4){border-top:1px solid #cbded3}.facts b{font-size:21px}.facts small{font-size:12px}
 .school-area{grid-template-columns:1fr;gap:17px;margin-top:43px}.school-heading{grid-row:auto}.school-note{margin:0}.school-cards{grid-template-columns:1fr 1fr}.school-card{padding:20px}.school-card h4{font-size:17px}.experience{grid-template-columns:1fr}.experience-art{min-height:280px}.experience-copy{padding:48px 24px}.experience-copy h2{font-size:36px}.experience-copy>p:not(.eyebrow){font-size:15px}
 .budget-card{padding:24px 20px}.budget-card>strong{font-size:29px}.estimate-label{align-items:flex-start;flex-direction:column;gap:3px}.cost-lines div{font-size:12px}.smallprint{font-size:12px}.easter{grid-template-columns:1fr;padding:48px 24px;gap:24px}.easter-date{border-right:0;border-bottom:1px solid #dacf9f;padding-bottom:20px}.easter h2{font-size:31px}.easter>div:last-child>p:not(.eyebrow){font-size:14px}
 .open-items h2{font-size:34px}.open-grid{grid-template-columns:1fr 1fr}.open-grid>div{padding:20px 15px 20px 0}.open-grid>div+div{padding-left:17px}.open-grid>div:nth-child(3){border-left:0;border-top:1px solid #cfddd1}.open-grid>div:nth-child(4){border-top:1px solid #cfddd1}.contact{padding:64px 24px}footer{flex-wrap:wrap;justify-content:flex-start}footer p{order:3;width:100%}
}
@media(max-width:520px){
 .school-cards{grid-template-columns:1fr}.hero-art{height:235px}.cost-lines div{display:block}.cost-lines b{display:block;margin-top:5px}.budget-card>strong{font-size:26px}.hero h1{font-size:46px}html[lang="en"] .hero h1{font-size:41px}
}
@media(max-width:380px){
 .site-header{padding:0 15px}.brand{gap:9px}.brand strong{font-size:11px}.lang-button,.menu-button{font-size:10px;padding:8px}.hero-content,.section{padding-left:20px;padding-right:20px}.hero h1{font-size:42px}.facts>div{padding:18px 12px}.facts b{font-size:18px}.budget-card>strong{font-size:23px}.contact h2{font-size:40px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.school-card{transition:none}}

.intro h2{font-size:clamp(34px,3.3vw,47px)}
@media(max-width:760px){.intro h2{font-size:34px}}

/* Chinese language control and readable mobile header. */
.zh-button[aria-pressed="true"]{background:var(--fern);border-color:var(--fern);color:white}
.head-tools{flex-shrink:0}
html[lang="zh-Hans"]{--serif:"Noto Serif SC","Microsoft YaHei","PingFang SC",serif;--sans:"Noto Sans SC","Microsoft YaHei","PingFang SC",sans-serif}
html[lang="zh-Hans"] .experience-art::after{content:"轻井泽 → 新西兰"}
@media(max-width:760px){.site-header>.brand{min-width:0}.site-header>.brand strong{max-width:130px;overflow-wrap:anywhere}.site-header>.brand .brand-mark{flex-shrink:0}}
@media(max-width:520px){
 .site-header{padding:0 14px;gap:7px}.site-header>.brand{gap:8px}
 .site-header>.brand .brand-mark{width:32px;height:32px;font-size:17px}
 .site-header>.brand strong{max-width:105px;font-size:11px;line-height:1.4}
 .head-tools{gap:5px}.lang-button,.menu-button{padding:0 7px;min-width:36px;min-height:36px;font-size:11px;white-space:nowrap}
}
@media(max-width:380px){.open-grid{grid-template-columns:1fr}.open-grid>div{padding-right:0}.open-grid>div+div{border-left:0;border-top:1px solid #cfddd1;padding-left:0}}

@media(min-width:361px) and (max-width:520px){.site-header>.brand strong{max-width:130px;font-size:10.5px}}
