/* 조이몬스터 손님 페이지 — 포스터 v2 언어: 종이 · 먹 · 유니폼 노랑 한 색 */
@font-face { font-family:'Clash'; src:url('../fonts/ClashDisplay-500.woff2') format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'Clash'; src:url('../fonts/ClashDisplay-600.woff2') format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family:'Clash'; src:url('../fonts/ClashDisplay-700.woff2') format('woff2'); font-weight:700; font-display:swap; }
@font-face { font-family:'Pretendard'; src:url('../fonts/PretendardVariable.woff2') format('woff2'); font-weight:100 900; font-display:swap; }

:root{
  --paper:#F3F1EC;
  --paper-2:#EAE7E0;
  --ink:#121212;
  --mute:#6E6B66;
  --line:rgba(18,18,18,.16);
  --line-strong:#121212;
  --yellow:#FFC400;
  --on-ink:#F3F1EC;
  --on-ink-mute:rgba(243,241,236,.62);
  --on-ink-line:rgba(243,241,236,.18);

  --gut:20px;
  --max:1200px;
  --bar:60px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (min-width:768px){ :root{ --gut:40px; --bar:68px; } }

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--bar) + 12px); -webkit-text-size-adjust:100%; }
body{
  background:var(--paper); color:var(--ink);
  font-family:'Pretendard',-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:16px; line-height:1.6; letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;
  padding-top:var(--bar);
  overflow-x:hidden;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; }
ul,ol{ list-style:none; }
:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }
.sec--ink :focus-visible{ outline-color:var(--yellow); }

.wrap{ width:100%; max-width:calc(var(--max) + var(--gut)*2); margin:0 auto; padding:0 var(--gut); }

.ico{ width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.ico--lg{ width:26px; height:26px; }
.btn--line .ico{ fill:currentColor; stroke:none; }

.label{
  font-family:'Clash',sans-serif; font-weight:600; font-size:12px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--mute);
}

/* ───────── 위쪽 고정 바 ───────── */
.bar{
  position:fixed; inset:0 0 auto 0; z-index:50; height:var(--bar);
  background:rgba(243,241,236,.94);
  -webkit-backdrop-filter:saturate(1.2) blur(10px); backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:1px solid var(--line);
}
.bar__in{ height:100%; max-width:calc(var(--max) + var(--gut)*2); margin:0 auto; padding:0 var(--gut);
  display:flex; align-items:center; gap:16px; }
.bar__brand{ display:flex; align-items:center; gap:10px; text-decoration:none; margin-right:auto; }
.bar__brand img{ width:38px; height:38px; }
.bar__brand span{ font-family:'Clash'; font-weight:700; font-size:20px; letter-spacing:.1em; text-transform:uppercase; }
@media (max-width:420px){ .bar__brand span{ font-size:16px; letter-spacing:.04em; } .bar__brand{ gap:8px; } .bar__brand img{ width:32px; height:32px; } }
@media (max-width:374px){ .bar__brand span{ font-size:14px; letter-spacing:.02em; } }
.bar__nav{ display:none; gap:26px; font-size:14px; font-weight:500; }
.bar__nav a{ text-decoration:none; color:var(--mute); transition:color .2s; }
.bar__nav a:hover{ color:var(--ink); }
.bar__cta{ display:flex; gap:8px; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:44px; padding:0 16px; text-decoration:none;
  font-size:15px; font-weight:700; letter-spacing:-.01em; white-space:nowrap;
  transition:background .2s, color .2s, transform .15s var(--ease);
}
.btn:active{ transform:translateY(1px); }
.btn--book{ background:var(--yellow); color:var(--ink); }
.btn--book:hover{ background:var(--ink); color:var(--yellow); }
.btn--line{ border:1px solid var(--ink); width:44px; padding:0; }
.btn--line:hover{ background:var(--ink); color:var(--paper); }
.btn__txt{ display:none; }
@media (min-width:600px){
  .btn--line{ width:auto; padding:0 14px; }
  .btn__txt{ display:inline; }
}
@media (min-width:1080px){ .bar__nav{ display:flex; margin-right:auto; } .bar__brand{ margin-right:28px; } }
@media (max-width:359px){ .bar__brand span{ display:none; } }

/* ───────── ① 첫 화면 ───────── */
.hero{ padding-bottom:56px; }
.hero__meta{
  display:flex; justify-content:space-between; gap:12px;
  font-family:'Clash'; font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  padding-top:14px; padding-bottom:12px;
}
.hero__photo{ position:relative; overflow:hidden; height:min(64vh, 560px); min-height:320px; background:var(--paper-2); }
.hero__photo img{ width:100%; height:100%; object-fit:cover; object-position:30% 70%;
  animation:heroIn 1.4s var(--ease) both; }
@keyframes heroIn{ from{ transform:scale(1.06); opacity:.0; } to{ transform:scale(1); opacity:1; } }
.hero__under{ position:relative; display:flex; justify-content:space-between; align-items:flex-start; gap:16px; min-height:56px; }
.cap{ padding-top:12px; font-family:'Clash'; font-weight:500; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--mute); }
.cap b{ display:block; word-break:keep-all; font-family:'Pretendard'; font-weight:600; letter-spacing:0; text-transform:none; font-size:12px; margin-top:2px; }
.season{
  flex:none; margin-top:-44px; position:relative; z-index:2;
  width:132px; height:88px; background:var(--yellow); padding:10px 12px;
  display:flex; flex-direction:column; justify-content:space-between;
}
.season span{ font-family:'Clash'; font-weight:600; font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
.season strong{ font-family:'Clash'; font-weight:700; font-size:36px; line-height:.9; letter-spacing:-.01em; }

.hero__title{ margin-top:28px; font-weight:800; font-size:clamp(40px, 11vw, 104px); line-height:1.08; letter-spacing:-.045em; word-break:keep-all; }
.hero__sub{ margin-top:18px; max-width:34em; font-size:17px; font-weight:500; color:var(--mute); word-break:keep-all; }

.facts{ margin-top:36px; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line-strong); }
.facts > div{ padding:16px 14px 18px 0; border-bottom:1px solid var(--line); }
.facts > div:nth-child(even){ padding-left:14px; border-left:1px solid var(--line); }
.facts dt{ font-family:'Clash'; font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--mute); }
.facts dd{ margin-top:8px; font-size:16px; font-weight:700; line-height:1.38; letter-spacing:-.02em; word-break:keep-all; }

@media (min-width:768px){
  .hero__meta{ font-size:13px; padding-top:22px; padding-bottom:16px; }
  .hero__photo{ height:min(72vh, 720px); }
  .cap{ font-size:12px; } .cap b{ display:inline; margin:0 0 0 10px; font-size:13px; }
  .season{ width:200px; height:116px; margin-top:-58px; padding:14px 18px; }
  .season span{ font-size:12px; } .season strong{ font-size:52px; }
  .hero__sub{ font-size:21px; }
  .facts{ grid-template-columns:repeat(4,1fr); margin-top:52px; }
  .facts > div{ padding:20px 20px 4px 0; border-bottom:0; }
  .facts > div + div{ padding-left:20px; border-left:1px solid var(--line); }
  .facts dd{ font-size:21px; }
}

@media (max-width:767px){ .hero__meta span + span{ display:none; } .hero__meta{ white-space:nowrap; } }

/* ───────── 공통 구역 ───────── */
.sec{ padding:72px 0; border-top:1px solid var(--line-strong); }
.sec--tint{ background:var(--paper-2); }
.sec--ink{ background:var(--ink); color:var(--on-ink); border-top:0; }
.sec--ink .label{ color:var(--on-ink-mute); }
.sec__head{ display:grid; gap:14px; margin-bottom:40px; }
.sec__head .label i{ font-style:normal; color:var(--ink); margin-right:12px; }
.sec--ink .sec__head .label i{ color:var(--yellow); }
.sec__head h2{ font-size:clamp(32px, 8vw, 64px); font-weight:800; line-height:1.12; letter-spacing:-.04em; word-break:keep-all; }
@media (min-width:768px){
  .sec{ padding:112px 0; }
  /* 구역 제목은 모두 왼쪽 정렬: 번호 라벨 위, 제목 아래 */
  .sec__head{ gap:18px; margin-bottom:64px; }
}
.fine{ margin-top:28px; font-size:14px; color:var(--mute); word-break:keep-all; max-width:44em; }
.sec--ink .fine{ color:var(--on-ink-mute); }

/* 정의 목록 (강습·렌탈) */
.spec{ border-top:1px solid var(--line-strong); }
.spec > div{ display:grid; grid-template-columns:84px 1fr; gap:12px; padding:16px 0; border-bottom:1px solid var(--line); }
.spec dt{ font-size:14px; font-weight:600; color:var(--mute); padding-top:2px; }
.spec dd{ font-size:17px; font-weight:700; letter-spacing:-.02em; line-height:1.45; word-break:keep-all; }
.spec small{ display:block; margin-top:4px; font-size:14px; font-weight:500; color:var(--mute); letter-spacing:-.01em; }

