@charset "utf-8";
/* ==========================================================================
   SERENO SAMSEONG — 분양 홍보사이트 공용 스타일
   럭셔리앤(주) · 화면설계서 4. 디자인 시스템 기준
   ========================================================================== */

/* ---------- fonts (self-hosted, KS X 1001 2,350자 서브셋) ---------- */
@font-face{
  font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('/assets/fonts/cormorant-garamond-var.woff2') format('woff2-variations'),
      url('/assets/fonts/cormorant-garamond-var.woff2') format('woff2');
}
@font-face{
  font-family:'Cormorant Garamond';font-style:italic;font-weight:300 700;font-display:swap;
  src:url('/assets/fonts/cormorant-garamond-italic-var.woff2') format('woff2-variations'),
      url('/assets/fonts/cormorant-garamond-italic-var.woff2') format('woff2');
}
@font-face{
  font-family:'Noto Serif KR';font-style:normal;font-weight:200 900;font-display:swap;
  src:url('/assets/fonts/noto-serif-kr-var.woff2') format('woff2-variations'),
      url('/assets/fonts/noto-serif-kr-var.woff2') format('woff2');
}
@font-face{
  font-family:'Pretendard';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('/assets/fonts/pretendard-var.woff2') format('woff2-variations'),
      url('/assets/fonts/pretendard-var.woff2') format('woff2');
}

/* ---------- tokens ---------- */
:root{
  --mist:#E8EBE5; --mist-2:#DFE3DC; --mist-3:#D5DAD2;
  --pine:#1B241F; --pine-2:#243029; --pine-3:#2E3A32;
  --ink:#14181A; --ink-2:#3B4540; --ivory:#F4F1EA;
  --bronze:#9A7B4F; --bronze-2:#C9AE7F; --bronze-3:#E8D6B3;
  --sage:#6F7B72;
  --line:rgba(20,24,26,.14); --line-2:rgba(20,24,26,.28);
  --line-d:rgba(244,241,234,.16); --line-d2:rgba(244,241,234,.34);
  --serif:'Noto Serif KR','Malgun Gothic','맑은 고딕',serif;
  --latin:'Cormorant Garamond','Times New Roman',serif;
  --sans:'Pretendard',-apple-system,BlinkMacSystemFont,'Malgun Gothic','맑은 고딕','Apple SD Gothic Neo',sans-serif;
  --max:1280px; --pad:clamp(20px,5vw,72px); --hdr-h:76px;
  --sec:clamp(96px,11vw,160px);
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- reset ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--hdr-h);-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);color:var(--ink);background:var(--mist);
  line-height:1.7;font-weight:400;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;word-break:keep-all;
}
img{display:block;max-width:100%;height:auto}
[hidden]{display:none!important}   /* .reg 등 display 지정 요소에서 hidden 속성이 무시되던 것 방지 */
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;background:none;border:0;color:inherit}
table{border-collapse:collapse}
:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}
::selection{background:var(--bronze);color:var(--ivory)}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--pine);color:var(--ivory);padding:12px 20px;font-size:14px}
.skip:focus{left:0}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* ---------- layout ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad);width:100%}
.wrap-wide{max-width:1560px;margin:0 auto;padding:0 var(--pad);width:100%}
section{padding:var(--sec) 0}
section.tight{padding:clamp(64px,7vw,104px) 0}

h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.015em}
h2{font-size:clamp(27px,3.2vw,44px);line-height:1.35}
h3{font-size:clamp(19px,1.7vw,24px);line-height:1.45}
.latin{font-family:var(--latin);font-weight:300}
.num{font-family:var(--latin);font-weight:400;font-variant-numeric:lining-nums tabular-nums}
p{overflow-wrap:break-word}

.section-head{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:clamp(16px,2vw,24px);margin-bottom:clamp(40px,5vw,72px)}
.section-head .idx{font-family:var(--latin);font-size:15px;letter-spacing:.12em;color:var(--bronze);white-space:nowrap}
.section-head .idx::after{content:"";display:inline-block;width:clamp(20px,3vw,40px);height:1px;background:var(--bronze);margin-left:14px;vertical-align:middle}
.lead{font-family:var(--serif);font-size:clamp(17px,1.35vw,20px);line-height:1.9;font-weight:300;max-width:34em}
.body-t{font-size:clamp(15px,1.1vw,16px);line-height:1.85;color:var(--ink-2);max-width:38em}
.muted{color:var(--sage)}
.cap{font-size:12px;color:var(--sage);margin-top:10px;letter-spacing:.01em}
figcaption{font-size:12px;color:var(--sage);margin-top:10px}

