:root{
  --paper:#f2efe8;
  --ink:#2c2a26;
  --deep:#24403b;
  --deep-soft:#2c4b45;
  --accent:#a2542a;
  --rule:#b3a894;
  --cream:#ebe5d8;
  --pad:32px;
  --serif:'Zen Old Mincho', Georgia, serif;
  --disp:'Zen Old Mincho', Georgia, serif;
  --sans:'Zen Kaku Gothic New', 'Helvetica Neue', Arial, sans-serif;
  --mono:'IBM Plex Mono', 'Courier New', monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background-color:var(--paper);background-image:url('assets/paper.svg');background-size:400px 400px;background-repeat:repeat;background-attachment:fixed;
  color:var(--ink);
  font-family:var(--serif);
  font-size:17px;
  line-height:1.62;
  overflow-x:hidden;
  word-break:normal;
  line-break:strict;
}
/* 일본어는 아무 데서나 끊으면 «円山公/園駅» 처럼 낱말이 갈린다 — 긴 라틴 문자열에만 허용한다 */
a[href^="mailto:"],.mail-form input{overflow-wrap:anywhere}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
p{margin:0 0 1em}
ul{margin:0;padding:0;list-style:none}

.display{
  font-family:var(--disp);
  font-weight:600;
  color:var(--deep);
  margin:0;
  line-height:1.24;
  text-wrap:balance;
}
:lang(en) .display{line-height:1.1}
.sans{font-family:var(--sans);font-weight:500;letter-spacing:.02em}
.mono{font-family:var(--mono);font-size:.78em;letter-spacing:.02em}

