:root{
  --linen:#F7F5F0; --greige:#DDD8CD; --card:#ECE8E0; --rule-band:#C6BEAC; /* greige 밴드 위에서 읽히는 괘선(밴드 배경=greige라 greige 괘선은 소멸) */
  --sage:#8A8C6E; --sage-dk:#5E5F47; --sage-btn:#76785B; --forest:#2F4A3A; /* sage-dk 15%다크=AA(카드5.36/밴드4.61) · sage-btn=흰글씨 4.56 */
  --ink:#34332D; --muted:#605F56; --footer:#2A2A23; /* muted 10%다크=AA(카드5.26/밴드4.52) */
  --serif:"EB Garamond","Noto Serif KR",Georgia,serif; /* Noto Serif KR: iOS/안드로이드엔 한글 명조가 없어 웹폰트 필수(2026-07-16 사용자 발견) */
  --sans:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --hd:74px;
  --ease:cubic-bezier(.22,.61,.36,1);   /* soft editorial settle */
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
p,li,blockquote{text-wrap:pretty}
body{
  font-family:var(--sans); color:var(--ink); background:var(--linen);
  line-height:1.8; letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased; word-break:keep-all;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
/* 키보드 포커스 — 브랜드 링 (마우스 클릭엔 안 뜸) */
:where(a,button,summary,input,textarea,[tabindex]):focus-visible{outline:2px solid var(--sage-dk);outline-offset:3px;border-radius:4px}
.wrap{max-width:1200px;margin:0 auto;padding:0 40px}
.eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--sage-dk)}
.serif{font-family:var(--serif)}
.pill{
  display:inline-flex;align-items:center;gap:.5em;
  padding:14px 30px;border-radius:999px;background:var(--sage-btn);color:#fff;
  font-size:13.5px;font-weight:500;letter-spacing:.02em;
  transition:background .25s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease);
}
.pill:hover{background:var(--sage-dk);transform:translateY(-2px)}
.pill:active{transform:translateY(0)}
.link-arrow{display:inline-block;font-size:13px;font-weight:500;letter-spacing:.02em;color:var(--ink);
  border-bottom:1px solid var(--sage);padding-bottom:3px;transition:color .2s,transform .3s var(--ease)}
.link-arrow:hover{color:var(--sage-dk);transform:translateX(4px)}
.grain{display:block;width:100%;height:auto;color:var(--sage);opacity:.5}