.dark{background:var(--pine);color:var(--ivory)}
.dark .section-head .idx,.dark .section-head .idx::after{color:var(--bronze-2)}
.dark .section-head .idx::after{background:var(--bronze-2)}
.dark .body-t{color:rgba(244,241,234,.82)}
.dark .cap,.dark figcaption,.dark .muted{color:rgba(244,241,234,.55)}
.mist2{background:var(--mist-2)}

/* ---------- header ---------- */
header{position:fixed;inset:0 0 auto 0;z-index:50;color:var(--ivory);
  transition:background .35s var(--ease),box-shadow .35s var(--ease)}
header.solid{background:rgba(27,36,31,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(244,241,234,.09)}
/* 밝은 배경 페이지(히어로 없음)에서는 항상 진한 헤더 */
body.hdr-solid header{background:rgba(27,36,31,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;height:var(--hdr-h)}
.brand{display:block;flex:0 0 auto}
.brand img{height:38px;width:auto}
.menu{display:flex;gap:clamp(16px,2.2vw,30px);font-size:14px;letter-spacing:.01em}
.menu a{opacity:.82;padding:6px 0;border-bottom:1px solid transparent;transition:opacity .25s,border-color .25s;white-space:nowrap}
.menu a:hover{opacity:1}
.menu a[aria-current="page"]{opacity:1;border-color:var(--bronze-2)}
.hdr-r{display:flex;gap:10px;align-items:center;flex:0 0 auto}
.call{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line-d2);padding:9px 18px;font-size:14px;transition:background .25s,border-color .25s}
.call:hover{background:var(--bronze);border-color:var(--bronze)}
.call .num{font-size:16px;letter-spacing:.04em}
.burger{display:none;width:42px;height:42px;place-items:center}
.burger span{display:block;width:22px;height:1px;background:currentColor;margin:4px 0}

.mobile-menu{position:fixed;inset:0;background:var(--pine);color:var(--ivory);z-index:60;
  padding:96px var(--pad) 40px;flex-direction:column;gap:4px;
  display:flex;visibility:hidden;opacity:0;transition:opacity .3s var(--ease),visibility .3s;overflow-y:auto}
.mobile-menu.open{visibility:visible;opacity:1}
.mobile-menu a{font-family:var(--serif);font-size:clamp(21px,5.5vw,27px);font-weight:300;padding:15px 0;border-bottom:1px solid var(--line-d);display:flex;align-items:baseline;gap:14px}
.mobile-menu a i{font-style:normal;font-family:var(--latin);font-size:13px;color:var(--bronze-2);letter-spacing:.1em}
.mobile-menu .x{position:absolute;top:24px;right:var(--pad);font-size:13px;letter-spacing:.2em;font-family:var(--sans);border:1px solid var(--line-d2);padding:9px 15px}
.mobile-menu .mm-tel{margin-top:28px;font-family:var(--latin);font-size:30px;color:var(--bronze-2);border:0;padding:0}
@media (max-width:1080px){.menu{display:none}.burger{display:grid}}
@media (max-width:560px){.call .label{display:none}.brand img{height:32px}}

/* ---------- hero (메인) ---------- */
.hero{position:relative;min-height:100svh;display:grid;align-items:end;color:var(--ivory);overflow:hidden;background:var(--pine)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(27,36,31,.52) 0%,rgba(27,36,31,.16) 26%,rgba(27,36,31,.6) 66%,rgba(27,36,31,.92) 100%)}
.hero .wrap{position:relative;z-index:1;padding-bottom:clamp(56px,8vw,110px);padding-top:calc(var(--hdr-h) + 40px);
  animation:rise 1.4s var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.hero .kicker{font-family:var(--serif);font-size:clamp(17px,1.8vw,24px);font-weight:300;margin-bottom:16px;letter-spacing:.01em}
.hero .word{font-family:var(--latin);font-weight:300;font-size:clamp(58px,11.5vw,168px);line-height:.92;letter-spacing:.06em;margin:0}
.hero .word em{font-style:italic;font-weight:300;letter-spacing:.03em}
.hero .meta{display:flex;flex-wrap:wrap;gap:6px 26px;margin-top:26px;font-size:14px;opacity:.92;list-style:none}
.hero .meta li{padding-left:14px;position:relative}
.hero .meta li::before{content:"";position:absolute;left:0;top:.78em;width:6px;height:1px;background:var(--bronze-2)}
.hero .cta{display:flex;gap:12px;margin-top:38px;flex-wrap:wrap}
.scroll-hint{position:absolute;right:var(--pad);bottom:40px;z-index:1;writing-mode:vertical-rl;
  font-family:var(--latin);letter-spacing:.3em;font-size:12px;opacity:.72;color:var(--ivory)}
.scroll-hint::after{content:"";display:block;width:1px;height:56px;background:currentColor;margin:12px auto 0;
  transform-origin:top;animation:drop 2.4s var(--ease) infinite}
@keyframes drop{0%{transform:scaleY(0);opacity:0}35%{transform:scaleY(1);opacity:1}75%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
@media (max-width:900px){.scroll-hint{display:none}}

/* ---------- page hero (서브) ---------- */
.page-hero{position:relative;min-height:clamp(360px,58svh,560px);display:grid;align-items:end;
  color:var(--ivory);overflow:hidden;background:var(--pine)}
.page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(27,36,31,.7) 0%,rgba(27,36,31,.3) 40%,rgba(27,36,31,.78) 78%,rgba(27,36,31,.93) 100%)}
.page-hero .wrap{position:relative;z-index:1;padding-top:calc(var(--hdr-h) + 48px);padding-bottom:clamp(40px,5vw,64px);
  animation:rise 1s var(--ease) both}