/* ───────── ② 강습 ───────── */
.lesson{ display:grid; gap:32px; }
.lesson__photo{ position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--paper-2); max-height:640px; }
.lesson__photo img{ width:100%; height:100%; object-fit:cover; }
.lesson__photo figcaption{ position:absolute; left:0; bottom:0; background:var(--paper); padding:8px 12px 0 0;
  font-family:'Clash'; font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
.note{ margin-top:28px; padding:20px; background:var(--yellow); }
.note p{ font-size:16px; font-weight:600; line-height:1.55; word-break:keep-all; }
.link{ display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-weight:700; font-size:15px;
  text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px; }
.link:hover{ text-decoration-thickness:2px; }
@media (min-width:900px){
  .lesson{ grid-template-columns:5fr 7fr; gap:64px; align-items:start; }
  .lesson__photo{ max-height:none; }
  .spec dd{ font-size:20px; }
  .spec > div{ grid-template-columns:120px 1fr; padding:20px 0; }
}

/* ───────── 이용 순서 ───────── */
.steps{ display:grid; border-top:1px solid var(--on-ink-line); counter-reset:s; }
.steps li{ padding:28px 0 30px; border-bottom:1px solid var(--on-ink-line); display:grid; grid-template-columns:64px 1fr; column-gap:16px; }
.steps__no{ grid-row:span 3; font-family:'Clash'; font-weight:700; font-size:40px; line-height:1; color:var(--yellow); }
.steps h3{ font-size:21px; font-weight:800; letter-spacing:-.03em; line-height:1.3; word-break:keep-all; }
.steps p{ margin-top:8px; color:var(--on-ink-mute); font-size:15px; word-break:keep-all; }
.steps .steps__where{ margin-top:14px; color:var(--on-ink); font-weight:600; font-size:14px; padding-top:12px; border-top:1px dashed var(--on-ink-line); }
@media (min-width:768px){
  .steps{ grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--on-ink-line); }
  .steps li{ display:flex; flex-direction:column; padding:28px 28px 36px; border-bottom:0; }
  .steps li:first-child{ padding-left:0; }
  .steps li + li{ border-left:1px solid var(--on-ink-line); }
  .steps__no{ font-size:72px; margin-bottom:40px; }
  .steps h3{ font-size:24px; }
  .steps .steps__where{ margin-top:auto; padding-top:20px; }
  .steps p:not(.steps__where){ margin-bottom:24px; }
}

/* ───────── ③ 코치진 ───────── */
.coaches{ display:grid; grid-template-columns:1fr 1fr; gap:36px 14px; }
.coach figure{ aspect-ratio:4/5; overflow:hidden; background:var(--paper-2); }
.coach figure img{ width:100%; height:100%; object-fit:cover; filter:grayscale(.15) contrast(1.02); transition:transform .6s var(--ease), filter .4s; }
.coach:hover figure img{ transform:scale(1.03); filter:none; }
.coach__role{ margin-top:12px; font-family:'Clash'; font-weight:600; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--mute);
  padding-bottom:8px; border-bottom:1px solid var(--line-strong); }
