/* 여수 예비신부관리 · 웨디아 여수웅천점 — Clean White/Black/Gray */
:root{
  --bg:#FFFFFF; --sub:#F5F5F5; --text:#1A1A1A; --muted:#6B6B6B;
  --primary:#1A1A1A; --primary-d:#333333; --accent:#8F8F8F; --border:#E0E0E0;
  --card:#FFFFFF; --rd:2px;
  --mx:1240px; --px:clamp(1.25rem,5vw,3.5rem); --py:clamp(3.5rem,8vw,6rem);
  --ease:cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
body,p,h1,h2,h3,h4,h5,h6,li,td,th,a,span,div,button{word-break:keep-all;overflow-wrap:break-word}
html{scroll-behavior:smooth}
body{font-family:'Pretendard',-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
.g6-mono img{filter:grayscale(100%) contrast(1.03);transition:filter .5s var(--ease)}
.g6-mono .card:hover img{filter:grayscale(0) contrast(1)}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
.w{max-width:var(--mx);margin:0 auto;padding-left:var(--px);padding-right:var(--px)}
.py{padding-top:var(--py);padding-bottom:var(--py)}
.bg-sub{background:var(--sub)}
h1,h2{font-family:'Cormorant Garamond',serif;font-weight:600;letter-spacing:.01em;line-height:1.3}
h3{font-weight:700;letter-spacing:-.01em;line-height:1.35}
h2{font-size:clamp(1.7rem,3.4vw,2.5rem);margin-bottom:.75rem}
h3{font-size:1.15rem}
.kicker{font-size:.8rem;letter-spacing:.12em;color:var(--accent);font-weight:700;text-transform:uppercase;margin-bottom:.5rem}
.lead{color:var(--muted);font-size:1rem;max-width:640px}
.max-prose{max-width:68ch}
p{margin-bottom:1rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.85rem 1.6rem;border-radius:var(--rd);font-weight:700;font-size:.95rem;transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-d)}
.btn-outline{background:transparent;color:var(--text);border:1px solid var(--border);font-weight:500;letter-spacing:.03em;padding:.8rem 1.8rem}
.btn-outline:hover{border-color:var(--primary);color:var(--primary)}

/* ── Header ── */
.hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);transition:background .3s var(--ease),border-color .3s var(--ease)}
.hd-in{max-width:var(--mx);margin:0 auto;padding:.9rem var(--px);display:flex;align-items:center;justify-content:space-between}
.hd-logo{font-weight:800;font-size:1.05rem;letter-spacing:-.01em;transition:color .3s var(--ease)}
.hd-logo span{color:var(--primary);transition:color .3s var(--ease)}

/* 헤더는 항상 화이트 고정 바 — 히어로와 겹치지 않고 그 위에 자리잡음 (참고 이미지 방식) */