.crumb{font-size:12px;letter-spacing:.14em;color:var(--bronze-3);font-family:var(--latin);margin-bottom:14px}
.crumb span{opacity:.5;margin:0 8px}
.page-hero h1{font-size:clamp(32px,4.6vw,60px);line-height:1.25;font-weight:300}
.page-hero .en{display:block;font-family:var(--latin);font-size:clamp(13px,1.1vw,15px);letter-spacing:.28em;
  color:var(--bronze-3);margin-bottom:16px;font-weight:400;text-transform:uppercase}
.page-hero .sub{margin-top:18px;font-size:clamp(14px,1.1vw,16px);max-width:40em;opacity:.92;line-height:1.85}
.hero .kicker,.hero .word,.hero .meta,.page-hero h1,.page-hero .sub,.scroll-hint{
  text-shadow:0 1px 3px rgba(16,21,18,.34),0 8px 30px rgba(16,21,18,.42)}
.page-hero .crumb,.page-hero .en{text-shadow:0 1px 2px rgba(16,21,18,.7),0 4px 16px rgba(16,21,18,.6)}
.hero .btn,.page-hero .btn{text-shadow:none}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:15px 28px;font-size:14px;
  letter-spacing:.03em;border:1px solid var(--bronze-2);transition:background .25s,color .25s,border-color .25s}
.btn.fill{background:var(--bronze);border-color:var(--bronze);color:var(--ivory)}
.btn.fill:hover{background:var(--bronze-2);border-color:var(--bronze-2);color:var(--pine)}
.btn.ghost{color:var(--ivory)}
.btn.ghost:hover{background:rgba(244,241,234,.12)}
.btn.dk{border-color:var(--pine);color:var(--pine)}
.btn.dk:hover{background:var(--pine);color:var(--ivory)}
.btn.solid{background:var(--pine);border-color:var(--pine);color:var(--ivory)}
.btn.solid:hover{background:var(--bronze);border-color:var(--bronze)}
.arw::after{content:"→";font-family:var(--latin);font-size:16px;line-height:1}

/* ---------- 공용 블록 ---------- */
/* 2단 분할 */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,96px);align-items:center}
.split.t{align-items:start}
.split.w-l{grid-template-columns:1.15fr 1fr}
.split.w-r{grid-template-columns:1fr 1.15fr}
.split img{width:100%}
.ratio-43{aspect-ratio:4/3;object-fit:cover}
.ratio-169{aspect-ratio:16/9;object-fit:cover}
.ratio-11{aspect-ratio:1/1;object-fit:cover}
.ratio-34{aspect-ratio:3/4;object-fit:cover}
.ratio-45{aspect-ratio:4/5;object-fit:cover}
.ratio-21{aspect-ratio:21/9;object-fit:cover}

/* 지표 그리드 */
.facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--bronze)}
.facts>div{padding:26px 0 24px;border-bottom:1px solid var(--line)}
.facts>div:nth-child(odd){padding-right:24px;border-right:1px solid var(--line)}
.facts>div:nth-child(even){padding-left:24px}
.facts .num{font-size:clamp(31px,3.4vw,46px);line-height:1;color:var(--pine);display:block}
.facts .num i{font-style:normal;font-family:var(--sans);font-size:14px;margin-left:5px;color:var(--sage);letter-spacing:0}
.facts .lbl{font-size:13px;color:var(--sage);margin-top:10px;line-height:1.6}
.dark .facts>div{border-color:var(--line-d)}
.dark .facts>div:nth-child(odd){border-right-color:var(--line-d)}
.dark .facts .num{color:var(--bronze-3)}
.dark .facts .lbl{color:rgba(244,241,234,.62)}

