/* ============================================================
   refine.css — 비주얼 시스템 정제 (ref: piaule.com 추출 토큰)
   추출 토큰: border-radius 0 · box-shadow none · transition .25s/.5s
   ease-in-out · 라벨 uppercase + letter-spacing · 절제된 hover.
   컬러는 유닛하우스 고유(주황 #f2b33d·블랙 #111) 그대로 유지.
   각 페이지 인라인 <style> 뒤에 로드되어 형태 토큰만 덮어쓴다.
   ============================================================ */


/* ---- 그림자 제거: 색면과 헤어라인으로만 위계 ---- */
.lp-hero .b1,.story-cta .b1,.pr-cta .b1,.book .b1,.btn-go,.sr-visit,
.btn-detail,.i3-card:hover,.next3 a.card:hover,.case-arrow,
.hero .btn-detail{box-shadow:none;}

/* ---- 모션: 0.25s/0.5s ease-in-out 통일, 들뜨는 transform 제거 ---- */
.i3-card,.next3 a.card,.disp,.pcard,.chip,.cat-bar a,.sr-visit,
.btn-go,.lp-hero .b1,.book .b1{transition:border-color .25s ease-in-out,background-color .25s ease-in-out,color .25s ease-in-out,filter .25s ease-in-out;}
.i3-card:hover,.next3 a.card:hover{transform:none;border-color:#111;}
.showroom-card .sr-visit:hover{transform:none;}
.story-card .media img,.mg-card img,.yt-media img,.case-card img,.product-card img.bg{transition:transform .5s ease-in-out,opacity .25s linear;}
.story-card:hover .media img,.mg-card:hover img,.case-card:hover .case-media img{transform:scale(1.03);}
.rise,.rise.in{transition-timing-function:ease-in-out;}

/* ---- 라벨: uppercase + 자간 (piaule 라벨 문법) ---- */
.kicker,.next3 .tag,.disp .t,.line2 .t,.hp-num,.mg-meta .tag{
  text-transform:uppercase;letter-spacing:.18em;font-weight:700;
}

/* ---- 헤어라인·보더 톤 ---- */
.i3-card,.next3 a.card,.disp,.pcard,.visit3 .step,.ga-box,.ga-mini{border-width:1px;border-color:#e2e2e2;}
.pcard.hi{border-color:var(--accent,#f2b33d);}

/* ---- 호흡: 섹션 여백 확대 ---- */
section{padding-top:112px;padding-bottom:112px;}
.trust-strip,.story-numbers,.fix3{padding-top:0;padding-bottom:0;}
.trust-strip .container{padding-top:36px;padding-bottom:36px;}
.story-numbers{padding-top:84px;padding-bottom:84px;}
.fix3{padding-top:84px;padding-bottom:84px;}

/* ---- 히어로 카피: 무게 살짝 절제 ---- */
.lp-hero h1,.story-hero h1,.pr-hero h1,.mg-hero h1{font-weight:700;letter-spacing:-.015em;}

/* ---- 한글 조판: 단어 중간 줄바꿈 방지 ---- */
body{word-break:keep-all;overflow-wrap:break-word;}

/* ═══════════════════════════════════════════════════════════
   v2 — 유리 헤더 · 페이지 CTA 바 · 타이포 위계 · 히어로 정렬
   (refine.css는 항상 마지막에 로드되므로 페이지 인라인보다 우선)
   ═══════════════════════════════════════════════════════════ */

/* ---- 1. LIQUID GLASS 헤더 ---- */
.header{
  background:rgba(255,255,255,.60);
  -webkit-backdrop-filter:saturate(190%) blur(22px);
  backdrop-filter:saturate(190%) blur(22px);
  border-bottom:1px solid rgba(17,17,17,.07);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 6px 22px rgba(17,17,17,.045);
}
.header .dropdown{
  /* 어두운 히어로 위에서 뒤가 비쳐 항목이 읽히지 않던 문제 — 불투명도 상향 */
  background:rgba(255,255,255,.97);
  -webkit-backdrop-filter:saturate(190%) blur(20px);
  backdrop-filter:saturate(190%) blur(20px);
  border:1px solid rgba(17,17,17,.07);
  box-shadow:0 12px 30px rgba(17,17,17,.08);
}
.mobile-nav{
  /* 전체 높이 패널이라 뒤 본문이 비치면 가독성이 깨진다 — 유리감은 남기고 불투명도만 올린다 */
  background:rgba(255,255,255,.985);
  -webkit-backdrop-filter:saturate(190%) blur(22px);
  backdrop-filter:saturate(190%) blur(22px);
}
/* backdrop-filter 미지원 브라우저는 불투명 흰색으로 폴백 */
@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
  .header{background:#fff;}
  .header .dropdown{background:#fff;}
  .mobile-nav{background:#fff;}
}

/* ---- 2. 페이지별 하단 CTA 바 (PC·모바일 공통, site.js가 주입) ---- */
.pagecta{
  position:fixed;left:0;right:0;bottom:0;z-index:880;
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:saturate(185%) blur(20px);
  backdrop-filter:saturate(185%) blur(20px);
  border-top:1px solid rgba(17,17,17,.09);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 -8px 26px rgba(17,17,17,.07);
  transform:translateY(105%);transition:transform .38s ease-in-out;
}
.pagecta.on{transform:translateY(0);}
.pagecta-in{
  max-width:1256px;margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;gap:20px;
}
.pc-copy{min-width:0;}
.pc-copy .t{display:block;font-size:16.5px;font-weight:800;letter-spacing:-.01em;color:var(--black,#111);}
.pc-copy .s{display:block;margin-top:3px;font-size:13.5px;color:var(--gray-600,#555);line-height:1.5;}
.pc-btns{margin-left:auto;display:flex;gap:10px;flex:none;}
.pc-b{
  display:inline-flex;align-items:center;justify-content:center;
  height:48px;padding:0 24px;border-radius:2px;
  font-size:15px;font-weight:800;white-space:nowrap;
}
.pc-b1{background:var(--accent,#f2b33d);color:var(--black,#111);}
.pc-b2{background:transparent;color:var(--black,#111);border:1.5px solid rgba(17,17,17,.22);}
.pc-b2:hover{border-color:var(--black,#111);}
.pc-close{
  flex:none;width:34px;height:34px;border:none;background:transparent;
  color:var(--gray-400,#9a9a9a);font-size:20px;line-height:1;cursor:pointer;
}
.pc-close:hover{color:var(--black,#111);}
@media(max-width:860px){
  .pagecta-in{padding:10px 14px;gap:10px;flex-wrap:wrap;}
  .pc-copy{display:none;}
  .pc-btns{margin-left:0;width:100%;gap:8px;}
  .pc-b{flex:1;height:50px;padding:0 12px;font-size:14.5px;}
  .pc-close{position:absolute;right:4px;top:-34px;background:rgba(255,255,255,.8);border-radius:2px;}
}
body.has-pagecta{padding-bottom:78px;}
@media(max-width:860px){body.has-pagecta{padding-bottom:70px;}}
/* 하단 CTA 바가 떠 있을 때 플로팅 상담 버블을 그 위로 올린다 (겹침 방지) */
body.has-pagecta .float-cta{bottom:100px;}
body.has-pagecta .to-top{bottom:100px;}
@media(max-width:860px){
  body.has-pagecta .float-cta{bottom:86px;}
  body.has-pagecta .to-top{bottom:86px;}
}

/* ---- 3. 타이포 위계: 섹션 라벨·카드 라벨 상향 ---- */
.kicker,.usp .num,.next3 .tag,.i3-card .tag,.lg-card .ln,.pp-num .l,
.disp .t,.line2 .t,.mg-meta .tag,.story-card .meta .tag{
  font-size:15px;letter-spacing:.16em;font-weight:800;
}
@media(max-width:640px){
  .kicker,.usp .num,.next3 .tag,.i3-card .tag,.lg-card .ln,.pp-num .l{font-size:13.5px;}
}
.i3-card .tag{letter-spacing:.1em;}
.i3-card h3{font-size:clamp(24px,2.4vw,29px);margin-top:14px;}
.i3-card p{font-size:16px;line-height:1.8;}
.i3-card .go{font-size:16px;margin-top:22px;}
.next3 h3{font-size:22px;}
.next3 p{font-size:15px;}
.pp-num .l{color:var(--black,#111);}

/* ---- 4. 히어로 텍스트 좌정렬 — 컨테이너 라인에 맞춤 ---- */
.sub-hero .inner{
  max-width:1256px;padding-left:24px;padding-right:24px;text-align:left;
}
.sub-hero h1{text-align:left;}
.lp-hero .container,.mg-hero .container,.pr-hero .container,.story-hero .container{text-align:left;}

/* ---- 5. 이미지 높이: width/height 속성은 CLS 방지용 비율 힌트일 뿐 ----
   속성값이 실제 높이로 굳으면 aspect-ratio가 무력화되어 세로로 길어진다.
   (.logo img 등 높이를 직접 지정한 규칙은 특이도가 높아 그대로 유지된다) */
img{height:auto;}

/* ---- 6. 세로 과장 방지: 에센셜 DETAIL 컷 ---- */
.es2 img{aspect-ratio:4/3;object-fit:cover;width:100%;}

/* 컨테이너·카드·이미지는 버튼과 무관 — 정밀한 모서리 유지 */
.i3-card,.next3 a.card,.disp,.pcard,.visit3 .step,.ga-box,.ga-mini,
.story-card .media,.mg-card .mg-media,.yt-media,.line2 a,
.showroom-card .sr-photo,.ct-left .photo,.done .sum,.enquiry-card,
.case-media,.case-card img,.usp img,.es2 img,.cmp,.hero-prev,
.product-card,.promise-card img{border-radius:2px;}
.pcard .go,.line2 .go{border-radius:2px;}
/* 플로팅 원형·뱃지는 브랜드 시그니처 — 유지 */

/* ============================================================
   버튼 위계 정본 (3단) — 사이트 전체 공통
   refine.css는 페이지 인라인 <style> 뒤에 로드되므로 여기가 최종 규격이다.

     강조 : 라운드 박스 6px  → 페이지의 핵심 전환 + 하단 CTA 바
     기본 : 알약 999px        → 헤더 CTA, 히어로 보조 이동
     보조 : 알약 999px        → 대안·비교·목록 이동, 필터 칩

   ★ 이 블록은 "형태(radius)"만 통일한다. 채움(배경·테두리·글자색)은 각
     버튼이 이미 설계된 값을 그대로 쓴다. 형태만으로 위계는 충분히 읽히고,
     채움까지 건드리면 검정 솔리드 버튼의 흰 글씨가 사라지는 식으로
     의도된 강조가 죽는다(실제로 .btn-more 가 그렇게 보이지 않게 됐다).
   ============================================================ */

/* --- 강조: 라운드 박스 --- */
.ubtn-1,.showroom-card .sr-visit,.sr-actions .sr-visit,
.b1,.lp-hero .b1,.story-cta .b1,.pr-cta .b1,.book .b1,.co-hero .b1,.ty-hero .b1,
.bz-hero .b1,.cd-hero .b1,
.btn-go,.btn-submit,.btn-ask,.sr-visit,.sf-send,
.pc-b1,.pc-b2{                 /* 하단 CTA 바는 두 버튼 모두 사각으로 맞춘다 */
  border-radius:6px;
}

/* --- 기본: 알약 --- */
.ubtn-2,.btn-pill,.btn-detail,.hero .btn-detail{border-radius:999px;}

/* --- 보조: 알약 --- */
.ubtn-3,
.b2,.lp-hero .b2,.story-cta .b2,.pr-cta .b2,.co-hero .b2,.ty-hero .b2,
.bz-hero .b2,.cd-hero .b2,
.btn-small,.btn-more,.done .next a,.other a,.chip,.cat-bar a{
  border-radius:999px;
}

/* .ubtn-3 는 인라인 스타일에서 radius를 걷어낸 맨몸 앵커라 채움이 없다.
   이들만 라인 스타일을 부여한다(밝은 배경 기준). 나머지는 손대지 않는다. */
.ubtn-3{background:transparent;border:1.5px solid var(--gray-200,#e5e5e5);}
.ubtn-3:hover{border-color:var(--black,#111);}

/* 상세 정보 입력 토글은 accent 틴트가 원래 규격 — 라운드 박스로만 맞춘다 */
.enq-toggle{border-radius:6px;}

/* 컨테이너·카드·이미지는 버튼과 무관 — 정밀한 모서리 유지 */
.i3-card,.next3 a.card,.disp,.pcard,.visit3 .step,.ga-box,.ga-mini,
.story-card .media,.mg-card .mg-media,.yt-media,.line2 a,
.showroom-card .sr-photo,.ct-left .photo,.done .sum,.enquiry-card,
.case-media,.case-card img,.usp img,.es2 img,.cmp,.hero-prev,
.product-card,.promise-card img{border-radius:2px;}
.pcard .go,.line2 .go{border-radius:2px;}
/* 플로팅 원형·뱃지는 브랜드 시그니처 — 유지 */

/* ── 우하단 플로팅 스택 ──────────────────────────────────────────
   .float-cta(빠른 문의)와 .to-top(맨 위로)이 같은 좌표에 겹쳐 있어
   흰 원이 버튼 뒤에 보이고, 첫 탭이 위에 깔린 .to-top 에 먹히는 문제가 있었다.
   같은 우측 열에 세로로 쌓아 서로 침범하지 않게 한다.
   (빠른문의 지름 64/모바일 54 + 간격 12) */
.to-top{right:22px;bottom:100px;}
body.has-pagecta .to-top{bottom:176px;}
@media(max-width:640px){
  .to-top{right:14px;bottom:82px;width:46px;height:46px;font-size:18px;}
  body.has-pagecta .to-top{bottom:152px;}
}
/* 모바일 햄버거·언어 버튼: color 미지정 시 iOS Safari 가 시스템 파란색으로 렌더한다 */
.menu-toggle{color:#333;}
.menu-toggle svg{color:inherit;}

/* ── 히어로 CTA는 전부 라운드 사각(6px) ──────────────────────────
   위 위계 규칙(기본=알약 / 강조=라운드 박스)은 본문 CTA에만 적용한다.
   히어로는 솔리드·라인 두 버튼이 나란히 서므로 형태까지 다르면
   한 쌍으로 보이지 않는다 → 채움으로만 위계를 주고 모서리는 통일. */
.hero .btn-detail,.hero .btn-small,
.lp-hero .b1,.lp-hero .b2,
.co-hero .b1,.co-hero .b2,
.bz-hero .b1,.bz-hero .b2,.bz-hero .btn-ask,
.cd-hero .b1,.cd-hero .b2,
.ty-hero .b1,.ty-hero .b2,
.sub-hero .b1,.sub-hero .b2,
.pr-hero .b1,.pr-hero .b2,
.sc-hero .b1,.sc-hero .b2,
.story-hero .b1,.story-hero .b2,
.mg-hero .b1,.mg-hero .b2{border-radius:6px;}

/* ── 사진 미확보 슬롯 임시 숨김 ────────────────────────────────
   실사진이 없는 자리에 "사진 준비 중" 플레이스홀더를 노출하지 않는다.
   data-cms 훅과 alt 는 그대로 두어 에디터에서 사진만 채우면 되고,
   사진 확보 시 .ph-hide (와 짝 클래스 .no-media/.one) 만 지운다.
   현재 대상: process.s3(인허가 도면) · process.s5(운송·설치) ·
             bespoke.tline(T-12 실물) · cd.engine(지번 배치 화면) */
.ph-hide{display:none!important;}
/* 이미지가 빠진 진행과정 단계는 2열 → 1열로 접는다.
   1열이 되면 본문이 1180px 를 가득 채워 한 줄이 지나치게 길어지므로 가독 폭으로 제한한다 */
.tl-step.no-media{grid-template-columns:1fr!important;}
.tl-step.no-media .tl-body{max-width:78ch;}
/* 라인 실물컷이 한 장만 남은 경우 가운데 정렬 */
.line-shots.one{grid-template-columns:1fr!important;max-width:760px;margin-left:auto;margin-right:auto;}


/* ── 유닛메이커 밴드 ─────────────────────────────────────────
   라인 단위 기준가와 실제 제품 가격 사이의 간극을 메우는 전환 블록.
   가격을 다루는 페이지(price·essential·bespoke·product)에 공통으로 쓴다. */
.mk-band{background:#faf9f7;border-top:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200);padding:76px 0;}
.mk-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center;}
@media(max-width:900px){.mk-inner{grid-template-columns:1fr;gap:32px;}.mk-band{padding:56px 0;}}
.mk-lead{margin-top:16px;font-size:16px;color:var(--gray-600);line-height:1.9;max-width:56ch;}
.mk-lead b{color:var(--black);font-weight:700;}
.mk-pts{margin-top:20px;display:grid;gap:10px;padding-left:0;}
.mk-pts li{position:relative;padding-left:20px;font-size:15px;color:var(--gray-600);line-height:1.7;list-style:none;}
.mk-pts li::before{content:"";position:absolute;left:2px;top:9px;width:7px;height:7px;border-radius:50%;background:var(--accent);}
.mk-cta{display:inline-flex;align-items:center;margin-top:28px;height:56px;padding:0 34px;border-radius:6px;
        background:var(--accent);color:var(--black);font-weight:800;font-size:16px;letter-spacing:-.01em;}
.mk-shot{display:block;border-radius:10px;overflow:hidden;border:1px solid var(--gray-200);background:#fff;}
.mk-shot img{display:block;width:100%;height:auto;}
/* 본문 흐름에 얇게 끼우는 인라인 변형 (홈 가격 프리뷰 등) */
.mk-link{display:inline-flex;align-items:center;gap:6px;margin-left:18px;font-size:15px;font-weight:800;
         color:var(--black);border-bottom:2px solid var(--accent);padding-bottom:2px;}
@media(max-width:640px){.mk-link{margin-left:0;margin-top:14px;}}
