/* ============================================================
   곁 (GYUT) — 혼술바 창업 가맹문의 랜딩
   타입: Gowun Batang(국문 디스플레이) + Pretendard(그 외 전부)
   숫자는 전부 lining + tabular 로 고정한다.
   ============================================================ */

/* ---------- 1. Tokens ---------- */
:root{
  --ink:#0D0908;
  --deep:#141010;
  --brown:#1B1513;
  --panel:#211917;
  --line:rgba(226,196,158,.16);
  --line-soft:rgba(226,196,158,.09);
  --hair:rgba(226,196,158,.13);

  --gold:#D9B27C;
  --gold-hi:#F0DCBC;
  --gold-dp:#A6825A;
  --cream:#F0E7DC;
  --muted:#A99684;
  --dim:#7C6B5C;

  /* 레드와인 — 어두운 바탕에서도 읽히도록 정통 버건디(#722F37)보다 밝게 잡았다 */
  --wine:#C84A5C;
  --wine-dp:#8E2F3C;

  --grad-gold:linear-gradient(120deg,#F2DDBB 0%,#D9B27C 46%,#BE9A68 100%);

  --shadow-md:0 20px 54px rgba(0,0,0,.46);
  --shadow-lg:0 36px 92px rgba(0,0,0,.6);

  /* 라운드는 최소한으로 — 균일한 큰 라운드가 템플릿 느낌을 만든다 */
  --r-xs:2px; --r-sm:3px; --r-md:4px;

  --serif:'Gowun Batang','Nanum Myeongjo',serif;
  --sans:'Pretendard','Pretendard Variable',-apple-system,BlinkMacSystemFont,system-ui,'Noto Sans KR',sans-serif;

  --shell:1180px;
  --nav-h:72px;
  --ease:cubic-bezier(.22,.68,.24,1);
}

/* ---------- 1b. 로고 마크 ---------- */
/* SVG 한 장(assets/img/mark.svg)을 CSS 마스크로 쓴다.
   <img> 로 넣으면 별도 문서라 currentColor 가 안 먹어 검정으로만 나온다.
   마스크로 두면 색·투명도·그라디언트까지 부모에서 자유롭게 준다. */
.mark{
  display:block;aspect-ratio:179/180;
  background-color:currentColor;
  -webkit-mask:url("../img/mark.svg") center/contain no-repeat;
          mask:url("../img/mark.svg") center/contain no-repeat;
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  background:var(--ink);
  color:var(--cream);
  line-height:1.75;
  letter-spacing:-.014em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.is-locked{overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
table{border-collapse:collapse;width:100%}
::selection{background:rgba(217,178,124,.26);color:#fff}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:var(--ink)}
::-webkit-scrollbar-thumb{background:#372721;border:2px solid var(--ink)}
::-webkit-scrollbar-thumb:hover{background:#4E362B}

/* ---------- 3. 숫자 조판 ----------
   Pretendard 의 lining + tabular 숫자를 강제한다.
   (기존 Cormorant 의 oldstyle 숫자가 베이스라인을 오르내려 깨져 보였다) */
.num,
.hero__ticker b, .story__stats b, .mstat b, .rev__num, .rev__grid b,
.royalty__grid b, .spec__no, .manifest__no, .step__no,
.hdr__tel b, .dock__tel b, .quick b, .ctable td, .cost__row b,
.tab em, .drawer__tel{
  font-family:var(--sans);
  font-variant-numeric:lining-nums tabular-nums;
  font-feature-settings:'tnum' 1,'lnum' 1,'ss01' 0;
}

/* ---------- 4. Layout primitives ---------- */
.shell{width:min(100% - 48px,var(--shell));margin-inline:auto}
.shell--wide{width:min(100% - 48px,1340px)}
/* 우측 퀵메뉴(고정)가 넓은 그리드를 가리지 않도록 여백 확보 */
@media (min-width:1200px){ .shell--wide{width:min(100% - 152px,1340px)} }
/* z-index 2 — 고정 배경 대기(.bg, z 0) 위에 본문을 올린다.
   히어로는 z-index 를 주지 않아 .bg 와 같은 층에서 DOM 순서로 그 위에 그려진다. */
.section{position:relative;z-index:2;padding:clamp(80px,9.5vw,142px) 0;isolation:isolate}
.section--deep{background:var(--deep)}
.section--brown{background:var(--brown)}
.section--ink{background:var(--ink)}
.section__head{margin-bottom:clamp(42px,5vw,68px)}
.section__head--center{text-align:center}

/* eyebrow — 양쪽 장식선 대신 작은 마커 하나 */
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.72rem;font-weight:700;
  letter-spacing:.26em;text-transform:uppercase;
  color:var(--gold-dp);margin-bottom:20px;
}
.eyebrow::before{content:"";width:5px;height:5px;background:var(--gold);flex:0 0 auto}

.h-display{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(1.9rem,4.2vw,3.05rem);
  line-height:1.34;letter-spacing:-.03em;color:#fff;
}
.h-sub{
  margin-top:18px;color:var(--muted);
  font-size:clamp(.93rem,1.3vw,1.03rem);font-weight:400;line-height:1.85;
}
.gold-text{
  background:var(--grad-gold);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* ---------- 5. Buttons ---------- */
.btn{
  --btn-py:16px; --btn-px:32px;
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:11px;
  padding:var(--btn-py) var(--btn-px);border-radius:var(--r-xs);
  font-size:.95rem;font-weight:700;letter-spacing:-.01em;
  transition:background .32s var(--ease),color .32s,border-color .32s,transform .32s var(--ease);
  white-space:nowrap;
}
.btn__arrow{transition:transform .34s var(--ease);display:inline-block}
.btn:hover .btn__arrow{transform:translateX(5px)}

.btn--gold{background:var(--grad-gold);color:#241812}
.btn--gold:hover{background:linear-gradient(120deg,#F7E6CB 0%,#E4C08C 46%,#CBA778 100%)}
.btn--ghost{border:1px solid rgba(226,196,158,.34);color:var(--gold-hi)}
.btn--ghost:hover{background:rgba(226,196,158,.08);border-color:var(--gold)}
.btn--sm{--btn-py:11px;--btn-px:20px;font-size:.85rem}
.btn--block{width:100%}
.btn--lg{--btn-py:19px;--btn-px:40px;font-size:1.02rem}
.btn[disabled]{opacity:.5;pointer-events:none}

/* ---------- 6. 배경 대기(atmosphere) ---------- */
/* body 는 단색 --ink 한 장이었다. 그 위에 고정 레이어 다섯 겹을 깔아 '검정'을 '어두운 방'으로 바꾼다.
   전부 화면에 또렷하게 보이면 실패다 — 스크롤할 때 공기가 있다는 느낌만 남기면 된다.
   .section 이 z-index:2 라서 본문은 항상 이 위에 온다. */
.bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:layout paint}

/* 1) 등불 웅덩이 — 빛이 고이는 자리들.
   바깥(.bg__pool)은 스크롤 패럴랙스가 transform 을 쓰고,
   안쪽(.bg__lamp)이 아주 느리게 숨을 쉰다. 층을 나눠야 transform 이 서로 안 덮는다. */
.bg__pool{position:absolute;inset:-30% -12%;will-change:transform}
.bg__lamp{
  position:absolute;inset:0;display:block;
  will-change:transform,opacity;
  animation:lampBreathe 26s ease-in-out infinite;
}
/* 두 벌을 서로 다른 주기로 돌린다 — 최소공배수가 길어서 같은 그림이 반복되는 게 안 보인다 */
.bg__lamp--a{
  background:
    radial-gradient(44% 30% at 16% 10%, rgba(217,178,124,.085) 0%, transparent 62%),
    radial-gradient(52% 30% at 30% 63%, rgba(226,196,158,.048) 0%, transparent 66%);
}
.bg__lamp--b{
  background:
    radial-gradient(38% 25% at 87% 33%, rgba(190,154,104,.062) 0%, transparent 64%),
    radial-gradient(40% 27% at 76% 90%, rgba(217,178,124,.058) 0%, transparent 62%);
  animation-duration:37s;
  animation-delay:-13s;
}

/* 숨쉬기 — 등불이 아주 천천히 밝아졌다 잦아든다. 26초/37초라 눈으로 주기를 못 잡는다 */
@keyframes lampBreathe{
  0%   {opacity:.58; transform:scale(1)    translate3d(0,0,0)}
  50%  {opacity:1;   transform:scale(1.07) translate3d(1.4%,-1.2%,0)}
  100% {opacity:.58; transform:scale(1)    translate3d(0,0,0)}
}

/* 2) 결 — 한지·리넨의 씨실날실. 92px 간격 헤어라인이라 눈에는 '질감'으로만 읽힌다 */
.bg__weave{
  position:absolute;inset:0;
  background-image:
    repeating-linear-gradient(90deg,rgba(226,196,158,.030) 0 1px,transparent 1px 92px),
    repeating-linear-gradient(0deg, rgba(226,196,158,.018) 0 1px,transparent 1px 92px);
  mask-image:radial-gradient(84% 68% at 50% 42%,#000 0%,transparent 78%);
  -webkit-mask-image:radial-gradient(84% 68% at 50% 42%,#000 0%,transparent 78%);
}

/* 3) 상표 워터마크 — 오른쪽 아래에 크게 눕혀 둔다. 찾아야 보이는 정도가 정답.
   ⚠️ 실제 로고 파일이 오면 아래 두 줄(font/color)을 지우고
      background-image:url("../img/mark.svg"); background-size:contain; 로 바꾸면 된다. */
.bg__mark{
  /* bottom 여유는 하단 고정 상담바(약 82px) 높이를 피하려고 준 것이다 — 아래 획이 가리면 '겨'로 읽힌다 */
  position:absolute;right:clamp(20px,5vw,88px);bottom:clamp(104px,14vh,152px);
  width:clamp(190px,26vw,430px);
  color:rgba(226,196,158,.030);
  will-change:transform,opacity;
  animation:markBreathe 41s ease-in-out infinite;
}
/* 워터마크도 아주 느리게 밝기가 오간다 */
@keyframes markBreathe{
  0%,100%{opacity:.66}
  50%    {opacity:1}
}

/* 4) 필름 그레인 — 매끈한 디지털 검정을 인쇄물 쪽으로 끌어내린다 */
.bg__grain{
  position:absolute;inset:0;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E");
}

/* 5) 비네트 — 화면 가장자리를 조용히 눌러 시선을 가운데로 모은다 */
.bg__vign{
  position:absolute;inset:0;
  background:radial-gradient(122% 84% at 50% 42%,transparent 42%,rgba(0,0,0,.46) 100%);
}

@media (max-width:820px){
  .bg__weave{opacity:.7}
  .bg__mark{width:clamp(150px,44vw,260px);right:clamp(14px,5vw,34px);bottom:clamp(70px,12vh,120px)}
}

/* 움직임을 줄여달라고 한 사람에게는 전부 정지 상태로 준다 */
@media (prefers-reduced-motion:reduce){
  .bg__lamp,.bg__mark{animation:none}
}

/* ---------- 6b. 히어로 먼지 캔버스 ---------- */
/* 히어로 내부에 갇혀 있다 — .hero 의 overflow:hidden + isolation:isolate 가 경계를 만든다.
   z-index:2 는 .hero__in(본문, z auto) 보다 위 = 알갱이가 글자 앞을 지나간다. */
#motes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}

/* ---------- 7. Preloader ---------- */
#preloader{
  position:fixed;inset:0;z-index:9000;display:grid;place-items:center;
  background:#0B0706;
  transition:opacity .8s var(--ease),visibility .8s;
}
#preloader.done{opacity:0;visibility:hidden}
.pre__mark{
  width:clamp(46px,7.4vw,72px);margin-inline:auto;color:var(--gold-hi);
  animation:preIn 1.4s var(--ease) both;
}
.pre__tag{
  margin-top:22px;text-align:center;
  font-size:.68rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-dp);
  animation:preIn 1.4s .22s var(--ease) both;
}
.pre__bar{margin:28px auto 0;width:150px;height:1px;background:rgba(226,196,158,.16);overflow:hidden}
.pre__bar i{display:block;height:100%;width:0;background:var(--gold);animation:preBar 1.4s var(--ease) forwards}
@keyframes preIn{from{opacity:0;transform:translateY(14px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
@keyframes preBar{to{width:100%}}

/* ---------- 8. Header ---------- */
.hdr{
  position:fixed;top:0;left:0;right:0;z-index:600;height:var(--nav-h);
  display:flex;align-items:center;border-bottom:1px solid transparent;
  transition:background .4s var(--ease),backdrop-filter .4s,border-color .4s,height .4s var(--ease);
}
.hdr.is-stuck{
  height:62px;
  background:rgba(13,9,8,.86);backdrop-filter:blur(16px) saturate(1.2);
  border-bottom-color:var(--hair);
}
.hdr__in{display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(100% - 48px,1340px);margin-inline:auto}
.brand{display:flex;align-items:baseline;gap:12px}
.brand__mark{width:23px;color:var(--gold-hi)}
.brand__sub{font-size:.63rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-dp);font-weight:600}

.nav{display:flex;align-items:center;gap:4px}
.nav a{
  position:relative;padding:8px 14px;
  font-size:.88rem;font-weight:500;color:rgba(240,231,220,.74);
  transition:color .26s;
}
.nav a::after{
  content:"";position:absolute;left:14px;right:14px;bottom:2px;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;
  transition:transform .36s var(--ease);
}
.nav a:hover,.nav a.is-active{color:var(--gold-hi)}
.nav a:hover::after,.nav a.is-active::after{transform:scaleX(1)}

.hdr__cta{display:flex;align-items:center;gap:16px}
.hdr__tel{display:flex;flex-direction:column;line-height:1.25;text-align:right}
.hdr__tel small{font-size:.6rem;letter-spacing:.2em;color:var(--gold-dp);text-transform:uppercase;font-weight:600}
.hdr__tel b{font-size:1.02rem;font-weight:700;color:var(--gold-hi);letter-spacing:.01em}

.burger{display:none;width:42px;height:42px;place-items:center;border:1px solid var(--line)}
.burger span{display:block;width:18px;height:1.5px;background:var(--cream);transition:transform .34s var(--ease),opacity .24s}
.burger span+span{margin-top:5px}
.burger.is-open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.is-open span:nth-child(2){opacity:0}
.burger.is-open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

.drawer{
  position:fixed;inset:0;z-index:590;
  background:rgba(10,7,6,.98);backdrop-filter:blur(12px);
  display:grid;place-content:center;gap:2px;text-align:center;
  opacity:0;visibility:hidden;transition:opacity .42s var(--ease),visibility .42s;
}
.drawer.is-open{opacity:1;visibility:visible}
.drawer a{
  font-family:var(--serif);font-size:1.48rem;padding:12px 0;
  opacity:0;transform:translateY(16px);
  transition:opacity .48s var(--ease),transform .48s var(--ease),color .24s;
}
.drawer.is-open a{opacity:1;transform:none}
.drawer.is-open a:nth-child(1){transition-delay:.07s}
.drawer.is-open a:nth-child(2){transition-delay:.13s}
.drawer.is-open a:nth-child(3){transition-delay:.19s}
.drawer.is-open a:nth-child(4){transition-delay:.25s}
.drawer.is-open a:nth-child(5){transition-delay:.31s}
.drawer.is-open a:nth-child(6){transition-delay:.37s}
.drawer a:hover{color:var(--gold)}
.drawer__tel{margin-top:28px;font-family:var(--sans)!important;font-size:1.34rem;font-weight:700;color:var(--gold-hi);letter-spacing:.02em}

/* ---------- 9. Hero ---------- */
.hero{
  position:relative;min-height:100svh;display:grid;align-items:center;
  padding:calc(var(--nav-h) + 40px) 0 110px;overflow:hidden;isolation:isolate;
}
.hero__bg{position:absolute;inset:-6% 0 0;z-index:-3;will-change:transform}
.hero__bg img{width:100%;height:112%;object-fit:cover;object-position:center 42%}
.hero__veil{
  position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(76% 58% at 50% 44%,rgba(9,6,5,.16) 0%,rgba(9,6,5,.74) 62%,rgba(9,6,5,.96) 100%),
    linear-gradient(180deg,rgba(9,6,5,.9) 0%,rgba(9,6,5,.26) 26%,rgba(9,6,5,.64) 72%,var(--ink) 100%);
}
.hero__grain{
  position:absolute;inset:0;z-index:-1;opacity:.28;mix-blend-mode:overlay;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");
}
.hero__in{text-align:center;position:relative}
.hero__eyebrow{
  font-size:clamp(.66rem,1.1vw,.76rem);font-weight:600;
  letter-spacing:.4em;text-transform:uppercase;color:rgba(240,231,220,.62);margin-bottom:30px;
}
.hero__title{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(2.8rem,8.6vw,5.9rem);
  line-height:1.14;letter-spacing:-.038em;color:#fff;
  text-shadow:0 20px 64px rgba(0,0,0,.6);
}
.hero__title .ln{display:block;overflow:hidden}
.hero__title .ln>span{display:block}
.hero__lede{margin:28px auto 0;max-width:620px;font-size:clamp(.98rem,1.6vw,1.12rem);color:rgba(240,231,220,.82);line-height:1.9}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:42px}

.hero__ticker{
  display:flex;flex-wrap:wrap;justify-content:center;
  margin:60px auto 0;padding:24px 8px;max-width:720px;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
}
.hero__ticker div{flex:1 1 140px;text-align:center;padding:4px 12px;position:relative}
.hero__ticker div+div::before{content:"";position:absolute;left:0;top:14%;bottom:14%;width:1px;background:var(--hair)}
.hero__ticker b{
  display:block;font-size:clamp(1.5rem,3vw,1.95rem);font-weight:800;
  line-height:1.15;letter-spacing:-.03em;color:var(--gold-hi);
}
.hero__ticker small{display:block;margin-top:8px;font-size:.74rem;letter-spacing:.06em;color:var(--muted)}

.scroll-cue{
  position:absolute;left:50%;bottom:32px;transform:translateX(-50%);
  display:grid;justify-items:center;gap:12px;z-index:4;
  font-size:.62rem;letter-spacing:.32em;font-weight:600;
  text-transform:uppercase;color:rgba(240,231,220,.44);
}
.scroll-cue i{display:block;width:1px;height:46px;background:rgba(226,196,158,.2);position:relative;overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;inset:0;background:var(--gold);animation:cue 2.2s var(--ease) infinite}
@keyframes cue{0%{transform:translateY(-100%)}55%,100%{transform:translateY(100%)}}

/* ---------- 10. Marquee (얇은 다크 밴드) ---------- */
.marquee{
  background:var(--deep);color:var(--gold);z-index:2;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  padding:14px 0;overflow:hidden;position:relative;z-index:5;
}
.marquee__track{display:flex;width:max-content;animation:marq 44s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee span{
  display:inline-flex;align-items:center;gap:26px;padding-right:26px;
  font-size:.8rem;font-weight:600;letter-spacing:.14em;white-space:nowrap;
  color:rgba(217,178,124,.82);
}
.marquee span::after{content:"";width:3px;height:3px;background:rgba(217,178,124,.45)}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- 11. Reveal ---------- */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal="left"]{transform:translateX(-28px)}
[data-reveal="zoom"]{transform:scale(.97)}
[data-reveal="blur"]{filter:blur(8px)}
[data-reveal="blur"].in{filter:blur(0)}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1!important;transform:none!important;filter:none!important;transition:none}
  *{animation-duration:.001s!important;animation-iteration-count:1!important}
  html{scroll-behavior:auto}
}

/* ---------- 12. Story ---------- */
.story{max-width:740px;margin-inline:auto;text-align:center}
.story__body{margin-top:30px;font-size:clamp(.99rem,1.5vw,1.1rem);color:rgba(240,231,220,.78);line-height:2.15}
.story__body em{font-style:normal;color:var(--gold-hi);font-family:var(--serif)}
.story__rule{width:100%;height:1px;background:var(--hair);margin:54px 0 46px}
.story__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.story__stats b{display:block;font-size:clamp(1.6rem,3.4vw,2.15rem);font-weight:800;line-height:1.15;letter-spacing:-.03em;color:var(--gold-hi)}
.story__stats small{display:block;margin-top:10px;font-size:.78rem;letter-spacing:.1em;color:var(--muted)}

/* ---------- 13. Manifest (WHY GYUT — 아이콘 카드 대신 에디토리얼 넘버 리스트) ---------- */
.manifest{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(40px,6vw,90px);align-items:start}
.manifest__aside{position:sticky;top:120px}
.manifest__aside .h-display{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.manifest__list{border-top:1px solid var(--hair)}
.manifest__row{
  display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,42px);
  padding:30px 4px 30px 0;border-bottom:1px solid var(--hair);
  transition:padding-left .5s var(--ease);
}
.manifest__row:hover{padding-left:14px}
.manifest__no{
  font-size:.82rem;font-weight:700;letter-spacing:.14em;color:var(--gold-dp);
  padding-top:.42em;transition:color .32s;
}
.manifest__row:hover .manifest__no{color:var(--gold)}
.manifest__row h3{
  font-family:var(--serif);font-size:clamp(1.16rem,2vw,1.42rem);font-weight:700;
  color:#fff;letter-spacing:-.02em;line-height:1.5;
}
.manifest__row p{margin-top:12px;font-size:.94rem;color:var(--muted);line-height:1.85;max-width:52ch}

/* ---------- 14. Market data ---------- */
.market{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid var(--hair)}
.mstat{padding:clamp(30px,4vw,46px) clamp(20px,2.6vw,32px);border-right:1px solid var(--hair)}
.mstat b{display:block;font-size:clamp(2.2rem,5.4vw,3.3rem);font-weight:800;line-height:1;letter-spacing:-.045em}
.mstat.is-down b{color:#8B7A6B}
.mstat.is-up b{color:var(--gold-hi)}
.mstat h4{margin-top:20px;font-size:1rem;font-weight:700;color:var(--cream)}
.mstat small{display:block;margin-top:6px;font-size:.8rem;color:var(--dim)}
.mstat__bar{margin-top:26px;height:2px;background:rgba(226,196,158,.11)}
.mstat__bar i{display:block;height:100%;width:0;background:#5F5044;transition:width 1.5s var(--ease) .2s}
.mstat.is-up .mstat__bar i{background:var(--gold)}
.src{margin-top:30px;font-size:.78rem;color:var(--dim)}

/* ---------- 15. Compare table ---------- */
.tablewrap{overflow-x:auto;border-top:1px solid var(--line);-webkit-overflow-scrolling:touch}
.ctable{min-width:640px}
.ctable th,.ctable td{padding:20px 24px;text-align:left;font-size:.94rem;border-bottom:1px solid var(--hair)}
.ctable thead th{
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-dp);font-weight:700;padding-top:16px;padding-bottom:16px;
}
.ctable td:first-child{color:var(--cream);font-weight:600}
.ctable td.other{color:var(--dim)}
.ctable td.other s{text-decoration-color:rgba(124,107,92,.6)}
.ctable td.ours{color:var(--gold-hi);font-weight:700}
.ctable tbody tr:last-child td{border-bottom:1px solid var(--line);font-size:1rem;padding-top:26px;padding-bottom:26px}
.ctable tbody tr:last-child td.ours{font-size:1.06rem}

/* 총 창업비용 행의 괄호 보조문구 */
/* 표·비용의 괄호 보조 표기 (평당 단가 등) */
.sub{font-style:normal;font-weight:500;font-size:.82em;color:var(--gold-dp);white-space:nowrap}

/* 총 창업비용 셀 — 취소선 원가 / 지원금 / 실질 부담 3줄 */
.ctable__total td.ours{display:block;line-height:1.4}
.tot__was{display:block;font-size:.86rem;font-weight:500;color:var(--dim)}
.tot__was s{text-decoration-color:rgba(124,107,92,.7)}
.tot__sup{display:block;margin-top:5px;font-size:.86rem;font-weight:700;color:var(--wine)}
.tot__now{display:block;margin-top:8px;font-size:1.18rem;font-weight:800;letter-spacing:-.03em;color:var(--gold-hi)}

/* DM 안내 — 폼보다 빠른 경로라서 폼 바로 아래에 둔다 */
.dmnote{
  display:flex;align-items:center;gap:16px;margin-top:22px;padding:18px 20px;
  border:1px solid var(--line);background:rgba(226,196,158,.035);
  transition:background .3s,border-color .3s;
}
.dmnote:hover,.dmnote:focus-visible{background:rgba(226,196,158,.07);border-color:rgba(226,196,158,.32)}
.dmnote__ico{flex:none;width:34px;height:34px;display:grid;place-items:center;color:var(--gold)}
.dmnote__ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5}
.dmnote__txt{flex:1;min-width:0}
.dmnote__txt b{display:block;font-size:.93rem;font-weight:600;color:var(--cream);line-height:1.5}
.dmnote__txt small{display:block;margin-top:5px;font-size:.78rem;color:var(--dim)}
.dmnote__go{flex:none;font-size:.8rem;font-weight:600;color:var(--gold-hi);white-space:nowrap}

/* 푸터 DM 한 줄 */
.ftr__dm{
  margin-top:34px;padding-top:26px;border-top:1px solid var(--hair);
  font-size:.88rem;color:var(--muted);line-height:1.8;
}
.ftr__dm a{color:var(--gold-hi);font-weight:600;border-bottom:1px solid rgba(240,220,188,.36)}
.form-done__meta a{color:var(--gold-hi);font-weight:600;border-bottom:1px solid rgba(240,220,188,.36)}

/* ---------- 16. Revenue ---------- */
.rev{
  position:relative;padding:clamp(44px,6vw,76px) clamp(22px,4vw,56px);text-align:center;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:radial-gradient(110% 120% at 50% 0%,rgba(217,178,124,.09),transparent 62%);
}
.rev__num{
  font-size:clamp(2.3rem,8.4vw,4.9rem);font-weight:800;line-height:1;letter-spacing:-.05em;
  color:var(--gold-hi);
}
.rev__label{margin-top:20px;font-family:var(--serif);font-size:1.18rem;font-weight:700;color:#fff}
.rev__meta{margin-top:10px;font-size:.86rem;color:var(--muted)}
.rev__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:44px;padding-top:34px;border-top:1px solid var(--hair)}
.rev__grid b{display:block;font-size:clamp(1.14rem,2.4vw,1.5rem);font-weight:800;letter-spacing:-.03em;color:var(--gold-hi)}
.rev__grid small{display:block;margin-top:7px;font-size:.78rem;color:var(--dim)}
.note{margin-top:24px;font-size:.78rem;color:var(--dim);line-height:1.75}
.note--center{text-align:center}

/* ---------- 17c. Film band — 세로 릴스를 프레임에 담아 보여준다 ---------- */
.filmband__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,6vw,86px);align-items:center}
.filmband__copy .h-sub{max-width:34rem}
.filmband__facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:38px}
.filmband__facts>div{background:var(--ink);padding:20px 18px}
.filmband__facts dt{font-size:.76rem;color:var(--dim);letter-spacing:.02em}
.filmband__facts dd{margin-top:9px}
.filmband__facts b{
  font-size:clamp(1.15rem,2.2vw,1.45rem);font-weight:800;letter-spacing:-.03em;color:var(--gold-hi);
  font-variant-numeric:lining-nums tabular-nums;
}
.filmband__note{margin-top:16px;font-size:.78rem;color:var(--dim);text-align:center}

/* 로테이션 주의 — 이 섹션에서 가장 강한 블록.
   경고 → 결과 → 제안 3단으로 읽히게 위계를 준다. */
.warn{
  margin-top:28px;padding:22px 24px;
  border:1px solid rgba(200,74,92,.34);border-left:3px solid var(--wine);
  background:linear-gradient(100deg,rgba(200,74,92,.13),rgba(200,74,92,.03) 70%);
}
.warn__head{
  display:flex;align-items:center;gap:10px;
  font-size:.98rem;font-weight:800;letter-spacing:-.02em;color:#F0A9B3;
}
.warn__mark{
  flex:none;display:grid;place-items:center;width:20px;height:20px;
  border:1.5px solid var(--wine);border-radius:50%;
  font-size:.72rem;font-weight:800;color:var(--wine);line-height:1;
}
.warn__body{margin-top:9px;padding-left:30px;font-size:.87rem;color:var(--muted);line-height:1.7}
.warn__cta{
  margin-top:16px;padding-top:15px;padding-left:30px;
  border-top:1px solid rgba(200,74,92,.24);
  font-size:.95rem;line-height:1.75;font-weight:600;color:var(--cream);
}
.warn__cta b{color:var(--gold-hi);font-weight:800}
@media (max-width:540px){
  .warn{padding:18px 18px}
  .warn__body,.warn__cta{padding-left:0}
}

/* figcaption(영상 출처)이 영상 옆이 아니라 바로 아래에 오도록 세로 정렬 */
.filmband__player{display:flex;flex-direction:column;align-items:center;justify-content:center}
.filmband__screen{
  position:relative;width:min(100%,332px);aspect-ratio:9/16;overflow:hidden;
  background:#0A0706;border:1px solid var(--line);
  box-shadow:0 40px 90px rgba(0,0,0,.6),0 0 0 1px rgba(226,196,158,.05) inset;
}
.filmband__screen video{width:100%;height:100%;object-fit:cover;display:block}
.filmband__sound{
  position:absolute;left:12px;bottom:12px;z-index:2;
  display:flex;align-items:center;gap:9px;padding:9px 13px;
  background:rgba(10,7,6,.72);border:1px solid rgba(226,196,158,.28);
  backdrop-filter:blur(8px);color:var(--gold-hi);
  font-size:.76rem;font-weight:600;letter-spacing:.02em;
  transition:background .3s,border-color .3s;
}
.filmband__sound:hover{background:rgba(10,7,6,.9);border-color:var(--gold)}
/* 스피커 아이콘 — 켜지면 음파, 꺼지면 사선 */
.filmband__ico{position:relative;width:13px;height:12px;flex:0 0 auto}
.filmband__ico::before{
  content:"";position:absolute;left:0;top:2px;width:0;height:0;
  border-style:solid;border-width:4px 6px 4px 0;border-color:transparent currentColor transparent transparent;
}
.filmband__ico::after{
  content:"";position:absolute;right:0;top:50%;width:7px;height:1px;background:currentColor;
  transform:translateY(-50%) rotate(-40deg);transform-origin:center;
}
.filmband__sound[aria-pressed="true"] .filmband__ico::after{
  width:5px;height:5px;border:1px solid currentColor;border-left-color:transparent;border-bottom-color:transparent;
  background:none;border-radius:0 3px 0 0;transform:translateY(-50%) rotate(45deg);
}

/* ---------- 17d. Album — 사진첩을 한 장씩 넘긴다 ---------- */
.album__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,80px);align-items:center}
.album__side{min-width:0}
.album__caps{position:relative;margin-top:34px;min-height:160px}
.album__cap{
  position:absolute;left:0;right:0;top:0;
  opacity:0;transform:translateY(16px);pointer-events:none;
  transition:opacity .55s var(--ease),transform .55s var(--ease);
}
.album__cap.is-on{opacity:1;transform:none;pointer-events:auto}
.album__cap h3{font-family:var(--serif);font-weight:700;color:#fff;font-size:clamp(1.2rem,2.3vw,1.62rem);line-height:1.5;letter-spacing:-.026em}
.album__cap p{margin-top:14px;font-size:.95rem;color:var(--muted);line-height:1.9;max-width:30rem}

.album__ctrl{display:flex;align-items:center;gap:14px;margin-top:30px;flex-wrap:wrap}
.album__arrow{
  width:44px;height:44px;display:grid;place-items:center;
  border:1px solid var(--line);color:var(--muted);
  transition:color .28s,border-color .28s,background .28s;
}
.album__arrow:hover{color:var(--gold-hi);border-color:var(--gold);background:rgba(226,196,158,.07)}
.album__arrow[disabled]{opacity:.32;pointer-events:none}
.album__arrow svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.album__count{display:flex;align-items:baseline;gap:8px;margin-left:4px;font-variant-numeric:lining-nums tabular-nums}
.album__count b{font-size:1.24rem;font-weight:800;letter-spacing:-.03em;color:var(--gold-hi)}
.album__count i{width:14px;height:1px;background:var(--gold-dp);transform:translateY(-4px)}
.album__count span{font-size:.86rem;font-weight:600;color:var(--dim)}
.album__insta{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:.82rem;color:var(--dim);transition:color .3s,gap .3s var(--ease)}
.album__insta:hover{color:var(--gold-hi);gap:12px}
.album__insta svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.4}

/* 덱 — 인화된 사진이 겹쳐 쌓인 모양 */
.album__deck{
  position:relative;width:min(100%,460px);margin-inline:auto;
  aspect-ratio:1;cursor:pointer;perspective:1400px;
}
.album__card{
  position:absolute;inset:0;
  display:flex;flex-direction:column;
  background:#141010;padding:9px;                     /* 인화지 여백 */
  border:1px solid rgba(226,196,158,.16);
  box-shadow:0 26px 60px rgba(0,0,0,.55);
  transform-origin:50% 120%;
  will-change:transform,opacity;
  transition:transform .72s var(--ease),opacity .5s var(--ease),box-shadow .5s;
}
.album__card img{width:100%;flex:1 1 auto;min-height:0;object-fit:cover;display:block}
.album__deck:hover .album__card[data-top="1"]{box-shadow:0 34px 74px rgba(0,0,0,.62)}


@media (prefers-reduced-motion:reduce){ .album__card{transition:none} }

/* ---------- 18. Gallery ---------- */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.gal figure{position:relative;aspect-ratio:1;overflow:hidden;background:var(--panel)}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.gal figure:hover img{transform:scale(1.06)}
.gal__more{
  display:grid;place-content:center;gap:8px;text-align:center;aspect-ratio:1;
  border:1px solid var(--line);color:var(--gold);
  transition:background .34s,border-color .34s;
}
.gal__more:hover{background:rgba(226,196,158,.05);border-color:var(--gold)}
.gal__more b{font-size:1.3rem;font-weight:800;letter-spacing:-.02em}
.gal__more small{font-size:.75rem;color:var(--muted);letter-spacing:.05em}
.insta-link{display:inline-flex;align-items:center;gap:10px;margin-top:34px;font-size:.92rem;color:var(--gold);transition:gap .3s var(--ease),color .3s}
.insta-link:hover{gap:15px;color:var(--gold-hi)}
.insta-link svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.4}

/* ---------- 19. Locations ---------- */
.loc__count{display:block;margin-top:18px;font-size:.92rem;color:var(--muted)}
.loc__count b{color:var(--gold-hi);font-weight:700}

/* 탭 — pill 제거, 밑줄 텍스트 탭 */
.tabs{display:flex;flex-wrap:wrap;gap:26px;margin-bottom:32px;border-bottom:1px solid var(--hair);padding-bottom:0}
.tab{
  position:relative;padding:0 0 14px;font-size:.9rem;font-weight:600;
  color:var(--dim);transition:color .3s;
}
.tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .36s var(--ease)}
.tab:hover{color:var(--muted)}
.tab.is-on{color:var(--gold-hi)}
.tab.is-on::after{transform:scaleX(1)}
.tab em{font-style:normal;margin-left:7px;font-size:.78rem;font-weight:600;color:var(--dim)}
.tab.is-on em{color:var(--gold-dp)}