/* AI/검색 인용용 요약 블록 */
.summary{border-left:2px solid var(--bronze);padding:4px 0 4px clamp(20px,2.6vw,34px);max-width:52em}
.summary p{font-size:clamp(15px,1.15vw,17px);line-height:2;color:var(--ink-2)}
.summary .tag{display:block;font-family:var(--latin);font-size:12px;letter-spacing:.2em;color:var(--bronze);margin-bottom:12px;text-transform:uppercase}
.dark .summary p{color:rgba(244,241,234,.85)}
.dark .summary{border-color:var(--bronze-2)}
.dark .summary .tag{color:var(--bronze-2)}

/* 규격표 */
.spec-table{width:100%;font-size:15px;border-top:1px solid var(--bronze)}
.spec-table th,.spec-table td{text-align:left;padding:17px 0;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.7}
.spec-table th{font-weight:400;color:var(--sage);width:32%;font-size:14px;padding-right:16px}
.spec-table td{color:var(--pine);font-weight:500}
.spec-table td small{display:block;font-weight:400;color:var(--sage);font-size:13px;margin-top:4px}
.dark .spec-table th,.dark .spec-table td{border-color:var(--line-d)}
.dark .spec-table th{color:rgba(244,241,234,.6)}
.dark .spec-table td{color:var(--ivory)}
.dark .spec-table td small{color:rgba(244,241,234,.55)}

/* 정의형 리스트 */
.deflist{list-style:none;border-top:1px solid var(--line)}
.deflist li{display:grid;grid-template-columns:126px 1fr;gap:22px;padding:22px 0;border-bottom:1px solid var(--line)}
.deflist b{font-family:var(--serif);font-weight:400;font-size:17px;color:var(--bronze)}
.deflist p{font-size:15px;line-height:1.8;color:var(--ink-2)}
.deflist p strong{font-weight:500;color:var(--pine)}
.dark .deflist,.dark .deflist li{border-color:var(--line-d)}
.dark .deflist b{color:var(--bronze-2)}
.dark .deflist p{color:rgba(244,241,234,.86)}
.dark .deflist p strong{color:var(--ivory)}
@media (max-width:640px){.deflist li{grid-template-columns:1fr;gap:6px}}

/* 이미지 그리드 */
.figs{display:grid;gap:clamp(12px,1.3vw,18px)}
.figs.c2{grid-template-columns:repeat(2,1fr)}
.figs.c3{grid-template-columns:repeat(3,1fr)}
.figs.c4{grid-template-columns:repeat(4,1fr)}
.figs figure{margin:0}
.figs img{width:100%}
.figs.span1 figure:first-child{grid-column:1/-1}

/* 3열 스펙 */
.spec3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,64px);
  border-top:1px solid var(--bronze);padding-top:40px}
.spec3 .big{font-family:var(--latin);font-size:clamp(32px,3.4vw,42px);line-height:1;color:var(--pine);margin-bottom:14px}
.spec3 .big i{font-style:normal;font-family:var(--sans);font-size:14px;color:var(--sage);margin-left:5px}
.spec3 h3{font-size:18px;margin-bottom:10px}
.spec3 p{font-size:15px;line-height:1.8;color:var(--ink-2)}
.dark .spec3{border-color:var(--bronze-2)}
.dark .spec3 .big{color:var(--bronze-3)}
.dark .spec3 p{color:rgba(244,241,234,.8)}

/* 티저 카드 (메인) */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,22px)}
.cards a{display:block;position:relative;background:var(--pine)}
.cards .ph{position:relative;overflow:hidden;aspect-ratio:4/3}
.cards img{width:100%;height:100%;object-fit:cover;transition:opacity .4s var(--ease)}
.cards a:hover img{opacity:.82}
.cards .tx{position:absolute;inset:auto 0 0 0;padding:clamp(18px,2vw,26px);color:var(--ivory);
  background:linear-gradient(180deg,rgba(27,36,31,0) 0%,rgba(27,36,31,.86) 72%)}
.cards .tx i{font-style:normal;display:block;font-family:var(--latin);font-size:12px;letter-spacing:.2em;color:var(--bronze-2);margin-bottom:6px}
.cards .tx b{font-family:var(--serif);font-weight:400;font-size:clamp(18px,1.6vw,22px);display:block}
.cards .tx span{display:block;font-size:13px;opacity:.78;margin-top:6px;line-height:1.6}

