/* ──────────────────────────────────────────────────────────────
   초하필라테스 — choha.metatrance.co.kr
   톤: 버건디·크림 에디토리얼. 로고의 반원(아치) 모티프를 화면 전체에 반복한다.
   폰트: Cormorant Garamond(라틴 디스플레이) · MaruBuri(한글 제목 세리프) · Pretendard(본문)
   ────────────────────────────────────────────────────────────── */

:root{
  /* 2026-10-19 사용자 확정: 로고 틸 계열. 변수 이름 --wine 은 «주색» 역할명으로 그대로 둔다 */
  --cream:#F1F3EF;
  --cream-2:#E5EAE6;
  --sand:#BFD3D1;
  --wine:#2E7D86;
  --wine-2:#24656D;
  --wine-deep:#123E45;
  --ink:#11272B;
  --ink-2:#3B5156;
  --mute:#7C9094;
  --line:rgba(17,39,43,.14);
  --line-on-dark:rgba(241,243,239,.2);
  --teal:#2F7F88;
  --glow-1:rgba(80,160,170,.4);
  --glow-2:rgba(214,199,176,.14);
  --glow-3:rgba(46,125,134,.55);

  --serif-lat:'Cormorant Garamond', 'Times New Roman', serif;
  --serif-kr:'MaruBuri', 'Noto Serif KR', serif;
  --sans:'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, sans-serif;

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --gutter:clamp(16px, 5vw, 72px);
  --max:1440px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{height:100%}
body{
  font-family:var(--sans);
  font-weight:400;
  color:var(--ink);
  background:var(--cream);
  line-height:1.65;
  letter-spacing:-.005em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
body.is-locked{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
::selection{background:var(--wine);color:var(--cream)}

/* 타이포 유틸 */
.lat{font-family:var(--serif-lat);font-weight:400}
.lat.i{font-style:italic}
.kr{font-family:var(--serif-kr);font-weight:400}
.eyebrow{
  font-family:var(--serif-lat);
  font-size:11.5px;letter-spacing:.42em;text-transform:uppercase;
  color:var(--mute);
  display:inline-flex;align-items:center;gap:14px;
}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.on-dark .eyebrow{color:rgba(243,237,227,.6)}
.h-display{
  font-family:var(--serif-kr);
  font-weight:400;
  line-height:1.18;
  letter-spacing:-.02em;
  font-size:clamp(34px, 5.2vw, 76px);
}
.h-display em{font-family:var(--serif-lat);font-style:italic;font-weight:400;letter-spacing:0}
.h-sec{
  font-family:var(--serif-kr);font-weight:400;
  font-size:clamp(28px, 3.6vw, 54px);line-height:1.3;letter-spacing:-.02em;
}
.h-sec em{font-family:var(--serif-lat);font-style:italic;font-weight:400;letter-spacing:0;font-size:1.12em}
.lead{font-size:clamp(15.5px,1.2vw,18px);line-height:2;color:var(--ink-2);max-width:54ch;word-break:keep-all;letter-spacing:.005em}
.on-dark .lead{color:rgba(243,237,227,.78)}
.small{font-size:13px;color:var(--mute);line-height:1.7}
.on-dark .small{color:rgba(243,237,227,.55)}
.kb{word-break:keep-all}

/* 그레인 오버레이 */
.grain{
  pointer-events:none;position:fixed;inset:-50%;z-index:9000;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity:.055;mix-blend-mode:multiply;
  animation:grain 1.2s steps(6) infinite;
}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-4%)}60%{transform:translate(-4%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* 커스텀 커서 (데스크톱) */
.cursor{position:fixed;left:0;top:0;z-index:9500;pointer-events:none;mix-blend-mode:difference;display:none;opacity:0;transition:opacity .3s}
.cursor.is-live{opacity:1}
.cursor__dot{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}
.cursor__ring{position:absolute;width:36px;height:36px;border:1px solid #fff;border-radius:50%;transform:translate(-50%,-50%);transition:width .35s var(--ease),height .35s var(--ease),opacity .3s}
.cursor.is-hover .cursor__ring{width:64px;height:64px}
.cursor.is-drag .cursor__ring{width:84px;height:84px}
.cursor__label{position:absolute;transform:translate(-50%,-50%);font-family:var(--serif-lat);font-style:italic;font-size:14px;color:#fff;opacity:0;transition:opacity .25s;white-space:nowrap}
.cursor.is-drag .cursor__label{opacity:1}
@media (hover:hover) and (pointer:fine){
  .cursor{display:block}
  body{cursor:none}
  a,button,[data-cursor]{cursor:none}
}

/* 프리로더 */
.loader{
  position:fixed;inset:0;z-index:9800;background:var(--wine-deep);color:var(--cream);
  display:grid;place-items:center;
  transition:clip-path 1.1s var(--ease-out), visibility 0s 1.1s;
  clip-path:inset(0 0 0 0);
}
.loader.is-done{clip-path:inset(0 0 100% 0);visibility:hidden}
.loader__inner{display:flex;flex-direction:column;align-items:center;gap:22px}
.loader__mark{width:84px;height:auto}
.loader__mark path{stroke-dasharray:140;stroke-dashoffset:140;animation:draw 1.4s var(--ease) forwards}
.loader__mark path:nth-child(2){animation-delay:.08s}
.loader__mark path:nth-child(3){animation-delay:.16s}
.loader__mark path:nth-child(4){animation-delay:.3s}
.loader__mark path:nth-child(5){animation-delay:.4s}
.loader__mark path:nth-child(6){animation-delay:.52s}
.loader__mark path:nth-child(7){animation-delay:.62s}
@keyframes draw{to{stroke-dashoffset:0}}
.loader__word{font-family:var(--serif-lat);font-style:italic;font-size:18px;letter-spacing:.18em;opacity:0;animation:fadeup 1s .7s var(--ease) forwards}
.loader__word span{font-family:var(--sans);font-style:normal;font-weight:300;letter-spacing:.3em;margin-left:.5em}
@keyframes fadeup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* 헤더 */
.header{
  position:fixed;top:0;left:0;right:0;z-index:800;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px var(--gutter);
  color:var(--cream);
  transition:padding .4s var(--ease), color .4s, background .4s;
}
.header::before{
  content:"";position:absolute;inset:0;background:var(--cream);
  transform:translateY(-100%);transition:transform .5s var(--ease);
  border-bottom:1px solid var(--line);
}
.header.is-solid{color:var(--ink);padding:14px var(--gutter)}
.header.is-solid::before{transform:none}
.header>*{position:relative}
.brand{display:flex;align-items:center;gap:12px;white-space:nowrap}
.brand__mark{width:26px;height:auto;display:block}
.brand__name{font-family:var(--serif-lat);font-size:19px;letter-spacing:.22em;text-transform:uppercase;font-weight:500}
.brand__name b{font-family:var(--sans);font-weight:400;letter-spacing:.12em;font-size:15px;margin-left:.4em;text-transform:none}
.nav{display:flex;gap:30px;margin:0 20px}
.nav a{position:relative;font-size:14px;letter-spacing:.02em;padding:6px 0;opacity:.85;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav a:hover::after{transform:scaleX(1);transform-origin:left}
.header__cta{display:flex;align-items:center;gap:14px}
.call{position:relative;display:inline-flex;align-items:center;gap:10px;height:40px;padding:0 18px 0 16px;border:1px solid currentColor;border-radius:999px;overflow:hidden;white-space:nowrap;isolation:isolate}
.call svg{width:15px;height:15px;flex:none}
.call__txt{position:relative;display:block;height:1.2em;line-height:1.2em;overflow:hidden;min-width:12.5ch}
.call__txt span{display:block;transition:transform .55s var(--ease-out)}
.call__a{font-family:var(--serif-lat);font-style:italic;font-size:16px;letter-spacing:.14em}
.call__b{position:absolute;left:0;top:0;transform:translateY(130%);font-family:var(--serif-lat);font-size:16px;letter-spacing:.08em;font-weight:500}
.call:hover .call__a{transform:translateY(-130%)}
.call:hover .call__b{transform:none}
.call::before{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity .4s;z-index:-1}
.call:hover::before{opacity:.08}
.menu-btn{display:none;width:44px;height:44px;place-items:center;position:relative}
.menu-btn span{position:absolute;left:11px;width:22px;height:1.5px;background:currentColor;transition:transform .4s var(--ease),top .4s var(--ease),opacity .3s}
.menu-btn span:nth-child(1){top:17px}
.menu-btn span:nth-child(2){top:26px}
.menu-btn.is-open span:nth-child(1){top:21px;transform:rotate(45deg)}
.menu-btn.is-open span:nth-child(2){top:21px;transform:rotate(-45deg)}

/* 버튼 */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:14px;
  padding:16px 26px;border-radius:999px;
  font-size:14px;letter-spacing:.04em;
  border:1px solid currentColor;overflow:hidden;
  transition:color .4s var(--ease);
  isolation:isolate;
}
.btn::before{content:"";position:absolute;inset:0;background:var(--btn-fill);transform:translateY(101%);transition:transform .5s var(--ease-out);z-index:-1;border-radius:inherit}
.btn:hover::before{transform:none}
.btn .btn__ico{width:18px;height:18px;flex:none;transition:transform .5s var(--ease)}
.btn:hover .btn__ico{transform:translateX(4px)}
.btn--cream{color:var(--cream);--btn-fill:var(--cream)}
.btn--cream:hover{color:var(--wine-deep);border-color:var(--cream)}
.btn--wine{color:var(--wine);--btn-fill:var(--wine)}
.btn--wine:hover{color:var(--cream);border-color:var(--wine)}
.btn--solid{background:var(--wine);color:var(--cream);border-color:var(--wine);--btn-fill:var(--cream)}
.btn--solid:hover{color:var(--wine)}
.btn span{position:relative}

/* 섹션 공통 */
.section{position:relative;padding:clamp(140px,17vw,270px) var(--gutter)}
.wrap{max-width:var(--max);margin:0 auto;position:relative}
.on-dark{background:var(--wine);color:var(--cream)}
.on-deep{background:var(--wine-deep);color:var(--cream)}
.on-cream2{background:var(--cream-2)}
.sec-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:26px;max-width:64ch;margin:0 auto clamp(80px,10vw,150px)}
.sec-head .lead{text-align:center;max-width:58ch;text-wrap:pretty}
.sec-head .h-sec{text-wrap:balance}
.sec-head .eyebrow::after{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.sec-head .h-sec{margin-top:0!important}
.sec-head .sub-en{margin:-6px 0 0}
.num-tag{font-family:var(--serif-lat);font-style:italic;font-size:15px;color:var(--mute);letter-spacing:.08em}
.sub-en{display:block;margin-top:18px;margin-bottom:34px;font-family:var(--serif-lat);font-style:italic;font-weight:400;font-size:clamp(16px,1.5vw,22px);letter-spacing:.04em;color:var(--mute)}
.on-dark .sub-en{color:var(--sand)}
.nav a i{font-family:var(--serif-lat);font-style:italic;font-size:12px;letter-spacing:.08em;margin-left:.4em;opacity:.6}

/* 리빌 */
.rv{opacity:0;transform:translateY(24px);transition:opacity 1.4s var(--ease),transform 1.5s var(--ease-out)}
.rv.is-in{opacity:1;transform:none}
.rv-line{display:block;overflow:hidden}
.rv-line>span{display:block;transform:translateY(110%);transition:transform 1.1s var(--ease-out)}
.is-in .rv-line>span{transform:none}
.is-in .rv-line:nth-child(2)>span{transition-delay:.08s}
.is-in .rv-line:nth-child(3)>span{transition-delay:.16s}
.is-in .rv-line:nth-child(4)>span{transition-delay:.24s}
.rv-img{clip-path:inset(0 0 100% 0);transition:clip-path 1.7s var(--ease-out)}
.rv-img.is-in{clip-path:inset(0 0 0 0)}
[data-stagger]>*{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform 1s var(--ease-out)}
[data-stagger].is-in>*{opacity:1;transform:none}
[data-stagger].is-in>*:nth-child(1){transition-delay:.0s}
[data-stagger].is-in>*:nth-child(2){transition-delay:.1s}
[data-stagger].is-in>*:nth-child(3){transition-delay:.2s}
[data-stagger].is-in>*:nth-child(4){transition-delay:.3s}
[data-stagger].is-in>*:nth-child(5){transition-delay:.4s}
[data-stagger].is-in>*:nth-child(6){transition-delay:.5s}
[data-stagger].is-in>*:nth-child(7){transition-delay:.6s}
[data-stagger].is-in>*:nth-child(8){transition-delay:.7s}

/* 아치 (로고 반원 모티프) */
.arch{border-radius:999px 999px 0 0;overflow:hidden;position:relative;background:var(--sand)}
.arch img{width:100%;height:100%;object-fit:cover}
.arch--ring::after{content:"";position:absolute;inset:14px;border:1px solid rgba(243,237,227,.5);border-radius:inherit;pointer-events:none}

/* ───────── HERO ───────── */
.hero{
  position:relative;min-height:min(100svh,1100px);
  background:var(--wine-deep);color:var(--cream);
  padding:clamp(140px,18vh,220px) var(--gutter) 0;
  overflow:hidden;
  display:flex;flex-direction:column;
}
.hero__bg{position:absolute;inset:0;pointer-events:none}
.hero__bg::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(60% 50% at 20% 10%, var(--glow-1), transparent 70%),
    radial-gradient(40% 40% at 85% 85%, var(--glow-2), transparent 70%),
    radial-gradient(70% 60% at 60% 50%, var(--glow-3), transparent 75%);
}
.hero__arcs{position:absolute;right:-6vw;bottom:-2vw;width:min(78vw,1180px);height:auto;overflow:visible}
.hero__arcs .arc{fill:none;stroke:rgba(241,243,239,.16);stroke-width:1}
.hero__arcs .arc--bold{stroke:rgba(241,243,239,.28);stroke-width:1.2}
.hero__arcs .base{stroke:rgba(241,243,239,.35);stroke-width:1.2}
.hero__arcs .comet{fill:none;stroke:var(--sand);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:160 1600;animation:comet 11s cubic-bezier(.45,0,.3,1) infinite}
.hero__arcs .comet--2{stroke-dasharray:90 1300;animation-duration:17s;animation-delay:-6s;opacity:.7}
@keyframes comet{from{stroke-dashoffset:1760}to{stroke-dashoffset:-1760}}
.hero__arcs .dot{fill:var(--sand);animation:dotpulse 4s ease-in-out infinite}
@keyframes dotpulse{0%,100%{opacity:.5;r:3}50%{opacity:1;r:4.5}}
.hero__light{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(60px);opacity:.55;mix-blend-mode:screen;pointer-events:none}
.hero__light--1{left:-20vmax;top:-25vmax;background:radial-gradient(circle,rgba(120,200,205,.45),transparent 60%);animation:drift1 22s ease-in-out infinite alternate}
.hero__light--2{right:-15vmax;bottom:-30vmax;background:radial-gradient(circle,rgba(214,199,176,.28),transparent 60%);animation:drift2 28s ease-in-out infinite alternate}
@keyframes drift1{from{transform:translate(0,0) scale(1)}to{transform:translate(14vw,10vh) scale(1.15)}}
@keyframes drift2{from{transform:translate(0,0) scale(1.1)}to{transform:translate(-12vw,-14vh) scale(.95)}}
.hero__grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(241,243,239,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(241,243,239,.05) 1px,transparent 1px);background-size:160px 160px;mask-image:radial-gradient(70% 70% at 50% 50%,#000 30%,transparent 100%);-webkit-mask-image:radial-gradient(70% 70% at 50% 50%,#000 30%,transparent 100%)}
@keyframes spin{to{transform:rotate(360deg)}}

.hero__grid{
  position:relative;flex:1;
  display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,5vw,80px);
  max-width:var(--max);margin:0 auto;width:100%;align-items:center;
}
.hero__copy{position:relative;z-index:2;padding-bottom:clamp(40px,8vh,96px)}
.hero__eyebrow{margin-bottom:26px}
.hero__title{
  font-family:var(--serif-lat);font-weight:300;
  font-size:clamp(46px,6.6vw,112px);line-height:.98;letter-spacing:-.02em;white-space:nowrap;
}
.hero__title em{font-style:italic;font-weight:300;color:var(--sand)}
.hero__kr{margin-top:26px;font-family:var(--serif-kr);font-weight:400;font-size:clamp(18px,1.75vw,27px);line-height:1.5;letter-spacing:-.02em;color:rgba(241,243,239,.92);word-break:keep-all}
.hero__title .rv-line{padding:0 .08em .08em 0;margin-bottom:-.08em}
.hero__title .rv-line>span{transform:translateY(115%)}
.hero__title.is-in .rv-line>span{transform:none}
.hero__sub{margin-top:20px;max-width:48ch;font-size:clamp(15px,1.25vw,18px);line-height:1.9;color:rgba(243,237,227,.75)}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:48px;align-items:center}
.hero__meta{display:flex;gap:48px;margin-top:64px;padding-top:30px;border-top:1px solid var(--line-on-dark);flex-wrap:wrap}
.hero__meta div{display:flex;flex-direction:column;gap:4px}
.hero__meta b{font-family:var(--serif-lat);font-weight:400;font-size:clamp(34px,3.2vw,46px);line-height:1;letter-spacing:.02em}
.hero__meta b i{font-style:italic;font-size:.7em;margin-left:.15em;color:var(--sand)}
/* ⛔ 후손 선택자 span 금지 — b 안의 숫자 span 까지 잡혀 숫자가 작아졌다(2026-10-19 실측). 직계만 잡는다 */
.hero__meta div>span{font-size:13px;letter-spacing:.06em;color:rgba(243,237,227,.6);margin-top:6px}
.hero__meta div>span i{font-family:var(--serif-lat);font-style:italic;letter-spacing:.08em;margin-left:.5em;opacity:.8}

.hero__visual{position:relative;height:min(76vh,760px);min-height:420px;align-self:end}
.hero__arch{position:absolute;right:0;bottom:0;width:min(100%,480px);height:100%;}
.hero__arch img{transform:scale(1.08);transition:transform 2.5s var(--ease-out)}
.hero__arch.is-in img{transform:scale(1)}
.hero__arch::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,10,17,.1),rgba(43,10,17,.55) 100%);z-index:1}
.hero__badge{
  position:absolute;left:-40px;bottom:120px;z-index:3;
  width:138px;height:138px;border-radius:50%;
  display:grid;place-items:center;
  animation:spin 22s linear infinite;
}
.hero__badge svg{width:100%;height:100%}
.hero__badge text{font-family:var(--serif-lat);font-size:11.5px;letter-spacing:.28em;fill:var(--cream);text-transform:uppercase}
.hero__badge-mark{position:absolute;inset:0;display:grid;place-items:center;animation:spin 22s linear infinite reverse}
.hero__badge-mark svg{width:34px;color:var(--cream)}
.hero__scroll{position:absolute;left:var(--gutter);bottom:34px;display:flex;align-items:center;gap:12px;font-family:var(--serif-lat);font-style:italic;font-size:14px;letter-spacing:.12em;color:rgba(243,237,227,.6);z-index:3}
.hero__scroll i{width:1px;height:46px;background:rgba(243,237,227,.35);position:relative;overflow:hidden;display:block}
.hero__scroll i::after{content:"";position:absolute;left:0;top:0;width:100%;height:50%;background:var(--cream);animation:scrollhint 1.8s var(--ease) infinite}
@keyframes scrollhint{0%{transform:translateY(-100%)}100%{transform:translateY(220%)}}

