@import url('https://fonts.googleapis.com/css2?family=DM+Mono&family=Zen+Maru+Gothic:wght@400;500;700&display=swap');

:root { --ink:#0e252e; --sky:#5eb2d3; --sky-pale:#e9f7fc; --leaf:#78b98b; --leaf-pale:#eef8e9; --coral:#ef8766; --coral-pale:#fff0eb; --cream:#fffdf7; --yellow:#f5d978; --line:#dbe8df; --wood:#805d43; --mono:"DM Mono",monospace; --round:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Kaku Gothic ProN",Meiryo,sans-serif; }
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--round);font-size:16px;letter-spacing:.04em;line-height:1.85} a{color:inherit;text-decoration:none} img{display:block;width:100%} button,input,textarea,select{font:inherit} .demo-note{background:var(--ink);color:#e8f8fd;font-size:10px;line-height:1.55;padding:7px 16px;text-align:center}.site-header{background:rgba(255,253,247,.97);border-bottom:1px solid #e3ede7;position:sticky;top:0;z-index:20}.head-inner{align-items:center;display:flex;height:82px;justify-content:space-between;margin:auto;max-width:1240px;padding:0 28px}.brand{align-items:center;display:flex;gap:11px}.brand-mark{align-items:center;background:var(--sky);border-radius:50%;color:white;display:grid;font-family:var(--mono);font-size:14px;height:39px;letter-spacing:0;place-items:center;width:39px}.brand-name{font-size:17px;font-weight:700;letter-spacing:.08em}.brand-sub{color:#6a8994;display:block;font-family:var(--mono);font-size:9px;letter-spacing:.04em;margin-top:1px}.nav{align-items:center;display:flex;gap:22px}.nav a{font-size:12px;font-weight:700}.nav a:hover{color:var(--sky)}.nav .contact-link{background:var(--coral);border-radius:999px;color:#fff;padding:10px 17px}.menu-button{background:var(--sky);border:0;border-radius:50%;color:#fff;cursor:pointer;display:none;height:42px;width:42px}.menu-button span,.menu-button:before,.menu-button:after{background:currentColor;content:"";display:block;height:2px;margin:4px auto;width:18px}
.hero{background:#dff3f9;min-height:640px;overflow:hidden;position:relative}.hero img{height:100%;inset:0;object-fit:cover;position:absolute}.hero:after{background:linear-gradient(90deg,rgba(255,253,247,.9),rgba(255,253,247,.52),rgba(255,253,247,.03));content:"";inset:0;position:absolute}.hero-content{margin:auto;max-width:1240px;padding:145px 28px 82px;position:relative;z-index:1}.eyebrow{color:var(--coral);font-family:var(--mono);font-size:11px;letter-spacing:.08em;margin:0}.hero h1{font-size:clamp(37px,5vw,63px);font-weight:700;letter-spacing:.08em;line-height:1.45;margin:14px 0;max-width:720px}.hero h1 span{color:var(--sky)}.hero p:not(.eyebrow){font-size:16px;max-width:530px}.hero-bubble{background:var(--coral-pale);border-radius:50%;bottom:35px;font-size:12px;height:112px;padding:30px 15px;position:absolute;right:8%;text-align:center;width:112px;z-index:1}.button{align-items:center;background:var(--coral);border-radius:999px;color:white;display:inline-flex;font-size:14px;font-weight:700;gap:12px;justify-content:center;min-height:54px;padding:12px 23px;transition:transform .2s,background .2s}.button:after{content:"→";font-family:var(--mono)}.button:hover{background:#df7254;transform:translateY(-2px)}.button.sky{background:var(--sky)}.button.sky:hover{background:#429bbd}.button.ghost{background:#fff;color:var(--coral);border:1px solid var(--coral)}.buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.section{padding:100px 28px}.pale-sky{background:var(--sky-pale)}.pale-leaf{background:var(--leaf-pale)}.pale-coral{background:var(--coral-pale)}.container{margin:auto;max-width:1140px}.section-heading{align-items:end;display:flex;justify-content:space-between;margin-bottom:42px}.section-heading .en{color:var(--sky);font-family:var(--mono);font-size:11px;letter-spacing:.1em;margin:0 0 8px}.section-heading h2{font-size:clamp(28px,3vw,39px);letter-spacing:.07em;line-height:1.45;margin:0}.section-heading p:last-child{color:#58717b;font-size:14px;max-width:600px}.arrow-link{border-bottom:1px solid var(--sky);color:#397c98;font-family:var(--mono);font-size:11px;padding-bottom:4px}.arrow-link:after{content:" →"}.about-grid{align-items:center;display:grid;gap:64px;grid-template-columns:1fr 1fr}.about-grid .image-wrap{border-radius:48% 48% 12px 12px;overflow:hidden}.about-grid img{aspect-ratio:1;object-fit:cover}.label{background:var(--yellow);border-radius:999px;display:inline-block;font-family:var(--mono);font-size:10px;padding:4px 10px}.lead{font-size:clamp(22px,2.4vw,31px);line-height:1.7;margin:16px 0}.copy{color:#48616b;font-size:14px}.activity-grid{display:grid;gap:22px;grid-template-columns:repeat(3,1fr)}.activity-card{background:#fff;border-radius:28px;overflow:hidden}.activity-card img{aspect-ratio:1.28;object-fit:cover}.activity-card-body{padding:22px}.activity-card h3{font-size:20px;margin:9px 0}.activity-card p{color:#58717b;font-size:13px;margin:0}.mini-tag{color:var(--leaf);font-family:var(--mono);font-size:10px}.school-cards{display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}.school-card{border:2px dashed #abd7e6;border-radius:26px;min-height:240px;padding:28px;position:relative}.school-card:nth-child(2){border-color:#b9ddb3}.school-card:nth-child(3){border-color:#f2bdaf}.school-card .number{color:var(--sky);font-family:var(--mono);font-size:12px}.school-card h3{font-size:24px;margin:17px 0 9px}.school-card p{color:#58717b;font-size:13px;margin:0}.steps{display:grid;gap:17px;grid-template-columns:repeat(3,1fr)}.step{background:#fff;border-radius:25px;padding:28px}.step-num{align-items:center;background:var(--sky-pale);border-radius:50%;color:var(--sky);display:grid;font-family:var(--mono);font-size:12px;height:38px;place-items:center;width:38px}.step h3{font-size:18px;margin:17px 0 8px}.step p{color:#58717b;font-size:13px;margin:0}.voice-card{background:#fff;border-radius:26px;display:grid;gap:28px;grid-template-columns:.9fr 1.1fr;overflow:hidden}.voice-card img{height:100%;object-fit:cover}.voice-body{padding:32px 36px 32px 0}.voice-body blockquote{font-size:22px;line-height:1.75;margin:14px 0}.voice-body p{color:#58717b;font-size:13px}.notice-list{border-top:1px solid var(--line)}.notice{border-bottom:1px solid var(--line);display:grid;gap:20px;grid-template-columns:95px 86px 1fr;padding:17px 0}.notice time{color:#6a8994;font-family:var(--mono);font-size:10px}.notice .kind{background:#fff;border-radius:999px;color:#397c98;font-size:10px;height:max-content;padding:3px 7px;text-align:center}.notice h3{font-size:14px;margin:0}.cta{background:var(--sky);border-radius:35px;color:#fff;overflow:hidden;padding:59px 65px;position:relative}.cta:after{border:1px solid rgba(255,255,255,.5);border-radius:50%;content:"";height:360px;position:absolute;right:-90px;top:-185px;width:360px}.cta .en{color:#d9f6ff;font-family:var(--mono);font-size:10px;position:relative;z-index:1}.cta h2{font-size:clamp(27px,3vw,38px);line-height:1.5;margin:9px 0;position:relative;z-index:1}.cta p{font-size:14px;max-width:570px;position:relative;z-index:1}.cta .button{background:#fff;color:var(--sky);position:relative;z-index:1}.page-hero{background:var(--sky-pale);padding:72px 28px}.page-hero .container{align-items:end;display:flex;justify-content:space-between}.breadcrumb{color:#6a8994;font-family:var(--mono);font-size:10px}.page-hero h1{font-size:clamp(34px,4vw,52px);letter-spacing:.08em;margin:12px 0 0}.page-hero .intro{color:#58717b;font-size:14px;max-width:370px}.sub-nav{background:#fff;border-bottom:1px solid var(--line)}.sub-nav .container{display:flex;gap:24px;overflow:auto;padding:13px 0}.sub-nav a{color:#53727d;flex:0 0 auto;font-size:12px}.sub-nav a:hover{color:var(--coral)}.detail-grid{align-items:start;display:grid;gap:60px;grid-template-columns:.8fr 1.2fr}.detail-grid img{aspect-ratio:4/3;border-radius:24px;object-fit:cover}.prose h2{font-size:31px;line-height:1.6;margin:0}.prose h3{border-left:3px solid var(--coral);font-size:19px;margin:34px 0 0;padding-left:12px}.prose p{color:#48616b;font-size:14px}.check-list{list-style:none;margin:20px 0;padding:0}.check-list li{border-bottom:1px solid var(--line);font-size:14px;padding:12px 0 12px 24px;position:relative}.check-list li:before{color:var(--leaf);content:"●";font-size:10px;left:2px;position:absolute}.faq{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-q{align-items:center;background:none;border:0;color:var(--ink);cursor:pointer;display:flex;font-weight:700;gap:15px;justify-content:space-between;padding:20px 0;text-align:left;width:100%}.faq-q:before{color:var(--coral);content:"Q";font-family:var(--mono);font-size:16px}.faq-q span{flex:1}.faq-a{color:#48616b;display:none;font-size:14px;padding:0 30px 21px 32px}.faq-item.open .faq-a{display:block}.faq-item.open .faq-q i{transform:rotate(45deg)}.form-layout{display:grid;gap:55px;grid-template-columns:.75fr 1.25fr}.form-aside{background:var(--leaf-pale);border-radius:26px;padding:34px}.form-aside h2{font-size:27px}.form-aside p{color:#48616b;font-size:14px}.form-note{background:var(--coral-pale);color:#a84e3a;font-size:12px;padding:12px 15px}.form-row{display:grid;gap:18px;grid-template-columns:1fr 1fr}.field{display:grid;gap:7px;margin:0 0 18px}.field label{font-size:13px;font-weight:700}.field em{color:var(--coral);font-size:10px;font-style:normal;margin-left:5px}.field input,.field textarea,.field select{background:#fff;border:1px solid #bcd3db;border-radius:10px;min-height:46px;padding:9px 11px}.field textarea{min-height:135px}.disabled-button{background:#aac1c8;border:0;border-radius:999px;color:#fff;cursor:not-allowed;padding:15px 24px}.site-footer{background:var(--ink);color:#d5edf4;margin-top:0}.footer-grid{display:grid;gap:42px;grid-template-columns:1.4fr .8fr .8fr;padding:59px 28px}.site-footer .brand-name{color:#fff}.site-footer .brand-sub{color:#9dbcc6}.site-footer .brand-mark{background:var(--coral)}.footer-address{color:#b9d2da;font-size:13px;margin-top:20px}.footer-phone{color:#fff;display:inline-block;font-family:var(--mono);font-size:17px;margin-top:14px}.foot-title{color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.1em;margin:0 0 13px}.foot-list{list-style:none;margin:0;padding:0}.foot-list li{margin:8px 0}.foot-list a{color:#b9d2da;font-size:13px}.foot-bottom{border-top:1px solid rgba(255,255,255,.18);color:#9dbcc6;display:flex;font-family:var(--mono);font-size:10px;justify-content:space-between;margin:0 28px;padding:17px 0}.footer-note{background:#07151b;color:#b9dce6;font-size:10px;padding:9px 16px;text-align:center}.reveal{opacity:0;transform:translateY(15px);transition:.55s}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){.head-inner{height:71px;padding:0 20px}.nav{background:#fffdf7;border-bottom:1px solid var(--line);box-shadow:0 14px 25px rgba(34,71,84,.12);display:none;flex-direction:column;gap:0;left:0;padding:10px 20px 20px;position:absolute;top:71px;width:100%}.nav.open{display:flex}.nav a{border-bottom:1px solid var(--line);font-size:14px;padding:13px 0;width:100%}.nav .contact-link{border:0;margin-top:10px;padding:13px;text-align:center}.menu-button{display:block}.hero{min-height:590px}.hero-content{padding:112px 24px 70px}.section{padding:76px 24px}.about-grid,.detail-grid,.form-layout{gap:35px;grid-template-columns:1fr}.activity-grid,.school-cards,.steps{grid-template-columns:1fr 1fr}.voice-card{grid-template-columns:1fr}.voice-card img{aspect-ratio:1.5}.voice-body{padding:0 28px 28px}.page-hero{padding:56px 24px}.page-hero .container{display:block}.page-hero .intro{margin-top:17px}.sub-nav .container{padding-left:24px;padding-right:24px}.footer-grid{grid-template-columns:1fr 1fr;padding:48px 24px}.footer-grid>:first-child{grid-column:1/-1}.foot-bottom{margin:0 24px}.cta{padding:47px 32px}}
@media(max-width:560px){body{font-size:15px}.demo-note,.footer-note{font-size:9px}.brand-name{font-size:14px}.brand-mark{height:33px;width:33px}.hero{min-height:560px}.hero img{object-position:65% center}.hero h1{font-size:35px}.hero p:not(.eyebrow){font-size:14px}.hero-bubble{bottom:19px;height:88px;padding:21px 7px;right:20px;width:88px}.section-heading{display:block;margin-bottom:30px}.section-heading .arrow-link{display:inline-block;margin-top:16px}.activity-grid,.school-cards,.steps,.form-row{grid-template-columns:1fr}.activity-card{border-radius:22px}.cta{border-radius:25px;padding:38px 24px}.cta:after{height:240px;right:-105px;top:-110px;width:240px}.buttons{display:grid}.button{width:100%}.notice{gap:8px 11px;grid-template-columns:89px 69px}.notice h3{font-size:12px;grid-column:1/-1}.footer-grid{grid-template-columns:1fr}.foot-bottom{display:block;line-height:1.8}.foot-bottom span{display:block}.voice-body blockquote{font-size:19px}}


/* Header icon navigation */
.head-inner{height:126px}
.nav-icon-menu{align-items:stretch;display:grid;gap:2px;grid-template-columns:repeat(6,minmax(82px,1fr));max-width:690px}
.nav-icon-menu .nav-icon-item{align-items:center;border-radius:14px;display:flex;flex-direction:column;gap:1px;justify-content:center;min-height:92px;padding:9px 5px;text-align:center;transition:background .2s,transform .2s}
.nav-icon-menu .nav-icon-item:hover{background:var(--sky-pale);color:var(--ink);transform:translateY(-2px)}
.nav-icon-menu .nav-icon-item svg{color:var(--sky);height:29px;stroke-width:2.25;width:29px}
.nav-icon-menu .nav-ja{color:var(--sky);font-size:10px;font-weight:700;letter-spacing:0;line-height:1.35;white-space:nowrap}
.nav-icon-menu .nav-en{color:#99aab0;font-family:var(--mono);font-size:8px;font-weight:500;letter-spacing:.03em;line-height:1.3}
.nav-icon-menu .nav-icon-contact svg,.nav-icon-menu .nav-icon-contact .nav-ja{color:var(--coral)}
@media(max-width:900px){.head-inner{height:71px}.nav-icon-menu{display:none;gap:9px;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;padding:14px 20px 22px}.nav-icon-menu.open{display:grid}.nav-icon-menu .nav-icon-item{background:#fff;border:1px solid var(--line);border-radius:15px;min-height:87px;padding:9px 6px;width:auto}.nav-icon-menu .nav-icon-item:hover{background:var(--sky-pale);transform:none}.nav-icon-menu .nav-icon-item svg{height:25px;width:25px}.nav-icon-menu .nav-ja{font-size:11px}.nav-icon-menu .nav-en{font-size:8px}}


/* Gentle foliage movement in the home hero */
.hero:after{z-index:0}
.hero-foliage{height:auto;left:auto;max-width:none;pointer-events:none;position:absolute;right:-2%;top:-2%;transform-origin:100% 0;width:min(124vw,1672px);will-change:transform;z-index:2;animation:foliage-breeze 8s ease-in-out infinite}
.hero-content,.hero-bubble{z-index:3}
@keyframes foliage-breeze{0%,100%{transform:translate3d(0,0,0) rotate(-.8deg)}50%{transform:translate3d(-4px,8px,0) rotate(1deg)}}
@media(max-width:900px){.hero-foliage{right:-350px;top:-10px;width:720px}}
@media(prefers-reduced-motion:reduce){.hero-foliage{animation:none}}

/* Override the generic hero image rules for the foliage overlay. */
.hero .hero-foliage{bottom:auto;clip-path:inset(0 0 38% 0);height:auto;inset:auto;left:auto;max-width:none;object-fit:contain;right:-2%;top:-2%;width:min(124vw,1672px)}
@media(max-width:900px){.hero .hero-foliage{bottom:auto;inset:auto;left:auto;right:-350px;top:-10px;width:720px}}

/* The five features are presented as one gentle, handwritten-style notebook. */
.features-section{background:#f4fbfc;overflow:hidden;position:relative}
.feature-notebook{background-color:#fffefa;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 45px,rgba(118,164,178,.18) 46px,transparent 47px);border:2px solid #5d6b62;border-radius:42px 56px 48px 64px / 58px 42px 64px 48px;box-shadow:7px 7px 0 rgba(93,107,98,.1),-2px -2px 0 rgba(93,107,98,.08);overflow:hidden;padding:14px 34px;position:relative}
.feature-notebook:before,.feature-notebook:after{border:3px solid var(--leaf);border-radius:100% 0 100% 0;content:"";height:13px;position:absolute;width:22px}
.feature-notebook:before{left:32px;top:18px;transform:rotate(-34deg)}
.feature-notebook:after{right:44px;top:29px;transform:rotate(42deg)}
.feature-entry{display:grid;gap:26px;grid-template-columns:76px 1fr;padding:39px 22px 34px;position:relative}
.feature-entry+.feature-entry{border-top:1px solid rgba(118,164,178,.34)}
.feature-number{align-items:center;background:var(--sky-pale);border:1px solid #c7e4ed;border-radius:50%;color:#4795b5;display:flex;font-family:var(--mono);font-size:14px;height:54px;justify-content:center;letter-spacing:0;width:54px}
.feature-kicker{color:#5a9d71;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.08em;margin:0 0 5px}
.feature-entry h3{font-size:25px;letter-spacing:.05em;line-height:1.5;margin:0 0 11px}
.feature-entry p{color:#405c64;font-size:14px;line-height:2;margin:0;max-width:735px}
.feature-points{display:flex;flex-wrap:wrap;gap:8px 12px;list-style:none;margin:16px 0;padding:0}
.feature-points li{background:rgba(238,248,233,.78);border-radius:999px;color:#47725b;font-size:12px;font-weight:700;padding:4px 12px}
.feature-close{font-weight:700}
.feature-definition{background:rgba(233,247,252,.8);border-left:3px solid var(--sky);font-size:12px!important;margin-top:16px!important;padding:10px 13px}
@media(max-width:560px){.feature-notebook{border-radius:30px 40px 34px 45px / 42px 30px 46px 34px;padding:7px 13px}.feature-notebook:before{left:17px}.feature-notebook:after{right:20px}.feature-entry{gap:13px;grid-template-columns:1fr;padding:31px 9px 27px}.feature-number{font-size:12px;height:43px;width:43px}.feature-entry h3{font-size:21px}.feature-entry p{font-size:13px}.feature-points{gap:7px;margin:13px 0}.feature-points li{font-size:11px}}

/* Align the notebook rules to the body copy, rather than treating them as a generic backdrop. */
.feature-notebook{background-image:none}
.feature-entry>div{--feature-rule-height:42px}
.feature-entry p:not(.feature-kicker):not(.feature-definition){background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 30px,rgba(118,164,178,.26) 31px,rgba(118,164,178,.26) 32px,transparent 33px,transparent var(--feature-rule-height));background-size:100% var(--feature-rule-height);line-height:var(--feature-rule-height)}
@media(max-width:560px){.feature-entry>div{--feature-rule-height:38px}.feature-entry p:not(.feature-kicker):not(.feature-definition){background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 27px,rgba(118,164,178,.26) 28px,rgba(118,164,178,.26) 29px,transparent 30px,transparent var(--feature-rule-height))}}

/* Brand artwork and the home-page notebook introduction. */
.site-header .brand-image{flex:0 0 104px;width:104px}
.site-header .brand-image img{height:102px;object-fit:contain;width:100%}
.home-intro{background:#f4fbfc;overflow:hidden;position:relative}
.intro-notebook{background:#fffefa;border:3px solid #566059;border-radius:48px 62px 54px 70px / 62px 48px 70px 56px;box-shadow:7px 7px 0 rgba(86,96,89,.1),-2px -2px 0 rgba(86,96,89,.08);margin:auto;max-width:1080px;padding:62px 12% 58px;position:relative}
.intro-notebook-copy{margin:auto;max-width:810px;position:relative;z-index:1}
.intro-notebook-copy>.en{color:#5a9d71;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;margin:0 0 9px}
.intro-notebook-copy h2{font-size:clamp(29px,3.6vw,46px);letter-spacing:.06em;line-height:1.45;margin:0 0 25px}
.intro-ruled-copy{--intro-rule-height:44px}
.intro-ruled-copy p{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,rgba(118,164,178,.25) 32px,rgba(118,164,178,.25) 33px,transparent 34px,transparent var(--intro-rule-height));background-size:100% var(--intro-rule-height);color:#405c64;font-size:15px;line-height:var(--intro-rule-height);margin:0}
.intro-ruled-copy p+p{margin-top:22px}
.intro-notebook .buttons{margin-top:30px}
.intro-sprig{border-left:5px solid #566059;height:76px;position:absolute;width:30px;z-index:2}
.intro-sprig:before{background:#566059;content:"";height:5px;left:-4px;position:absolute;top:13px;transform:rotate(42deg);transform-origin:left;width:46px}
.intro-sprig i{background:var(--leaf);border-radius:100% 0 100% 0;display:block;height:11px;position:absolute;width:20px}
.intro-sprig i:nth-child(1){left:22px;top:1px;transform:rotate(23deg)}
.intro-sprig i:nth-child(2){background:#36ae96;left:32px;top:22px;transform:rotate(78deg)}
.intro-sprig i:nth-child(3){background:#acd151;left:13px;top:38px;transform:rotate(148deg)}
.intro-sprig-left{left:-20px;top:120px;transform:rotate(-36deg)}
.intro-sprig-right{right:72px;top:-40px;transform:rotate(52deg)}
@media(max-width:900px){.site-header .brand-image{flex-basis:68px;width:68px}.site-header .brand-image img{height:66px}.intro-notebook{padding:52px 9%}.intro-sprig-left{left:-12px}.intro-sprig-right{right:40px}}
@media(max-width:560px){.intro-notebook{border-radius:33px 43px 38px 50px / 45px 33px 50px 38px;padding:42px 28px 38px}.intro-notebook-copy h2{font-size:27px;margin-bottom:20px}.intro-ruled-copy{--intro-rule-height:38px}.intro-ruled-copy p{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 27px,rgba(118,164,178,.25) 28px,rgba(118,164,178,.25) 29px,transparent 30px,transparent var(--intro-rule-height));font-size:13px;line-height:var(--intro-rule-height)}.intro-sprig{opacity:.75;transform:scale(.8)}.intro-sprig-left{left:-21px;top:96px;transform:rotate(-36deg) scale(.8)}.intro-sprig-right{right:18px;top:-37px;transform:rotate(52deg) scale(.8)}}

/* Keep the original activity image as the left half of the home introduction. */
.home-intro-grid{align-items:stretch;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.intro-photo{border-radius:48px 0 0 62px;min-height:608px;overflow:hidden}
.intro-photo img{height:100%;object-fit:cover;width:100%}
.home-intro-grid .intro-notebook{border-radius:0 62px 54px 0 / 0 48px 70px 0;margin:0;max-width:none}
@media(max-width:900px){.home-intro-grid{grid-template-columns:1fr}.intro-photo{border-radius:42px 42px 0 0;min-height:360px}.home-intro-grid .intro-notebook{border-radius:0 0 42px 42px / 0 0 50px 50px}}
@media(max-width:560px){.intro-photo{border-radius:30px 30px 0 0;min-height:255px}.home-intro-grid .intro-notebook{border-radius:0 0 33px 33px / 0 0 38px 38px}}

/* Let every feature read like handwriting placed directly on a ruled notebook line. */
.feature-notebook{padding:58px 10% 62px}
.feature-entry{--feature-rule-height:43px;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,rgba(118,164,178,.29) 32px,rgba(118,164,178,.29) 33px,transparent 34px,transparent var(--feature-rule-height));background-size:100% var(--feature-rule-height);gap:20px;grid-template-columns:66px 1fr;padding:0}
.feature-entry+.feature-entry{border-top:0;margin-top:43px}
.feature-entry>div{background:none}
.feature-number{align-items:flex-start;background:none;border:0;border-radius:0;color:#5a9d71;font-size:12px;height:auto;justify-content:flex-start;letter-spacing:.08em;padding-top:9px;width:auto}
.feature-kicker{display:none}
.feature-entry h3{font-size:22px;line-height:var(--feature-rule-height);margin:0}
.feature-entry p,.feature-entry p:not(.feature-kicker):not(.feature-definition){background-image:none!important;font-size:14px;line-height:var(--feature-rule-height);margin:0;max-width:none}
.feature-points{align-items:center;gap:0;line-height:var(--feature-rule-height);margin:0;min-height:var(--feature-rule-height)}
.feature-points li{background:none;border-radius:0;color:#405c64;font-size:14px;font-weight:500;line-height:var(--feature-rule-height);padding:0}
.feature-points li:not(:last-child):after{color:var(--leaf);content:" / ";font-family:var(--mono);padding:0 8px}
.feature-definition{background:none!important;border-left:0;font-size:12px!important;line-height:var(--feature-rule-height)!important;margin:0!important;padding:0}
@media(max-width:560px){.feature-notebook{padding:45px 8% 48px}.feature-entry{--feature-rule-height:38px;gap:8px;grid-template-columns:42px 1fr}.feature-entry+.feature-entry{margin-top:38px}.feature-number{font-size:10px;padding-top:8px}.feature-entry h3{font-size:19px}.feature-entry p,.feature-entry p:not(.feature-kicker):not(.feature-definition),.feature-points li{font-size:13px}.feature-points li:not(:last-child):after{padding:0 5px}.feature-definition{font-size:11px!important}}

.feature-entry>div{--feature-rule-height:43px}
@media(max-width:560px){.feature-entry>div{--feature-rule-height:38px}}

/* The supplied logo is also used in every footer. */
.site-footer .footer-brand-image{background:#fff;border-radius:14px;display:block;overflow:hidden;padding:7px;width:136px}
.site-footer .footer-brand-image img{display:block;height:auto;width:100%}
@media(max-width:560px){.site-footer .footer-brand-image{border-radius:11px;padding:5px;width:112px}}

/* Admission guide */
.nav-icon-menu{grid-template-columns:repeat(7,minmax(72px,1fr));max-width:760px}
.entry-page-hero{background:var(--leaf-pale)}
.entry-notebook{background:#fffefa;border:2px solid #5d6b62;border-radius:42px 56px 48px 64px / 58px 42px 64px 48px;box-shadow:7px 7px 0 rgba(93,107,98,.1),-2px -2px 0 rgba(93,107,98,.08);padding:56px 7%}
.entry-notebook>.en{color:#5a9d71;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;margin:0 0 9px}
.entry-notebook>h2{font-size:clamp(29px,3.4vw,43px);letter-spacing:.06em;line-height:1.45;margin:0 0 35px}
.entry-flow{display:grid;gap:0;grid-template-columns:repeat(3,1fr)}
.entry-flow article{border-left:1px solid var(--line);padding:5px 25px 8px}
.entry-flow article:first-child{border-left:0;padding-left:0}
.entry-flow article:last-child{padding-right:0}
.entry-flow span{color:var(--coral);font-family:var(--mono);font-size:12px}
.entry-flow h3{font-size:18px;margin:11px 0 8px}
.entry-flow p{color:#48616b;font-size:13px;line-height:1.9;margin:0}
.entry-time-grid{display:grid;gap:22px;grid-template-columns:repeat(2,1fr)}
.entry-time{align-items:center;background:#fff;border-radius:8px;display:flex;gap:20px;padding:30px 34px}
.entry-time svg{color:var(--sky);height:36px;width:36px}
.entry-time p{color:#53727d;font-size:14px;font-weight:700;margin:0}
.entry-time strong{font-family:var(--mono);font-size:22px;margin-left:auto}
.entry-fee-sheet{background:#fffefa;border:2px solid #5d6b62;border-radius:30px 42px 35px 48px / 42px 30px 48px 35px;box-shadow:6px 6px 0 rgba(93,107,98,.09);padding:26px 7% 30px}
.entry-fee-sheet dl{margin:0}
.entry-fee-sheet dl>div{align-items:center;border-bottom:1px solid rgba(118,164,178,.3);display:flex;justify-content:space-between;min-height:62px}
.entry-fee-sheet dt{font-size:15px;font-weight:700}
.entry-fee-sheet dd{color:#397c98;font-family:var(--mono);font-size:21px;font-weight:700;margin:0}
.entry-fee-sheet dd small{color:#53727d;font-family:var(--round);font-size:12px;font-weight:500}
.entry-source-note{background:var(--coral-pale);color:#93513e;font-size:12px;line-height:1.8;margin:24px 0 0;padding:12px 15px}
@media(max-width:900px){.nav-icon-menu{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.entry-flow{grid-template-columns:1fr}.entry-flow article,.entry-flow article:first-child,.entry-flow article:last-child{border-left:0;border-top:1px solid var(--line);padding:22px 0}.entry-flow article:first-child{border-top:0;padding-top:0}.entry-time{padding:25px 27px}}
@media(max-width:560px){.entry-notebook{border-radius:30px 40px 34px 45px / 42px 30px 46px 34px;padding:42px 28px}.entry-notebook>h2{font-size:27px;margin-bottom:27px}.entry-time-grid{grid-template-columns:1fr}.entry-time{gap:14px;padding:23px 21px}.entry-time strong{font-size:19px}.entry-fee-sheet{border-radius:24px 32px 28px 36px / 32px 24px 36px 28px;padding:18px 24px 24px}.entry-fee-sheet dl>div{min-height:56px}.entry-fee-sheet dt{font-size:13px}.entry-fee-sheet dd{font-size:18px}.entry-source-note{font-size:11px}}

/* The old house story is told in KOKONOWA's own voice. */
.owner-story{border-top:1px solid var(--line);margin:24px 0 20px;padding-top:20px}
.owner-story-label{color:#5a9d71!important;font-family:var(--mono);font-size:11px!important;font-weight:700;letter-spacing:.08em;margin:0 0 8px!important}
.owner-story-source{color:#6a8994!important;font-size:11px!important;margin-top:11px!important}
.footer-tagline{color:#c9e8d7;font-size:12px;font-weight:700;margin:13px 0 0}

/* Sunday open day */
.hero-open-day-link{border-bottom:1px solid rgba(255,255,255,.75);color:#fff;display:inline-flex;flex-direction:column;gap:3px;margin-top:21px;padding:0 0 7px;position:relative;z-index:3}
.hero-open-day-link:after{content:"→";font-family:var(--mono);position:absolute;right:0;top:7px}
.hero-open-day-link span{font-family:var(--mono);font-size:9px;letter-spacing:.06em}
.hero-open-day-link strong{font-size:13px;padding-right:24px}
.weekend-section{background:#f7fcf3}
.weekend-grid{display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}
.weekend-grid article{background:#fffefa;border:1px solid #d5e8ce;border-radius:8px;padding:29px 26px}
.weekend-label{color:#5a9d71;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.07em;margin:0}
.weekend-grid h3{font-size:20px;margin:10px 0}
.weekend-grid p:last-child{color:#48616b;font-size:13px;line-height:1.9;margin:0}
.weekend-grid strong{color:#93513e;display:block;font-size:11px;margin-top:8px}
.weekend-regular{border-bottom:1px solid #c8dfc3;border-top:1px solid #c8dfc3;margin-top:40px;padding:27px 0 31px}
.weekend-regular .en{color:#5a9d71;font-family:var(--mono);font-size:10px;letter-spacing:.08em;margin:0}
.weekend-regular ul{display:flex;flex-wrap:wrap;gap:8px 21px;list-style:none;margin:12px 0 14px;padding:0}
.weekend-regular li{color:#3c6951;font-size:14px;font-weight:700}
.weekend-regular li:before{color:var(--leaf);content:"●";font-size:9px;margin-right:7px}
.weekend-regular>p:not(.en){color:#48616b;font-size:14px;margin:0 0 20px}
@media(max-width:900px){.weekend-grid{grid-template-columns:1fr}.weekend-grid article{padding:26px 24px}}
@media(max-width:560px){.hero-open-day-link{margin-top:18px}.hero-open-day-link strong{font-size:12px}.weekend-grid{gap:12px}.weekend-grid h3{font-size:18px}.weekend-regular{margin-top:28px}.weekend-regular ul{gap:7px 15px}.weekend-regular li{font-size:13px}}

/* Lightweight, tiled SVG paper texture. Each fractal-noise tint stays below 5% opacity. */
:root{--texture-sky:url("assets/textures/facet-sky.png");--texture-leaf:url("assets/textures/facet-leaf.png");--texture-coral:url("assets/textures/facet-coral.png");--texture-cream:url("assets/textures/facet-cream.png")}
body{background-color:var(--cream);background-image:var(--texture-cream);background-repeat:repeat;background-size:400px 400px}
.pale-sky{background-color:var(--sky-pale);background-image:var(--texture-sky);background-repeat:repeat;background-size:400px 400px}
.pale-leaf,.weekend-section{background-color:var(--leaf-pale);background-image:var(--texture-leaf);background-repeat:repeat;background-size:400px 400px}
.pale-coral{background-color:var(--coral-pale);background-image:var(--texture-coral);background-repeat:repeat;background-size:400px 400px}
.features-section,.home-intro{background-image:var(--texture-sky);background-repeat:repeat;background-size:400px 400px}
@media(max-width:560px){body,.pale-sky,.pale-leaf,.pale-coral,.weekend-section,.features-section,.home-intro{background-size:150px 150px}}

/* Instagram-style post banner */
.instagram-section{background-color:var(--sky-pale);background-image:var(--texture-sky);background-repeat:repeat;background-size:400px 400px;overflow:hidden;padding:82px 0}
.instagram-heading{align-items:end;display:flex;justify-content:space-between;margin-bottom:31px;padding-left:28px;padding-right:28px}
.instagram-heading .en{color:#5a9d71;font-family:var(--mono);font-size:10px;letter-spacing:.08em;margin:0 0 5px}
.instagram-heading h2{font-size:clamp(30px,3.2vw,42px);letter-spacing:.04em;line-height:1;margin:0}
.instagram-heading>a{border-bottom:1px solid var(--sky);color:#397c98;font-family:var(--mono);font-size:12px;padding-bottom:4px}
.instagram-marquee{overflow:hidden;width:100%}
.instagram-track{animation:instagram-scroll 54s linear infinite;display:flex;min-width:max-content;width:max-content;will-change:transform}
.instagram-group{display:flex;flex:0 0 auto;gap:18px;padding-right:18px}
.insta-card{background:#fffefa;border-radius:8px;box-shadow:0 4px 14px rgba(72,97,107,.1);color:var(--ink);display:flex;flex:0 0 254px;flex-direction:column;overflow:hidden}
.insta-card:hover{color:var(--ink)}
.insta-card-label{color:#5a9d71;font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.07em;padding:11px 13px 8px}
.insta-card img{aspect-ratio:1/1;object-fit:cover;width:100%}
.insta-card strong{font-size:14px;line-height:1.55;min-height:64px;padding:12px 13px 14px}
.instagram-marquee:hover .instagram-track{animation-play-state:paused}
@keyframes instagram-scroll{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media(max-width:560px){.instagram-section{background-size:128px 128px;padding:64px 0}.instagram-heading{align-items:start;display:block;margin-bottom:24px;padding-left:24px;padding-right:24px}.instagram-heading>a{display:inline-block;margin-top:14px}.instagram-group{gap:12px;padding-right:12px}.insta-card{flex-basis:208px;scroll-snap-align:start}.insta-card strong{font-size:13px;min-height:59px}.instagram-marquee{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-bottom:6px}.instagram-track{animation:none!important;transform:none!important;width:max-content!important}.instagram-group[aria-hidden="true"]{display:none}}
@media(prefers-reduced-motion:reduce){.instagram-track{animation:none;transform:none}.instagram-group[aria-hidden="true"]{display:none}}

/* ---------- Mobile bottom CTA bar ---------- */
.mobile-cta{display:none}
@media(max-width:560px){
  body{padding-bottom:74px}
  .mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;box-shadow:0 -2px 14px rgba(14,37,46,.12)}
  .mobile-cta-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:60px;color:#fff;font-size:11px;font-weight:700;letter-spacing:.02em}
  .mobile-cta-item i{width:18px;height:18px}
  .mobile-cta-item:nth-child(1){background:var(--sky)}
  .mobile-cta-item:nth-child(2){background:var(--leaf)}
  .mobile-cta-item.mobile-cta-primary{background:var(--coral)}
}

/* Keep the three “For Everyone” choices clear against the paper texture. */
.school-card{background:#fff}

/* Separate the warm introduction from the sky-blue activity section. */
.home-intro{background-color:var(--cream);background-image:var(--texture-cream)}

/* Mobile repairs: keep notices readable, remove the home notebook shadow, and prevent timetable wrapping. */
.home-intro-grid .intro-notebook{box-shadow:none}
.entry-time{flex-wrap:nowrap;min-width:0}
.entry-time p,.entry-time strong{white-space:nowrap}
.entry-time svg{flex:0 0 auto}
@media(max-width:560px){.notice-list{overflow:visible;width:100%}.notice{display:block;min-width:0;padding:18px 0;width:100%}.notice time,.notice .kind{display:inline-block;vertical-align:middle}.notice .kind{margin-left:10px}.notice h3{display:block;font-size:14px;line-height:1.75;margin:9px 0 0;width:100%}.entry-time p{font-size:12px}.entry-time strong{font-size:18px;letter-spacing:0}}
