:root { --ink:#111015; --ink2:#1b1920; --paper:#f4f0e9; --paper2:#ebe4da; --gold:#d1a85f; --gold2:#efcf91; --muted:#746e75; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.site-header { position:absolute; z-index:30; top:0; left:0; right:0; height:88px; padding:0 clamp(22px,5vw,76px); display:flex; align-items:center; gap:36px; color:white; border-bottom:1px solid rgba(255,255,255,.18); }
.brand { display:flex; align-items:center; gap:12px; font:600 13px/1.05 Georgia,serif; letter-spacing:.12em; margin-right:auto; }
.brand small { display:block; color:#d6d1d5; font:8px/1.5 system-ui,sans-serif; letter-spacing:.28em; }
.brand-mark { width:38px; height:38px; border:1px solid rgba(255,255,255,.65); border-radius:50%; display:grid; place-items:center; font:italic 22px Georgia,serif; color:var(--gold); }
.site-header nav { display:flex; gap:23px; font-size:12px; letter-spacing:.07em; }
.site-header nav a,.header-cta { transition:color .2s,background .2s; }
.site-header nav a:hover { color:var(--gold); }
.header-cta { border:1px solid var(--gold); color:var(--gold); padding:12px 18px; font-size:12px; font-weight:700; }
.header-cta:hover { background:var(--gold); color:var(--ink); }
.mobile-menu { display:none; }
.hero { height:min(900px,100svh); min-height:720px; position:relative; overflow:hidden; color:white; background:#101015; }
.hero>img { width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,7,12,.9) 0%,rgba(7,7,12,.64) 40%,rgba(7,7,12,.05) 76%),linear-gradient(0deg,rgba(7,7,12,.75),transparent 44%); }
.hero-copy { position:absolute; left:clamp(24px,8vw,128px); top:50%; transform:translateY(-52%); max-width:750px; }
.eyebrow,.section-kicker { margin:0 0 24px; color:var(--gold); font-size:11px; font-weight:700; letter-spacing:.32em; }
.hero h1 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-weight:500; font-size:clamp(48px,6.2vw,92px); line-height:1.23; letter-spacing:.06em; margin:0; }
.hero-lead { color:#e4e0e3; font-size:clamp(14px,1.35vw,18px); line-height:2; margin:28px 0 34px; }
.hero-actions,.access-actions { display:flex; flex-wrap:wrap; gap:12px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-width:180px; padding:16px 25px; border:1px solid transparent; font-size:13px; font-weight:700; letter-spacing:.08em; transition:transform .2s,background .2s,color .2s; }
.button:hover { transform:translateY(-2px); }
.button.gold { background:var(--gold); color:var(--ink); }
.button.glass { border-color:rgba(255,255,255,.55); background:rgba(10,10,15,.22); }
.button.ink { background:var(--ink); color:var(--gold2); }
.button.outline-dark { border-color:rgba(17,16,21,.5); }
.hero-facts { position:absolute; bottom:0; right:0; display:grid; grid-template-columns:repeat(3,minmax(150px,205px)); background:rgba(10,10,14,.84); backdrop-filter:blur(12px); border-top:1px solid rgba(255,255,255,.15); border-left:1px solid rgba(255,255,255,.15); }
.hero-facts div { padding:25px 24px; border-right:1px solid rgba(255,255,255,.12); }
.hero-facts strong,.hero-facts span { display:block; }
.hero-facts strong { color:var(--gold); font:600 21px Georgia,serif; }
.hero-facts span { margin-top:6px; font-size:10px; color:#c7c1c5; letter-spacing:.08em; }
.section { padding:110px clamp(22px,6vw,96px); }
.intro { text-align:center; max-width:1080px; margin:auto; }
.section h2,.access h2,.contact h2 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(34px,4.4vw,60px); font-weight:500; letter-spacing:.06em; line-height:1.45; margin:0; }
.intro>p:nth-of-type(2) { max-width:760px; margin:30px auto 0; color:var(--muted); line-height:2.1; }
.trust-row { margin-top:58px; display:grid; grid-template-columns:repeat(3,1fr); border:1px solid #d9d1c7; }
.trust-row span { padding:22px 18px; font-size:12px; letter-spacing:.05em; border-right:1px solid #d9d1c7; }
.trust-row span:last-child { border:0; }
.dark { background:var(--ink); color:white; }
.section-head { max-width:1280px; margin:0 auto 54px; display:flex; align-items:end; justify-content:space-between; gap:30px; }
.section-head>p { max-width:420px; color:#aaa3aa; line-height:1.9; font-size:13px; }
.section-head.light>p { color:var(--muted); }
.lesson-list { max-width:1280px; margin:auto; display:grid; gap:24px; }
.lesson-card { display:grid; grid-template-columns:minmax(320px,1.05fr) minmax(360px,.95fr); min-height:490px; background:var(--ink2); border:1px solid rgba(255,255,255,.08); }
.lesson-card:nth-child(even) .lesson-image { order:2; }
.lesson-image { position:relative; min-height:420px; overflow:hidden; }
.lesson-image img { width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.lesson-card:hover .lesson-image img { transform:scale(1.025); }
.lesson-image:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(15,14,19,.5),transparent 48%); }
.lesson-body { padding:50px clamp(28px,4vw,60px); display:flex; flex-direction:column; justify-content:center; }
.lesson-en { color:var(--gold); font:italic 14px Georgia,serif; letter-spacing:.06em; margin:0 0 11px; }
.lesson-body h3 { font-family:"Yu Mincho",serif; font-size:clamp(27px,3vw,40px); font-weight:500; margin:0; }
.lesson-lead { margin:22px 0; color:#c6c0c5; line-height:2; font-size:13px; }
.tag-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px; }
.tag-row span { border:1px solid rgba(209,168,95,.4); color:var(--gold2); padding:7px 11px; font-size:10px; }
.ballet-classes { display:grid; gap:10px; }
.ballet-classes section { padding:14px 0; border-top:1px solid rgba(255,255,255,.1); }
.ballet-classes section:last-child { border-bottom:1px solid rgba(255,255,255,.1); }
.ballet-classes section>div { display:flex; justify-content:space-between; align-items:baseline; gap:14px; }
.ballet-classes strong { font-size:13px; color:#f4f0f2; }
.ballet-classes section>div span { color:var(--gold2); font-size:10px; white-space:nowrap; }
.ballet-classes p { margin:8px 0; color:#b8b1b7; font-size:11px; line-height:1.75; }
.ballet-classes small { display:block; color:#8f898f; font-size:9px; line-height:1.7; }
.lesson-body dl { margin:0; border-top:1px solid rgba(255,255,255,.1); }
.lesson-body dl div { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.1); font-size:12px; }
.lesson-body dt { color:#9c969c; }.lesson-body dd { margin:0; color:#f1edef; font-weight:700; text-align:right; }
.text-link { margin-top:24px; color:var(--gold); font-size:12px; font-weight:700; letter-spacing:.06em; }.text-link b { margin-left:8px; }
.beginner { display:grid; grid-template-columns:minmax(320px,.85fr) minmax(420px,1.15fr); gap:clamp(45px,7vw,100px); align-items:center; max-width:1440px; margin:auto; }
.beginner-photo { position:relative; min-height:650px; }
.beginner-photo img { width:100%; height:650px; object-fit:cover; filter:saturate(.82); }
.beginner-photo span { position:absolute; right:-25px; bottom:30px; background:var(--gold); padding:20px 24px; font:700 15px/1.45 Georgia,serif; letter-spacing:.12em; }
.beginner-copy>p:nth-of-type(2) { color:var(--muted); line-height:2.05; margin:25px 0 32px; }
.beginner-copy ol { padding:0; margin:0; list-style:none; border-top:1px solid #d4ccc1; }
.beginner-copy li { display:grid; grid-template-columns:48px 1fr; gap:14px; padding:19px 0; border-bottom:1px solid #d4ccc1; }
.beginner-copy li>b { font:italic 14px Georgia,serif; color:var(--gold); }
.beginner-copy li span { color:var(--muted); font-size:12px; line-height:1.8; }
.beginner-copy li strong { display:block; color:var(--ink); font-size:14px; }
.schedule { background:#e9e2d8; }
.schedule-grid { max-width:1280px; margin:auto; display:grid; grid-template-columns:repeat(6,1fr); gap:12px; align-items:start; }
.schedule-grid article { background:#f8f5f0; border-top:3px solid var(--gold); }
.schedule-grid article>header { padding:16px 17px; border-bottom:1px solid #ddd5cb; font-size:11px; color:var(--muted); }
.schedule-grid article>header span { font:600 29px Georgia,serif; color:var(--ink); margin-right:5px; }
.schedule-item { padding:17px; border-bottom:1px solid #e3ddd4; }
.schedule-item time,.schedule-item strong,.schedule-item small { display:block; }
.schedule-item time { color:#9a7340; font:600 12px Georgia,serif; margin-bottom:7px; }
.schedule-item strong { font-size:12px; line-height:1.5; }
.schedule-item small { color:var(--muted); margin-top:7px; font-size:10px; }
.private-lesson-note { max-width:1280px; margin:24px auto 0; padding:24px 28px; display:grid; grid-template-columns:170px 1fr; gap:28px; align-items:center; background:var(--ink); color:white; border-left:4px solid var(--gold); }
.private-lesson-note>span { color:var(--gold2); font:italic 12px Georgia,serif; letter-spacing:.16em; }
.private-lesson-note p { margin:0; color:#c9c3c8; font-size:12px; line-height:1.9; }
.private-lesson-note strong { color:white; font-size:14px; }
.schedule-note { max-width:1280px; margin:20px auto 0; color:var(--muted); font-size:10px; }
.staff-grid { max-width:1280px; margin:auto; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.staff-grid article { padding-bottom:22px; }
.staff-photo { height:380px; position:relative; overflow:hidden; margin-bottom:23px; background:#26232a; }
.staff-photo img { width:100%; height:100%; object-fit:cover; object-position:center top; filter:saturate(.78); transition:filter .3s,transform .5s; }
.staff-grid article:hover .staff-photo img { filter:saturate(1); transform:scale(1.02); }
.staff-grid article>p:first-of-type { color:var(--gold); font-size:10px; min-height:28px; letter-spacing:.05em; margin:0 0 7px; }
.staff-grid h3 { font-family:"Yu Mincho",serif; font-size:24px; font-weight:500; margin:0; }
.staff-grid h4 { color:#8f898f; font:italic 13px Georgia,serif; margin:5px 0 0; }
.gold-line { width:35px; height:1px; background:var(--gold); margin:18px 0; }
.staff-copy { color:#aaa4aa; font-size:11px; line-height:1.9; margin:0; }
.rental { display:grid; grid-template-columns:1fr 1fr; padding:0; background:var(--gold); min-height:680px; }
.rental-copy { padding:100px clamp(28px,6vw,95px); align-self:center; }
.rental-copy .section-kicker { color:#58401f; }
.rental-copy>p:nth-of-type(2) { line-height:2; max-width:640px; }
.rental>img { width:100%; height:100%; min-height:680px; object-fit:cover; }
.rental-prices { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(17,16,21,.28); border-bottom:1px solid rgba(17,16,21,.28); margin:32px 0 18px; }
.rental-prices div { padding:18px 12px 18px 0; border-right:1px solid rgba(17,16,21,.2); }
.rental-prices div+div { padding-left:15px; }
.rental-prices small,.rental-prices strong,.rental-prices span { display:block; }
.rental-prices small { font-size:9px; margin-bottom:8px; }.rental-prices strong { font:600 25px Georgia,serif; }.rental-prices span { font-size:9px; }
.rental-hours { font-size:11px; margin:0 0 24px; }
.access { display:grid; grid-template-columns:1fr 1fr; background:var(--paper); }
.access-info { padding:105px clamp(28px,7vw,115px); }
.access-info dl { margin:38px 0; border-top:1px solid #d3cbc1; }
.access-info dl>div { display:grid; grid-template-columns:130px 1fr; padding:16px 0; border-bottom:1px solid #d3cbc1; }
.access-info dt { color:var(--muted); font-size:11px; }.access-info dd { margin:0; font-size:14px; line-height:1.8; font-weight:700; }.access-info dd small { color:var(--muted); font-weight:400; }
.access-image { min-height:700px; position:relative; overflow:hidden; background:var(--ink); }
.access-image img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.65) brightness(.58); }
.access-image span { position:absolute; left:42px; bottom:40px; color:white; font:500 clamp(34px,4vw,60px)/1.05 Georgia,serif; letter-spacing:.06em; }
.faq { max-width:1250px; margin:auto; display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; }
.faq-title>p:last-child { color:var(--muted); line-height:2; margin-top:22px; }
.faq-list { border-top:1px solid #d3cbc1; }
.faq-list details { border-bottom:1px solid #d3cbc1; }
.faq-list summary { cursor:pointer; list-style:none; padding:22px 36px 22px 0; position:relative; font-size:14px; font-weight:700; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary:after { content:"＋"; position:absolute; right:4px; color:var(--gold); font-size:20px; font-weight:400; }
.faq-list details[open] summary:after { content:"−"; }
.faq-list details p { color:var(--muted); line-height:1.9; font-size:12px; margin:0; padding:0 35px 22px 0; }
.contact { background:var(--gold); text-align:center; padding:100px 22px; }
.contact>p { font:italic 12px Georgia,serif; letter-spacing:.22em; margin:0 0 18px; }
.contact>span { display:block; margin:22px 0 32px; font-size:13px; }
.contact>div { display:flex; justify-content:center; align-items:center; gap:32px; flex-wrap:wrap; }
.contact-tel { font:600 23px Georgia,serif; }.contact-tel small { display:block; font:10px system-ui,sans-serif; margin-bottom:4px; }
footer { background:#08070a; color:white; padding:65px clamp(24px,6vw,95px) 26px; display:grid; grid-template-columns:1.5fr 1fr; gap:36px; align-items:start; }
.footer-brand { margin:0; justify-self:start; }.footer-brand+.brand-mark { border-color:#777; }
footer>p { color:#8e898e; font-size:11px; line-height:1.9; margin:0; }
footer nav { grid-column:2; grid-row:1 / span 2; display:flex; gap:22px; flex-wrap:wrap; justify-content:flex-end; color:#bbb5bb; font-size:11px; }
footer>small { grid-column:1/-1; border-top:1px solid #29262c; padding-top:24px; color:#625e63; }
.mobile-sticky { display:none; }
@media(max-width:1050px){.site-header nav{display:none}.mobile-menu{display:block;position:relative}.mobile-menu summary{list-style:none;width:32px;cursor:pointer}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary i{display:block;height:1px;background:white;margin:6px 0}.mobile-menu>div{position:absolute;right:0;top:35px;background:var(--ink);padding:20px;min-width:180px;display:grid;gap:15px;font-size:12px}.schedule-grid{grid-template-columns:repeat(3,1fr)}.staff-grid{grid-template-columns:repeat(2,1fr)}.lesson-card{grid-template-columns:1fr 1fr}.rental,.access{grid-template-columns:1fr}.rental>img{min-height:480px}.access-image{min-height:480px}.faq{gap:45px}}
@media(max-width:700px){body{padding-bottom:58px}.site-header{height:72px;padding:0 18px}.header-cta{display:none}.brand{font-size:11px}.brand-mark{width:32px;height:32px}.hero{min-height:760px}.hero-copy{left:22px;right:22px;top:43%}.hero h1{font-size:42px}.hero-lead br{display:none}.hero-facts{left:0;grid-template-columns:repeat(3,1fr)}.hero-facts div{padding:18px 10px}.hero-facts strong{font-size:14px}.hero-facts span{font-size:8px}.section{padding:76px 20px}.section-head{display:block;margin-bottom:36px}.section-head>p{margin-top:17px}.trust-row{grid-template-columns:1fr}.trust-row span{border-right:0;border-bottom:1px solid #d9d1c7}.lesson-card{display:block;min-height:0}.lesson-card:nth-child(even) .lesson-image{order:initial}.lesson-image{height:310px;min-height:0}.lesson-body{padding:35px 24px}.beginner{display:block}.beginner-photo,.beginner-photo img{height:420px;min-height:0}.beginner-photo span{right:0}.beginner-copy{padding-top:52px}.schedule-grid{grid-template-columns:1fr 1fr}.private-lesson-note{grid-template-columns:1fr;gap:12px;padding:22px 20px}.staff-grid{grid-template-columns:1fr 1fr;gap:14px}.staff-photo{height:270px}.staff-grid h3{font-size:20px}.staff-copy{font-size:10px}.rental-copy{padding:76px 20px}.rental-prices{grid-template-columns:1fr}.rental-prices div,.rental-prices div+div{padding:14px 0;border-right:0;border-bottom:1px solid rgba(17,16,21,.2)}.rental>img{min-height:320px}.access-info{padding:76px 20px}.access-info dl>div{grid-template-columns:95px 1fr}.access-image{min-height:370px}.faq{display:block;padding:76px 20px}.faq-list{margin-top:45px}.contact{padding:76px 20px}footer{display:block;padding:52px 20px 28px}footer>p{margin:22px 0}footer nav{justify-content:flex-start;margin-bottom:35px}footer>small{display:block}.mobile-sticky{display:block;position:fixed;z-index:40;left:0;right:0;bottom:0;height:58px;background:var(--gold);color:var(--ink);text-align:center;padding:19px;font-size:12px;font-weight:800;letter-spacing:.06em}}
@media(max-width:430px){.staff-grid{grid-template-columns:1fr}.staff-photo{height:400px}.schedule-grid{grid-template-columns:1fr}.button{width:100%}.hero-actions .button{width:auto;min-width:0;flex:1}.access-actions .button{width:auto;min-width:0;flex:1}.hero-facts strong{font-size:12px}.hero-facts span{line-height:1.4}}
