/* ⛔ 2026-08-14 — 오늘 추가한 스타일에서 **소개서·브로슈어의 색 토큰**을 그대로 썼다.
   이 사이트는 --bg / --bg-2 / --ink / --gold 를 쓰고, 문서는 --paper / --s / --g 를 쓴다.
   이름이 다르므로 값이 통째로 무효가 되어 「흰 바탕에 흰 글자」가 나왔다(센터스 페이지 04 카드).
   → 규칙을 옮길 때와 똑같다(D-040). **토큰도 그 산출물의 문법이다. 이름부터 확인하고 옮긴다.** */
/* ===================================================================
   SCENTERS — 병원 방향제 렌탈
   v3 · EDITORIAL MONO + 섹션별 테마  (2026-07-31)

   섹션마다 명도를 바꿔 스크롤에 리듬을 만든다.
   흰 → 오프화이트 → 흰 → 검정 → 밝은회색 → 흰 → 회색 → 검정
   색은 전부 CSS 변수로 두어, 테마 클래스 하나로 전체가 반전된다.
   =================================================================== */

:root{
  --en:'Bodoni Moda','Bodoni 72',Didot,'Times New Roman',serif;
  --num:'lnum' 1,'tnum' 1;
  --bg:#FFFFFF;
  --bg-2:#F2F5FA;
  --ink:#16233A;      /* Ink Blue — 로고 기반 메인 */
  --ink-2:#2E4468;    /* Slate Blue */
  --ink-3:#5B6C87;    /* AA 통과 (#E8EDF4 위 4.53) */
  --ink-4:#636C7A;    /* AA 통과 (#E8EDF4 위 4.51) */
  --line:#DDE4EE;
  --line-s:#16233A;
  --gold:#C9A961;     /* Champagne Gold — 강세, 면적 5% 이하. 큰 글자·선·배경 전용 */
  --gold-t:#7D693C;   /* 작은 글자용 골드 — 흰 배경 AA 통과 */
  --gold-l:#9E854C;   /* 24px 이상 큰 글자용 골드 — AA Large 통과 */
  --focus:#A8842F;    /* 포커스 테두리 — 흰 배경 3.50, UI 3:1 통과 */
  --r:2px;
  --e:cubic-bezier(.22,1,.36,1);
  --pad:clamp(22px,6vw,110px);
  --gut:clamp(24px,4vw,64px);
}