.stores{display:grid;grid-template-columns:repeat(4,1fr);column-gap:clamp(24px,3.4vw,46px);border-top:1px solid var(--hair)}
/* 매장 행은 네이버 지도로 나가는 링크다 */
.store{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:18px 0;border-bottom:1px solid var(--hair);
  animation:storeIn .45s var(--ease) both;
  transition:padding-left .4s var(--ease),background .3s;
}
.store:hover,.store:focus-visible{padding-left:10px;background:rgba(226,196,158,.035)}
.store::after{
  content:"↗";margin-left:auto;padding-left:10px;
  font-size:.72rem;color:var(--gold-dp);opacity:0;transition:opacity .3s;
}
.store:hover::after,.store:focus-visible::after{opacity:1}
@keyframes storeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.store b{display:block;font-size:.94rem;font-weight:600;color:var(--cream)}
.store small{display:block;margin-top:4px;font-size:.76rem;color:var(--dim)}

/* 상태 — 초록 pill 제거, 톤온톤 마커 + 텍스트 */
.state{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;
  font-size:.72rem;font-weight:600;letter-spacing:.04em;white-space:nowrap;
}
.state::before{content:"";width:5px;height:5px;flex:0 0 auto}
.state--live{color:var(--gold-hi)}
.state--live::before{background:var(--gold)}
.state--soon{color:var(--muted)}
.state--soon::before{background:var(--muted);opacity:.6}
.state--wait{color:var(--dim)}
.state--wait::before{background:transparent;border:1px solid var(--dim)}
.loc__foot{margin-top:38px}