/* ── 알림 띠 ─────────────────────────────────── */
.announce{
  position:relative;
  background:var(--accent);
  color:#f8f3ea;
  text-align:center;
  padding:8px 44px 7px;
}
.announce p{margin:0;font-size:14px;line-height:1.3;font-family:var(--sans)}
.announce.gone{display:none}
.announce-x{
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  background:none;border:0;padding:6px;cursor:pointer;line-height:0;
  opacity:.85;transition:opacity .25s ease;
}
.announce-x:hover{opacity:1}
.announce-x svg{width:11px;height:11px;stroke:#f8f3ea;stroke-width:1.6;stroke-linecap:round;fill:none}

/* ── 머리 ───────────────────────────────────── */
.head{
  display:flex;align-items:center;
  padding:16px var(--pad) 12px;
  gap:28px;
}
.logo{display:flex;align-items:baseline;gap:14px;flex:0 0 auto}
.logo-mark{
  font-family:var(--disp);font-weight:600;font-size:29px;color:var(--deep);
  letter-spacing:.1em;line-height:1;white-space:nowrap;
}
.logo-sub{display:flex;flex-direction:column;font-family:var(--sans);font-size:10.5px;line-height:1.5;color:var(--deep-soft);letter-spacing:.04em;white-space:nowrap}
.nav{display:flex;gap:30px;margin-left:44px}
.nav a,.head-util a{
  font-family:var(--sans);
  font-size:13.5px;
  letter-spacing:.09em;
  color:var(--deep);
  padding-bottom:2px;
  white-space:nowrap;
}
:lang(en) .nav a,:lang(en) .head-util a{text-transform:uppercase;font-size:13px}
.nav a:hover,.head-util a:hover{color:var(--accent)}
.head-util{display:flex;gap:22px;margin-left:auto;align-items:center}
.head-util .lang{border-bottom:1px solid var(--rule)}
.burger{display:none}

/* ── 히어로 ─────────────────────────────────── */
.hero{margin:0 var(--pad)}
.hero img{width:100%;height:715px;object-fit:cover;object-position:center 52%}

/* ── 소개 ───────────────────────────────────── */
.intro{
  display:grid;
  grid-template-columns:470px 233px minmax(0,1fr);
  align-items:start;
  gap:0 24px;
  padding:26px var(--pad) 8px;
}
.intro h1{font-size:40px;max-width:420px;letter-spacing:.01em}
:lang(en) .intro h1{font-size:50px;max-width:400px}
.intro-draw{align-self:center;padding-top:16px}
.intro-draw img{width:120px;margin:0 auto}
.intro-body{padding-top:10px;font-size:16px}
.intro-body p{margin-bottom:18px}

/* ── 버튼 ───────────────────────────────────── */
.btn{
  display:inline-block;
  background:var(--accent);
  color:#f8f3ea;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.11em;
  padding:5px 12px 4px;
  transition:background-color .3s ease;
}
:lang(en) .btn{text-transform:uppercase}
.btn:hover{background:var(--deep)}

/* ── 물결 구분선 ────────────────────────────── */
.divider{padding:26px 42px}
.divider img{width:100%;height:auto}

/* ── 레슨과 요금 ────────────────────────────── */
.menu{
  display:grid;
  grid-template-columns:336px 185px 336px 126px 336px;
  gap:0;
  padding:16px var(--pad) 40px;
}
.menu > *:nth-child(1){grid-column:1}
.menu > *:nth-child(2){grid-column:3}
.menu > *:nth-child(3){grid-column:5}
.menu h2.display{font-size:29px;margin-bottom:14px}
.menu h3.display{font-size:21px;margin-bottom:20px}
.menu h3.gap{margin-top:52px}
.menu-lede p{font-size:16px;margin-bottom:26px}
.special{margin:0}
.special img{width:100%;height:460px;object-fit:cover}
.special figcaption{
  margin-top:8px;
  font-family:var(--mono);
  font-size:12.5px;
  color:#4d453a;
  letter-spacing:.01em;
}
.special figcaption .sans{
  font-family:var(--sans);
  font-size:13.5px;
  letter-spacing:.01em;
  color:var(--deep);
}

.rows li{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:start;
  gap:0 18px;
  padding:6px 0;
}
.rows .item{
  font-family:var(--sans);
  font-size:14px;
  letter-spacing:.015em;
  color:#3a362f;
  line-height:1.45;
}
:lang(en) .rows .item{text-transform:uppercase}
.rows .note{
  display:block;
  font-family:var(--mono);
  font-style:normal;
  font-size:12px;
  letter-spacing:0;
  color:#5d554a;
  line-height:1.45;
  margin-top:3px;
}
.rows .price{
  font-family:var(--mono);
  font-size:15px;
  color:var(--deep);
  align-self:center;
  white-space:nowrap;
}
.specials li{cursor:default}
.specials li:hover .item{color:var(--accent)}

.menu-draw{margin-top:52px;display:flex;justify-content:flex-end}
.menu-draw img{width:130px}

/* ── 주간 클래스 띠 ─────────────────────────── */
.week{position:relative;margin:0 var(--pad)}
.week-bg{width:100%;height:550px;object-fit:cover;object-position:center 58%}
.week::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top right, rgba(18,22,20,.82) 0%, rgba(18,22,20,.46) 34%, rgba(18,22,20,0) 64%);
}
.week-copy{
  position:absolute;left:36px;bottom:32px;z-index:2;
  max-width:520px;color:#fff;
}
.week-copy h2{color:#fff;font-size:34px;margin-bottom:12px}
.week-copy .kicker{
  font-size:13.5px;letter-spacing:.04em;margin-bottom:14px;
}
.week-copy p{font-size:15.5px;line-height:1.6}
.week-copy p:last-child{margin:0;max-width:510px}

/* ── 예정 ───────────────────────────────────── */
.event{
  display:grid;
  grid-template-columns:683px 1fr;
  gap:0 68px;
  padding:16px var(--pad) 30px;
}
.event-img{margin:0}
.event-img img{width:100%;height:780px;object-fit:cover}
.event-copy{position:relative;padding-top:8px}
.event-copy .kicker{
  font-family:var(--sans);
  font-size:13.5px;
  letter-spacing:.04em;
  color:var(--deep-soft);
  line-height:1.6;
  margin-bottom:72px;
}
.display.xl{font-size:42px;margin-bottom:16px}
:lang(en) .display.xl{font-size:46px}
.event-copy p{max-width:380px}
.event-copy .btn{margin-top:12px}
.event-draw{position:absolute;right:26px;top:318px}
.event-draw img{width:132px}

/* ── 클래스의 종류 ──────────────────────────── */
.classes{padding:16px 0 30px}
.classes-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--pad) 26px;
}
.classes-head h2{font-size:27px}
.classes-row{
  display:flex;gap:38px;
  padding:0 var(--pad) 12px;
  overflow-x:auto;
  scrollbar-width:none;
}
.classes-row::-webkit-scrollbar{display:none}
.card{flex:0 0 340px;display:block}
.card-img{
  position:relative;display:block;
  width:100%;height:475px;overflow:hidden;
}
.card-img img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
}
.card-img img.b{opacity:0;transition:opacity .4s ease}
.card:hover .card-img img.b{opacity:1}
.soldout{
  position:absolute;right:0;top:0;z-index:3;
  background:var(--deep);color:var(--cream);
  font-family:var(--sans);font-style:normal;
  font-size:13px;letter-spacing:.05em;
  padding:5px 12px 4px;
}
:lang(en) .soldout{text-transform:uppercase}
.card-name{
  display:block;text-align:center;margin-top:14px;
  font-size:14px;letter-spacing:.03em;color:var(--deep);
}
:lang(en) .card-name{text-transform:uppercase}
.card-desc,.card-size{
  display:block;text-align:center;margin-top:6px;
  font-family:var(--mono);font-size:11.5px;line-height:1.5;color:#5d554a;
}
.card-size{margin-top:12px;color:var(--accent)}