/* ── 섹션 테마 4종 ── */
.t-white{--bg:#FFFFFF;--bg-2:#F2F5FA;--line:#DDE4EE}
.t-off  {--bg:#F7F9FC;--bg-2:#EDF1F8;--line:#D8E1ED}
.t-gray {--bg:#E8EDF4;--bg-2:#DFE6F0;--line:#CBD6E5}
.t-dark {
  --bg:#16233A;--bg-2:#1D2E4A;
  --ink:#FFFFFF;--ink-2:#C3CEDF;--ink-3:#8496B2;--ink-4:#7C8AA2;
  --line:#2A3B58;--line-s:#FFFFFF;
  --gold-t:#C9A961;--gold-l:#C9A961;--focus:#C9A961;
}
.t-black{
  --bg:#0E1726;--bg-2:#16233A;
  --ink:#FFFFFF;--ink-2:#C3CEDF;--ink-3:#7D8EAA;--ink-4:#738196;
  --line:#22314B;--line-s:#FFFFFF;
  --gold-t:#C9A961;--gold-l:#C9A961;--focus:#C9A961;
}
.t-white,.t-off,.t-gray,.t-dark,.t-black{background:var(--bg);color:var(--ink)}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Pretendard Variable',Pretendard,-apple-system,sans-serif;
  word-break:keep-all;
  background:var(--bg);color:var(--ink);
  /* 기본 줄 간격 — 여기를 안 고치면 «따로 지정 안 한 글»만 넓게 남아 어긋난다.
     여백(0.72)을 절반으로 → 1.36 (2026-08-26 대표 지적) */
  line-height:1.4;letter-spacing:-.018em;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  font-feature-settings:'tnum','case';
}
/* ══════════════════════════════════════════════════════════
   줄바꿈 — 「마지막 줄에 두세 글자만 남는 것」을 막는다
   2026-08-26 고동휘님 지적(PC 기준). 문장을 하나씩 고치면 글이 바뀔 때마다 또 깨진다.
   조판 규칙으로 잡아야 «앞으로 쓸 문장»까지 지켜진다.
     pretty  : 마지막 줄이 너무 짧아지지 않게 앞줄에서 미리 나눈다 (본문용)
     balance : 줄 길이를 고르게 나눈다 (2~4줄짜리 제목용)
   지원 안 하는 브라우저는 그냥 무시하므로 안전하다.
   ══════════════════════════════════════════════════════════ */
p,li,figcaption,.ask-note,.pa small,.hero-sub{text-wrap:pretty}
/* 짧은 문단(2~5줄)은 balance 가 훨씬 낫다 — 줄 길이를 고르게 나눠
   「…성격이 / 서로 다릅니다.」 같은 꼬리 줄을 없앤다.
   실측(problem.html · 1440px) : 어색한 줄바꿈 10곳 → 6곳.
   폭까지 52ch 로 조이면 5곳이 되지만 판이 흔들려 이득보다 손해가 크다 → balance 만. */
.body-m,.rd,.legal,.sp-q,.psub,.sm-note{text-wrap:balance}
h1,h2,h3,h4,.ko-xl,.ko-l,.rt,.winfo h4,.as,.sec-head .ko-xl{
  text-wrap:balance}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--gold);color:#16233A}

/* ── 이미지 자리 ── */
.ph{background:var(--bg-2);border:1px solid var(--line);display:grid;place-items:center;
  position:relative;overflow:hidden;width:100%;height:100%}
.ph::before{content:attr(data-l);font-size:.6rem;letter-spacing:.22em;color:var(--ink-4);
  text-transform:uppercase;font-weight:500;text-align:center;padding:0 14px;line-height:1.8}
.ph::after{content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(45deg,transparent 0 14px,rgba(128,128,128,.055) 14px 28px)}

/* 자리표시에 실사진이 들어가면 빗금·라벨을 끈다 (2026-08-13) */
.ph.has{border:0;background:none}
.ph.has::before,.ph.has::after{content:none}
.ph.has>img{width:100%;height:100%;object-fit:cover;display:block}


/* ── 타이포 ── */
.d1{font-family:var(--en);font-weight:400;
  font-size:clamp(3.2rem,10.5vw,9.5rem);line-height:.92;letter-spacing:-.055em;font-weight:200}
.d2{font-family:'Pretendard Variable',Pretendard,sans-serif;font-weight:400;
  font-size:clamp(2.2rem,6vw,4.8rem);line-height:1.08;letter-spacing:-.05em;font-weight:200}
.ko-xl{word-break:keep-all;font-weight:200;font-size:clamp(1.7rem,4.6vw,3.6rem);line-height:1.34;letter-spacing:-.05em}
.ko-xl b{font-weight:600}
.ko-l{word-break:keep-all;font-weight:300;font-size:clamp(1.15rem,2.3vw,1.75rem);line-height:1.5;letter-spacing:-.045em}
.ko-l b{font-weight:600}
.lab{font-size:.6rem;letter-spacing:.42em;text-transform:uppercase;color:var(--ink-4);
  font-weight:500;display:block}
.cap{font-size:.78rem;color:var(--ink-3);line-height:1.72;letter-spacing:-.01em}
.mute{color:var(--ink-3)}
/* 2026-08-26 고동휘님 요청 — 설명 텍스트를 키우되 «무게»는 그대로.
   키우면 눈이 먼저 가버려 제목을 이긴다. 그래서 굵기를 400→350 으로 내려
   «크지만 앞서지 않게» 맞춘다(회장님 방침). Pretendard Variable 이라 350 이 실제로 먹는다. */
/* 줄 간격 — 대표 지적(2026-08-26) 「너무 넓다. 절반 정도로」.
   줄 사이 «여백»은 (line-height − 1) 이다. 1.82 의 여백 0.82 를 절반으로 → 1.41.
   글자 크기는 그대로 두고 «간격»만 좁힌다 — 크기까지 줄이면 앞서 키운 것이 무의미해진다. */
.body-m{font-size:1.03rem;line-height:1.42;color:var(--ink-2);font-weight:350;
  letter-spacing:-.005em}
/* 본문이 350 으로 내려갔으니 강조도 600→560 으로 내린다.
   대비는 «절대 굵기»가 아니라 «둘 사이의 거리»다 — 거리가 벌어지면 강조가 소리를 지른다. */
.body-m b{color:var(--ink);font-weight:560}

/* ── 레이아웃 ── */
.wrap{width:100%;max-width:1560px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.wrap>*{max-width:100%}
.sec{padding:clamp(96px,14vw,250px) 0;position:relative}
.sec-grid{display:grid;grid-template-columns:clamp(90px,11vw,180px) 1fr;gap:var(--gut)}
.sec-no{position:sticky;top:110px;align-self:start}
.sec-no .n{font-feature-settings:'lnum' 1,'tnum' 1;font-family:var(--en);font-size:clamp(1.5rem,2.4vw,2.4rem);
  line-height:1;display:block;margin-bottom:6px;color:var(--ink)}
.sec-no .t{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-4);
  font-weight:500;line-height:1.7}
.sec-body{min-width:0}
.sec-head{margin-bottom:clamp(38px,5.5vw,80px)}
.sec-head .ko-xl{word-break:keep-all;margin-top:14px;max-width:20ch}
/* ④ 「이미 이만큼」 절 : 제목은 좋고 «나머지»가 작다는 지적 → 그 절의 설명만 한 단 키운다 */
.sec-head .body-m,.sec-body>.body-m{font-size:1.1rem;line-height:1.42}
.sec-lead{max-width:50ch;margin-top:22px}

/* ── 네비 ── */
body.dark-hero .nav:not(.solid){color:#fff}
body.dark-hero .nav:not(.solid) ul{color:rgba(255,255,255,.72)}
body.dark-hero .nav:not(.solid) ul a:hover{color:#fff}
body.dark-hero .nav:not(.solid) .tel{color:#fff;border-bottom-color:var(--gold)}
body.dark-hero .nav:not(.solid) .burger i,
body.dark-hero .nav:not(.solid) .burger::after{background:#fff}
.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;
  justify-content:space-between;padding:0 var(--pad);height:72px;
  background:rgba(255,255,255,0);transition:background .4s,height .4s,border-color .4s,color .4s;
  border-bottom:1px solid transparent;color:#16233A}
.nav.solid{background:rgba(255,255,255,.92);backdrop-filter:blur(18px) saturate(1.5);
  -webkit-backdrop-filter:blur(18px) saturate(1.5);height:62px;border-bottom-color:#DDE4EE}
/* 브랜드는 «정식 로고 한 장». 글자를 따로 조판하면 로고와 자간·굵기가 어긋난다. */
.nav .brand{display:inline-flex;align-items:center;padding-left:2px;line-height:0}
.nav .brand .blogo{height:26px;width:auto;display:block}
@media(max-width:820px){ .nav .brand .blogo{height:23px} }
/* 어두운 첫 화면 위에서는 갈색 글자가 묻는다 — 글자만 흰 판으로 갈아끼운다 */
body.dark-hero .nav:not(.solid) .brand .blogo{content:url("img/logo-lockup-w.png")}
.nav ul{display:flex;gap:clamp(16px,2.4vw,38px);list-style:none;font-size:.76rem;
  letter-spacing:.02em;color:#61738F;font-weight:500}
.nav ul a{transition:color .25s;padding:8px 0;display:block}
.nav ul a:hover{color:#16233A}
.nav .tel{font-size:.78rem;font-weight:500;border-bottom:1px solid var(--gold);padding-bottom:2px;
  transition:opacity .25s}
.nav .tel:hover{opacity:.55}
.nav .burger{display:none;width:34px;height:30px;border:0;background:none;cursor:pointer;
  position:relative}
/* 3선 햄버거 — 가운데 선은 가상요소로 만든다. 열리면 X 가 된다 (2026-08-21 재설계).
   종전 1px·20px 2선은 「메뉴」로 읽히지 않는다는 지적을 받았다. */
.nav .burger i{display:block;height:2px;background:#16233A;width:22px;margin:0 auto;border-radius:2px;
  position:absolute;left:0;right:0;transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .2s}
.nav .burger i:nth-child(1){top:9px}
.nav .burger i:nth-child(2){top:19px}
.nav .burger::after{content:'';position:absolute;left:0;right:0;top:14px;height:2px;width:22px;
  margin:0 auto;background:#16233A;border-radius:2px;transition:opacity .2s}
.nav.open .burger i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.nav.open .burger i:nth-child(2){transform:translateY(-5px) rotate(-45deg)}
.nav.open .burger::after{opacity:0}
.nav .burger:focus{outline:none}
.nav .burger:focus-visible{outline:2px solid var(--gold);outline-offset:5px;border-radius:10px}

/* ── 히어로 ── */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;
  padding:130px 0 34px}
.hero-mid{flex:1;display:flex;flex-direction:column;justify-content:center}
.hero-top{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:flex-start}
/* ① 회사명 줄 확대 — 대표 지적(2026-08-26). 자간이 .42em 이라 실제보다 더 작아 보인다.
   키우면서 자간을 살짝 좁혀야 «커졌다»가 느껴진다. */
/* 회사명 줄 — 대표가 두 번 지적(2026-08-26). .6 → .74 로도 부족.
   자간을 더 좁히고(.26 → .14em) 색을 진하게 해 «크게 보이는» 요인 셋을 함께 올린다.
   자간이 넓으면 글자가 흩어져 실제 크기보다 작아 보인다 — 크기만 올려서는 해결되지 않는다. */
.hero-top .lab{padding-top:2px;font-size:.94rem;letter-spacing:.14em;
  color:var(--ink-2);font-weight:500}
.hero-top .cap{font-size:.9rem}
.hero-top .rt{text-align:right;max-width:36ch;flex:none}
.hero-t{margin:clamp(26px,4.5vw,64px) 0 clamp(22px,3vw,40px)}
.hero-t .l1{display:block}
.hero-t .l2{display:block;padding-left:clamp(30px,15vw,300px);color:var(--ink-3)}
.hero-t .l2 em{font-style:normal;font-weight:600;color:var(--gold)}
.hero-sub{word-break:keep-all;max-width:46ch}
.hero-foot{border-top:1px solid var(--line-s);padding-top:20px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.kpi .v{font-feature-settings:'lnum' 1,'tnum' 1;font-family:var(--en);font-size:clamp(1.9rem,3.4vw,3rem);
  line-height:1;letter-spacing:-.03em}
.kpi .l{font-size:.68rem;color:var(--ink-3);margin-top:8px;letter-spacing:.02em;line-height:1.5}
.scroll-i{position:absolute;right:var(--pad);bottom:12px;font-size:.6rem;letter-spacing:.24em;
  color:var(--ink-4);text-transform:uppercase;display:flex;align-items:center;gap:9px}
.scroll-i::after{content:'';width:34px;height:1px;background:var(--line-s);
  animation:sc 2.6s var(--e) infinite}
@keyframes sc{0%{transform:scaleX(0);transform-origin:left}
  50%{transform:scaleX(1);transform-origin:left}
  51%{transform:scaleX(1);transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}

/* ── 01 문제 ── */
.quote{font-family:'Pretendard Variable',Pretendard,sans-serif;font-size:clamp(1.5rem,3.1vw,2.7rem);
  line-height:1.42;letter-spacing:-.05em;font-weight:200;max-width:100%;word-break:keep-all;margin-bottom:clamp(40px,5vw,72px)}
.quote em{font-style:normal;font-weight:700;color:var(--gold)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--gut)}
/* ⑤ 로테이션 본문은 «두 단으로 나누지 않는다» — 대표 지적(2026-08-26).
   두 문단이 좌우로 갈리면 눈이 오른쪽으로 건너뛰었다가 되돌아와야 해서 읽히지 않는다.
   한 줄기로 세로로 읽히게 한 단으로 합치고, 왼쪽에 붙여 시작점을 하나로 만든다.
   폭은 58ch — 한 줄이 너무 길면 다음 줄 첫 글자를 찾기 어렵다. */
.rot-item .two{grid-template-columns:1fr;gap:clamp(12px,1.4vw,18px);
  max-width:58ch;margin-right:auto}
.rot-item .two .body-m{font-size:1.1rem;line-height:1.44}
.figs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:clamp(36px,5vw,70px)}
.figs figure{aspect-ratio:4/3;border-radius:var(--r);overflow:hidden}
.figs figcaption{font-size:.66rem;color:var(--ink-4);letter-spacing:.13em;text-transform:uppercase;
  margin-top:11px}

/* ── 02 방식 ── */
.rows{border-top:1px solid var(--line-s)}
.row{display:grid;grid-template-columns:60px 1.15fr 1.45fr;gap:var(--gut);
  padding:clamp(26px,3.2vw,44px) 0;border-bottom:1px solid var(--line);
  transition:padding-left .5s var(--e),background .4s}
.row:hover{padding-left:14px;background:var(--bg-2)}
.row .rn{font-feature-settings:'lnum' 1,'tnum' 1;font-family:var(--en);font-size:1.15rem;color:var(--ink-4);line-height:1.5}
.row .rt{word-break:keep-all;font-size:clamp(1.02rem,1.6vw,1.35rem);font-weight:600;letter-spacing:-.04em;line-height:1.45}
.row .rd{font-size:.97rem;color:var(--ink-3);line-height:1.44;max-width:52ch;font-weight:350}

/* ── 03 장비 ── */
.spec{width:100%;border-collapse:collapse;font-size:.9rem}
.spec th{text-align:left;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink-4);font-weight:500;padding:0 18px 16px 0;border-bottom:1px solid var(--line-s)}
.spec td{padding:20px 18px 20px 0;border-bottom:1px solid var(--line);color:var(--ink-2)}
.spec tr:hover td{background:var(--bg-2)}
.spec .m{font-feature-settings:'lnum' 1,'tnum' 1;font-family:var(--en);font-size:1.42rem;color:var(--ink);letter-spacing:-.02em}
.spec .ar{font-size:1.02rem;color:var(--ink);font-weight:500}
.spec .bd{display:inline-block;font-size:.6rem;padding:3px 9px;border:1px solid var(--gold);
  margin-left:10px;letter-spacing:.1em;text-transform:uppercase;vertical-align:middle;color:var(--gold)}
.media3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:clamp(38px,5vw,70px)}
.media3 figure{aspect-ratio:3/4;border-radius:var(--r);overflow:hidden}
.media3 figcaption{font-size:.66rem;color:var(--ink-4);letter-spacing:.13em;text-transform:uppercase;
  margin-top:11px}

/* ── 04 안전 ── */
.certs{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-s)}
.cert{padding:clamp(24px,2.8vw,38px) clamp(18px,2vw,30px) clamp(24px,2.8vw,38px) 0;
  border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.cert:nth-child(3n){border-right:0;padding-right:0}
.cert .cn{font-family:var(--en);font-feature-settings:'lnum' 1,'tnum' 1;font-family:'Pretendard Variable',Pretendard,sans-serif;font-size:.95rem;color:var(--ink-4);
  display:block;margin-bottom:14px}
.cert b{display:block;font-size:.98rem;font-weight:600;letter-spacing:-.04em;
  margin-bottom:9px;line-height:1.5}
.cert span{font-size:.8rem;color:var(--ink-3);line-height:1.42}
.legal{margin-top:clamp(30px,4vw,52px);padding-left:22px;border-left:1px solid var(--line);
  font-size:.82rem;color:var(--ink-3);line-height:1.44;max-width:62ch}
.legal b{color:var(--ink);font-weight:600}

/* ── 05 사례 ── */
.works{display:grid;gap:clamp(38px,5vw,80px)}
.work{display:grid;grid-template-columns:1.25fr 1fr;gap:var(--gut);align-items:end}
.work.rev{grid-template-columns:1fr 1.25fr}
.work.rev .wimg{order:2}
.wimg{aspect-ratio:16/10;border-radius:var(--r);overflow:hidden}
.work.small .wimg{aspect-ratio:4/3}
.winfo .lab{margin-bottom:12px}
.winfo h4{word-break:keep-all;font-size:clamp(1.2rem,2.1vw,1.75rem);font-weight:600;letter-spacing:-.045em;
  line-height:1.35;margin-bottom:12px}
.winfo p{font-size:.87rem;color:var(--ink-3);line-height:1.82;max-width:38ch}
.works-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--gut);margin-top:clamp(38px,5vw,80px)}

/* ── 06 요금 ── */
.plans{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-s)}
.plan{padding:clamp(28px,3.2vw,44px) clamp(20px,2.4vw,34px) clamp(30px,3.4vw,48px) 0;
  border-right:1px solid var(--line)}
.plan:last-child{border-right:0;padding-right:0}
.plan .pn{font-family:var(--en);font-size:1.6rem;letter-spacing:-.02em}
.plan .ps{font-size:.76rem;color:var(--ink-3);margin:8px 0 26px}
.plan .pa{font-feature-settings:'lnum' 1,'tnum' 1;font-family:var(--en);font-size:2.5rem;letter-spacing:-.03em;line-height:1}
.plan .pa small{font-size:.82rem;color:var(--ink-3);font-family:'Pretendard Variable',sans-serif;
  letter-spacing:-.02em;margin-left:5px}
.plan ul{list-style:none;margin-top:24px;font-size:.83rem;color:var(--ink-3);line-height:2.05}
.plan ul li{display:flex;gap:11px}
.plan ul li::before{content:'';width:10px;height:1px;background:var(--ink-4);margin-top:.95em;flex:none}
.memo{margin-top:clamp(30px,4vw,50px);padding:18px 22px;border:1px dashed var(--ink-4);
  font-size:.83rem;color:var(--ink-2);line-height:1.45}

/* ── 07 문의 ── */
.ct-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--gut);align-items:end}
.ct-grid .d2 em{font-style:normal;font-weight:700;color:var(--gold)}
.ct-lead{font-size:clamp(1rem,1.9vw,1.3rem);line-height:1.7;font-weight:300;color:var(--ink-2);
  margin:clamp(20px,3vw,36px) 0 clamp(26px,3.6vw,44px);max-width:40ch}
.ct-lead b{color:var(--ink);font-weight:500}
.big-tel{font-feature-settings:'lnum' 1,'tnum' 1;font-family:var(--en);font-size:clamp(1.9rem,4.2vw,3.6rem);
  letter-spacing:-.03em;line-height:1;display:inline-flex;align-items:center;gap:20px;
  border-bottom:1px solid var(--line);padding-bottom:14px;transition:border-color .4s,gap .4s var(--e)}
.big-tel:hover{border-bottom-color:var(--ink);gap:30px}
.big-tel .ar{font-size:.5em}
.ct-info{display:grid;border-top:1px solid var(--line)}
.ci{display:grid;grid-template-columns:80px 1fr;gap:18px;padding:16px 0;
  border-bottom:1px solid var(--line)}
.ci .k{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-4);
  font-weight:500;padding-top:5px}
