
*{box-sizing:border-box}
:root{--bg:#f4efe8;--ink:#0d0d0d;--gold:#c88a1d;--muted:#6b6259;--line:#d8cec2}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif}
img{width:100%;display:block}a{text-decoration:none;color:inherit}
.header{height:72px;background:#080808;color:#fff;display:flex;align-items:center;padding:0 5vw;position:sticky;top:0;z-index:50;border-bottom:1px solid #222}
.brand{display:flex;align-items:baseline;gap:10px;white-space:nowrap;font-size:22px;font-weight:800;line-height:1.3}.brand-main,.brand-sub{font-size:inherit;font-weight:inherit;letter-spacing:normal;color:#fff}
.desktop-nav{margin-left:auto;display:flex;gap:28px;font-family:Arial,"Noto Sans JP",sans-serif;font-size:13px}
.desktop-nav a{opacity:.8}.desktop-nav a:hover{opacity:1;color:#d7a445}
.menu{display:none;margin-left:auto;background:none;border:0;width:42px;height:42px}.menu i{display:block;height:2px;background:#d7a445;margin:6px}
.mobile-nav{display:none}
.hero{min-height:680px;background:#080808;position:relative;overflow:hidden;color:#fff}
.hero-image{position:absolute;inset:0 0 0 38%;background:url("assets/hero.jpg") center/cover no-repeat}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#080808 0%,#080808 33%,rgba(8,8,8,.74) 48%,rgba(8,8,8,.1) 77%,rgba(8,8,8,.2) 100%)}
.hero-content{position:relative;z-index:2;padding:100px 6vw;max-width:650px}
.kicker,.eyebrow{font:700 11px/1 Arial,"Noto Sans JP",sans-serif;letter-spacing:.22em;color:var(--gold);margin:0 0 15px}
.hero h1{font-size:clamp(64px,8vw,108px);line-height:.96;letter-spacing:.03em;margin:0 0 28px}.hero h1 em{font-style:normal;color:var(--gold)}
.lead{font-size:19px;line-height:1.9;margin:0 0 34px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 24px;border-radius:4px;font:700 14px Arial,"Noto Sans JP",sans-serif;transition:.2s}
.btn.primary{background:var(--gold);color:#fff}.btn.primary:hover{transform:translateY(-2px)}
.btn.ghost{border:1px solid #777;color:#fff}.btn.ghost:hover{border-color:#fff}
.scroll{position:absolute;z-index:2;left:6vw;bottom:30px;font:10px Arial,sans-serif;letter-spacing:.18em;color:#aaa}.scroll span{color:var(--gold);font-size:18px}
.section{max-width:1160px;margin:auto;padding:90px 5vw}
.section-head{display:flex;align-items:flex-start;gap:20px;margin-bottom:42px}.section-head .num{font:700 12px Arial,sans-serif;border-top:1px solid var(--gold);padding-top:8px;color:var(--gold)}
.section-head h2{font-size:38px;margin:0}.section-head .eyebrow{margin-bottom:8px}
.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:70px;align-items:center}.about-photo img{border-radius:10px;aspect-ratio:4/3;object-fit:cover;box-shadow:0 20px 55px rgba(0,0,0,.15)}
.about-copy .big{font-size:38px;line-height:1.5;margin:0 0 22px}.about-copy>p:not(.big){font-size:17px;line-height:2;color:#433d36}
.master{margin-top:28px;padding:18px 20px;border-left:3px solid var(--gold);background:#eee6dc}.master small{display:block;font:12px Arial,sans-serif;color:#766c61}.master strong{font-size:26px}
.message-strip{overflow:hidden;background:#0b0b0b;color:#fff;border-block:1px solid #202020}.marquee{white-space:nowrap;padding:18px 0;font-size:22px;letter-spacing:.12em;text-align:center}.marquee b{color:var(--gold);margin:0 20px}
.classes{padding-top:80px}.class-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.class-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 10px 35px rgba(70,50,30,.05);transition:.25s}.class-card:hover{transform:translateY(-6px);box-shadow:0 18px 45px rgba(70,50,30,.12)}
.class-photo{position:relative}.class-photo img{height:190px;object-fit:cover}.letter{position:absolute;left:18px;bottom:-20px;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#fff;font:700 24px Arial,sans-serif;border:4px solid #fff}
.class-body{padding:34px 20px 20px}.class-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.class-title h3{font-size:22px;margin:0}.class-title span{font:12px Arial,sans-serif;background:#eee8df;padding:4px 8px;border-radius:10px}
.place{font:13px Arial,"Noto Sans JP",sans-serif;color:#796f64;margin:8px 0 18px}.schedule-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.schedule-grid.one{grid-template-columns:1fr}.schedule-grid>div{background:#f4efe8;padding:12px;border-radius:7px}.schedule-grid b{display:block;font:700 12px Arial,"Noto Sans JP",sans-serif;margin-bottom:5px}.schedule-grid span{font-size:14px;line-height:1.6}
.minor{font-size:13px;color:#61594f}.details{width:100%;margin-top:16px;border:0;background:#111;color:#fff;border-radius:5px;padding:12px 14px;display:flex;justify-content:space-between;font-weight:700;cursor:pointer}.details span{color:var(--gold);font-size:18px}.fee-panel{display:none}.fee-panel.open{display:block}.fee-panel dl{margin:12px 0 0;background:#f3ede5;padding:12px;border-radius:7px}.fee-panel dl div{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px dashed #d6c9ba}.fee-panel dl div:last-child{border-bottom:0}.fee-panel dt,.fee-panel dd{margin:0;font:13px Arial,"Noto Sans JP",sans-serif}.fee-panel dd{font-weight:700}.note{font-size:12px;color:#665d54}
.trial{background:#0a0a0a;color:#fff;display:grid;grid-template-columns:1fr 1.1fr;min-height:520px}.trial-photo img{height:100%;object-fit:cover;filter:saturate(.9) contrast(1.05)}.trial-copy{padding:70px 7vw}.trial-copy h2{font-size:44px;line-height:1.35;margin:0 0 22px}.trial-copy ul{list-style:none;padding:0;margin:0 0 30px}.trial-copy li{margin:10px 0;font-size:16px}.trial-copy li:before{content:"✓";display:inline-grid;place-items:center;width:20px;height:20px;margin-right:10px;border-radius:50%;background:var(--gold);font:12px Arial,sans-serif}.phone{display:block;border-top:1px solid #444;padding-top:20px}.phone small{display:block;font:12px Arial,"Noto Sans JP",sans-serif;color:#aaa;margin-bottom:4px}.phone strong{font:700 38px Arial,sans-serif;color:#e1a53d;letter-spacing:.02em}
.access-grid{display:grid;grid-template-columns:.9fr 1.4fr;gap:50px;align-items:center}.access-info{font-size:17px}.address{font-size:20px;line-height:1.8}.building img{border-radius:10px;aspect-ratio:16/8;object-fit:cover}
.bottom-cta{background:#c68a20;color:#fff;padding:42px 6vw;display:flex;align-items:center;justify-content:space-between;gap:30px}.bottom-cta p{margin:0;font:12px Arial,sans-serif;letter-spacing:.12em}.bottom-cta h2{margin:5px 0 0;font-size:34px}.bottom-cta a{background:#111;padding:16px 24px;border-radius:5px;font:700 16px Arial,"Noto Sans JP",sans-serif}
footer{background:#050505;color:#777;text-align:center;padding:30px;font-size:13px}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.show{opacity:1;transform:none}
@media(max-width:820px){
 .marquee{display:flex;align-items:center;justify-content:center;padding:18px 12px;font-size:clamp(12px,3.6vw,18px);letter-spacing:0}.marquee b{margin:0 4px}
 .desktop-nav{display:none}.menu{display:block}.mobile-nav{position:fixed;z-index:49;top:72px;left:0;right:0;background:#111;color:#fff;padding:12px 20px;display:none}.mobile-nav.open{display:grid}.mobile-nav a{padding:12px 4px;border-bottom:1px solid #292929}
 .brand{font-size:clamp(14px,4.4vw,22px);gap:6px}.brand-sub{display:inline}.menu{flex-shrink:0}.hero{min-height:620px}.hero-image{inset:0;background-position:62% center}.hero-shade{background:linear-gradient(90deg,rgba(8,8,8,.97),rgba(8,8,8,.6) 64%,rgba(8,8,8,.2))}
 .hero-content{padding:80px 22px}.hero h1{font-size:66px}.lead{font-size:16px}.scroll{left:22px}
 .section{padding:65px 20px}.section-head h2{font-size:31px}.about-grid{grid-template-columns:1fr;gap:25px}.about-copy .big{font-size:30px}
 .class-list{grid-template-columns:1fr}.class-photo img{height:220px}
 .trial{grid-template-columns:1fr}.trial-photo{height:300px}.trial-copy{padding:48px 22px}.trial-copy h2{font-size:34px}.phone strong{font-size:31px}
 .access-grid{grid-template-columns:1fr;gap:25px}.bottom-cta{display:block}.bottom-cta h2{font-size:28px;margin-bottom:20px}.bottom-cta a{display:inline-block}
}