/* ── Hero ── */
.hero{position:relative;height:min(78vh,640px);min-height:420px;overflow:hidden}
.hero-slide{position:absolute;inset:0;transform:translateX(100%);transition:transform .9s var(--ease)}
.hero-slide.active{transform:translateX(0)}
.hero-slide.prev{transform:translateX(-100%)}
.hero-slide img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(1.05)}
.hero-ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.68));display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(1.5rem,5vw,3.5rem)}
.hero-ov .kicker{color:var(--accent)}
.hero-ov h1{color:#fff;font-size:clamp(1.8rem,4.5vw,2.8rem);margin-bottom:.9rem}

/* ── 메인 히어로 중앙 정렬 (한글 h1 작게 + 영문 스택 크게) ── */
.hero-ov-center{align-items:center;text-align:center;justify-content:center;gap:1.4rem;background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.45),rgba(0,0,0,.6))}
.hero-ov-center .kicker{justify-content:center;display:flex}
.hero-ov-center h1{font-size:.95rem;font-weight:500;letter-spacing:.06em;color:rgba(255,255,255,.88);margin-bottom:0;font-family:inherit}
.hero-stack{display:flex;flex-direction:column;gap:0;line-height:1.05}
.hero-stack span{font-family:'Pretendard',sans-serif;font-weight:800;font-size:clamp(2.6rem,8vw,5.6rem);color:#fff;letter-spacing:.02em}
.hero-btns{display:flex;gap:.75rem;flex-wrap:wrap}
.hero-btns .btn-outline{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.5)}
.hero-dots{position:absolute;bottom:1.2rem;right:1.5rem;display:flex;gap:.4rem}
.hero-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.45)}
.hero-dot.active{background:#fff}
.hero-sub{position:relative;height:min(52vh,440px);min-height:320px;overflow:hidden}
.hero-sub img{width:100%;height:100%;object-fit:cover}

.bc{font-size:.82rem;color:var(--muted);padding:.9rem var(--px);max-width:var(--mx);margin:0 auto}
.bc a:hover{color:var(--primary)}

/* ── Grids : 명시적 컬럼 수, auto-fit 금지 ── */
.g6{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.g4{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
@media(max-width:900px){.g6,.g3{grid-template-columns:repeat(2,1fr)}.g2{grid-template-columns:1fr}}
@media(max-width:480px){.g4{grid-template-columns:1fr}}

/* ── Gallery (단일사진, lightbox) ── */
.gal-fig{position:relative;border-radius:var(--rd);overflow:hidden;cursor:zoom-in;background:var(--card);border:1px solid var(--border)}
.gal-fig img{aspect-ratio:4/5;object-fit:cover;transition:transform .4s var(--ease)}
.gal-fig:hover img{transform:scale(1.04)}

/* ── Gallery marquee (양옆으로 천천히 무한 이동) ── */
.marquee-wrap{overflow:hidden;width:100%}
.marquee-track{display:flex;gap:1.5rem;width:max-content;padding:0 var(--px);animation:marquee-scroll 48s linear infinite}
.marquee-wrap:hover .marquee-track{animation-play-state:paused}
.marquee-track .gal-fig{flex:0 0 clamp(200px,22vw,280px)}
@keyframes marquee-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}}

/* ── Card ── */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--rd);overflow:hidden;transition:border-color .2s var(--ease),transform .2s var(--ease)}
.card:hover{border-color:var(--accent);transform:translateY(-3px)}
.card img{aspect-ratio:4/5;object-fit:cover}
.card-body{padding:1.1rem 1.2rem}
.card-badge{display:inline-block;font-size:.72rem;color:var(--primary);font-weight:700;margin-bottom:.4rem}
.card h3{font-size:1.02rem;margin-bottom:.35rem}
.card p{font-size:.86rem;color:var(--muted);margin-bottom:0}