/* 마퀴 */
.marquee{position:relative;overflow:hidden;white-space:nowrap;border-top:1px solid var(--line-on-dark);border-bottom:1px solid var(--line-on-dark);padding:26px 0;background:var(--wine-deep);color:var(--cream)}
.marquee__track{display:inline-flex;gap:0;animation:marquee 38s linear infinite;will-change:transform}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__item{display:inline-flex;align-items:center;gap:28px;padding:0 28px;font-family:var(--serif-lat);font-size:clamp(16px,1.6vw,22px);letter-spacing:.2em;text-transform:uppercase}
.marquee__item i{font-style:italic;text-transform:none;letter-spacing:.02em;color:var(--sand)}
.marquee__item::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--sand);opacity:.7}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ───────── WHY (선택 이유) ───────── */
.why__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(56px,8vw,140px);align-items:center}
.why__text .h-sec{margin-bottom:0}
.why__text p+p{margin-top:22px}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.stat{padding:clamp(28px,3.4vw,52px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;overflow:hidden;transition:background .5s}
.stat:hover{background:rgba(90,30,43,.05)}
.stat__num{font-family:var(--serif-lat);font-weight:300;font-size:clamp(52px,6vw,92px);line-height:.95;letter-spacing:-.02em;color:var(--wine);display:flex;align-items:baseline;gap:.08em}
.stat__num i{font-style:italic;font-size:.42em;color:var(--mute)}
.stat__label{margin-top:14px;font-size:14px;color:var(--ink-2);word-break:keep-all}
.stat__foot{margin-top:6px;font-size:11.5px;color:var(--mute);letter-spacing:.02em}
.why__figure{margin-top:clamp(110px,14vw,220px);display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,4vw,64px);align-items:end}
.why__figure .arch{height:clamp(320px,42vw,560px)}
.why__quote{font-family:var(--serif-kr);font-size:clamp(20px,2.1vw,30px);line-height:1.6;text-wrap:balance;letter-spacing:-.02em;word-break:keep-all;color:var(--wine-2)}
.why__quote em{font-family:var(--serif-lat);font-style:italic;letter-spacing:0}
.why__quote-src{margin-top:22px;font-size:12.5px;letter-spacing:.14em;color:var(--mute);text-transform:uppercase;font-family:var(--serif-lat)}