/* ── 기록 ───────────────────────────────────── */
.journal{
  display:grid;
  grid-template-columns:430px 437px 437px;
  gap:0 38px;
  padding:16px var(--pad) 46px;
}
.journal-lede{position:relative;padding-right:30px}
.journal-lede h2{font-size:27px;margin-bottom:16px}
.journal-lede p{font-size:16px;margin-bottom:20px}
.journal-draw{margin-top:86px}
.journal-draw img{width:180px}
.post-img img{width:100%;height:584px;object-fit:cover}
.post-head{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:20px;margin:14px 0 10px;
}
.post-head h3{font-size:23px;max-width:16ch}
:lang(en) .post-head h3{font-size:26px;max-width:19ch}
.tag{
  font-size:13px;letter-spacing:.05em;
  color:var(--accent);white-space:nowrap;padding-top:5px;
}
:lang(en) .tag{text-transform:uppercase}
.post p{font-size:16px;margin-bottom:14px}

/* ── よくある質問 ───────────────────────────── */
.faq{padding:16px var(--pad) 48px}
.faq > h2{font-size:27px;margin-bottom:26px}
.faq-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px 38px;
}
.qa .q{
  margin:0 0 8px;
  font-size:15px;font-weight:500;color:var(--deep);
  line-height:1.5;
}
.qa .a{margin:0;font-size:15.5px;color:#403b34}

/* ── 푸터 ───────────────────────────────────── */
.foot{
  position:relative;
  background:var(--deep);
  color:var(--cream);
  padding:46px var(--pad) 40px;
}
.foot-grid{
  display:grid;
  grid-template-columns:340px minmax(0,1fr) 407px 102px;
  gap:0 24px;
}
.foot-mail p{font-size:16px;line-height:1.6}
.foot-col:nth-of-type(2){grid-column:3}
.foot-col:nth-of-type(3){grid-column:4}
.mail-form{display:flex;align-items:flex-end;gap:16px;margin-top:22px;max-width:332px;border-bottom:1px solid rgba(235,229,216,.55)}
.mail-form input{
  flex:1;background:none;border:0;
  color:var(--cream);font-family:var(--sans);font-size:14px;
  letter-spacing:.02em;padding:6px 0 8px;
}
.mail-form input::placeholder{color:rgba(235,229,216,.72)}
.mail-form input:focus{outline:none}
.mail-form:focus-within{border-bottom-color:var(--cream)}
.mail-form button{
  background:none;border:0;color:var(--cream);cursor:pointer;
  font-family:var(--mono);font-size:13px;letter-spacing:.08em;
  padding:0 0 8px;
}
.foot-col h4{
  margin:0 0 12px;font-family:var(--mono);font-weight:400;
  font-size:12px;letter-spacing:.11em;
  color:rgba(235,229,216,.85);
}
:lang(en) .foot-col h4,:lang(en) .mail-form button,:lang(en) .mail-form input{text-transform:uppercase}
.foot-col p{font-size:15.5px;line-height:1.72}
.foot-col p.nb{word-break:keep-all}
.foot-col a:hover{color:#fff;text-decoration:underline}
.social{margin-top:18px}
.sitemap{line-height:1.9}
.sitemap .lang{border-bottom:1px solid rgba(235,229,216,.5)}

.totop{position:relative;display:block;width:280px;height:292px;margin-top:40px}
.totop-type{
  position:absolute;left:0;top:44px;z-index:2;
  font-family:var(--mono);font-size:13px;letter-spacing:.12em;color:var(--cream);
}
:lang(en) .totop-type{text-transform:uppercase}
.totop-draw{position:absolute;left:36px;top:26px;width:200px;z-index:1;opacity:.9}
.totop-draw.b{opacity:0;transition:opacity .25s ease}
.totop:hover .totop-draw.a{opacity:0;transition:opacity .25s ease}
.totop:hover .totop-draw.b{opacity:1}
.submark{
  position:absolute;right:var(--pad);bottom:44px;width:70px;opacity:.6;
  filter:brightness(0) invert(1);
}

.colophon{
  background:var(--accent);color:#f8f3ea;text-align:center;
  padding:8px 16px;font-size:12px;letter-spacing:.06em;
}

/* ── 나타남(리빌) ───────────────────────────── */
.reveal{opacity:0;transition:opacity .85s ease-out}
.reveal.in{opacity:1}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transition:none}
  html{scroll-behavior:auto}
}