.coach h3{ margin-top:8px; font-size:21px; font-weight:800; letter-spacing:-.03em; }
.coach h3 span{ font-size:14px; font-weight:600; color:var(--mute); margin-left:4px; letter-spacing:-.01em; }
.coach__cv{ margin-top:8px; }
.coach__cv li{ font-size:13px; line-height:1.5; color:#3a3835; padding:5px 0; border-top:1px solid var(--line); word-break:keep-all; }
.coach__cv li:first-child{ border-top:0; padding-top:0; }
@media (min-width:768px){
  .coaches{ grid-template-columns:repeat(4,1fr); gap:56px 24px; }
  .coach h3{ font-size:24px; }
  .coach__role{ font-size:11px; }
  .coach__cv li{ font-size:14px; }
}

/* ───────── ④ 렌탈샵 ───────── */
.rental{ display:grid; gap:32px; }
.rental__grid{ display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.rental__grid figure{ overflow:hidden; background:var(--paper-2); }
.rental__grid img{ width:100%; height:100%; object-fit:cover; }
.rental__grid .r1, .rental__grid .r4{ grid-column:span 2; aspect-ratio:16/9; }
.rental__grid .r2, .rental__grid .r3{ aspect-ratio:1/1; }
.lead{ font-size:20px; font-weight:700; line-height:1.45; letter-spacing:-.03em; margin-bottom:24px; word-break:keep-all; }
.addr{ margin-top:24px; padding-top:16px; border-top:1px solid var(--line-strong); font-weight:700; font-size:16px; }
.addr .label{ display:block; margin-bottom:6px; }
@media (min-width:900px){
  .rental{ grid-template-columns:7fr 5fr; gap:56px; align-items:start; }
  .rental__grid{ gap:8px; }
  .lead{ font-size:24px; }
  .rental__body{ position:sticky; top:calc(var(--bar) + 32px); }
}

/* ───────── ⑤ 리뷰 ───────── */
.score{ display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong); margin-bottom:40px; }
.score > div{ padding:18px 0; display:grid; gap:6px; }
.score > div + div{ padding-left:16px; border-left:1px solid var(--line); }
.score strong{ font-family:'Clash'; font-weight:700; font-size:clamp(44px, 12vw, 96px); line-height:.95; letter-spacing:-.02em; }
.score span{ font-size:13px; font-weight:500; color:var(--mute); line-height:1.45; }
/* 리뷰: 흰 종이 카드 6장, 위쪽 먹색 굵은 선, 원문 한 구절 굵게 */
.reviews{ display:grid; grid-template-columns:1fr; gap:16px; margin-top:8px; }
.review{ position:relative; display:flex; flex-direction:column; background:#fff; border-top:3px solid var(--ink); padding:28px 26px 24px; }
.review__mark{ font-family:'Clash'; font-weight:700; font-size:64px; line-height:.6; color:var(--yellow); height:28px; }
.review__tag{ order:3; margin-top:auto; padding-top:18px; border-top:1px solid var(--line); font-size:12px; font-weight:600; color:var(--mute); }
.review blockquote{ order:1; margin-top:14px; font-size:17px; line-height:1.75; color:var(--ink); letter-spacing:-.015em; word-break:keep-all; overflow-wrap:anywhere; }
.review blockquote strong{ font-weight:800; background:linear-gradient(transparent 62%, rgba(255,196,0,.45) 62%); }
.review__by{ order:4; margin-top:6px; font-family:'Clash'; font-weight:500; font-size:12px; letter-spacing:.06em; color:var(--mute); }
.review blockquote{ margin-bottom:22px; }
@media (min-width:768px){
  .reviews{ grid-template-columns:repeat(2,1fr); gap:20px; }
  .score > div{ grid-template-columns:auto 1fr; align-items:end; gap:20px; padding:24px 0; }
  .score > div + div{ padding-left:32px; }
}
@media (min-width:1100px){ .reviews{ grid-template-columns:repeat(3,1fr); } }

/* ───────── ⑥ 자주 묻는 질문 ───────── */
.faq{ border-top:1px solid var(--line-strong); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  list-style:none; cursor:pointer; position:relative;
  padding:20px 44px 20px 0; font-size:17px; font-weight:700; letter-spacing:-.025em; line-height:1.45; word-break:keep-all;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after, .faq summary::before{
  content:""; position:absolute; right:6px; top:50%; width:16px; height:1.75px; background:var(--ink);
  transition:transform .3s var(--ease);
}
.faq summary::before{ transform:rotate(90deg); }
.faq details[open] summary::before{ transform:rotate(0deg); }
.faq summary:hover{ color:#000; }
.faq details > div{ padding:0 44px 22px 0; }
.faq details p{ font-size:16px; color:#3a3835; line-height:1.7; word-break:keep-all; }
.faq details a{ font-weight:700; text-underline-offset:3px; }
.faq details[open] summary{ padding-bottom:12px; }
@media (min-width:900px){
  .faq-wrap{ display:grid; grid-template-columns:1fr 2fr; gap:0; }
  .sec__head--side{ display:block; position:sticky; top:calc(var(--bar) + 32px); align-self:start; }
  .sec__head--side h2{ margin-top:14px; }
  .faq summary{ font-size:19px; padding:24px 52px 24px 0; }
}

/* ───────── ⑦ 문의 ───────── */
.contact__grid{ display:grid; gap:1px; background:var(--on-ink-line); border:1px solid var(--on-ink-line); }
.cbox{ position:relative; display:grid; gap:6px; padding:22px 56px 24px 20px; background:var(--ink); text-decoration:none; transition:background .2s, color .2s; }
.cbox .ico{ position:absolute; right:20px; top:22px; }
.cbox strong{ font-size:21px; font-weight:800; letter-spacing:-.03em; margin-top:6px; }
.cbox strong.tel{ font-family:'Clash'; font-weight:600; font-size:30px; letter-spacing:0; line-height:1.1; }
.cbox__sub{ font-size:14px; color:var(--on-ink-mute); }
.cbox:hover{ background:#1d1d1d; }
.cbox--book{ background:var(--yellow); color:var(--ink); }
.cbox--book .label, .cbox--book .cbox__sub{ color:rgba(18,18,18,.66); }
.cbox--book:hover{ background:#ffd23a; }
.where{ margin-top:40px; display:grid; gap:20px; }
.where p{ margin-top:6px; font-size:16px; font-weight:600; line-height:1.55; }
@media (min-width:768px){
  .contact__grid{ grid-template-columns:1.3fr 1fr 1fr; }
  .cbox{ min-height:220px; align-content:end; padding:28px; }
  .cbox .ico{ right:28px; top:28px; }
  .cbox strong{ font-size:26px; }
  .cbox strong.tel{ font-size:40px; }
  .where{ grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--on-ink-line); }
  .where > div{ padding:20px 20px 0 0; }
  .where > div + div{ padding-left:20px; border-left:1px solid var(--on-ink-line); }
}

/* ───────── 꼬리 ───────── */
.foot{ background:var(--ink); color:var(--on-ink-mute); border-top:1px solid var(--on-ink-line); padding:28px 0 36px; font-size:13px; }
.foot__in{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; }
.foot__brand{ display:flex; align-items:center; gap:10px; color:var(--on-ink); font-family:'Clash'; font-weight:600; font-size:13px; letter-spacing:.14em; text-transform:uppercase; }

/* ───────── 등장 모션 ───────── */
.reveal{ opacity:1; transform:none; }
.js .reveal{ opacity:0; transform:translateY(14px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.js .reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .hero__photo img{ animation:none; }
  .js .reveal{ opacity:1; transform:none; transition:none; }
}

/* ───────── 의도 랜딩 페이지 ───────── */
.lp-hero{ padding:28px 0 0; }
.crumb{ display:flex; flex-wrap:wrap; gap:8px; font-size:13px; font-weight:500; color:var(--mute); padding-bottom:14px; border-bottom:1px solid var(--line-strong); }
.crumb a{ text-decoration:none; } .crumb a:hover{ text-decoration:underline; text-underline-offset:3px; }
.crumb [aria-current]{ color:var(--ink); font-weight:600; }
.lp-hero__title{ margin-top:28px; font-weight:800; font-size:clamp(38px, 10.5vw, 96px); line-height:1.08; letter-spacing:-.045em; word-break:keep-all; }
.lp-hero__answer{ margin-top:20px; max-width:30em; font-size:20px; font-weight:700; line-height:1.5; letter-spacing:-.03em; word-break:keep-all;
  padding-left:14px; border-left:4px solid var(--yellow); }
.lp-hero__intro{ margin-top:14px; max-width:36em; font-size:16px; color:var(--mute); word-break:keep-all; }
.lp-hero__cta{ margin-top:24px; display:flex; flex-wrap:wrap; gap:8px; }
.btn--big{ height:52px; padding:0 20px; font-size:16px; }
.lp-hero__cta .btn--line{ width:auto; padding:0 18px; }
.lp-hero__photo{ margin-top:36px; overflow:hidden; background:var(--paper-2); }
.lp-hero__photo img{ width:100%; height:100%; object-fit:cover; }
.lp-hero__photo--wide{ aspect-ratio:16/9; max-height:620px; width:100%; }
.lp-hero__photo--tall{ aspect-ratio:4/3; max-height:620px; }
.lp-hero__photo--tall img{ object-position:50% 35%; }
.lp-hero--404{ padding:64px 0 96px; }
.lp-hero--404 .related{ margin-top:40px; }
@media (min-width:768px){
  .lp-hero{ padding-top:40px; }
  .lp-hero__answer{ font-size:24px; padding-left:18px; }
  .lp-hero__intro{ font-size:18px; }
  .lp-hero__photo{ margin-top:56px; }
  .lp-hero__photo--wide, .lp-hero__photo--tall{ aspect-ratio:21/9; }
  .lp-hero__photo--wide img{ object-position:50% 60%; }
}
.lp-split{ display:grid; gap:0; }
@media (min-width:900px){ .lp-split{ grid-template-columns:1fr 2fr; } .lp-split .sec__head--side{ display:block; position:sticky; top:calc(var(--bar) + 32px); align-self:start; } .lp-split .sec__head--side h2{ margin-top:14px; } }
.topic__body p{ font-size:18px; font-weight:600; line-height:1.6; letter-spacing:-.02em; word-break:keep-all; padding:16px 0; border-bottom:1px solid var(--line); }
.topic__body p:first-child{ border-top:1px solid var(--line-strong); }
.checklist{ counter-reset:c; border-top:1px solid var(--line-strong); margin-bottom:20px; }
.checklist li{ counter-increment:c; display:grid; grid-template-columns:44px 1fr; column-gap:12px; padding:18px 0; border-bottom:1px solid var(--line); }
.checklist li::before{ content:counter(c, decimal-leading-zero); grid-row:span 2; font-family:'Clash'; font-weight:700; font-size:22px; line-height:1.1; }
.checklist b{ font-size:18px; font-weight:800; letter-spacing:-.025em; }
.checklist span{ margin-top:4px; font-size:15px; color:#3a3835; line-height:1.6; word-break:keep-all; }
.rental__grid--page{ margin:0; }
@media (min-width:768px){ .reviews--3{ columns:3; } }

.related{ display:grid; border-top:1px solid var(--line-strong); }
.rel{ position:relative; display:grid; gap:6px; padding:18px 40px 18px 0; border-bottom:1px solid var(--line); text-decoration:none; transition:background .2s, padding .3s var(--ease); }
.rel strong{ font-size:19px; font-weight:800; letter-spacing:-.03em; word-break:keep-all; }
.rel .ico{ position:absolute; right:4px; top:50%; margin-top:-9px; }
.rel:hover{ background:var(--yellow); padding-left:12px; }
@media (min-width:768px){
  .related{ grid-template-columns:repeat(2,1fr); column-gap:40px; }
  .rel strong{ font-size:22px; }
}
.foot__links{ display:flex; flex-wrap:wrap; gap:8px 20px; padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid var(--on-ink-line); }
.foot__links a{ color:var(--on-ink); text-decoration:none; font-size:14px; font-weight:600; }
.foot__links a:hover{ color:var(--yellow); }

/* 코치 대표 약력 1줄: 노랑 세로선 + 굵은 먹색 */
.coach__cv li.coach__key{ position:relative; padding:6px 0 7px 12px; margin-bottom:4px; border-top:0;
  font-weight:700; color:var(--ink); background:linear-gradient(90deg, rgba(255,196,0,.16), rgba(255,196,0,0) 85%); }
.coach__cv li.coach__key::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--yellow); }
.coach__cv li.coach__key + li{ border-top:0; }
.foot__biz{ margin-top:16px; padding-top:14px; border-top:1px solid var(--on-ink-line); font-size:12px; line-height:1.7; color:var(--on-ink-mute); word-break:keep-all; }
.sec__sub{ font-size:17px; font-weight:600; color:var(--mute); line-height:1.55; letter-spacing:-.02em; word-break:keep-all; }
@media (min-width:768px){ .sec__sub{ margin-top:-2px; font-size:19px; } }

/* 코치진 전문성 배지 */
.badges{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0; }
.badges li{ font-size:14px; font-weight:700; letter-spacing:-.01em; padding:8px 12px; border:1px solid var(--ink); background:#fff; }
.badges li:first-child{ background:var(--yellow); border-color:var(--yellow); }

/* 렌탈샵 강점 4칸 */
.rfeat{ list-style:none; padding:0; margin:0 0 28px; display:grid; grid-template-columns:1fr 1fr; border-top:2px solid var(--ink); }
.rfeat li{ padding:18px 14px 18px 0; border-bottom:1px solid var(--line); }
.rfeat li:nth-child(even){ padding-left:14px; border-left:1px solid var(--line); }
.rfeat b{ display:block; font-size:22px; font-weight:800; letter-spacing:-.03em; }
.rfeat b::before{ content:""; display:inline-block; width:10px; height:10px; background:var(--yellow); margin-right:8px; vertical-align:3px; }
.rfeat span{ display:block; margin-top:6px; font-size:14px; color:var(--mute); line-height:1.5; word-break:keep-all; }

/* 스크롤 목차: PC는 오른쪽 고정 목록, 폰은 상단 바 아래 현재 구역 + 진행 막대 */
/* 스크롤 목차: 상단 줄 없음. 폰은 오른쪽 점 목차, 768px 이상은 오른쪽 목록 */
.toc__mobile{ display:none !important; }
.toc__list{ display:block; position:fixed; right:6px; top:50%; transform:translateY(-50%); z-index:40; list-style:none; margin:0; padding:6px 0; }
.toc__list li{ margin:0; }
.toc__list a{ position:relative; display:block; width:22px; height:20px; font-size:0; text-decoration:none; }
.toc__list a::after{ content:""; position:absolute; right:8px; top:50%; width:6px; height:6px; margin-top:-3px; border-radius:3px; background:rgba(18,18,18,.28); transition:height .2s var(--ease), margin-top .2s var(--ease), background .2s; }
.toc__list a.is-on::after{ height:20px; margin-top:-10px; background:var(--yellow); box-shadow:0 0 0 1px rgba(18,18,18,.25); }
.toc__list a.is-on::before{ content:attr(data-label); position:absolute; right:22px; top:50%; transform:translateY(-50%); white-space:nowrap;
  font-size:11px; font-weight:800; color:var(--ink); background:rgba(243,241,236,.95); padding:3px 7px; border:1px solid var(--line); }
.toc__list em{ display:none; }
.toc__more{ display:none; }
@media (min-width:768px){
  .toc__list{ right:16px; padding:10px 0; background:rgba(243,241,236,.92); border-left:1px solid var(--line); }
  .toc__list a{ display:flex; align-items:center; gap:8px; width:auto; height:auto; color:var(--mute); white-space:nowrap; font-size:12px; font-weight:600; padding:5px 14px; border-left:3px solid transparent; margin-left:-2px; }
  .toc__list a::after, .toc__list a.is-on::before{ display:none; }
  .toc__list em{ display:inline; font-style:normal; font-family:'Clash'; font-weight:600; font-size:11px; letter-spacing:.06em; }
  .toc__list a:hover{ color:var(--ink); }
  .toc__list a.is-on{ font-size:12px; color:var(--ink); font-weight:800; border-left-color:var(--yellow); }
  .toc__list a.is-done{ color:var(--ink); }
  .toc__more{ display:block; }
}
@media (min-width:768px) and (max-width:1279px){ .toc__list{ right:8px; } .toc__list a{ padding:4px 10px; font-size:11px; } }
}

.note{ display:flex; flex-wrap:wrap; gap:10px 24px; }
.note .link{ margin-top:0; }

/* ───────── 자주 묻는 질문 페이지 ───────── */
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.faq__all{ margin-top:20px; }
.faqp{ padding-bottom:8px; }
.faqp__tools{ margin-top:28px; display:grid; gap:14px; }
.faqp__tools[hidden]{ display:none; }
.faqp__search{ display:flex; align-items:center; gap:10px; height:56px; padding:0 16px; background:#fff; border:2px solid var(--ink); }
.faqp__search .ico{ width:20px; height:20px; color:var(--mute); }
.faqp__search input{ flex:1; min-width:0; border:0; outline:0; background:transparent; font:inherit; font-size:17px; font-weight:600; color:var(--ink); }
.faqp__search input::placeholder{ color:#9a968f; font-weight:500; }
.faqp__search:focus-within{ box-shadow:0 0 0 3px var(--yellow); }
.faqp__chips{ display:flex; flex-wrap:wrap; gap:6px; }
.chip{ font:inherit; font-size:14px; font-weight:700; height:36px; padding:0 14px; border:1px solid var(--ink); background:transparent; color:var(--ink); cursor:pointer; }
.chip:hover{ background:var(--paper-2); }
.chip.is-on{ background:var(--ink); color:var(--paper); }
.faqp__count{ font-size:13px; font-weight:600; color:var(--mute); min-height:1em; }
.faqp__list{ border-top:0; padding-top:24px; }
.faqp__group + .faqp__group{ margin-top:48px; }
.faqp__group[hidden], .faq details[hidden]{ display:none; }
.faqp__topic{ display:flex; align-items:baseline; gap:10px; font-size:22px; font-weight:800; letter-spacing:-.03em; padding-bottom:12px; }
.faqp__topic span{ font-family:'Clash'; font-weight:600; font-size:13px; color:var(--mute); }
.faqp__group details{ scroll-margin-top:calc(var(--bar) + 20px); }
.faqp__group details:target summary{ background:rgba(255,196,0,.18); }
.faqp__empty{ padding:40px 0; border-top:1px solid var(--line-strong); }
.faqp__empty[hidden]{ display:none; }
.faqp__empty p{ font-size:18px; font-weight:700; margin-bottom:18px; word-break:keep-all; }
@media (min-width:900px){
  .faqp__tools{ grid-template-columns:minmax(0,1fr); max-width:860px; }
  .faqp__topic{ font-size:26px; }
}
.toc__more a{ color:var(--ink) !important; font-weight:700 !important; text-decoration:underline !important; text-underline-offset:3px; }

/* ───────── 요금·시간표 (흰 카드 표 + 먹색 시간표 블록, 근거 없는 행 강조 없음) ───────── */
#prices{ background:var(--paper-2); }
.prices{ display:grid; gap:20px; }
.prices__pair{ display:grid; gap:16px; }
.pcard{ background:#fff; border:1px solid var(--ink); padding:20px 18px 6px; }
.ptable{ border-collapse:collapse; table-layout:fixed; width:100%; font-variant-numeric:tabular-nums lining-nums; }
.ptable--4 .c-label{ width:22%; } .ptable--4 .c-num{ width:26%; }
.ptable--3 .c-label{ width:44%; } .ptable--3 .c-num{ width:28%; }
.ptable caption{ caption-side:top; text-align:left; padding-bottom:14px; }
.ptable caption b{ display:block; font-size:22px; font-weight:800; letter-spacing:-.035em; line-height:1.3; word-break:keep-all; }
.ptable caption span{ display:block; margin-top:4px; font-size:13px; font-weight:500; color:var(--mute); word-break:keep-all; }
.ptable th, .ptable td{ padding:14px 0; border-bottom:1px solid var(--line); vertical-align:middle; }
.ptable thead th{ font-size:15px; font-weight:800; color:var(--ink); text-align:left; padding:10px 0; border-bottom:2px solid var(--ink); }
.ptable .num{ text-align:right; }
.ptable tbody th{ text-align:left; font-size:15px; font-weight:700; line-height:1.35; word-break:keep-all; padding-right:8px; }
.ptable tbody td{ font-size:18px; font-weight:800; letter-spacing:-.01em; white-space:nowrap; }
.ptable tbody tr:last-child > *{ border-bottom:0; }
.prices__note{ font-size:13px; color:var(--mute); }
@media (min-width:900px){
  .prices__pair{ grid-template-columns:1.2fr 1fr; gap:20px; align-items:stretch; }
  .prices__pair--one{ grid-template-columns:1fr; max-width:720px; }
  .pcard{ padding:28px 28px 10px; }
  .ptable caption b{ font-size:26px; }
  .ptable thead th{ font-size:16px; }
  .ptable tbody th{ font-size:17px; }
  .ptable tbody td{ font-size:24px; }
  .ptable th, .ptable td{ padding:18px 0; }
}

/* 시간표: 하루 타임라인 + 타임 카드 */
.tt{ margin-top:16px; background:var(--ink); color:var(--on-ink); padding:28px 18px 24px; }
.tt__title{ display:flex; align-items:baseline; gap:12px; font-size:26px; font-weight:800; letter-spacing:-.035em; margin-bottom:22px; }
.tt__title span{ font-family:'Clash','Pretendard',sans-serif; font-size:13px; font-weight:600; letter-spacing:.08em; color:var(--yellow); }
.tt__line{ display:grid; gap:10px; margin-bottom:28px; }
.tt__row{ display:grid; grid-template-columns:1fr; gap:6px; }
.tt__lab{ font-size:13px; font-weight:700; color:var(--on-ink-mute); }
.tt__track{ position:relative; height:34px; background:repeating-linear-gradient(90deg, rgba(243,241,236,.10) 0 1px, transparent 1px calc(100% / 11)); border-left:1px solid var(--on-ink-line); border-right:1px solid var(--on-ink-line); }
.tt__blk{ position:absolute; top:3px; bottom:3px; display:grid; place-items:center; background:var(--yellow); color:var(--ink);
  font-family:'Clash','Pretendard',sans-serif; font-weight:700; font-size:14px; border-left:2px solid var(--ink); }
.tt__blk--alt{ background:linear-gradient(90deg, rgba(255,196,0,.45) 0 33.33%, var(--yellow) 33.33% 66.66%, rgba(255,196,0,.45) 66.66%); }
.tt__blk--3{ background:transparent; color:var(--yellow); border:2px solid var(--yellow); }
.tt__row--axis .tt__lab{ display:none; }
.tt__axis{ height:18px; background:none; border:0; }
.tt__tick{ position:absolute; top:0; transform:translateX(-50%); font-family:'Clash','Pretendard',sans-serif; font-size:11px; font-weight:600; color:var(--on-ink-mute); }
.tt__h{ font-size:15px; font-weight:800; margin-bottom:10px; }
.tt__cards{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--on-ink-line); border:1px solid var(--on-ink-line); }
.tt__cards--3{ margin-top:16px; grid-template-columns:1fr; }
.tt__card{ background:var(--ink); padding:16px 14px 18px; display:grid; gap:6px; }
.tt__no{ font-family:'Clash','Pretendard',sans-serif; font-size:12px; font-weight:600; letter-spacing:.08em; color:var(--yellow); text-transform:uppercase; }
.tt__card strong{ font-family:'Clash','Pretendard',sans-serif; font-weight:600; font-size:24px; letter-spacing:-.01em; line-height:1.1; font-variant-numeric:tabular-nums; white-space:nowrap; }
.tt__card strong i{ font-style:normal; color:var(--on-ink-mute); margin:0 3px; }
.tt__sub{ font-size:12.5px; color:var(--on-ink-mute); word-break:keep-all; }
.tt .p4h{ margin-top:24px; border-top:1px solid var(--on-ink-line); padding-top:18px; }
.tt .p4h__title{ font-size:18px; font-weight:800; }
.tt .p4h > p:not(.p4h__title){ margin-top:6px; font-size:15px; line-height:1.65; color:var(--on-ink); word-break:keep-all; }
.tt .p4h__ex{ margin-top:12px; border-top:1px solid var(--on-ink-line); }
.tt .p4h__ex > div{ display:grid; grid-template-columns:72px 1fr; gap:10px; padding:10px 0; border-bottom:1px solid var(--on-ink-line); font-size:14px; }
.tt .p4h__ex dt{ font-weight:700; color:var(--yellow); }
.tt .p4h__ex dd{ font-weight:600; font-variant-numeric:tabular-nums; word-break:keep-all; }
@media (max-width:374px){ .tt__card strong{ font-size:20px; } }
@media (min-width:768px){
  .tt{ padding:40px 40px 36px; }
  .tt__title{ font-size:32px; }
  .tt__row{ grid-template-columns:130px 1fr; align-items:center; gap:16px; }
  .tt__row--axis .tt__lab{ display:block; }
  .tt__track{ height:40px; }
  .tt__cards{ grid-template-columns:repeat(4,1fr); }
  .tt__cards--3{ grid-template-columns:repeat(4,1fr); background:none; border:0; }
  .tt__cards--3 .tt__card{ border:1px solid var(--on-ink-line); }
  .tt__card{ padding:20px 18px 22px; }
  .tt__card strong{ font-size:28px; }
}
.lp-split .prices__pair{ grid-template-columns:1fr; }
.lp-split .tt__row{ grid-template-columns:1fr; }
.lp-split .tt__cards{ grid-template-columns:1fr 1fr; }

/* ───────── 언어 전환 (한 · EN · 中) ───────── */
.lang{ display:flex; align-items:center; flex:none; }
.lang__inline{ display:none; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--mute); }
.lang__inline a{ text-decoration:none; color:var(--mute); padding:4px 2px; }
.lang__inline a:hover{ color:var(--ink); }
.lang__inline a[aria-current]{ color:var(--ink); font-weight:800; text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:2px; text-decoration-color:var(--yellow); }
.lang__m{ position:relative; }
.lang__m summary{ list-style:none; display:flex; align-items:center; gap:2px; height:44px; padding:0 6px; font-size:14px; font-weight:800; cursor:pointer; }
.lang__m summary::-webkit-details-marker{ display:none; }
.lang__m summary .ico{ width:14px; height:14px; }
.lang__menu{ position:absolute; right:0; top:46px; min-width:150px; background:var(--paper); border:1px solid var(--ink); z-index:60; }
.lang__menu a{ display:flex; gap:10px; align-items:center; padding:12px 14px; font-size:14px; font-weight:600; text-decoration:none; border-bottom:1px solid var(--line); }
.lang__menu a:last-child{ border-bottom:0; }
.lang__menu a b{ width:22px; font-weight:800; }
.lang__menu a[aria-current]{ background:var(--yellow); }
@media (min-width:768px){ .lang__inline{ display:flex; } .lang__m{ display:none; } }
@media (max-width:420px){ .bar__in{ gap:6px; } .bar__cta{ gap:6px; } .btn--book{ padding:0 12px; } }
@media (max-width:374px){ .btn--book .ico{ display:none; } }

/* ───────── 영어 강습 배너 (EN·ZH 페이지) ───────── */
.lbanner{ background:var(--ink); color:var(--paper); }
.lbanner[hidden]{ display:none; }
.lbanner__in{ display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:40px; }
.lbanner p{ font-size:14px; font-weight:700; letter-spacing:-.01em; }
.lbanner p::before{ content:""; display:inline-block; width:8px; height:8px; background:var(--yellow); margin-right:10px; vertical-align:1px; }
.lbanner__x{ flex:none; width:40px; height:40px; margin-right:-10px; display:grid; place-items:center; background:none; border:0; color:var(--paper); cursor:pointer; }
.lbanner__x:hover{ color:var(--yellow); }

/* ───────── 리뷰 번역 ───────── */
.review__tr{ margin-top:10px; padding-top:10px; border-top:1px dashed var(--line); font-size:14px; line-height:1.65; color:#3a3835; }
.review__tr span{ display:block; font-family:'Clash','Pretendard',sans-serif; font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--mute); margin-bottom:4px; }
:lang(en) .hero__title, :lang(en) .sec__head h2{ word-break:normal; }
.coaches > li{ min-width:0; }
.coach h3, .coach__cv li{ overflow-wrap:anywhere; }
.coach h3 span{ display:inline-block; }
.prices__pair > *, .prices > *, .tt__cards > *{ min-width:0; }
@media (max-width:480px){
  .pcard{ padding:18px 14px 4px; }
  .ptable tbody td{ font-size:16px; }
  .ptable thead th{ font-size:14px; }
  .ptable tbody th{ font-size:14px; }
  .ptable--4 .c-label{ width:19%; } .ptable--4 .c-num{ width:27%; }
  .tt{ padding:24px 14px 20px; }
  .tt__card{ padding:14px 12px 16px; }
  .tt__card strong{ font-size:21px; }
}

/* ───────── 자격증반 ───────── */
.cert{ display:grid; gap:20px; }
.cert__lead{ font-size:18px; font-weight:600; line-height:1.6; letter-spacing:-.02em; max-width:44em; word-break:keep-all; }
.cert__why{ margin:0; }
.cert__steps{ list-style:none; margin:0; padding:0; display:grid; gap:16px; }
.cert__step{ background:#fff; border:1px solid var(--ink); padding:20px 18px 22px; display:grid; gap:10px; min-width:0; }
.cert__no{ font-family:'Clash','Pretendard',sans-serif; font-size:13px; font-weight:600; letter-spacing:.08em; color:var(--mute); }
.cert__flow{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.cert__flow b{ font-size:22px; font-weight:800; letter-spacing:-.03em; word-break:keep-all; }
.cert__flow b:last-child{ background:var(--yellow); padding:2px 8px; }
.cert__flow .ico{ width:22px; height:22px; }
.cert__step > p:last-child{ font-size:15px; line-height:1.65; color:#3a3835; word-break:keep-all; }
.cert__note{ margin-top:0; }
.cert__cta{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; }
.cert__cta .link{ margin-top:0; }
.pcard__more{ display:inline-flex; margin:6px 0 14px; font-size:14px; }
@media (min-width:768px){
  .cert__steps{ grid-template-columns:1fr 1fr; gap:20px; }
  .cert__step{ padding:28px 28px 30px; }
  .cert__flow b{ font-size:26px; }
}
/* 중국어는 keep-all이면 글자 사이에서 줄이 안 바뀐다 → 일반 줄바꿈 */
html[lang="zh-Hans"] *{ word-break:normal !important; overflow-wrap:break-word; }
.cert > *, .cert__why > *{ min-width:0; }

/* 강습 안내 표: 왼쪽 항목 이름을 값과 같은 위계로 */
.lesson .spec dt, .lp-split .spec dt{ font-size:16px; font-weight:800; color:var(--ink); padding-top:1px; }
@media (min-width:900px){ .lesson .spec dt, .lp-split .spec dt{ font-size:18px; } }

/* 요금표 색: 머리줄·카드 단위로만 (행 강조 없음) */
#prices .sec__head{ margin-bottom:28px; }
.pcard{ border-width:2px; }
.pcard--4{ border-color:var(--yellow); }
.pcard--3{ border-color:var(--ink); }
.ptable thead th{ padding:12px 8px; border-bottom:0; font-size:16px; font-weight:800; }
.pcard--4 .ptable thead th{ background:var(--yellow); color:var(--ink); }
.pcard--3 .ptable thead th{ background:var(--ink); color:var(--yellow); }
.ptable thead th:first-child, .ptable tbody th{ padding-left:10px; }
.ptable thead th:last-child, .ptable tbody td:last-child{ padding-right:10px; }
.ptable tbody th{ font-size:16px; font-weight:800; }
.ptable tbody td{ font-size:17px; }
@media (min-width:900px){
  .ptable thead th{ font-size:20px; padding:14px 12px; }
  .ptable thead th:first-child, .ptable tbody th{ padding-left:14px; }
  .ptable thead th:last-child, .ptable tbody td:last-child{ padding-right:14px; }
  .ptable tbody th{ font-size:20px; }
  .ptable tbody td{ font-size:26px; }
}
@media (max-width:480px){
  .ptable thead th{ font-size:15px; padding:10px 4px; }
  .ptable thead th:first-child, .ptable tbody th{ padding-left:8px; }
  .ptable thead th:last-child, .ptable tbody td:last-child{ padding-right:8px; }
  .ptable tbody th{ font-size:15px; }
  .ptable tbody td{ font-size:16px; }
}
/* 프리미엄 표: 등급 칸을 줄여 2시간·3시간 금액 사이를 넓힘 */
.ptable--3 .c-label{ width:38%; } .ptable--3 .c-num{ width:31%; }
.ptable--3 tbody td.num, .ptable--3 thead th.num{ padding-left:16px; }
@media (min-width:768px){ .ptable--3 tbody th{ font-size:16px; } }

/* 시간표: 2시간·3시간 표 (먹색 블록, 머리줄 노랑 글자) */
.tt__tables{ display:grid; gap:28px; }
.ttable{ width:100%; border-collapse:collapse; table-layout:fixed; font-variant-numeric:tabular-nums; }
.ttable caption{ caption-side:top; text-align:left; padding-bottom:12px; font-size:20px; font-weight:800; letter-spacing:-.03em; color:var(--on-ink); }
.ttable thead th{ font-size:15px; font-weight:800; color:var(--yellow); text-align:left; padding:10px 8px; border-bottom:2px solid var(--yellow); }
.ttable .num{ text-align:right; }
.ttable tbody th, .ttable td{ padding:16px 8px; border-bottom:1px solid var(--on-ink-line); }
.ttable tbody th{ text-align:left; font-size:16px; font-weight:800; color:var(--on-ink); }
.ttable td{ font-size:20px; font-weight:700; color:var(--on-ink); white-space:nowrap; }
.ttable td:not(:has(time)){ font-size:14px; font-weight:600; color:var(--on-ink-mute); white-space:normal; }
.ttable--2 .c-slot{ width:26%; }
.ttable thead th:first-child, .ttable tbody th, .ttable--3 td:first-child{ padding-left:0; }
.ttable thead th:last-child, .ttable td:last-child{ padding-right:0; }
@media (max-width:480px){
  .ttable td{ font-size:17px; }
  .ttable tbody th{ font-size:15px; }
  .ttable caption{ font-size:18px; }
}
@media (min-width:900px){
  .tt__tables{ grid-template-columns:1.4fr 1fr; gap:48px; align-items:start; }
  .ttable caption{ font-size:22px; }
  .ttable thead th{ font-size:17px; }
  .ttable tbody th{ font-size:19px; }
  .ttable td{ font-size:26px; }
  .ttable tbody th, .ttable td{ padding:18px 8px; }
}
.lp-split .tt__tables{ grid-template-columns:1fr; }

/* 4시간 강습 표: 2시간 칸 3개, 강습=노랑 칸, 휴식=사선 빈칸 */
.ttable--4{ margin-top:32px; }
.ttable--4 caption span{ display:block; margin-top:4px; font-size:14px; font-weight:600; color:var(--on-ink-mute); letter-spacing:0; }
.ttable--4 .c-slot{ width:22%; }
.ttable--4 thead th.slotcol{ text-align:center; font-size:13px; line-height:1.25; padding:8px 2px; }
.ttable--4 thead th.slotcol i{ font-style:normal; display:block; height:0; overflow:hidden; }
.ttable--4 thead th.slotcol time{ display:block; }
.ttable--4 tbody th{ font-size:15px; }
.ttable--4 td{ padding:6px 3px; text-align:center; }
.ttable--4 .blk{ display:flex; align-items:center; justify-content:center; height:44px; background:var(--yellow); color:var(--ink); font-size:16px; font-weight:800; white-space:nowrap; }
.ttable--4 td.off{ }
.ttable--4 td.rest span{ display:flex; align-items:center; justify-content:center; height:44px; font-size:12px; font-weight:600; color:var(--on-ink-mute);
  background:repeating-linear-gradient(135deg, rgba(243,241,236,.10) 0 6px, transparent 6px 12px); border:1px dashed var(--on-ink-line); }
@media (min-width:768px){
  .ttable--4 thead th.slotcol{ font-size:15px; }
  .ttable--4 thead th.slotcol i{ display:inline; height:auto; margin:0 2px; }
  .ttable--4 thead th.slotcol time{ display:inline; }
  .ttable--4 .blk, .ttable--4 td.rest span{ height:54px; }
  .ttable--4 .blk{ font-size:20px; }
  .ttable--4 tbody th{ font-size:18px; }
}

/* 이용 순서 6단계: PC 3열×2행, 폰 세로 */
.steps--6 .steps__where{ word-break:keep-all; }
.steps__link{ display:inline-flex; align-items:center; gap:6px; margin-top:12px; font-size:14px; font-weight:700; color:var(--yellow); text-decoration:underline; text-underline-offset:4px; }
.steps__link .ico{ width:14px; height:14px; }
@media (min-width:768px){
  .steps--6{ grid-template-columns:repeat(3,1fr); border-bottom:0; }
  .steps--6 li{ border-bottom:1px solid var(--on-ink-line); }
  .steps--6 li:nth-child(3n+1){ padding-left:0; border-left:0; }
  .steps--6 li + li{ border-left:1px solid var(--on-ink-line); }
  .steps--6 li:nth-child(3n+1){ border-left:0; }
  .steps--6 .steps__no{ margin-bottom:24px; font-size:56px; }
}
html[lang="zh-Hans"] .steps--6 .steps__where{ word-break:normal; }
.steps--6 li > *:not(.steps__no){ grid-column:2; }
.steps--6 .steps__link{ justify-self:start; }
.steps--6 h3{ margin-bottom:10px; }
@media (min-width:768px){
  .steps--6 li > *:not(.steps__no){ grid-column:auto; }
  .steps--6 h3{ margin-bottom:16px; }
}

/* 시간표 3열 표 타임 칸 너비 */
.ttable--2 .c-slot, .ttable--3 .c-slot{ width:42%; }

/* 오른쪽 목차: 더 크게 + 스크롤 멈추면 오른쪽으로 숨김(손잡이만 보임) */
.toc__list{ transition:transform .35s var(--ease), opacity .35s var(--ease); }
.toc__list.is-tucked{ transform:translateY(-50%) translateX(calc(100% - 6px)); }
.toc__list.is-tucked::before{ content:""; position:absolute; left:-2px; top:50%; width:4px; height:44px; margin-top:-22px; border-radius:2px; background:var(--yellow); box-shadow:0 0 0 1px rgba(18,18,18,.2); }
@media (min-width:768px){
  .toc__list{ right:0; padding:14px 0; }
  .toc__list a{ font-size:14px; padding:7px 20px 7px 18px; gap:10px; }
  .toc__list em{ font-size:12px; }
  .toc__list a.is-on{ font-size:14px; }
  .toc__more a{ font-size:13px; }
  .toc__list.is-tucked{ transform:translateY(-50%) translateX(calc(100% - 8px)); opacity:.9; }
}
@media (min-width:768px) and (max-width:1279px){ .toc__list a{ font-size:13px; padding:6px 16px 6px 14px; } .toc__list a.is-on{ font-size:13px; } }
@media (prefers-reduced-motion:reduce){ .toc__list{ transition:none; } }

/* 요금 카드 아래 링크 줄 높이 맞춤 */
.pcard{ display:flex; flex-direction:column; }
.pcard .pcard__more{ margin-top:auto; align-self:flex-start; padding-top:14px; }

/* 4시간 표: 시간 칸 세로 구분선 (머리줄 진하게, 본문 옅게) */
.ttable--4 thead th.slotcol{ border-left:1px solid rgba(255,196,0,.5); }
.ttable--4 tbody td{ border-left:1px solid rgba(255,196,0,.18); }

/* ───────── 시간표 v3: 종이 바탕 + 표 카드 3개, 굵은 제목 띠 (요금표와 같은 언어) ───────── */
.tt{ background:none; color:var(--ink); padding:0; border:0; margin-top:36px; }
.tt__title{ display:flex; align-items:baseline; gap:12px; font-size:26px; font-weight:800; letter-spacing:-.035em; color:var(--ink); margin-bottom:16px; }
.tt__title span{ font-family:'Clash','Pretendard',sans-serif; font-size:13px; font-weight:600; letter-spacing:.08em; color:var(--mute); }
.tt__tables{ display:grid; gap:16px; }
.tcard{ background:#fff; border:2px solid var(--yellow); min-width:0; }
.tcard--k{ border-color:var(--ink); margin-top:16px; }
.tcard__bar{ margin:0; padding:14px 18px; font-size:22px; font-weight:800; letter-spacing:-.035em; background:var(--yellow); color:var(--ink); }
.tcard--k .tcard__bar{ background:var(--ink); color:var(--yellow); }
.tcard__body{ padding:6px 18px 14px; }
.tcard__note{ padding:10px 0 2px; font-size:14px; font-weight:600; color:var(--mute); }
.tcard .ttable caption{ display:none; }
.tcard .ttable thead th{ background:none; color:var(--ink); font-size:13px; font-weight:800; letter-spacing:.02em; padding:12px 6px 10px; border-bottom:1px solid var(--ink); }
.tcard .ttable thead th:first-child, .tcard .ttable tbody th{ padding-left:0; }
.tcard .ttable thead th:last-child, .tcard .ttable td:last-child{ padding-right:0; }
.tcard .ttable tbody th{ color:var(--ink); font-size:15px; font-weight:800; padding:14px 6px 14px 0; border-bottom:1px solid var(--line); }
.tcard .ttable td{ color:var(--ink); font-size:21px; font-weight:700; padding:14px 6px; border-bottom:1px solid var(--line); }
.tcard .ttable tbody tr:last-child > *{ border-bottom:0; }
/* 중간 정설 줄: 글자만, 옅은 사선 */
.tcard .ttable tr.groom td{ padding:8px 0; border-bottom:1px solid var(--line); }
.groom__lane{ display:flex; align-items:center; justify-content:center; height:40px;
  background:repeating-linear-gradient(135deg, rgba(18,18,18,.06) 0 6px, transparent 6px 12px); }
.groom__txt{ font-size:15px; font-weight:800; letter-spacing:.02em; color:var(--ink); }
/* 4시간 표 (흰 바탕) */
.tcard .ttable--4{ margin-top:6px; }
.tcard .ttable--4 thead th.slotcol{ text-align:center; border-left:1px solid rgba(18,18,18,.18); }
.tcard .ttable--4 tbody td{ border-left:1px solid var(--line); padding:6px 3px; }
.tcard .ttable--4 .blk{ background:var(--yellow); color:var(--ink); }
.tcard .ttable--4 td.rest span{ color:var(--mute); background:repeating-linear-gradient(135deg, rgba(18,18,18,.09) 0 6px, transparent 6px 12px); border:1px dashed rgba(18,18,18,.28); }
.tcard .ttable--4 tbody th{ font-size:15px; }
@media (max-width:480px){
  .tcard__bar{ font-size:20px; padding:12px 14px; }
  .tcard__body{ padding:4px 14px 12px; }
  .tcard .ttable td{ font-size:18px; }
  .tcard .ttable tbody th{ font-size:14px; }
}
@media (min-width:900px){
  .tt__title{ font-size:32px; }
  .tt__tables{ grid-template-columns:1.3fr 1fr; gap:20px; align-items:start; }
  .tcard__bar{ font-size:26px; padding:16px 24px; }
  .tcard__body{ padding:8px 24px 18px; }
  .tcard .ttable thead th{ font-size:14px; }
  .tcard .ttable tbody th{ font-size:17px; }
  .tcard .ttable td{ font-size:26px; }
  .tcard .ttable--4 tbody th{ font-size:17px; }
}
.lp-split .tt__tables{ grid-template-columns:1fr; }

/* 첫 화면 h1 아래: SINCE 2006 배지 + 한 줄 */
.hero__sub--since{ color:var(--ink); font-size:19px; font-weight:600; display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.since{ display:inline-block; font-family:'Clash','Pretendard',sans-serif; font-weight:700; font-size:14px; letter-spacing:.12em; text-transform:uppercase;
  background:var(--yellow); color:var(--ink); padding:5px 10px 4px; line-height:1; }
@media (min-width:768px){ .hero__sub--since{ font-size:24px; } .since{ font-size:16px; padding:6px 12px 5px; } }

/* 시즌 배지 숫자 줄바꿈 금지 (중국어 페이지 word-break 규칙 예외) */
html[lang="zh-Hans"] .season strong, .season strong{ white-space:nowrap; word-break:keep-all !important; }

/* 색 통일 (성욱 2026-10-28): 요금표 카드 = 노랑, 시간표 카드 = 블랙 */
.pcard--3{ border-color:var(--yellow); }
.pcard--3 .ptable thead th{ background:var(--yellow); color:var(--ink); }
.tcard{ border-color:var(--ink); }
.tcard .tcard__bar{ background:var(--ink); color:var(--yellow); }
/* 중간 정설 줄: 다른 줄과 같은 칸 + 옅은 사선 바탕 */
.tcard .ttable tr.groom > *{ background:repeating-linear-gradient(135deg, rgba(18,18,18,.06) 0 6px, transparent 6px 12px); }
.tcard .ttable tr.groom th{ padding-left:8px; }
/* 시간표 2·3시간: 시작·끝 머리와 시각을 왼쪽 기준선에 */
.tcard .ttable--2 .num, .tcard .ttable--3 .num{ text-align:left; }
.tcard .ttable--2 thead th:last-child, .tcard .ttable--3 thead th:last-child,
.tcard .ttable--2 td:last-child, .tcard .ttable--3 td:last-child{ padding-right:6px; }
.tcard .ttable tr.groom td{ padding:14px 6px; text-align:left; border-left:0; }
.tcard .ttable tr.groom th{ padding:14px 6px 14px 8px; }
@media (min-width:900px){ .tcard .ttable tr.groom td{ padding:14px 6px; } }
/* 요금표: 2·3·4시간 머리글과 금액을 왼쪽 기준선에 맞춤 */
.ptable .num, .ptable thead th.num, .ptable tbody td.num{ text-align:left; }
.ptable--3 tbody td.num, .ptable--3 thead th.num{ padding-left:0; }
.ptable--4 tbody td.num{ padding-left:8px; }

/* ═════════ 휴대폰 최적화 (성욱 2026-10-28): 상단 바 겹침 0, 빈 공간 줄이기, 표·카드 밀도 ═════════ */
@media (max-width:767px){
  :root{ --gut:16px; --bar:56px; }
  /* 상단 바: 로고 · 언어(짧은 표기) · 카톡 아이콘 · 예약하기 — 한 줄, 겹침 없음 */
  .bar__in{ gap:6px; }
  .bar__brand{ flex:0 1 auto; min-width:0; gap:6px; margin-right:auto; }
  .bar__brand img{ width:30px; height:30px; }
  .bar__brand span{ font-size:15px; letter-spacing:.05em; white-space:nowrap; }
  .lang{ flex:none; }
  .lang__m summary{ height:40px; min-width:40px; padding:0 4px; justify-content:center; font-size:13px; }
  .lang__menu{ top:42px; }
  .bar__cta{ gap:6px; flex:none; }
  .btn{ height:40px; }
  .btn--line{ width:40px; }
  .btn--book{ padding:0 12px; font-size:14px; }
  .btn--book .ico{ display:none; }
  .lbanner__in{ min-height:36px; }
  .lbanner p{ font-size:13px; }

  /* 구역 간격 */
  .sec{ padding:48px 0; }
  .sec__head{ margin-bottom:22px; gap:8px; }
  #prices .sec__head{ margin-bottom:18px; }
  .sec__head h2{ font-size:28px; }
  .sec__sub{ font-size:15px; }
  .fine{ margin-top:16px; font-size:13px; }

  /* 첫 화면 */
  .hero{ padding-bottom:32px; }
  .hero__meta{ padding-top:10px; padding-bottom:8px; }
  .hero__photo{ height:min(52vh, 380px); min-height:240px; }
  .hero__title{ margin-top:18px; font-size:clamp(32px, 9.4vw, 44px); }
  .hero__sub{ margin-top:12px; }
  .hero__sub--since{ font-size:17px; }
  .facts{ margin-top:20px; }
  .facts > div{ padding:12px 10px 12px 0; }
  .facts > div:nth-child(even){ padding-left:10px; }
  .facts dd{ font-size:15px; margin-top:6px; }

  /* 강습 안내 */
  .lesson{ gap:18px; }
  .lesson__photo{ aspect-ratio:4/3; max-height:none; }
  .spec > div{ grid-template-columns:76px 1fr; gap:10px; padding:12px 0; }
  .spec dd{ font-size:16px; }
  .lesson .spec dt, .lp-split .spec dt{ font-size:15px; }
  .note{ margin-top:16px; padding:14px 16px; }

  /* 요금·시간표 */
  .prices{ gap:14px; }
  .prices__pair{ gap:12px; }
  .pcard{ padding:14px 12px 4px; }
  .ptable caption{ padding-bottom:10px; }
  .ptable caption b{ font-size:19px; }
  .ptable th, .ptable td{ padding-top:11px; padding-bottom:11px; }
  .pcard .pcard__more{ padding-top:10px; margin-bottom:10px; }
  .tt{ margin-top:24px; }
  .tt__title{ font-size:22px; margin-bottom:10px; }
  .tt__tables{ gap:12px; }
  .tcard--k{ margin-top:12px; }
  .tcard__bar{ font-size:18px; padding:10px 14px; }
  .tcard__body{ padding:2px 12px 8px; }
  .tcard .ttable thead th{ padding-top:9px; padding-bottom:8px; }
  .tcard .ttable tbody th, .tcard .ttable td{ padding-top:11px; padding-bottom:11px; }
  .tcard .ttable td{ font-size:17px; }
  .tcard .ttable tr.groom td, .tcard .ttable tr.groom th{ padding-top:11px; padding-bottom:11px; }
  .ttable--4 .blk, .ttable--4 td.rest span{ height:38px; font-size:14px; }

  /* 자격증반 */
  .cert{ gap:14px; }
  .cert__lead{ font-size:16px; }
  .cert__step{ padding:16px 14px 18px; gap:8px; }
  .cert__flow b{ font-size:19px; }

  /* 이용 순서 */
  .steps li{ padding:16px 0 18px; grid-template-columns:52px 1fr; column-gap:12px; }
  .steps__no{ font-size:30px; }
  .steps h3{ font-size:18px; }
  .steps p{ margin-top:4px; font-size:14px; }
  .steps .steps__where{ margin-top:8px; padding-top:8px; font-size:13.5px; }
  .steps__link{ margin-top:8px; }

  /* 코치진: 2열, 사진 + 이름 + 약력(작게) */
  .badges{ gap:6px; }
  .badges li{ font-size:12.5px; padding:6px 9px; }
  .coaches{ grid-template-columns:1fr 1fr; gap:22px 12px; }
  .coach figure{ aspect-ratio:1/1; }
  .coach__role{ margin-top:8px; font-size:9.5px; padding-bottom:6px; }
  .coach h3{ font-size:17px; margin-top:6px; }
  .coach h3 span{ font-size:12px; }
  .coach__cv{ margin-top:6px; }
  .coach__cv li{ font-size:12px; line-height:1.45; padding:4px 0; }
  .coach__cv li.coach__key{ padding:5px 0 6px 9px; }

  /* 렌탈 */
  .rental{ gap:18px; }
  .rental__grid{ gap:4px; }
  .rfeat{ margin-bottom:16px; }
  .rfeat li{ padding:12px 10px 12px 0; }
  .rfeat li:nth-child(even){ padding-left:10px; }
  .rfeat b{ font-size:17px; }
  .rfeat span{ font-size:13px; }
  .lead{ font-size:17px; margin-bottom:14px; }
  .addr{ margin-top:14px; padding-top:12px; }

  /* 리뷰 */
  .score{ margin-bottom:16px; }
  .score > div{ padding:12px 0; }
  .score strong{ font-size:40px; }
  .review{ padding:16px 0 18px; }
  .review blockquote{ font-size:15px; line-height:1.65; }

  /* 자주 묻는 질문 */
  .faq summary{ padding:15px 36px 15px 0; font-size:16px; }
  .faq details > div{ padding:0 0 16px 0; }
  .faq details p{ font-size:15px; }

  /* 안내 페이지 링크 · 연락 */
  .rel{ padding:14px 34px 14px 0; }
  .rel strong{ font-size:17px; }
  .cbox{ padding:16px 52px 18px 16px; }
  .cbox strong{ font-size:19px; }
  .cbox strong.tel{ font-size:26px; }
  .where{ margin-top:22px; gap:14px; }
  .foot{ padding:22px 0 28px; }

  /* 랜딩 · FAQ 페이지 */
  .lp-hero{ padding-top:18px; }
  .lp-hero__title{ margin-top:18px; font-size:clamp(30px, 9vw, 42px); }
  .lp-hero__answer{ margin-top:14px; font-size:17px; }
  .lp-hero__intro{ margin-top:10px; font-size:15px; }
  .lp-hero__cta{ margin-top:16px; }
  .btn--big{ height:46px; padding:0 16px; font-size:15px; }
  .lp-hero__photo{ margin-top:22px; }
  .lp-hero__photo--wide, .lp-hero__photo--tall{ aspect-ratio:4/3; }
  .checklist li{ padding:13px 0; grid-template-columns:36px 1fr; }
  .checklist b{ font-size:16px; }
  .topic__body p{ font-size:16px; padding:12px 0; }
  .faqp__tools{ margin-top:18px; gap:10px; }
  .faqp__search{ height:48px; }
  .faqp__list{ padding-top:12px; }
  .faqp__group + .faqp__group{ margin-top:30px; }
  .faqp__topic{ font-size:19px; padding-bottom:8px; }
  .chip{ height:34px; padding:0 11px; font-size:13px; }
  .lp-hero--404{ padding:36px 0 56px; }
}
@media (max-width:374px){
  .bar__brand span{ font-size:13px; letter-spacing:.03em; }
  .bar__brand img{ width:28px; height:28px; }
  .btn--book{ padding:0 10px; font-size:13px; }
  .coaches{ gap:20px 10px; }
}
.tcard .ttable tr.groom{ background:repeating-linear-gradient(135deg, rgba(18,18,18,.06) 0 6px, transparent 6px 12px); }
.tcard .ttable tr.groom > *{ background:none; }

/* 폰 하단 고정 바: 카톡 실시간 상담 | 예약하기 */
.mbar{ display:none; }
@media (max-width:767px){
  .bar__cta{ display:none; }
  .mbar{ position:fixed; left:0; right:0; bottom:0; z-index:55; display:grid; grid-template-columns:1fr 1fr; gap:0;
    background:var(--paper); border-top:1px solid var(--ink); padding-bottom:env(safe-area-inset-bottom); }
  .mbar a{ display:flex; align-items:center; justify-content:center; gap:8px; height:58px; text-decoration:none; font-size:15px; font-weight:800; letter-spacing:-.01em; white-space:nowrap; }
  .mbar__k{ background:#fff; color:var(--ink); }
  .mbar__k .ico{ fill:currentColor; stroke:none; width:18px; height:18px; }
  .mbar__b{ background:var(--yellow); color:var(--ink); border-left:1px solid var(--ink); }
  .mbar__b .ico{ width:16px; height:16px; }
  body{ padding-bottom:calc(58px + env(safe-area-inset-bottom)); }
  .toc__list{ top:calc(50% - 29px); max-height:calc(100vh - var(--bar) - 58px - 40px); }
  /* 상단 바: 로고 + 언어만 */
  .bar__brand span{ font-size:17px; letter-spacing:.08em; }
  .lang__m summary{ font-size:14px; }
}
@media (max-width:374px){ .bar__brand span{ font-size:15px; letter-spacing:.05em; } .mbar a{ font-size:14px; } }

/* 하단 영역 구분선 옅게 (성욱 2026-10-28) */
.contact{ --on-ink-line:rgba(255,255,255,.12); }
.contact__grid{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.12); }
.where, .where > div + div{ border-color:rgba(255,255,255,.12); }
.foot{ border-top-color:rgba(255,255,255,.10); }
.foot__links{ border-bottom-color:rgba(255,255,255,.10); padding-bottom:16px; margin-bottom:16px; }
.foot__biz{ border-top:0; padding-top:4px; }
@media (max-width:767px){
  .mbar{ border-top:1px solid rgba(18,18,18,.12); box-shadow:none; }
  .mbar__b{ border-left:0; }
}

/* 오른쪽 '목차' 버튼 */
.toc-btn{ position:fixed; right:0; bottom:96px; z-index:45; display:flex; flex-direction:column; align-items:center; gap:3px;
  width:48px; padding:10px 0 8px; border:0; border-radius:10px 0 0 10px; background:var(--ink); color:var(--yellow);
  font:700 11px/1 'Pretendard',sans-serif; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.18); }
.toc-btn svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.toc-btn.is-on{ background:var(--yellow); color:var(--ink); }
.toc__list.is-pinned{ transform:translateY(-50%) !important; opacity:1 !important; }
@media (max-width:767px){
  .toc-btn{ bottom:calc(58px + env(safe-area-inset-bottom) + 16px); width:44px; }
  /* 폰에서 고정 펼침 시: 점 대신 글자 목록으로 크게 */
  .toc__list.is-pinned{ right:0; padding:10px 0; background:rgba(243,241,236,.97); border-left:1px solid var(--line); box-shadow:-6px 0 18px rgba(0,0,0,.12); }
  .toc__list.is-pinned a{ display:flex; align-items:center; gap:8px; width:auto; height:auto; font-size:14px; font-weight:600; color:var(--ink); padding:8px 18px 8px 14px; }
  .toc__list.is-pinned a::after, .toc__list.is-pinned a.is-on::before{ display:none; }
  .toc__list.is-pinned em{ display:inline; font-style:normal; font-family:'Clash'; font-weight:600; font-size:11px; color:var(--mute); }
  .toc__list.is-pinned a.is-on{ font-weight:800; box-shadow:inset 3px 0 0 var(--yellow); }
  .toc__list.is-pinned .toc__more{ display:block; padding:4px 18px 4px 14px; }
}
@media (min-width:768px){ .toc-btn{ bottom:40px; } }
/* h1 순위 표현 근거 각주 */
.hero__note{ margin-top:6px; font-size:10.5px; color:var(--mute); line-height:1.5; word-break:keep-all; }

/* ═════════ 구역 구분: 배경 번갈아 + 큰 번호 배지 (성욱 2026-10-28) ═════════ */
.sec{ border-top:1px solid rgba(18,18,18,.06); }
.sec--ink{ border-top:0; }
.sec.sec--paper, #prices.sec--paper, .sec--tint.sec--paper{ background:var(--paper); }
.sec.sec--white, #prices.sec--white, .sec--tint.sec--white{ background:#fff; }
/* 흰 구역 안의 흰 카드는 테두리로 구분 (요금 카드·시간표 카드는 이미 노랑/먹색 테두리) */
.sec--white .review{ border:1px solid rgba(18,18,18,.12); }
.sec--white .cert__step{ border-color:var(--ink); }

/* 큰 번호 배지 + 영문 라벨 + 한글 제목 */
.sec__head .label{ display:flex; align-items:center; gap:10px; color:var(--mute); }
.sec__head .label i{ display:inline-grid; place-items:center; min-width:46px; height:46px; padding:0 6px; margin:0;
  background:var(--yellow); color:var(--ink) !important; font-style:normal; font-family:'Clash','Pretendard',sans-serif;
  font-weight:700; font-size:28px; letter-spacing:-.01em; line-height:1; }
.sec__head .label i:empty{ display:none; }
.sec--ink .sec__head .label i{ background:var(--yellow); color:var(--ink) !important; }
.sec__head .label{ font-size:12px; letter-spacing:.14em; }
@media (min-width:768px){
  .sec__head .label i{ min-width:58px; height:58px; font-size:36px; }
  .sec__head .label{ font-size:13px; padding-top:0; }
}
.sec.sec--paper, #prices.sec--paper, .sec--tint.sec--paper{ background:#ECE8DF; }
/* 폰에서 스크롤 시 주소창이 접히며 vh가 바뀌어 사진 크기가 흔들리던 문제: 변하지 않는 높이(svh·고정 px)로 고정 */
.hero__photo{ height:min(64svh, 560px); }
@media (min-width:768px){ .hero__photo{ height:min(72svh, 720px); } }
@media (max-width:767px){ .hero__photo{ height:clamp(240px, 56vw + 120px, 380px); min-height:0; } }
.toc__list{ max-height:calc(100svh - var(--bar) - 98px); }