.ci .v{color:var(--ink-2);font-size:.92rem;line-height:1.6}
.ci .v small{display:block;font-size:.78rem;color:var(--ink-3);margin-top:3px}

/* ── 푸터 ── */
.foot{padding:0 0 46px;font-size:.75rem;color:var(--ink-3)}
.foot .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:30px;line-height:1.9}
.foot b{color:var(--ink-2);font-weight:500}

/* ── 리빌 ── */
.rv{opacity:0;transform:translateY(24px);transition:opacity 1s var(--e),transform 1s var(--e)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}
  .scroll-i::after{animation:none;transform:scaleX(1)}
}

/* ── 반응형 ── */
@media(max-width:1180px){
  .work,.work.rev{grid-template-columns:1fr}
  .work.rev .wimg{order:0}
  .winfo{margin-top:20px}
  .works-2{grid-template-columns:1fr}
}
@media(max-width:980px){
  .sec-grid{grid-template-columns:1fr;gap:26px}
  .sec-no{position:static;display:flex;align-items:baseline;gap:14px}
  .sec-no .n{font-feature-settings:'lnum' 1,'tnum' 1;margin-bottom:0}
  .row{grid-template-columns:36px 1fr;gap:18px}
  .row .rd{grid-column:2;margin-top:8px}
  .certs{grid-template-columns:1fr 1fr}
  .cert:nth-child(3n){border-right:1px solid var(--line);padding-right:clamp(18px,2vw,30px)}
  .cert:nth-child(2n){border-right:0;padding-right:0}
  .two,.ct-grid{grid-template-columns:1fr}
  .plans{grid-template-columns:1fr}
  .plan{border-right:0;border-bottom:1px solid var(--line);padding-right:0}
  .plan:last-child{border-bottom:0}
  .media3{grid-template-columns:1fr}
}
@media(max-width:820px){
  .nav ul{display:none}
  .nav .burger{display:grid}
  .nav .tel{display:none}
    /* 모바일 메뉴 — 전면 패널 (2026-08-21 재설계)
     종전에는 옅은 밑줄 목록이라 «어디를 눌러야 하는지»가 안 보였다.
     항목을 키우고 번호를 붙여 순서를 주고, 화면을 덮어 집중시킨다. */
  .nav.open > ul{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;
    height:calc(100vh - 71px);height:calc(100dvh - 71px);
    gap:0;background:#fff;padding:14px var(--pad) 28px;overflow-y:auto;
    box-shadow:0 18px 40px rgba(16,35,58,.10);counter-reset:mnav}
  .nav.open > ul > li{padding:0;border-bottom:1px solid #EDF1F7}
  .nav.open > ul > li:last-child{border:0}
  .nav.open > ul > li > a{font-size:1.32rem;font-weight:700;letter-spacing:-.03em;color:var(--ink);
    padding:19px 4px;display:flex;align-items:center;gap:14px;min-height:56px}
  .nav.open > ul > li > a::before{counter-increment:mnav;content:counter(mnav,decimal-leading-zero);
    font-family:var(--en);font-size:.66rem;font-weight:600;color:var(--gold);letter-spacing:.1em;
    min-width:22px}
  .nav.open .sub{counter-reset:none}
  .nav.open .sub a::before{content:none !important}
  .nav.open > ul > li > a.on{color:var(--ink)}
  .nav.open > ul > li > a.on::after{display:none}
  /* 메뉴 아래 연락 수단 — 목록만 있고 다음 행동이 없던 것을 채운다 */
  .nav.open > ul::after{content:'0507 · 1446 · 0474';display:block;margin-top:auto;
    padding:22px 4px 4px;border-top:1px solid #EDF1F7;
    font-family:var(--en);font-size:1.05rem;color:var(--ink);letter-spacing:.02em}
  .hero-t .l2{padding-left:clamp(16px,8vw,80px)}
  .hero-foot{grid-template-columns:1fr 1fr;gap:24px 20px}
  .hero-top .rt{text-align:left;max-width:100%}
  .figs{grid-template-columns:1fr}
  .scroll-i{display:none}
}
@media(max-width:520px){
  .certs{grid-template-columns:1fr}
  .cert,.cert:nth-child(3n){border-right:0;padding-right:0}
  .quote{max-width:100%}
}

/* ═══════════════════════════════════════════════════
   멀티페이지 · 포트폴리오 (v4 추가)
   ═══════════════════════════════════════════════════ */

.nav ul a.on{color:#16233A;position:relative}
.nav ul a.on::after{content:'';position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--gold)}

/* ── 페이지 상단 ── */
.phead{padding:clamp(170px,19vw,290px) 0 clamp(60px,7vw,110px)}
.phead .wrap{display:grid;grid-template-columns:clamp(90px,11vw,180px) 1fr;gap:var(--gut)}
.phead .pno{font-feature-settings:'lnum' 1,'tnum' 1;font-family:'Pretendard Variable',Pretendard,sans-serif;font-size:clamp(1.5rem,2.4vw,2.4rem);line-height:1}
.phead .ptxt{min-width:0}
.phead .pen{font-family:var(--en);font-weight:400;font-feature-settings:'lnum' 1;
  font-size:clamp(2.6rem,7vw,6rem);line-height:1.0;letter-spacing:-.03em;font-weight:400;margin:12px 0 0}
.phead .pen .ac{font-style:normal;font-weight:700;color:var(--gold)}
.phead .pko{margin-top:clamp(18px,2.2vw,30px);max-width:22ch}
.phead .psub{margin-top:clamp(14px,1.6vw,22px);font-size:clamp(1.04rem,1.65vw,1.26rem)}
.phead .psub{margin-top:clamp(20px,2.6vw,34px);max-width:46ch;font-weight:350}
.phead .pline{margin-top:clamp(34px,4.5vw,64px);height:1px;background:var(--line-s)}

/* ── 다음 페이지 ── */
.nextp{border-top:1px solid var(--line);padding:clamp(40px,5vw,72px) 0}
.nextp a{display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  transition:padding-left .5s var(--e)}
.nextp a:hover{padding-left:12px}
.nextp .nl{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-4)}
.nextp .nt{font-feature-settings:'lnum' 1,'tnum' 1;font-family:'Pretendard Variable',Pretendard,sans-serif;font-size:clamp(1.6rem,4vw,3.2rem);
  letter-spacing:-.03em;line-height:1.1}
.nextp .na{font-feature-settings:'lnum' 1,'tnum' 1;font-family:'Pretendard Variable',Pretendard,sans-serif;font-size:clamp(1.4rem,3vw,2.4rem)}

/* ── 포트폴리오 ── */
.pf-count{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,64px);align-items:end;
  padding-bottom:clamp(40px,5vw,70px);border-bottom:1px solid var(--line-s)}
.pf-count .big{font-feature-settings:'lnum' 1,'tnum' 1;font-family:var(--en);font-size:clamp(6rem,20vw,18rem);
  line-height:.78;letter-spacing:-.05em}
.pf-count .bt{font-size:clamp(1rem,1.8vw,1.4rem);font-weight:300;line-height:1.5;
  letter-spacing:-.04em;padding-bottom:clamp(10px,2vw,26px)}
.pf-bars{display:grid;gap:0;margin-top:clamp(40px,5vw,70px)}
.pf-bar{display:grid;grid-template-columns:clamp(88px,11vw,150px) 1fr 44px;gap:clamp(14px,2vw,28px);
  align-items:center;padding:clamp(13px,1.6vw,20px) 0;border-bottom:1px solid var(--line)}
.pf-bar .bl{font-size:.86rem;font-weight:600;letter-spacing:-.035em}
.pf-bar .bg{height:2px;background:var(--line);position:relative}
.pf-bar .bg i{position:absolute;left:0;top:0;bottom:0;background:var(--gold);display:block}
.pf-bar .bn{font-feature-settings:'lnum' 1,'tnum' 1;font-family:var(--en);font-size:1.3rem;text-align:right;line-height:1}

.pf-hero{margin-top:clamp(60px,8vw,120px)}
.pf-hero .wimg{aspect-ratio:16/10}
@media(max-width:720px){.pf-hero .wimg{aspect-ratio:4/3}}
.pf-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gut);
  margin-top:clamp(24px,3vw,40px);padding-top:clamp(20px,2.4vw,30px);border-top:1px solid var(--line)}
.pf-meta .mk{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-4);
  display:block;margin-bottom:8px}
.pf-meta .mv{font-size:.92rem;font-weight:500;letter-spacing:-.03em;line-height:1.5}