/* 층 단면 인터랙션 (상품구성 핵심) */
.stack-grid{display:grid;grid-template-columns:minmax(280px,400px) 1fr;gap:clamp(36px,6vw,100px);align-items:center}
.stack{list-style:none;display:flex;flex-direction:column;gap:5px}
.stack li{display:grid;grid-template-columns:46px 1fr;align-items:center;gap:14px;cursor:pointer}
.stack .f{font-family:var(--latin);font-size:15px;color:var(--sage);text-align:right;letter-spacing:.04em}
.stack .bar{height:34px;background:var(--mist-3);position:relative;border-left:2px solid transparent;
  transition:background .3s var(--ease),transform .3s var(--ease),border-color .3s}
.stack li.pent .bar{width:78%}
.stack li.terr .bar{width:92%}
.stack li.gard .bar{width:100%;height:48px}
.stack li.base{cursor:default}
.stack li.base .bar{height:15px;background:transparent;border-top:1px dashed var(--sage);border-left:0}
.stack li.base .f{font-size:12px}
.stack li.on .bar{background:var(--pine);border-left-color:var(--bronze);transform:translateX(6px)}
.stack li.on .f{color:var(--pine);font-weight:500}
.stack .cap-in{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--ivory);
  opacity:0;transition:opacity .3s;white-space:nowrap;font-family:var(--sans)}
.stack li.on .cap-in{opacity:1}
.stack li.base .cap-in{color:var(--sage);opacity:1;left:8px;top:16px;transform:none}
.stack-note{font-size:12px;color:var(--sage);margin-top:22px;padding-left:60px}

.type-panel{position:relative;min-height:400px}
.type{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .4s var(--ease)}
.type.show{opacity:1;visibility:visible;position:relative}
.type h3{font-size:clamp(26px,3vw,38px);line-height:1.3;font-weight:300}
.type h3 .en{display:block;font-family:var(--latin);font-size:15px;letter-spacing:.2em;color:var(--bronze);
  margin-bottom:10px;font-weight:400;text-transform:uppercase}
.type .row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,36px);align-items:start;margin-top:28px}
.type .desc{font-size:15px;line-height:1.85;color:var(--ink-2)}
.type ul{list-style:none;border-top:1px solid var(--bronze);margin-top:24px}
.type ul li{padding:13px 0;border-bottom:1px solid var(--line);font-size:14px;display:flex;justify-content:space-between;gap:16px}
.type ul li span:last-child{color:var(--pine);font-weight:500;text-align:right}
.type img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media (max-width:900px){
  .stack-grid{grid-template-columns:1fr}
  .stack li.on .bar{transform:none}
  .stack-note{padding-left:0}
  .type{position:relative;display:none;opacity:1;visibility:visible}
  .type.show{display:block}
  .type-panel{min-height:0}
  .type .row{grid-template-columns:1fr}
}

/* 평면 탭 */
.plan-tabs{display:flex;gap:0;border-bottom:1px solid var(--line-2);margin-bottom:clamp(32px,4vw,48px);
  overflow-x:auto;scrollbar-width:none}
.plan-tabs::-webkit-scrollbar{display:none}
.plan-tabs button{padding:15px 24px 13px;font-size:14px;color:var(--sage);border-bottom:2px solid transparent;
  margin-bottom:-1px;white-space:nowrap;transition:color .25s,border-color .25s}
.plan-tabs button:hover{color:var(--ink-2)}
.plan-tabs button[aria-selected="true"]{color:var(--pine);border-color:var(--pine);font-weight:500}
.plan{display:none}
.plan.show{display:block}
.plan a.draw{display:block;background:#fff;border:1px solid var(--line);
  padding:clamp(14px,2.2vw,30px);cursor:zoom-in;transition:border-color .25s}
.plan a.draw:hover{border-color:var(--bronze)}
.plan .draw img{width:100%}
.plan .draw-hint{margin-top:10px}
.plan .info{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,4vw,64px);
  align-items:start;margin-top:clamp(30px,3.6vw,46px)}
.plan .note{font-size:13px;color:var(--sage);line-height:1.75}
@media (max-width:900px){.plan .info{grid-template-columns:1fr;gap:24px}}

/* 타입 비교표 */
.cmp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cmp{width:100%;min-width:760px;font-size:14px;border-top:1px solid var(--bronze)}
.cmp th,.cmp td{text-align:left;padding:16px 18px 16px 0;border-bottom:1px solid var(--line);
  vertical-align:top;line-height:1.65}