/* ───────── CLASSES (수업) ───────── */
.classes{background:var(--wine);color:var(--cream)}
.classes .sec-head .lead{color:rgba(243,237,227,.72)}
.split{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-on-dark);min-height:560px}
.split__col{position:relative;padding:clamp(34px,4.6vw,68px);display:flex;flex-direction:column;justify-content:space-between;gap:36px;overflow:hidden;transition:background .6s var(--ease)}
.split__col+.split__col{border-left:1px solid var(--line-on-dark)}
.split__col::before{content:"";position:absolute;inset:0;background:var(--wine-deep);opacity:0;transition:opacity .6s var(--ease)}
.split__col:hover::before{opacity:1}
.split__col>*{position:relative}
.split__kicker{font-family:var(--serif-lat);font-style:italic;font-size:clamp(28px,3vw,44px);letter-spacing:.02em;color:var(--sand);line-height:1}
.split__title{margin-top:12px;font-family:var(--serif-kr);font-size:clamp(26px,2.6vw,38px);letter-spacing:-.02em;line-height:1.3}
.split__body{color:rgba(243,237,227,.75);max-width:40ch;word-break:keep-all;line-height:1.85}
.split__list{display:grid;gap:12px;margin-top:8px}
.split__list li{display:flex;gap:14px;align-items:flex-start;font-size:14.5px;color:rgba(243,237,227,.85)}
.split__list svg{width:18px;height:18px;flex:none;margin-top:3px;color:var(--sand)}
.split__price{display:flex;align-items:baseline;gap:10px;font-family:var(--serif-lat)}
.split__price b{font-weight:400;font-size:clamp(34px,3.4vw,48px);letter-spacing:-.01em}
.split__price span{font-size:13px;font-family:var(--sans);color:rgba(243,237,227,.6);letter-spacing:.04em}
.split__foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.split__ghost{position:absolute;right:-10px;bottom:-30px;font-family:var(--serif-lat);font-style:italic;font-size:clamp(140px,18vw,260px);line-height:1;color:rgba(243,237,227,.05);pointer-events:none;user-select:none}