/* 묶음이 보이려면 «안의 여백 < 사이의 여백» 이어야 한다.
   종전엔 카드 안 최대 여백(16px)과 카드 사이 여백(16px)이 같아
   어디까지가 한 장인지 눈으로 가를 수 없었다(2026-08-21 대표 지적). */
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);
  column-gap:clamp(16px,2.2vw,30px);
  row-gap:clamp(46px,4.6vw,68px);            /* 안의 최대(14px)의 3배 이상 */
  margin-top:clamp(50px,6vw,90px)}
/* 사진이 전부 16:9다. 틀을 4:3으로 두면 좌우 25%가 잘려 나간다(2026-08-21 실측).
   틀을 사진에 맞춰 «찍은 그대로» 보이게 한다. */
.pf-item figure{aspect-ratio:16/9;overflow:hidden;border-radius:var(--r);margin-bottom:14px}
.pf-item .lab{margin-bottom:5px}
.pf-item h4{font-size:clamp(1rem,1.5vw,1.22rem);font-weight:600;letter-spacing:-.04em;
  line-height:1.4;margin-bottom:7px}
.pf-item p{font-size:.83rem;color:var(--ink-3);line-height:1.45}

.pf-list{width:100%;border-collapse:collapse;font-size:.88rem;margin-top:clamp(50px,6vw,90px)}
.pf-list th{text-align:left;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-4);font-weight:500;padding:0 16px 14px 0;border-bottom:1px solid var(--line-s)}
.pf-list td{padding:16px 16px 16px 0;border-bottom:1px solid var(--line);color:var(--ink-2)}
.pf-list tr:hover td{background:var(--bg-2)}
.pf-list .nm{font-weight:600;color:var(--ink);letter-spacing:-.035em}

@media(max-width:1180px){.pf-grid{grid-template-columns:1fr 1fr}}
@media(max-width:980px){
  .phead .wrap{grid-template-columns:1fr;gap:18px}
  .phead .pno{font-feature-settings:'lnum' 1,'tnum' 1;display:block}
  .pf-count{grid-template-columns:1fr;gap:14px;align-items:start}
  .pf-meta{grid-template-columns:1fr 1fr;gap:22px}
}
@media(max-width:640px){
  .pf-grid{grid-template-columns:1fr}
  .pf-list .hide-m{display:none}
}

/* ═══════════════════════════════════════════════════
   히어로 평수 계산기 (v5) — 핵심 액션을 첫 화면에
   ═══════════════════════════════════════════════════ */
.hero-grid2{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(28px,5vw,80px);
  align-items:end;margin-top:clamp(28px,4vw,56px)}
.hero-msg .ko-hero{font-weight:200;font-size:clamp(2rem,5.2vw,4.2rem);line-height:1.28;
  letter-spacing:-.055em;word-break:keep-all}
.hero-msg .ko-hero b{font-weight:700}
.hero-msg .sub{margin-top:clamp(16px,2.2vw,28px);max-width:34ch}

.calc{border:1px solid var(--line);background:var(--bg-2);padding:clamp(20px,2.6vw,32px)}
.calc .ct{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-4);
  font-weight:600;margin-bottom:4px}
.calc .cs{font-size:1.02rem;font-weight:700;letter-spacing:-.04em;margin-bottom:16px}
.calc-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.calc label{display:block;font-size:.66rem;letter-spacing:.1em;color:var(--ink-3);
  margin-bottom:5px;font-weight:500}
.calc input,.calc select{width:100%;border:1px solid var(--line);background:var(--bg);
  padding:11px 12px;font-family:inherit;font-size:.92rem;color:var(--ink);border-radius:2px;
  -webkit-appearance:none;appearance:none;letter-spacing:-.02em}
.calc input:focus,.calc select:focus{border-color:var(--gold)}
.calc select{background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),
  linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);
  background-position:calc(100% - 15px) 52%,calc(100% - 11px) 52%;
  background-size:4px 4px,4px 4px;background-repeat:no-repeat;padding-right:30px}
.calc-btn{width:100%;border:0;background:var(--ink);color:#fff;padding:13px;font-family:inherit;
  font-size:.9rem;font-weight:600;cursor:pointer;border-radius:2px;letter-spacing:-.02em;
  transition:opacity .25s}
.calc-btn:hover{opacity:.85}
.calc-out{margin-top:16px;padding-top:16px;border-top:1px solid var(--line);display:none}
.calc-out.on{display:block}
.calc-out .om{font-size:1.5rem;font-weight:200;letter-spacing:-.05em;line-height:1.2}
.calc-out .om b{font-weight:700}
.calc-out .od{font-size:.82rem;color:var(--ink-3);margin-top:6px;line-height:1.65}
.calc-out .oa{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:.84rem;
  font-weight:600;border-bottom:1px solid var(--gold);padding-bottom:3px}
.calc-note{font-size:.68rem;color:var(--ink-4);margin-top:12px;line-height:1.6}

@media(max-width:980px){.hero-grid2{grid-template-columns:1fr;gap:34px}}

/* ═══════════════════════════════════════════════════
   v6 · 히어로 강화 — 배경 이미지 + 즉시 문의
   ═══════════════════════════════════════════════════ */
.hero.big{min-height:100svh;padding:0;display:block;position:relative;overflow:hidden;
  background:#F7F9FC}
.hero.big .hbg{position:absolute;inset:0;z-index:0}
.hero.big .hbg img{width:100%;height:100%;object-fit:cover;object-position:86% 52%}
.hero.big .hbg .ph{border:0}
.hero.big .hbg>svg{position:absolute;inset:0;width:100%;height:100%}

/* ⚠️ 사진을 넣은 뒤 표제가 묻혔다. 표제가 앉는 왼쪽 45%를 거의 흰색으로 눌러 둔다.
   흰 글자가 아니라 잉크 글자이므로, 베일은 「어둡게」가 아니라 「밝게」 가야 한다. */
.hero.big .hbg::after{content:'';position:absolute;inset:0;
  background:
    radial-gradient(108% 60% at 2% 44%, rgba(255,255,255,.95) 0%,
      rgba(255,255,255,.58) 40%, rgba(255,255,255,0) 70%),
    linear-gradient(100deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.94) 30%,
    rgba(255,255,255,.78) 44%,rgba(255,255,255,.38) 56%,rgba(255,255,255,.10) 68%,
    rgba(255,255,255,0) 78%)}
.hero.big .hin{position:relative;z-index:1;min-height:100svh;display:flex;flex-direction:column;
  justify-content:space-between;padding-top:clamp(96px,12vh,150px);
  padding-bottom:clamp(28px,4vh,46px);color:var(--ink)}
.hero.big .lab{color:var(--ink-4)}
.hero.big .cap{color:var(--ink-3)}

.hero-lead2{max-width:19ch}
.hero-lead2 .up{font-size:clamp(1.1rem,2.1vw,1.65rem);font-weight:400;color:#A8842F;
  letter-spacing:-.04em;margin-bottom:clamp(8px,1.2vw,14px);display:block}
.hero-lead2 .dn{font-size:clamp(2.2rem,5.6vw,4.6rem);font-weight:200;line-height:1.18;
  letter-spacing:-.055em;color:var(--ink);word-break:keep-all}
.hero-lead2 .dn b{font-weight:700}
.hero-sub2{margin-top:clamp(18px,2.4vw,30px);max-width:38ch;color:var(--ink-2);
  font-size:clamp(.92rem,1.5vw,1.08rem);line-height:1.75;font-weight:300}

/* 즉시 문의 폼 */
.ask{background:rgba(255,255,255,.82);backdrop-filter:blur(18px) saturate(1.4);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);
  border:1px solid rgba(22,35,58,.1);box-shadow:0 12px 40px rgba(22,35,58,.08);padding:clamp(20px,2.6vw,30px);max-width:430px}
.ask .at{font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:#A8842F;
  font-weight:600;margin-bottom:6px}
.ask .as{font-size:1.02rem;font-weight:700;letter-spacing:-.04em;margin-bottom:16px;color:var(--ink)}
.ask-row{display:grid;gap:9px;margin-bottom:11px}
.ask input,.ask select{width:100%;border:1px solid var(--line);
  background:#fff;padding:12px 13px;font-family:inherit;font-size:.92rem;
  color:var(--ink);border-radius:2px;-webkit-appearance:none;appearance:none;letter-spacing:-.02em}