/* ---------- 21. Steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hair)}
.step{padding:36px 28px 36px 0;border-right:1px solid var(--hair);position:relative}
.step:last-child{border-right:0}
.step:not(:first-child){padding-left:28px}
.step__no{display:block;font-size:1.9rem;font-weight:800;letter-spacing:-.04em;color:rgba(166,130,90,.4);line-height:1;transition:color .45s}
.step:hover .step__no{color:var(--gold)}
.step h4{margin-top:18px;font-family:var(--serif);font-size:1.1rem;font-weight:700;color:#fff}
.step p{margin-top:10px;font-size:.86rem;color:var(--muted);line-height:1.78}

/* ---------- 22. Cost ---------- */
.cost{max-width:680px;margin-inline:auto;border-top:1px solid var(--line)}
.cost__row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--hair);font-size:.96rem}
.cost__row span{color:var(--muted)}
.cost__row b{font-weight:700;color:var(--cream);letter-spacing:-.01em}
.cost__row--sup span,.cost__row--sup b{color:var(--gold)}
.cost__row--total{padding:28px 0;border-bottom:1px solid var(--line)}
.cost__row--total span{font-size:1.04rem;font-weight:700;color:#fff}
.cost__row--total b{font-size:clamp(1.3rem,3.2vw,1.75rem);font-weight:800;letter-spacing:-.035em;color:var(--gold-hi)}
.royalty{margin-top:40px}
.royalty>p{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dp);margin-bottom:18px;font-weight:700}
.royalty__grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hair);border:1px solid var(--hair)}
.royalty__grid div{background:var(--ink);padding:24px 20px}
.royalty__grid small{display:block;font-size:.79rem;color:var(--muted)}
.royalty__grid b{display:block;margin-top:10px;font-size:1.7rem;font-weight:800;letter-spacing:-.03em;color:var(--gold-hi)}