.cmp thead th{font-family:var(--serif);font-weight:400;font-size:clamp(16px,1.5vw,19px);
  color:var(--pine);padding-bottom:20px;border-bottom:1px solid var(--line-2)}
.cmp thead th .en{display:block;font-family:var(--latin);font-size:11px;letter-spacing:.16em;
  color:var(--bronze);margin-bottom:6px;text-transform:uppercase}
.cmp tbody th{font-weight:400;color:var(--sage);width:15%;white-space:nowrap}
.cmp tbody td{color:var(--ink-2);width:28.3%}
.cmp tbody tr:hover td,.cmp tbody tr:hover th{background:rgba(154,123,79,.045)}
.cmp-hint{display:none;font-size:12px;color:var(--sage);margin-top:12px}
.cmp-hint::before{content:"↔";font-family:var(--latin);margin-right:7px;color:var(--bronze)}
@media (max-width:820px){.cmp-hint{display:block}}

/* 커뮤니티 시설 */
.amen{list-style:none;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line-d2)}
.amen li{padding:20px 0;border-bottom:1px solid var(--line-d);font-family:var(--serif);font-size:18px;font-weight:300}
.amen li:nth-child(odd){border-right:1px solid var(--line-d);padding-right:20px}
.amen li:nth-child(even){padding-left:20px}
.amen li small{display:block;font-family:var(--latin);font-size:12px;letter-spacing:.16em;color:var(--bronze-2);
  margin-bottom:5px;text-transform:uppercase}

/* 갤러리 */
.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:clamp(28px,3vw,36px)}
.filters button{padding:10px 18px;font-size:14px;border:1px solid var(--line-2);color:var(--sage);transition:all .25s}
.filters button:hover{color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--pine);border-color:var(--pine);color:var(--ivory)}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.2vw,14px)}
.gal figure{position:relative;cursor:zoom-in;margin:0;overflow:hidden;background:var(--mist-3)}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:opacity .35s var(--ease)}
.gal figure:hover img{opacity:.84}
.gal figure.hide{display:none}
.gal figcaption{position:absolute;left:12px;bottom:10px;color:var(--ivory);font-size:12px;letter-spacing:.05em;
  text-shadow:0 1px 10px rgba(0,0,0,.65);margin:0}
.gal-empty{padding:60px 0;color:var(--sage);font-size:15px}

/* 라이트박스: 리셋의 *{margin:0} 이 dialog 기본 margin:auto 를 지워 팝업이 화면 좌상단에 붙던 것 → 가운데 정렬 복원 */
dialog.lb{border:0;padding:0;background:transparent;max-width:min(1240px,94vw);max-height:94svh;width:100%;color:var(--ivory);
  margin:auto;inset:0}
dialog.lb::backdrop{background:rgba(20,26,22,.94)}
dialog.lb img{max-height:82svh;width:auto;max-width:100%;margin:0 auto}
dialog.lb .lb-cap{text-align:center;font-size:13px;color:rgba(244,241,234,.72);margin-top:16px;letter-spacing:.04em}
dialog.lb .lb-cap b{color:var(--ivory);font-weight:400;font-family:var(--latin);margin-right:10px}
.lb-btn{position:fixed;top:50%;transform:translateY(-50%);width:52px;height:52px;display:grid;place-items:center;
  color:var(--ivory);font-family:var(--latin);font-size:26px;background:rgba(27,36,31,.55);border:1px solid var(--line-d)}
.lb-btn:hover{background:var(--bronze)}
.lb-prev{left:14px}.lb-next{right:14px}
.lb-x{position:fixed;top:18px;right:20px;color:var(--ivory);font-family:var(--latin);letter-spacing:.2em;
  font-size:13px;border:1px solid var(--line-d2);padding:9px 15px;background:rgba(27,36,31,.55)}
.lb-x:hover{background:var(--bronze)}

/* FAQ */
.faq{border-top:1px solid var(--line);max-width:56em}
/* 08 관심고객등록 화면: 자주 묻는 질문·Summary 블록 가운데 정렬 (QA 2026-09-11) */
.ctr{margin-left:auto;margin-right:auto}
.ctr-56{max-width:56em}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{padding:22px 40px 22px 0;font-family:var(--serif);font-size:clamp(16px,1.35vw,19px);font-weight:400;
  cursor:pointer;position:relative;list-style:none;line-height:1.55}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);
  font-family:var(--latin);font-size:22px;color:var(--bronze);transition:transform .25s}
.faq details[open] summary::after{content:"−"}
.faq .ans{padding:0 0 24px;font-size:15px;line-height:1.9;color:var(--ink-2);max-width:46em}
.dark .faq,.dark .faq details{border-color:var(--line-d)}
.dark .faq .ans{color:rgba(244,241,234,.82)}

