/* 라벨드쥬 본식스냅 — 공용 디자인 시스템 (KT Merry 구성 이식)
   근거: _디자인_목업/index.html + hall-suwon-party-wedding-you.html 통합.
   한글=Pretendard 단일서체(위계=굵기·투명도·자간), 영문장식=Cormorant(고스트)+Pinyon(서명).
   원칙: 사진 우선·글 은닉. 지역/SEO 텍스트는 .sr-only(봇 전용, display:none 아님=클로킹 아님). */

:root{
  --ivory:#f6f4ee;
  --paper:#fbfaf7;
  --dark:#33312e;
  --ink:#2b2926;
  --ink-90:rgba(43,41,38,.9);
  --ink-70:rgba(43,41,38,.72);
  --ink-55:rgba(43,41,38,.55);
  --ink-50:rgba(43,41,38,.5);
  --ink-40:rgba(43,41,38,.4);
  --ink-35:rgba(43,41,38,.35);
  --ghost:rgba(43,41,38,.13);
  --ghost-on-dark:rgba(246,244,238,.16);
  --beige:#eee3d7;
  --gold:#cfa98c;
  --hair:rgba(43,41,38,.14);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--ivory);color:var(--ink);-webkit-font-smoothing:antialiased}
/* 기본: 장식 이미지는 채우되 얼굴이 잘리지 않게 상단寄り 위치 보정 (사장님 지시: 사람 안 잘림) */
img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 32%}
a{color:inherit;text-decoration:none}
.serif{font-family:"Cormorant Garamond",serif}
.script{font-family:"Pinyon Script",cursive}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ── 헤더: 히어로 위 투명 ── */
.hero-head{position:absolute;inset:0 0 auto 0;z-index:40;display:flex;justify-content:space-between;
  align-items:center;padding:24px 30px;color:#fff}
.hero-head .menu{display:flex;align-items:center;gap:13px;cursor:pointer;background:none;border:0;color:inherit}
.hero-head .menu i{display:block;width:28px}
.hero-head .menu i span{display:block;height:1px;background:#fff;margin:5px 0;transition:transform .3s}
.hero-head .menu em{font-style:normal;font-size:11px;font-weight:500;letter-spacing:.42em}
.hero-head .soc{display:flex;gap:20px;font-size:10.5px;letter-spacing:.3em;font-weight:400}

/* ── 헤더: 스크롤 후 흰색 고정 ── */
.site-head{position:fixed;inset:0 0 auto 0;z-index:50;background:#fff;display:flex;align-items:center;
  gap:4vw;padding:0 3vw;height:74px;box-shadow:0 1px 0 var(--hair);
  transform:translateY(-100%);transition:transform .35s ease}
.site-head.on{transform:translateY(0)}
.site-head .logo{font-size:22px;font-weight:250;letter-spacing:.18em;white-space:nowrap;color:inherit;text-decoration:none;cursor:pointer}
.site-head nav{display:flex;gap:2.6vw;margin-left:auto}
.site-head nav a{font-size:11px;font-weight:450;letter-spacing:.22em;color:var(--ink-70)}
.site-head nav a:hover{color:var(--ink)}
.site-head .contact{background:var(--beige);padding:14px 26px;font-size:11px;font-weight:500;letter-spacing:.22em}

/* ── 풀스크린 메뉴 오버레이 (KT Merry식) ── */
.menu-overlay{position:fixed;inset:0;z-index:100;background:var(--dark);color:var(--ivory);
  display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;
  opacity:0;visibility:hidden;transform:translateY(-16px);transition:opacity .4s ease,transform .4s ease,visibility 0s .4s}
.menu-overlay.open{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .4s ease,transform .4s ease}
.menu-overlay nav{display:flex;flex-direction:column;gap:26px}
.menu-overlay nav a{font-size:clamp(24px,4vw,40px);font-weight:150;letter-spacing:.08em;color:var(--ivory);
  opacity:.86;transition:opacity .25s}
.menu-overlay nav a:hover{opacity:1}
.menu-overlay .mo-close{position:absolute;top:26px;right:34px;font-size:12px;letter-spacing:.36em;
  cursor:pointer;background:none;border:0;color:var(--ivory)}
.menu-overlay .mo-soc{position:absolute;bottom:40px;display:flex;gap:26px;font-size:10.5px;letter-spacing:.3em;opacity:.7}

/* ── 히어로 (홈: 분할 풀블리드) ── */
.hero{position:relative;height:100vh;display:flex}
.hero .half{width:50%;overflow:hidden}
.hero .veil{position:absolute;inset:0;background:rgba(0,0,0,.16)}
.hero .mark{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;
  align-items:center;color:#fff;padding-bottom:7vh;text-align:center}
.hero h1{font-size:clamp(44px,8.6vw,140px);font-weight:100;letter-spacing:.06em;line-height:.95;white-space:nowrap}
.hero .tag-ko{margin-top:3vh;font-size:clamp(12px,1.2vw,16px);font-weight:200;letter-spacing:.34em;text-indent:.34em;opacity:.94}
/* 히어로 자동 롤링 슬라이드 (광각 홀컷 + 디테일컷 페이드 전환) */
.hero .half{position:relative}
.hero-slides{position:absolute;inset:0}
.hero-slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:0;transition:opacity 1.6s ease}
.hero-slides img.is-active{opacity:1}

/* ── 히어로 (홀 상세: 1컷 + H1) ── */
.hero-venue{position:relative;height:88vh}
.hero-venue .veil{position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.08),rgba(0,0,0,.34))}
.hero-venue .mark{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;
  align-items:center;color:#fff;padding:0 6vw 8vh;text-align:center}
.hero-venue .crumb{font-size:10.5px;font-weight:400;letter-spacing:.4em;margin-bottom:22px;opacity:.85}
.hero-venue h1{font-size:clamp(19px,2.6vw,32px);font-weight:150;letter-spacing:.14em;line-height:1.4}
.hero-venue h1 small{display:block;margin-top:14px;font-size:clamp(12px,1.3vw,16px);font-weight:200;letter-spacing:.2em;opacity:.9}

/* ── 풀블리드 밴드 ── */
.band{height:64vh;overflow:hidden}

/* ── 다크 스튜디오 섹션 ── */
.studio{background:var(--dark);color:var(--ivory);text-align:center;padding:16vh 6vw 14vh}
.eyebrow{font-size:11px;font-weight:500;letter-spacing:.42em;text-transform:uppercase;opacity:.85}
.studio .ghost{font-family:"Cormorant Garamond",serif;font-weight:300;font-size:clamp(56px,8.6vw,130px);
  line-height:1.02;letter-spacing:.04em;color:var(--ghost-on-dark);text-transform:uppercase;margin-top:5vh}
.studio .sign{font-family:"Pinyon Script",cursive;font-size:clamp(34px,3.6vw,54px);color:var(--gold);margin-top:-1.2em;position:relative}
.studio .photo{max-width:700px;margin:9vh auto 0;aspect-ratio:4/3;overflow:hidden}
.studio p{max-width:560px;margin:7vh auto 0;font-size:15px;font-weight:300;line-height:2.05;color:rgba(246,244,238,.82)}
.btn{display:inline-block;margin-top:6vh;padding:17px 34px;font-size:11px;font-weight:500;letter-spacing:.3em;
  text-indent:.3em;border:1px solid rgba(246,244,238,.5);color:var(--ivory);transition:all .3s;cursor:pointer}
.btn:hover{background:var(--ivory);color:var(--ink)}

/* ── 무드 밴드 + 대형 카피 ── */
.mood{position:relative;height:100vh;overflow:hidden}
.mood .veil{position:absolute;inset:0;background:rgba(255,255,255,.28)}
.mood .copy{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 10vw;color:#fff}
.mood .eyebrow{color:#fff;text-shadow:0 0 24px rgba(0,0,0,.25)}
.mood h2{margin-top:4vh;font-family:"Cormorant Garamond",serif;font-weight:300;font-size:clamp(54px,8vw,120px);
  line-height:1.05;letter-spacing:.03em;text-shadow:0 0 30px rgba(0,0,0,.18)}
.mood h2 .ko{font-family:"Pretendard Variable",Pretendard,sans-serif;font-weight:100;letter-spacing:.06em}
.mood h2 em{font-style:normal;font-family:"Pretendard Variable",Pretendard,sans-serif;font-weight:300;letter-spacing:.06em}

/* ── ABOUT ── */
.about{position:relative;padding:16vh 6vw;text-align:center}
.about .portrait{position:absolute;left:4vw;top:12vh;width:23vw;max-width:360px;aspect-ratio:3/4;overflow:hidden;opacity:.92}
.about .ghost{font-family:"Cormorant Garamond",serif;font-weight:300;text-transform:uppercase;
  font-size:clamp(46px,7vw,104px);line-height:1.08;letter-spacing:.05em;color:var(--ghost)}
.about .ghost em{font-style:italic;text-transform:none}
.about .ghost .ko{font-family:"Pretendard Variable",Pretendard,sans-serif;font-weight:100;color:rgba(43,41,38,.34)}
.btn-dark{display:inline-block;margin-top:6vh;padding:16px 32px;background:var(--beige);font-size:11px;
  font-weight:500;letter-spacing:.3em;text-indent:.3em;color:var(--ink);transition:opacity .3s;cursor:pointer}
.btn-dark:hover{opacity:.75}

/* ── Discover: 3카테고리 ── */
.discover{padding:14vh 6vw 12vh}
.discover .title{display:flex;justify-content:center;align-items:baseline;gap:1.6vw}
.discover .title .script{font-size:clamp(44px,5.6vw,84px);color:var(--ink)}
.discover .title .serif{font-size:clamp(40px,5vw,76px);font-weight:300;color:var(--ink-35);letter-spacing:.04em}
.cats{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1240px;margin:9vh auto 0}
.cat .ph{aspect-ratio:3/4;overflow:hidden}
.cat img{transition:transform 1.1s ease}
.cat:hover img{transform:scale(1.04)}
.cat h3{margin-top:22px;text-align:center;font-size:13px;font-weight:500;letter-spacing:.3em;color:var(--ink)}
.cat span{display:block;margin-top:8px;text-align:center;font-size:11.5px;font-weight:300;letter-spacing:.06em;color:var(--ink-50)}

/* ── 실제 촬영 웨딩홀 롤 ── */
.press{background:var(--dark);color:var(--ivory);text-align:center;padding:11vh 6vw}
.press .roll{max-width:1000px;margin:6vh auto 0;display:flex;flex-wrap:wrap;justify-content:center;gap:3.2vw 3.6vw}
.press .roll span{font-size:clamp(15px,1.5vw,20px);font-weight:200;letter-spacing:.14em;opacity:.8}

/* ── 후기(홈) ── */
.kind{padding:15vh 6vw;text-align:center}
.kind blockquote{max-width:840px;margin:6vh auto 0;font-size:clamp(19px,2.4vw,27px);font-weight:200;line-height:1.95;color:var(--ink)}
.kind cite{display:block;margin-top:5vh;font-style:normal;font-size:11px;font-weight:500;letter-spacing:.36em;color:var(--ink-35)}

/* ── 저널(홈) ── */
.journal{padding:0 6vw 14vh;text-align:center}
.journal .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1240px;margin:7vh auto 0;text-align:left}
.jcard .ph{aspect-ratio:4/3;overflow:hidden}
.jcard h4{margin-top:18px;font-size:15px;font-weight:500;line-height:1.6;letter-spacing:.02em}
.jcard span{display:block;margin-top:8px;font-size:11px;font-weight:300;letter-spacing:.24em;color:var(--ink-35)}

/* ── 카카오 상담(뉴스레터 자리) ── */
.letter{background:var(--beige);text-align:center;padding:12vh 6vw}
.letter h2{font-size:clamp(24px,3.2vw,38px);font-weight:150;letter-spacing:.04em}
.letter p{margin-top:18px;font-size:13px;font-weight:300;letter-spacing:.12em;color:var(--ink-70)}
.letter .btn-dark{background:var(--ink);color:var(--ivory)}

/* ══ 홀 상세 페이지 섹션 ══ */
.section{padding:clamp(64px,9vw,120px) 6vw}
.label{font-size:11px;font-weight:500;letter-spacing:.4em;text-transform:uppercase;color:var(--ink-40);text-align:center;margin-bottom:26px}
.rule{width:44px;height:1px;background:var(--hair);margin:0 auto 30px}
.intro{max-width:760px;margin:0 auto;text-align:center}
.intro p{font-size:clamp(16px,1.9vw,20px);font-weight:250;line-height:2.05;color:var(--ink-70);letter-spacing:.01em}
.intro p b{font-weight:550;color:var(--ink-90)}

/* 홀 갤러리 — 가로 스크롤(KT Merry: tap arrows or swipe) */
.scroller{position:relative;max-width:1360px;margin:0 auto}
.scroller .track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;padding-bottom:14px;-webkit-overflow-scrolling:touch}
.scroller .track::-webkit-scrollbar{height:0}
/* 갤러리 = KT Merry식 풀블리드 카드. 고정폭 + cover, object-position 상단보정(center 30%)으로 인물 얼굴 보존 */
.scroller .shot{flex:0 0 auto;width:clamp(300px,42vw,560px);scroll-snap-align:center}
.scroller .shot.wide{width:clamp(420px,60vw,780px)}
.scroller .shot .ph{height:clamp(340px,56vh,580px);overflow:hidden}
.scroller .shot img{width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform 1.2s ease;cursor:zoom-in}
/* 홀 9개 3×3 그리드 (한눈에 노출) — 얼굴 보존 center 30% */
.hall-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.hall-grid .ph{position:relative;aspect-ratio:3/4;overflow:hidden}
.hall-grid .ph img{width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform 1.2s ease;cursor:zoom-in}
.hall-grid figure:hover .ph img{transform:scale(1.04)}
@media(max-width:760px){.hall-grid{grid-template-columns:repeat(2,1fr);gap:9px}}
.scroller .shot:hover img{transform:scale(1.03)}
.scroller .shot figcaption{margin-top:14px;text-align:center;font-size:12.5px;font-weight:300;letter-spacing:.04em;color:var(--ink-55);line-height:1.7}
.scroller .shot figcaption b{font-weight:500;color:var(--ink-70);letter-spacing:.12em}
.scroller .arrow{position:absolute;top:38%;z-index:5;width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,.86);border:1px solid var(--hair);cursor:pointer;font-size:18px;color:var(--ink-70);
  display:flex;align-items:center;justify-content:center;transition:background .2s}
