

:root { --ink:#0e252e; --sky:#5eb2d3; --sky-pale:#e9f7fc; --leaf:#78b98b; --leaf-pale:#eef8e9; --coral:#ef8766; --coral-pale:#fff0eb; --cream:#fffdf7; --yellow:#f5d978; --line:#dbe8df;  --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}.nav{align-items:center;display:flex;gap:22px}.nav a{font-size:12px;font-weight:700}.nav a:hover{color:var(--sky)}.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:880px}.hero h1,.hero p:not(.eyebrow){text-shadow:0 0 14px var(--cream),0 0 14px var(--cream),0 1px 3px var(--cream)}.hero-emphasis{color:var(--coral);font-weight:700}.hero h1 span:not(.w){color:var(--sky)}.hero p:not(.eyebrow){font-size:16px;max-width:530px}.hero-bubble{background:var(--coral-pale);border-radius:50%;bottom:35px;display:block;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:" →"}.label{background:var(--yellow);border-radius:999px;display:inline-block;font-family:var(--mono);font-size:10px;padding:4px 10px}.activity-grid{display:grid;gap:22px;grid-template-columns:repeat(3,1fr)}.staff-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 .footer-address{color:#b9d2da;font-size:13px;margin-top:20px}.footer-contact-links{display:flex;flex-direction:column;gap:2px}.footer-fees{border-radius:10px;display:block;margin-top:18px;margin-left:-10px;padding:8px 10px;text-decoration:none;transition:background-color .2s}.footer-fees:hover{background-color:rgba(255,255,255,.06)}.footer-fees-title{color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.1em;margin:0 0 8px}.footer-fees p{color:#b9d2da;font-size:13px;line-height:1.7;margin:0 0 6px}.footer-fees small{color:#6f92a0;display:block;font-size:10px;line-height:1.5}.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%}.menu-button{display:block}.hero{min-height:590px}.hero-content{padding:112px 24px 70px}.section{padding:76px 24px}.detail-grid,.form-layout{gap:35px;grid-template-columns:1fr}.activity-grid,.school-cards,.steps,.staff-grid{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}.hero{min-height:560px}.hero img{object-position:65% center}.hero h1{font-size:29px}.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,.staff-grid{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(8,minmax(72px,1fr));max-width:800px;margin-left:auto}
.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>article>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}
.weekend-fees{margin-top:40px}
.weekend-fees-note{color:#53727d;font-size:13px;margin:16px 0 0}
@media(max-width:560px){.weekend-fees{margin-top:28px}}
.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}

/* Nature club (旧: Sunday open day) */
.hero-open-day-link{border-bottom:1px solid rgba(14,37,46,.35);color:var(--ink);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{color:var(--coral);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}
/* Nature club wooden sign title */
.section-heading .nature-sign{background:repeating-linear-gradient(176deg,rgba(255,255,255,0) 0 9px,rgba(60,32,14,.16) 9px 11px,rgba(255,255,255,0) 11px 23px,rgba(255,236,200,.08) 23px 25px),linear-gradient(180deg,#9a6a40,#7a5030 55%,#6a4428);border-radius:14px 22px 16px 26px / 22px 14px 26px 16px;box-shadow:0 3px 0 #50331d,6px 9px 0 rgba(80,51,29,.16);color:#fff6e2;display:inline-flex;flex-direction:column;font-size:clamp(34px,4.8vw,58px);letter-spacing:.1em;line-height:1.25;margin:6px 0 0;padding:20px 44px 24px;position:relative;text-shadow:0 2px 0 rgba(58,34,16,.55);transform:rotate(-1.5deg)}
.nature-sign:before,.nature-sign:after{background:radial-gradient(circle at 35% 35%,#e7dccb,#8f7f6b 70%);border-radius:50%;content:"";height:10px;position:absolute;top:14px;width:10px}
.nature-sign:before{left:14px}.nature-sign:after{right:14px}
.nature-sign-sub{color:#f5d978;font-size:.34em;letter-spacing:.14em;margin-bottom:4px}
.nature-sign-main{white-space:nowrap}
.section-heading .nature-catch{color:var(--ink);font-size:clamp(20px,2.2vw,26px);font-weight:700;letter-spacing:.07em;margin:26px 0 10px;max-width:none}
@media(max-width:560px){.section-heading .nature-sign{font-size:clamp(25px,8vw,34px);letter-spacing:.06em;padding:16px 26px 19px}.nature-sign:before,.nature-sign:after{height:8px;top:10px;width:8px}.nature-sign:before{left:10px}.nature-sign:after{right:10px}.section-heading .nature-catch{font-size:18px;margin-top:20px}}
.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)}}
.instagram-dots{display:none}
@media(max-width:768px){.instagram-marquee{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding-bottom:6px}.instagram-track{animation:none!important;transform:none!important;width:max-content!important}.instagram-group[aria-hidden="true"]{display:none}.instagram-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}.instagram-dot{width:7px;height:7px;border-radius:50%;background:var(--line);transition:background .25s ease,transform .25s ease}.instagram-dot.is-active{background:var(--coral);transform:scale(1.3)}}
@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}}
@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}}