/* ── 정사각 오버레이 카드 (Program 섹션) ── */
.g6-sq{grid-template-columns:repeat(3,1fr)}
.card-sq{position:relative;aspect-ratio:1/1;border-color:transparent}
.card-sq img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:1/1;object-fit:cover}
.card-sq::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 42%,rgba(0,0,0,.8) 100%);pointer-events:none}
.card-sq-ov{position:absolute;left:0;right:0;bottom:0;padding:1.5rem 1.4rem;z-index:2}
.card-sq-ov .card-badge{color:rgba(255,255,255,.8);margin-bottom:.3rem}
.card-sq-ov h3{color:#fff;margin-bottom:0;font-size:1.1rem;font-weight:700;letter-spacing:-.01em}
@media(max-width:900px){.g6-sq{grid-template-columns:repeat(2,1fr)}}

.info-card{background:var(--card);border:1px solid var(--border);border-radius:var(--rd);padding:1.4rem}
.info-card h3{margin-bottom:.5rem;font-size:1rem}
.info-card p{font-size:.88rem;color:var(--muted);margin-bottom:0}

.proc-step{display:flex;gap:1.2rem;padding:1.6rem 0;border-bottom:1px solid var(--border)}
.proc-step:last-child{border-bottom:none}
.proc-num{font-size:1.6rem;font-weight:800;color:var(--accent);min-width:2.4rem}
@media(max-width:768px){.proc-step{flex-direction:column;gap:.5rem}}

/* ── FAQ (native details, JS 불필요) ── */
.faq-item{border-bottom:1px solid var(--border)}
.faq-item summary{list-style:none;padding:1.2rem 0;font-weight:700;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';font-size:1.3rem;color:var(--accent);flex-shrink:0}
.faq-item[open] summary::after{content:'–'}
.faq-a{padding:0 0 1.2rem;color:var(--muted);font-size:.92rem}

/* ── CTA band ── */
.cta{background:var(--primary);color:#fff;text-align:center;padding:var(--py) var(--px)}
.cta h2{color:#fff}
.cta p{color:rgba(255,255,255,.82);margin-bottom:1.4rem}
.cta .btn-outline{color:#fff;border-color:rgba(255,255,255,.5)}
.cta .btn-outline:hover{background:rgba(255,255,255,.12)}

/* ── Reviews carousel ── */
.rv-sec{position:relative;background-size:cover;background-position:center;padding:var(--py) 0}
.rv-sec::before{content:'';position:absolute;inset:0;background:linear-gradient(rgba(10,10,10,.62),rgba(10,10,10,.72))}
.rv-sec .section-head{position:relative;z-index:2}
.rv-sec .kicker{color:#d8d3cc}
.rv-sec h2{color:#fff}
.rv-outer{position:relative;max-width:var(--mx);margin:0 auto;padding:0 var(--px)}
.rv-track{display:flex;gap:1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;position:relative;z-index:2}
.rv-track::-webkit-scrollbar{display:none}
.rv-card{flex:0 0 calc((100% - 3rem)/3);scroll-snap-align:center;background:rgba(255,255,255,.97);border-radius:var(--rd);padding:1.8rem 1.6rem 1.4rem;display:flex;flex-direction:column;min-height:280px}
@media(max-width:900px){.rv-card{flex:0 0 calc((100% - 1.5rem)/2)}}
@media(max-width:600px){.rv-card{flex:0 0 100%}}
.rv-tag{display:inline-block;align-self:flex-start;font-size:.7rem;color:#fff;background:var(--text);font-weight:700;letter-spacing:.04em;padding:.25rem .6rem;border-radius:2px;margin-bottom:1rem}
.rv-quote{font-size:.86rem;color:var(--muted);line-height:1.75;margin-bottom:1rem;flex:1}
.rv-id{font-size:.76rem;color:var(--accent);font-weight:700}
.rv-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;z-index:5;color:var(--text)}
.rv-prev{left:-.5rem}
.rv-next{right:-.5rem}
@media(max-width:768px){.rv-nav{display:none}}
.rv-dots{display:flex;justify-content:center;gap:.4rem;margin-top:1.6rem;position:relative;z-index:2}
.rv-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.4);cursor:pointer}
.rv-dot.active{background:#fff}

/* ── Map ── */
.map-wrap{display:grid;grid-template-columns:1fr 1.5fr;gap:2rem;align-items:stretch}
.map-info dt{font-size:.78rem;color:var(--accent);font-weight:700;margin-top:1rem}
.map-info dd{font-size:.92rem;margin-bottom:.2rem}
.map-frame{border:1px solid var(--border);border-radius:var(--rd);overflow:hidden;min-height:320px}
.map-frame iframe{width:100%;height:100%;min-height:320px;border:0}
@media(max-width:900px){.map-wrap{grid-template-columns:1fr}}

/* ── Footer ── */
.ft{background:var(--text);color:#e5e5e5;padding:var(--py) var(--px) 1.5rem}
.ft-grid{max-width:var(--mx);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;margin-bottom:2.5rem}
.ft h4{color:#fff;font-size:.85rem;letter-spacing:.06em;margin-bottom:.9rem}
.ft-brand{font-weight:800;color:#fff;font-size:1.1rem;margin-bottom:.6rem}
.ft p,.ft li,.ft a{font-size:.86rem;color:#b3b3b3}
.ft a:hover{color:#fff}
.ft ul{list-style:none}
.ft li{margin-bottom:.5rem}
.ft-bottom{max-width:var(--mx);margin:0 auto;border-top:1px solid rgba(255,255,255,.12);padding-top:1.2rem;font-size:.78rem;color:#8f8f8f;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
@media(max-width:768px){.ft-grid{grid-template-columns:1fr}}

/* ── Floating buttons ── */
.float-wrap{position:fixed;right:1.1rem;bottom:1.1rem;z-index:60;display:flex;flex-direction:column;gap:.6rem}
.float-btn{width:52px;height:52px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.28)}
.float-top{background:#fff;color:var(--primary);border:1px solid var(--border);opacity:0;pointer-events:none;transition:opacity .2s}
.float-top.show{opacity:1;pointer-events:auto}

/* ── Lightbox ── */
.lb{position:fixed;inset:0;background:rgba(20,12,10,.92);z-index:100;display:none;align-items:center;justify-content:center;padding:2rem}
.lb.open{display:flex}
.lb img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:var(--rd)}
.lb-close{position:absolute;top:1.2rem;right:1.5rem;color:#fff;font-size:2rem;line-height:1}

/* ── phone display reset ── */
.ph-enc,.ph-link{display:inline}

/* ── util ── */
.tac{text-align:center}
.section-head{max-width:640px;margin:0 auto 2.5rem;text-align:center}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;text-align:center}
@media(max-width:600px){.stat-row{grid-template-columns:1fr}}
.stat-num{font-size:2rem;font-weight:800;color:var(--primary)}
.stat-lbl{font-size:.82rem;color:var(--muted)}
table{width:100%;border-collapse:collapse}
.tbl-wrap{overflow-x:auto}
th,td{padding:.6rem .8rem;border-bottom:1px solid var(--border);font-size:.88rem;text-align:left}

@media(max-width:768px){
  .hero-btns{width:100%}
  .hero-btns .btn{flex:1}
  body{padding-bottom:0}
}