/* 등록 폼 */
.form-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(40px,7vw,110px);align-items:start}
.tel-big{display:block;font-family:var(--latin);font-size:clamp(34px,4vw,52px);color:var(--pine);
  margin:26px 0 8px;letter-spacing:.02em;line-height:1}
.dark .tel-big{color:var(--bronze-3)}
form.reg{display:grid;gap:20px;border-top:1px solid var(--bronze);padding-top:30px}
.field{display:grid;gap:7px}
.field label,.field .lb{font-size:13px;color:var(--sage)}
.field b{color:var(--bronze);font-weight:400;margin-left:2px}
.field input,.field textarea,.field select{font:inherit;font-size:16px;padding:13px 0;border:0;
  border-bottom:1px solid var(--line-2);background:transparent;color:var(--ink);border-radius:0;width:100%}
.field input::placeholder,.field textarea::placeholder{color:#A8B0AA}
.field input:focus,.field textarea:focus,.field select:focus{outline:0;border-bottom-color:var(--pine)}
.field textarea{resize:vertical;min-height:84px;line-height:1.7}
.field select{appearance:none;-webkit-appearance:none;padding-right:26px;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%236F7B72' stroke-width='1.2' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 2px center}
.field input[type=date]{cursor:pointer}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-bottom-color:#A64B3C}
.radios{display:flex;gap:22px;flex-wrap:wrap;font-size:15px;padding-top:4px}
.radios label{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--ink)}
input[type=radio],input[type=checkbox]{accent-color:var(--pine);width:16px;height:16px;flex:0 0 auto}
/* 동의문 박스 + 동의 여부 질문 (항목·문안 = 오렐청평 관심고객 등록 폼과 동일) */
.agree-box{display:grid;gap:8px}
.agree-box h4{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--sage);letter-spacing:0}
.agree-box textarea{font:inherit;font-size:13px;line-height:1.85;color:var(--ink-2);width:100%;height:200px;
  padding:16px 18px;border:1px solid var(--line-2);border-radius:0;background:rgba(255,255,255,.45);
  resize:vertical;white-space:pre-wrap}
.agree-box textarea:focus{outline:0;border-color:var(--pine)}
.ask{display:grid;gap:9px}
.ask>p{font-size:14px;color:var(--ink);line-height:1.6}
.ask em{font-style:normal;color:var(--bronze);margin-right:5px}
.ask em.opt{color:var(--sage)}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--ink-2);line-height:1.75;cursor:pointer}
.agree details{display:inline}
.agree summary{cursor:pointer;color:var(--bronze);display:inline;list-style:none}
.agree summary::-webkit-details-marker{display:none}
.agree details p{margin-top:8px;color:var(--sage);font-size:12px;line-height:1.75}
form.reg .btn{justify-self:start}
@media (max-width:600px){form.reg .btn{justify-self:stretch}}
.err{font-size:13px;color:#A64B3C;display:none}
.err.on{display:block}
.done{display:none;padding:clamp(26px,3vw,36px);border:1px solid var(--bronze);
  font-family:var(--serif);font-size:18px;line-height:1.7;background:rgba(154,123,79,.05)}
.done.on{display:block}
.done small{display:block;font-family:var(--sans);font-size:14px;color:var(--sage);margin-top:10px;line-height:1.75}
.notice{list-style:none;font-size:14px;line-height:1.85;color:var(--ink-2)}
.notice li{padding-left:16px;position:relative;margin-bottom:8px}
.notice li::before{content:"";position:absolute;left:0;top:.8em;width:6px;height:1px;background:var(--bronze)}
.dark .notice{color:rgba(244,241,234,.84)}
.dark .radios label,.dark .agree{color:rgba(244,241,234,.84)}
.dark .field input,.dark .field textarea{color:var(--ivory);border-bottom-color:var(--line-d2)}
.dark .field input:focus,.dark .field textarea:focus{border-bottom-color:var(--bronze-2)}
@media (max-width:900px){.form-grid{grid-template-columns:1fr}}

/* CTA 밴드 */
.cta-band{position:relative;color:var(--ivory);background:var(--pine);overflow:hidden;text-align:center}
.cta-band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32}
.cta-band .wrap{position:relative;z-index:1;padding-top:clamp(80px,9vw,120px);padding-bottom:clamp(80px,9vw,120px)}
.cta-band h2{font-weight:300;margin-bottom:14px}
.cta-band p{font-size:15px;opacity:.82;margin-bottom:32px}
.cta-band .cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* 페이저 */
.pager{border-top:1px solid var(--line);background:var(--mist)}
.pager .in{display:grid;grid-template-columns:1fr 1fr;max-width:var(--max);margin:0 auto}
.pager a{padding:clamp(28px,3.4vw,44px) var(--pad);display:block;transition:background .3s}
.pager a:hover{background:var(--mist-2)}
.pager a+a{border-left:1px solid var(--line);text-align:right}
.pager i{font-style:normal;display:block;font-family:var(--latin);font-size:12px;letter-spacing:.18em;color:var(--bronze);margin-bottom:8px}
.pager b{font-family:var(--serif);font-weight:400;font-size:clamp(17px,1.7vw,22px);color:var(--pine)}
.pager .none{opacity:.34;pointer-events:none}
@media (max-width:640px){.pager .in{grid-template-columns:1fr}.pager a+a{border-left:0;border-top:1px solid var(--line);text-align:left}}

