/* ============================================================
   PH1603 서초 오뜨갤러리 — 공통 스타일
   Fonts: Pretendard(본문) / Cormorant Garamond(영문 타이틀)
   ============================================================ */
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css");
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Noto+Serif+KR:wght@400;500;600&display=swap");

:root{
  --green:#14234a; --green-deep:#0a1530; --green-soft:#26407a;
  --taupe:#7a7468; --sand:#e5e1d6; --sand-soft:#f5f3ee; --mist:#a3abc0;
  --lime:#f4c20d; --gold:#c9a227;
  --ink:#1c2827; --ink-soft:#56615f; --line:#ddd7d0; --white:#fff;
  --hd:96px; --maxw:1240px;
  --serif:"Cormorant Garamond","Times New Roman",serif;
  --sans:"Pretendard Variable",Pretendard,-apple-system,"Malgun Gothic",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);color:var(--ink);background:#fff;line-height:1.7;letter-spacing:-.01em;word-break:keep-all;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 28px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- Header ---------- */
.hd{position:fixed;inset:0 0 auto 0;height:var(--hd);z-index:60;color:#fff;border-bottom:1px solid rgba(255,255,255,.28);transition:background .3s,color .3s,border-color .3s,box-shadow .3s}
.hd:hover,.hd.is-solid{background:#fff;color:var(--ink);border-color:var(--line)}
.hd.is-solid{box-shadow:0 4px 24px rgba(10,21,48,.08)}
.hd .in{height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,2.6vw,44px);gap:16px}
.logo{display:flex;flex-direction:column;line-height:1.1;flex:none}
.logo b{font-family:var(--serif);font-weight:600;font-size:30px;letter-spacing:.34em;padding-left:.1em}
.logo small{font-size:11.5px;letter-spacing:-.02em;margin-top:5px;opacity:.9}
.gnb{display:flex;flex:1;justify-content:center;height:100%;min-width:0}
.gnb>li{position:relative;height:100%;display:flex;align-items:center}
.gnb>li>a{display:block;padding:0 clamp(10px,1.3vw,26px);font-size:16px;font-weight:500;height:100%;line-height:var(--hd);position:relative}
.gnb>li>a::after{content:"";position:absolute;left:50%;bottom:-1px;width:0;height:3px;background:var(--green);transition:.3s;transform:translateX(-50%)}
.gnb>li:hover>a::after,.gnb>li.on>a::after{width:44px}
.sub{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);background:#fff;color:var(--ink);min-width:210px;padding:16px 8px;border:1px solid var(--line);border-top:0;box-shadow:0 18px 40px rgba(10,21,48,.14);opacity:0;visibility:hidden;transition:.25s}
.sub.two{min-width:400px;display:grid;grid-template-columns:1fr 1fr}
.gnb>li:hover .sub{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.sub a{display:block;padding:8px 22px;font-size:14.5px;color:var(--ink-soft);white-space:nowrap;transition:.2s}
.sub a:hover{color:var(--green);background:var(--sand-soft)}
.hd-r{display:flex;align-items:center;gap:12px;flex:none}
.tel{display:inline-flex;align-items:center;gap:8px;border:1px solid currentColor;border-radius:99px;padding:8px 20px;font-weight:700;font-size:17px;letter-spacing:.02em}
.tel svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.btn-reg{background:#fff;color:var(--green);border-radius:99px;padding:10px 20px;font-weight:700;font-size:14.5px;transition:.3s}
.hd:hover .btn-reg,.hd.is-solid .btn-reg{background:var(--green);color:#fff}
.burger{display:none;width:44px;height:44px;position:relative}
.burger i{position:absolute;left:10px;right:10px;height:2px;background:currentColor;transition:.3s}
.burger i:nth-child(1){top:15px}.burger i:nth-child(2){top:21px}.burger i:nth-child(3){top:27px}

/* mobile menu */
.mnav{position:fixed;inset:0;z-index:70;background:var(--green-deep);color:#fff;padding:92px 28px 40px;overflow-y:auto;transform:translateX(100%);transition:transform .4s cubic-bezier(.7,0,.2,1)}
.mnav.open{transform:none}
.mnav .x{position:absolute;top:22px;right:22px;width:44px;height:44px;font-size:34px;line-height:1}
.mnav details{border-bottom:1px solid rgba(255,255,255,.14)}
.mnav summary{list-style:none;padding:18px 4px;font-size:21px;font-weight:600;display:flex;justify-content:space-between;cursor:pointer}
.mnav summary::-webkit-details-marker{display:none}
.mnav summary::after{content:"+";font-weight:300;font-size:26px;line-height:1}
.mnav details[open] summary::after{content:"–"}
.mnav details a{display:block;padding:9px 14px;color:rgba(255,255,255,.78);font-size:16px}
.mnav details div{padding-bottom:14px}
.mnav .mtel{margin-top:30px;display:flex;gap:10px}
.mnav .mtel a{flex:1;text-align:center;padding:14px;border-radius:8px;font-weight:700}
.mnav .mtel a:first-child{background:var(--gold)}.mnav .mtel a:last-child{background:#fff;color:var(--green)}

/* ---------- Hero (index) ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;color:#fff;overflow:hidden;
  background:linear-gradient(180deg,rgba(10,21,48,.35),rgba(10,21,48,.78)),radial-gradient(120% 90% at 70% 15%,#2f4f94 0,#14234a 55%,#060d20 100%)}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s}
.hero .bg.ok{opacity:1}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,21,48,.55) 0,rgba(10,21,48,.15) 40%,rgba(10,21,48,.72) 100%)}
.leaf-pattern{position:absolute;inset:0;z-index:0;opacity:.07;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 90 90'><g fill='none' stroke='white' stroke-width='1.2'><path d='M45 8 C70 26 70 64 45 82 C20 64 20 26 45 8Z'/><path d='M45 8V82M45 30 62 42M45 44 62 56M45 30 28 42M45 44 28 56'/></g></svg>");background-size:90px 90px}
.hero .wrap{position:relative;z-index:2;padding-top:var(--hd)}
.hero .eyebrow{font-family:var(--serif);letter-spacing:.42em;font-size:15px;opacity:.9;margin-bottom:20px}
.hero h1{font-size:clamp(34px,5.4vw,78px);font-weight:300;line-height:1.18;letter-spacing:-.03em}
.hero h1 strong{font-weight:800;display:block}
.hero h1 em{font-style:normal;color:var(--lime);font-weight:800}
.hero .lede{margin-top:26px;font-size:clamp(15px,1.3vw,19px);opacity:.92;max-width:560px}
.hero .pts{position:absolute;right:max(28px,calc((100vw - var(--maxw))/2 + 28px));bottom:20%;z-index:2;text-align:right;border-top:1px solid rgba(255,255,255,.55);padding-top:22px;min-width:300px}
.hero .pts p{font-size:19px;margin:10px 0;font-weight:500}
.hero .pts p b{color:var(--lime);font-weight:800}
.hero .scroll{position:absolute;left:44px;bottom:36px;z-index:2;font-family:var(--serif);letter-spacing:.3em;font-size:13px;display:flex;align-items:center;gap:14px}
.hero .scroll::after{content:"";width:70px;height:1px;background:#fff}
.badges{position:absolute;right:44px;top:calc(var(--hd) + 56px);z-index:3;display:flex;flex-direction:column;gap:22px}
.badge{position:relative;width:132px;height:132px;display:grid;place-items:center;text-align:center;font-weight:800;font-size:15px;line-height:1.25;transition:transform .3s}
.badge:hover{transform:scale(1.06)}
.badge svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 26s linear infinite}
.badge svg text{font-size:13.5px;letter-spacing:.18em;fill:currentColor;font-family:var(--serif);font-weight:600}
.badge span{width:84px;height:84px;border-radius:50%;display:grid;place-items:center}
.badge.b1{color:#c7d0e6}.badge.b1 span{background:var(--green);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.badge.b2{color:#fbeab0}.badge.b2 span{background:var(--lime);color:#14234a;font-size:17px}
@keyframes spin{to{transform:rotate(360deg)}}
.dots{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:14px}
.dots a{width:9px;height:9px;border-radius:50%;background:rgba(160,170,168,.55);transition:.3s;position:relative}
.dots a.on{background:var(--green);transform:scale(1.5)}
.dots.light a{background:rgba(255,255,255,.5)}.dots.light a.on{background:#fff}

/* ---------- Sub hero + tabs ---------- */
.shero{position:relative;padding:calc(var(--hd) + 84px) 0 70px;color:#fff;overflow:hidden;
  background:linear-gradient(120deg,var(--green-deep),var(--green) 60%,#2a4a8a)}
.shero .wrap{position:relative;z-index:1}
.shero .en{font-family:var(--serif);font-size:clamp(44px,7vw,92px);font-weight:500;line-height:1;letter-spacing:.01em}
.shero h1{font-size:clamp(20px,2vw,28px);font-weight:600;margin-top:14px}
.shero p{margin-top:12px;opacity:.82;max-width:640px;font-size:16px}
.crumb{font-size:13.5px;opacity:.7;margin-bottom:28px}
.crumb a:hover{text-decoration:underline}
.stabs{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:var(--hd);z-index:30}
.stabs .wrap{display:flex;overflow-x:auto;gap:4px;scrollbar-width:none}
.stabs a{flex:none;padding:18px 20px;font-size:15.5px;color:var(--ink-soft);position:relative;white-space:nowrap}
.stabs a.on{color:var(--green);font-weight:700}
.stabs a.on::after{content:"";position:absolute;left:20px;right:20px;bottom:-1px;height:3px;background:var(--green)}
.stabs a:hover{color:var(--green)}

/* ---------- Sections ---------- */
.sec{padding:clamp(70px,9vw,130px) 0}
.sec.alt{background:var(--sand-soft)}
.sec.dark{background:var(--green-deep);color:#fff}
.stitle{text-align:center;margin-bottom:clamp(40px,5vw,70px)}
.stitle .en{font-family:var(--serif);font-size:clamp(40px,6vw,86px);font-weight:500;line-height:1;color:var(--ink)}
.dark .stitle .en{color:#fff}
.stitle h2{font-size:clamp(18px,1.8vw,24px);font-weight:600;margin-top:16px;color:var(--green)}
.dark .stitle h2{color:var(--lime)}
.stitle p{margin-top:12px;color:var(--ink-soft);font-size:16.5px}
.dark .stitle p{color:rgba(255,255,255,.75)}
.lead{font-size:clamp(20px,2.3vw,32px);font-weight:300;line-height:1.5;text-align:center;margin-bottom:46px}
.lead b{font-weight:800;color:var(--green)}
.note{font-size:13px;color:var(--ink-soft);margin-top:18px;line-height:1.6}
.dark .note{color:rgba(255,255,255,.6)}

.fig{margin:0 0 30px;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.fig img{width:100%;height:auto}
.fig figcaption{padding:12px 18px;font-size:13.5px;color:var(--ink-soft);background:var(--sand-soft);border-top:1px solid var(--line)}
.imgslot{position:relative;width:100%;aspect-ratio:16/9;background:linear-gradient(135deg,#d9d3cb,#bdb5ab);border-radius:6px;overflow:hidden;display:grid;place-items:center;color:#fff;text-align:center}
.imgslot::before{content:"";position:absolute;inset:0;opacity:.18;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 90 90'><g fill='none' stroke='white' stroke-width='2'><path d='M45 8 C70 26 70 64 45 82 C20 64 20 26 45 8Z'/><path d='M45 8V82'/></g></svg>");background-size:60px}
.imgslot b{position:relative;font-family:var(--serif);font-size:30px;letter-spacing:.12em;font-weight:500}
.imgslot span{position:relative;display:block;font-size:13px;opacity:.9;margin-top:4px}
.imgslot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:34px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(30px,4vw,64px);align-items:center}
.split.rev{grid-template-columns:1fr 1.05fr}
.split>*,.grid2>*,.grid3>*,.grid4>*{min-width:0}

.tbl{width:100%;border-collapse:collapse;font-size:15.5px;background:#fff}
.tbl th,.tbl td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:center}
.tbl thead th{background:var(--taupe);color:#fff;font-weight:600;border-bottom:1px solid rgba(255,255,255,.3)}
.tbl tbody th{background:var(--sand-soft);font-weight:600;color:var(--ink)}
.tbl tr.sum td,.tbl tr.sum th{background:var(--sand);font-weight:800}
.tbl td.l,.tbl th.l{text-align:left}
.tbl-scroll{overflow-x:auto;border-radius:6px;border:1px solid var(--line)}
.tbl-scroll .tbl{min-width:640px}
.tbl em{font-style:normal;color:#b22d2d;font-weight:700}

.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px 28px;transition:.3s}
.card:hover{border-color:var(--green);box-shadow:0 14px 34px rgba(20,35,74,.12);transform:translateY(-3px)}
.card.fill{background:var(--green);color:#fff;border-color:var(--green)}
.card h3{font-size:20px;font-weight:700;margin-bottom:10px}
.card p{font-size:15px;color:var(--ink-soft)}
.card.fill p{color:rgba(255,255,255,.85)}
.card .k{font-family:var(--serif);font-size:44px;line-height:1;color:var(--green);margin-bottom:12px}
.card.fill .k{color:var(--lime)}
.chip{display:inline-block;background:var(--sand-soft);border:1px solid var(--line);color:var(--green);font-size:13px;font-weight:700;padding:4px 12px;border-radius:99px;margin-bottom:12px}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats div{padding:46px 20px;text-align:center;border-left:1px solid var(--line);min-width:0}
.stats div:first-child{border-left:0}
.stats .n{font-family:var(--serif);font-size:clamp(46px,5.4vw,78px);line-height:1;color:var(--green);font-weight:500}
.stats .n small{font-size:.28em;margin-left:6px;font-family:var(--sans);font-weight:700;white-space:nowrap}
.stats p{margin-top:12px;color:var(--ink-soft);font-size:15px}

/* vertical panels (index) */
.panels{display:grid;grid-template-columns:repeat(4,1fr);min-height:640px}
.panel{position:relative;color:#fff;padding:60px 32px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:linear-gradient(180deg,#1c2f5c,#0a1735);transition:flex .4s}
.panel:nth-child(2){background:linear-gradient(180deg,#7a7468,#3d382f)}
.panel:nth-child(3){background:linear-gradient(180deg,#2a3552,#0e1630)}
.panel:nth-child(4){background:linear-gradient(180deg,#a98305,#3a2f05)}
.panel::before{content:"";position:absolute;inset:0;background:var(--pimg) center/cover;opacity:.55;transition:.6s;transform:scale(1.02)}
.panel:hover::before{opacity:.75;transform:scale(1.07)}
.panel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.62))}
.panel>*{position:relative;z-index:1}
.panel small{font-size:14px;opacity:.85}
.panel h3{font-size:clamp(22px,2vw,28px);font-weight:800;margin:6px 0 16px;line-height:1.3}
.panel li{font-size:14.5px;opacity:.9;padding-left:12px;position:relative;margin:4px 0}
.panel li::before{content:"-";position:absolute;left:0}
.vmore{display:inline-flex;align-items:center;gap:10px;margin-top:26px;font-family:var(--serif);font-size:19px}
.vmore i{width:30px;height:30px;border:1px solid #fff;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:12px}

/* community switcher */
.cm{position:relative;min-height:100vh;color:#fff;display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:#0a1226}
.cm .cbg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(3px) brightness(.5);transform:scale(1.05);transition:background-image .6s}
.cm .wrap{position:relative;z-index:1;text-align:center}
.cm .big{font-family:var(--serif);font-size:clamp(54px,10vw,150px);line-height:1;font-weight:500}
.cm .sub-t{font-size:clamp(16px,1.7vw,22px);margin-top:14px}
.cm .desc{margin:38px auto 0;text-align:center;max-width:520px}
.cm .desc h4{font-size:28px;font-weight:700}.cm .desc p{font-size:15px;opacity:.9;margin-top:8px}
.thumbs{display:flex;justify-content:center;gap:14px;margin-top:40px;flex-wrap:wrap}
.thumbs button{width:clamp(80px,9vw,118px);aspect-ratio:3/2;border:2px solid transparent;border-radius:3px;overflow:hidden;opacity:.62;transition:.3s;background:#1c2744}
.thumbs button img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.thumbs button.on{opacity:1;border-color:#fff}.thumbs button.on img{filter:none}
.cm .more{margin-top:46px}

/* bars */
.bars{display:grid;gap:7px}
.bar{display:grid;grid-template-columns:76px 1fr 56px;gap:12px;align-items:center;font-size:14.5px}
.bar .t{height:16px;background:#e9e5df;border-radius:99px;overflow:hidden}
.bar .t i{display:block;height:100%;width:0;background:var(--mist);border-radius:99px;transition:width 1.2s cubic-bezier(.2,.7,.2,1)}
.bar.hl .t i{background:var(--green)}.bar.hl{font-weight:800;color:var(--green)}
.bar span:last-child{text-align:right;font-variant-numeric:tabular-nums}
.vbars{display:flex;align-items:flex-end;gap:18px;height:240px;padding:0 10px;border-bottom:1px solid var(--line)}
.vbars div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;font-size:14px}
.vbars i{display:block;width:100%;max-width:70px;background:var(--green);border-radius:4px 4px 0 0;height:0;transition:height 1.2s cubic-bezier(.2,.7,.2,1)}
.vbars div:nth-child(odd) i{background:var(--taupe)}
.vbars b{font-family:var(--serif);font-size:22px;margin-bottom:6px}
.vlabels{display:flex;gap:18px;padding:10px 10px 0;font-size:13.5px;color:var(--ink-soft)}.vlabels span{flex:1;text-align:center}

/* premium list */
.prem{display:grid;grid-template-columns:1fr 1fr;gap:0 70px}
.prem li{display:grid;grid-template-columns:62px 1fr;gap:20px;align-items:center;padding:30px 0;border-bottom:1px dotted #bbb}
.prem .no{font-family:var(--serif);font-size:15px;border:1px solid var(--taupe);color:var(--taupe);text-align:center;padding:3px 0;letter-spacing:.06em;grid-column:1/-1;width:112px}
.prem li{grid-template-columns:1fr}
.prem small{color:var(--ink-soft);font-size:15px;display:block;margin-top:12px}
.prem h3{font-size:clamp(21px,2.1vw,28px);font-weight:800;color:var(--green);letter-spacing:-.03em}
.premlogo{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-weight:800;font-size:clamp(26px,3vw,40px);color:var(--green);line-height:1.3;padding:30px}
.premlogo b{font-family:var(--serif);font-size:1.9em;color:var(--lime);letter-spacing:.06em;font-weight:600}

/* timeline-like list */
.dl{display:grid;gap:0}
.dl div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:18px 6px;border-bottom:1px solid var(--line);font-size:16px}
.dl dt{font-weight:700;color:var(--green)}
.checks li{position:relative;padding:8px 0 8px 28px;font-size:16px}
.checks li::before{content:"";position:absolute;left:4px;top:17px;width:9px;height:9px;border-radius:50%;background:var(--lime);outline:3px solid rgba(244,194,13,.25)}
.arrowbox{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:34px}
.pill-link{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--green);color:var(--green);border-radius:99px;padding:13px 28px;font-weight:600;transition:.3s}
.pill-link:hover{background:var(--green);color:#fff}
.pill-link.solid{background:var(--green);color:#fff}.pill-link.solid:hover{background:var(--green-deep)}
.pagenav{display:flex;justify-content:space-between;gap:14px;margin-top:56px;padding-top:30px;border-top:1px solid var(--line)}
.pagenav a{display:block;padding:16px 22px;border:1px solid var(--line);border-radius:10px;min-width:200px;transition:.3s}
.pagenav a:hover{border-color:var(--green);color:var(--green)}
.pagenav small{display:block;color:var(--ink-soft);font-size:12.5px}
.pagenav a:last-child{text-align:right;margin-left:auto}

/* FAQ */
.faq details{border-bottom:1px solid var(--line);background:#fff}
.faq summary{list-style:none;cursor:pointer;padding:24px 56px 24px 8px;font-size:18px;font-weight:600;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:var(--serif);color:var(--green);font-size:24px;margin-right:16px;font-weight:600}
.faq summary::after{content:"+";position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:28px;font-weight:300;color:var(--taupe)}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:4px 56px 28px 44px;color:var(--ink-soft);font-size:16px}

/* Reviews */
.revgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.rev{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;position:relative}
.rev q{display:block;quotes:none;font-size:16px;line-height:1.75}
.rev q::before{content:"“";font-family:var(--serif);font-size:54px;color:var(--lime);display:block;line-height:.6;margin-bottom:8px}
.rev footer{margin-top:18px;font-size:13.5px;color:var(--ink-soft)}
.rev .st{color:var(--gold);letter-spacing:2px;margin-bottom:6px;font-size:15px}
.empty{grid-column:1/-1;text-align:center;border:1px dashed var(--mist);border-radius:14px;padding:46px 20px;color:var(--ink-soft);background:#fff}

/* Form */
.form{background:#fff;border:1px solid var(--line);border-radius:16px;padding:clamp(26px,4vw,48px);max-width:720px;margin:0 auto;box-shadow:0 20px 50px rgba(20,35,74,.08)}
.form h3{font-size:24px;margin-bottom:6px}
.form .sub-p{color:var(--ink-soft);margin-bottom:26px;font-size:15px}
.f-row{display:grid;gap:8px;margin-bottom:18px}
.f-row label{font-weight:600;font-size:14.5px}
.f-row input,.f-row select,.f-row textarea{width:100%;padding:15px 16px;border:1px solid #cfc9c2;border-radius:10px;font:inherit;background:#fff;transition:.2s}
.f-row input:focus,.f-row select:focus,.f-row textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 3px rgba(20,35,74,.12)}
.f-row textarea{min-height:110px;resize:vertical}
.f-ck{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-soft);margin:6px 0 22px}
.f-ck input{margin-top:5px;accent-color:var(--green)}
.f-ck a{text-decoration:underline;color:var(--green)}
.hp{position:absolute;left:-9999px;opacity:0}
.btn-submit{width:100%;background:var(--green);color:#fff;padding:18px;border-radius:12px;font-size:17px;font-weight:700;transition:.3s}
.btn-submit:hover{background:var(--green-deep)}
.cta-band{background:linear-gradient(120deg,var(--green-deep),var(--green));color:#fff;text-align:center;padding:70px 0}
.cta-band h2{font-size:clamp(24px,3vw,38px);font-weight:300}.cta-band h2 b{font-weight:800}
.cta-band .big-tel{font-family:var(--serif);font-size:clamp(44px,6vw,76px);letter-spacing:.04em;margin:14px 0 22px;display:block}

/* ---------- Footer ---------- */
.ft{background:#08102a;color:rgba(255,255,255,.72);padding:60px 0 120px;font-size:14px}
.ft .top{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.14)}
.ft .logo b{color:#fff}.ft .logo small{color:rgba(255,255,255,.7)}
.ft nav{display:flex;gap:22px;flex-wrap:wrap;font-size:14px}
.ft nav a:hover{color:#fff}
.ft select{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;padding:10px 14px;border-radius:6px;font:inherit;min-width:220px}
.ft select option{color:#000}
.ft .info{margin-top:28px;display:grid;gap:6px;line-height:1.8}
.ft .law{margin-top:22px;font-size:12.5px;opacity:.7;line-height:1.75}
.ft .copy{margin-top:22px;opacity:.55;font-size:12.5px}

/* floating */
.fcta{position:fixed;right:22px;bottom:26px;z-index:55;display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.fcta a,.fcta button{display:inline-flex;align-items:center;gap:8px;padding:13px 20px;border-radius:99px;font-weight:700;font-size:14.5px;box-shadow:0 10px 26px rgba(0,0,0,.22);transition:.3s}
.fcta .p{background:var(--gold);color:#fff}.fcta .q{background:var(--green);color:#fff}
.fcta .t{background:#fff;color:var(--green);width:46px;height:46px;padding:0;justify-content:center;font-size:18px;opacity:0;pointer-events:none}
.fcta .t.show{opacity:1;pointer-events:auto}
.fcta a:hover{transform:translateY(-2px)}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s,transform .9s}
.reveal.in{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .gnb,.hd-r .btn-reg{display:none}
  .burger{display:block}
  .hd .in{padding:0 20px}
  .hero .pts{display:none}
  .badges{flex-direction:row;right:20px}
  .badge{width:96px;height:96px;font-size:12px}.badge span{width:62px;height:62px}.badge svg text{font-size:12px}
  .badge.b2 span{font-size:13px}
}
@media (max-width:900px){
  .grid2,.grid3,.grid4,.split,.split.rev,.prem,.revgrid{grid-template-columns:1fr}
  .panels{grid-template-columns:1fr 1fr;min-height:0}.panel{min-height:420px;padding:40px 22px}
  .stats{grid-template-columns:1fr 1fr}.stats div{border-top:1px solid var(--line);padding:34px 10px}.stats div:nth-child(odd){border-left:0}.stats .n{font-size:clamp(34px,8vw,64px)}
  .dl div{grid-template-columns:1fr;gap:4px}
  .dots{display:none}
}
@media (max-width:720px){
  :root{--hd:68px}
  .logo b{font-size:22px}.logo small{font-size:10px}
  .tel{padding:6px 12px;font-size:14px}
  .hero .scroll{display:none}
  .badges{top:auto;bottom:80px;right:14px}.badge{width:82px;height:82px}.badge span{width:52px;height:52px;font-size:11px}.badge.b2 span{font-size:9.5px}.badge svg text{font-size:11px}
  .panels{grid-template-columns:1fr}
  .stabs a{padding:15px 14px;font-size:14.5px}
  .shero{padding:calc(var(--hd) + 50px) 0 46px}
  .pagenav{flex-direction:column}.pagenav a{min-width:0;width:100%}.pagenav a:last-child{margin:0}
  .faq summary{font-size:16px;padding-right:40px}.faq .a{padding:4px 12px 24px 12px}
  .fcta{right:0;left:0;bottom:0;flex-direction:row;gap:0}
  .fcta a{flex:1;justify-content:center;border-radius:0;padding:18px 10px;box-shadow:none;font-size:15.5px}
  .fcta .t{position:fixed;right:14px;bottom:78px;border-radius:50%}
  .ft{padding-bottom:100px}
  .cm .thumbs{margin-top:34px}
  .bar{grid-template-columns:62px 1fr 48px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.badge svg{animation:none}
}

/* ---- PH1603 overrides ---- */
.imgslot{background:linear-gradient(135deg,#d5d9e6,#a6aec6)}
.cm .cbg{background-image:radial-gradient(110% 90% at 72% 18%,#2f4f94 0,#14234a 48%,#060d20 100%);filter:none}
.cm .cbg[style*="url"]{filter:blur(3px) brightness(.5)}
.thumbs button.txt{width:auto;aspect-ratio:auto;padding:12px 22px;border:1px solid rgba(255,255,255,.38);border-radius:99px;background:transparent;color:#fff;font-size:15px;font-weight:600;opacity:.75}
.thumbs button.txt.on{background:var(--lime);color:#14234a;border-color:var(--lime);opacity:1}
.panel::after{background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.55))}
.btn-reg,.fcta .q{letter-spacing:-.01em}
.hero .lede b{color:var(--lime)}
.chip.y{background:var(--lime);border-color:var(--lime);color:#14234a}

/* ---- 메인 팝업 ---- */
.promo{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(6,13,32,.72);backdrop-filter:blur(3px);opacity:0;transition:opacity .35s}
.promo[hidden]{display:none}
.promo.show{opacity:1}
.promo-box{position:relative;width:min(92vw,760px);transform:translateY(14px) scale(.98);transition:transform .45s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 24px 60px rgba(0,0,0,.5))}
.promo.show .promo-box{transform:none}
.promo-img{display:block;border-radius:10px 10px 0 0;overflow:hidden;line-height:0}
.promo-img img{width:100%;height:auto;display:block}
.promo-x{position:absolute;top:1.6%;right:1.6%;width:8%;aspect-ratio:1;border-radius:50%;background:transparent;border:0;cursor:pointer}
.promo-x:focus-visible,.promo-bar button:focus-visible,.promo-img:focus-visible{outline:3px solid var(--lime);outline-offset:2px}
.promo-bar{display:flex;background:#14234a;border-radius:0 0 10px 10px;overflow:hidden}
.promo-bar button{flex:1;padding:15px 10px;color:#fff;font-size:15px;font-weight:600;transition:background .2s}
.promo-bar button+button{border-left:1px solid rgba(255,255,255,.18)}
.promo-bar button:hover{background:#0a1530}
@media (max-width:720px){.promo{padding:12px}.promo-bar button{padding:14px 6px;font-size:14px}}
@media (prefers-reduced-motion:reduce){.promo,.promo-box{transition:none}}
.promo-box:focus{outline:0}

/* ---- 방문 후기 (베이지·세리프 카드 스타일) ---- */
.rv-sec{background:#ece4d4}
.rv-head{text-align:center;margin-bottom:clamp(34px,4.5vw,56px)}
.rv-head h2{font-family:"Noto Serif KR","Nanum Myeongjo",serif;font-weight:500;font-size:clamp(26px,3.3vw,42px);letter-spacing:-.02em;color:#1d2230;line-height:1.3}
.rv-head h2 em{font-style:normal;color:#8a6d2f}
.rv-head p{margin-top:14px;color:#5a5448;font-size:clamp(14px,1.3vw,16px)}
.rv-sec .revgrid{gap:clamp(16px,2vw,22px)}
.rv2{display:flex;flex-direction:column;background:#faf6ee;border:1px solid #e0d6c3;border-radius:4px;padding:clamp(24px,2.6vw,32px) clamp(22px,2.4vw,28px) 22px;min-height:290px;transition:transform .3s,box-shadow .3s}
.rv2:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(90,70,30,.12)}
.rv2-st{color:#a98c4d;letter-spacing:3px;font-size:15px;margin-bottom:18px}
.rv2 blockquote{font-family:"Noto Serif KR","Nanum Myeongjo",serif;font-size:15.5px;line-height:1.85;color:#3b362d;flex:1;word-break:keep-all}
.rv2 footer{display:flex;align-items:center;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid #e3d9c6}
.rv2-av{flex:none;width:36px;height:36px;border-radius:50%;background:#eadfc8;border:1px solid #d8c9a6;color:#8a6d2f;display:grid;place-items:center;font-family:"Noto Serif KR",serif;font-size:15px}
.rv2 footer b{display:block;font-size:14px;color:#1d2230;line-height:1.3}
.rv2 footer small{display:block;font-size:12.5px;color:#7a7364;margin-top:2px}
.rv2.is-sample{border-style:dashed;border-color:#b9a77a}
.rv2.is-sample::before{content:"SAMPLE · 실제 후기 아님";align-self:flex-start;margin-bottom:12px;font-size:11px;font-weight:700;letter-spacing:.04em;color:#8a6d2f;border:1px solid #c9b88a;border-radius:99px;padding:2px 10px}
.rv-note{margin-top:26px;text-align:center;font-size:12.5px;color:#6f6858}
.rv-sec .empty{background:#faf6ee;border:1px dashed #b9a77a;color:#5a5448}
