/* ─────────────────────────────────────────────────────────
   ③ 「채움」 — 인테리어 시공. 공통 스타일

   ★ 앞 두 템플릿과 «조판 원칙» 이 또 다르다:
     H1 웨딩   = 가운데 정렬 · 여백 · 장식        (예식의 우아함)
     H2 법무   = 좌측 정렬 · 격자선 · 번호 인덱스  (법률의 정확성)
     ③ 인테리어 = **사진이 주인공.** 선을 긋지 않는다.
                 «사진 크기 차이» 와 여백만으로 리듬을 만든다. 글자는 비켜선다.
     업종이 조판을 정한다.

   ⚠ 클래스에 접두사 it- 를 붙였다. `page` `home` 같은 이름은 워드프레스 body_class 와
     부딪혀 규칙이 본문 전체에 걸린다(정평에서 실제로 화면이 2열로 쪼개졌다).
   ───────────────────────────────────────────────────────── */

:root{
  --paper:#FAF9F6; --card:#FFFFFF; --sand:#EFEBE4; --line:#E2DDD4;
  --forest:#2C3A33;        /* 주조 — 깊은 초록. 나무·돌의 그늘색 */
  --forest-2:#3E5148;
  --moss:#7C8F72;          /* ⚠ 테두리·장식 «전용». 크림 위 글자로 쓰면 미달이다 */
  --moss-text:#5A6B52;     /* 밝은 배경 위 «글자» (paper 5.39) */
  --moss-2:#B9C7AE;        /* «어두운 판» 위 글자 (forest 6.60 · forest-2 4.9) */
  --ink:#222623; --ink-2:#464B47;
  /* ⚠ ink-3 은 «두 배경» 에 놓인다 — paper(#FAF9F6)와 sand(#EFEBE4).
     처음에 #6B716C 로 두었다가 paper 4.85 는 통과하고 «더 어두운» sand 에서 4.20 으로 미달했다.
     한 토큰이 여러 배경에 놓이면 «가장 불리한 쪽» 이 기준이다. 밝게 되돌리지 말 것.
     지금 값: sand 4.61 · paper 5.22 */
  --ink-3:#646A62;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
/* ⚠ display·max-width 를 «명시» 한다. 블록 테마가 body 를 그리드로 만들어 본문을 찌그러뜨린다. */
body{background:var(--paper);color:var(--ink);
  font-family:'Pretendard',-apple-system,sans-serif;line-height:1.85;
  word-break:keep-all;-webkit-font-smoothing:antialiased;
  display:block;max-width:none;margin:0;padding:0;gap:0}
img{max-width:100%;display:block}
.serif{font-family:'Noto Serif KR',serif}
.mono{font-family:'IBM Plex Mono',monospace}
.it-wrap{max-width:1240px;margin:0 auto;padding:0 26px}

/* ── 헤더 ─────────────────────────────── */
.it-top{position:sticky;top:0;z-index:60;background:rgba(250,249,246,.94);
  backdrop-filter:blur(10px)}
.it-top .it-wrap{display:flex;align-items:center;gap:34px;height:82px}
.it-bi{display:flex;flex-direction:column;text-decoration:none;white-space:nowrap;line-height:1.15}
.it-bi b{font-family:'Noto Serif KR',serif;font-weight:600;font-size:23px;color:var(--forest);letter-spacing:.06em}
.it-bi small{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.28em;
  color:var(--moss-text);font-weight:500;margin-top:3px}
.it-gnb{display:flex;gap:32px;margin-left:auto}
.it-gnb a{font-size:15.5px;color:var(--ink-2);text-decoration:none;white-space:nowrap;
  padding:9px 0;position:relative}
.it-gnb a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;
  background:var(--moss);transform:scaleX(0);transform-origin:left;transition:transform .28s}
.it-gnb a:hover::after,.it-gnb a.on::after{transform:scaleX(1)}
.it-gnb a.on{color:var(--forest);font-weight:600}
.it-top .it-cta{background:var(--forest);color:#fff;text-decoration:none;font-weight:600;
  font-size:14.5px;padding:13px 24px;white-space:nowrap;letter-spacing:.03em}
.it-top .it-cta:hover{background:var(--forest-2)}
.it-burger{display:none;width:42px;height:42px;border:0;background:none;cursor:pointer;
  margin-left:auto;flex-direction:column;gap:5px;align-items:center;justify-content:center}