/* ── 1441 위: 금형의 1440 비례를 그대로 늘린다(고정 px 격자가 남기던 오른쪽 빈자리 제거) ── */
@media (min-width:1441px){
  .menu{grid-template-columns:minmax(0,336fr) minmax(0,185fr) minmax(0,336fr) minmax(0,126fr) minmax(0,336fr)}
  .event{grid-template-columns:minmax(0,683fr) minmax(0,625fr)}
  .journal{grid-template-columns:minmax(0,430fr) minmax(0,437fr) minmax(0,437fr)}
  .foot-grid{grid-template-columns:minmax(0,340fr) minmax(0,127fr) minmax(0,407fr) minmax(0,102fr)}
  .menu-lede p,.journal-lede p,.post p,.foot-mail p,.intro-body p,.event-copy p,.qa .a{max-width:34em}
}

/* ── 1200 아래 ──────────────────────────────── */
@media (max-width:1200px){
  .menu{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1.25fr);gap:0 34px}
  .menu > *:nth-child(1),.menu > *:nth-child(2),.menu > *:nth-child(3){grid-column:auto}
  .event{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0 44px}
  .event-img img{height:620px}
  .journal{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:0 28px}
  .post-img img{height:520px;object-fit:cover}
  .display.xl{font-size:40px}
  :lang(en) .display.xl{font-size:44px}
  .intro h1{font-size:35px}
  :lang(en) .intro h1{font-size:42px}
  .nav{margin-left:24px;gap:22px}
  .head-util{gap:18px}
  .faq-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ── 960 아래 ───────────────────────────────── */
@media (max-width:960px){
  :root{--pad:26px}
  .head{flex-wrap:wrap;gap:14px 20px}
  .logo-mark{font-size:25px}
  .nav{margin-left:auto;gap:18px}
  .nav a,.head-util a{font-size:12.5px}
  .head-util{margin-left:auto;gap:18px}
  .hero img{height:560px}
  .intro{grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr);gap:0 18px}
  .intro h1{font-size:30px}
  :lang(en) .intro h1{font-size:36px}
  .intro-draw img{width:96px}
  .menu{grid-template-columns:minmax(0,0.85fr) minmax(0,1fr) minmax(0,1fr);gap:0 26px}
  .menu > *:nth-child(1),.menu > *:nth-child(2),.menu > *:nth-child(3){grid-column:auto}
  .special img{height:420px}
  .rows .item{font-size:13px}
  .rows .price{font-size:14px}
  .week-bg{height:430px}
  .week::after{background:linear-gradient(to top, rgba(18,22,20,.86) 0%, rgba(18,22,20,.6) 38%, rgba(18,22,20,.12) 72%)}
  .week-copy h2{font-size:28px}
  .event{grid-template-columns:1fr;gap:26px}
  .event-img img{height:430px}
  .event-copy .kicker{margin-bottom:24px}
  .display.xl{font-size:36px}
  :lang(en) .display.xl{font-size:42px}
  .event-draw{position:static;margin-top:26px;display:flex;justify-content:flex-end}
  .journal{grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr);gap:26px 30px}
  .journal-lede{grid-row:span 2}
  .journal-draw{margin-top:54px}
  .post-img img{height:560px}
  .card{flex:0 0 280px}
  .card-img{height:390px}
  .foot-grid{grid-template-columns:minmax(0,1fr) minmax(0,220px) minmax(0,180px);gap:0 20px}
  .foot-col:nth-of-type(2){grid-column:2}
  .foot-col:nth-of-type(3){grid-column:3}
}

