:root{--color-primary:#4a6b5e;--color-accent:#8d001d;--color-nav-bg:#f3efdc;--color-text:#4f4f4f;--color-footer-bg:#e9dfaf;--max-width:990px}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:'Zen Old Mincho',serif;font-size:16px;line-height:1.5;color:var(--color-text);background:var(--color-nav-bg)}img{width:auto;height:auto;max-width:100%;display:block}picture{display:block}a{color:inherit;text-decoration:none}span.aks{display:inline-block}header{background-color:var(--color-nav-bg)}.header-inner{max-width:var(--max-width);margin:0 auto;padding:0 25px;display:flex;align-items:center;justify-content:space-between;height:145.5px}.logo img{height:100.5px;width:auto;margin-top:1px}nav.main-nav ul{list-style:none;display:flex}nav.main-nav a{display:block;padding:5px 10px;color:var(--color-text);font-family:'Zen Kaku Gothic Antique',sans-serif;font-size:16px;font-weight:bold;transition:opacity .2s}nav.main-nav a:hover{opacity:.7}nav.main-nav a.current{color:var(--color-text);border-bottom:2px solid var(--color-text)}.nav-toggle{display:none;cursor:pointer;background:none;border:none;padding:4px}.nav-toggle span{display:block;width:24px;height:2px;background:var(--color-text);margin:5px 0;transition:.3s}.hero{position:relative;height:384px;overflow:hidden;display:flex;align-items:center;justify-content:center}.hero-slides{position:absolute;inset:0}.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.5s ease-in-out}.hero-slide.active{opacity:1}.hero-slide picture,.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:center}.hero-title{position:relative;z-index:2;text-align:center}.hero-title a{color:#fff;font-family:serif;font-size:clamp(22px,4vw,36px);font-weight:700;line-height:1.6;letter-spacing:.1em;text-shadow:0 2px 12px rgba(0,0,0,.5)}.layout{max-width:var(--max-width);margin:0 auto;padding:20px 25px}.page-title{text-align:center;font-family:'Zen Old Mincho',serif;font-size:16px;font-weight:normal;color:var(--color-accent);margin-bottom:40px}.section-heading{margin-bottom:20px}.section-heading.centered{text-align:center}.en{font-family:'Dancing Script',serif;font-size:20px;color:var(--color-accent);display:block;line-height:1;margin-bottom:-5px}h2{font-family:'Zen Old Mincho',serif;font-size:32px;font-weight:normal;color:var(--color-accent);line-height:1.3;margin-top:9px;margin-bottom:9px}h3{font-family:'Zen Old Mincho',serif;font-size:28px;font-weight:normal;color:var(--color-accent);margin-bottom:10px}hr.divider{border:none;border-top:1px solid var(--color-text);margin:10px 0 10px}.gallery-jump-nav{margin:16px 0 40px;display:flex;flex-wrap:wrap;gap:4px 24px}.gallery-jump-nav a{color:var(--color-accent);text-decoration:none}.gallery-jump-nav a:hover{color:var(--color-primary)}.intro-text{text-align:center;line-height:2;margin-bottom:40px}.intro-text p{margin:0}.text--emphasized{font-family:'Noto Sans JP',sans-serif;font-weight:700}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:50px}.col-card{display:flex;flex-direction:column}.col-card img{width:100%;aspect-ratio:1/1;object-fit:cover;margin-bottom:12px}.col-card h2{margin-bottom:8px}.col-card .teacher-en{font-size:16px;font-weight:bold}.col-card p{font-size:16px;margin-bottom:12px}.col-card .btn{margin-top:auto}.two-col{display:grid;grid-template-columns:repeat(2,1fr);gap:40px;margin-bottom:50px;align-items:start}.two-col img{width:100%;height:auto;object-fit:cover;display:block}.two-col .col-text{display:flex;flex-direction:column}.two-col .col-text p{margin-bottom:0.8em}.two-col .col-text ol,.two-col .col-text ul{padding-left:1.2em;margin-bottom:0.8em}.two-col .col-text li{margin-bottom:0.4em}.two-col figcaption{font-size:14px;color:var(--color-text);margin-top:8px}.btn{display:inline-block;min-width:180px;padding:10px 20px;background-color:var(--color-primary);color:var(--color-nav-bg);border:2px solid transparent;border-radius:6px;font-family:'Zen Old Mincho',serif;font-size:14px;text-align:center;cursor:pointer;transition:background-color .25s,color .25s,border-color .25s}.btn:hover{background-color:transparent;color:var(--color-accent);border-color:var(--color-accent)}.youtube-wrap{position:relative;width:100%;padding-top:56.25%;margin-bottom:50px;cursor:pointer;background:#000}.youtube-wrap img,.youtube-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%}.youtube-wrap .yt-title{position:absolute;top:0;left:0;color:#eee;font-family:"YouTube Noto",Arial,Helvetica,sans-serif;padding:10px;z-index:2}.youtube-wrap .play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:68px;height:48px;background:rgba(255,0,0,.7);border:none;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:2}.youtube-wrap:hover .play-btn{background:rgba(255,0,0,1)}.youtube-wrap .play-btn::after{content:'';border-left:20px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent;margin-left:4px}.youtube-label{position:absolute;bottom:0;background:rgba(0,0,0,.7);color:#eee;font-size:16px;font-family:"YouTube Noto",Arial,Helvetica,sans-serif;padding:4px 8px;z-index:2}.banner-link{display:block;margin-bottom:16px}.banner-link img{width:100%}.banner-sp{display:none}.news-heading{margin:50px 0 8px}.news-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:40px}.content-card{background:#f4f4f4;border-left:6px solid var(--color-primary);box-shadow:0 2px 3px rgba(0,0,0,.15);padding:.6em}.blog-card{display:flex;gap:12px;margin-bottom:8px}.blog-card-link{display:flex;gap:12px;width:100%;color:inherit;text-decoration:none}.blog-card-link:hover .blog-card-title{text-decoration:underline}.blog-card img{width:120px;min-width:120px;height:120px;object-fit:cover;flex-shrink:0}.blog-card-body{font-size:16px;display:flex;flex-direction:column;justify-content:center}.blog-card-date{color:#666}.blog-card-title{font-weight:bold;margin-top:8px}.blog-card-title a:hover{text-decoration:underline}.stories-slider{position:relative;overflow:hidden;background:#eee;aspect-ratio:9/16;max-height:550px}.stories-slider picture{position:absolute;inset:0;opacity:0;transition:opacity .8s}.stories-slider picture.active{opacity:1}.stories-slider img{width:100%;height:100%;object-fit:cover;border:2px solid #fff}.stories-nav{position:absolute;bottom:2px;left:0;right:0;display:flex;justify-content:center;gap:0}.stories-dot{width:24px;height:24px;border-radius:50%;background:transparent;cursor:pointer;border:none;position:relative;transition:background .2s;flex-shrink:0}.stories-dot::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);transition:background .2s}.stories-dot.active::after{background:#fff}footer{background:var(--color-footer-bg);color:var(--color-text);padding:40px 25px 24px;font-family:'Zen Old Mincho',serif}.footer-inner{max-width:var(--max-width);margin:0 auto}.footer-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:40px}.footer-col h3{font-size:20px;font-weight:bold;padding-bottom:0;margin-bottom:4px;margin-top:24px;color:var(--color-accent)}.footer-col h3:first-child{margin-top:0}.footer-col p{font-size:16px;margin-bottom:.5em}.footer-col iframe{width:100%;height:220px;border:none;margin-bottom:8px}.footer-meta{border-top:0;padding-top:16px;text-align:center;font-size:13px;color:var(--color-text)}.footer-meta a{color:var(--color-text);margin:0 6px}.footer-meta a:hover{text-decoration:underline}.footer-meta p{margin-top:6px}#cookie-banner{position:fixed;bottom:0;left:0;right:0;background:rgba(50,45,35,.95);color:var(--color-nav-bg);padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:999;font-size:14px;font-family:'Zen Old Mincho',serif}#cookie-banner p{line-height:1.6;flex:1}#cookie-banner a{color:#c8b97a;text-decoration:underline}.cookie-btns{display:flex;gap:10px;flex-shrink:0}.cookie-btn{padding:8px 18px;border-radius:4px;border:none;cursor:pointer;font-size:14px;font-family:'Zen Old Mincho',serif;transition:opacity .2s}.cookie-btn:hover{opacity:.8}.cookie-btn--accept{background:var(--color-primary);color:var(--color-nav-bg)}.cookie-btn--decline{background:transparent;color:var(--color-nav-bg);border:1px solid var(--color-nav-bg)}.page-subnav{background:var(--color-primary);margin-bottom:40px;overflow-x:auto;white-space:nowrap}.page-subnav .subnav-inner{max-width:var(--max-width);margin:0 auto;padding:0 25px;display:flex;justify-content:flex-end}.page-subnav ul{list-style:none;display:inline-flex}.page-subnav a{display:block;padding:10px 14px;font-family:'Zen Kaku Gothic Antique',sans-serif;font-size:16px;color:var(--color-nav-bg);font-weight:bold;white-space:nowrap;transition:opacity .2s}.page-subnav a:hover{opacity:.7}.page-subnav a.current{background:rgba(4,4,4,.25);opacity:1}.slider-letterbox{background:#000;padding-top:4.5%;width:80%}.slider-letterbox--bottom{margin-bottom:12px}.scene-slider{position:relative;overflow:hidden;background:#333;aspect-ratio:16/9;width:80%}.scene-slider img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .8s}.scene-slider img.active{opacity:1}.scene-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:50px}.scene-thumb{width:100px;height:100px;object-fit:cover;cursor:pointer;opacity:.75;transition:opacity .2s,outline .2s;flex-shrink:0}.scene-thumb:hover{opacity:1}.scene-thumb.active{opacity:1;outline:5px solid var(--color-primary);outline-offset:-5px}@media (max-width:767px){.header-inner{height:70px}.logo img{height:41.5px}.layout{padding:20px 16px}.hero{height:233px}h2{font-size:26px;margin-top:7px;margin-bottom:7px}h3{font-size:22px}nav.main-nav{display:none}nav.main-nav.open{display:block;position:absolute;top:70px;left:0;right:0;background:var(--color-nav-bg);z-index:200;padding:10px 0}nav.main-nav.open ul{flex-direction:column}nav.main-nav.open a{padding:10px 25px}.nav-toggle{display:block}.three-col{grid-template-columns:1fr}.two-col{grid-template-columns:1fr;gap:24px}.news-grid{grid-template-columns:1fr}.banner-pc{display:none}.banner-sp{display:block}.btn{display:block;width:100%;min-width:unset}.footer-sidebar{grid-template-columns:1fr;gap:0}#cookie-banner{flex-direction:column;align-items:flex-start}.cookie-btns{width:100%}.slider-letterbox{width:100%;padding-top:5.625%}.scene-slider{width:100%}.scene-thumb{width:calc((100vw - 48px) / 3);height:calc((100vw - 48px) / 3);max-width:100px;max-height:100px}}a.link--green-hover{color:var(--color-accent);text-decoration:underline;transition:color .2s}a.link--green-hover:hover{color:var(--color-primary)}.blog-post-date{margin-bottom:8px}.blog-post-title{margin-bottom:20px}.blog-post-image{max-width:640px;width:100%;margin-bottom:50px}.blog-post-body{line-height:2}.blog-post-body .section-title{font-size:22px;color:var(--color-accent)}.post-nav{display:grid;grid-template-columns:1fr 1fr;margin-top:10px}.post-nav__prev{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto 1fr;column-gap:16px;padding:16px 16px 16px 0;color:var(--color-text);text-decoration:none;align-content:start}.post-nav__next{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto 1fr;column-gap:16px;padding:16px 0 16px 16px;color:var(--color-text);text-decoration:none;align-content:start}.post-nav__prev .post-nav__label{grid-column:2;grid-row:1;margin-bottom:4px}.post-nav__next .post-nav__label{grid-column:1;grid-row:1;text-align:right;margin-bottom:4px}.post-nav__prev .post-nav__arrow{grid-column:1;grid-row:1}.post-nav__next .post-nav__arrow{grid-column:2;grid-row:1}.post-nav__prev .post-nav__title{grid-column:2;grid-row:2;align-self:center}.post-nav__next .post-nav__title{grid-column:1;grid-row:2;align-self:center;text-align:right}.post-nav__title{font-size:18px;color:var(--color-accent)}.post-nav__prev:hover .post-nav__title,.post-nav__next:hover .post-nav__title{text-decoration:underline}.post-nav__prev picture{grid-column:2;grid-row:3;align-self:end;margin-top:10px}.post-nav__next picture{grid-column:1;grid-row:3;align-self:end;margin-top:10px;margin-left:auto}.post-nav picture img{width:120px;height:120px;object-fit:cover}@media(max-width:767px){.post-nav__prev{column-gap:8px;padding:16px 8px 16px 0}.post-nav__next{column-gap:8px;padding:16px 0 16px 8px}}