.it-burger i{display:block;width:23px;height:1.5px;background:var(--ink)}

/* ── 서브 히어로 — 사진이 크고 글자는 아래에 얹는다 ── */
.it-shero{position:relative;height:420px;overflow:hidden;background:var(--forest)}
.it-shero .bg{position:absolute;inset:0;background-size:cover;background-position:center 55%;opacity:.62}
.it-shero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(44,58,51,.15) 0%,rgba(44,58,51,.82) 78%)}
.it-shero .it-wrap{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;
  justify-content:flex-end;padding-bottom:44px;color:#fff}
.it-shero .en{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.34em;
  color:var(--moss-2);margin-bottom:12px}
.it-shero h1{font-family:'Noto Serif KR',serif;font-weight:500;font-size:40px;letter-spacing:.04em}
.it-crumb{border-bottom:1px solid var(--line)}
.it-crumb .it-wrap{display:flex;align-items:center;gap:9px;height:52px;font-size:13.5px;color:var(--ink-3)}
.it-crumb a{color:var(--ink-3);text-decoration:none}
.it-crumb a:hover{color:var(--forest)}
.it-crumb b{color:var(--forest);font-weight:600}

/* ── 섹션 — 격자선을 쓰지 않는다. 여백과 사진 크기로 나눈다 ── */
.it-sec{padding:104px 0}
.it-shead{max-width:640px;margin-bottom:52px}
.it-shead .en{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.3em;
  color:var(--moss-text);font-weight:500;margin-bottom:14px}
.it-shead h2{font-family:'Noto Serif KR',serif;font-weight:500;font-size:34px;
  letter-spacing:.02em;line-height:1.5}
.it-shead h2 em{font-style:normal;color:var(--moss-text)}
.it-shead p{margin-top:16px;font-size:16px;color:var(--ink-3);line-height:1.95}

/* ── 버튼 ─────────────────────────────── */
.it-btn{display:inline-flex;align-items:center;gap:9px;font-size:15.5px;font-weight:600;
  padding:15px 30px;text-decoration:none;letter-spacing:.03em;transition:background .2s,color .2s}
.it-btn.fill{background:var(--forest);color:#fff}
.it-btn.fill:hover{background:var(--forest-2)}
.it-btn.line{border:1px solid var(--moss);color:var(--moss-text)}
.it-btn.line:hover{background:var(--moss-text);color:#fff}   /* ⚠ --moss 로 채우면 흰 글자가 미달 */
.it-btn.ghost{border:1px solid rgba(255,255,255,.55);color:#fff}
.it-btn.ghost:hover{background:#fff;color:var(--forest)}

/* ── 시공사례 카드 — 이 업종의 «전부» ─────────────
   ⚠ 사진은 파일에서 3:4 로 맞춰 두었다. 여기서 고정 높이로 다시 자르지 말 것. */
.it-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.it-card{display:block;text-decoration:none;color:inherit;position:relative}
.it-card .ph{position:relative;overflow:hidden;background:var(--sand)}
.it-card .ph img{width:100%;aspect-ratio:3/4;object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.it-card:hover .ph img{transform:scale(1.045)}
.it-card .meta{position:absolute;left:0;right:0;bottom:0;padding:18px 18px 16px;
  background:linear-gradient(180deg,transparent,rgba(34,38,35,.86));color:#fff}
/* ⚠ 여기에 한글이 들어간다(분류·지역). 라틴 라벨 감각으로 11.5px 로 줄였다가 하한에 걸렸다. */
.it-card .meta .k{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;
  color:var(--moss-2);margin-bottom:5px}
.it-card .meta h3{font-family:'Noto Serif KR',serif;font-weight:500;font-size:19px;letter-spacing:.02em}
.it-card .bd{padding:16px 2px 0}
.it-card .bd p{font-size:14.5px;color:var(--ink-3);line-height:1.8}
.it-card .spec{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.it-card .spec span{font-size:12.5px;color:var(--moss-text);border:1px solid var(--line);
  padding:3px 10px;letter-spacing:.02em}

/* ── 평형·예산 필터 ─────────────────────────────
   ⚠ 값을 «숫자» 로 들고 data 속성에 구간을 박아 두면 필터가 JS 몇 줄로 끝난다. */
.it-filter{display:flex;flex-wrap:wrap;gap:26px;margin-bottom:38px;
  padding-bottom:26px;border-bottom:1px solid var(--line)}
.it-fgroup{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.it-fgroup>b{font-size:13px;color:var(--ink-3);font-weight:600;letter-spacing:.04em;margin-right:2px}
.it-fbtn{border:1px solid var(--line);background:none;cursor:pointer;font:inherit;
  font-size:13.5px;color:var(--ink-2);padding:7px 15px;transition:all .18s}
.it-fbtn:hover{border-color:var(--moss)}
.it-fbtn.on{background:var(--forest);border-color:var(--forest);color:#fff}
.it-fnone{padding:48px 0;text-align:center;color:var(--ink-3);font-size:15px}

/* ── 비포/애프터 — 좌우 분할 ──────────────────────
   ⚠ 슬라이더가 아니라 «분할» 이다. 슬라이더는 «같은 프레임» 을 전제하는데
      고객이 그런 짝을 늘 갖고 있지는 않다. 분할은 다른 각도라도 정직하게 읽힌다.
   ⚠ 두 사진은 «같은 비율» 이어야 한다(3:4). 비율이 다르면 나란히 뒀을 때 어긋나 보인다. */
.it-ba{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.it-ba figure{position:relative;margin:0}
.it-ba img{width:100%;aspect-ratio:3/4;object-fit:cover}
.it-ba figcaption{position:absolute;left:14px;top:14px;
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.2em;font-weight:500;
  padding:6px 12px;background:rgba(250,249,246,.94);color:var(--forest)}
.it-ba figure.after figcaption{background:var(--forest);color:#fff}

/* ── 절차 타임라인 (H2 에서 물려받아 초록으로) ───── */
.it-tl{position:relative;padding-left:36px}
.it-tl::before{content:"";position:absolute;left:11px;top:10px;bottom:10px;width:1px;background:var(--line)}
.it-tl .it{position:relative;padding:0 0 34px}
.it-tl .it:last-child{padding-bottom:0}
.it-tl .it::before{content:"";position:absolute;left:-30px;top:7px;width:11px;height:11px;
  border-radius:50%;background:var(--paper);border:2px solid var(--moss)}
.it-tl h4{font-family:'Noto Serif KR',serif;font-weight:600;font-size:19px;margin-bottom:7px}
.it-tl h4 span{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--moss-text);
  margin-left:10px;letter-spacing:.06em}
.it-tl p{font-size:15px;color:var(--ink-3);line-height:1.85}

/* ── 체크 목록 ──────────────────────────── */
.it-checks{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;list-style:none}
.it-checks li{display:flex;gap:11px;font-size:15.5px;color:var(--ink-2);line-height:1.75}
.it-checks li s{text-decoration:none;flex:0 0 auto;width:20px;height:20px;margin-top:3px;
  display:grid;place-items:center;background:var(--sand);color:var(--moss-text);font-size:12px}

/* ── 사이드 메뉴 (H2 에서 물려받음) ──────────────── */
.it-page{display:grid;grid-template-columns:220px 1fr;gap:58px;padding:76px 0 100px}
.it-page-wide{grid-template-columns:1fr;gap:0}
.it-side{position:sticky;top:112px;align-self:start}
.it-side h3{font-family:'Noto Serif KR',serif;font-weight:600;font-size:18px;
  padding-bottom:14px;border-bottom:1px solid var(--forest);margin-bottom:6px}
.it-side a{display:block;padding:13px 4px;font-size:15px;color:var(--ink-3);
  text-decoration:none;border-bottom:1px solid var(--line)}
.it-side a:hover{color:var(--forest)}
.it-side a.on{color:var(--forest);font-weight:600;position:relative}
.it-side a.on::before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);
  width:3px;height:15px;background:var(--moss)}
.it-side .ask{margin-top:28px;background:var(--forest);color:#fff;padding:22px 20px}
.it-side .ask b{display:block;font-family:'Noto Serif KR',serif;font-size:16px;margin-bottom:8px}
.it-side .ask p{font-size:13.5px;color:#C9D3C4;line-height:1.7;margin-bottom:14px}
.it-side .ask a{display:block;background:var(--moss-2);color:var(--forest);text-align:center;
  padding:11px;font-weight:700;border:0;font-size:15px}

/* ── 본문 ──────────────────────────────── */
.it-body h2{font-family:'Noto Serif KR',serif;font-weight:500;font-size:31px;
  letter-spacing:.02em;margin-bottom:18px;line-height:1.45}
.it-body h2 em{font-style:normal;color:var(--moss-text)}
.it-body .lead{font-size:16.5px;color:var(--ink-2);line-height:1.95;margin-bottom:14px}
.it-blk{margin-top:62px}
.it-blk-h{display:flex;align-items:baseline;gap:12px;padding-bottom:14px;
  border-bottom:1px solid var(--line);margin-bottom:26px}
.it-blk-h .n{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.2em;color:var(--moss-text)}
.it-blk-h h3{font-family:'Noto Serif KR',serif;font-weight:600;font-size:22px;letter-spacing:.02em}

/* ── FAQ (네이티브 details — 라이브러리 금지) ──── */
.it-faq details{border-bottom:1px solid var(--line)}
.it-faq summary{list-style:none;cursor:pointer;padding:20px 42px 20px 0;position:relative;
  font-size:16px;font-weight:600;color:var(--ink)}
.it-faq summary::-webkit-details-marker{display:none}
.it-faq summary::before{content:"+";position:absolute;right:12px;top:19px;
  color:var(--moss-text);font-size:19px;font-weight:400}
.it-faq details[open] summary::before{content:"−"}
.it-faq .a{padding:0 42px 22px 0;font-size:15px;color:var(--ink-3);line-height:1.9}

/* ── 표 ────────────────────────────────── */
.it-tbl{width:100%;border-collapse:collapse;border-top:2px solid var(--forest);
  border-bottom:1px solid var(--moss);font-variant-numeric:tabular-nums}
.it-tbl th,.it-tbl td{padding:16px 18px;border-bottom:1px solid var(--line);
  text-align:left;font-size:15.5px;vertical-align:top;word-break:keep-all}
.it-tbl thead th{background:var(--sand);font-size:13px;letter-spacing:.1em;
  color:var(--moss-text);font-weight:600}
.it-tbl tbody th{background:var(--sand);font-family:'Noto Serif KR',serif;font-weight:600;width:26%}
.it-tbl td{color:var(--ink-2)}
.it-tbl tr:last-child th,.it-tbl tr:last-child td{border-bottom:0}

/* ── 폼 ────────────────────────────────── */
.it-form{background:var(--card);padding:38px 34px;border:1px solid var(--line)}
.it-fr{margin-bottom:18px}
.it-form label{display:block;font-size:14px;color:var(--ink-2);margin-bottom:8px;font-weight:600}
.it-form label i{font-style:normal;color:var(--moss-text);margin-left:3px}
.it-form input[type=text],.it-form input[type=tel],.it-form select,.it-form textarea{
  width:100%;height:52px;border:1px solid var(--line);background:var(--paper);
  padding:0 15px;font-size:16px;font-family:inherit;color:var(--ink)}
.it-form textarea{height:110px;padding:14px 15px;line-height:1.7;resize:vertical}
.it-form input:focus,.it-form select:focus,.it-form textarea:focus{outline:0;border-color:var(--moss)}
.it-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.it-agree{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--ink-3);
  margin:22px 0;line-height:1.7}
.it-agree input{width:17px;height:17px;margin-top:3px;accent-color:var(--forest)}
.it-form button{width:100%;height:58px;border:0;background:var(--forest);color:#fff;cursor:pointer;
  font-family:inherit;font-weight:600;font-size:17px;letter-spacing:.06em}
.it-form button:hover{background:var(--forest-2)}
/* ★ 「전문 보기」는 «글줄» 이다 — 단추가 아니다. 바로 옆에 진짜 제출 단추가 있다.
   ⚠ 자릿수를 «반드시» `.it-form button.it-lk` 로 맞출 것 —
     위 `.it-form button`(0,1,1)이 `.it-lk` 단독(0,1,0)을 이겨 폭 꽉 찬 단추로 되돌아간다.
     L2·H1·H2 에서 네 번 다 이 원인으로 깨졌다. */
.it-form button.it-lk{width:auto;height:auto;padding:0;border:0;background:none;
  font:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;
  color:var(--moss-text);text-decoration:underline;cursor:pointer}
.it-form button.it-lk:hover{background:none;color:var(--forest)}
.it-err{border-color:#B3261E !important;background:#FFF6F5 !important}
.it-form.is-done>*{display:none}
.it-form.is-done::after{content:"접수되었습니다. 확인 후 연락드리겠습니다.";
  display:block;padding:46px 10px;text-align:center;font-size:17px;color:var(--forest);font-weight:600}
.it-secure{margin-top:14px;font-size:12.5px;color:var(--ink-3);line-height:1.7}

/* ── 마무리 띠 ──────────────────────────── */
.it-endcta{background:var(--forest);color:#fff;padding:76px 0}
.it-endcta .it-wrap{display:flex;align-items:center;justify-content:space-between;gap:34px;flex-wrap:wrap}
.it-endcta h3{font-family:'Noto Serif KR',serif;font-weight:500;font-size:27px;letter-spacing:.02em}
.it-endcta h3 b{color:var(--moss-2);font-weight:600}
.it-endcta p{margin-top:10px;color:#C9D3C4;font-size:15.5px}
.it-endcta .btns{display:flex;gap:12px;flex-wrap:wrap}

/* ── 푸터 ──────────────────────────────── */
.it-foot{background:#202723;color:#9BA39C;font-size:13.5px;line-height:1.9;padding:62px 0 40px}
.it-foot .cols{display:grid;grid-template-columns:1.6fr repeat(2,1fr);gap:34px;
  padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.12)}
.it-foot .it-bi b{color:#fff}
.it-foot .it-bi small{color:var(--moss-2)}
.it-foot h4{font-family:'Noto Serif KR',serif;color:#DCE3DA;font-size:15px;
  font-weight:500;margin-bottom:14px;letter-spacing:.03em}
.it-foot ul{list-style:none}
.it-foot li{padding:3px 0}
.it-foot a{color:#9BA39C;text-decoration:none}
.it-foot a:hover{color:var(--moss-2)}
.it-foot .legal{padding-top:24px;font-size:12.5px;color:#868E88}
.it-foot .legal b{color:#C2C9C1;font-weight:500}

/* ── 하단 독 (모바일) ───────────────────── */
.it-dock{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;
  box-shadow:0 -10px 30px -12px rgba(34,38,35,.28)}
.it-dock a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;height:62px;
  text-decoration:none;font-weight:600;font-size:15.5px}
.it-dock .call{background:#fff;color:var(--ink)}
.it-dock .go{background:var(--forest);color:#fff}

/* ── 모바일 드로어 ──────────────────────── */
.it-drawer{position:fixed;inset:0;z-index:80}
.it-drawer[hidden]{display:none}
.it-dw-back{position:absolute;inset:0;background:rgba(34,38,35,.5)}
.it-dw-panel{position:absolute;right:0;top:0;bottom:0;width:min(340px,88vw);background:var(--paper);
  padding:26px 24px;overflow:auto;display:flex;flex-direction:column}
.it-dw-x{position:absolute;top:14px;right:16px;width:42px;height:42px;border:0;background:none;
  font-size:26px;line-height:1;cursor:pointer;color:var(--ink)}
.it-dw-bi{font-family:'Noto Serif KR',serif;font-size:21px;color:var(--forest);
  text-decoration:none;margin-bottom:22px;display:block;font-weight:600}
.it-dw-list{list-style:none}
.it-dw-list>li{border-bottom:1px solid var(--line);position:relative}
.it-dw-list a{display:block;padding:15px 2px;color:var(--ink);text-decoration:none;font-size:16.5px}
.it-dw-list a em{font-style:normal;font-family:'IBM Plex Mono',monospace;font-size:10.5px;
  letter-spacing:.16em;color:var(--ink-3);margin-left:9px}
.it-dw-list a.on{color:var(--moss-text);font-weight:600}
.it-dw-more{position:absolute;right:0;top:9px;width:40px;height:40px;border:0;background:none;cursor:pointer}
.it-dw-more::before,.it-dw-more::after{content:"";position:absolute;left:50%;top:50%;
  background:var(--ink-3);transform:translate(-50%,-50%);transition:opacity .2s}
.it-dw-more::before{width:13px;height:1.5px}
.it-dw-more::after{width:1.5px;height:13px}
.it-dw-list li.open .it-dw-more::after{opacity:0}
.it-dw-sub{list-style:none;display:none;padding:0 0 10px 12px}
.it-dw-list li.open .it-dw-sub{display:block}
.it-dw-sub a{padding:10px 2px;font-size:14.5px;color:var(--ink-3)}
.it-dw-cta{margin-top:24px;background:var(--forest);color:#fff;text-align:center;
  padding:15px;text-decoration:none;font-weight:600}
.it-dw-tel{margin-top:14px;text-align:center;font-size:14px}
.it-dw-tel a{color:var(--ink-2);text-decoration:none}
.it-dw-tel b{color:var(--forest);font-family:'IBM Plex Mono',monospace}

/* ── 반응형 ────────────────────────────── */
@media(min-width:1024px){ .it-drawer{display:none} }
@media(max-width:1023px){
  .it-gnb{display:none} .it-burger{display:flex} .it-top .it-cta{display:none}
  .it-page{grid-template-columns:1fr;gap:0;padding:44px 0 76px}
  .it-side{position:static;margin-bottom:40px}
  .it-grid{grid-template-columns:repeat(2,1fr);gap:22px}
  /* 상담 창구가 «비는 구간» 이 없게 — 독을 여기서부터 띄운다 */
  .it-dock{display:flex}
  .it-foot{padding-bottom:104px}
}
@media(max-width:767px){
  .it-top .it-wrap{height:66px;gap:12px}
  .it-bi b{font-size:19px}
  .it-shero{height:280px}
  .it-shero h1{font-size:27px}
  .it-sec{padding:62px 0}
  .it-shead{margin-bottom:34px}
  .it-shead h2{font-size:25px}
  .it-body h2{font-size:24px}
  .it-grid{grid-template-columns:1fr;gap:26px}
  .it-checks{grid-template-columns:1fr}
  .it-ba{grid-template-columns:1fr;gap:10px}
  .it-two{grid-template-columns:1fr}
  .it-form{padding:26px 20px}
  .it-tbl th,.it-tbl td{padding:13px 12px;font-size:14.5px}
  .it-tbl tbody th{width:34%}
  .it-endcta{padding:52px 0}
  .it-endcta h3{font-size:22px}
  .it-foot .cols{grid-template-columns:1fr 1fr;gap:24px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .it-card .ph img,.it-gnb a::after{transition:none}
}


/* ══ 동의 레이어 — 앞 템플릿에서 가져와 토큰만 갈아입혔다 ══ */
.pmodal{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px}
.pmodal[hidden]{display:none}
.pm-back{position:absolute;inset:0;background:rgba(30,22,26,.58)}
.pm-card{position:relative;background:var(--card);color:var(--ink);max-width:560px;width:100%;
  max-height:82vh;overflow:auto;padding:32px 28px 26px;border-top:3px solid var(--forest);
  box-shadow:0 30px 80px -20px rgba(30,20,26,.5)}
.pm-card h3{font-family:'Noto Serif KR',serif;font-weight:600;font-size:20px;
  letter-spacing:.04em;margin-bottom:16px;color:var(--forest)}
.pm-row{padding:13px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.8;color:var(--ink-2)}
.pm-row b{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.2em;
  color:var(--moss-text);margin-bottom:5px;font-weight:500}
.pm-note{margin-top:14px;font-size:12.5px;color:var(--ink-3);line-height:1.7}
.pm-x{position:absolute;top:10px;right:10px;width:42px;height:42px;border:0;background:none;
  font-size:24px;line-height:1;color:var(--ink-3);cursor:pointer;text-align:center}
.pm-ok{width:100%;height:52px;margin-top:20px;border:0;background:var(--forest);color:#fff;
  font-family:'Noto Serif KR',serif;font-size:16px;letter-spacing:.12em;cursor:pointer;text-align:center}

/* ══ 히어로 (홈 전용) — 사진이 화면을 채우고 글자는 그 위 아래쪽에 앉는다 ══
   ⚠ 기본 규칙을 «미디어쿼리보다 앞» 에 둘 것. 뒤에 두면 좁은 화면 규칙을 덮는다
      (정평에서 실제로 375px 히어로가 안 접혔다). */
.it-hero{position:relative;min-height:calc(100vh - 82px);display:flex;align-items:flex-end;
  overflow:hidden;background:var(--forest)}
.it-hero .ph{position:absolute;inset:0}
.it-hero .ph img{width:100%;height:100%;object-fit:cover;object-position:center 58%}
/* ⚠ 사진 위 글자 — «재고» 덮는다. 눈대중으로 하면 반드시 모자란다.
   실측(캔버스로 사진 화소를 직접 읽음): 제목 자리 배경 휘도 평균 .43 · «최악 .89».
   처음 그라데이션(.10→.80)으로는 흰 글자가 평균 3.21 · 최악 1.70 이었다.
   대비 검사기는 「사진 위 글자」를 제외하므로 이 결함은 검사에 안 걸린다 — 손으로 재야 한다.
   세로 그라데이션 + «좌측 장막» 을 겹쳐 글자가 앉는 자리만 충분히 어둡게 만든다. */
.it-hero::after{content:"";position:absolute;inset:0;
  background:
    linear-gradient(100deg,rgba(34,38,35,.74) 0%,rgba(34,38,35,.34) 46%,rgba(34,38,35,0) 72%),
    linear-gradient(180deg,rgba(34,38,35,.05) 0%,rgba(34,38,35,.56) 55%,rgba(34,38,35,.93) 100%)}
.it-hero .it-wrap{position:relative;z-index:2;color:#fff;padding-bottom:74px;padding-top:120px}
.it-hero .en{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.34em;
  color:var(--moss-2);margin-bottom:18px}
.it-hero h1{font-family:'Noto Serif KR',serif;font-weight:500;font-size:52px;line-height:1.45;
  letter-spacing:.03em}
/* ⚠ 강조를 «색» 으로 하면 이 배경에서 3:1 을 못 넘긴다(moss-2 최악 2.23).
   색 대신 «선» 으로 강조한다 — 장식은 대비 기준이 없고, 글자는 흰색이라 안전하다. */
/* ⚠ 밑줄을 «background» 로 그리면 대비 검사기가 그걸 «글자 배경» 으로 읽어
   흰 글자 1.77:1 로 잡는다(오탐이지만 매번 뜬다). 별도 층으로 그린다. */
.it-hero h1 em{font-style:normal;color:#fff;position:relative}
.it-hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.08em;
  height:2px;background:var(--moss-2)}
.it-hero .d{margin-top:22px;font-size:17px;color:#DDE3DA;line-height:1.9;max-width:52ch}
.it-hero .ctas{display:flex;gap:12px;margin-top:38px;flex-wrap:wrap}

@media(max-width:1023px){
  [data-it-cols]{grid-template-columns:1fr !important;gap:38px !important}
}
@media(max-width:767px){
  .it-hero{min-height:0}
  /* ⚠ 좁은 화면은 사진이 «덜 잘려» 밝은 부분이 글자 자리로 올라온다.
     1440 에서 통과해도 375 에서 모자랄 수 있다 — 실측 결과 영문 라벨이 3.58 이었다(4.5 필요).
     좌측 장막을 전면으로 펴고 세로 장막을 한 단 올린다. */
  /* 필요한 알파를 «역산» 했다 — 라벨 자리 사진 휘도 .41 에서 흰 글자 4.5:1 을 넘기려면
     그 지점 알파가 .58 이상이어야 한다. 20% 지점을 .62 로 잡는다. */
  .it-hero::after{background:
    linear-gradient(180deg,rgba(34,38,35,.30) 0%,rgba(34,38,35,.62) 20%,
                    rgba(34,38,35,.72) 52%,rgba(34,38,35,.94) 100%)}
  .it-hero .it-wrap{padding-top:96px;padding-bottom:54px}
  .it-hero h1{font-size:31px}
  .it-hero .d{font-size:15.5px;margin-top:18px}
}

/* ══ 오시는 길 지도 자리 ══ */
.it-mapbox{background:var(--sand);border:1px solid var(--line);aspect-ratio:16/7;
  display:grid;place-items:center;padding:20px}
.it-mapbox p{color:var(--ink-3);font-size:14.5px;text-align:center}

/* ══ 처리방침 — 구조 CSS 는 부품이 직접 찍는다(inc/privacy.php).
      여기에는 «이 템플릿의 색·서체» 만 둔다. 같은 속성을 건드리면 부품 쪽을 덮는다. ══ */
.pv{max-width:820px}
.pv h3{font-family:'Noto Serif KR',serif;font-weight:600;color:var(--forest);font-size:17px;margin:26px 0 9px}
.pv p,.pv li{color:var(--ink-2)}
.pv-lead{border-bottom:1px solid var(--line)}
.pv-t th{background:var(--sand)}
.pv-demo{border-top:1px solid var(--line);color:var(--ink-3)}
.pv-open{color:inherit}