.goals{margin-top:clamp(110px,13vw,200px);display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,80px);align-items:start}
.goals__list{display:flex;flex-wrap:wrap;gap:10px}
.chip{
  padding:12px 20px;border:1px solid var(--line-on-dark);border-radius:999px;
  font-size:14px;letter-spacing:.02em;display:inline-flex;align-items:center;gap:10px;
  transition:background .4s,color .4s,border-color .4s;
}
.chip i{font-family:var(--serif-lat);font-style:italic;font-size:13px;color:var(--sand);letter-spacing:.06em}
.chip:hover{background:var(--cream);color:var(--wine);border-color:var(--cream)}
.chip:hover i{color:var(--wine)}

.steps{margin-top:clamp(110px,13vw,200px);display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line-on-dark)}
.step{padding:44px clamp(16px,2vw,32px) 16px;position:relative}
.step+.step{border-left:1px solid var(--line-on-dark)}
.step__n{font-family:var(--serif-lat);font-style:italic;font-size:15px;letter-spacing:.2em;color:var(--sand)}
.step__t{margin-top:22px;font-family:var(--serif-kr);font-size:clamp(20px,1.8vw,26px);letter-spacing:-.02em}
.step__d{margin-top:12px;color:rgba(243,237,227,.7);font-size:14.5px;line-height:1.8;word-break:keep-all;max-width:34ch}