.scroller .arrow:hover{background:#fff}
.scroller .arrow.prev{left:-6px}
.scroller .arrow.next{right:-6px}

/* FAQ 아코디언(native details) */
.faq{max-width:720px;margin:0 auto}
.faq details{border-bottom:1px solid var(--hair)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;
  padding:24px 4px;font-size:15px;font-weight:500;color:var(--ink-90)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:200;font-size:20px;color:var(--ink-40)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{padding:0 4px 26px;font-size:14px;font-weight:400;line-height:1.95;color:var(--ink-55)}

/* 후기(홀) */
.quote-sec{background:#f3f0ea}
.quote{max-width:820px;margin:0 auto;text-align:center}
.quote blockquote{font-size:clamp(18px,2.3vw,26px);font-weight:200;line-height:1.9;color:var(--ink-90)}
.quote cite{display:block;margin-top:30px;font-style:normal;font-size:11px;font-weight:500;letter-spacing:.36em;color:var(--ink-40)}
.quote .src{margin-top:16px;font-size:11px;font-weight:300;letter-spacing:.1em;color:var(--ink-40)}

/* 저자 카드 */
.author{max-width:560px;margin:0 auto;text-align:center;border:1px solid var(--hair);padding:44px 30px}
.author .nm{font-size:17px;font-weight:550;letter-spacing:.1em;color:var(--ink-90)}
.author .rl{margin-top:8px;font-size:11px;font-weight:300;letter-spacing:.3em;color:var(--ink-40)}
.author p{margin-top:18px;font-size:13px;font-weight:350;line-height:1.9;color:var(--ink-55)}

/* 다른 홀 */
.others{max-width:1240px;margin:0 auto}
.other-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:50px}
.other-card .ph{aspect-ratio:4/5;overflow:hidden;margin-bottom:16px}
.other-card h3{font-size:15px;font-weight:500;letter-spacing:.06em;text-align:center;color:var(--ink-90)}
.other-card span{display:block;margin-top:6px;font-size:10.5px;font-weight:300;letter-spacing:.3em;text-align:center;color:var(--ink-40)}

/* CTA */
.cta{text-align:center}
.cta h2{font-size:clamp(22px,3vw,36px);font-weight:150;color:var(--ink-90);letter-spacing:.04em}
.cta p{margin-top:18px;font-size:13px;font-weight:300;letter-spacing:.14em;color:var(--ink-55)}
.cta .btn{display:inline-block;margin-top:40px;padding:18px 54px;background:var(--ink);color:#fff;
  font-size:12px;font-weight:500;letter-spacing:.4em;text-indent:.4em;border:0}

/* ── 라이트박스 ── */
#lightbox{position:fixed;inset:0;z-index:120;background:rgba(20,19,17,.94);display:none;
  align-items:center;justify-content:center}
#lightbox.open{display:flex}
#lightbox img{max-width:88vw;max-height:86vh;width:auto;height:auto;object-fit:contain}
#lightbox .lb-btn{position:absolute;background:none;border:0;color:#fff;cursor:pointer;font-size:30px;opacity:.8}
#lightbox .lb-btn:hover{opacity:1}
#lightbox .lb-close{top:24px;right:30px;font-size:22px;letter-spacing:.2em}
#lightbox .lb-prev{left:24px}
#lightbox .lb-next{right:24px}

/* ── reveal 페이드인 ── */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}
.reveal.in-view{opacity:1;transform:none}

/* ── 푸터 ── */
footer{background:var(--ivory);border-top:1px solid var(--hair);padding:9vh 6vw 5vh;text-align:center}
footer .wordmark{font-size:clamp(28px,4.4vw,50px);font-weight:100;letter-spacing:.12em}
footer nav{margin-top:4vh;display:flex;justify-content:center;flex-wrap:wrap;gap:2.4vw;font-size:10.5px;font-weight:400;letter-spacing:.28em;color:var(--ink-50)}
footer .biz{margin-top:4vh;font-size:11px;font-weight:300;line-height:2;color:var(--ink-35)}

/* ── 반응형 ── */
@media(max-width:820px){
  .hero{flex-direction:column}.hero .half{width:100%;height:50%}
  .cats,.journal .cards,.other-grid{grid-template-columns:1fr}
  .about .portrait{position:static;width:70%;margin:0 auto 6vh}
  .site-head nav{display:none}
}