/* ---------- 23. Switch ---------- */
.switch{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}
.switch div{
  display:flex;align-items:flex-start;gap:14px;padding:28px 24px;
  background:var(--brown);font-size:.93rem;color:var(--cream);line-height:1.7;
}
.switch i{flex:0 0 auto;width:6px;height:6px;background:var(--gold);margin-top:.6em}

/* ---------- 24. Contact ---------- */
/* 카카오톡을 뺀 뒤 2칸이 되었다. 3열로 두면 오른쪽에 빈 칸이 남는다.
   auto-fit 로 두면 항목 수가 바뀌어도 빈 칸 없이 채워진다. */
.quicks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--hair);border:1px solid var(--hair);max-width:760px;margin:0 auto 40px}
.quick{
  display:grid;justify-items:center;gap:10px;padding:26px 16px;text-align:center;
  background:var(--ink);transition:background .34s;
}
.quick:hover{background:#141010}
.quick svg{width:21px;height:21px;stroke:var(--gold);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.quick small{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dp);font-weight:600}
.quick b{font-size:1rem;font-weight:700;color:var(--cream);letter-spacing:-.01em}

.form{max-width:680px;margin-inline:auto}
.field{margin-bottom:22px}
.field label{display:block;margin-bottom:10px;font-size:.82rem;font-weight:600;color:var(--muted);letter-spacing:.02em}
.field label .req{color:var(--gold);margin-left:4px}
.field input,.field select,.field textarea{
  width:100%;padding:15px 0;border:0;border-bottom:1px solid var(--line);
  background:transparent;font-size:.98rem;
  transition:border-color .3s;
}
.field textarea{min-height:96px;resize:vertical;line-height:1.75;padding-top:12px}
.field select{
  appearance:none;cursor:pointer;padding-right:28px;background-repeat:no-repeat;background-position:right 4px center;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%23A99684' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
.field select option{background:#1B1513;color:var(--cream)}
.field input::placeholder,.field textarea::placeholder{color:#5E5044}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-bottom-color:var(--gold)}
.field.has-error input,.field.has-error select{border-bottom-color:#C87A6B}
.field .err{display:none;margin-top:8px;font-size:.76rem;color:#D18C7D}
.field.has-error .err{display:block}
.field--row{display:grid;grid-template-columns:1fr 1fr;gap:20px}

.agree{display:flex;align-items:flex-start;gap:11px;margin-bottom:12px;font-size:.84rem;color:var(--muted);cursor:pointer;line-height:1.7}
.agree input{
  flex:0 0 auto;appearance:none;width:17px;height:17px;margin-top:3px;position:relative;cursor:pointer;
  border:1px solid var(--line);background:transparent;transition:all .24s;
}
.agree input:checked{background:var(--gold);border-color:var(--gold)}
.agree input:checked::after{content:"";position:absolute;left:5.5px;top:2px;width:4px;height:9px;border:solid #241812;border-width:0 2px 2px 0;transform:rotate(43deg)}
.agree a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.agree b{color:var(--gold);font-weight:600}
.form__err{display:none;margin-bottom:6px;font-size:.76rem;color:#D18C7D}
.form__submit{margin-top:30px}
.form__foot{margin-top:18px;text-align:center;font-size:.78rem;color:var(--dim);line-height:1.8}

/* 접수 완료 패널 */
.form-done{
  max-width:680px;margin-inline:auto;text-align:center;
  padding:clamp(40px,5vw,64px) clamp(22px,4vw,44px);
  border:1px solid var(--line);
}
.form-done__mark{width:44px;height:44px;margin:0 auto 24px;display:grid;place-items:center;border:1px solid var(--gold)}
.form-done__mark svg{width:20px;height:20px;stroke:var(--gold);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.form-done h3{font-family:var(--serif);font-size:1.5rem;font-weight:700;color:#fff}
.form-done p{margin-top:14px;font-size:.94rem;color:var(--muted);line-height:1.9}
.form-done__meta{margin-top:26px;padding-top:22px;border-top:1px solid var(--hair);font-size:.85rem;color:var(--dim)}
.form-done__meta b{color:var(--gold-hi);font-weight:700}

/* ---------- 25. Footer ---------- */
.ftr{position:relative;z-index:2;background:#090605;border-top:1px solid var(--hair);padding:70px 0 0}
.ftr__top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:46px;padding-bottom:52px}
.ftr__mark{width:26px;color:var(--gold-hi)}
.ftr__tag{margin-top:16px;font-size:.88rem;color:var(--muted);line-height:1.9}
.ftr h5{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dp);margin-bottom:18px;font-weight:700}
.ftr li{font-size:.85rem;color:var(--muted);margin-bottom:10px}
.ftr li b{color:var(--cream);font-weight:600}
.ftr__bot{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;
  padding:24px 0;border-top:1px solid var(--hair);font-size:.78rem;color:var(--dim);
}
.ftr__bot nav{display:flex;gap:22px}
.ftr__bot a:hover{color:var(--gold)}

/* ---------- 26. Sticky dock ---------- */
.dock{
  position:fixed;left:0;right:0;bottom:0;z-index:520;
  background:rgba(13,9,8,.93);backdrop-filter:blur(18px) saturate(1.3);
  border-top:1px solid var(--line);
  transform:translateY(110%);transition:transform .55s var(--ease);
}
.dock.is-up{transform:none}
.dock__in{display:flex;align-items:center;gap:20px;padding:12px 0;width:min(100% - 48px,1340px);margin-inline:auto}
.dock__msg{flex:0 0 auto;line-height:1.4}
.dock__msg small{display:block;font-size:.68rem;letter-spacing:.12em;color:var(--gold-dp);font-weight:600}
.dock__msg b{font-family:var(--serif);font-size:1.02rem;color:#fff}
.dock__form{flex:1;display:flex;gap:10px;align-items:center;min-width:0}
.dock__form input,.dock__form select{
  flex:1 1 0;min-width:0;padding:11px 12px;font-size:.86rem;
  background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:var(--r-xs);
  transition:border-color .3s,background .3s;
}
.dock__form input:focus{outline:0;border-color:var(--gold);background:rgba(255,255,255,.07)}
.dock__agree{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--muted);white-space:nowrap;cursor:pointer}
.dock__agree input{appearance:none;width:15px;height:15px;flex:0 0 auto;position:relative;cursor:pointer;border:1px solid var(--line);background:transparent}
.dock__agree input:checked{background:var(--gold);border-color:var(--gold)}
.dock__agree input:checked::after{content:"";position:absolute;left:4.5px;top:1.5px;width:4px;height:8px;border:solid #241812;border-width:0 2px 2px 0;transform:rotate(43deg)}
.dock__tel{display:flex;flex-direction:column;text-align:right;line-height:1.25}
.dock__tel small{font-size:.6rem;letter-spacing:.18em;color:var(--gold-dp);font-weight:600}
.dock__tel b{font-size:1.14rem;font-weight:700;color:var(--gold-hi);letter-spacing:.01em}
.dock__mobile{display:none}

/* ---------- 27. Side rail ---------- */
.rail{
  position:fixed;right:22px;bottom:104px;z-index:530;display:grid;gap:1px;
  background:var(--line);border:1px solid var(--line);
  opacity:0;transform:translateY(14px);pointer-events:none;
  transition:opacity .48s var(--ease),transform .48s var(--ease);
}
.rail.is-up{opacity:1;transform:none;pointer-events:auto}
.rail a,.rail button{
  position:relative;width:46px;height:46px;display:grid;place-items:center;
  background:rgba(20,16,16,.94);backdrop-filter:blur(10px);
  color:var(--gold);transition:background .3s,color .3s;
}
.rail a:hover,.rail button:hover{background:var(--gold);color:#241812}
.rail svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.rail__tip{
  position:absolute;right:calc(100% + 9px);top:50%;transform:translateY(-50%) translateX(5px);
  padding:6px 11px;white-space:nowrap;font-size:.76rem;
  background:rgba(20,16,16,.97);border:1px solid var(--line);color:var(--cream);
  opacity:0;pointer-events:none;transition:opacity .28s,transform .28s var(--ease);
}
.rail a:hover .rail__tip,.rail button:hover .rail__tip{opacity:1;transform:translateY(-50%)}

/* ---------- 27b. 사운드 토글 (좌하단 상시 노출) ---------- */
.snd{
  position:fixed;left:22px;bottom:24px;z-index:540;
  display:flex;align-items:center;gap:11px;padding:11px 16px;
  background:rgba(20,16,16,.88);border:1px solid var(--line);
  backdrop-filter:blur(12px);color:var(--dim);
  transition:bottom .55s var(--ease),color .3s,border-color .3s,background .3s;
}
.snd:hover{color:var(--gold-hi);border-color:rgba(226,196,158,.34);background:rgba(28,22,20,.94)}
.snd.is-on{color:var(--gold)}
.snd.is-lifted{bottom:86px}
.snd__label{font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}

/* 이퀄라이저 — 켜져 있으면 춤추고, 꺼지면 낮게 눕고 사선이 그어진다 */
.eq{display:flex;align-items:flex-end;gap:2.5px;height:14px;position:relative}
.eq i{width:2px;background:currentColor;height:3px;transition:height .35s var(--ease)}
.snd.is-on .eq i{animation:eqb .95s var(--ease) infinite alternate}
.snd.is-on .eq i:nth-child(2){animation-delay:.18s}
.snd.is-on .eq i:nth-child(3){animation-delay:.36s}
.snd.is-on .eq i:nth-child(4){animation-delay:.09s}
@keyframes eqb{from{height:3px}to{height:13px}}
.snd:not(.is-on) .eq::after{
  content:"";position:absolute;left:-4px;right:-4px;top:50%;height:1px;
  background:currentColor;transform:rotate(-36deg);
}
@media (prefers-reduced-motion:reduce){ .snd.is-on .eq i{animation:none;height:9px} }

/* ---------- 28. Modals ---------- */
.modal{position:fixed;inset:0;z-index:800;display:grid;place-items:center;padding:22px;opacity:0;visibility:hidden;transition:opacity .42s var(--ease),visibility .42s}
.modal.is-open{opacity:1;visibility:visible}
.modal__scrim{position:absolute;inset:0;background:rgba(6,4,3,.9);backdrop-filter:blur(6px)}
.modal__box{
  position:relative;width:min(100%,840px);max-height:min(88vh,860px);
  display:flex;flex-direction:column;overflow:hidden;
  background:#141010;border:1px solid var(--line);box-shadow:var(--shadow-lg);
  transform:translateY(20px);transition:transform .48s var(--ease);
}
.modal.is-open .modal__box{transform:none}
.modal__x{
  position:absolute;top:0;right:0;z-index:3;width:46px;height:46px;display:grid;place-items:center;
  border-left:1px solid var(--hair);border-bottom:1px solid var(--hair);
  color:var(--muted);transition:background .28s,color .28s;
}
.modal__x:hover{background:rgba(226,196,158,.1);color:var(--gold-hi)}
.modal__x svg{width:15px;height:15px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round}
.modal__hd{padding:38px 34px 24px;border-bottom:1px solid var(--hair);flex:0 0 auto}
.modal__hd .eyebrow{margin-bottom:14px}
.modal__hd h3{font-family:var(--serif);font-size:clamp(1.3rem,3vw,1.8rem);font-weight:700;color:#fff;line-height:1.4}
.modal__hd p{margin-top:12px;font-size:.9rem;color:var(--muted)}
.modal__bd{padding:26px 34px 30px;overflow-y:auto;flex:1 1 auto}
.modal__ft{padding:18px 34px 24px;border-top:1px solid var(--hair);flex:0 0 auto}
.modal__group+.modal__group{margin-top:30px}
.modal__group>h4{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-dp);margin-bottom:6px;font-weight:700}
.modal__group>h4 span{color:var(--dim);margin-left:6px}
.modal__group p{color:var(--muted);font-size:.9rem;line-height:1.85}
.modal__group .stores{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}

/* ---------- 29. Entry popups ---------- */
.pop{
  position:fixed;z-index:820;width:min(92vw,368px);
  background:#161110;border:1px solid var(--line);box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(20px);
  transition:opacity .55s var(--ease),transform .55s var(--ease),visibility .55s;
}
.pop.is-open{opacity:1;visibility:visible;transform:none}
.pop--a{top:100px;left:48px}
/* 매장 팝업은 23개를 다 담아야 하므로 넓게. 화면을 넘치면 내부에서 스크롤한다. */
.pop--b{top:100px;left:444px;width:min(92vw,520px)}
.pop--b .pop__body{max-height:calc(100vh - 210px);overflow-y:auto}

/* 매장 목록 — 가로 3칸 고정 격자.
   글자 길이에 칸을 맞추면 폭이 들쭉날쭉해 목록으로 안 읽힌다.
   칸을 균일한 직사각형으로 고정하고 세로로 흘린다. */
/* 격자선은 '배경이 틈으로 비치는' 방식이 아니라 칸마다 테두리로 그린다.
   그래야 마지막 줄에 남는 빈 자리에 아무것도 안 그려져 자연스럽게 비어 보인다. */
.poplist{
  display:grid;grid-template-columns:repeat(3,1fr);
  margin:18px 0 20px;
  border-top:1px solid var(--hair);
  border-left:1px solid var(--hair);
}
.poplist a{
  display:flex;align-items:center;justify-content:center;gap:4px;
  min-height:44px;padding:8px 6px;
  font-size:.78rem;line-height:1.25;text-align:center;color:var(--muted);
  background:#1B1513;
  border-right:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
  transition:color .22s,background .22s;
}
.poplist a:hover,.poplist a:focus-visible{color:var(--gold-hi);background:#241C19}
.poplist a.is-direct{color:var(--cream)}
.poplist a i{
  flex:none;font-style:normal;font-size:.58rem;letter-spacing:.02em;padding:1px 3px;
  color:var(--gold);border:1px solid rgba(217,178,124,.34);
}
.pop__body{padding:30px 26px 24px}
.pop__badge{
  display:inline-block;padding:5px 11px;margin-bottom:16px;
  font-size:.68rem;font-weight:700;letter-spacing:.1em;
  border:1px solid rgba(217,178,124,.4);color:var(--gold);
}
.pop__body h3{font-family:var(--serif);font-size:1.4rem;font-weight:700;color:#fff;line-height:1.45}
.pop__body h3 b{color:var(--gold-hi)}
.pop__body>p{margin-top:12px;font-size:.86rem;color:var(--muted)}
.pop__list{margin:22px 0 20px;border-top:1px solid var(--hair)}
.pop__list li{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:12px 0;border-bottom:1px solid var(--hair);font-size:.85rem;color:var(--muted);
}
.pop__list li b{color:var(--gold-hi);font-weight:700}
.pop__list li s{color:#5E5044;font-size:.79rem;margin-right:7px}
.pop__foot{
  display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;
  border-top:1px solid var(--hair);font-size:.78rem;background:rgba(0,0,0,.24);
}
.pop__foot label{display:flex;align-items:center;gap:8px;color:var(--muted);cursor:pointer}
.pop__foot input{appearance:none;width:14px;height:14px;position:relative;cursor:pointer;border:1px solid var(--line);background:transparent}
.pop__foot input:checked{background:var(--gold);border-color:var(--gold)}
.pop__foot input:checked::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #241812;border-width:0 2px 2px 0;transform:rotate(43deg)}
.pop__foot button{color:var(--dim);transition:color .25s}
.pop__foot button:hover{color:var(--gold)}
/* 레드와인 강조 — 팝업의 '본사 지원금' 행 (라벨 + 금액) */
.pop__list li.is-wine span{color:var(--wine)}
.pop__list li b.wine{color:var(--wine)}
.pop__hl{color:var(--gold-hi);font-weight:700}

/* 지역별 가맹점 그리드 — 있는 지역은 네이버 지도로, 빈 지역은 상담으로 */
.pop__mini{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin:20px 0 4px}
.pmini{
  display:block;width:100%;padding:10px 4px 9px;text-align:center;
  background:#161110;color:var(--dim);font:inherit;
  transition:background .25s,color .25s;
}
.pmini b{display:block;font-size:.78rem;font-weight:600;line-height:1.3}
.pmini em{display:block;margin-top:3px;font-size:.64rem;font-style:normal;letter-spacing:.01em;
  font-variant-numeric:lining-nums tabular-nums}
.pmini i{font-style:normal;opacity:.62}
.pmini--on{color:var(--gold-hi)}
.pmini--on em{color:var(--gold-dp)}
.pmini--on:hover,.pmini--on:focus-visible{background:#211917}
.pmini--open{cursor:pointer;color:#6B5B4C}
.pmini--open em{color:#5B4C40}
.pmini--open:hover,.pmini--open:focus-visible{background:#211917;color:var(--gold)}

/* ---------- 29b. 좌측 섹션 인덱스 ---------- */
/* 히어로를 지나면 나타난다. 좌하단 SOUND 버튼과 겹치지 않게 세로 가운데 정렬. */
.idx{
  position:fixed;left:22px;top:50%;transform:translateY(-50%) translateX(-10px);
  z-index:520;display:grid;gap:2px;
  opacity:0;pointer-events:none;
  transition:opacity .5s var(--ease),transform .5s var(--ease);
}
.idx.is-up{opacity:1;transform:translateY(-50%);pointer-events:auto}
.idx a{display:flex;align-items:center;gap:10px;padding:5px 2px;color:var(--dim)}
.idx i{
  width:16px;height:1px;flex:none;background:currentColor;opacity:.5;
  transition:width .34s var(--ease),opacity .34s,background .34s;
}
.idx span{
  font-size:.7rem;letter-spacing:.02em;white-space:nowrap;
  opacity:0;transform:translateX(-4px);
  transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.idx:hover span,.idx a:focus-visible span{opacity:1;transform:none}
.idx a:hover,.idx a:focus-visible{color:var(--gold)}
.idx a:hover i,.idx a:focus-visible i{width:26px;opacity:1}
.idx a.is-active{color:var(--gold-hi)}
.idx a.is-active i{width:30px;opacity:1;background:var(--gold-hi)}
.idx a.is-active span{opacity:1;transform:none}

/* 화면이 좁으면 자리를 비운다 — 본문과 겹치고 손가락으로 누르기도 어렵다 */
@media (max-width:1279px){ .idx{display:none} }

/* ---------- 30. Toast ---------- */
.toast{
  position:fixed;left:50%;bottom:40px;transform:translate(-50%,20px);z-index:900;
  display:flex;align-items:center;gap:12px;padding:15px 22px;
  background:#1B1513;border:1px solid var(--line);box-shadow:var(--shadow-md);
  font-size:.9rem;color:var(--cream);opacity:0;visibility:hidden;transition:all .45s var(--ease);
}
.toast.is-on{opacity:1;visibility:visible;transform:translate(-50%,0)}
.toast svg{width:17px;height:17px;stroke:var(--gold);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.toast.is-err svg{stroke:#D18C7D}

/* ---------- 31. Progress ---------- */
.progress{position:fixed;top:0;left:0;height:1px;z-index:700;width:0;background:var(--gold);transition:width .12s linear}

/* ---------- 32. Responsive ---------- */
@media (max-width:1180px){
  .stores{grid-template-columns:repeat(3,1fr)}
  /* 폭이 좁으면 팝업 두 개를 나란히 놓을 수 없다.
     그래서 겹쳐 두고, main.js showPopups 가 '닫으면 다음' 순서로 하나씩 띄운다. */
  .pop--a,.pop--b{left:50%;top:80px;transform:translateX(-50%) translateY(20px)}
  .pop--b{width:min(94vw,520px)}
  .pop--b .pop__body{max-height:calc(100dvh - 190px)}
  /* 좁은 화면에서도 3칸을 유지하려면 글자와 여백을 줄여야 '서울 노원상계점'이 안 깨진다 */
  .poplist a{font-size:.68rem;padding:8px 3px;min-height:42px;gap:3px}
  .poplist a i{font-size:.5rem;padding:1px 2px}
  .pop--a.is-open,.pop--b.is-open{transform:translateX(-50%)}
}
@media (max-width:1024px){
  .nav,.hdr__tel{display:none}
  .burger{display:grid}
  .dock__form,.dock__msg,.dock__tel{display:none}
  .dock__mobile{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%}
  .dock__mobile .btn{--btn-py:13px;--btn-px:10px;font-size:.86rem}
  .manifest{grid-template-columns:1fr;gap:36px}
  .manifest__aside{position:static}
  .steps{grid-template-columns:repeat(2,1fr)}
  .step{border-bottom:1px solid var(--hair)}
  .step:nth-child(2n){border-right:0}
  .step:nth-child(2n+1){padding-left:0}
  .market,.switch{grid-template-columns:repeat(2,1fr)}
  .market{border-left:0}
  .mstat{border-right:1px solid var(--hair);border-bottom:1px solid var(--hair)}
  .ftr__top{grid-template-columns:1fr 1fr;gap:34px}
  .rail{right:16px;bottom:92px}
  /* 전화는 하단 고정바에 이미 있으므로 모바일에서는 감춘다.
     카톡·인스타는 하단바에서 뺐으므로 여기서 남겨둔다 (DM 이 주요 상담 경로) */
  .rail a[href^="tel:"]{display:none}
  /* 모바일에서는 우측 퀵메뉴 위로 올려 본문 컨트롤과 겹치지 않게 한다 */
  .snd{left:auto;right:16px;bottom:22px}
  .snd.is-lifted{bottom:146px}
}
@media (max-width:820px){
  /* DM 안내 — 좁은 폭에서 가로로 3등분하면 문장이 깨진다 */
  .dmnote{flex-wrap:wrap;gap:12px;padding:16px 18px}
  .dmnote__txt{flex:1 1 calc(100% - 50px)}
  .dmnote__go{flex:1 1 100%;padding-left:50px}

  /* ── 타사 비교표: 가로 스크롤 대신 카드로 쌓는다 ──
     min-width:640px 짜리 표를 폰에서 옆으로 밀게 두면 '곁' 열을 아예 못 본다.
     행마다 항목명을 제목으로 올리고 타사/곁을 두 칸으로 나눠 한 화면에 담는다. */
  .tablewrap{overflow-x:visible;border-top:0}
  .ctable{min-width:0;display:block}
  .ctable thead{display:none}
  .ctable tbody,.ctable tr{display:block}
  .ctable tr{
    margin-bottom:10px;padding:16px 18px;
    border:1px solid var(--hair);background:rgba(226,196,158,.022);
  }
  .ctable th[scope="row"]{
    display:block;padding:0 0 12px;text-align:left;
    font-size:.9rem;font-weight:700;color:var(--cream);
    border-bottom:1px solid var(--hair);
  }
  .ctable td{
    display:flex;align-items:baseline;justify-content:space-between;gap:14px;
    padding:11px 0 0;border:0;font-size:.9rem;
  }
  .ctable td::before{
    content:attr(data-label);flex:none;
    font-size:.74rem;letter-spacing:.06em;color:var(--dim);
  }
  .ctable td.ours{font-weight:700}
  .ctable tbody tr:last-child td{font-size:.95rem;padding-top:11px;padding-bottom:0;border:0}
  .ctable__total{border-color:rgba(226,196,158,.3);background:rgba(226,196,158,.055)}
  /* td 가 flex 라서 괄호 보조문구가 오른쪽 끝으로 밀린다 — 줄을 바꿔 아래로 내린다 */
  .ctable__total td.ours{flex-wrap:wrap;justify-content:flex-end;text-align:right}
  .ctable__total td.ours em{flex:0 0 100%;margin-top:3px;font-size:.76rem}
  .shell,.shell--wide,.hdr__in,.dock__in{width:calc(100% - 32px)}
  .section{padding:clamp(62px,11vw,88px) 0}
  .hero{padding-bottom:132px}
  .hero__ticker{margin-top:44px}
  .gal,.stores{grid-template-columns:repeat(2,1fr)}
  .field--row{grid-template-columns:1fr}
  .rev__grid{grid-template-columns:1fr;gap:22px}
  .ftr__top{grid-template-columns:1fr}
  .modal__hd,.modal__bd,.modal__ft{padding-left:22px;padding-right:22px}
  .rail__tip{display:none}
  .tabs{gap:18px}
}
@media (max-width:540px){
  .story__stats{grid-template-columns:1fr;gap:28px}
  .market,.switch,.stores,.steps,.royalty__grid{grid-template-columns:1fr}
  .gal{grid-template-columns:1fr 1fr}
  .step{border-right:0;padding-left:0}
  .mstat{border-right:0}
  .hero__ticker div+div::before{display:none}
  .hero__ticker div{flex:1 1 45%}
  .hero__actions .btn{width:100%}
  .ftr__bot{flex-direction:column;text-align:center}
  .snd{padding:10px 13px}
  .snd__label{display:none}
}

/* ---------- 24b. Pulse — 상담 현황 ---------- */
.pulse{padding-top:0}
.pulse__bar{
  display:flex;align-items:center;gap:clamp(20px,3.2vw,44px);flex-wrap:wrap;
  padding:24px clamp(20px,2.6vw,32px);
  border:1px solid var(--line);
  background:linear-gradient(100deg,rgba(217,178,124,.07),rgba(217,178,124,.015) 60%,transparent);
}
.pulse__lead{display:flex;align-items:center;gap:13px;flex:0 0 auto}
.pulse__lead small{display:block;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dp);font-weight:700}
.pulse__lead b{display:block;margin-top:4px;font-size:.95rem;color:var(--cream);font-weight:600}
.pulse__dot{
  width:9px;height:9px;flex:0 0 auto;background:var(--gold);border-radius:50%;
  box-shadow:0 0 0 0 rgba(217,178,124,.55);animation:pulseDot 2.6s infinite;
}
@keyframes pulseDot{70%{box-shadow:0 0 0 12px rgba(217,178,124,0)}100%{box-shadow:0 0 0 0 rgba(217,178,124,0)}}

.pulse__stats{display:flex;gap:clamp(18px,3vw,40px);flex:1 1 auto;flex-wrap:wrap}
.pulse__stats>div{position:relative;padding-left:clamp(18px,3vw,40px)}
.pulse__stats>div:first-child{padding-left:0}
.pulse__stats>div:not(:first-child)::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:1px;background:var(--hair)}
.pulse__stats dt{font-size:.76rem;color:var(--dim);white-space:nowrap}
.pulse__stats dd{
  margin-top:6px;font-size:clamp(1.1rem,2vw,1.34rem);font-weight:800;letter-spacing:-.03em;color:var(--gold-hi);
  font-variant-numeric:lining-nums tabular-nums;white-space:nowrap;
}
.pulse__note{margin-top:18px;font-size:.8rem;color:var(--dim);line-height:1.8}

@media (max-width:900px){
  .pulse__bar{gap:20px}
  .pulse__stats{width:100%;justify-content:space-between}
  .pulse__bar>.btn{width:100%}
}
@media (max-width:540px){
  .pulse__stats{gap:14px}
  .pulse__stats>div{padding-left:14px}
  .pulse__stats>div:not(:first-child)::before{left:0}
  .pulse__stats dt{font-size:.7rem;white-space:normal}
}

/* ---------- 반응형: 영상 밴드 · 사진첩 ---------- */
@media (max-width:900px){
  .filmband__grid{grid-template-columns:1fr;gap:40px}
  .filmband__player{order:-1}

  /* 모바일 읽는 순서: 제목 → 사진 → 캡션 → 컨트롤
     .album__side 를 display:contents 로 풀어 자식들을 직접 정렬한다 */
  .album__grid{grid-template-columns:1fr;gap:0}
  .album__side{display:contents}
  .album__grid>.album__side>.eyebrow{order:1}
  .album__grid>.album__side>.h-display{order:2}
  .album__stage{order:3;width:min(100%,420px);margin:30px auto 0}
  .album__arrow--prev{left:6px}
  .album__arrow--next{right:6px}
  .album__grid>.album__side>.album__caps{order:4;margin-top:54px;min-height:120px}
  .album__grid>.album__side>.album__ctrl{order:5;margin-top:10px}
}
@media (max-width:540px){
  .filmband__facts{grid-template-columns:1fr}
  .album__ctrl{gap:10px}
  .album__insta{margin-left:0;width:100%;margin-top:6px}
  .album__stage{width:min(100%,330px)}
  .album__arrow{width:42px;height:42px}
  .album__grid>.album__side>.album__caps{min-height:132px}
}

/* ---------- 20. Split — 본사가 하는 일 / 점주님이 하는 일 ----------
   9 vs 2 라는 비대칭 자체가 메시지다. 오른쪽의 여백을 일부러 비워둔다. */
.split{display:grid;grid-template-columns:1.25fr .95fr;gap:1px;background:var(--hair);border:1px solid var(--hair)}
.split__col{background:var(--ink);padding:clamp(28px,3.4vw,42px)}
.split__col--owner{background:linear-gradient(170deg,rgba(217,178,124,.075),rgba(217,178,124,.02) 55%,transparent);display:flex;flex-direction:column}

.split__hd{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--hair)}
.split__tag{font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-dp)}
.split__col--owner .split__tag{color:var(--gold)}
.split__num{
  font-size:clamp(2rem,4.4vw,2.9rem);font-weight:800;line-height:.9;letter-spacing:-.05em;
  color:rgba(166,130,90,.42);font-variant-numeric:lining-nums tabular-nums;
}
.split__col--owner .split__num{color:var(--gold-hi)}

.split__list li{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:14px 0;border-bottom:1px solid var(--line-soft);
}
.split__list li:last-child{border-bottom:0}
.split__k{font-size:.95rem;font-weight:600;color:var(--cream);flex:0 0 auto}
.split__v{font-size:.83rem;color:var(--dim);text-align:right;line-height:1.6}

.split__list--owner li{padding:22px 0}
.split__list--owner .split__k{font-family:var(--serif);font-size:1.24rem;font-weight:700;color:#fff}
.split__list--owner .split__v{font-size:.86rem;color:var(--muted)}

.split__note{
  margin:auto 0 26px;padding-top:26px;
  font-family:var(--serif);font-size:1.02rem;line-height:1.85;color:var(--gold-hi);
}

/* ---------- 사진첩 좌우 화살표 ---------- */
.album__stage{position:relative;width:min(100%,460px);margin-inline:auto}
.album__stage .album__deck{width:100%;margin:0}
.album__arrow{
  position:absolute;top:50%;z-index:15;transform:translateY(-50%);
  width:46px;height:46px;display:grid;place-items:center;
  background:rgba(13,9,8,.72);border:1px solid var(--line);backdrop-filter:blur(8px);
  color:var(--muted);transition:color .26s,border-color .26s,background .26s;
}
.album__arrow:hover{color:var(--gold-hi);border-color:var(--gold);background:rgba(13,9,8,.92)}
.album__arrow svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.album__arrow--prev{left:-23px}
.album__arrow--next{right:-23px}

/* 컨트롤 줄 — 카운터 + 점 인디케이터 + 인스타 */
.album__dots{display:inline-flex;align-items:center;gap:7px;margin-left:16px}
.album__dot{width:20px;height:2px;background:rgba(226,196,158,.2);transition:background .35s var(--ease)}
.album__dot.is-on{background:var(--gold)}

/* ---------- 반응형: split · 사진첩 화살표 (파일 끝에서 최종 적용) ---------- */
@media (max-width:900px){
  .split{grid-template-columns:1fr}
  .split__col--owner{border-top:1px solid var(--hair)}
  .split__note{margin-top:30px;margin-bottom:22px;padding-top:0}
  /* 화살표를 사진 안쪽으로 — 좁은 화면에서 밖으로 밀려 잘리지 않게 */
  .album__arrow--prev{left:8px}
  .album__arrow--next{right:8px}
}
@media (max-width:600px){
  /* 항목명과 설명을 위아래로 쌓는다 — 좁은 폭에서 글자가 세로로 끼는 걸 막는다 */
  .split__list li{flex-direction:column;align-items:flex-start;gap:5px;padding:13px 0}
  .split__k{flex:1 1 auto}
  .split__v{text-align:left}
  .split__list--owner li{padding:18px 0}
  .split__hd{padding-bottom:16px}
  .split__num{font-size:2.1rem}
  .album__arrow{width:42px;height:42px}
}

/* ---------- 33. 전국 분포 지도 ----------
   바탕은 1,487개 점으로 한반도를 채운다 — 핀이 적어도 절대 휑해 보이지 않게. */
.loc{display:grid;grid-template-columns:minmax(250px,.46fr) 1fr;gap:clamp(30px,4.2vw,62px);align-items:start}
.loc__map{position:sticky;top:100px}

.map{position:relative;width:100%}
.map__base{width:100%;height:auto;display:block;opacity:.46}
.map__pins{position:absolute;inset:0}

.map__pin{
  position:absolute;transform:translate(-50%,-50%);
  display:grid;place-items:center;
  background:none;border:0;padding:0;cursor:default;
}
.map__pin i{
  display:block;border-radius:50%;
  transition:transform .4s var(--ease),box-shadow .4s;
}

/* 운영 중 — 크기가 매장 수를 나타낸다 */
.map__pin--live i{background:var(--gold-hi);box-shadow:0 0 0 3px rgba(217,178,124,.18),0 0 14px rgba(240,220,188,.55)}
.map__pin--live b{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-size:.62rem;font-weight:800;color:#241812;letter-spacing:-.02em;
  font-variant-numeric:lining-nums tabular-nums;pointer-events:none;
}
.map__pin--live::after{
  content:"";position:absolute;left:50%;top:50%;width:100%;height:100%;
  transform:translate(-50%,-50%);border-radius:50%;
  border:1px solid rgba(240,220,188,.5);animation:mapPing 3s var(--ease) infinite;
}
@keyframes mapPing{0%{opacity:.7;transform:translate(-50%,-50%) scale(1)}70%,100%{opacity:0;transform:translate(-50%,-50%) scale(2.6)}}

/* 오픈 준비 중 */
.map__pin--soon i{width:11px;height:11px;background:rgba(217,178,124,.28);border:1.5px solid var(--gold);box-shadow:0 0 12px rgba(217,178,124,.5)}

/* 선점 가능 — 비어 있는 지역을 기회로 보여준다 */
.map__pin--open{cursor:pointer}
.map__pin--open i{width:9px;height:9px;border:1px solid rgba(226,196,158,.75);background:rgba(226,196,158,.14);box-shadow:0 0 8px rgba(217,178,124,.22)}
.map__pin--open:hover i{border-style:solid;border-color:var(--gold-hi);background:var(--gold);transform:scale(1.5)}

/* 라벨 */
.map__tip{
  position:absolute;left:50%;bottom:calc(100% + 7px);transform:translateX(-50%);
  padding:6px 10px;font-size:.7rem;font-weight:600;letter-spacing:.01em;
  width:max-content;max-width:170px;text-align:center;line-height:1.5;
  background:rgba(13,9,8,.96);border:1px solid var(--line);color:var(--cream);
  opacity:0;pointer-events:none;transition:opacity .25s;z-index:5;
}
.map__pin:hover .map__tip,.map__pin:focus-visible .map__tip{opacity:1}
.map__tip em{font-style:normal;display:block;margin-top:3px;color:var(--dim);font-weight:400;font-size:.67rem}

.map__legend{display:flex;flex-wrap:wrap;gap:14px 18px;margin-top:22px;font-size:.75rem;color:var(--muted)}
.map__key{display:inline-flex;align-items:center;gap:7px}
.map__key i{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.map__key--live i{background:var(--gold-hi);box-shadow:0 0 8px rgba(240,220,188,.5)}
.map__key--soon i{border:1.5px solid var(--gold)}
.map__key--open i{border:1px solid rgba(226,196,158,.75);background:rgba(226,196,158,.14)}

.map__cta{
  margin-top:20px;padding-top:18px;border-top:1px solid var(--hair);
  font-size:.86rem;color:var(--muted);line-height:1.8;
}
.map__cta b{color:var(--gold-hi);font-weight:700;font-variant-numeric:lining-nums tabular-nums}
.map__cta span{display:block;margin-top:6px;font-size:.78rem;color:var(--dim)}

.loc__list .stores{grid-template-columns:repeat(2,1fr)}

@media (prefers-reduced-motion:reduce){ .map__pin--live::after{animation:none;opacity:0} }

@media (max-width:1024px){
  .loc{grid-template-columns:1fr;gap:44px}
  .loc__map{position:static;max-width:330px;margin-inline:auto}
  .map__legend{justify-content:center}
  .map__cta{text-align:center}
  /* 터치 기기에는 hover 가 없다 — 툴팁이 화면 밖으로 삐져나가 가로 스크롤을 만드는 것도 막는다 */
  .map__tip{display:none}
}
@media (max-width:600px){
  .loc__list .stores{grid-template-columns:1fr}
  .loc__map{max-width:280px}
  .map__tip{font-size:.66rem;padding:5px 8px}
}