/* ---------- header ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .3s ease,border-color .3s ease;border-bottom:1px solid transparent}
/* 실사 히어로 위 가독성: 확산 글로우(A안·사용자 확정) — 오프셋 없는 후광이라 띠·외곽선 없음 */
header:not(.solid) .menu a{text-shadow:0 0 10px rgba(0,0,0,.5),0 0 28px rgba(0,0,0,.3)}
header:not(.solid) .logo{filter:drop-shadow(0 0 8px rgba(0,0,0,.45)) drop-shadow(0 0 20px rgba(0,0,0,.28))}
header.solid{background:rgba(247,245,240,.92);backdrop-filter:blur(8px);border-bottom-color:var(--greige)}
.nav{display:flex;align-items:center;justify-content:space-between;height:var(--hd)}
.logo{display:block;width:211px;height:20px;font-size:0;background:currentColor;-webkit-mask:url(../images/logo.png) no-repeat left center/contain;mask:url(../images/logo.png) no-repeat left center/contain;color:#fff;transition:color .3s} /* 업체 실로고(누끼) — currentColor 마스크, 2026-07-16 */
header.solid .logo{color:var(--ink)}
.menu{display:flex;gap:30px;list-style:none}
.menu a{position:relative;font-size:13.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.92);transition:color .3s}
.menu a:hover{color:#fff}
header.solid .menu a{color:var(--muted)}
header.solid .menu a:hover{color:var(--sage-dk)}
/* 투명 헤더(사진 위)에선 밑줄 제거 — 사진과 안 어울림(사용자 확정) */
header:not(.solid) .menu a::after{display:none}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;background:var(--sage);transform:scaleX(0);transform-origin:left center;transition:transform .32s var(--ease)}
.menu a:hover::after,.menu a[aria-current="page"]::after{transform:scaleX(1)}
.menu a[aria-current="page"]{color:#fff}
header.solid .menu a[aria-current="page"]{color:var(--ink)}
.nav .pill{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(4px)}
header.solid .nav .pill{background:var(--sage-btn);border-color:var(--sage-btn)}
.hamb{display:none}

/* subpage: solid header from load, offset body below fixed bar */
body.sub{padding-top:var(--hd)}
/* 홈 인페이지 앵커 점프 시 고정 헤더에 안 가리게 */
body:not(.sub) section[id]{scroll-margin-top:calc(var(--hd) + 8px)}
.pagehead{border-bottom:1px solid var(--greige)}
.pagehead .wrap{padding-top:clamp(58px,7vw,96px);padding-bottom:clamp(38px,5vw,58px)}
.pagehead .eyebrow{display:block;margin-bottom:18px}
.pagehead h1{font-size:clamp(30px,4.4vw,52px);font-weight:300;letter-spacing:-.025em;line-height:1.28;max-width:760px;text-wrap:balance}
.pagehead h1 em{font-family:var(--serif);font-style:italic;font-weight:400}
.pagehead .lede{margin-top:22px;font-size:clamp(15px,1.6vw,17.5px);line-height:1.85;color:var(--muted);max-width:600px}

/* ---------- hero ---------- */
.hero{position:relative;height:92vh;min-height:600px;color:#fff;overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:60% 40%;animation:kenburns 18s var(--ease) forwards;will-change:transform}
@keyframes kenburns{from{transform:scale(1.005)}to{transform:scale(1.075)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(40,40,35,.28)0%,rgba(40,40,35,.05)45%,rgba(40,40,35,.32)100%)}
.offer{position:absolute;left:0;right:0;bottom:8%;z-index:2}
.offer-card{max-width:430px;background:rgba(38,38,31,.56);backdrop-filter:blur(7px);border:1px solid rgba(255,255,255,.28);padding:38px 40px;border-radius:6px}
.offer-card .eyebrow{color:rgba(255,255,255,.82)}
.offer-card h2{font-size:26px;font-weight:300;letter-spacing:-.02em;line-height:1.4;margin:14px 0 20px}
.offer-card p{font-size:14px;color:rgba(255,255,255,.82);margin-bottom:26px}

/* ---------- boutique statement ---------- */
.statement{padding:130px 0 110px;position:relative;overflow:hidden}
.statement .grain-margin{position:absolute;left:-90px;top:60px;width:340px;opacity:.4;color:var(--sage);transform:rotate(-4deg)}
.statement .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:80px;align-items:end;position:relative}
.statement h1{font-size:clamp(30px,4vw,50px);font-weight:300;letter-spacing:-.025em;line-height:1.32}
.statement h1 em{font-family:var(--serif);font-style:italic;font-weight:400}
.statement .body p{font-size:15px;color:var(--muted);margin-bottom:24px}
.statement .eyebrow{margin-bottom:22px}

/* ---------- classes 3-up ---------- */
.classes{padding:20px 0 120px}
.classes .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.ccard figure{overflow:hidden;border-radius:5px;aspect-ratio:4/5}
.ccard img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.ccard:hover img{transform:scale(1.05)}
.ccard h3{font-size:18px;font-weight:500;letter-spacing:-.01em;margin:20px 0 6px}
.ccard p{font-size:13.5px;color:var(--muted)}
.divider{margin:0 auto;max-width:1200px;padding:0 40px}

/* ---------- split ---------- */
.split{background:var(--greige)}
.split .duo{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;max-width:1120px;margin:0 auto}
.split figure{min-height:520px;overflow:hidden}
.split img{width:100%;height:100%;object-fit:cover}
.split .txt{padding:96px clamp(40px,7vw,120px);display:flex;flex-direction:column;justify-content:center}
.split h2{font-size:clamp(26px,3vw,38px);font-weight:300;letter-spacing:-.02em;line-height:1.35;margin:20px 0 24px}
.split h2 em{font-family:var(--serif);font-style:italic}
.split p{font-size:15px;color:#5b5849;margin-bottom:18px}
.split .pill{margin-top:14px}

/* ---------- review ---------- */
.review{padding:130px 0;text-align:center}
.review .eyebrow{display:block;margin-bottom:44px}
.review .quotes{position:relative;max-width:840px;min-height:304px;margin:0 auto}
.review .q{position:absolute;inset:0;opacity:0;pointer-events:none;display:flex;gap:44px;align-items:center;text-align:left;background:var(--card);border:1px solid var(--greige);border-radius:6px;padding:44px 48px}
.review .q.active{position:relative;opacity:1;pointer-events:auto;transition:opacity .5s ease}
.review .pic{flex:0 0 auto;width:172px;height:216px;border-radius:5px;overflow:hidden;margin:0}
.review .pic img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.review .qbody{flex:1;min-width:0}
.review blockquote{font-size:clamp(17px,1.85vw,21px);font-weight:400;line-height:1.75;letter-spacing:-.015em;color:var(--ink)}
.review blockquote em{font-family:var(--serif);font-style:italic}
.review .qbody{position:relative}
.review .qbody::before{content:"\201C";position:absolute;top:-30px;left:-14px;font-family:var(--serif);font-size:76px;line-height:1;color:var(--sage);opacity:.2;pointer-events:none}
.review figcaption{margin-top:24px;font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--ink)}
.review figcaption span{color:var(--muted);font-weight:500;letter-spacing:0}
.review .qnav{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:42px}
.qarrow{width:40px;height:40px;border-radius:50%;border:1px solid var(--greige);background:transparent;color:var(--ink);font-size:19px;line-height:1;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.qarrow:hover{border-color:var(--sage);color:var(--sage-dk)}
.qdots{display:flex;gap:10px}
.qdots button{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:var(--greige);cursor:pointer;transition:background .25s,transform .25s}
.qdots button.on{background:var(--sage);transform:scale(1.3)}
.review .qfoot{margin-top:50px}
.review .qrule{display:block;width:56px;height:1px;background:var(--greige);margin:0 auto 22px}
.review .naver{font-size:13.5px;color:var(--muted);letter-spacing:-.01em;transition:color .2s}
.review .naver .st{color:#E3A72F;letter-spacing:.06em;margin-right:9px;font-size:12px}
.review .naver strong{color:var(--ink);font-weight:600}
.review .naver:hover{color:var(--sage-dk)}
@media(prefers-reduced-motion:reduce){.review .q.active{transition:none}}

/* ---------- motion system (role-differentiated, restrained) ---------- */
/* base — text & blocks rise + fade (var(--d) = per-sibling stagger from JS) */
.reveal{opacity:0;transform:translateY(20px);
  transition:opacity .55s var(--ease) var(--d,0s),transform .55s var(--ease) var(--d,0s)}
.reveal.in{opacity:1;transform:none}

/* media — figures settle: fade + inner image un-zooms (no rise) */
figure.reveal,.reveal.mapbox{transform:none;transition:opacity .7s var(--ease) var(--d,0s)}
figure.reveal img,.reveal.mapbox iframe{transform:scale(1.055);
  transition:transform .9s var(--ease) var(--d,0s)}
figure.reveal.in img,.reveal.mapbox.in iframe{transform:scale(1)}

/* split — 서브페이지 사진과 동일하게: 프레임 고정 + 사진만 안에서 줌 세틀 (figure.reveal 기본 사용) */

/* signature — 숨결 라인이 스크롤 진입 시 스스로 그려짐 (no-JS·reduced 는 그냥 보임) */
.grain.will-draw path,.grain-margin.will-draw path{
  stroke-dasharray:1400;stroke-dashoffset:1400;transition:stroke-dashoffset 1.2s var(--ease)}
.grain.drawn path,.grain-margin.drawn path{stroke-dashoffset:0}

/* card micro-hover (warm border) */
.ncard,.classcard{transition:border-color .35s var(--ease)}
.ncard:hover,.classcard:hover{border-color:var(--sage)}

@media(prefers-reduced-motion:reduce){
  .reveal,figure.reveal,.reveal.mapbox{opacity:1;transform:none;transition:none}
  figure.reveal img,.reveal.mapbox iframe{transform:none;transition:none}
  .ccard img,.gal img{transition:none}
  .grain.will-draw path,.grain-margin.will-draw path{stroke-dashoffset:0;transition:none}
  .hero img{animation:none;transform:none}
  .pill,.link-arrow,.menu a::after{transition:none}
  .pill:hover,.link-arrow:hover{transform:none}
}

/* ---------- shared section head ---------- */
.shead{text-align:center;max-width:640px;margin:0 auto 62px}
.shead .eyebrow{display:block;margin-bottom:16px}
.shead h2{font-size:clamp(26px,3.2vw,40px);font-weight:300;letter-spacing:-.02em;line-height:1.3}
.shead h2 em{font-family:var(--serif);font-style:italic}
.shead p{margin-top:16px;font-size:15px;color:var(--muted)}

/* ---------- trust strip ---------- */
.trust{background:var(--footer);color:#e9e6dc}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:40px;padding-bottom:40px}
.trust .t{text-align:center}
.trust .t b{display:block;font-family:var(--serif);font-size:30px;font-weight:400;color:#fff;letter-spacing:.01em} /* 2026-07-16 사용자 확정: 세리프 원복 + 원래(500)보다 얇게 400 */
.trust .t span{display:block;margin-top:6px;font-size:12px;letter-spacing:.03em;color:rgba(233,230,220,.6)}

/* ---------- trainers (home 2-up) ---------- */
.trainers{padding:120px 0}
.trainers .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;max-width:1120px;margin:0 auto}
.tcard{text-align:center}
.tcard .photo{width:186px;height:186px;border-radius:50%;overflow:hidden;margin:0 auto 26px;border:1px solid var(--greige)}
.tcard .photo img{width:100%;height:100%;object-fit:cover}
.tcard h3{font-size:19px;font-weight:500;letter-spacing:-.01em}
.tcard .role{font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-dk);margin-top:8px}
.tcard blockquote{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--ink);margin:20px 0 16px;line-height:1.6}
.tcard .certs{font-size:13px;color:var(--muted);line-height:1.75}

/* ---------- pricing ---------- */
.pricing{padding:120px 0;background:var(--card)}
.pricing .cols{display:grid;grid-template-columns:.82fr 1.18fr;gap:50px;max-width:1000px;margin:0 auto;align-items:start}
.trial{background:var(--forest);color:#fff;border-radius:6px;padding:46px 38px;text-align:center}
.trial .eyebrow{color:rgba(255,255,255,.68);display:block;margin-bottom:20px}
.trial .amt{font-family:var(--serif);font-size:46px;font-weight:500;letter-spacing:-.01em;line-height:1}
.trial .amt small{font-size:18px;font-weight:400}
.trial p{font-size:13.5px;color:rgba(255,255,255,.8);margin:16px 0 28px;line-height:1.7}
.trial .pill{background:#fff;color:var(--forest)}
.trial .pill:hover{background:var(--linen)}
.plist{list-style:none}
.plist li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:19px 4px;border-bottom:1px solid var(--greige)}
.plist li:last-child{border-bottom:0}
.plist .name{font-size:15px;font-weight:500}
.plist .name span{display:block;font-size:12.5px;font-weight:400;color:var(--muted);margin-top:3px}
.plist .price{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.pricing .note{max-width:1000px;margin:26px auto 0;font-size:12.5px;color:var(--muted);text-align:center}
.pricing.plain{background:var(--greige)}

/* pricing — 스택형: 체험 가로배너 + 가격표 2열 (수강료 페이지) */
.trial.trial-banner{max-width:1000px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:clamp(24px,4vw,56px);text-align:left;padding:32px clamp(28px,4vw,46px)}
.trial-banner .tb-info{min-width:0}
.trial-banner .eyebrow{display:block;color:rgba(255,255,255,.68);margin-bottom:13px}
.trial-banner .tb-row{display:flex;align-items:baseline;gap:clamp(18px,2.5vw,30px);flex-wrap:wrap}
.trial-banner .amt{font-size:clamp(34px,4vw,42px);line-height:1;white-space:nowrap;margin:0}
.trial-banner p{margin:0;font-size:13.5px;line-height:1.7;color:rgba(255,255,255,.82);max-width:440px}
.trial-banner .pill{flex:none;background:#fff;color:var(--forest)}
.trial-banner .pill:hover{background:var(--linen)}
/* 6항목=3+3 (좌 그룹권 / 우 1:1·듀엣) — 행수는 항목수/2와 맞출 것, 어긋나면 칼럼이 4+2로 갈라짐 */
.plist.plist-2col{max-width:1000px;margin:32px auto 0;display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:column;grid-template-rows:repeat(3,auto);column-gap:clamp(36px,5vw,64px)}
.plist-2col li:nth-child(3),.plist-2col li:last-child{border-bottom:0}
@media(max-width:860px){
  .trial.trial-banner{flex-direction:column;align-items:flex-start;gap:22px;padding:28px 24px}
  .trial-banner .pill{align-self:stretch;justify-content:center}
  .plist.plist-2col{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none}
  .plist-2col li:nth-child(3){border-bottom:1px solid var(--greige)}
}

/* ---------- schedule ---------- */
.schedule{padding:120px 0}
.grid-sched{max-width:1040px;margin:0 auto;overflow-x:auto}
.grid-sched table{width:100%;border-collapse:collapse;min-width:660px}
.grid-sched th,.grid-sched td{padding:15px 8px;text-align:center;border-bottom:1px solid var(--greige)}
.grid-sched th{font-size:12.5px;font-weight:600;letter-spacing:.04em;color:var(--sage-dk);border-bottom:1px solid var(--sage)}
.grid-sched td.time{font-size:12.5px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.grid-sched td .cls{display:inline-block;font-size:11.5px;padding:5px 11px;border-radius:999px;background:var(--card);color:var(--ink)}
.grid-sched td .cls.g{background:#e3e6d6;color:var(--sage-dk)}
.grid-sched td .cls.f{background:var(--forest);color:#fff}
.schedule .note{text-align:center;margin-top:28px;font-size:13px;color:var(--muted)}
.schedule .note a{color:var(--sage-dk);border-bottom:1px solid var(--sage);padding-bottom:2px}

/* ---------- facility gallery ---------- */
.facility{padding:120px 0;background:var(--greige)}
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:196px;gap:14px;max-width:1160px;margin:0 auto;padding:0 20px}
.gal figure{overflow:hidden;border-radius:5px}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s ease}
.gal figure:hover img{transform:scale(1.05)}
.gal .g-studio{grid-column:1/3;grid-row:1}
.gal .g-ref{grid-column:3;grid-row:1/3}
.gal .g-props{grid-column:4;grid-row:1/3}
.gal .g-lounge{grid-column:1/3;grid-row:2}

/* ---------- location ---------- */
.location{padding:120px 0}
.location .cols{display:grid;grid-template-columns:1fr 1fr;gap:56px;max-width:1080px;margin:0 auto;align-items:center}
.addr .big{font-size:19px;font-weight:500;color:var(--ink);margin-bottom:8px;letter-spacing:-.01em}
.addr .line{font-size:14.5px;color:var(--muted);line-height:1.9}
.addr .row{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}
.obtn{display:inline-flex;align-items:center;gap:.4em;padding:11px 20px;border-radius:999px;border:1px solid var(--greige);font-size:13px;font-weight:500;color:var(--ink);cursor:pointer;background:transparent;transition:border-color .2s,color .2s}
.obtn:hover{border-color:var(--sage);color:var(--sage-dk)}
.mapbox{aspect-ratio:4/3;border-radius:6px;overflow:hidden;border:1px solid var(--greige)}
.mapbox iframe{width:100%;height:100%;border:0;filter:grayscale(.25) contrast(.95)}

/* ---------- cta banner ---------- */
.ctabanner{background:var(--sage-btn);color:#fff;text-align:center;padding:104px 0}
.ctabanner h2{font-size:clamp(26px,3.2vw,40px);font-weight:300;letter-spacing:-.02em;line-height:1.35;margin-bottom:14px}
.ctabanner h2 em{font-family:var(--serif);font-style:italic}
.ctabanner p{font-size:15px;color:rgba(255,255,255,.85);margin-bottom:32px}
.ctabanner .pill{background:#fff;color:var(--sage-dk)}
.ctabanner .pill:hover{background:var(--linen)}

/* ---------- contact ---------- */
.contact{padding:120px 0;background:var(--card)}
.cform{max-width:560px;margin:0 auto}
.cform .field{margin-bottom:20px}
.cform label{display:block;font-size:12.5px;font-weight:600;letter-spacing:.02em;margin-bottom:8px;color:var(--ink)}
.cform input,.cform textarea{width:100%;padding:14px 16px;border:1px solid var(--greige);border-radius:6px;background:var(--linen);font-family:inherit;font-size:14.5px;color:var(--ink)}
.cform textarea{resize:vertical;min-height:118px}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px rgba(138,140,110,.14)}
.cform .agree{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted);margin-bottom:6px}
.cform .agree input{width:auto}
.cbtn{width:100%;justify-content:center;margin-top:10px;border:0;cursor:pointer;font-size:14.5px}
.cform.sent .fields{display:none}
.sentmsg{display:none;text-align:center;padding:40px 20px}
.cform.sent .sentmsg{display:block}
.sentmsg .ic{width:56px;height:56px;border-radius:50%;background:var(--forest);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 22px}
.sentmsg h3{font-size:20px;font-weight:500;margin-bottom:10px}
.sentmsg p{font-size:14px;color:var(--muted)}

/* ---------- footer ---------- */
footer.site{background:var(--footer);color:rgba(233,230,220,.7);padding:74px 0 40px}
footer.site .top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;padding-bottom:42px;border-bottom:1px solid rgba(255,255,255,.1)}
footer.site .logo2{width:190px;height:18px;font-size:0;background:currentColor;-webkit-mask:url(../images/logo.png) no-repeat left center/contain;mask:url(../images/logo.png) no-repeat left center/contain;color:#fff}
footer.site .intro{margin-top:16px;font-size:13.5px;line-height:1.8;max-width:280px;color:rgba(233,230,220,.6)}
footer.site h4{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.48);margin-bottom:16px}
footer.site ul{list-style:none}
footer.site li{margin-bottom:11px;font-size:13.5px}
footer.site a{color:rgba(233,230,220,.72);transition:color .2s}
footer.site a:hover{color:#fff}
footer.site .biz{margin-top:20px;font-size:12px;line-height:1.85;color:rgba(233,230,220,.42)}
footer.site .bot{padding-top:26px;font-size:12px;color:rgba(233,230,220,.4);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer.site .bot a{color:rgba(233,230,220,.55)}

/* ====================================================================
   SUBPAGE COMPONENTS (sage system, weight-300 headings + serif accents)
   ==================================================================== */

/* section utilities */
.band{background:var(--greige)}
.sec{padding:clamp(64px,8vw,110px) 0}
.sec-tight{padding:clamp(56px,7vw,92px) 0}
.narrow{max-width:1120px;margin:0 auto}

/* media-row : image + text, .rev flips image right, .portrait uses 3/4 */
.media-row{padding:clamp(60px,7.5vw,100px) 0}
.media-row .cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(38px,5vw,68px);align-items:center;max-width:1120px;margin:0 auto}
.media-row.portrait .cols{grid-template-columns:.85fr 1.15fr}
.media-row figure{overflow:hidden;border-radius:5px;aspect-ratio:4/3}
.media-row.portrait figure{aspect-ratio:3/4;max-width:460px}
.media-row img{width:100%;height:100%;object-fit:cover}
.media-row.rev figure{order:2}
.media-row .eyebrow{display:block;margin-bottom:14px}
.media-row h2{font-size:clamp(24px,2.9vw,35px);font-weight:300;letter-spacing:-.02em;line-height:1.38}
.media-row h2 em{font-family:var(--serif);font-style:italic;font-weight:400}
.media-row p{font-size:15px;line-height:1.9;color:var(--muted);margin-top:20px;max-width:500px}
.media-row p+p{margin-top:16px}
.feats{list-style:none;margin-top:24px;display:flex;flex-direction:column;gap:10px}
.feats li{font-size:14px;color:#5b5849;line-height:1.6;display:flex;gap:11px}
.feats li::before{content:"—";color:var(--sage);flex:none}

/* numcards : small enumerated differentiators */
.numcards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1120px;margin:46px auto 0}
.ncard{background:var(--card);border:1px solid var(--rule-band);border-radius:5px;padding:34px 30px}
.ncard h3{font-size:18px;font-weight:500;letter-spacing:-.01em;margin:0 0 10px}
.ncard p{font-size:14.5px;line-height:1.8;color:var(--muted)}
.morelinks{display:flex;gap:26px;flex-wrap:wrap;margin-top:38px}

/* trainer-row : full profile */
.trainer-row{padding:clamp(60px,8vw,100px) 0}
.trainer-row .cols{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,5vw,64px);align-items:start;max-width:1080px;margin:0 auto}
.trainer-row .portrait{overflow:hidden;border-radius:5px;aspect-ratio:1/1;max-width:380px}
.trainer-row .portrait img{width:100%;height:100%;object-fit:cover}
.trainer-row .motto{font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.6;color:var(--sage-dk);margin-top:26px;max-width:380px}
.trainer-row .motto cite{display:block;font-family:var(--sans);font-style:normal;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:12px}
.trainer-row h2{font-size:clamp(25px,3vw,37px);font-weight:300;letter-spacing:-.02em;line-height:1.28}
.trainer-row h2 .role{display:inline-block;font-size:14px;font-weight:400;color:var(--muted);margin-left:10px;letter-spacing:0}
.trainer-row .bio{font-size:15px;line-height:1.9;color:var(--muted);margin-top:22px;max-width:520px}
.trainer-row h3{font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--sage-dk);margin:34px 0 0}
.timeline{margin-top:16px;border-top:1px solid var(--greige)}
.timeline .r{display:flex;gap:22px;padding:13px 2px;border-bottom:1px solid var(--greige)}
.timeline .p{font-size:13.5px;color:var(--sage-dk);min-width:104px;font-variant-numeric:tabular-nums}
.timeline .w{font-size:14.5px;line-height:1.55;color:var(--ink)}

/* ttabs : 강사 토글 — 명부(roster) 탭, pagehead 하단 괘선이 레일 */
.pagehead.has-tabs .wrap{padding-bottom:0}
.ttabs{display:flex;max-width:1080px;margin:clamp(30px,4vw,46px) auto 0}
.ttab{flex:1;background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;padding:15px 8px 16px;display:flex;flex-direction:column;align-items:center;gap:5px;transition:border-color .2s}
.ttab strong{font-size:clamp(16px,1.7vw,19px);font-weight:500;letter-spacing:-.01em;color:var(--muted);transition:color .2s}
.ttab span{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);opacity:.75}
.ttab:hover strong{color:var(--ink)}
.ttab[aria-selected="true"]{border-bottom-color:var(--sage-dk)}
.ttab[aria-selected="true"] strong{color:var(--ink)}
.ttab[aria-selected="true"] span{color:var(--sage-dk);opacity:1}
.ttab:focus-visible{outline:2px solid var(--sage-dk);outline-offset:-2px}

/* records : 자격·수료 전체 수록 아카이브 — 풀폭 3단 레저 (경력은 위층 디테일 칼럼) */
.records{max-width:1080px;margin:clamp(34px,4.5vw,54px) auto 0}
.records h3{margin-top:0}
.records .cnt{font-family:var(--serif);font-style:italic;font-weight:400;font-size:14px;line-height:1;letter-spacing:.02em;text-transform:none;color:var(--muted);margin-left:7px}
.ledger{list-style:none;margin-top:15px;border-top:1px solid var(--greige)}
.ledger li{font-size:13.5px;line-height:1.65;color:#5b5849;padding:8px 2px;border-bottom:1px solid var(--greige)}
.ledger.certs{columns:3;column-gap:clamp(28px,3.5vw,48px)}
.ledger.certs li{break-inside:avoid}
@media(max-width:1100px){.ledger.certs{columns:2}}
.ledger.career li{display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.ledger.career li strong{font-weight:500;color:var(--ink)}
.ledger.career .p{font-size:12.5px;color:var(--sage-dk);font-variant-numeric:tabular-nums;flex:none;margin-left:auto}
.ledger .sub{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;letter-spacing:.01em}
.nb{white-space:nowrap}

/* classcard : detailed class + fit list */
.classlist{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.classcard{background:var(--card);border:1px solid var(--greige);border-radius:6px;padding:34px 32px;display:grid;grid-template-columns:1.45fr 1fr;gap:30px}
.classcard .head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.classcard h2{font-size:22px;font-weight:600;letter-spacing:-.01em}
.classcard .tag{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--sage-dk);border:1px solid var(--sage);border-radius:999px;padding:4px 11px}
.classcard .desc{font-size:14.5px;line-height:1.85;color:var(--muted);margin-top:14px}
.classcard .meta{display:flex;gap:10px;font-size:13px;color:var(--muted);margin-top:16px}
.classcard .meta span.sep{color:var(--greige)}
.classcard .fit{border-left:1px solid var(--greige);padding-left:26px}
.classcard .fit .lbl{font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--sage-dk);margin-bottom:12px}
.classcard .fit p{font-size:14px;line-height:1.6;color:var(--muted);display:flex;gap:9px;margin-top:9px}
.classcard .fit p::before{content:"—";color:var(--sage);flex:none}

/* faq : native details accordion — 밴드 배경이라 괘선은 --rule-band */
.faq{max-width:820px;margin:0 auto;border-top:1px solid var(--rule-band)}
.faq details{border-bottom:1px solid var(--rule-band)}
.faq details[open]{border-bottom-color:var(--sage-dk)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 4px;font-size:16px;font-weight:500;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{flex:none;font-size:21px;line-height:1;color:var(--sage-dk);transition:transform .25s ease}
.faq details[open] summary .ic{transform:rotate(45deg)}
.faq .a{padding:2px 4px 24px;font-size:14.5px;line-height:1.8;color:var(--muted);max-width:660px}
.faq-foot{text-align:center;margin-top:26px;font-size:14px;color:var(--muted)}
.faq-foot a{color:var(--sage-dk);border-bottom:1px solid var(--sage);padding-bottom:2px}
@media(prefers-reduced-motion:reduce){.faq summary .ic{transition:none}}

/* contact page : intro + method tiles + form grid */
.contactwrap{padding:clamp(64px,9vw,100px) 0}
.contactwrap .cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,60px);max-width:1080px;margin:0 auto;align-items:start}
.contactwrap .cform{max-width:none;margin:0}
.contactwrap .cform-shell{background:var(--card);border:1px solid var(--greige);border-radius:8px;padding:34px 32px}
.contactwrap .lede{margin-top:20px;font-size:15px;line-height:1.8;color:var(--muted);max-width:420px}
.ctiles{display:flex;gap:12px;margin-top:30px;max-width:460px}
.ctile{flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;padding:22px 10px 16px;background:var(--card);border:1px solid var(--greige);border-radius:6px;text-align:center;transition:border-color .2s}
.ctile:hover{border-color:var(--sage)}
.ctile .ico{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.ctile .ico.phone{background:var(--forest)}
.ctile .ico.kko{background:#03C75A} /* 문의 페이지 톡톡 아이콘은 네이버 원색 유지(사용자 확정) — forest는 botbar만 */
.ctile .ico.insta{background:linear-gradient(45deg,#FEDA75,#FA7E1E 25%,#D62976 50%,#962FBF 78%,#4F5BD5)}
.ctile .t{font-size:13px;font-weight:600;color:var(--ink)}
.ctile .s{font-size:11px;color:var(--muted)}
.faq-jump{display:inline-flex;align-items:center;gap:8px;margin-top:26px;font-size:14px;font-weight:500;color:var(--sage-dk);border-bottom:1px solid var(--sage);padding-bottom:3px}

/* legal doc */
.legal{max-width:760px;margin:0 auto;padding:clamp(60px,8vw,96px) 40px clamp(80px,10vw,120px)}
.legal h1{font-size:clamp(26px,3.6vw,40px);font-weight:300;letter-spacing:-.02em;line-height:1.32}
.legal .date{margin-top:16px;font-size:13.5px;color:var(--muted)}
.legal .body{margin-top:44px;display:flex;flex-direction:column;gap:36px}
.legal h2{font-size:17px;font-weight:600;color:var(--ink);margin-bottom:12px}
.legal p,.legal li{font-size:14.5px;line-height:1.85;color:#4a4a40}
.legal ul{margin:10px 0 0;padding-left:18px}
.legal li{margin-bottom:4px}

/* ---------- mobile menu + bottom bar ---------- */
.mmenu{position:fixed;inset:0;z-index:60;background:var(--linen);transform:translateX(100%);transition:transform .35s ease;padding:88px 30px 40px;display:flex;flex-direction:column;visibility:hidden}
.mmenu.open{transform:none;visibility:visible}
.mmenu a{font-size:21px;font-weight:300;letter-spacing:-.01em;padding:17px 0;border-bottom:1px solid var(--greige);color:var(--ink)}
.mmenu a[aria-current="page"]{color:var(--sage-dk);font-weight:500}
.mmenu a[aria-current="page"]::before{content:"— ";color:var(--sage)} /* 현재 페이지 표기 — 색차만으론 안 읽혀 대시 마커 추가(2026-07-16 사용자) */
.mmenu .mfoot{margin-top:auto;display:flex;gap:10px;padding-top:24px}
.mmenu .mfoot a{flex:1;text-align:center;padding:14px 0;border:0;border-radius:999px;font-size:14px;font-weight:600}
.mmenu .mfoot .tel{border:1px solid var(--greige);color:var(--ink)}
.mmenu .mfoot .book{background:var(--sage-btn);color:#fff}
.mclose{position:absolute;top:26px;right:24px;font-size:24px;background:none;border:0;color:var(--ink);cursor:pointer}
.botbar{position:fixed;left:0;right:0;bottom:0;z-index:55;display:none;grid-template-columns:1fr 1fr 1.3fr;background:#fff;border-top:1px solid var(--greige);transition:transform .3s ease}
.botbar a{padding:15px 6px;text-align:center;font-size:13px;font-weight:600;letter-spacing:.01em}
.botbar a.tel{color:var(--ink)}
.botbar a.kko{background:var(--forest);color:#fff} /* 네이버 톡톡 — 원색(#03C75A) 대신 팔레트 딥그린, 2026-07-16 사용자 */
.botbar a.book{background:var(--sage-btn);color:#fff}
.botbar.hide{transform:translateY(100%)}

/* ---------- responsive ---------- */
@media(max-width:860px){
  .wrap{padding:0 22px}
  .menu,.nav .pill{display:none}
  .hamb{display:block;color:#fff;font-size:22px;background:none;border:0}
  header.solid .hamb{color:var(--ink)}
  .hero{height:86vh}
  .offer-card{padding:28px 26px}
  .statement{padding:80px 0 70px}
  .statement .grid{grid-template-columns:1fr;gap:34px}
  .statement .grain-margin{display:none}
  .classes .cols{grid-template-columns:1fr;gap:26px}
  .ccard figure{aspect-ratio:16/11}
  .split .duo{grid-template-columns:1fr}
  .split figure{min-height:320px}
  .split .txt{padding:56px 26px}
  .review{padding:80px 0}
  .review .quotes{min-height:0}
  .review .q{flex-direction:column;text-align:center;gap:26px;padding:34px 26px}
  .review .pic{width:150px;height:184px}
  .review .qbody{text-align:center}
  .review .qbody::before{display:none}
  .trust .wrap{grid-template-columns:1fr 1fr;gap:30px 16px}
  .trainers,.pricing,.schedule,.facility,.location,.contact{padding:78px 0}
  .trainers .grid{grid-template-columns:1fr;gap:48px;max-width:340px}
  .pricing .cols{grid-template-columns:1fr;gap:30px}
  .gal{grid-template-columns:1fr 1fr;grid-auto-rows:150px}
  .gal .g-studio{grid-column:1/3;grid-row:1}
  .gal .g-lounge{grid-column:1/3;grid-row:4}
  .gal .g-ref{grid-column:1;grid-row:2/4}
  .gal .g-props{grid-column:2;grid-row:2/4}
  .location .cols{grid-template-columns:1fr;gap:34px}
  .ctabanner{padding:78px 0}
  footer.site{padding:56px 0 90px}
  footer.site .top{grid-template-columns:1fr 1fr;gap:32px}
  footer.site .brand{grid-column:1/3}
  .mmenu,.botbar{display:flex}
  .botbar{display:grid}
  body{padding-bottom:54px}
  body.nobar{padding-bottom:0}

  /* subpage responsive */
  .media-row .cols,.trainer-row .cols,.contactwrap .cols{grid-template-columns:1fr;gap:32px}
  .media-row.portrait .cols,.trainer-row.portrait .cols{grid-template-columns:1fr}
  .media-row.rev figure{order:0}
  .media-row.portrait figure,.trainer-row .portrait{max-width:none}
  .records{margin-top:34px}
  .ledger.certs{columns:1}
  .numcards{grid-template-columns:1fr;gap:14px}
  .classcard{grid-template-columns:1fr;gap:22px}
  .classcard .fit{border-left:0;border-top:1px solid var(--greige);padding-left:0;padding-top:22px}
  .ctiles{max-width:none}
  .legal{padding-left:22px;padding-right:22px}
}
@media(min-width:861px){.mmenu{display:none}}

/* ---- 제안 데모 전용 표기 (soom-pilates) ---- */
.imgnote{display:block;text-align:center;font-size:11px;letter-spacing:.04em;color:var(--muted);margin:8px 0 12px}
.tcard .imgnote{margin:-16px 0 16px}
.media-row .imgnote{text-align:left;margin:14px 0 0}
.review .exnote{font-size:12.5px;color:var(--muted);margin:12px 0 4px;opacity:.85}
footer.site .demo-note{margin-top:18px;font-size:11.5px;color:rgba(247,245,240,.45)}
footer.site .demo-note a{color:rgba(247,245,240,.62);text-decoration:underline}