/* 푸터 */
footer{background:var(--pine);color:rgba(244,241,234,.72);padding:clamp(56px,6vw,72px) 0 36px;font-size:13px;line-height:1.85}
footer .row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,48px);align-items:start}
footer .f-brand img{height:44px;width:auto;margin-bottom:18px}
footer .links{display:flex;gap:18px;margin-bottom:14px;flex-wrap:wrap}
footer .links a{color:var(--ivory);opacity:.86;border-bottom:1px solid transparent}
footer .links a:hover{opacity:1;border-color:var(--bronze-2)}
footer .f-nav{display:flex;gap:8px 18px;flex-wrap:wrap;margin-bottom:18px;font-size:13px}
footer .f-nav a{opacity:.7}
footer .f-nav a:hover{opacity:1;color:var(--ivory)}
footer .legal{margin-top:clamp(32px,4vw,44px);padding-top:22px;border-top:1px solid var(--line-d);font-size:12px;opacity:.62;line-height:1.8}
footer a[href^="tel"]{font-family:var(--latin);font-size:15px;letter-spacing:.03em;color:var(--bronze-2);white-space:nowrap}
@media (max-width:820px){footer .row{grid-template-columns:1fr}}

/* 플로팅 */
.float{position:fixed;right:clamp(14px,2vw,22px);bottom:clamp(14px,2vw,22px);z-index:40;display:flex;flex-direction:column;gap:8px}
.float a{background:var(--pine);color:var(--ivory);width:62px;min-height:62px;padding:7px 6px;display:grid;place-items:center;
  text-align:center;font-size:11px;line-height:1.35;letter-spacing:.03em;word-break:keep-all;
  box-shadow:0 8px 26px rgba(27,36,31,.3);transition:background .25s}
.float a:hover{background:var(--pine-3)}
.float a.gold{background:var(--bronze)}
.float a.gold:hover{background:var(--bronze-2);color:var(--pine)}
@media (max-width:560px){.float a{width:56px;min-height:56px;font-size:10px;padding:6px 4px}}

/* 스크롤 등장 */
.rv{opacity:0;transform:translateY(22px)}
.rv.in{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease)}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}

/* ---------- 반응형 공통 ---------- */
@media (max-width:900px){
  .split,.split.w-l,.split.w-r,.form-grid{grid-template-columns:1fr}
  .figs.c3,.figs.c4{grid-template-columns:repeat(2,1fr)}
  .cards{grid-template-columns:repeat(2,1fr)}
  .spec3{grid-template-columns:1fr;gap:32px}
  .gal{grid-template-columns:repeat(2,1fr)}
  .amen{grid-template-columns:1fr}
  .amen li:nth-child(odd){border-right:0;padding-right:0}
  .amen li:nth-child(even){padding-left:0}
  .lb-btn{width:44px;height:44px;font-size:20px}
}
@media (max-width:600px){
  .facts{grid-template-columns:1fr}
  .facts>div:nth-child(odd){padding-right:0;border-right:0}
  .facts>div:nth-child(even){padding-left:0}
  .cards{grid-template-columns:1fr}
  .figs.c2,.figs.c3,.figs.c4{grid-template-columns:1fr}
  .gal{grid-template-columns:1fr}
  .spec-table th{width:38%}
}

/* ---------- 인쇄 ---------- */
@media print{
  header,.float,.mobile-menu,.pager,.scroll-hint,.filters,dialog{display:none!important}
  body{background:#fff;color:#000}
  .dark,.cta-band{background:#fff!important;color:#000!important}
  section{padding:24px 0;break-inside:avoid}
  .page-hero,.hero{min-height:0;color:#000}
  .page-hero::after,.hero::after{display:none}
}