/* ───────── SPACE (공간) — 가로 스크롤 핀 ───────── */
.space{padding:0;background:var(--cream)}
.space__pin{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding-top:90px;padding-bottom:clamp(70px,9vh,130px)}
.space__head{padding:0 var(--gutter);margin-bottom:52px;display:flex;justify-content:space-between;align-items:end;gap:30px;flex-wrap:wrap}
.space__track{display:flex;gap:clamp(18px,2.4vw,36px);padding:0 var(--gutter);will-change:transform}
.room{flex:none;width:clamp(260px,30vw,440px);display:flex;flex-direction:column;gap:18px}
.room .arch{height:clamp(340px,52vh,560px)}
.room .arch img{transition:transform 1.4s var(--ease-out)}
.room:hover .arch img{transform:scale(1.05)}
.room__cap{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border-top:1px solid var(--line);padding-top:14px}
.room__cap b{font-family:var(--serif-kr);font-weight:400;font-size:20px;letter-spacing:-.02em}
.room__cap i{font-family:var(--serif-lat);font-style:italic;font-size:14px;color:var(--mute);letter-spacing:.08em}
.room__d{font-size:13.5px;color:var(--ink-2);line-height:1.7;word-break:keep-all}
.room--stat{justify-content:center;align-items:flex-start;width:clamp(240px,24vw,360px)}
.room--stat .big{font-family:var(--serif-lat);font-weight:300;font-size:clamp(90px,11vw,170px);line-height:.9;letter-spacing:-.03em;color:var(--wine)}
.room--stat .big i{font-style:italic;font-size:.4em;color:var(--mute);margin-left:.06em}

/* ───────── TEAM (강사진) ───────── */
.team{background:var(--cream-2)}
.team__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(48px,7vw,130px);align-items:center}
.team__big{font-family:var(--serif-lat);font-weight:300;font-size:clamp(150px,20vw,300px);line-height:1;letter-spacing:-.05em;color:var(--wine);position:relative;display:block;width:max-content;margin-bottom:.12em}
.team__big i{position:absolute;right:-.35em;top:.12em;font-style:italic;font-size:.18em;letter-spacing:.04em;color:var(--mute)}
.team__points{margin-top:48px;display:grid;gap:0;border-top:1px solid var(--line)}
.team__points li{display:grid;grid-template-columns:52px 1fr;gap:14px;padding:18px 0;border-bottom:1px solid var(--line);align-items:baseline}
.team__points li span{font-family:var(--serif-lat);font-style:italic;font-size:14px;color:var(--mute);letter-spacing:.1em}
.team__points li p{font-size:15px;color:var(--ink-2);word-break:keep-all;line-height:1.7}
/* 강사진 슬라이드 — 사진으로 뭉개는 비주얼 */
.slides{position:relative;height:clamp(420px,60vh,680px);border-radius:999px 999px 0 0;overflow:hidden;background:var(--sand);isolation:isolate}
.slides::after{content:"";position:absolute;inset:14px;border:1px solid rgba(243,237,227,.55);border-radius:inherit;pointer-events:none;z-index:3}
.slides__item{position:absolute;inset:0;opacity:0;transition:opacity 1.6s var(--ease);z-index:1}
.slides__item img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 7s linear}
.slides__item.is-on{opacity:1;z-index:2}
.slides__item.is-on img{transform:scale(1)}
.slides__item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(43,10,17,.55));}
.slides__cap{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:0 clamp(22px,3vw,40px) clamp(22px,3vw,36px);display:flex;justify-content:space-between;align-items:flex-end;gap:16px;color:var(--cream)}
.slides__cap b{display:block;font-family:var(--serif-kr);font-weight:400;font-size:clamp(18px,1.8vw,24px);letter-spacing:-.02em}
.slides__cap i{display:block;font-family:var(--serif-lat);font-style:italic;font-size:14px;letter-spacing:.1em;color:var(--sand);margin-top:4px}
.slides__n{font-family:var(--serif-lat);font-size:clamp(18px,1.6vw,22px);letter-spacing:.12em;white-space:nowrap}
.slides__n em{font-style:italic;color:var(--sand)}
.slides__bar{position:absolute;left:clamp(22px,3vw,40px);right:clamp(22px,3vw,40px);bottom:clamp(14px,2vw,22px);height:1px;background:rgba(243,237,227,.3);z-index:4}
.slides__bar i{position:absolute;left:0;top:-1px;height:3px;width:0;background:var(--cream)}
.slides.is-run .slides__bar i{animation:slidebar var(--dur,5s) linear infinite}
@keyframes slidebar{from{width:0}to{width:100%}}
.slides__ghost{position:absolute;left:-.1em;top:-.2em;z-index:0;font-family:var(--serif-lat);font-style:italic;font-size:clamp(90px,12vw,180px);line-height:1;color:rgba(90,30,43,.08);pointer-events:none;white-space:nowrap}
.team__wrap{position:relative}
.team__wrap .slides__ghost{top:auto;bottom:-.72em;right:-.1em;left:auto;color:var(--wine);opacity:.06}