/* ── 700 아래 ───────────────────────────────── */
@media (max-width:700px){
  :root{--pad:22px}
  body{font-size:16.5px}
  .head{gap:0;padding:12px var(--pad)}
  .logo{flex:0 0 auto;gap:10px}
  .logo-mark{font-size:22px;letter-spacing:.08em}
  .logo-sub{display:none}
  .head-util a:nth-of-type(3){display:none}
  .nav{
    order:3;width:100%;margin:14px 0 0;
    display:none;flex-direction:column;gap:12px;
  }
  .nav.open{display:flex}
  .head-util{margin-left:auto;gap:16px;align-items:center}
  .burger{
    display:flex;flex-direction:column;justify-content:center;gap:6px;
    width:34px;height:24px;background:none;border:0;padding:0;cursor:pointer;
  }
  .burger span{display:block;height:1.5px;background:var(--deep)}
  .hero img{height:520px}
  .intro{grid-template-columns:1fr;padding-top:22px}
  .intro h1{font-size:27px;max-width:none;margin-bottom:18px}
  :lang(en) .intro h1{font-size:32px}
  .intro-draw{order:3;padding-top:8px}
  .intro-draw img{width:104px;margin:0 auto}
  .intro-body{padding-top:0}
  .divider{padding:20px var(--pad)}
  .menu{grid-template-columns:1fr;gap:44px}
  .menu > *:nth-child(1),.menu > *:nth-child(2),.menu > *:nth-child(3){grid-column:auto}
  .menu h2.display{font-size:24px}
  .menu h3.gap{margin-top:40px}
  .special img{height:470px}
  .menu-draw{margin-top:34px;justify-content:center}
  .week-bg{height:420px}
  .week-copy{left:20px;right:20px;bottom:24px;max-width:none}
  .week-copy h2{font-size:24px}
  .week-copy p{font-size:15px}
  .event-img img{height:330px}
  .event-copy .kicker{margin-bottom:16px}
  .display.xl{font-size:30px}
  :lang(en) .display.xl{font-size:36px}
  .event-copy p{max-width:none}
  .event-draw{position:absolute;top:-6px;right:0;margin:0}
  .event-draw img{width:78px}
  .classes-head h2{font-size:24px}
  .classes-row{gap:26px}
  .card{flex:0 0 216px}
  .card-img{height:290px}
  .card-name{font-size:13px}
  .card-desc,.card-size{font-size:11px}
  .journal{grid-template-columns:1fr;gap:38px}
  .journal-lede{grid-row:auto;padding-right:0}
  .journal-lede h2{font-size:24px}
  .journal-draw{margin-top:30px;display:flex;justify-content:center}
  .post-img img{height:430px}
  .post-head{flex-direction:column;gap:6px}
  .post-head h3{font-size:21px;max-width:none}
  :lang(en) .post-head h3{font-size:24px}
  .tag{padding-top:0}
  .faq > h2{font-size:24px}
  .faq-grid{grid-template-columns:1fr;gap:24px}
  .foot{padding:34px var(--pad) 34px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:30px 20px}
  .foot-mail{grid-column:1 / -1}
  .foot-col:nth-of-type(2){grid-column:1 / -1}
  .foot-col:nth-of-type(3){grid-column:1 / -1}
  .totop{width:230px;height:246px;margin-top:34px}
  .totop-type{top:36px}
  .totop-draw{left:28px;top:20px;width:166px}
  .submark{right:var(--pad);bottom:40px;width:56px}
  .colophon{font-size:11px;line-height:1.8;padding:9px 16px}
}
