*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:#243047;background:#fff;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:18px;line-height:1.85;overflow-wrap:anywhere}a{color:inherit}img{max-width:100%;height:auto;display:block}h1,h2,h3,p{margin:0 0 1rem}h1,h2,h3{line-height:1.5}h1{font-size:clamp(2rem,4vw,3.6rem);letter-spacing:.04em}h1 span{display:block;font-size:.48em;margin-top:.3rem}h2{font-size:1.8rem}h3{font-size:1.25rem}a:focus-visible,summary:focus-visible{outline:3px solid #007fad;outline-offset:5px}.wrap{width:min(1100px,calc(100% - 64px));margin:auto}.header{border-bottom:1px solid #edf0f2;background:#fff}.header-inner{max-width:1280px;margin:auto;padding:22px 32px;display:flex;gap:26px;align-items:center}.brand{flex:1;min-width:180px;max-width:280px}.brand img{width:100%}.header nav{display:flex;gap:28px;white-space:nowrap}.header nav a{text-decoration:none;font-weight:bold;font-size:16px}.header-actions{margin-left:auto;display:flex;gap:12px}.button{min-height:50px;border-radius:30px;padding:11px 22px;text-decoration:none;text-align:center;font-weight:bold;display:inline-flex;justify-content:center;align-items:center;gap:8px;font-size:16px;line-height:1.55;border:2px solid transparent;transition:filter .2s}.button:hover{filter:brightness(.94)}.line{background:white;color:#00862e;border-color:#00b943}.line-icon{background:#06b83f;color:white;border-radius:50%;padding:4px;font-size:10px}.yellow{background:#ffdf2d;color:#383322}.pink{background:#df2468;color:white}.wide{display:flex;width:fit-content;margin:24px auto}.breadcrumb{font-size:14px;margin:24px 0;display:flex;gap:14px;color:#626976}.hero{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:15px 0 30px}.hero-photo{width:100%;border-radius:40px 40px 90px 40px;min-height:360px;object-fit:cover}.eyebrow{color:#cc215e;font-weight:bold;font-size:16px}.age{background:#fde8f0;color:#b71b54;padding:5px 16px;border-radius:22px;display:inline-block;font-size:15px;margin-bottom:20px}.hero h2{font-size:1.6rem;text-decoration:underline;text-decoration-color:#f8cade;text-decoration-thickness:9px;text-underline-offset:-3px}.section-nav{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0 30px}.section-nav a{flex:1;padding:10px 15px;border:1px solid #eeb8cc;border-radius:25px;text-decoration:none;text-align:center;font-size:16px;white-space:nowrap;color:#b71b54}.section{padding:50px 0;border-bottom:1px solid #f0edf0}.section-title{display:flex;gap:16px;align-items:center;margin-bottom:18px}.section-title>span{width:46px;height:46px;border-radius:50%;background:#ec4c85;color:white;display:grid;place-items:center;font-size:20px}.section-title h2{margin:0;color:#b71b54}.intro{font-weight:bold;font-size:1.2rem}.schedule-grid{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:40px;margin-top:24px}.ribbon{background:#fce5ef;border-radius:12px;padding:14px 20px;color:#b71b54;margin:0}.timeline{list-style:none;margin:0 0 28px;padding:0}.timeline li{display:grid;grid-template-columns:145px 1fr;gap:20px;padding:16px 20px;border-bottom:1px solid #e8e8ec}.time{font-variant-numeric:tabular-nums;color:#ad2455;font-weight:bold;white-space:nowrap}.timeline strong{font-weight:600}.timeline p{margin:4px 0 0;font-size:16px;color:#555e6a;white-space:normal}.schedule-photos img{margin-bottom:36px;border-radius:18px}.schedule-photos .mascot{width:130px;margin:40px auto}.note{font-size:14px;color:#5f626b;line-height:1.8}.requirements{margin:24px 0 0;border:1px solid #e5e5eb;border-radius:16px;overflow:hidden}.requirements>div{display:grid;grid-template-columns:180px 1fr;border-bottom:1px solid #e5e5eb}.requirements>div:last-child{border:0}dt,dd{margin:0;padding:16px 22px}.requirements dt{background:#f7f7fa;font-weight:bold}.fee{background:#fff3f7;border:1px solid #f4c6d7;border-radius:20px;padding:26px;margin:20px 0}.fee-heading{display:flex;justify-content:space-between;gap:12px;color:#b71b54;margin-bottom:18px}.fee-heading h3{margin:0}.fee-heading>span{font-size:16px}.prices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 12px}.prices>div{background:#fff;border:1px solid #f4c6d7;border-radius:12px;text-align:center;padding:16px 6px}.prices dt{font-size:16px;padding:0}.prices dd{font-size:30px;white-space:nowrap;font-weight:bold;color:#c11f59;padding:0;letter-spacing:-.03em}.prices small{font-size:14px;margin-left:3px}.fee .note{margin:0}.subsidy{background:#fffbe2;border-radius:18px;padding:26px;margin-top:30px}.subsidy h3{color:#685520}.subsidy p{margin:0}.visit-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:32px;align-items:center}.visit-grid>img{border-radius:20px}.visit-actions{display:flex;flex-wrap:wrap;gap:12px}details{border:1px solid #e0e4e9;border-radius:14px;margin:12px 0;padding:0 22px}summary{cursor:pointer;font-weight:bold;padding:20px 24px 20px 0;position:relative;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:'＋';position:absolute;right:0;color:#c11f59}details[open] summary:after{content:'−'}details p{border-top:1px solid #eee;padding-top:18px}footer{text-align:center;padding-top:56px}.footer-logo{width:min(430px,85%);margin:0 auto 28px}address{font-style:normal;font-size:16px;line-height:2}.map{background:#555;color:#fff;margin:20px auto}.backtop{display:block;font-size:15px;margin:15px auto}.footer-art{width:100%;margin-top:20px}.copyright{display:block;background:#ded1c5;padding:12px;font-size:12px}.skip{position:absolute;top:-100px}.skip:focus{top:0;background:white;z-index:10;padding:10px}@media(max-width:1050px){.header-inner{flex-wrap:wrap;gap:16px}.brand{margin-right:auto}.header-actions{margin:0}.header nav{margin-left:auto}.header-actions .button{font-size:14px;padding:10px 14px}}@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header-inner{padding:18px 20px;gap:16px}.brand{flex-basis:100%;max-width:250px;margin:auto}.header nav{width:100%;justify-content:center;margin:0;gap:45px}.header nav a{padding:4px 0}.header-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.header-actions .button{padding:10px 6px;font-size:14px}.line-icon{display:none}.breadcrumb{margin:20px 0;font-size:13px}.hero{grid-template-columns:1fr;gap:18px;padding-top:0}.hero h2{font-size:1.5rem}.hero-photo{min-height:0;max-height:300px;border-radius:24px 24px 60px 24px}.section-nav{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.section-nav a{font-size:15px;padding:10px 6px}.section{padding:38px 0}.section-title{gap:12px}.section-title h2{font-size:1.65rem}.section-title>span{width:40px;height:40px;flex-shrink:0}.intro{font-size:1.1rem}.schedule-grid{grid-template-columns:1fr;gap:0}.schedule-photos{display:none}.timeline li{grid-template-columns:1fr;gap:3px;padding:16px 10px}.timeline .time{font-size:16px}.timeline p{font-size:16px}.ribbon{font-size:18px;padding:14px}.requirements>div{grid-template-columns:1fr}.requirements dt{padding:10px 16px}.requirements dd{padding:14px 16px}.fee{padding:20px 16px}.fee-heading{display:block}.fee-heading h3{font-size:20px;margin-bottom:4px}.prices{grid-template-columns:1fr;gap:10px}.prices>div{display:flex;align-items:center;justify-content:space-between;padding:14px 12px;gap:8px}.prices dt{font-size:15px;text-align:left}.prices dd{font-size:27px}.prices small{font-size:13px}.wide{width:100%;font-size:16px}.subsidy{padding:22px}.subsidy h3{font-size:19px}.visit-grid{grid-template-columns:1fr;gap:20px}.visit-actions{display:grid}.visit-actions .button{width:100%;min-height:54px}details{padding:0 16px}summary{font-size:18px}.footer-content{padding:0}.footer-logo{width:90%}address{font-size:16px}.copyright{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
/* Compact mobile navigation and schedule */
.header-menu{display:flex;align-items:center;gap:26px;flex:1}.menu-toggle{display:none}
@media(max-width:1050px) and (min-width:701px){.header-menu{flex-wrap:wrap;justify-content:flex-end;gap:16px}}
@media(max-width:700px){
.header-inner{position:relative;justify-content:space-between;gap:0;padding:16px 20px}.brand{flex:0 1 235px;max-width:calc(100% - 66px);margin:0}.menu-toggle{display:flex;width:48px;height:48px;padding:14px 12px;flex-direction:column;justify-content:space-between;border:0;border-radius:50%;background:#fdd903;cursor:pointer}.menu-toggle span{display:block;height:3px;width:24px;background:#000;transition:transform .2s,opacity .2s}.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(8.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg)}.menu-toggle:focus-visible{outline:3px solid #007fad;outline-offset:3px}.header-menu{display:none;flex-basis:100%;padding:22px 0 8px}.header-menu.is-open{display:block}.header-menu nav{display:flex;flex-direction:column;gap:0;align-items:stretch}.header-menu nav a{padding:14px 4px;border-bottom:1px solid #eee}.header-menu .header-actions{display:grid;grid-template-columns:1fr;gap:12px;margin-top:20px}.header-menu .button{font-size:16px;min-height:52px}.timeline li{grid-template-columns:max-content minmax(0,1fr);gap:12px;padding:10px 4px;align-items:start;line-height:1.6}.timeline .time{font-size:1rem;min-width:6.6rem}.timeline strong{font-size:1rem}.timeline p{font-size:.9375rem;line-height:1.6;margin-top:3px}.timeline{margin-bottom:18px}.ribbon{padding:10px 12px}.schedule-grid{margin-top:18px}
}

.subsidy-emphasis{color:#b71b54;font-weight:800}

/* Shared pinned navigation and course activity gallery */
html{scroll-padding-top:116px}.header{position:sticky;top:0;z-index:100;box-shadow:0 2px 12px #2430470a}.header-inner{max-width:1440px;gap:22px;padding:18px 28px}.brand{flex:0 1 230px;min-width:150px}.header-menu{gap:22px}.header nav{gap:20px}.header nav a{font-size:15px}.header-actions{gap:8px}.header-actions .button{font-size:14px;padding:10px 15px;white-space:nowrap}.schedule-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:30px;align-items:start}.schedule-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px;align-content:start}.schedule-photos figure{margin:0;min-width:0}.schedule-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;margin:0}.schedule-photos figcaption{font-size:14px;text-align:center;margin-top:7px;color:#555e6a}.timeline li{grid-template-columns:120px minmax(0,1fr);gap:14px;padding:12px 8px;font-size:16px}.timeline p{font-size:14px}
@media(min-width:701px) and (max-width:1150px){.header-inner{gap:16px;flex-wrap:nowrap}.brand{flex-basis:200px}.header-menu{flex-wrap:wrap;gap:6px;justify-content:flex-end}.header nav{gap:20px}.header-actions .button{min-height:40px;padding:6px 14px}}
@media(max-width:700px){html{scroll-padding-top:98px}.header-inner{padding:14px 20px;gap:0}.brand{flex:0 1 235px;max-width:calc(100% - 66px)}.header-menu{padding:12px 0;max-height:calc(100dvh - 80px);overflow-y:auto}.header-menu nav{gap:0}.header-menu nav a{font-size:16px}.header-menu .header-actions{gap:12px}.header-menu .button{font-size:16px}.schedule-grid{grid-template-columns:minmax(0,1fr);gap:10px}.schedule-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.schedule-photos figure:nth-child(n+3){display:none}.schedule-photos img{border-radius:14px}.schedule-photos figcaption{font-size:14px}.timeline li{grid-template-columns:6.6rem minmax(0,1fr);gap:12px;padding:10px 4px}.timeline p{font-size:15px}}

/* Spacious navigation with Instagram action */
.header-inner{gap:48px}.brand{flex:0 0 230px}.header-menu{flex-wrap:wrap;justify-content:flex-end;gap:12px 26px}.header nav{gap:26px;margin-right:auto}.header-actions{gap:10px}.header-instagram{border-color:#da367e;color:#be2469;background:#fff}.instagram-icon{width:25px;height:25px;flex-shrink:0}.header-actions .header-instagram{gap:8px}.schedule-grid{grid-template-columns:minmax(0,1.7fr) minmax(240px,1fr);gap:46px}.schedule-photos{display:flex;flex-direction:column;justify-content:space-between;gap:22px;align-self:stretch;padding:4px 0 28px}.schedule-photos figure{width:100%}.schedule-photos img{aspect-ratio:2/1;object-fit:cover;border-radius:18px}.afternoon-schedule{margin-top:24px}
@media(min-width:701px){#schedule .timeline li{min-height:60px}.header nav a{font-size:16px}.header-inner{min-height:110px}.schedule-photos img{max-height:220px}.schedule-photos{max-height:none}.header-menu .header-actions{margin-left:auto}}
@media(max-width:1050px) and (min-width:701px){.header-inner{gap:32px}.brand{flex-basis:185px}.header-actions .button{font-size:13px;padding:7px 10px}.header nav{gap:20px}}
@media(max-width:700px){.header-inner{gap:0;min-height:0}.brand{flex:0 1 235px}.header-menu{padding:12px 0}.header-menu nav{margin-right:0}.header-menu .header-actions{margin-left:0}.schedule-grid{grid-template-columns:minmax(0,1fr);gap:6px}.schedule-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 0 10px}.schedule-photos figure:nth-child(n+3){display:block}.schedule-photos img{aspect-ratio:4/3;max-height:none;border-radius:14px}.afternoon-schedule{margin-top:24px}.header-actions .header-instagram{font-size:16px}.header-menu .button{white-space:normal}}
@media(min-width:701px){.schedule-grid{grid-template-columns:minmax(0,1fr) minmax(230px,300px)}html{scroll-padding-top:148px}}
.header{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
@media(min-width:701px) and (max-width:1350px){.header-menu{flex-direction:column;align-items:flex-end;gap:10px}.header-menu nav{margin-right:0}.header-inner{padding-top:16px;padding-bottom:16px}}

/* Use the same top-aligned photo spacing for morning and afternoon. */
@media(min-width:701px){.schedule-photos{justify-content:flex-start;gap:22px;align-self:start}}

/* Match the mobile navigation rhythm to the three action buttons. */
/* Keep approved photo composites on an opaque white backing. */
.room-photo{background-color:#fff}

@media(max-width:700px){
  .header .header-menu nav{gap:12px}
  .header .header-menu nav a{display:flex;align-items:center;min-height:52px;padding:10px 4px;line-height:1.55}
  .header .header-menu .header-actions{gap:12px;margin-top:12px}
}