/* ───────── SCHEDULE & PRICE ───────── */
.sched__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(48px,7vw,130px);align-items:start}
.hours{border-top:1px solid var(--line)}
.hours li{display:grid;grid-template-columns:110px 1fr auto;gap:20px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line)}
.hours li b{font-family:var(--serif-kr);font-weight:400;font-size:18px;letter-spacing:-.01em}
.hours li .t{font-family:var(--serif-lat);font-size:clamp(22px,2.2vw,30px);letter-spacing:.02em;color:var(--wine);white-space:nowrap}
.hours li .t i{font-style:italic;font-size:.6em;color:var(--mute);margin:0 .25em}
.hours li small{font-size:12.5px;color:var(--mute);text-align:right;max-width:18ch;word-break:keep-all;line-height:1.5}
.weekrow{margin-top:34px}
.weekrow__head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:14px}
.weekrow__head b{font-family:var(--serif-kr);font-weight:400;font-size:17px}
.weekrow__head span{font-size:12px;color:var(--mute);letter-spacing:.04em}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.day{border:1px solid var(--line);border-radius:999px 999px 0 0;padding:26px 6px 12px;text-align:center;position:relative;overflow:hidden;transition:background .4s,color .4s}
.day::before{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--h,0%);background:var(--wine);opacity:.1;transition:height 1.2s var(--ease-out)}
.day.is-in::before{height:var(--h)}
.day span{position:relative;display:block;font-size:12px;letter-spacing:.1em;color:var(--mute)}
.day b{position:relative;display:block;font-family:var(--serif-lat);font-weight:400;font-size:clamp(22px,2.4vw,34px);line-height:1.1;margin-top:6px;color:var(--wine)}
.day b i{font-style:italic;font-size:.5em;color:var(--mute)}
.day:hover{background:var(--wine);color:var(--cream)}
.day:hover b,.day:hover span,.day:hover b i{color:var(--cream)}
.sched__note{margin-top:14px;font-size:12.5px;color:var(--mute);line-height:1.7;word-break:keep-all}

.price{position:relative;background:var(--wine-deep);color:var(--cream);padding:clamp(28px,3.4vw,48px);overflow:hidden;border-radius:999px 999px 0 0 / 220px 220px 0 0}
.price::before{content:"";position:absolute;inset:14px;border:1px solid rgba(243,237,227,.16);border-radius:inherit;pointer-events:none}
.price>*{position:relative}
.price__top{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding-top:clamp(50px,6vw,80px)}
.price__tag{display:inline-flex;align-items:center;gap:10px;font-family:var(--serif-lat);font-style:italic;letter-spacing:.2em;font-size:13px;text-transform:uppercase;color:var(--sand)}
.price__tag::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sand);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.6);opacity:.4}}
.price__period{font-size:12.5px;letter-spacing:.06em;color:rgba(243,237,227,.6)}
.price__title{margin-top:18px;font-family:var(--serif-kr);font-size:clamp(24px,2.4vw,34px);line-height:1.3;letter-spacing:-.02em;word-break:keep-all}
.price__rows{margin-top:30px;border-top:1px solid var(--line-on-dark)}
.price__row{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:20px;padding:22px 0;border-bottom:1px solid var(--line-on-dark)}
.price__row b{font-family:var(--serif-kr);font-weight:400;font-size:18px}
.price__row b small{display:block;font-family:var(--sans);font-size:12.5px;color:rgba(243,237,227,.55);margin-top:4px;letter-spacing:.02em}
.price__row .v{font-family:var(--serif-lat);font-size:clamp(34px,3.6vw,52px);letter-spacing:-.01em;line-height:1;white-space:nowrap}
.price__row .v i{font-style:italic;font-size:.42em;color:var(--sand);margin-left:.1em}
.price__row .v::before{content:"₩";font-size:.5em;margin-right:.1em;color:var(--sand);vertical-align:.3em}
.price__cond{margin-top:22px;font-size:12.5px;line-height:1.75;color:rgba(243,237,227,.6);word-break:keep-all}
.price__cta{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}

/* ───────── REVIEWS ───────── */
.reviews{background:var(--wine);color:var(--cream);overflow:hidden}
.reviews__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(48px,8vw,150px);align-items:center}
.score{display:flex;flex-direction:column;gap:6px}
.score__num{font-family:var(--serif-lat);font-weight:300;font-size:clamp(110px,15vw,220px);line-height:.85;letter-spacing:-.04em}
.score__num i{font-style:italic;font-size:.25em;color:var(--sand);margin-left:.1em;letter-spacing:0}
.score__stars{display:flex;gap:4px;margin-top:22px}
.score__stars svg{width:18px;height:18px;color:var(--sand)}
.score__meta{margin-top:18px;display:flex;gap:28px;flex-wrap:wrap}
.score__meta div{display:flex;flex-direction:column}
.score__meta b{font-family:var(--serif-lat);font-weight:400;font-size:28px;line-height:1}
.score__meta span{font-size:12px;letter-spacing:.1em;color:rgba(243,237,227,.55);margin-top:6px}
.quote{position:relative;padding-left:clamp(20px,3vw,48px)}
.quote::before{content:"“";position:absolute;left:-.1em;top:-.35em;font-family:var(--serif-lat);font-size:clamp(100px,12vw,180px);line-height:1;color:rgba(243,237,227,.14)}
.quote p{font-family:var(--serif-kr);font-size:clamp(20px,2.1vw,30px);line-height:1.65;letter-spacing:-.02em;word-break:keep-all;text-wrap:pretty}
.quote footer{margin-top:24px;font-size:12.5px;letter-spacing:.14em;color:rgba(243,237,227,.55);text-transform:uppercase;font-family:var(--serif-lat)}
.reviews__ghost{position:absolute;left:50%;bottom:-.25em;transform:translateX(-50%);font-family:var(--serif-lat);font-style:italic;font-size:clamp(120px,22vw,360px);line-height:1;color:rgba(243,237,227,.04);white-space:nowrap;pointer-events:none;user-select:none}