.ask input::placeholder{color:var(--ink-4)}
.ask input:focus,.ask select:focus{border-color:#A8842F;background:#fff}
.ask select option{background:#fff;color:var(--ink)}
.ask-btn{width:100%;border:0;background:var(--ink);color:#fff;padding:14px;font-family:inherit;
  font-size:.94rem;font-weight:700;cursor:pointer;border-radius:2px;letter-spacing:-.02em;
  transition:opacity .25s}
.ask-btn:hover{opacity:.88}
.ask-note{font-size:.76rem;color:var(--ink-4);margin-top:11px;line-height:1.62}
.ask-msg{font-size:.86rem;margin-top:12px;padding:11px 13px;border-radius:2px;display:none}
.ask-msg.ok{display:block;background:#F5EEDC;color:#7A5E1E;border:1px solid #E3D3A8}
.ask-msg.err{display:block;background:#FAEDED;color:#9A4444;border:1px solid #E8C9C9}

.hero-btm{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;
  border-top:1px solid var(--ink);padding-top:18px}
.hero-btm .v{font-family:var(--en);font-size:clamp(1.7rem,3vw,2.6rem);line-height:1;
  letter-spacing:-.03em;color:var(--ink);font-feature-settings:'lnum' 1}
/* ③ 하단 4단 확대 — 대표 지적. 첫 화면에서 «무엇을 하는 회사인가»를 말하는 자리다.
   작으면 읽지 않고 지나간다. */
/* 하단 4단 — 대표 두 번째 지적(2026-08-26). 설명 줄(.66rem)이 주 항목의 3/4밖에 안 돼
   «있으나 안 읽히는» 상태였다. 셋(번호·항목·설명)을 함께 올려 계단을 유지한다. */
.hero-btm .l{font-size:1.02rem;color:var(--ink);margin-top:10px;letter-spacing:0;
  line-height:1.5;font-weight:600;word-break:keep-all}
.hero-btm .l span{display:block;font-size:.82rem;color:var(--ink-3);font-weight:400;margin-top:4px}
/* 번호는 「크기」가 아니라 「순서」다 — 숫자 절과 겹치지 않게 작고 옅게 */
.hero-btm .v{font-size:.88rem !important;color:var(--gold) !important;letter-spacing:.05em}

.hero-mid2{flex:1;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,80px);
  align-items:center}

@media(max-width:980px){
  .hero-mid2{grid-template-columns:1fr;gap:32px;align-items:start;padding-top:20px}
  .ask{max-width:100%}
  /* 좁은 화면에서는 통째로 뺀다(대표 지시) — 첫 화면은 문의 폼 하나에 집중 */
  .hero-btm{display:none}
  .hero-lead2{max-width:100%}
}

/* ── 페이지 상단 배경 이미지 (v6) ── */
.phead.img{position:relative;overflow:hidden;background:#F7F9FC}
.phead.img .pbg{position:absolute;inset:0;z-index:0}
.phead.img .pbg img{width:100%;height:100%;object-fit:cover;object-position:center 50%}
.phead.img .pbg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.88) 42%,
    rgba(247,249,252,.55) 100%)}
.phead.img .wrap{position:relative;z-index:1}
.phead.img .pen,.phead.img .pko{color:var(--ink)}
.phead.img .pno{color:var(--ink-4)}
.phead.img .psub{color:var(--ink-3)}
.phead.img .pline{background:var(--line)}

/* ═══════════════════════════════════════════════════
   v7 · 히어로 재설계 — 추상 배경 + 타이포 스케일
   ═══════════════════════════════════════════════════ */
.hero.v7{background:
  radial-gradient(ellipse 70% 55% at 78% 22%, rgba(201,169,97,.16) 0%, transparent 62%),
  radial-gradient(ellipse 55% 70% at 96% 62%, rgba(46,68,104,.11) 0%, transparent 66%),
  radial-gradient(ellipse 90% 60% at 10% 95%, rgba(46,68,104,.06) 0%, transparent 60%),
  linear-gradient(158deg,#FCFDFE 0%,#F4F7FB 46%,#EDF2F8 100%)}
.hero.v7 .hbg{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero.v7 .hbg svg{position:absolute;right:-6%;top:-8%;width:78%;height:118%;
  opacity:.5;filter:blur(.4px)}
.hero.v7 .hbg::after{display:none}
.hero.v7 .hin{color:var(--ink)}

/* 라벨 — 선 + 텍스트 */
.h-eyebrow{display:flex;align-items:center;gap:16px;margin-bottom:clamp(16px,2.2vw,26px)}
.h-eyebrow::before{content:'';width:clamp(32px,4.4vw,62px);height:1.5px;background:#A8842F;flex:none}
.h-eyebrow span{font-size:clamp(1.02rem,1.85vw,1.42rem);color:#A8842F;font-weight:600;
  letter-spacing:-.04em;white-space:nowrap}

/* 대형 타이포 — 스케일 대비 */
.h-title{margin:0 0 clamp(20px,2.8vw,34px)}
.h-title.one .t1{font-size:clamp(2.1rem,5.3vw,4.5rem);font-weight:200;line-height:1.14;
  letter-spacing:-.062em;color:var(--ink-2);display:block;white-space:nowrap}
.h-title.one .t1 em{font-style:normal;font-weight:800;color:var(--ink)}
@media(max-width:640px){.h-title.one .t1{white-space:normal}}
.h-title .t1{display:block;font-size:clamp(2.4rem,6.4vw,5.4rem);font-weight:800;
  line-height:1.06;letter-spacing:-.062em;color:var(--ink)}
.h-title .t2{display:block;font-size:clamp(2rem,5.2vw,4.3rem);font-weight:200;
  line-height:1.12;letter-spacing:-.06em;color:var(--ink-2);margin-top:2px}
.h-title .t2 em{font-style:normal;font-weight:700;color:var(--ink)}

/* ② 히어로 리드 「문단 깔끔하게 정리」 — 대표 지적(2026-08-26).
   증상 : 「…떨어지기 / 전에 먼저 갑니다.」 로 셋째 줄이 생겨 덩어리가 흐트러졌다.
   실측 : 둘째 문장이 한 줄에 들어가려면 362px 인데 칸이 400px 로 «아슬아슬»했다.
          굵은 강조가 섞여 계산보다 넓어지면 바로 넘친다.
   처방 : 폭을 46ch(≈500px)로 넉넉히 줘 «문장 하나 = 한 줄» 을 보장한다.
   ⛔ 좁히면 안 된다. 좁힐수록 줄이 늘어 더 어수선해진다(첫 시도에서 확인).
   ⛔ <br>이 이미 있으므로 balance 를 걸지 않는다 — 의도한 끊김이 흐트러진다. */
.h-sub{max-width:46ch;font-size:clamp(1.06rem,1.8vw,1.4rem);line-height:1.45;
  color:var(--ink-2);font-weight:320;letter-spacing:-.035em}
.h-sub b{font-weight:600;color:var(--ink)}

/* 신뢰 배지 */
.h-trust{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(22px,3vw,34px)}
.h-trust span{font-size:.74rem;color:var(--ink-2);background:rgba(255,255,255,.72);
  border:1px solid var(--line);padding:7px 13px;border-radius:99px;white-space:nowrap;
  backdrop-filter:blur(8px);letter-spacing:-.02em}
.h-trust span b{color:var(--ink);font-weight:700}

@media(max-width:980px){
  .h-sub{max-width:100%}
  .hero.v7 .hbg svg{right:-30%;top:auto;bottom:-10%;width:130%;height:60%;opacity:.35}
}

/* ═══ 260804 회의 반영 — 로테이션 · 견적 · 팝업 ═══ */

/* 문제제기 로테이션 */
.rot-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:clamp(26px,3.2vw,42px)}
.rot-tab{font:inherit;font-size:12px;letter-spacing:.04em;padding:8px 15px;border-radius:100px;
  border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit;cursor:pointer;
  opacity:.5;transition:.28s}
.rot-tab:hover{opacity:.82}
.rot-tab.on{opacity:1;background:#2E4468;color:#fff;border-color:#2E4468}
.t-dark .rot-tab,.t-black .rot-tab{border-color:rgba(255,255,255,.22)}
.rot-stage{position:relative;min-height:clamp(230px,26vw,290px)}
.rot-item{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .5s ease,transform .5s ease,visibility .5s}
.rot-item.on{opacity:1;visibility:visible;transform:none;position:relative}
.rot-more{display:inline-block;margin-top:clamp(24px,3vw,38px);
  border-bottom:1px solid currentColor;padding-bottom:4px}

/* 평수 견적기 */
.est{max-width:640px}
.est:not(.est-wide){border:1px solid rgba(0,0,0,.12);border-radius:6px;padding:clamp(22px,2.6vw,34px)}
.t-dark .est,.t-black .est{border-color:rgba(255,255,255,.18)}
.est-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}
.est-top output{font-size:clamp(26px,3.2vw,38px);font-weight:800;letter-spacing:-.03em}
.est input[type=range]{width:100%;accent-color:#2E4468;height:3px}
.est-scale{display:flex;justify-content:space-between;font-size:11px;opacity:.5;margin-top:8px}
.est-res{display:grid;grid-template-columns:1fr 1fr;gap:16px;
  margin:clamp(20px,2.4vw,30px) 0;padding-top:clamp(18px,2.2vw,26px);border-top:1px solid rgba(0,0,0,.1)}
.t-dark .est-res,.t-black .est-res{border-top-color:rgba(255,255,255,.16)}
.est-res>div{display:flex;flex-direction:column;gap:6px}
.est-res b{font-size:clamp(15px,1.7vw,19px);letter-spacing:-.02em}
.est-btn{display:block;text-align:center;text-decoration:none}
@media(max-width:560px){.est-res{grid-template-columns:1fr}}

/* 레퍼런스 그리드 */
.ref-nums{display:flex;gap:clamp(22px,3.2vw,44px);margin-bottom:clamp(18px,2.2vw,28px)}
.ref-nums b{display:block;font-size:clamp(24px,2.9vw,36px);font-weight:800;letter-spacing:-.03em;line-height:1}
/* ④ 「이미 이만큼」 절 — 제목 크기는 좋으나 나머지가 작다는 지적. 숫자 라벨을 키운다 */
.ref-nums span{font-size:13.5px;opacity:.55;letter-spacing:.02em}
.ref-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  gap:clamp(12px,1.6vw,20px);align-items:stretch;transition:opacity .26s}
.ref-grid.swap{opacity:0}
.ref-col{display:flex;flex-direction:column;gap:clamp(12px,1.6vw,20px);min-width:0}
.ref-col .ref-sm{flex:1;display:flex;flex-direction:column}
.ref-lg{display:flex;flex-direction:column}
.ref-lg .ph{flex:1 1 auto;min-height:0}
.ref-lg .lab,.ref-lg h4,.ref-sm .lab,.ref-sm h4{flex:0 0 auto}
.ref-grid .lab{display:block;line-height:1.5}
.ref-grid h4{line-height:1.4}
.ref-tabs{margin-bottom:clamp(14px,1.8vw,22px)}
.ref-grid a{text-decoration:none;color:inherit;display:block;min-width:0}
.ref-grid .ph{width:100%;aspect-ratio:16/10;margin-bottom:8px}
.ref-lg .ph{aspect-ratio:auto}
.ref-grid h4{font-size:clamp(14px,1.6vw,18px);letter-spacing:-.02em;margin-top:2px}
@media(max-width:720px){.ref-grid{grid-template-columns:1fr}.ref-lg .ph{aspect-ratio:16/10}}

/* 론칭 팝업 */
.pop-wrap{position:fixed;inset:0;background:rgba(10,14,22,.55);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:18px;z-index:999;
  opacity:0;transition:opacity .4s}
.pop-wrap.on{opacity:1}
/* 팝업이 떠 있는 동안 헤더를 «함께 가린다» (2026-08-21).
   종전에는 팝업(z 999)이 헤더(z 100) 위에 깔리면서, 헤더는 «보이는데 눌리지 않는»
   상태가 됐다 — 대표가 메뉴 버튼이 안 먹는다고 지적한 원인.
   보이면 눌려야 하고, 못 누를 것은 보이지 말아야 한다. */
body:has(.pop-wrap.on) .nav{opacity:0;pointer-events:none;transition:opacity .25s}
body:has(.pop-wrap.on) .fab{opacity:0;pointer-events:none}
body.pop-open .nav{opacity:0;pointer-events:none;transition:opacity .25s}
body.pop-open .fab{opacity:0;pointer-events:none}
/* 메뉴가 열려 있는 동안에도 플로팅 버튼을 감춘다 — 목록 위에 떠서 항목을 가린다 */
body:has(.nav.open) .fab{opacity:0;pointer-events:none;transition:opacity .2s}
.pop{position:relative;background:#fff;color:#111;border-radius:8px;max-width:440px;width:100%;
  min-width:0;padding:clamp(24px,4vw,44px);transform:translateY(14px);transition:transform .45s;
  max-height:88vh;overflow-y:auto}
.pop-wrap.on .pop{transform:none}
.pop h3{font-size:clamp(21px,2.6vw,27px);font-weight:800;letter-spacing:-.03em;margin:10px 0 14px;line-height:1.35}
.pop p{font-size:13.5px;line-height:1.75;opacity:.72;word-break:keep-all}
.pop-n{display:flex;gap:18px;flex-wrap:wrap;margin:clamp(18px,2.4vw,28px) 0;
  padding:16px 0;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1)}
.pop-n b{display:block;font-size:22px;font-weight:800;line-height:1}
.pop-n span{font-size:10.5px;opacity:.55}
.pop-cta{background:#F2F5FA;border-radius:4px;padding:12px 14px;font-size:13px;
  text-align:center;margin-bottom:16px}
.pop .ask-btn{width:100%;display:block;text-align:center;text-decoration:none}
.pop-later{display:block;width:100%;margin-top:10px;background:none;border:none;
  font:inherit;font-size:12.5px;opacity:.5;cursor:pointer;padding:8px}
.pop-x{position:absolute;top:14px;right:16px;background:none;border:none;
  font-size:24px;line-height:1;opacity:.35;cursor:pointer}

/* 견적기 2단 — 좌 슬라이더 · 우 기기 이미지 */
.est-wide{display:grid;grid-template-columns:1.15fr .85fr;gap:0;
  max-width:900px;border:1px solid rgba(0,0,0,.12);border-radius:6px;overflow:hidden;
  padding:0;background:#fff}
.est-wide .est-l{padding:clamp(22px,2.6vw,34px);border-right:1px solid rgba(0,0,0,.08)}
.est-r{display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:#fff;padding:clamp(18px,2.2vw,30px);gap:10px}
.est-r img{width:min(240px,80%);height:240px;object-fit:contain;object-position:center;
  transition:opacity .25s}
.est-r::after{content:'실제 설치 장비';font-size:10.5px;letter-spacing:.06em;color:#9AA3B0}
.est-res b{display:block}
.est-res em{display:block;font-style:normal;font-size:11.5px;opacity:.55;margin-top:3px}
@media(max-width:760px){.est-wide{grid-template-columns:1fr}
.est-wide .est-l{border-right:none;border-top:1px solid rgba(0,0,0,.08)}
.est-r{order:-1;padding:16px}.est-r img{height:170px}}

/* 장비 카드 이미지 */
.dev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,24px);
  margin-top:clamp(18px,2.2vw,30px)}
/* 제품 카드 — 모바일에서는 이것이 사양표를 «대신한다» (2026-08-21 재설계).
   그래서 이름·평수를 크게 세우고, 값 줄은 항목명은 옅게 값은 진하게 갈라 읽히게 한다. */
.dev-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;
  transition:box-shadow .25s,border-color .25s}
.dev-card:hover{border-color:#C9D3E2;box-shadow:0 10px 26px rgba(16,35,58,.07)}
.dev-ph{background:linear-gradient(180deg,#FAFBFD 0%,#fff 100%);padding:20px;
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;height:200px}
.dev-ph img{width:150px;height:160px;object-fit:contain;object-position:center}
.dev-b{padding:16px 18px 18px}
.dev-b .nm{font-family:var(--en);font-size:1.24rem;font-weight:700;letter-spacing:-.02em;
  color:var(--ink);line-height:1;display:flex;align-items:center;gap:8px}
.dev-b .nm .bd{font-family:var(--kr);font-size:.6rem;font-weight:700;letter-spacing:.06em;
  padding:3px 8px;border:1px solid var(--gold);color:var(--gold);border-radius:100px;line-height:1}
.dev-b .sz{font-size:.82rem;color:var(--ink-2);font-weight:600;margin-top:7px;letter-spacing:-.02em;opacity:1}
.dev-b ul{list-style:none;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}
.dev-b li{font-size:.72rem;color:var(--ink-4);line-height:1.6;display:flex;
  justify-content:space-between;align-items:baseline;gap:14px;padding:5px 0;opacity:1}
.dev-b li b{font-size:.8rem;color:var(--ink);font-weight:700;text-align:right}
@media(max-width:820px){.dev-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.dev-grid{grid-template-columns:1fr}}

/* 문의 페이지 폼 */
.ct-form{margin-top:clamp(26px,3.2vw,40px);max-width:520px}
.ask-col{display:flex;flex-direction:column;gap:10px;margin:14px 0 16px}
.ask-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ct-form textarea{font:inherit;font-size:13.5px;padding:12px 14px;border-radius:4px;
  border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:inherit;resize:vertical}
.ct-form textarea::placeholder{color:rgba(255,255,255,.4)}
@media(max-width:560px){.ask-2{grid-template-columns:1fr}}

/* 문의 페이지 폼 — 다크 섹션 정합 */
.t-black .ct-form{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.14);
  border-radius:6px;padding:clamp(22px,2.6vw,32px)}
.t-black .ct-form .at{color:#C9A961}
.t-black .ct-form .as{color:rgba(255,255,255,.85)}
.t-black .ct-form input[type=text],.t-black .ct-form select{
  font:inherit;font-size:13.5px;padding:12px 14px;border-radius:4px;
  border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#fff}
.t-black .ct-form input::placeholder{color:rgba(255,255,255,.42)}
.t-black .ct-form select{color:rgba(255,255,255,.9)}
.t-black .ct-form select option{color:#131A26;background:#fff}
.t-black .ct-form select:invalid{color:rgba(255,255,255,.42)}
.t-black .ct-form .ask-btn{background:#C9A961;color:#131A26;border:none;font-weight:800}
.t-black .ct-form .ask-btn:hover{background:#D8BC7C}

/* 플로팅 빠른 문의 */
.fab{position:fixed;right:clamp(14px,2vw,26px);bottom:clamp(14px,2.4vw,26px);
  z-index:900;display:flex;align-items:center;gap:10px}
.fab-tel{width:52px;height:52px;border-radius:50%;background:#fff;color:#2E4468;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(46,68,104,.18);box-shadow:0 6px 18px rgba(19,26,38,.16);
  transition:transform .2s}
.fab-tel:hover{transform:translateY(-2px)}
.fab-ask{height:52px;display:flex;align-items:center;padding:0 22px;border-radius:100px;
  background:#1B2A44;color:#fff;text-decoration:none;font-size:14px;font-weight:700;
  letter-spacing:-.01em;box-shadow:0 8px 22px rgba(19,26,38,.28);transition:transform .2s,background .2s}
.fab-ask:hover{transform:translateY(-2px);background:#2E4468}
@media(max-width:560px){
  .fab-ask{height:48px;padding:0 18px;font-size:13px}
  .fab-tel{width:48px;height:48px}
}

/* ===================================================================
   접근성·모바일 보정  (2026-08-06 · uiux-critic 검수 반영)
   여기 있는 규칙은 앞의 선언을 이기도록 파일 끝에 둔다.
   =================================================================== */

/* ── 1. 포커스 표시 — 키보드 사용자가 지금 어디 있는지 알아야 한다 ── */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--focus,#A8842F);outline-offset:2px;border-radius:2px}
.t-dark :focus-visible,.t-black :focus-visible{outline-color:#C9A961}
/* 폼 안쪽은 배경이 밝아 골드가 묻히지 않도록 별도 지정 */
.ask input:focus-visible,.ask select:focus-visible,
.ct-form input:focus-visible,.ct-form select:focus-visible,
.ct-form textarea:focus-visible{outline:2px solid #A8842F;outline-offset:1px}

/* 건너뛰기 링크 — 매번 메뉴를 지나지 않게 */
.skip{position:absolute;left:-9999px;top:0;z-index:999;
  background:#16233A;color:#fff;padding:12px 20px;font-size:14px;font-weight:600}
.skip:focus{left:0}

/* 화면에는 안 보이되 스크린리더는 읽는 라벨 */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ── 2. 이탤릭 전면 금지 (회장님 지시) — 스코프 누락 대비 안전망 ── */
em,i,address{font-style:normal}

/* ── 3. 표가 좁은 화면에서 잘리지 않게 ── */
.spec-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.spec-wrap:focus-visible{outline:2px solid var(--focus,#A8842F);outline-offset:2px}
/* 좁은 화면에서는 사양표를 감춘다 (2026-08-21 대표 지적).
   5열을 375px 에 밀어 넣으면 「벽걸이 · / 탁상」처럼 모든 값이 두 줄로 접혀 읽히지 않는다.
   표를 카드로 바꿔 봤더니 **바로 아래 제품 카드와 내용이 그대로 겹쳤다** —
   같은 정보를 두 번 보여줄 이유가 없고, 아래 카드는 사진까지 있어 더 낫다.
   → 모바일은 제품 카드 하나로 간다. 표는 넓은 화면에서 «한눈에 비교」하는 용도로 남긴다. */
@media(max-width:720px){
  .spec-wrap{display:none}
  .dev-grid{margin-top:clamp(20px,3vw,30px)}
  /* 카드 1열에서는 사진을 낮춰 목록이 빨리 보이게 */
  .dev-ph{height:168px}
  .dev-ph img{width:132px;height:140px}
}

/* ── 4. 떠 있는 버튼이 주 버튼을 덮지 않게 ── */
@media(max-width:980px){
  .ask{padding-bottom:76px}
  .fab{bottom:calc(14px + env(safe-area-inset-bottom,0px))}
}

/* ── 5. 흐리게 처리한 글자들의 대비 확보 ── */
/* 미선택 탭만 흐린 색. 선택된 탭은 앞의 흰 글자 규칙을 건드리지 않는다. */
.rot-tab:not(.on){opacity:1;color:var(--ink-3)}
.dev-b .sz,.est-scale,.ref-nums span,.pop-n span,.est-res em{opacity:1;color:var(--ink-3)}
.pop-later{opacity:1;color:var(--ink-3)}
.pop-x{opacity:1;color:var(--ink-3)}
.pop-x:hover{color:var(--ink)}

/* ── 6. 손가락으로 누를 수 있는 크기 (최소 44px) ── */
/* ⛔ display 를 건드리지 않는다. 종전엔 grid 를 얹어 «넓은 화면에서 숨김»(135행)을
   같은 자세로 뒤에서 덮어써, 메뉴가 다 보이는데도 햄버거가 떠 있었다(2026-08-21 대표 지적).
   크기 확보는 크기로만 한다. 보임·숨김은 820px 미디어쿼리 한 곳이 정한다. */
.nav .burger{width:44px;height:44px;place-items:center}
.lab.rot-more,.ref-more,a.lab[href]{display:inline-block;padding:11px 0}
.est-scale{padding-top:4px}
input[type=range]{height:24px;background:transparent}
input[type=range]::-webkit-slider-thumb{width:22px;height:22px}

/* ── 7. 탭 지연 제거 ── */
body{touch-action:manipulation}

/* ── 8. 움직임을 줄여 달라는 설정을 존중한다 ── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .rv{opacity:1!important;transform:none!important}
}

/* ── 9. 스크립트가 안 돌아도 글이 보이게 ── */
.no-js .rv{opacity:1;transform:none}

/* ── 10. 고정 메뉴에 제목이 가리지 않게 ── */
[id]{scroll-margin-top:88px}

/* ── 11. 작은 글자에 쓰는 골드는 진한 쪽으로 ── */
.spec .bd{color:var(--gold-t);border-color:var(--gold-t)}
.t-dark .spec .bd,.t-black .spec .bd{color:var(--gold);border-color:var(--gold)}

/* ── 12. 팝업 안에서 배경이 밀리지 않게 ── */
.pop-wrap{overscroll-behavior:contain}

/* ── 13. 강세 표기 — em을 대체하는 스타일 훅 ── */
.ac{font-style:normal;font-weight:700;color:var(--gold)}
.d2 .ac,.quote .ac,.hero-t .l2 .ac{font-weight:700;color:var(--gold)}
.h-title .ac{color:var(--ink);font-weight:800}
.nav .brand .ac{color:inherit;font-weight:700}

/* ── 14. 효과가 없는데 비용만 드는 흐림 제거 ── */
.ask{backdrop-filter:none;-webkit-backdrop-filter:none}

/* ── 15. 탭 패널이 숨겨졌을 때 확실히 감추기 ── */
.rot-item[hidden]{display:none}

/* ── 16. 폼이 보일 땐 떠 있는 버튼을 감춘다 ── */
.fab{transition:opacity .25s,visibility .25s}
.fab.hide{opacity:0;visibility:hidden;pointer-events:none}

/* ── 17. 팝업 제목이 h2가 되어도 같은 모양 ── */
.pop .pop-h{font-size:clamp(1.3rem,3.4vw,1.7rem);font-weight:300;line-height:1.4;
  letter-spacing:-.04em;margin:12px 0 14px}
.pop .pop-h b{font-weight:700}

/* ── 18. 손가락으로 누를 수 있는 크기 마무리 ── */
.nav .brand{display:inline-flex;align-items:center;min-height:44px}
.ci .v a{display:inline-block;padding:13px 0}
input[type=range]{height:44px;padding:0;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:3px;background:var(--line)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;
  width:24px;height:24px;border-radius:50%;background:var(--ink);margin-top:-10px;
  border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.2)}

/* ── 19. 큰 글자 골드는 한 단계 진하게 (AA Large 3:1) ── */
.quote em,.quote .ac,.d2 .ac,.hero-t .l2 em,.hero-t .l2 .ac{color:var(--gold-l)}
.t-dark .quote em,.t-dark .quote .ac,.t-black .quote em,.t-black .quote .ac,
.t-dark .d2 .ac,.t-black .d2 .ac{color:var(--gold)}

/* ── 20. 본문에 쓰이던 밝은 골드를 읽히는 색으로 ── */
.hero-lead2 .up,.ask .at,.h-eyebrow span{color:#7D693C}
.t-dark .hero-lead2 .up,.t-dark .ask .at,.t-dark .h-eyebrow span,
.t-black .hero-lead2 .up,.t-black .ask .at,.t-black .h-eyebrow span{color:var(--gold)}

/* ── 21. 탭 버튼도 손가락 크기로 ── */
.rot-tab{min-height:44px;padding:11px 16px}

/* ── 22. 손가락 크기 마무리 (앞 규칙보다 구체적으로) ── */
.est input[type=range]{height:44px}
a.lab[href],.lab.rot-more,.ref-more{min-height:44px;display:inline-flex;align-items:center}

/* ── 23. 어두운 구역의 버튼 — 배경·글자를 뒤집는다 ──
   .ask-btn은 background:var(--ink) / color:#fff 인데,
   어두운 테마에서는 --ink가 흰색이 되어 흰 배경 + 흰 글자가 된다.
   지금 홈페이지에는 이 조합이 없지만, 새 화면에서 반드시 터진다.
   (2026-08-10 디자인 시스템 구축 중 발견) */
.t-dark .ask-btn,.t-black .ask-btn{background:#fff;color:#16233A}
.t-dark .ask-btn:hover,.t-black .ask-btn:hover{opacity:1;background:#E8EDF4}
/* 문의 폼의 골드 버튼은 더 구체적인 규칙이 있어 그대로 유지된다 */

/* ══ 24. 리뉴얼 (2026-08-12) — 「3초 안에 무슨 회사인지」 + 「문의가 남는가」 ══
   원래 문제: 홈페이지에 들어와도 뭐 하는 회사인지 모름 · 문의 0건
   → h1이 서비스를 말하고, 문의 경로를 첫 화면에 세 갈래로 둔다 */

/* 문의 경로 — 폼 말고도 즉시 누를 수 있는 두 갈래 */
.h-ways{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(20px,2.6vw,30px)}
.h-ways .way{display:flex;flex-direction:column;gap:3px;
  padding:12px 18px;border:1px solid var(--line);background:rgba(255,255,255,.72);
  min-height:44px;justify-content:center;transition:.22s;min-width:0}
.h-ways .way:hover{border-color:var(--ink);background:#fff;transform:translateY(-1px)}
.h-ways .wk{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-t);font-weight:700}
.h-ways .wv{font-size:.95rem;font-weight:600;color:var(--ink);letter-spacing:-.02em;
  font-feature-settings:'lnum' 1,'tnum' 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:520px){
  .h-ways{flex-direction:column}
  .h-ways .way{width:100%}
}

/* 히어로 제목 — 서비스를 말하는 문장이므로 한 번에 읽히게 */
.h-title.one .t1{display:block;line-height:1.12}
.h-title.one em{color:var(--ink);font-weight:800}

/* 신뢰 지표를 제목 가까이 */
.h-trust{margin-top:clamp(16px,2vw,24px)}

/* ── 인증 실물 (2026-08-12) ─────────────────────────────────────
   숫자·글자만 있던 자리에 서류를 펼친다.
   병원·요양기관에서는 인증이 곧 구매 사유다 */
.cert-imgs{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.2vw,16px);
  margin:clamp(28px,3.4vw,44px) 0 clamp(24px,3vw,36px)}
.cert-imgs figure{background:#fff;border:1px solid var(--line);border-radius:3px;padding:10px}
.cert-imgs img{width:100%;display:block;border-radius:2px}
.cert-imgs figcaption{margin-top:10px;text-align:center;font-size:.68rem;
  color:var(--ink-4);line-height:1.55}
.cert-imgs figcaption b{display:block;font-size:.76rem;font-weight:600;
  color:var(--ink);margin-bottom:3px;letter-spacing:-.02em}
@media(max-width:820px){
  .cert-imgs{grid-template-columns:repeat(2,1fr)}
}

/* ── 히어로에 사진이 깔린 뒤 (2026-08-13) ──────────────────────────
   표제의 비강조부가 font-weight:200 · --ink-2 였다. 흰 판 위에서만 성립하는 굵기다.
   사진 위에서는 획이 사라진다 — 대비 수치가 아니라 「획 굵기」가 원인이다.
   위계는 색이 아니라 굵기(300 ↔ 800)로 세운다. */
.hero.big .h-title.one .t1{font-weight:300;color:var(--ink)}
.hero.big .h-title.one .t1 em{font-weight:800;color:var(--ink)}
.hero.big .h-sub{color:var(--ink-2);font-weight:400}

/* ⛔ 위 베일(.hero.big .hbg::after)이 실제로는 한 번도 켜진 적이 없었다.
   아래쪽 `.hero.v7 .hbg::after{display:none}` 이 같은 특정도(0,2,1)로 뒤에 있어 이겼기 때문이다.
   히어로는 class="hero big v7" 이라 두 규칙에 동시에 걸린다.
   → 특정도를 한 단계 올려(0,3,1) 되살린다. 굵기(300↔800)로 세운 위계는 그대로 두고
     「밝은 판」을 깔아 잉크 글자가 어두운 사진 위에 놓이지 않게 한다. (2026-08-13) */
.hero.big.v7 .hbg::after{display:block}
/* 오른쪽 위 캡션은 베일이 닿지 않는 자리(사진이 그대로 보이는 곳)에 앉는다.
   회색(--ink-3)으로는 1.7:1 밖에 안 나온다 — 실측값이다. 잉크색·중간 굵기로 올린다. */
.hero.big .hero-top .cap{color:var(--ink);font-weight:500}

/* 견적 계산기 — 조용한 모델 안내 (병원·요양이 주력인데 평수만으로는 M2000에 닿지 않는다) */
.est-q{margin:10px 0 0;font-size:.88rem;line-height:1.6;color:var(--ink-2);
  padding:10px 12px;border-left:2px solid var(--gold);background:rgba(201,169,97,.07)}
.est-q b{color:var(--ink);font-weight:700}

/* ⛔ 문장 속 <b> 가 블록으로 튀는 사고 (2026-08-13)
   `.est-res b{display:block}` 이 그 아래 안내 문장의 <b> 까지 잡아 한 문장을 세 토막으로 끊었다.
   ⚠️ 다만 이 사이트에서는 `<li>향료 용량<b>200ml</b></li>` 처럼 **블록 <b> 가 의도된 사양 표기**다.
      문서(소개서·브로슈어)에 넣은 전역 차단을 그대로 옮기면 사양표가 깨진다.
      → 「문장」인 자리만 막는다. 새 문장 블록을 만들 때 여기에 추가한다. */
.est-q b, .legal b, .body-m b, p.cap b{
  display:inline !important; margin:0 !important;
  font-size:inherit !important; line-height:inherit !important}

/* ── 공간 유형별 문제와 제안 (문제 페이지) ─────────────────────────
   회장님 지적 : 「문제 부분에 병원 카테고리밖에 없다. 모든 부분에 제안이 있어야 한다」
   → 공간 7종을 각각 「먼저 느끼는 사람 / 문제 / 저희 제안 / 사례」로 세운다. */
.sp-list{margin-top:clamp(26px,3.4vw,44px);border-top:1px solid var(--line)}
.sp{display:grid;grid-template-columns:clamp(150px,17vw,230px) 1fr;
  gap:clamp(18px,3vw,48px);padding:clamp(26px,3.4vw,44px) 0;border-bottom:1px solid var(--line)}
.sp-k{position:sticky;top:96px;align-self:start}
.sp-n{display:block;font-family:var(--en);font-size:clamp(26px,3.4vw,42px);
  line-height:1;color:var(--gold-l);letter-spacing:.02em}
.sp-k h3{margin:10px 0 8px;font-size:clamp(1.02rem,1.5vw,1.24rem);font-weight:700;
  letter-spacing:-.03em;color:var(--ink);line-height:1.35}
.sp-who{display:block;font-size:.78rem;line-height:1.6;color:var(--ink-4);letter-spacing:-.01em}
.sp-who b{color:var(--ink-2);font-weight:600}
.sp-q{margin:0 0 14px;font-size:clamp(1.12rem,1.9vw,1.5rem);font-weight:300;
  line-height:1.5;letter-spacing:-.035em;color:var(--ink)}
.sp-q em{font-style:normal;font-weight:700;color:var(--ink)}
.sp-b .body-m{margin:0}
.sp-fix{margin-top:clamp(16px,2vw,24px);padding:clamp(14px,1.8vw,20px) clamp(16px,2vw,24px);
  /* ⚠️ 이 절은 t-off 섹션 안에 있다. --paper-2 를 쓰면 섹션 배경과 같은 색이라 상자가 안 보인다. */
  background:var(--bg);border:1px solid var(--line);border-left:2px solid var(--gold)}
.sp-fix .lab{display:block;margin-bottom:10px;color:var(--gold-t)}
.sp-fix ul{margin:0;padding:0;list-style:none}
.sp-fix li{position:relative;padding-left:16px;margin-bottom:8px;
  font-size:.92rem;line-height:1.42;letter-spacing:-.015em;color:var(--ink-2)}
.sp-fix li:last-child{margin-bottom:0}
.sp-fix li::before{content:'';position:absolute;left:0;top:.72em;
  width:6px;height:1px;background:var(--gold)}
.sp-fix li b{color:var(--ink);font-weight:700}
.sp-more{display:inline-block;margin-top:clamp(14px,1.8vw,20px);
  border-bottom:1px solid var(--line);padding-bottom:4px}
@media(max-width:820px){
  .sp{grid-template-columns:1fr;gap:14px}
  .sp-k{position:static;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
  .sp-n{font-size:22px}
  .sp-k h3{margin:0}
  .sp-who{width:100%}
}

/* 여는 절 사진 3장 — 「모든 공간」을 말하는 절이므로 한 업종만 보여주면 안 된다 (2026-08-13) */
.figs3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:clamp(36px,5vw,70px)}
.figs3 figure{aspect-ratio:4/3;border-radius:var(--r);overflow:hidden}
.figs3 figcaption{font-size:.66rem;color:var(--ink-4);letter-spacing:.13em;
  text-transform:uppercase;margin-top:11px;line-height:1.5}
@media(max-width:820px){.figs3{grid-template-columns:1fr 1fr;gap:10px}
  .figs3>div:last-child{grid-column:1/-1}}
@media(max-width:520px){.figs3{grid-template-columns:1fr}
  .figs3>div:last-child{grid-column:auto}}

/* ── 네 번의 만남 (센터스 페이지 첫 절) ─────────────────────────
   2026-08-12 회의 16:15 — "첫 번째 나와야 되는 게 우리는 그 네 번 찾아가는 거" */
.visits{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  margin-top:clamp(26px,3.4vw,44px)}
.vs{padding:clamp(18px,2.2vw,26px);background:var(--bg-2);border-top:2px solid var(--line)}
.vs.on{background:var(--ink);border-top-color:var(--gold)}
.vs.on>b,.vs.on span{color:#fff}
.vs span b{display:inline !important;font-size:inherit;line-height:inherit}
.vs.on span b{color:var(--gold)}
.vn{font-family:var(--en);font-size:clamp(24px,2.4vw,30px);line-height:1;
  color:var(--gold-l);margin-bottom:12px}
.vs>b{display:block;font-size:clamp(.98rem,1.3vw,1.12rem);font-weight:700;
  letter-spacing:-.03em;color:var(--ink);margin-bottom:8px}
.vs span{display:block;font-size:.86rem;line-height:1.7;letter-spacing:-.015em;color:var(--ink-3)}
@media(max-width:820px){.visits{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.visits{grid-template-columns:1fr}}

/* ── 향 라이브러리 (향료 페이지) ───────────────────────────────── */
.sc-list{margin-top:clamp(24px,3vw,40px);border-top:1px solid var(--line)}
.sc{display:grid;grid-template-columns:clamp(160px,18vw,240px) 1fr;gap:clamp(16px,2.6vw,44px);
  padding:clamp(22px,2.8vw,36px) 0;border-bottom:1px solid var(--line)}
.sc-n{display:block;font-family:var(--en);font-size:clamp(24px,2.8vw,34px);line-height:1;color:var(--gold-l)}
.sc-k h3{margin:9px 0 4px;font-size:clamp(1rem,1.4vw,1.2rem);font-weight:700;
  letter-spacing:-.03em;color:var(--ink)}
.sc-en{display:block;font-family:var(--en);font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-4)}
.sc-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;
  padding-bottom:14px;border-bottom:1px solid var(--line-s)}
.sc-notes .lab{display:block;margin-bottom:5px;color:var(--ink-4)}
.sc-notes b{font-size:.9rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);line-height:1.5}
.sc-use{display:flex;gap:14px;align-items:baseline;margin-top:14px}
.sc-use .lab{flex:none;color:var(--gold-t)}
.sc-use p{margin:0;font-size:.92rem;font-weight:600;color:var(--ink);letter-spacing:-.02em}
.sc-note{margin:8px 0 0;font-size:.88rem;line-height:1.72;color:var(--ink-3);letter-spacing:-.015em}
.sc-more{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,34px);
  margin-top:clamp(26px,3.2vw,42px)}
.sc-more>div{padding:clamp(16px,2vw,24px);background:var(--bg);border:1px solid var(--line)}
.sc-more .lab{display:block;margin-bottom:9px;color:var(--gold-t)}
.sc-more p{margin:0;font-size:.9rem;line-height:1.75;color:var(--ink-2);letter-spacing:-.015em}
@media(max-width:820px){
  .sc{grid-template-columns:1fr;gap:12px}
  .sc-k{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
  .sc-n{font-size:20px}.sc-k h3{margin:0}
  .sc-notes{grid-template-columns:1fr;gap:8px}
  .sc-more{grid-template-columns:1fr}
}

/* 문의 접수 후 소개서 내려받기 (2026-08-12 회의 18:56) */
.ask-msg .dl{display:inline-block;margin-top:10px;padding:9px 16px;
  background:var(--ink);color:#fff;font-size:.86rem;font-weight:600;letter-spacing:-.02em;
  border-radius:var(--r);text-decoration:none}
.ask-msg .dl:hover{background:var(--ink-2)}
.sm-note{display:inline-block;margin-top:10px;font-size:.93rem;line-height:1.4;color:var(--ink-4);font-weight:350}
.sm-note b{color:var(--ink-2);font-weight:600}

/* 메뉴 서브(제품 → 장비 / 향료) */
.nav .has-sub{position:relative}
.nav .cev{display:inline-block;width:5px;height:5px;margin-left:6px;vertical-align:1px;
  border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;
  transform:rotate(45deg);opacity:.55}
/* ⛔ 부모와 서브메뉴 사이에 빈틈을 두면 안 된다.
   `top:calc(100% + 10px)` 로 10px 을 띄웠더니 마우스를 내리는 순간 hover 가 끊겨
   **메뉴가 사라져 누를 수가 없었다.** 간격은 「위치」가 아니라 「투명한 padding」으로 만든다 —
   그래야 그 10px 도 hover 판정 안에 들어온다. (2026-08-14 회장님 지적) */
.nav .sub{position:absolute;left:50%;top:100%;transform:translateX(-50%) translateY(-6px);
  display:flex;flex-direction:column;gap:2px;min-width:120px;margin:0;list-style:none;
  padding:10px 0 0;                       /* 위 10px = 부모와 이어 주는 다리 */
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s}
.nav .sub::before{content:'';position:absolute;left:0;right:0;top:0;height:10px}  /* 다리(투명) */
.nav .sub li{background:var(--bg);border-left:1px solid var(--line);border-right:1px solid var(--line)}
.nav .sub li:first-child{border-top:1px solid var(--line);border-radius:var(--r) var(--r) 0 0;padding-top:6px}
.nav .sub li:last-child{border-bottom:1px solid var(--line);border-radius:0 0 var(--r) var(--r);padding-bottom:6px;
  box-shadow:0 12px 32px rgba(16,35,58,.10)}
.nav .has-sub:hover .sub,.nav .has-sub:focus-within .sub,.nav .has-sub.on .sub{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.nav .sub a{display:block;padding:8px 14px;white-space:nowrap}

/* 모바일(버거 메뉴) — hover 가 없으므로 서브메뉴를 그냥 펼쳐 둔다.
   안 그러면 「향료」에 도달할 방법이 아예 없다. */
@media(max-width:820px){
  .nav .cev{display:none}
  /* ⛔ `.nav .has-sub.on .sub` 가 클래스 4개(0,4,0)라 여기(0,3,0)를 이긴다.
     그래서 `transform:translateX(-50%)` 가 살아남아 **서브메뉴가 왼쪽 화면 밖으로 밀려났다.**
     자리도 잡히고 클릭도 되는데 글자만 안 보였다 — 특정도를 맞춰 준다. (2026-08-14) */
  .nav.open .has-sub .sub,
  .nav.open .has-sub.on .sub{position:static;transform:none;left:auto;height:auto;
    opacity:1;visibility:visible;pointer-events:auto;
    padding:10px 0 0;margin-left:14px;border-left:1px solid var(--line);box-shadow:none}
  .nav.open .sub::before{display:none}
  .nav.open .sub li{border:0;border-radius:0;padding:0;background:none}
  .nav.open .sub li:last-child{box-shadow:none}
  /* 손가락으로 누르는 자리다 — 세로 44px 이상 확보한다 */
  .nav.open .sub a{padding:13px 0 13px 34px;min-height:48px;display:flex;align-items:center;
    font-size:1.02rem !important;font-weight:500;color:var(--ink-2);letter-spacing:-.02em;
    font-size:.76rem;color:var(--ink-3)}
  .nav.open .sub a.on{color:var(--ink)}
}

/* ⛔ 목록 마지막 항목의 구분선은 지운다 (2026-08-15, 회장님 지적 → 검사기 strayline.py 신설)
   구분선은 「다음 항목과의 경계」이지 「목록의 바닥」이 아니다.
   뒤에 아무것도 없는데 선만 남으면 「덜 만든 표」로 보인다.
   ⚠️ 뒤에 바로 내용이 이어지는 목록(닫는 선)은 건드리지 않는다 — 여백 28px 이상만 해당. */
.rows .row:last-child,
.sp-list .sp:last-child,
.sc-list .sc:last-child,
.pf-bars .pf-bar:last-child,
.ct-info .ci:last-child{border-bottom:0}