/* 日本語見出しの自然な改行制御：BudouXの文節スパン(.w)をinline-block化し文節内での改行を全ブラウザで禁止（Safariはkeep-all非対応のため） */
h1 .w,h2 .w,h3 .w{display:inline-block}
h1,h2,h3{overflow-wrap:anywhere}
@media(max-width:560px){h2 br{display:none}h1,h2{letter-spacing:.02em}}

/* Home headings retain their desktop rhythm, then reflow by phrase on smaller screens. */
.home-page h1,.home-page h2{word-break:normal}
@supports (text-wrap:balance){.home-page h1,.home-page h2{text-wrap:balance}}
@media(max-width:760px){.home-page .responsive-break{display:none}}
@media(min-width:761px){.mobile-only-break{display:none}}

/* Staff page */
.staff-photo-pending{align-items:center;background:var(--sky-pale);color:#58717b;display:flex;font-size:13px;justify-content:center;min-height:220px;padding:24px;text-align:center}

.staff-card{background:#fff;border-radius:26px;padding:28px 24px;text-align:center}
.staff-photo{align-items:center;background:var(--sky-pale);border-radius:63% 37% 30% 70%/50% 45% 55% 50%;display:flex;height:120px;justify-content:center;margin:0 auto 16px;position:relative;width:120px}.staff-card:nth-child(2) .staff-photo{border-radius:37% 63% 70% 30%/45% 50% 50% 55%}.staff-card:nth-child(3) .staff-photo{border-radius:55% 45% 40% 60%/60% 35% 65% 40%}
.staff-photo i{color:var(--sky);height:48px;stroke-width:1.5;width:48px}
.staff-role{color:var(--sky);font-family:var(--mono);font-size:11px;letter-spacing:.05em;margin:0}
.staff-card h3{font-size:19px;margin:6px 0 0}
.staff-info{border-top:1px solid var(--line);color:#58717b;font-size:12px;line-height:1.9;margin-top:14px;padding-top:14px;text-align:left}
.staff-info p{margin:0}

/* Staff message modal */
.staff-msg-btn{align-items:center;background:#fff;border:0;border-radius:999px;bottom:-2px;box-shadow:0 4px 10px rgba(14,37,46,.18);color:var(--sky);cursor:pointer;display:flex;font-family:var(--mono);font-size:9px;gap:4px;padding:6px 11px;position:absolute;right:-6px}
.staff-msg-btn i{height:12px;width:12px}
.staff-modal{align-items:center;display:none;inset:0;justify-content:center;padding:20px;position:fixed;z-index:200}
.staff-modal.open{display:flex}
.staff-modal-overlay{background:rgba(14,37,46,.55);inset:0;position:absolute}
.staff-modal-box{background:#fff;border-radius:26px;max-width:360px;padding:36px 28px 30px;position:relative;text-align:center;width:100%}
.staff-modal-close{align-items:center;background:var(--sky-pale);border:0;border-radius:50%;color:var(--ink);cursor:pointer;display:flex;height:32px;justify-content:center;position:absolute;right:14px;top:14px;width:32px}
.staff-modal-photo{align-items:center;background:var(--sky-pale);border-radius:63% 37% 30% 70%/50% 45% 55% 50%;display:flex;height:96px;justify-content:center;margin:0 auto 14px;width:96px}
.staff-modal-photo i{color:var(--sky);height:40px;width:40px}
.staff-modal-role{color:var(--sky);font-family:var(--mono);font-size:11px;letter-spacing:.05em;margin:0}
.staff-modal-name{font-size:19px;margin:6px 0 16px}
.staff-modal-msg{color:#48616b;font-size:14px;line-height:1.85;margin:0}
.staff-grid-2{grid-template-columns:repeat(2,minmax(0,360px));justify-content:center}@media(max-width:560px){.staff-grid-2{grid-template-columns:1fr}}
.fee-block{margin-top:26px}.fee-block h3{font-size:18px;margin:0 0 4px}.fee-block dt small{color:#53727d;font-size:12px;font-weight:500}

/* Nature club photos */
.nature-photos{display:grid;gap:18px;grid-template-columns:repeat(3,1fr);margin:0 0 34px}
.nature-photos img{aspect-ratio:4/3;border-radius:24px;object-fit:cover;width:100%}
@media(max-width:600px){.nature-photos{gap:10px;grid-template-columns:1fr 1fr}.nature-photos img{border-radius:16px}.nature-photos img:first-child{grid-column:1/-1}}

/* Staff: goat card */
.staff-photo-img{overflow:visible}
.staff-photo-img img{border-radius:inherit;height:100%;inset:0;object-fit:cover;object-position:45% 28%;position:absolute;width:100%}
.staff-info-voice p{margin:0 0 4px}

.staff-modal-photo{overflow:hidden}
.staff-modal-photo img{height:100%;object-fit:cover;object-position:45% 28%;width:100%}
.staff-photo-img img{object-position:50% 40%}

/* Staff photo size */
.staff-photo{height:170px;width:170px;margin-bottom:20px}
.staff-modal-photo{height:120px;width:120px}
@media(max-width:560px){.staff-photo{height:150px;width:150px}}

/* Instagram band: 投稿数が増えたぶん、流れる速さを保つ */
.instagram-track{animation-duration:172s}

/* Nature photos: 2枚・4枚の並び */
.nature-photos-wrap{margin-top:44px}
.nature-photos-2{grid-template-columns:repeat(2,1fr);margin:0 auto;max-width:900px}
.nature-photos-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:600px){.nature-photos-2,.nature-photos-4{grid-template-columns:1fr 1fr}.nature-photos-2 img:first-child,.nature-photos-4 img:first-child{grid-column:auto}}
/* 404: つむぎ */
.notfound-goat{margin-bottom:34px;text-align:center}
.notfound-goat img{border-radius:63% 37% 30% 70%/50% 45% 55% 50%;height:200px;margin:0 auto 14px;object-fit:cover;width:200px}
.notfound-goat p{color:#58717b;font-size:15px;margin:0}

/* Gallery */
.gallery-grid{display:grid;gap:14px;grid-template-columns:repeat(4,1fr)}
.gallery-grid a{border-radius:18px;display:block;overflow:hidden}
.gallery-grid img{aspect-ratio:4/3;display:block;object-fit:cover;transition:transform .35s;width:100%}
.gallery-grid a:hover img{transform:scale(1.05)}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(3,1fr);gap:10px}}
@media(max-width:600px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px}.gallery-grid a{border-radius:12px}}
.lightbox{align-items:center;background:rgba(14,37,46,.88);display:none;inset:0;justify-content:center;padding:20px;position:fixed;z-index:300}
.lightbox.open{display:flex}
.lightbox img{border-radius:14px;max-height:86vh;max-width:min(92vw,1100px);object-fit:contain}
.lightbox button{background:rgba(255,255,255,.92);border:0;border-radius:50%;color:#224754;cursor:pointer;font-size:26px;height:44px;line-height:1;position:absolute;width:44px}
.lightbox-close{right:16px;top:16px}
.lightbox-prev{left:14px;top:50%;transform:translateY(-50%)}
.lightbox-next{right:14px;top:50%;transform:translateY(-50%)}

/* Sub-nav: スマホは折り返して全項目を表示 */
@media(max-width:600px){.sub-nav .container{flex-wrap:wrap;gap:8px 20px;overflow:visible;padding:14px 24px}.sub-nav a{flex:0 0 auto;font-size:12.5px;padding:3px 0}}

/* Gallery v3: 高さを揃えたタイル。横長の2枚は2列分の幅で表示 */
.gallery-grid{grid-auto-flow:dense}
.gallery-grid a{aspect-ratio:3/4;position:relative}
.gallery-grid a.wide{grid-column:span 2;aspect-ratio:3/2}
.gallery-grid img{aspect-ratio:auto;height:100%;position:absolute;inset:0;object-position:center 35%}

/* Nature club: 当日のご案内（利用時間・お支払い・持ち物） */
.weekend-info{margin:6px 0 28px}
.weekend-info>.en{color:#5a9d71;font-family:var(--mono);font-size:10px;letter-spacing:.08em;margin:0}
.weekend-info>h3{font-size:20px;margin:6px 0 16px}
.weekend-info-grid{display:grid;gap:16px;grid-template-columns:1fr 1fr}
.weekend-info-grid article{background:#fffefa;border:1px solid #d5e8ce;border-radius:8px;padding:24px 26px}
.weekend-info-grid article:nth-child(3){grid-column:1/-1}
.weekend-info-grid h4{font-size:18px;margin:8px 0 12px}
.weekend-info-grid p:last-child{color:#48616b;font-size:13px;line-height:1.9;margin:0}
.weekend-info-times{display:grid;gap:8px;list-style:none;margin:0 0 12px;padding:0}
.weekend-info-times li{align-items:baseline;border-bottom:1px dashed #c8dfc3;display:flex;gap:14px;justify-content:space-between;padding-bottom:7px}
.weekend-info-times strong{color:#3c6951;font-size:14px}
.weekend-info-times span{color:#93513e;font-family:var(--mono);font-size:17px;font-weight:700}
.weekend-info-items ul{display:grid;gap:9px 28px;grid-template-columns:1fr 1fr;list-style:none;margin:0;padding:0}
.weekend-info-items li{color:#3c6951;font-size:14px;font-weight:700;line-height:1.6;padding-left:22px;position:relative}
.weekend-info-items li:before{border:2px solid var(--leaf);border-radius:3px;content:"";height:11px;left:0;position:absolute;top:6px;width:11px}
.weekend-info-items small{color:#53727d;display:block;font-size:12px;font-weight:400;line-height:1.7;margin-top:2px}
@media(max-width:760px){.weekend-info-grid{grid-template-columns:1fr}.weekend-info-items ul{grid-template-columns:1fr}.weekend-info-grid article{padding:22px 20px}}
.weekend-info-times li:before{content:none;display:none}

/* Nature club: 活動内容（例）カード */
.weekend-regular .activity-title{font-size:20px;margin:6px 0 16px}
.weekend-regular .activity-cards{display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin:0 0 18px}
.weekend-regular .activity-cards li{align-items:center;background:#fffefa;border:1px solid #d5e8ce;border-radius:8px;display:flex;flex-direction:column;font-size:14px;gap:10px;justify-content:center;line-height:1.6;min-height:116px;padding:18px 12px;text-align:center}
.weekend-regular .activity-cards li:before{content:none;display:none}
.weekend-regular .activity-cards svg{color:var(--leaf);height:30px;stroke-width:2.25;width:30px}
@media(max-width:900px){.weekend-regular .activity-cards{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.weekend-regular .activity-cards{gap:8px;grid-template-columns:repeat(2,1fr)}.weekend-regular .activity-cards li{font-size:13px;min-height:104px;padding:16px 10px}}

/* 活動カレンダー（トップページ） */
.calendar-section{background:var(--cream)}
#kokonowa-calendar{--c-open:#fffdf7;--c-rest:#dbe9f3;--c-off:#fbe1dd;--c-nature:#eef6e2;--c-event:#fbe2b6;--c-off-ink:#a64640;--c-rest-ink:#3a6989;--c-leaf-ink:#4f8a5f;--c-event-ink:#905421;background:#fffefa;border:1px solid #e4ead9;border-radius:26px;padding:26px 24px 28px}
.cal-head{align-items:center;display:flex;gap:14px;justify-content:center;margin-bottom:20px}
.cal-title{align-items:baseline;background:linear-gradient(180deg,#ecd196,#dcb676);border-radius:22px 30px 24px 32px / 30px 22px 32px 24px;box-shadow:0 3px 0 rgba(120,84,40,.18),inset 0 0 0 2px rgba(255,255,255,.35);color:#2f5d3a;display:flex;gap:10px;margin:0;padding:8px 34px 10px}
.cal-title span{font-size:18px;font-weight:700}.cal-title strong{font-size:44px;line-height:1.1}.cal-title small{font-size:15px;font-weight:700}
.cal-nav{align-items:center;background:#fff;border:2px solid #cfe3cf;border-radius:50%;color:var(--c-leaf-ink);cursor:pointer;display:flex;height:42px;justify-content:center;width:42px}
.cal-nav:disabled{cursor:default;opacity:.3}
.cal-nav svg{height:22px;width:22px}
.cal-grid{display:grid;gap:6px;grid-template-columns:repeat(7,1fr)}
.cal-dow{border-radius:10px;color:#fff;font-weight:700;padding:5px 0;text-align:center;background:#507d54}
.cal-dow.dow-0{background:#b6554e}.cal-dow.dow-3{background:#4d7795}.cal-dow.dow-6{background:#6c7935}
.cal-cell{align-items:center;background:var(--c-open);border:1px solid #e7e2d2;border-radius:12px;display:flex;flex-direction:column;gap:3px;min-height:124px;padding:8px 6px 6px;position:relative;text-align:center}
.cal-cell.blank{background:none;border:0}
.cal-num{align-self:flex-start;font-size:18px;font-weight:700;line-height:1.1}
.cal-num em{background:#be504a;border-radius:9px;color:#fff;font-size:10px;font-style:normal;margin-left:4px;padding:1px 5px;vertical-align:2px}
.cal-plain,.cal-label,.cal-ev{font-size:clamp(12px,1.02vw,13px);line-height:1.45}
.cal-label{font-weight:700}
.cal-ev{font-size:clamp(12.5px,1.05vw,13.5px);font-weight:700}
.cal-icon{height:20px;margin-top:auto;width:20px}.cal-icon svg{height:20px;width:20px}
.cal-cell.open .cal-icon{color:var(--c-leaf-ink)}
.cal-cell.rest{background:var(--c-rest);color:var(--c-rest-ink)}
.cal-cell.off{background:var(--c-off);color:var(--c-off-ink)}
.cal-cell.nature{background:var(--c-nature);color:#587537}
.cal-cell.event{background:var(--c-event);border-color:#efc88a;color:var(--c-event-ink)}
.cal-cell.rest .cal-icon{color:#5b8db0}.cal-cell.off .cal-icon{color:#d98a82}.cal-cell.nature .cal-icon,.cal-cell.event .cal-icon{color:var(--c-event-ink)}

.cal-legend{display:grid;gap:12px 18px;grid-template-columns:repeat(4,1fr);list-style:none;margin:22px 0 0;padding:18px 0 0;border-top:1px dashed #cfe0c8}
.cal-legend li{align-items:flex-start;display:flex;font-size:13px;gap:9px;line-height:1.6}
.cal-legend svg{flex:0 0 26px;height:26px;width:26px}
.cal-legend strong{display:block;font-size:14px}
.cal-legend .open svg{color:var(--c-leaf-ink)}.cal-legend .rest svg{color:#5b8db0}.cal-legend .nature svg{color:var(--c-event-ink)}.cal-legend .off svg{color:#d98a82}
.cal-events{margin-top:22px}
.cal-events .en{color:#5a9d71;font-family:var(--mono);font-size:10px;letter-spacing:.08em;margin:0 0 10px}
.cal-events ul{display:grid;gap:12px;grid-template-columns:repeat(4,1fr);list-style:none;margin:0;padding:0}
.cal-events li{background:#fff8ea;border:1px solid #efd9aa;border-radius:12px;overflow:hidden}
.cal-events img{display:block;height:84px;object-fit:cover;width:100%}
.cal-events li>div{padding:10px 12px 12px}
.cal-events time{color:#a25e25;display:block;font-family:var(--mono);font-size:13px;font-weight:700}
.cal-events strong{display:block;font-size:14px;line-height:1.55}
.cal-events li span{color:#6b5a3e;display:block;font-size:13px}
.cal-note{color:#53727d;font-size:13px;margin:14px 0 0}
@media(max-width:900px){.cal-legend,.cal-events ul{grid-template-columns:repeat(2,1fr)}.cal-cell{min-height:96px}}
@media(max-width:640px){#kokonowa-calendar{border-radius:20px;padding:18px 10px 20px}.cal-title{padding:6px 18px 8px}.cal-title strong{font-size:34px}.cal-title span,.cal-title small{font-size:13px}.cal-grid{gap:4px}.cal-cell{border-radius:8px;gap:2px;min-height:58px;padding:5px 2px}.cal-num{align-self:center;font-size:14px}.cal-num em{display:none}.cal-plain,.cal-label,.cal-ev{display:none}.cal-icon,.cal-icon svg{height:15px;width:15px}.cal-dow{border-radius:7px;font-size:13px;padding:3px 0}.cal-legend{grid-template-columns:1fr}.cal-events ul{grid-template-columns:1fr}.cal-events li{align-items:stretch;display:flex}.cal-events img{height:auto;width:96px}}
.cal-title{white-space:nowrap}
@media(max-width:640px){.cal-title small{display:none}.cal-title{gap:6px;padding:6px 22px 8px}}

.cal-cta{justify-content:center;margin-top:28px}
.cal-legend strong a{border-bottom:2px solid #efc88a;color:inherit}
.cal-events .cal-events-title{color:#3c6951;font-size:18px;margin:0 0 12px}
@media(max-width:640px){.cal-events .cal-events-title{font-size:16px}}
.cal-label.novisit{color:#946853}
.cal-badge{display:none}
.cal-notice{align-items:flex-start;background:#f8efe6;border:1px solid #e6d2bd;border-radius:12px;color:#6f5440;display:flex;font-size:14px;gap:10px;line-height:1.75;margin:16px 0 0;padding:12px 16px}
.cal-notice svg{color:#a0705a;flex:0 0 22px;height:22px;margin-top:2px;width:22px}
.cal-notice strong{color:#8a4f34}
.cal-legend{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
@media(max-width:900px){.cal-legend{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.cal-legend{grid-template-columns:1fr}.cal-notice{font-size:13px;padding:11px 13px}}
@media(max-width:640px){.cal-badge{background:#966954;border-radius:6px;color:#fff;display:block;font-size:10px;font-weight:700;letter-spacing:-.02em;line-height:1.5;padding:0 2px;white-space:nowrap}}
.cal-pending{align-items:center;background:#f7fbf2;border:1px dashed #b9d4b0;border-radius:16px;color:#3c6951;display:flex;flex-direction:column;gap:6px;padding:34px 20px;text-align:center}
.cal-pending svg{color:var(--c-leaf-ink);height:34px;width:34px}
.cal-pending p{font-size:15px;line-height:1.9;margin:6px 0 4px}
.cal-pending strong{font-size:17px}
.cal-pending .buttons{justify-content:center;margin-top:8px}
@media(max-width:640px){.cal-pending{padding:28px 14px}.cal-pending p{font-size:14px}.cal-pending strong{font-size:16px}}
.cal-cell.today{border:2px solid #3f8f6b;box-shadow:0 0 0 3px rgba(63,143,107,.18)}
.cal-today{background:#388060;border-radius:8px;color:#fff;font-size:10px;font-weight:700;left:50%;letter-spacing:0;line-height:1.5;padding:0 6px;position:absolute;top:-8px;transform:translateX(-50%);white-space:nowrap}
@media(max-width:640px){.cal-today{font-size:10px;padding:0 5px;top:-8px}}
.sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}
.contact-calendar-link{justify-content:center;margin-top:30px}
@media(max-width:1000px){.cal-plain{display:none}}
.cal-hit{background:none;border:0;border-radius:inherit;cursor:pointer;inset:0;padding:0;position:absolute}
.cal-hit:focus-visible{outline:3px solid #388060;outline-offset:2px}
.cal-cell.event{transition:transform .15s}.cal-cell.event:hover{transform:translateY(-2px)}
.cal-events li{scroll-margin-top:130px;transition:box-shadow .3s}
.cal-events li.cal-hl{box-shadow:0 0 0 3px #e5a24a,0 6px 16px rgba(229,162,74,.35)}
.cal-events li:focus{outline:none}
.cal-hint{color:#905421;display:none;font-size:12.5px;margin:10px 2px 0;text-align:center}
@media(max-width:640px){.cal-hint{display:block}}
/* スマホ・タブレットのタップしやすさ：フッターのリンクを指で押せる高さ(約44px)にし、行間を再調整 */
@media(max-width:900px){
.foot-list li{margin:0}
.foot-list a{display:block;padding:12px 0}
.foot-title{margin-bottom:6px}
.footer-contact-links{gap:0}
.footer-contact-links .footer-phone{margin-top:0;padding:6px 0}
.footer-fees{margin-top:14px}
}