/* ───────── VISIT (첫 방문) ───────── */
.visit__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,130px);align-items:start}
.flow{counter-reset:f;border-top:1px solid var(--line)}
.flow li{counter-increment:f;display:grid;grid-template-columns:64px 1fr;gap:18px;padding:32px 0;border-bottom:1px solid var(--line);align-items:start;transition:padding-left .5s var(--ease)}
.flow li:hover{padding-left:10px}
.flow li::before{content:"0" counter(f);font-family:var(--serif-lat);font-style:italic;font-size:30px;line-height:1;color:var(--wine);letter-spacing:.02em}
.flow li b{display:block;font-family:var(--serif-kr);font-weight:400;font-size:20px;letter-spacing:-.02em}
.flow li p{margin-top:8px;font-size:14.5px;color:var(--ink-2);line-height:1.75;word-break:keep-all}
.bring{margin-top:40px;display:flex;flex-wrap:wrap;gap:10px}
.bring .chip{border-color:var(--line);color:var(--ink-2)}
.bring .chip:hover{background:var(--wine);color:var(--cream);border-color:var(--wine)}
.faq{border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line)}
.faq__q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px 0;text-align:left;font-family:var(--serif-kr);font-size:clamp(17px,1.5vw,21px);letter-spacing:-.02em;word-break:keep-all}
.faq__q .pm{flex:none;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;position:relative;transition:transform .5s var(--ease),background .4s,border-color .4s}
.faq__q .pm::before,.faq__q .pm::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1px;background:currentColor;transform:translate(-50%,-50%)}
.faq__q .pm::after{transform:translate(-50%,-50%) rotate(90deg);transition:opacity .3s}
.faq__item.is-open .pm{transform:rotate(180deg);background:var(--wine);border-color:var(--wine);color:var(--cream)}
.faq__item.is-open .pm::after{opacity:0}
.faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease-out)}
.faq__item.is-open .faq__a{grid-template-rows:1fr}
.faq__a>div{overflow:hidden}
.faq__a p{padding:0 44px 24px 0;font-size:14.5px;line-height:1.8;color:var(--ink-2);word-break:keep-all}

/* ───────── MAP (오시는 길) ───────── */
.map{background:var(--cream-2)}
.map__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,130px);align-items:stretch}
.map__info{display:flex;flex-direction:column;gap:28px}
.addr{font-family:var(--serif-kr);font-size:clamp(22px,2.4vw,32px);line-height:1.45;letter-spacing:-.02em;word-break:keep-all}
.addr em{font-family:var(--serif-lat);font-style:italic;letter-spacing:0;color:var(--wine)}
.map__rows{border-top:1px solid var(--line)}
.map__rows li{display:grid;grid-template-columns:88px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-size:14.5px;align-items:baseline}
.map__rows li span{font-family:var(--serif-lat);font-style:italic;letter-spacing:.1em;color:var(--mute);font-size:13px}
.map__rows li p{color:var(--ink-2);word-break:keep-all;line-height:1.7}
.map__rows li a.tel{font-family:var(--serif-lat);font-size:24px;letter-spacing:.04em;color:var(--wine);font-weight:500}
.map__links{display:flex;flex-wrap:wrap;gap:10px}
.map__visual{position:relative;min-height:460px;border-radius:999px 999px 0 0;overflow:hidden;background:var(--wine-deep);isolation:isolate}
.map__visual::after{content:"";position:absolute;inset:14px;border:1px solid rgba(243,237,227,.5);border-radius:inherit;pointer-events:none;z-index:3}
.map__frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;filter:grayscale(.85) sepia(.18) contrast(1.02) brightness(.98);transition:filter .6s}
.map__visual:hover .map__frame{filter:none}
.map__open{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:4;background:var(--wine-deep)}
.map__label{position:absolute;top:0;left:0;right:0;z-index:4;padding:clamp(60px,8vw,100px) 24px 0;text-align:center;pointer-events:none;color:var(--cream);text-shadow:0 1px 10px rgba(0,0,0,.3)}
.map__label b{font-family:var(--serif-kr);font-weight:400;font-size:20px;letter-spacing:-.02em}
.map__label span{display:block;font-family:var(--serif-lat);font-style:italic;font-size:13px;letter-spacing:.12em;margin-top:4px}

/* ───────── CTA 밴드 ───────── */
.cta{background:var(--wine-deep);color:var(--cream);text-align:center;padding:clamp(160px,20vw,320px) var(--gutter);position:relative;overflow:hidden}
.cta .h-display{max-width:none;margin:0 auto;font-family:var(--serif-lat);font-weight:300;font-size:clamp(48px,7vw,120px);line-height:1;letter-spacing:-.02em}
.cta__kr{display:block;margin:28px auto 0;font-family:var(--serif-kr);font-size:clamp(17px,1.6vw,24px);line-height:1.6;color:rgba(241,243,239,.9);max-width:30ch;word-break:keep-all}
.cta__actions{margin-top:56px;display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.cta__arch{position:absolute;left:50%;bottom:-10%;width:min(90vw,900px);aspect-ratio:2/1;border:1px solid rgba(243,237,227,.1);border-bottom:0;border-radius:999px 999px 0 0;transform:translateX(-50%);pointer-events:none}
.cta__arch::before{content:"";position:absolute;inset:40px 40px 0;border:1px solid rgba(243,237,227,.08);border-bottom:0;border-radius:inherit}

/* ───────── FOOTER ───────── */
.footer{background:var(--wine-deep);color:rgba(243,237,239,.7);padding:72px var(--gutter) 130px;border-top:1px solid var(--line-on-dark)}
.footer__grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;max-width:var(--max);margin:0 auto}
.footer .brand{color:var(--cream)}
.footer p{font-size:13px;line-height:1.8;margin-top:16px;word-break:keep-all}
.footer h4{font-family:var(--serif-lat);font-style:italic;font-weight:400;letter-spacing:.14em;font-size:14px;color:var(--sand);margin-bottom:14px}
.footer li{font-size:13.5px;line-height:2}
.footer li a:hover{color:var(--cream)}
.footer__bottom{max-width:var(--max);margin:40px auto 0;padding-top:20px;border-top:1px solid var(--line-on-dark);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12px;letter-spacing:.04em;color:rgba(243,237,227,.4)}

/* ───────── 모바일 고정 CTA ───────── */
.mcta{
  position:fixed;left:12px;right:12px;bottom:12px;z-index:850;
  display:none;grid-template-columns:1fr 1fr 1fr;gap:6px;
  padding:6px;border-radius:999px;background:rgba(43,10,17,.92);backdrop-filter:blur(12px);
  color:var(--cream);box-shadow:0 10px 30px rgba(27,17,19,.25);
  transform:translateY(120%);transition:transform .6s var(--ease-out);
}
.mcta.is-show{transform:none}
.mcta a{display:flex;align-items:center;justify-content:center;gap:8px;padding:13px 6px;border-radius:999px;font-size:13px;letter-spacing:.02em}
.mcta a svg{width:16px;height:16px}
.mcta a.is-main{background:var(--cream);color:var(--wine-deep);font-weight:500}

/* 모바일 메뉴 */
.mnav{
  position:fixed;inset:0;z-index:790;background:var(--wine-deep);color:var(--cream);
  display:flex;flex-direction:column;justify-content:center;padding:100px var(--gutter) 60px;
  clip-path:circle(0 at calc(100% - 44px) 44px);transition:clip-path .8s var(--ease-out);
}
.mnav.is-open{clip-path:circle(150vmax at calc(100% - 44px) 44px)}
.mnav a{font-family:var(--serif-kr);font-size:clamp(30px,8vw,44px);letter-spacing:-.02em;padding:10px 0;display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line-on-dark);opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease),transform .7s var(--ease-out)}
.mnav.is-open a{opacity:1;transform:none}
.mnav a i{font-family:var(--serif-lat);font-style:italic;font-size:14px;letter-spacing:.14em;color:var(--sand)}
.mnav.is-open a:nth-child(1){transition-delay:.25s}.mnav.is-open a:nth-child(2){transition-delay:.3s}.mnav.is-open a:nth-child(3){transition-delay:.35s}.mnav.is-open a:nth-child(4){transition-delay:.4s}.mnav.is-open a:nth-child(5){transition-delay:.45s}.mnav.is-open a:nth-child(6){transition-delay:.5s}.mnav.is-open a:nth-child(7){transition-delay:.55s}.mnav.is-open a:nth-child(8){transition-delay:.6s}.mnav.is-open a:nth-child(9){transition-delay:.65s}
.mnav__foot{margin-top:40px;display:flex;flex-direction:column;gap:8px;font-size:13px;color:rgba(243,237,227,.6)}
.mnav__foot b{font-family:var(--serif-lat);font-weight:400;font-size:28px;color:var(--cream);letter-spacing:.04em}

/* ───────── 반응형 ───────── */
@media (max-width:1560px){
  .nav{gap:20px}
  .nav a i{display:none}
}
@media (max-width:1100px){
  .hero__grid{grid-template-columns:1fr .8fr}
  .why__grid,.goals,.team__grid,.sched__grid,.reviews__grid,.visit__grid,.map__grid{grid-template-columns:1fr}
  .sec-head{align-items:flex-start;text-align:left}
  .sec-head .lead{text-align:left}
  .sec-head .eyebrow::after{display:none}
  .footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .nav,.header__cta .call{display:none}
  .menu-btn{display:grid}
  .mcta{display:grid}
  .hero{padding-top:110px;min-height:auto}
  .hero__grid{grid-template-columns:1fr;gap:28px}
  .hero__visual{height:min(62vh,520px);min-height:360px;align-self:stretch}
  .hero__arch{width:min(100%,420px);left:50%;right:auto;transform:translateX(-50%)}
  .hero__badge{left:auto;right:-10px;bottom:40px;width:104px;height:104px}
  .hero__arcs{right:-30vw;width:150vw;bottom:auto;top:40vh}
  .hero__kr{font-size:17px}
  .hero__scroll{display:none}
  .hero__copy{padding-bottom:0}
  .split{grid-template-columns:1fr;min-height:auto}
  .split__col+.split__col{border-left:0;border-top:1px solid var(--line-on-dark)}
  .steps{grid-template-columns:1fr}
  .step+.step{border-left:0;border-top:1px solid var(--line-on-dark)}
  .step{padding:26px 0}
  .space__pin{height:auto;position:static;padding:88px 0}
  .space__track{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:20px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .space__track::-webkit-scrollbar{display:none}
  .room{scroll-snap-align:start;width:min(78vw,360px)}
  .room .arch{height:min(60vh,440px)}
  .slides{height:min(70vh,520px)}
  .slides__ghost{display:none}
  .hours li{grid-template-columns:84px 1fr;grid-template-rows:auto auto}
  .hours li small{grid-column:2;text-align:left;max-width:none}
  .days{gap:4px}
  .day{padding:18px 2px 10px}
  .why__figure{grid-template-columns:1fr}
  .why__figure .arch{height:min(70vw,440px);max-width:420px}
  .footer__grid{grid-template-columns:1fr}
  .footer{padding-bottom:110px}
  .stats{grid-template-columns:1fr 1fr}
}
@media (max-width:480px){
  .hero__meta{gap:18px}
  .hero__meta b{font-size:22px}
  .stats{grid-template-columns:1fr 1fr}
  .stat{padding:20px 16px}
  .marquee__item{padding:0 18px;gap:18px}
}
/* 아주 높은 뷰포트(세로 4K·전체 페이지 캡처)에서는 핀·100svh 가 무의미하다 */
@media (min-height:1800px){
  .space__pin{position:static;height:auto;padding:140px 0}
  .space{height:auto!important}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}
  .rv,.rv-line>span,[data-stagger]>*,.hero__title .rv-line>span{opacity:1!important;transform:none!important}
  .rv-img{clip-path:none!important}
  .loader{display:none}
}
