/* ============================================================
   iWebple Builder — 디자인 템플릿 공통 CSS
   프론트와 관리자 미리보기(iframe) 양쪽에서 사용.
   iw-core 토큰(--iw-*)을 물려받되, iframe 미리보기에서 core가 없을 때를
   대비해 최소 폴백을 자체 정의.
   ============================================================ */

/* iframe 미리보기 폴백용 최소 토큰 (core 있으면 core가 우선) */
.iwg {
  --ac: var(--iw-accent, var(--iw-brand, #1a5fb4));
  font-family: var(--iw-font, 'Pretendard','Noto Sans KR',sans-serif);
}

/* ============================================================
   페이지 본문 기본 배경 (흰색)
   서브비주얼 풀스크린 고정(position:fixed) 사용 시, 본문이 투명하면
   고정된 비주얼이 비쳐 보이므로 본문에 불투명 흰 배경을 깔아
   스크롤 시 본문이 비주얼 위로 자연스럽게 덮이도록 함.
   (overflow는 건드리지 않음 → 연혁 sticky 방어 규칙과 충돌 없음)
   ============================================================ */
.iw-page-sections {
  position: relative;
  z-index: 1;
  background: var(--iw-page-bg, #ffffff);
}
.iwg * { box-sizing: border-box; }
.iwg .iwg-in {
  max-width: var(--iw-container, 1600px);
  margin: 0 auto;
  padding: var(--iw-pad-y, 44px) var(--iw-gutter, 30px);
}
.iwg .eb { font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:var(--ac); font-weight:700; margin-bottom:14px; }
.iwg h3 { font-size:var(--iw-title-size,clamp(24px,3.2vw,32px)); line-height:var(--iw-title-lh,1.4); font-weight:var(--iw-title-weight,800); color:var(--iw-title-color,var(--iw-ink,#141a1f)); text-align:var(--iw-title-align,inherit); letter-spacing:-.01em; margin:0; }
.iwg .body { font-size:var(--iw-body-size,16px); line-height:var(--iw-body-lh,1.9); font-weight:var(--iw-body-weight,400); color:var(--iw-body-color,var(--iw-body,#4c565e)); text-align:var(--iw-body-align,inherit); margin:0; }
.iwg .btn { display:inline-block; margin-top:4px; background:var(--ac,#1a5fb4); color:var(--iw-btn-color,#fff); text-decoration:none; padding:13px 30px; border-radius:7px; font-size:var(--iw-btn-size,15px); font-weight:var(--iw-btn-weight,600); }
.iwg img { display:block; width:100%; object-fit:cover; }

/* g01 좌측이미지 / 우측텍스트 (+반전) */
.iwg-g01 .iwg-in { display:grid; grid-template-columns:var(--iw-ratio,1fr 1fr); gap:56px; align-items:var(--iw-valign,stretch); }
.iwg-g01.is-reversed .iwg-in { direction:rtl; }
.iwg-g01.is-reversed .iwg-in > * { direction:ltr; }
.iwg-g01 .ph { border-radius:14px; overflow:hidden; min-height:100%; }
.iwg-g01 .ph img { width:100%; height:100%; min-height:340px; object-fit:cover; }
.iwg-g01 .tx { display:flex; flex-direction:column; gap:18px; justify-content:center; }

/* g02 중앙정렬 */
.iwg-g02 .iwg-in { max-width:820px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:18px; }
.iwg-g02 h3 { font-size:var(--iw-title-size,clamp(24px,3.4vw,34px)); line-height:var(--iw-title-lh,1.3); font-weight:var(--iw-title-weight,800); color:var(--iw-title-color,var(--iw-ink,#141a1f)); }

/* g03 카드형 (배경색 + 흰 카드) */
.iwg-g03 { background: color-mix(in srgb, var(--ac) 8%, #fff); }
.iwg-g03 .iwg-in { display:grid; grid-template-columns:1.05fr 1fr; background:#fff; border-radius:18px; overflow:hidden; padding:0; }
.iwg-g03.is-reversed .iwg-in { direction:rtl; }
.iwg-g03.is-reversed .iwg-in > * { direction:ltr; }
.iwg-g03 .ph img { height:100%; min-height:360px; }
.iwg-g03 .tx { padding:52px 48px; display:flex; flex-direction:column; gap:16px; justify-content:center; }

/* g04 배경형 — 배경이미지 + 헤더 + 카운팅 통계 */
.iwg-g04 { position:relative; overflow:hidden; }
.iwg-g04 .bg { position:absolute; inset:0; overflow:hidden; }
.iwg-g04 .bg img { width:100%; height:100%; object-fit:cover; display:block; }
/* 배경 이미지가 잘 보이도록: accent 그라데이션을 살짝 얹고 이미지는 luminosity로 살림 */
.iwg-g04 .bg::before { content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(120deg, color-mix(in srgb,var(--ac) 88%, #000) 0%, var(--ac) 100%); }
.iwg-g04 .bg img { position:relative; z-index:2; opacity:.32; mix-blend-mode:luminosity; }
.iwg-g04 .iwg-in { position:relative; z-index:3; padding-top:110px; padding-bottom:110px;
  display:flex; flex-direction:column; }
.iwg-g04 .tx { max-width:640px; display:flex; flex-direction:column; gap:16px; }
.iwg-g04 .eb { color: color-mix(in srgb, var(--ac) 25%, #fff); }
.iwg-g04 h3 { color:var(--iw-title-color,#fff); font-size:var(--iw-title-size,clamp(28px,4vw,44px)); font-weight:var(--iw-title-weight,800); line-height:1.25; letter-spacing:-.02em; }
.iwg-g04 .body { color:var(--iw-body-color,rgba(255,255,255,.78)); font-size:var(--iw-body-size,17px); }

/* 하단 통계 카운터 4칸 */
.iwg-g04 .iwg04-stats { display:grid; grid-template-columns:repeat(4,1fr); margin-top:64px; }
/* 항목 수에 따라 폭 자동 분배 */
.iwg-g04 .iwg04-stats.iwg04-n1 { grid-template-columns: minmax(0, 320px); justify-content: center; }
.iwg-g04 .iwg04-stats.iwg04-n2 { grid-template-columns: repeat(2, 1fr); }
.iwg-g04 .iwg04-stats.iwg04-n3 { grid-template-columns: repeat(3, 1fr); }

.iwg-g04 .iwg04-stat { padding:8px 36px; border-left:1px solid rgba(255,255,255,.18); }
.iwg-g04 .iwg04-stat:first-child { padding-left:0; border-left:0; }
.iwg-g04 .iwg04-num { font-size:clamp(38px,4.6vw,60px); font-weight:800; letter-spacing:-.03em; line-height:1; color:#fff; }
.iwg-g04 .iwg04-suf { font-size:.45em; color:var(--iw-suf-color,#ff9c00); margin-left:4px; font-weight:800; }
.iwg-g04 .iwg04-label { font-size:15px; font-weight:600; color:rgba(255,255,255,.72); margin-top:14px; }

@media (max-width:900px){
  .iwg-g04 .iwg04-stats.iwg04-stats { grid-template-columns:repeat(2,1fr); gap:40px 0; }
  .iwg-g04 .iwg04-stat:nth-child(3) { padding-left:0; border-left:0; }
}
@media (max-width:560px){
  .iwg-g04 .iwg04-stat { padding:8px 20px; }
}

/* g05 2단 (상단 헤더 + 하단 2컬럼) */
.iwg-g05 .head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; border-bottom:2px solid var(--iw-ink,#141a1f); padding-bottom:20px; margin-bottom:32px; flex-wrap:wrap; }
.iwg-g05 .head h3 { font-size:var(--iw-title-size,clamp(25px,3.6vw,36px)); font-weight:var(--iw-title-weight,800); color:var(--iw-title-color,var(--iw-ink,#141a1f)); }
.iwg-g05 .cols { display:grid; grid-template-columns:var(--iw-ratio,1fr 1fr); gap:48px; align-items:var(--iw-valign,start); }
.iwg-g05.is-reversed .cols { direction:rtl; }
.iwg-g05.is-reversed .cols > * { direction:ltr; }
.iwg-g05 .ph { border-radius:12px; overflow:hidden; aspect-ratio:16/11; }

/* 반응형: 모바일 1단 (모든 디자인 자동) */
@media (max-width:768px) {
  .iwg .iwg-in { padding:48px 18px; }
  .iwg-g01 .iwg-in,
  .iwg-g03 .iwg-in,
  .iwg-g05 .cols { grid-template-columns:1fr; gap:28px; }
  .iwg-g03 .ph img { min-height:220px; }
  /* 고급편집 위/아래 간격: PC 지정값을 모바일에서 60%로 자동 축소 */
  .iw-sec-wrap { margin-top: calc(var(--iw-mt, 0px) * 0.6); margin-bottom: calc(var(--iw-mb, 0px) * 0.6); }
}

/* ===== 위젯 블록 (숏코드/HTML) ===== */
.iwg-widget { padding: 40px 0; }
.iwg-widget .iwg-in { max-width: var(--iw-container, 1600px); margin: 0 auto; padding: 0 24px; }
/* 숏코드(게시판·폼) 출력 방어.
   float 목록을 쓰는 스킨이 많아 BFC 를 만들어 주지 않으면 부모 높이가 0이 되고
   푸터가 본문 위로 겹쳐 올라온다. 가로로 삐져나가는 표도 스크롤로 가둔다. */
.iwg-widget .iwg-in { display: flow-root; min-width: 0; }
.iwg-widget .iwg-in::after { content: ""; display: table; clear: both; }
.iwg-widget .iwg-in img { max-width: 100%; height: auto; }
.iwg-widget .iwg-in table { max-width: 100%; }

/* ===== 카드 슬라이더 ===== */
.iwg-slider .iwg-in { overflow: hidden; }
.iwcs-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 40px; }
.iwcs-head-tx { flex: 1; text-align: center; }
.iwcs-head .eb { justify-content: center; }
.iwcs-head h3 { font-size: var(--iw-head-size, 38px); font-weight: var(--iw-head-weight, 800); color: var(--iw-head-color, var(--iw-ink, #141a1f)); margin: 0 0 12px; }
.iwcs-sub { font-size: var(--iw-body-size, 16px); color: var(--iw-body-color, var(--iw-body, #6b7580)); margin: 0; }
.iwcs-nav { display: flex; gap: 10px; position: absolute; right: 0; top: 4px; }
.iwcs-head { position: relative; }
.iwcs-arrow { width: 44px; height: 44px; border-radius: 50%; border: 1px solid #d9dee4; background: #fff; color: #4c565e; font-size: 20px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: .15s; line-height: 1; }
.iwcs-arrow:hover { background: var(--ac); color: #fff; border-color: var(--ac); }
.iwcs-viewport { overflow: hidden; }
.iwcs-track { display: flex; gap: 32px; transition: transform .45s cubic-bezier(.22,.61,.36,1); }
.iwcs-card { flex: 0 0 calc((100% - 64px) / 3); background: var(--iw-card-bg, #fff); border-radius: 14px; overflow: hidden; box-shadow: 0 4px 20px rgba(20,26,31,.06); display: flex; flex-direction: column; }
.iwcs-thumb { position: relative; aspect-ratio: 16/11; overflow: hidden; }
.iwcs-thumb img { width: 100%; height: 100%; object-fit: cover; }
.iwcs-noimg { width: 100%; height: 100%; background: #dde3e8; }
.iwcs-badge { position: absolute; top: 16px; left: 16px; background: var(--ac); color: #fff; font-size: 14px; font-weight: 700; padding: 5px 12px; border-radius: 20px; }
.iwcs-body { padding: 26px 26px 30px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.iwcs-title { font-size: var(--iw-title-size, 20px); font-weight: var(--iw-title-weight, 700); color: var(--iw-title-color, var(--iw-ink, #141a1f)); margin: 0; }
.iwcs-desc { font-size: var(--iw-body-size, 15px); font-weight: var(--iw-body-weight, 400); line-height: var(--iw-body-lh, 1.7); color: var(--iw-body-color, var(--iw-body, #6b7580)); margin: 0; flex: 1; }
.iwcs-more { color: var(--ac); font-size: 14px; font-weight: 700; text-decoration: none; margin-top: 4px; }
.iwcs-more:hover { text-decoration: underline; }
.iwcs-dots { display: flex; justify-content: center; gap: 8px; margin-top: 36px; }
.iwcs-dot { width: 8px; height: 8px; border-radius: 50%; background: #d0d6dc; cursor: pointer; transition: .15s; }
.iwcs-dot.on { background: var(--ac); width: 24px; border-radius: 4px; }
@media (max-width: 980px) {
  .iwcs-card { flex: 0 0 calc((100% - 32px) / 2); }
  .iwcs-track { gap: 32px; }
}
@media (max-width: 640px) {
  .iwcs-card { flex: 0 0 100%; }
  .iwcs-nav { position: static; margin-top: 16px; justify-content: center; }
  .iwcs-head { flex-direction: column; }
}

/* ===== 연혁 타임라인 ===== */
/* sticky 방어: 조상 overflow가 sticky를 가두는 문제 강제 해제 */
html:has(.iwg-timeline), body:has(.iwg-timeline) { overflow: visible !important; overflow-x: clip; }
.iw-page-body:has(.iwg-timeline),
.iw-page-sections:has(.iwg-timeline),
.iwg-timeline, .iwg-timeline .iw-sec-wrap,
.iwg-timeline .iwg-in { overflow: visible !important; }
.iwg-timeline .iwtl-grid { display: grid; grid-template-columns: 340px 1fr; gap: 60px; align-items: start; }
.iwtl-aside { align-self: start; }
.iwtl-aside-inner { position: -webkit-sticky; position: sticky; top: 120px; }
.iwtl-bigyear { font-size: 88px; font-weight: 800; color: var(--ac); line-height: 1; letter-spacing: -.02em; }
.iwtl-label { font-size: 15px; font-weight: 700; color: var(--iw-ink, #141a1f); letter-spacing: .12em; margin-top: 14px; }
.iwtl-progress { width: 180px; height: 3px; background: #e4e8ec; border-radius: 2px; margin-top: 24px; overflow: hidden; }
.iwtl-progress span { display: block; height: 100%; background: var(--ac); border-radius: 2px; transition: width .4s; }
.iwtl-count { font-size: 14px; color: #8a949e; margin-top: 12px; }
.iwtl-count b { color: var(--ac); font-size: 16px; }

.iwtl-list { position: relative; padding-left: 34px; }
.iwtl-list::before { content: ""; position: absolute; left: 5px; top: 8px; bottom: 8px; width: 2px; background: #e0e5ea; border-radius: 1px; }
.iwtl-item { position: relative; padding-bottom: 60px; }
.iwtl-item:last-child { padding-bottom: 0; }
.iwtl-marker { position: absolute; left: -34px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid #c3cbd3; transition: .25s; }
.iwtl-item.is-active .iwtl-marker { border-color: var(--ac); box-shadow: 0 0 0 5px color-mix(in srgb, var(--ac) 18%, transparent); }
.iwtl-date { font-size: 16px; font-weight: 700; color: var(--ac); margin-bottom: 16px; }
.iwtl-thumb { border-radius: 12px; overflow: hidden; margin-bottom: 20px; max-height: 420px; }
.iwtl-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.iwtl-card { background: #fff; border: 1px solid #eef1f4; border-radius: 12px; padding: 24px 26px; box-shadow: 0 3px 16px rgba(20,26,31,.05); transition: .25s; }
.iwtl-item.is-active .iwtl-card { box-shadow: 0 8px 30px rgba(20,26,31,.1); }
.iwtl-title { font-size: var(--iw-title-size, 20px); font-weight: var(--iw-title-weight, 700); color: var(--iw-title-color, var(--iw-ink, #141a1f)); margin: 0 0 10px; }
.iwtl-desc { font-size: var(--iw-body-size, 15px); font-weight: var(--iw-body-weight, 400); line-height: 1.75; color: var(--iw-body-color, var(--iw-body, #6b7580)); margin: 0; }
@media (max-width: 900px) {
  .iwg-timeline .iwtl-grid { grid-template-columns: 1fr; gap: 30px; }
  .iwtl-aside-inner { position: static; }
  .iwtl-bigyear { font-size: 60px; }
  .iwtl-progress { width: 100%; }
}

/* ===== 아이콘 카드 ===== */
.iwg-iconcards .iwic-head { text-align: center; margin-bottom: 40px; }
.iwg-iconcards .iwic-head h3 { font-size: var(--iw-head-size, 34px); font-weight: var(--iw-head-weight, 800); color: var(--iw-head-color, var(--iw-ink, #141a1f)); margin: 0 0 12px; }
.iwic-sub { font-size: var(--iw-body-size, 16px); color: var(--iw-body-color, var(--iw-body, #6b7580)); margin: 0; }
.iwic-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
/* 항목 수에 따라 폭 자동 분배 (2개=50% · 3개=33% · 4개=25%) */
.iwic-grid.iwic-n1 { grid-template-columns: minmax(0, 480px); justify-content: center; }
.iwic-grid.iwic-n2 { grid-template-columns: repeat(2, 1fr); }
.iwic-grid.iwic-n3 { grid-template-columns: repeat(3, 1fr); }

.iwic-card { position: relative; background: var(--iw-card-bg, #fff); border: 1px solid #e8ebee; border-radius: 14px; padding: 32px 28px; min-height: 150px; box-shadow: 0 2px 12px rgba(20,26,31,.04); transition: .2s; }
.iwic-card:hover { box-shadow: 0 8px 28px rgba(20,26,31,.09); transform: translateY(-2px); }
.iwic-card.has-fg .iwic-title { color: var(--iw-card-fg); }
.iwic-card.has-fg .iwic-desc { color: var(--iw-card-fg); opacity: .85; }
.iwic-card.has-fg .iwic-ico { color: var(--iw-card-fg); }
.iwic-ico { position: absolute; top: 28px; right: 28px; color: var(--iw-icon-color, #9aa3ac); }
.iwic-ico .iw-icon { width: var(--iw-icon-size, 34px); height: var(--iw-icon-size, 34px); }
.iwic-title { font-size: var(--iw-title-size, 19px); font-weight: var(--iw-title-weight, 700); color: var(--iw-title-color, var(--iw-ink, #141a1f)); margin: 40px 0 12px; }
.iwic-desc { font-size: var(--iw-body-size, 15px); font-weight: var(--iw-body-weight, 400); line-height: 1.65; color: var(--iw-body-color, var(--iw-body, #6b7580)); margin: 0; }
/* 링크가 걸린 카드 — link 값이 있는 카드만 <a> 로 나온다.
   flex 로 만들지 않는 이유: 자식이 flex 아이템이 되면 정렬(text-align)이 죽는다(v1.1.10 건). */
a.iwic-card { display: block; text-decoration: none; color: inherit; cursor: pointer; }
a.iwic-card:hover { border-color: color-mix(in srgb, var(--ac) 45%, #e8ebee); box-shadow: 0 10px 30px rgba(20,26,31,.12); }
.iwic-arrow { display: block; text-align: right; margin-top: 16px; line-height: 0; color: var(--iw-card-fg, var(--ac)); opacity: .45; transition: opacity .18s, transform .18s; }
.iwic-arrow svg { width: 20px; height: 20px; }
a.iwic-card:hover .iwic-arrow { opacity: 1; transform: translateX(3px); }
@media (max-width: 1100px) { .iwic-grid.iwic-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .iwic-grid.iwic-grid { grid-template-columns: 1fr; } }

/* ===== 표 ===== */
.iwg-table .iwtb-title { font-size: var(--iw-head-size, 30px); font-weight: var(--iw-head-weight, 800); color: var(--iw-head-color, var(--iw-ink, #141a1f)); }
.iwtb-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.iwg-table table { width: 100%; border-collapse: collapse; font-size: var(--iw-body-size, 16px); }
.iwg-table th, .iwg-table td {
  padding: var(--iw-tb-pady, 18px) var(--iw-tb-padx, 20px); text-align: center; vertical-align: middle;
  border-bottom: 1px solid #e3e7eb; border-right: 1px solid #e3e7eb;
  color: var(--iw-body-color, var(--iw-body, #4c565e));
  line-height: 1.6; font-size: var(--iw-body-size, 16px);
  word-break: keep-all;
}
.iwg-table th:last-child, .iwg-table td:last-child { border-right: 0; }
.iwg-table thead th,
.iwg-table tr:first-child th,
.iwg-table tr:first-child td { background: var(--iw-thead-bg, #f5f6f8); font-weight: var(--iw-thead-weight, 700); color: var(--iw-thead-color, var(--iw-ink, #1c2530)); font-size: var(--iw-thead-size, 16px); }
/* 헤더행 위아래 진한 라인 */
.iwg-table thead, .iwg-table tr:first-child { border-top: 2px solid #141a1f; }
.iwg-table thead th, .iwg-table tr:first-child th, .iwg-table tr:first-child td { border-bottom: 1px solid #d5dae0; }
.iwg-table tbody tr:last-child td { border-bottom: 2px solid #141a1f; }
.iwg-table tr:last-child td { border-bottom: 2px solid #141a1f; }
/* 행 호버. thead 가 있는 표는 tbody 전체 행이 대상이지만,
   한글·워드에서 붙여넣은 표는 thead 없이 첫 행이 헤더라 첫 행은 제외해야
   헤더 배경이 호버 때 하얗게 덮이지 않는다. */
.iwg-table thead ~ tbody tr:hover td { background: #fafbfc; }
.iwg-table tbody:first-of-type tr:not(:first-child):hover td { background: #fafbfc; }
/* 드래그 안내 문구: 기본 숨김, 표가 넘칠 때(JS가 is-scrollable 부여)만 표시 */
.iwtb-hint { display: none; text-align: center; font-size: 13px; color: #8a949e; margin-bottom: 10px; font-weight: 600; letter-spacing: .02em; }
.iwtb-wrap.is-scrollable .iwtb-hint { display: block; }
/* 모바일: 표를 억지로 압축하지 말고 최소 너비 확보 → 좁으면 가로 스크롤 발동 */
@media (max-width: 640px) {
  /* min() = 지정 여백이 모바일 기본보다 클 때만 잘라낸다 (줄이는 건 그대로 반영) */
  .iwg-table th, .iwg-table td { padding: min(var(--iw-tb-pady, 12px), 12px) min(var(--iw-tb-padx, 14px), 14px); font-size: 14px; white-space: nowrap; }
  .iwg-table table { width: auto; min-width: 100%; }
}

/* ===== 탭 박스 ===== */
.iwg-tabs > .iwg-in > h3 { font-size:var(--iw-head-size,clamp(24px,3.2vw,32px)); font-weight:var(--iw-head-weight,800); color:var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwg-tabs .iwtab-nav { display:flex; gap:4px; border-bottom:2px solid #e3e7eb; margin-bottom:28px; flex-wrap:wrap; }
.iwtab-btn { padding:14px 26px; font-size:16px; font-weight:700; color:#6b7580; background:none; border:none; border-bottom:3px solid transparent; margin-bottom:-2px; cursor:pointer; transition:.15s; }
.iwtab-btn:hover { color:var(--ac,#1a5fb4); }
.iwtab-btn.on { color:var(--ac,#1a5fb4); border-bottom-color:var(--ac,#1a5fb4); }
.iwtab-panel { display:none; }
.iwtab-panel.on { display:block; animation:iwtabfade .25s ease; }
.iwtab-panel .body { font-size:var(--iw-body-size,16px); line-height:1.9; color:var(--iw-body-color,var(--iw-body,#4c565e)); }
@keyframes iwtabfade { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }
@media (max-width:640px){ .iwtab-btn { padding:11px 16px; font-size:14px; } }

/* ===== 오시는 길 (지도) ===== */
.iwg-map > .iwg-in > .iwmap-h3 { font-size:var(--iw-head-size,clamp(24px,3.2vw,32px)); font-weight:var(--iw-head-weight,800); line-height:var(--iw-head-lh,1.35); color:var(--iw-head-color,var(--iw-ink,#141a1f)); text-align:var(--iw-head-align,center); margin:0 0 30px; }
.iwg-map .iwmap-eb { text-align:var(--iw-head-align,center); }
.iwmap-grid { display:grid; grid-template-columns:1.6fr 1fr; gap:32px; align-items:stretch; }
.iwmap-frame { border-radius:14px; overflow:hidden; min-height:380px; box-shadow:0 4px 20px rgba(20,26,31,.08); }
.iwmap-frame iframe { width:100%; height:100%; min-height:380px; border:0; display:block; }
.iwmap-empty { display:flex; align-items:center; justify-content:center; height:100%; min-height:380px; background:#eef1f4; color:#8a949e; }
.iwmap-info { display:flex; flex-direction:column; gap:16px; justify-content:center; }
.iwmap-place { font-size:var(--iw-title-size,22px); font-weight:var(--iw-title-weight,800); line-height:var(--iw-title-lh,1.4); color:var(--iw-title-color,var(--iw-ink,#141a1f)); margin:0 0 6px; }
.iwmap-row { display:flex; gap:12px; align-items:flex-start; justify-content:var(--iw-body-justify,flex-start); font-size:var(--iw-body-size,16px); font-weight:var(--iw-body-weight,400); color:var(--iw-body-color,var(--iw-body,#4c565e)); line-height:var(--iw-body-lh,1.6); }
.iwmap-row > span:last-child { text-align:var(--iw-body-align,left); }
.iwmap-ic { color:var(--ac,#1a5fb4); flex-shrink:0; }
.iwmap-ic .iw-icon { width:22px; height:22px; }
.iwmap-btn { display:inline-block; margin-top:8px; align-self:flex-start; background:var(--ac,#1a5fb4); color:#fff; text-decoration:none; padding:12px 24px; border-radius:7px; font-size:15px; font-weight:600; }
.iwmap-btn:hover { opacity:.9; }
/* 약도(교통·주차) 안내 카드 */
.iwmap-dir { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; margin-top:28px; }
.iwmap-dir-card { display:flex; gap:14px; align-items:flex-start; padding:20px 22px; background:#f7f9fb; border:1px solid #e8edf1; border-radius:12px; }
.iwmap-dir-ic { color:var(--ac,#1a5fb4); flex-shrink:0; }
.iwmap-dir-ic .iw-icon { width:26px; height:26px; }
.iwmap-dir-txt strong { display:block; font-size:15px; font-weight:800; color:var(--iw-ink,#141a1f); margin-bottom:5px; }
.iwmap-dir-txt p { margin:0; font-size:14.5px; line-height:1.6; color:var(--iw-body,#4c565e); }
@media (max-width:820px){ .iwmap-grid { grid-template-columns:1fr; } }

/* ===== 아코디언 FAQ ===== */
.iwg-accordion > .iwg-in > h3 { font-size:var(--iw-head-size,clamp(24px,3.2vw,32px)); font-weight:var(--iw-head-weight,800); color:var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwac-list { max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:12px; }
.iwac-item { border:1px solid #e3e7eb; border-radius:10px; overflow:hidden; background:#fff; }
.iwac-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px; background:none; border:none; cursor:pointer; text-align:left; font-size:var(--iw-title-size,17px); font-weight:700; color:var(--iw-title-color,var(--iw-ink,#141a1f)); }
.iwac-item.on .iwac-q { color:var(--ac,#1a5fb4); }
.iwac-arrow { font-size:22px; font-weight:400; color:var(--ac,#1a5fb4); transition:transform .25s; flex-shrink:0; font-style:normal; }
.iwac-item.on .iwac-arrow { transform:rotate(45deg); }
.iwac-a { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.iwac-a-in { padding:0 24px 22px; font-size:var(--iw-body-size,15px); line-height:1.8; color:var(--iw-body-color,var(--iw-body,#4c565e)); }

/* ===== CTA 배너 ===== */
.iwg-cta .iwcta-box { background:var(--iw-card-bg,var(--ac,#1a5fb4)); border-radius:16px; padding:48px 56px; display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; }
.iwcta-title { font-size:var(--iw-title-size,28px); font-weight:800; color:var(--iw-title-color,#fff); margin:0 0 8px; }
.iwcta-sub { font-size:var(--iw-body-size,16px); color:var(--iw-body-color,rgba(255,255,255,.85)); margin:0; }
.iwcta-btn { display:inline-block; background:#fff; color:var(--ac,#1a5fb4); text-decoration:none; padding:16px 34px; border-radius:8px; font-size:16px; font-weight:700; white-space:nowrap; transition:.15s; }
.iwcta-btn:hover { transform:translateX(3px); }
@media (max-width:640px){ .iwg-cta .iwcta-box { padding:32px 28px; flex-direction:column; text-align:center; align-items:stretch; } }

/* ===== 통계 카운터 ===== */
.iwg-counter > .iwg-in > h3 { font-size:var(--iw-head-size,clamp(24px,3.2vw,32px)); font-weight:var(--iw-head-weight,800); color:var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwcnt-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
/* 항목 수에 따라 폭 자동 분배 (2개=50% · 3개=33% · 4개=25%) */
.iwcnt-grid.iwcnt-n1 { grid-template-columns: minmax(0, 480px); justify-content: center; }
.iwcnt-grid.iwcnt-n2 { grid-template-columns: repeat(2, 1fr); }
.iwcnt-grid.iwcnt-n3 { grid-template-columns: repeat(3, 1fr); }

.iwcnt-item { text-align:center; padding:20px; }
.iwcnt-num { font-size:var(--iw-title-size,48px); font-weight:800; color:var(--ac,#1a5fb4); line-height:1; display:flex; align-items:baseline; justify-content:center; gap:4px; }
.iwcnt-suf { font-size:.5em; font-weight:700; }
.iwcnt-label { margin-top:14px; font-size:var(--iw-body-size,16px); color:var(--iw-body-color,var(--iw-body,#4c565e)); font-weight:600; }
@media (max-width:800px){ .iwcnt-grid.iwcnt-grid { grid-template-columns:repeat(2,1fr); gap:32px 16px; } }

/* ===== 이용 절차 (프로세스) ===== */
.iwg-process > .iwg-in > h3 { font-size:var(--iw-head-size,clamp(24px,3.2vw,32px)); font-weight:var(--iw-head-weight,800); color:var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwproc-grid { display:flex; gap:16px; align-items:stretch; flex-wrap:wrap; }
.iwproc-step { flex:1; min-width:160px; position:relative; background:var(--iw-card-bg,#fff); border:1px solid #e8ebee; border-radius:14px; padding:32px 24px; text-align:center; }
.iwproc-step:not(:last-child)::after { content:"→"; position:absolute; right:-14px; top:50%; transform:translateY(-50%); color:var(--ac,#1a5fb4); font-size:22px; font-weight:700; z-index:2; }
.iwproc-num { width:48px; height:48px; margin:0 auto 16px; border-radius:50%; background:var(--ac,#1a5fb4); color:#fff; font-size:20px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.iwproc-title { font-size:var(--iw-title-size,18px); font-weight:700; color:var(--iw-title-color,var(--iw-ink,#141a1f)); margin-bottom:8px; }
.iwproc-desc { font-size:var(--iw-body-size,14px); line-height:1.6; color:var(--iw-body-color,var(--iw-body,#6b7580)); }
@media (max-width:760px){ .iwproc-grid { flex-direction:column; } .iwproc-step:not(:last-child)::after { content:"↓"; right:50%; top:auto; bottom:-14px; transform:translateX(50%); } }

/* ===== 협력기관 로고 ===== */
.iwg-logos > .iwg-in > h3 { font-size:var(--iw-head-size,clamp(24px,3.2vw,32px)); font-weight:var(--iw-head-weight,800); color:var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwlogo-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:20px; align-items:center; }
/* 항목 수에 따라 폭 자동 분배 */
.iwlogo-grid.iwlogo-n1 { grid-template-columns: minmax(0, 240px); justify-content: center; }
.iwlogo-grid.iwlogo-n2 { grid-template-columns: repeat(2, 1fr); max-width: 640px; margin: 0 auto; }
.iwlogo-grid.iwlogo-n3 { grid-template-columns: repeat(3, 1fr); max-width: 900px; margin: 0 auto; }
.iwlogo-grid.iwlogo-n4 { grid-template-columns: repeat(4, 1fr); }

.iwlogo-item { display:flex; align-items:center; justify-content:center; padding:20px; background:#fff; border:1px solid #eef1f4; border-radius:10px; height:100px; }
.iwlogo-item img { max-width:100%; max-height:60px; object-fit:contain; filter:grayscale(1); opacity:.7; transition:.2s; }
.iwlogo-item:hover img { filter:none; opacity:1; }
@media (max-width:900px){ .iwlogo-grid.iwlogo-grid { grid-template-columns:repeat(3,1fr); max-width:none; } }
@media (max-width:520px){ .iwlogo-grid.iwlogo-grid { grid-template-columns:repeat(2,1fr); max-width:none; } }

/* ===== 인용문 ===== */
.iwg-quote .iwg-in { max-width:900px; text-align:center; }
.iwquote-mark { font-size:80px; line-height:.5; color:var(--ac,#1a5fb4); font-family:Georgia,serif; margin-bottom:10px; }
.iwquote-text { font-size:var(--iw-title-size,26px); font-weight:600; line-height:1.6; color:var(--iw-title-color,var(--iw-ink,#141a1f)); margin:0 0 20px; border:0; padding:0; }
.iwquote-by { font-size:var(--iw-body-size,16px); color:var(--iw-body-color,var(--iw-body,#6b7580)); font-weight:600; }

/* ===== 자료 다운로드 ===== */
.iwg-downloads > .iwg-in > h3 { font-size:var(--iw-head-size,clamp(24px,3.2vw,32px)); font-weight:var(--iw-head-weight,800); color:var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwdl-list { max-width:880px; margin:0 auto; display:flex; flex-direction:column; gap:12px; }
.iwdl-item { display:flex; align-items:center; gap:18px; padding:20px 24px; background:#fff; border:1px solid #e8ebee; border-radius:10px; }
.iwdl-ic { color:var(--ac,#1a5fb4); flex-shrink:0; }
.iwdl-ic .iw-icon { width:28px; height:28px; }
.iwdl-tx { flex:1; }
.iwdl-title { font-size:var(--iw-title-size,16px); font-weight:700; color:var(--iw-title-color,var(--iw-ink,#141a1f)); }
.iwdl-desc { font-size:var(--iw-body-size,14px); color:var(--iw-body-color,var(--iw-body,#6b7580)); margin-top:4px; }
.iwdl-btn { background:var(--ac,#1a5fb4); color:#fff; text-decoration:none; padding:10px 20px; border-radius:7px; font-size:14px; font-weight:600; white-space:nowrap; }
.iwdl-btn:hover { opacity:.9; }
.iwdl-btn.disabled { background:#c3cbd3; cursor:default; }
@media (max-width:560px){ .iwdl-item { flex-wrap:wrap; } }

/* ===== 갤러리 ===== */
.iwg-gallery > .iwg-in > h3 { font-size:var(--iw-head-size,clamp(24px,3.2vw,32px)); font-weight:var(--iw-head-weight,800); color:var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwgal-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
/* 항목 수에 따라 폭 자동 분배 (2개=50% · 3개=33% · 4개=25%) */
.iwgal-grid.iwgal-n1 { grid-template-columns: minmax(0, 560px); justify-content: center; }
.iwgal-grid.iwgal-n2 { grid-template-columns: repeat(2, 1fr); }
.iwgal-grid.iwgal-n3 { grid-template-columns: repeat(3, 1fr); }

.iwgal-item { margin:0; border-radius:12px; overflow:hidden; cursor:pointer; position:relative; aspect-ratio:4/3; }
.iwgal-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.iwgal-item:hover img { transform:scale(1.06); }
.iwgal-item figcaption { position:absolute; left:0; right:0; bottom:0; padding:10px 14px; background:linear-gradient(transparent,rgba(0,0,0,.6)); color:#fff; font-size:13px; }
.iwgal-lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,.9); z-index:99999; align-items:center; justify-content:center; cursor:zoom-out; }
.iwgal-lightbox.on { display:flex; }
.iwgal-lightbox img { max-width:92vw; max-height:88vh; border-radius:6px; }
.iwgal-close { position:absolute; top:20px; right:30px; color:#fff; font-size:40px; cursor:pointer; line-height:1; }
@media (max-width:900px){ .iwgal-grid.iwgal-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .iwgal-grid.iwgal-grid { grid-template-columns:repeat(2,1fr); } }

/* ===== 모바일 글자 자동 축소 (PC 지정 크기 → 태블릿/모바일 비율 축소) ===== */
/* 태블릿 */
@media (max-width: 1024px) {
  .iwg h3, .iwg-g02 h3, .iwg-g04 h3, .iwg-g05 .head h3,
  .iwcs-head h3, .iwic-head h3, .iwtb-title,
  .iwg-tabs > .iwg-in > h3, .iwg-map > .iwg-in > .iwmap-h3, .iwg-accordion > .iwg-in > h3,
  .iwg-counter > .iwg-in > h3, .iwg-process > .iwg-in > h3, .iwg-logos > .iwg-in > h3,
  .iwg-downloads > .iwg-in > h3, .iwg-gallery > .iwg-in > h3,
  .iwcta-title, .iwquote-text {
    font-size: calc(var(--iw-title-size, var(--iw-head-size, 32px)) * 0.86);
  }
  .iwcs-head h3, .iwic-head h3, .iwtb-title,
  .iwg-tabs > .iwg-in > h3, .iwg-map > .iwg-in > .iwmap-h3, .iwg-accordion > .iwg-in > h3,
  .iwg-counter > .iwg-in > h3, .iwg-process > .iwg-in > h3, .iwg-logos > .iwg-in > h3,
  .iwg-downloads > .iwg-in > h3, .iwg-gallery > .iwg-in > h3 {
    font-size: calc(var(--iw-head-size, 32px) * 0.86);
  }
}
/* 모바일 */
@media (max-width: 640px) {
  .iwg h3, .iwg-g02 h3, .iwg-g04 h3, .iwg-g05 .head h3,
  .iwcta-title, .iwquote-text {
    font-size: calc(var(--iw-title-size, 30px) * 0.72);
  }
  .iwcs-head h3, .iwic-head h3, .iwtb-title,
  .iwg-tabs > .iwg-in > h3, .iwg-map > .iwg-in > .iwmap-h3, .iwg-accordion > .iwg-in > h3,
  .iwg-counter > .iwg-in > h3, .iwg-process > .iwg-in > h3, .iwg-logos > .iwg-in > h3,
  .iwg-downloads > .iwg-in > h3, .iwg-gallery > .iwg-in > h3 {
    font-size: calc(var(--iw-head-size, 30px) * 0.72);
  }
  .iwg .body, .iwcs-desc, .iwtl-desc, .iwic-desc {
    font-size: calc(var(--iw-body-size, 16px) * 0.92);
  }
}

/* ============================================================
   신규 블록 스타일 (2차 확장)
   ============================================================ */

/* ===== 동영상 (인라인) ===== */
.iwg-video .iwvid-head { text-align: center; margin-bottom: 30px; }
.iwg-video .iwvid-head h3 { font-size: var(--iw-head-size, clamp(24px,3.2vw,32px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); margin: 0 0 10px; }
.iwvid-sub { font-size: var(--iw-body-size,16px); color: var(--iw-body-color,var(--iw-body,#6b7580)); margin: 0; }
.iwvid-stage { margin: 0 auto; }
.iwvid-ratio { position: relative; width: 100%; aspect-ratio: 16/9; background: #0d1117; border-radius: 14px; overflow: hidden; box-shadow: 0 10px 40px rgba(20,26,31,.18); }
.iwvid-ratio iframe, .iwvid-ratio video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.iwvid-empty { aspect-ratio: 16/9; max-width: 960px; margin: 0 auto; background: #eef1f4; border: 2px dashed #cfd6dd; border-radius: 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #8a949e; font-size: 17px; font-weight: 600; gap: 6px; text-align: center; }
.iwvid-empty span { font-size: 13px; font-weight: 400; }

/* ===== 동영상 (팝업) ===== */
.iwg-videopop .iwvp-head { text-align: center; margin-bottom: 26px; }
.iwg-videopop .iwvp-head h3 { font-size: var(--iw-head-size, clamp(24px,3.2vw,32px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); margin: 0 0 10px; }
.iwvp-sub { font-size: var(--iw-body-size,16px); color: var(--iw-body-color,var(--iw-body,#6b7580)); margin: 0; }
.iwvp-thumb { display: block; width: 100%; max-width: 880px; margin: 0 auto; aspect-ratio: 16/9; border: 0; border-radius: 14px; background: #1a2230 center/cover no-repeat; cursor: pointer; position: relative; overflow: hidden; box-shadow: 0 8px 30px rgba(20,26,31,.15); }
.iwvp-thumb::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.28); transition: .2s; }
.iwvp-thumb:hover::after { background: rgba(0,0,0,.42); }
.iwvp-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; z-index: 2; }
.iwvp-play-bg { fill: #d40000; opacity: .92; transition: .2s; }
.iwvp-thumb:hover .iwvp-play-bg { fill: #f00; opacity: 1; }
.iwvp-play svg { filter: drop-shadow(0 3px 8px rgba(0,0,0,.4)); transition: transform .2s; }
.iwvp-thumb:hover .iwvp-play svg { transform: scale(1.08); }
.iwvp-lightbox { display: none; position: fixed; inset: 0; background: rgba(8,10,14,.92); z-index: 99999; align-items: center; justify-content: center; padding: 24px; }
.iwvp-lightbox.on { display: flex; }
.iwvp-lb-inner { width: min(1100px, 92vw); aspect-ratio: 16/9; background: #000; border-radius: 10px; overflow: hidden; box-shadow: 0 20px 70px rgba(0,0,0,.6); }
.iwvp-close { position: absolute; top: 22px; right: 30px; background: none; border: 0; color: #fff; font-size: 40px; line-height: 1; cursor: pointer; opacity: .8; }
.iwvp-close:hover { opacity: 1; }

/* ===== 버튼 그룹 ===== */
.iwg-buttons .iwbtn-head h3 { font-size: var(--iw-head-size, clamp(22px,3vw,30px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwbtn-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.iwbtn { display: inline-flex; align-items: center; justify-content: center; padding: 15px 34px; border-radius: 8px; font-size: var(--iw-btn-size,16px); font-weight: var(--iw-btn-weight,700); text-decoration: none; transition: .16s; white-space: nowrap; }
.iwbtn-fill { background: var(--ac,#1a5fb4); color: var(--iw-btn-color,#fff); }
.iwbtn-fill:hover { filter: brightness(.94); transform: translateY(-2px); box-shadow: 0 8px 22px color-mix(in srgb, var(--ac) 35%, transparent); }
.iwbtn-line { background: transparent; color: var(--ac,#1a5fb4); box-shadow: inset 0 0 0 2px var(--ac,#1a5fb4); }
.iwbtn-line:hover { background: var(--ac,#1a5fb4); color: #fff; }
@media (max-width:560px){ .iwbtn-row { flex-direction: column; align-items: stretch; } .iwbtn { width: 100%; } }

/* ===== 아이콘 리스트 ===== */
.iwg-iconlist .iwil-head { margin-bottom: 26px; }
.iwg-iconlist .iwil-head h3 { font-size: var(--iw-head-size, clamp(22px,3vw,30px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); margin: 0; }
.iwil-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--iw-il-cols,1), 1fr); gap: 16px 40px; }
.iwil-item { display: flex; gap: 16px; align-items: flex-start; }
.iwil-ico { flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--ac) 12%, #fff); color: var(--ac,#1a5fb4); }
.iwil-ico .iw-icon { width: 22px; height: 22px; }
.iwil-tx { display: flex; flex-direction: column; gap: 3px; padding-top: 2px; }
.iwil-title { font-size: var(--iw-title-size,17px); font-weight: var(--iw-title-weight,700); color: var(--iw-title-color,var(--iw-ink,#141a1f)); }
.iwil-desc { font-size: var(--iw-body-size,15px); font-weight: var(--iw-body-weight,400); line-height: 1.6; color: var(--iw-body-color,var(--iw-body,#6b7580)); }
@media (max-width:640px){ .iwil-list { grid-template-columns: 1fr !important; } }

/* ===== 가격표 ===== */
.iwg-pricing .iwpr-head { text-align: center; margin-bottom: 40px; }
.iwg-pricing .iwpr-head h3 { font-size: var(--iw-head-size, clamp(24px,3.2vw,32px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); margin: 0 0 12px; }
.iwpr-sub { font-size: var(--iw-body-size,16px); color: var(--iw-body-color,var(--iw-body,#6b7580)); margin: 0; }
.iwpr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; align-items: stretch; }
.iwpr-card { position: relative; background: #fff; border: 1px solid #e6eaee; border-radius: 16px; padding: 38px 30px; display: flex; flex-direction: column; box-shadow: 0 3px 16px rgba(20,26,31,.05); transition: .2s; }
.iwpr-card:hover { box-shadow: 0 12px 34px rgba(20,26,31,.1); transform: translateY(-3px); }
.iwpr-card.is-featured { border: 2px solid var(--ac,#1a5fb4); box-shadow: 0 12px 40px color-mix(in srgb, var(--ac) 22%, transparent); }
.iwpr-badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--ac,#1a5fb4); color: #fff; font-size: 13px; font-weight: 700; padding: 6px 18px; border-radius: 20px; white-space: nowrap; }
.iwpr-name { font-size: 18px; font-weight: 700; color: var(--iw-ink,#141a1f); text-align: center; }
.iwpr-price { text-align: center; margin: 16px 0 24px; display: flex; align-items: baseline; justify-content: center; gap: 4px; }
.iwpr-amt { font-size: 40px; font-weight: 800; color: var(--ac,#1a5fb4); line-height: 1; letter-spacing: -.02em; }
.iwpr-unit { font-size: 15px; color: #8a949e; font-weight: 600; }
.iwpr-feats { list-style: none; margin: 0 0 26px; padding: 22px 0 0; border-top: 1px solid #eef1f4; display: flex; flex-direction: column; gap: 13px; flex: 1; }
.iwpr-feats li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; color: #4c565e; line-height: 1.5; }
.iwpr-feats .iw-icon { width: 18px; height: 18px; color: var(--ac,#1a5fb4); flex-shrink: 0; margin-top: 1px; }
.iwpr-btn { display: block; text-align: center; text-decoration: none; padding: 14px; border-radius: 8px; font-size: 15px; font-weight: 700; background: color-mix(in srgb, var(--ac) 10%, #fff); color: var(--ac,#1a5fb4); transition: .16s; }
.iwpr-card.is-featured .iwpr-btn { background: var(--ac,#1a5fb4); color: #fff; }
.iwpr-btn:hover { background: var(--ac,#1a5fb4); color: #fff; }

/* ===== 프로그레스 바 ===== */
.iwg-progress .iwpb-head { margin-bottom: 26px; }
.iwg-progress .iwpb-head h3 { font-size: var(--iw-head-size, clamp(22px,3vw,30px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); margin: 0; }
.iwpb-list { max-width: 820px; display: flex; flex-direction: column; gap: 22px; }
.iwpb-top { display: flex; justify-content: space-between; margin-bottom: 9px; }
.iwpb-name { font-size: var(--iw-title-size,16px); font-weight: 700; color: var(--iw-title-color,var(--iw-ink,#141a1f)); }
.iwpb-pct { font-size: 15px; font-weight: 700; color: var(--ac,#1a5fb4); }
.iwpb-track { height: 10px; background: #eaeef2; border-radius: 6px; overflow: hidden; }
.iwpb-fill { display: block; height: 100%; width: 0; background: linear-gradient(90deg, color-mix(in srgb,var(--ac) 70%,#fff), var(--ac,#1a5fb4)); border-radius: 6px; transition: width 1.1s cubic-bezier(.22,.61,.36,1); }

/* ===== 카운트다운 ===== */
.iwg-countdown .iwcd-sub { color: var(--iw-body-color,var(--iw-body,#6b7580)); margin: 0 0 6px; }
.iwcd-clock { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 28px; }
.iwcd-unit { min-width: 92px; background: var(--iw-card-bg,#fff); border: 1px solid #e6eaee; border-radius: 14px; padding: 20px 8px 14px; text-align: center; box-shadow: 0 4px 18px rgba(20,26,31,.06); }
.iwcd-n { display: block; font-size: 48px; font-weight: 800; color: var(--ac,#1a5fb4); line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.iwcd-l { display: block; margin-top: 8px; font-size: 13px; color: #8a949e; font-weight: 600; }
.iwcd-sep { font-size: 34px; font-weight: 800; color: #c3cbd3; align-self: flex-start; margin-top: 18px; }
.iwcd-ended { text-align: center; margin-top: 28px; font-size: 22px; font-weight: 700; color: #b3541e; }
.iwcd-btn { display: inline-block; background: var(--ac,#1a5fb4); color: #fff; text-decoration: none; padding: 14px 32px; border-radius: 8px; font-size: 16px; font-weight: 700; transition: .16s; }
.iwcd-btn:hover { filter: brightness(.94); transform: translateY(-2px); }
@media (max-width:560px){ .iwcd-unit { min-width: 68px; padding: 14px 4px 10px; } .iwcd-n { font-size: 32px; } .iwcd-sep { font-size: 24px; margin-top: 14px; } }

/* ===== 공지 배너 ===== */
.iwg-notice { padding: 0; }
.iwg-notice .iwnt-bar { display: flex; align-items: center; gap: 14px; max-width: var(--iw-container,1600px); margin: 0 auto; padding: 14px 30px; }
.iwnt-tag { flex-shrink: 0; background: var(--ac,#1a5fb4); color: #fff; font-size: 12px; font-weight: 700; padding: 4px 12px; border-radius: 5px; letter-spacing: .04em; }
.iwnt-tx { flex: 1; font-size: 15px; font-weight: 600; color: var(--iw-title-color,var(--iw-ink,#1c2530)); }
.iwnt-link { flex-shrink: 0; color: var(--ac,#1a5fb4); font-size: 14px; font-weight: 700; text-decoration: none; }
.iwnt-link:hover { text-decoration: underline; }
.iwnt-x { flex-shrink: 0; background: none; border: 0; color: #98a2ac; font-size: 22px; line-height: 1; cursor: pointer; padding: 0 4px; }
.iwnt-x:hover { color: #4c565e; }
@media (max-width:640px){ .iwg-notice .iwnt-bar { padding: 12px 16px; gap: 10px; flex-wrap: wrap; } .iwnt-tx { font-size: 14px; } }

/* ===== 스텝 타임라인 (좌우 교차) ===== */
.iwg-steptl .iwst-head h3 { font-size: var(--iw-head-size, clamp(24px,3.2vw,32px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwst-line { position: relative; max-width: 960px; margin: 0 auto; }
.iwst-line::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; background: #e0e5ea; transform: translateX(-50%); }
.iwst-item { position: relative; width: 50%; padding: 0 44px 44px; box-sizing: border-box; opacity: 0; transition: opacity .5s, transform .5s; }
.iwst-item.left { left: 0; text-align: right; transform: translateX(-24px); }
.iwst-item.right { left: 50%; text-align: left; transform: translateX(24px); }
.iwst-item.in { opacity: 1; transform: translateX(0); }
.iwst-dot { position: absolute; top: 0; width: 40px; height: 40px; border-radius: 50%; background: var(--ac,#1a5fb4); color: #fff; font-size: 16px; font-weight: 800; display: flex; align-items: center; justify-content: center; z-index: 2; box-shadow: 0 0 0 5px color-mix(in srgb,var(--ac) 15%, transparent); }
.iwst-item.left .iwst-dot { right: -20px; }
.iwst-item.right .iwst-dot { left: -20px; }
.iwst-card { background: #fff; border: 1px solid #eef1f4; border-radius: 12px; padding: 22px 26px; box-shadow: 0 4px 18px rgba(20,26,31,.06); display: inline-block; text-align: left; }
.iwst-title { font-size: var(--iw-title-size,19px); font-weight: 700; color: var(--iw-title-color,var(--iw-ink,#141a1f)); margin: 0 0 8px; }
.iwst-desc { font-size: var(--iw-body-size,15px); line-height: 1.7; color: var(--iw-body-color,var(--iw-body,#6b7580)); margin: 0; }
@media (max-width:720px){
  .iwst-line::before { left: 20px; }
  .iwst-item { width: 100%; left: 0 !important; text-align: left !important; padding: 0 0 34px 56px; transform: translateX(20px); }
  .iwst-item .iwst-dot { left: 0 !important; right: auto !important; }
}

/* ===== 소셜 아이콘 ===== */
.iwg-social .iwso-head h3 { font-size: var(--iw-head-size, clamp(20px,2.6vw,26px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwso-row { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.iwso-ic { width: 52px; height: 52px; border-radius: 50%; background: #fff; border: 1px solid #e6eaee; color: #4c565e; display: flex; align-items: center; justify-content: center; text-decoration: none; transition: .18s; }
.iwso-ic:hover { background: var(--ac,#1a5fb4); border-color: var(--ac,#1a5fb4); color: #fff; transform: translateY(-3px); box-shadow: 0 8px 20px color-mix(in srgb,var(--ac) 30%, transparent); }

/* ===== 이미지 비교 (Before/After) ===== */
.iwg-compare .iwcmp-head h3 { font-size: var(--iw-head-size, clamp(24px,3.2vw,32px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwcmp-box { position: relative; max-width: 960px; margin: 0 auto; aspect-ratio: 16/10; border-radius: 14px; overflow: hidden; user-select: none; box-shadow: 0 10px 40px rgba(20,26,31,.15); cursor: ew-resize; }
.iwcmp-box img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.iwcmp-after { z-index: 1; }
.iwcmp-before-wrap { position: absolute; left: 0; top: 0; bottom: 0; width: 50%; overflow: hidden; z-index: 2; border-right: 2px solid #fff; }
.iwcmp-before-wrap .iwcmp-before { position: absolute; left: 0; top: 0; height: 100%; width: auto; max-width: none; }
.iwcmp-handle { position: absolute; top: 0; bottom: 0; left: 50%; width: 2px; background: #fff; transform: translateX(-50%); z-index: 3; }
.iwcmp-grip { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--ac,#1a5fb4); font-size: 20px; display: flex; align-items: center; justify-content: center; box-shadow: 0 3px 12px rgba(0,0,0,.3); cursor: ew-resize; }
.iwcmp-tag { position: absolute; top: 16px; z-index: 3; background: rgba(0,0,0,.6); color: #fff; font-size: 13px; font-weight: 700; padding: 5px 14px; border-radius: 20px; }
.iwcmp-tag-b { left: 16px; }
.iwcmp-tag-a { right: 16px; }
.iwcmp-empty { max-width: 960px; margin: 0 auto; aspect-ratio: 16/10; background: #eef1f4; border: 2px dashed #cfd6dd; border-radius: 14px; display: flex; align-items: center; justify-content: center; color: #8a949e; font-weight: 600; }

/* ===== 플립 카드 ===== */
.iwg-flip .iwfc-head { text-align: center; margin-bottom: 40px; }
.iwg-flip .iwfc-head h3 { font-size: var(--iw-head-size, clamp(24px,3.2vw,32px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); margin: 0 0 12px; }
.iwfc-sub { font-size: var(--iw-body-size,16px); color: var(--iw-body-color,var(--iw-body,#6b7580)); margin: 0; }
.iwfc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 24px; }
.iwfc-card { perspective: 1200px; height: 260px; cursor: pointer; outline: none; }
.iwfc-inner { position: relative; width: 100%; height: 100%; transition: transform .6s cubic-bezier(.4,.2,.2,1); transform-style: preserve-3d; }
.iwfc-card:hover .iwfc-inner, .iwfc-card:focus .iwfc-inner, .iwfc-card.flipped .iwfc-inner { transform: rotateY(180deg); }
.iwfc-front, .iwfc-back { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; border-radius: 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px 24px; text-align: center; }
.iwfc-front { background: var(--iw-card-bg,#fff); border: 1px solid #e8ebee; box-shadow: 0 4px 18px rgba(20,26,31,.06); }
.iwfc-ico { color: var(--ac,#1a5fb4); margin-bottom: 16px; }
.iwfc-ico .iw-icon { width: 46px; height: 46px; }
.iwfc-title { font-size: var(--iw-title-size,19px); font-weight: 700; color: var(--iw-title-color,var(--iw-ink,#141a1f)); margin: 0 0 12px; }
.iwfc-hint { font-size: 13px; color: #9aa3ac; font-weight: 600; }
.iwfc-back { background: var(--ac,#1a5fb4); color: #fff; transform: rotateY(180deg); }
.iwfc-desc { font-size: 15px; line-height: 1.7; margin: 0 0 14px; color: #fff; }
.iwfc-link { color: #fff; font-weight: 700; font-size: 14px; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.6); padding-bottom: 2px; }

/* ===== 호버 박스 ===== */
.iwg-hoverbox .iwhb-head h3 { font-size: var(--iw-head-size, clamp(24px,3.2vw,32px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwhb-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.iwhb-item { position: relative; display: block; aspect-ratio: 4/3; border-radius: 14px; overflow: hidden; text-decoration: none; }
.iwhb-item img, .iwhb-noimg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.iwhb-noimg { background: #dde3e8; }
.iwhb-item:hover img { transform: scale(1.06); }
.iwhb-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 26px; background: linear-gradient(transparent 35%, rgba(10,16,24,.82)); color: #fff; }
.iwhb-title { font-size: var(--iw-title-size,20px); font-weight: 700; }
.iwhb-desc, .iwhb-more { max-height: 0; opacity: 0; overflow: hidden; transition: .35s; }
.iwhb-desc { font-size: 14px; line-height: 1.6; color: #e6edf3; }
.iwhb-more { font-size: 14px; font-weight: 700; color: #fff; margin-top: 4px; }
.iwhb-item:hover .iwhb-desc { max-height: 120px; opacity: 1; margin-top: 8px; }
.iwhb-item:hover .iwhb-more { max-height: 40px; opacity: 1; margin-top: 8px; }
@media (hover: none){ .iwhb-desc, .iwhb-more { max-height: 120px; opacity: 1; margin-top: 6px; } }

/* ===== 이미지 오버레이 카드 ===== */
.iwg-imgoverlay .iwio-head h3 { font-size: var(--iw-head-size, clamp(24px,3.2vw,32px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.iwio-card { position: relative; display: block; aspect-ratio: 3/4; border-radius: 16px; overflow: hidden; text-decoration: none; }
.iwio-card img, .iwio-noimg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.iwio-noimg { background: linear-gradient(160deg,#3a4a5e,#1c2733); }
.iwio-card:hover img { transform: scale(1.07); }
.iwio-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 40%, rgba(8,14,22,.8)); }
.iwio-tx { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 24px; color: #fff; }
.iwio-sub { display: block; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: color-mix(in srgb,var(--ac) 40%, #fff); margin-bottom: 6px; }
.iwio-title { display: block; font-size: var(--iw-title-size,22px); font-weight: 800; line-height: 1.3; }

/* ===== 아코디언 이미지 (수평 확장) ===== */
.iwg-accimg .iwai-head h3 { font-size: var(--iw-head-size, clamp(24px,3.2vw,32px)); font-weight: var(--iw-head-weight,800); color: var(--iw-head-color,var(--iw-ink,#141a1f)); }
.iwai-row { display: flex; gap: 12px; height: 440px; }
.iwai-panel { position: relative; flex: 1; min-width: 60px; border-radius: 14px; overflow: hidden; background-size: cover; background-position: center; cursor: pointer; text-decoration: none; transition: flex .5s cubic-bezier(.4,.2,.2,1); }
.iwai-panel.active { flex: 5; }
.iwai-panel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 45%, rgba(8,14,22,.78)); }
.iwai-cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 24px; color: #fff; opacity: 0; transition: opacity .3s .15s; white-space: nowrap; }
.iwai-panel.active .iwai-cap { opacity: 1; }
.iwai-title { display: block; font-size: 22px; font-weight: 800; }
.iwai-desc { display: block; font-size: 14px; color: #e6edf3; margin-top: 6px; white-space: normal; }
@media (max-width:760px){
  .iwai-row { flex-direction: column; height: auto; }
  .iwai-panel { height: 180px; flex: none !important; }
  .iwai-panel.active { height: 300px; }
  .iwai-cap { opacity: 1; white-space: normal; }
}

/* ===== 신규 블록 모바일 글자 축소 연동 ===== */
@media (max-width: 1024px){
  .iwg-video .iwvid-head h3, .iwg-videopop .iwvp-head h3, .iwg-pricing .iwpr-head h3,
  .iwg-steptl .iwst-head h3, .iwg-compare .iwcmp-head h3, .iwg-flip .iwfc-head h3,
  .iwg-hoverbox .iwhb-head h3, .iwg-imgoverlay .iwio-head h3, .iwg-accimg .iwai-head h3,
  .iwg-buttons .iwbtn-head h3, .iwg-iconlist .iwil-head h3, .iwg-progress .iwpb-head h3 {
    font-size: calc(var(--iw-head-size, 32px) * 0.88);
  }
}
@media (max-width: 640px){
  .iwg-video .iwvid-head h3, .iwg-videopop .iwvp-head h3, .iwg-pricing .iwpr-head h3,
  .iwg-steptl .iwst-head h3, .iwg-compare .iwcmp-head h3, .iwg-flip .iwfc-head h3,
  .iwg-hoverbox .iwhb-head h3, .iwg-imgoverlay .iwio-head h3, .iwg-accimg .iwai-head h3,
  .iwg-buttons .iwbtn-head h3, .iwg-iconlist .iwil-head h3, .iwg-progress .iwpb-head h3 {
    font-size: calc(var(--iw-head-size, 30px) * 0.74);
  }
}

/* 섹션 끝 마커 CSS 제거됨 (세로섹션 기능 삭제) */


/* ===== 멀티 칸 섹션 (부분 중첩, 2~5칸) ===== */
.iwg-columns .iwcol-grid {
  display: grid;
  grid-template-columns: var(--iwcol-tmpl, 1fr 1fr);
  gap: var(--iwcol-gap, 40px);
  align-items: var(--iwcol-valign, stretch);
}
.iwg-columns .iwcol { min-width: 0; display: flex; flex-direction: column; gap: 20px; }
/* 칸 안의 자식 블록: 자기 .iwg-in 의 최대폭·좌우패딩을 없애 칸에 꽉 맞춤 */
.iwg-columns .iwcol-item > .iwg > .iwg-in {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
}
.iwg-columns .iwcol-item > .iwg { padding: 0; }
.iwg-columns .iwcol-item { min-width: 0; }
.iwg-columns .iwcol-item img { border-radius: 12px; }
.iwcol-empty {
  border: 2px dashed #cfd6dd; border-radius: 12px;
  padding: 40px 16px; text-align: center; color: #9aa3ac;
  font-size: 14px; font-weight: 600;
}
/* 반응형: 태블릿에서 4·5칸 → 2칸, 3칸은 유지 / 모바일 → 전부 1칸 */
@media (max-width: 1024px) {
  .iwg-cols-4 .iwcol-grid,
  .iwg-cols-5 .iwcol-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 768px) {
  .iwg-columns .iwcol-grid { grid-template-columns: 1fr !important; gap: 28px; }
}

/* ===== 제목+본문 (심플 글 블록) ===== */
.iwg-textblock .iwg-in { display: flex; flex-direction: column; gap: 16px; }
.iwg-textblock.iwg .eb { margin-bottom: 0; }
.iwg-textblock[style*="center"] .iwg-in { align-items: center; }
.iwg-textblock[style*="right"] .iwg-in { align-items: flex-end; }
.iwtx-title { font-size: var(--iw-title-size, clamp(22px,3vw,30px)); font-weight: var(--iw-title-weight,800); color: var(--iw-title-color,var(--iw-ink,#141a1f)); margin: 0; line-height: 1.4; }
.iwtx-body { font-size: var(--iw-body-size,16px); font-weight: var(--iw-body-weight,400); line-height: 1.9; color: var(--iw-body-color,var(--iw-body,#4c565e)); margin: 0; }
.iwtx-btnwrap { margin-top: 6px; }
.iwtx-btn { background: var(--ac,#1a5fb4); color: var(--iw-btn-color,#fff); }
@media (max-width:1024px){ .iwtx-title { font-size: calc(var(--iw-title-size,30px) * 0.88); } }
@media (max-width:640px){ .iwtx-title { font-size: calc(var(--iw-title-size,30px) * 0.74); } .iwtx-body { font-size: calc(var(--iw-body-size,16px) * 0.92); } }

/* ===== 구분선 (divider) ===== */
.iwg-divider .iwg-in { padding-top:0; padding-bottom:0; }
.iwdiv-line { border:0; width:100%; }
.iwdiv-spacer { height:40px; }
.iwdiv-wrap { display:flex; align-items:center; gap:18px; width:100%; }
.iwdiv-seg { flex:1; display:block; height:0; }
.iwdiv-center { flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; }
.iwdiv-center .iw-icon { width:26px; height:26px; }
.iwdiv-text { font-size:15px; font-weight:700; letter-spacing:.02em; white-space:nowrap; }
/* short/normal + 좌우 정렬일 때 가운데 장식 배치 보정: 짧은 쪽 세그먼트가 밀리지 않도록 */
.iwdiv-c-left  { }
.iwdiv-c-right { }

/* ===== 미션·핵심가치 (mission-values) ===== */
.iwg-mission .iwmv-head { text-align: center; max-width: 720px; margin: 0 auto 44px; }
.iwg-mission .iwmv-head .eb { justify-content: center; text-align: center; }
.iwmv-title { font-size: var(--iw-title-size, 30px); font-weight: var(--iw-title-weight, 800); color: var(--iw-title-color, var(--iw-ink, #141a1f)); margin: 0 0 14px; line-height: 1.35; }
.iwmv-body { font-size: var(--iw-body-size, 17px); font-weight: var(--iw-body-weight, 400); line-height: 1.8; color: var(--iw-body-color, var(--iw-body, #4c565e)); margin: 0; }
.iwmv-grid { display: grid; gap: 20px; }
.iwmv-grid.iwmv-n1 { grid-template-columns: minmax(0, 420px); justify-content: center; }
.iwmv-grid.iwmv-n2 { grid-template-columns: repeat(2, 1fr); max-width: 720px; margin: 0 auto; }
.iwmv-grid.iwmv-n3 { grid-template-columns: repeat(3, 1fr); }
.iwmv-grid.iwmv-n4 { grid-template-columns: repeat(4, 1fr); }
.iwmv-grid.iwmv-n5, .iwmv-grid.iwmv-n6 { grid-template-columns: repeat(3, 1fr); }
.iwmv-card { text-align: center; background: #fff; border: 1px solid #e8ebee; border-radius: 14px; padding: 30px 24px; box-shadow: 0 2px 12px rgba(20,26,31,.04); transition: .2s; }
.iwmv-card:hover { box-shadow: 0 8px 28px rgba(20,26,31,.09); transform: translateY(-2px); }
.iwmv-ico { width: 56px; height: 56px; margin: 0 auto 16px; border-radius: 14px; background: color-mix(in srgb, var(--ac) 12%, #fff); color: var(--ac, #1a5fb4); display: flex; align-items: center; justify-content: center; }
.iwmv-ico .iw-icon { width: 28px; height: 28px; }
.iwmv-vtitle { font-size: 18px; font-weight: 700; color: var(--iw-ink, #141a1f); margin-bottom: 8px; }
.iwmv-vdesc { font-size: 14.5px; line-height: 1.65; color: var(--iw-body, #4c565e); margin: 0; }
@media (max-width: 900px) {
  .iwmv-grid.iwmv-n3, .iwmv-grid.iwmv-n4, .iwmv-grid.iwmv-n5, .iwmv-grid.iwmv-n6 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .iwmv-grid { grid-template-columns: 1fr !important; }
}

/* 텍스트만 */
.iwg-textonly .iwto-body { font-size:var(--iw-body-size,16px); font-weight:var(--iw-body-weight,400); line-height:var(--iw-body-lh,1.9); color:var(--iw-body-color,var(--iw-body,#4c565e)); text-align:var(--iw-body-align,inherit); margin:0; }
.iwg-textonly .iwto-body p { margin:0 0 1em; }
.iwg-textonly .iwto-body p:last-child { margin-bottom:0; }

/* 이미지만 */
.iwg-imageonly .iwio-wrap { line-height:0; }
.iwg-imageonly .iwio-wrap a { display:block; }
/* ============================================================
   블록 진입 애니메이션 — 5종 (밑에서 위로 / 페이드 / 왼쪽 / 오른쪽 / 확대)
   .iw-anim[data-iw-anim="up|fade|left|right|zoom"] 에 적용.
   JS(iw-anim.js)가 화면 진입 시 .is-in 을 붙임.
   화면 밖으로 150px 이상 벗어나야 .is-in 제거 → 다시 내려오면 재생(반복).
   ※ 이동거리(40~48px)보다 제거 여유구간이 커야 add/remove 무한반복(떨림)이 안 생김.
   ============================================================ */
.iw-anim {
  transition: opacity .7s ease, transform .7s cubic-bezier(.22,.61,.36,1);
}
/* will-change 는 '아직 등장 전' 상태에만. 영구 적용하면 GPU 레이어가 계속 남아
   합성 레이어 위 텍스트가 서브픽셀 안티앨리어싱을 못 써서 글자가 뿌옇게 보인다. */
.iw-anim:not(.is-in) { will-change: opacity, transform; }
/* 시작(숨김) 상태 */
.iw-anim[data-iw-anim="up"]    { opacity:0; transform: translateY(40px); }
.iw-anim[data-iw-anim="fade"]  { opacity:0; }
.iw-anim[data-iw-anim="left"]  { opacity:0; transform: translateX(-48px); }
.iw-anim[data-iw-anim="right"] { opacity:0; transform: translateX(48px); }
.iw-anim[data-iw-anim="zoom"]  { opacity:0; transform: scale(.92); }
/* 진입(보임) 상태 — 모두 제자리 */
.iw-anim.is-in { opacity:1 !important; transform:none !important; }
/* 애니메이션 끄기 설정(reduce motion) 대비: 그냥 보이게 */
@media (prefers-reduced-motion: reduce) {
  .iw-anim { opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ============================================================
   흐르는 큰 글자 (마퀴) — marquee.php
   텍스트 2벌을 이어붙여 track 을 -50% 이동 → 끊김 없는 무한 루프.
   JS 없음. 속도/방향/크기/색은 인라인 CSS 변수로 제어.
   ============================================================ */
.iwg-marquee { overflow: hidden; }
.iwg-marquee .iwmq-viewport { width: 100%; overflow: hidden; padding: 0.12em 0; }
.iwg-marquee .iwmq-track {
  display: inline-flex;
  flex-wrap: nowrap;
  white-space: nowrap;
  will-change: transform;
  animation-duration: var(--iwmq-dur, 24s);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
.iwg-marquee .iwmq-item {
  display: inline-block;
  padding-right: var(--iwmq-gap, 60px);
  font-size: var(--iwmq-size, 120px);
  font-weight: var(--iwmq-weight, 800);
  line-height: 1.2;
  letter-spacing: .04em;
  color: var(--iwmq-color, rgba(20,26,31,0.06));
  user-select: none;
}
@keyframes iwmq-left  { from { transform: translateX(0); }    to { transform: translateX(-50%); } }
@keyframes iwmq-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }
/* 애니메이션 끄기 설정 대비: 그냥 첫 화면 고정 */
@media (prefers-reduced-motion: reduce) {
  .iwg-marquee .iwmq-track { animation: none; transform: none; }
}

/* ============================================================
   ★ 스타일 탭 공통 연결 — 굵기/줄간격/정렬 전 블록 일괄 적용
   블록마다 CSS 변수 참조가 빠져있던 것을 여기서 한 번에 보정.
   변수 미지정 시 기본값 유지(inherit / 각 블록 기본).
   이 블록이 파일 맨 끝이라 하드코딩 line-height 보다 우선함.
   ============================================================ */
/* ── 섹션제목(head) ── */
.iwg .iwg-in > h3,
.iwcs-head h3, .iwic-head h3, .iwtb-title, .iwil-head h3, .iwpr-head h3,
.iwpb-head h3, .iwst-head h3, .iwso-head h3, .iwcmp-head h3, .iwfc-head h3,
.iwhb-head h3, .iwio-head h3, .iwai-head h3, .iwbtn-head h3,
.iwvid-head h3, .iwvp-head h3 {
  line-height: var(--iw-head-lh, 1.35);
  text-align: var(--iw-head-align, inherit);
}
/* head weight/align 이 지정되면 그것을 따름 (일부 블록은 head-weight 이미 연결됨) */

/* ── 제목(title) ── */
.iwcs-title, .iwtl-title, .iwic-title, .iwil-title, .iwmv-title, .iwtx-title,
.iwcta-title, .iwdl-title, .iwfc-title, .iwhb-title, .iwio-title,
.iwai-title, .iwst-title, .iwproc-title {
  font-weight: var(--iw-title-weight, 700);
  line-height: var(--iw-title-lh, 1.4);
  text-align: var(--iw-title-align, inherit);
}

/* ── 본문(body/desc) ── */
.iwcs-desc, .iwcs-body, .iwtl-desc, .iwic-desc, .iwil-desc, .iwmv-body,
.iwtx-body, .iwdl-desc, .iwfc-desc, .iwhb-desc, .iwai-desc,
.iwst-desc, .iwproc-desc, .iwto-body {
  font-weight: var(--iw-body-weight, 400);
  line-height: var(--iw-body-lh, 1.75);
  text-align: var(--iw-body-align, inherit);
}


/* ============================================================
 * v1.1.8 — 줄간격(lh)·정렬(align) CSS 변수 배선
 *   render.php text_style() 가 --iw-{title|body|head|thead|btn}-{lh|align} 을
 *   섹션 인라인 style 로 내보내는데, 블록 CSS 85곳 중 lh 8곳 / align 4곳만
 *   이 변수를 읽고 있어서 조정이 전혀 안 먹었다.
 *   블록 CSS 를 직접 고치지 않고, [style*="--iw-..."] 로 "변수가 실제로 설정된
 *   섹션"만 골라 덮어쓴다 → 기본값은 그대로, 사용자가 만진 것만 반영.
 *   ★ 블록 파일·PHP·JS 는 손대지 않음.
 * ============================================================ */

.iwg-g04[style*="--iw-body-align"] .body,
.iwg-table[style*="--iw-body-align"] table,
.iwg-table[style*="--iw-body-align"] td,
.iwg-table[style*="--iw-body-align"] th,
[style*="--iw-body-align"] .iwac-a-in,
[style*="--iw-body-align"] .iwcnt-label,
[style*="--iw-body-align"] .iwcs-desc,
[style*="--iw-body-align"] .iwcs-sub,
[style*="--iw-body-align"] .iwcta-sub,
[style*="--iw-body-align"] .iwdl-desc,
[style*="--iw-body-align"] .iwfc-sub,
[style*="--iw-body-align"] .iwic-desc,
[style*="--iw-body-align"] .iwic-sub,
[style*="--iw-body-align"] .iwil-desc,
[style*="--iw-body-align"] .iwmap-row,
[style*="--iw-body-align"] .iwmv-body,
[style*="--iw-body-align"] .iwpr-sub,
[style*="--iw-body-align"] .iwproc-desc,
[style*="--iw-body-align"] .iwquote-by,
[style*="--iw-body-align"] .iwst-desc,
[style*="--iw-body-align"] .iwtab-panel .body,
[style*="--iw-body-align"] .iwtl-desc,
[style*="--iw-body-align"] .iwtx-body,
[style*="--iw-body-align"] .iwvid-sub,
[style*="--iw-body-align"] .iwvp-sub { text-align: var(--iw-body-align); }

.iwg-g04[style*="--iw-body-lh"] .body,
.iwg-table[style*="--iw-body-lh"] table,
.iwg-table[style*="--iw-body-lh"] td,
.iwg-table[style*="--iw-body-lh"] th,
[style*="--iw-body-lh"] .iwac-a-in,
[style*="--iw-body-lh"] .iwcnt-label,
[style*="--iw-body-lh"] .iwcs-sub,
[style*="--iw-body-lh"] .iwcta-sub,
[style*="--iw-body-lh"] .iwdl-desc,
[style*="--iw-body-lh"] .iwfc-sub,
[style*="--iw-body-lh"] .iwic-desc,
[style*="--iw-body-lh"] .iwic-sub,
[style*="--iw-body-lh"] .iwil-desc,
[style*="--iw-body-lh"] .iwmv-body,
[style*="--iw-body-lh"] .iwpr-sub,
[style*="--iw-body-lh"] .iwproc-desc,
[style*="--iw-body-lh"] .iwquote-by,
[style*="--iw-body-lh"] .iwst-desc,
[style*="--iw-body-lh"] .iwtab-panel .body,
[style*="--iw-body-lh"] .iwtl-desc,
[style*="--iw-body-lh"] .iwtx-body,
[style*="--iw-body-lh"] .iwvid-sub,
[style*="--iw-body-lh"] .iwvp-sub { line-height: var(--iw-body-lh); }

.iwg[style*="--iw-btn-lh"] .btn,
[style*="--iw-btn-lh"] .iwbtn { line-height: var(--iw-btn-lh); }

.iwg-accimg[style*="--iw-head-align"] .iwai-head h3,
.iwg-accordion[style*="--iw-head-align"] > .iwg-in > h3,
.iwg-buttons[style*="--iw-head-align"] .iwbtn-head h3,
.iwg-compare[style*="--iw-head-align"] .iwcmp-head h3,
.iwg-counter[style*="--iw-head-align"] > .iwg-in > h3,
.iwg-downloads[style*="--iw-head-align"] > .iwg-in > h3,
.iwg-flip[style*="--iw-head-align"] .iwfc-head h3,
.iwg-gallery[style*="--iw-head-align"] > .iwg-in > h3,
.iwg-hoverbox[style*="--iw-head-align"] .iwhb-head h3,
.iwg-iconcards[style*="--iw-head-align"] .iwic-head h3,
.iwg-iconlist[style*="--iw-head-align"] .iwil-head h3,
.iwg-imgoverlay[style*="--iw-head-align"] .iwio-head h3,
.iwg-logos[style*="--iw-head-align"] > .iwg-in > h3,
.iwg-pricing[style*="--iw-head-align"] .iwpr-head h3,
.iwg-process[style*="--iw-head-align"] > .iwg-in > h3,
.iwg-progress[style*="--iw-head-align"] .iwpb-head h3,
.iwg-social[style*="--iw-head-align"] .iwso-head h3,
.iwg-steptl[style*="--iw-head-align"] .iwst-head h3,
.iwg-table[style*="--iw-head-align"] .iwtb-title,
.iwg-tabs[style*="--iw-head-align"] > .iwg-in > h3,
.iwg-video[style*="--iw-head-align"] .iwvid-head h3,
.iwg-videopop[style*="--iw-head-align"] .iwvp-head h3,
[style*="--iw-head-align"] .iwcs-head h3 { text-align: var(--iw-head-align); }

.iwg-accimg[style*="--iw-head-lh"] .iwai-head h3,
.iwg-accordion[style*="--iw-head-lh"] > .iwg-in > h3,
.iwg-buttons[style*="--iw-head-lh"] .iwbtn-head h3,
.iwg-compare[style*="--iw-head-lh"] .iwcmp-head h3,
.iwg-counter[style*="--iw-head-lh"] > .iwg-in > h3,
.iwg-downloads[style*="--iw-head-lh"] > .iwg-in > h3,
.iwg-flip[style*="--iw-head-lh"] .iwfc-head h3,
.iwg-gallery[style*="--iw-head-lh"] > .iwg-in > h3,
.iwg-hoverbox[style*="--iw-head-lh"] .iwhb-head h3,
.iwg-iconcards[style*="--iw-head-lh"] .iwic-head h3,
.iwg-iconlist[style*="--iw-head-lh"] .iwil-head h3,
.iwg-imgoverlay[style*="--iw-head-lh"] .iwio-head h3,
.iwg-logos[style*="--iw-head-lh"] > .iwg-in > h3,
.iwg-pricing[style*="--iw-head-lh"] .iwpr-head h3,
.iwg-process[style*="--iw-head-lh"] > .iwg-in > h3,
.iwg-progress[style*="--iw-head-lh"] .iwpb-head h3,
.iwg-social[style*="--iw-head-lh"] .iwso-head h3,
.iwg-steptl[style*="--iw-head-lh"] .iwst-head h3,
.iwg-table[style*="--iw-head-lh"] .iwtb-title,
.iwg-tabs[style*="--iw-head-lh"] > .iwg-in > h3,
.iwg-video[style*="--iw-head-lh"] .iwvid-head h3,
.iwg-videopop[style*="--iw-head-lh"] .iwvp-head h3,
[style*="--iw-head-lh"] .iwcs-head h3 { line-height: var(--iw-head-lh); }

.iwg-table[style*="--iw-thead-align"] thead th,
.iwg-table[style*="--iw-thead-align"] tr:first-child td,
.iwg-table[style*="--iw-thead-align"] tr:first-child th { text-align: var(--iw-thead-align); }

.iwg-table[style*="--iw-thead-lh"] thead th,
.iwg-table[style*="--iw-thead-lh"] tr:first-child td,
.iwg-table[style*="--iw-thead-lh"] tr:first-child th { line-height: var(--iw-thead-lh); }

.iwg-g02[style*="--iw-title-align"] h3,
.iwg-g04[style*="--iw-title-align"] h3,
.iwg-g05[style*="--iw-title-align"] .head h3,
[style*="--iw-title-align"] .iwac-q,
[style*="--iw-title-align"] .iwcnt-num,
[style*="--iw-title-align"] .iwcs-title,
[style*="--iw-title-align"] .iwcta-title,
[style*="--iw-title-align"] .iwdl-title,
[style*="--iw-title-align"] .iwfc-title,
[style*="--iw-title-align"] .iwhb-title,
[style*="--iw-title-align"] .iwic-title,
[style*="--iw-title-align"] .iwil-title,
[style*="--iw-title-align"] .iwio-title,
[style*="--iw-title-align"] .iwmap-place,
[style*="--iw-title-align"] .iwmv-title,
[style*="--iw-title-align"] .iwpb-name,
[style*="--iw-title-align"] .iwproc-title,
[style*="--iw-title-align"] .iwquote-text,
[style*="--iw-title-align"] .iwst-title,
[style*="--iw-title-align"] .iwtl-title,
[style*="--iw-title-align"] .iwtx-title { text-align: var(--iw-title-align); }

.iwg-g04[style*="--iw-title-lh"] h3,
.iwg-g05[style*="--iw-title-lh"] .head h3,
[style*="--iw-title-lh"] .iwac-q,
[style*="--iw-title-lh"] .iwcnt-num,
[style*="--iw-title-lh"] .iwcs-title,
[style*="--iw-title-lh"] .iwcta-title,
[style*="--iw-title-lh"] .iwdl-title,
[style*="--iw-title-lh"] .iwfc-title,
[style*="--iw-title-lh"] .iwhb-title,
[style*="--iw-title-lh"] .iwic-title,
[style*="--iw-title-lh"] .iwil-title,
[style*="--iw-title-lh"] .iwio-title,
[style*="--iw-title-lh"] .iwmv-title,
[style*="--iw-title-lh"] .iwpb-name,
[style*="--iw-title-lh"] .iwproc-title,
[style*="--iw-title-lh"] .iwquote-text,
[style*="--iw-title-lh"] .iwst-title,
[style*="--iw-title-lh"] .iwtl-title,
[style*="--iw-title-lh"] .iwtx-title { line-height: var(--iw-title-lh); }

/* flex 요소는 text-align 이 안 먹으므로 justify-content 로 정렬 */
[style*="--iw-title-justify"] .iwcnt-num { justify-content: var(--iw-title-justify); }
[style*="--iw-body-justify"] .iwmap-row { justify-content: var(--iw-body-justify); }

/* ============================================================
 * v1.1.9 — 상단 라벨(label) 스타일 배선
 *   .eb(상단 라벨)은 31개 블록이 공유하는데 --iw-* 변수를 하나도
 *   읽지 않아 크기·색·굵기·줄간격·정렬을 전혀 조절할 수 없었다.
 *   기본값은 기존 하드코딩 값 그대로 두고(폴백), 사용자가 지정하면 반영.
 * ============================================================ */
.iwg .eb,
.iwtl-label,
.iwg-g04 .iwg04-label {
  font-size: var(--iw-label-size, 13px);
  font-weight: var(--iw-label-weight, 700);
  line-height: var(--iw-label-lh, 1.5);
  letter-spacing: var(--iw-label-ls, .16em);
}
.iwg[style*="--iw-label-color"] .eb,
[style*="--iw-label-color"] .iwtl-label,
[style*="--iw-label-color"] .iwg04-label { color: var(--iw-label-color); }
.iwg[style*="--iw-label-align"] .eb,
[style*="--iw-label-align"] .iwtl-label,
[style*="--iw-label-align"] .iwg04-label { text-align: var(--iw-label-align); justify-content: var(--iw-label-justify, flex-start); }

/* 라벨 계열 원래 기본값 보존 (위 공통 규칙이 덮어쓴 부분 복원) */
.iwtl-label { font-size: var(--iw-label-size, 15px); letter-spacing: var(--iw-label-ls, .12em); }
.iwg-g04 .iwg04-label { font-size: var(--iw-label-size, 15px); font-weight: var(--iw-label-weight, 600); letter-spacing: var(--iw-label-ls, normal); }

/* ============================================================
 * v1.1.10 — flex-direction:column 컨테이너 안의 정렬
 *   .iwg-in / .tx / .iwcs-body 등 19개 컨테이너가 column flex 라
 *   자식 박스가 내용 폭으로 줄어들고 부모 align-items 가 위치를 정한다.
 *   → 자식에 text-align 을 줘도 눈에 변화가 없다 (v1.1.8 누락분).
 *   align-self 로 아이템 자체를 옮긴다. flex 아이템이 아닌 곳에서는
 *   align-self 가 무시되므로 부작용 없음.
 *   .iwg h3 는 너무 광범위해서, h3 를 섹션제목(head)으로 쓰는 블록은
 *   :not() 으로 제외한다 (아코디언·카운터 등에서 '제목' 설정이
 *   섹션제목에 잘못 걸리는 것 방지).
 * ============================================================ */

.iwg-g04[style*="--iw-body-self"] .body,
.iwg-textonly[style*="--iw-body-self"] .iwto-body,
.iwg[style*="--iw-body-self"] .body,
[style*="--iw-body-self"] .iwcs-desc,
[style*="--iw-body-self"] .iwil-desc,
[style*="--iw-body-self"] .iwmap-row,
[style*="--iw-body-self"] .iwquote-by,
[style*="--iw-body-self"] .iwtab-panel .body,
[style*="--iw-body-self"] .iwtx-body { align-self: var(--iw-body-self); }

.iwg-accimg[style*="--iw-head-self"] .iwai-head h3,
.iwg-accordion[style*="--iw-head-self"] > .iwg-in > h3,
.iwg-buttons[style*="--iw-head-self"] .iwbtn-head h3,
.iwg-compare[style*="--iw-head-self"] .iwcmp-head h3,
.iwg-counter[style*="--iw-head-self"] > .iwg-in > h3,
.iwg-downloads[style*="--iw-head-self"] > .iwg-in > h3,
.iwg-flip[style*="--iw-head-self"] .iwfc-head h3,
.iwg-gallery[style*="--iw-head-self"] > .iwg-in > h3,
.iwg-hoverbox[style*="--iw-head-self"] .iwhb-head h3,
.iwg-iconcards[style*="--iw-head-self"] .iwic-head h3,
.iwg-iconlist[style*="--iw-head-self"] .iwil-head h3,
.iwg-imgoverlay[style*="--iw-head-self"] .iwio-head h3,
.iwg-logos[style*="--iw-head-self"] > .iwg-in > h3,
.iwg-map[style*="--iw-head-self"] > .iwg-in > .iwmap-h3,
.iwg-pricing[style*="--iw-head-self"] .iwpr-head h3,
.iwg-process[style*="--iw-head-self"] > .iwg-in > h3,
.iwg-progress[style*="--iw-head-self"] .iwpb-head h3,
.iwg-social[style*="--iw-head-self"] .iwso-head h3,
.iwg-steptl[style*="--iw-head-self"] .iwst-head h3,
.iwg-table[style*="--iw-head-self"] .iwtb-title,
.iwg-tabs[style*="--iw-head-self"] > .iwg-in > h3,
.iwg-video[style*="--iw-head-self"] .iwvid-head h3,
.iwg-videopop[style*="--iw-head-self"] .iwvp-head h3,
[style*="--iw-head-self"] .iwcs-head h3 { align-self: var(--iw-head-self); }

.iwg[style*="--iw-label-self"] .eb { align-self: var(--iw-label-self); }

.iwg-g02[style*="--iw-title-self"] h3,
.iwg-g04[style*="--iw-title-self"] h3,
.iwg-g05[style*="--iw-title-self"] .head h3,
.iwg:not(.iwg-accimg):not(.iwg-accordion):not(.iwg-buttons):not(.iwg-compare):not(.iwg-counter):not(.iwg-downloads):not(.iwg-flip):not(.iwg-gallery):not(.iwg-hoverbox):not(.iwg-iconcards):not(.iwg-iconlist):not(.iwg-imgoverlay):not(.iwg-logos):not(.iwg-map):not(.iwg-pricing):not(.iwg-process):not(.iwg-progress):not(.iwg-social):not(.iwg-steptl):not(.iwg-tabs):not(.iwg-video):not(.iwg-videopop)[style*="--iw-title-self"] h3,
[style*="--iw-title-self"] .iwcs-title,
[style*="--iw-title-self"] .iwfc-title,
[style*="--iw-title-self"] .iwhb-title,
[style*="--iw-title-self"] .iwil-title,
[style*="--iw-title-self"] .iwmap-place,
[style*="--iw-title-self"] .iwquote-text,
[style*="--iw-title-self"] .iwtx-title { align-self: var(--iw-title-self); }

/* ============================================================
 * v1.1.11 — (1) 제목 h3 가 head 변수에 오염된 문제
 *   808줄 `.iwg .iwg-in > h3` (특이도 0,2,1) 가 섹션제목(head) 변수를
 *   읽는데, 이 선택자가 `.iwg-g02 h3`(0,1,1) 를 이겨버린다.
 *   → h3 가 "제목"인 블록 3개(타이틀·제목+본문·카운트다운)에서
 *     제목 줄간격·정렬이 전혀 안 먹었다. 크기·색은 별도 규칙이라 정상.
 *   같은 특이도(0,2,1) 로 뒤에 선언해 제목 변수로 되돌린다.
 * ============================================================ */
.iwg-g02 .iwg-in > h3,
.iwg-textblock .iwg-in > h3,
.iwg-countdown .iwg-in > h3 {
  line-height: var(--iw-title-lh, 1.3);
  text-align: var(--iw-title-align, inherit);
}

/* ============================================================
 * v1.1.11 — (2) 요소 간 간격(--iw-gap)
 *   체감 여백을 지배하는 건 줄간격이 아니라 컨테이너의 flex gap 이다.
 *   블록별 기본값: g01 56px / g03·g05 28px / g02 18px / 텍스트블록 16px
 *   --iw-gap 이 설정된 블록만 덮어쓴다(미설정 블록은 기본값 유지).
 *   gap 을 쓸 때는 라벨의 margin-bottom:14px 이 이중으로 더해지므로 0 으로.
 * ============================================================ */
[style*="--iw-gap"] .iwg-in,
[style*="--iw-gap"] .tx,
[style*="--iw-gap"] .iwcs-body,
[style*="--iw-gap"] .iwil-tx { gap: var(--iw-gap); }
[style*="--iw-gap"] .eb { margin-bottom: 0; }

/* ============================================================
 * v1.1.13 — 블록 안쪽 위아래 여백 (--iw-pad-y)
 *   .iwg .iwg-in 은 이미 padding: var(--iw-pad-y, 44px) 로 읽고 있지만
 *   모바일 미디어쿼리에서 padding:48px 18px 로 하드코딩해 덮어버리고,
 *   g03(0) · g04(110px) 등 블록별 예외도 있다.
 *   → 값을 설정한 블록만 (0,3,0) 특이도로 상하 패딩을 덮는다.
 *   ★ 자식 선택자(>)를 쓰는 이유: 멀티 칸(columns) 블록에 여백을 주면
 *     descendant 로는 칸 안에 든 하위 블록의 .iwg-in 까지 같이 먹는다.
 * ============================================================ */
.iwg[style*="--iw-pad-y"] > .iwg-in {
  padding-top: var(--iw-pad-y);
  padding-bottom: var(--iw-pad-y);
}

/* ============================================================
 * v1.1.14 — 요소 간 간격이 margin 기반 블록에는 안 먹던 문제
 *   v1.1.11 은 flex `gap` 을 쓰는 컨테이너 4곳만 배선했다. 그런데
 *   아이콘 카드·가격표·동영상·플립카드 등 15개 블록의 머리말 영역은
 *   flex 가 아니라 margin 으로 간격을 잡는다.
 *     .iwg-iconcards .iwic-head    { margin-bottom: 40px }  머리말↔카드영역
 *     .iwg-iconcards .iwic-head h3 { margin: 0 0 12px }     제목↔부제
 *   → 이 블록들에서 슬라이더가 아무 반응이 없었다.
 *
 *   규칙: 라벨→제목→부제 사이 = gap, 머리말→내용 영역 = gap 의 2배.
 *   (머리말과 본문 영역 사이는 관례적으로 요소 사이보다 넓다)
 *   ★ 카드 안쪽 미세 간격(아이콘↔카드제목 등)은 건드리지 않는다.
 * ============================================================ */

/* 라벨 → 제목 */
.iwg[style*="--iw-gap"] .iwai-head .eb,
.iwg[style*="--iw-gap"] .iwbtn-head .eb,
.iwg[style*="--iw-gap"] .iwcmp-head .eb,
.iwg[style*="--iw-gap"] .iwfc-head .eb,
.iwg[style*="--iw-gap"] .iwhb-head .eb,
.iwg[style*="--iw-gap"] .iwic-head .eb,
.iwg[style*="--iw-gap"] .iwil-head .eb,
.iwg[style*="--iw-gap"] .iwio-head .eb,
.iwg[style*="--iw-gap"] .iwmv-head .eb,
.iwg[style*="--iw-gap"] .iwpb-head .eb,
.iwg[style*="--iw-gap"] .iwpr-head .eb,
.iwg[style*="--iw-gap"] .iwso-head .eb,
.iwg[style*="--iw-gap"] .iwst-head .eb,
.iwg[style*="--iw-gap"] .iwvid-head .eb,
.iwg[style*="--iw-gap"] .iwvp-head .eb { margin-bottom: var(--iw-gap); }

/* 제목 → 부제 */
.iwg[style*="--iw-gap"] .iwai-head h3,
.iwg[style*="--iw-gap"] .iwbtn-head h3,
.iwg[style*="--iw-gap"] .iwcmp-head h3,
.iwg[style*="--iw-gap"] .iwfc-head h3,
.iwg[style*="--iw-gap"] .iwhb-head h3,
.iwg[style*="--iw-gap"] .iwic-head h3,
.iwg[style*="--iw-gap"] .iwil-head h3,
.iwg[style*="--iw-gap"] .iwio-head h3,
.iwg[style*="--iw-gap"] .iwmv-head h3,
.iwg[style*="--iw-gap"] .iwpb-head h3,
.iwg[style*="--iw-gap"] .iwpr-head h3,
.iwg[style*="--iw-gap"] .iwso-head h3,
.iwg[style*="--iw-gap"] .iwst-head h3,
.iwg[style*="--iw-gap"] .iwvid-head h3,
.iwg[style*="--iw-gap"] .iwvp-head h3 { margin-bottom: var(--iw-gap); }

/* 머리말 → 내용 영역 (2배) */
.iwg[style*="--iw-gap"] .iwai-head,
.iwg[style*="--iw-gap"] .iwbtn-head,
.iwg[style*="--iw-gap"] .iwcmp-head,
.iwg[style*="--iw-gap"] .iwfc-head,
.iwg[style*="--iw-gap"] .iwhb-head,
.iwg[style*="--iw-gap"] .iwic-head,
.iwg[style*="--iw-gap"] .iwil-head,
.iwg[style*="--iw-gap"] .iwio-head,
.iwg[style*="--iw-gap"] .iwmv-head,
.iwg[style*="--iw-gap"] .iwpb-head,
.iwg[style*="--iw-gap"] .iwpr-head,
.iwg[style*="--iw-gap"] .iwso-head,
.iwg[style*="--iw-gap"] .iwst-head,
.iwg[style*="--iw-gap"] .iwvid-head,
.iwg[style*="--iw-gap"] .iwvp-head { margin-bottom: calc(var(--iw-gap) * 2); }

/* ============================================================
 * v1.1.15 — 카드끼리 간격(--iw-card-gap) · 카드 안쪽 여백(--iw-card-pad)
 *   요소 간 간격(--iw-gap)은 "글 요소" 사이만 담당한다. 카드형 블록의
 *   카드 배치 간격(grid gap 16곳)과 카드 자체 두께(padding 14곳)는
 *   조절 수단이 없었다.
 *   설정한 블록만 덮으므로 미설정 블록은 기존 값 유지.
 *
 *   ★ 제외한 것
 *   - card-slider: .iwcs-card 폭이 calc((100% - 64px)/3) 으로 gap 32px 에
 *     묶여 있어 gap 만 바꾸면 3장 배치가 깨진다.
 *   - .iwst-item(스텝 타임라인 항목 간격): padding 이 세로선 위치를 잡는
 *     구조라 건드리면 선이 어긋난다. 카드 두께(.iwst-card)만 열었다.
 *   - .iwtab-nav(탭 버튼 4px), .iwg-g05 .head/.cols(2단 레이아웃),
 *     .iwcol-grid(멀티 칸은 자체 --iwcol-gap 옵션 보유)
 * ============================================================ */
.iwg[style*="--iw-card-gap"] .iwic-grid,
.iwg[style*="--iw-card-gap"] .iwcnt-grid,
.iwg[style*="--iw-card-gap"] .iwproc-grid,
.iwg[style*="--iw-card-gap"] .iwlogo-grid,
.iwg[style*="--iw-card-gap"] .iwgal-grid,
.iwg[style*="--iw-card-gap"] .iwpr-grid,
.iwg[style*="--iw-card-gap"] .iwfc-grid,
.iwg[style*="--iw-card-gap"] .iwhb-grid,
.iwg[style*="--iw-card-gap"] .iwio-grid,
.iwg[style*="--iw-card-gap"] .iwmv-grid,
.iwg[style*="--iw-card-gap"] .iwil-list,
.iwg[style*="--iw-card-gap"] .iwbtn-row,
.iwg[style*="--iw-card-gap"] .iwso-row,
.iwg[style*="--iw-card-gap"] .iwdl-list,
.iwg[style*="--iw-card-gap"] .iwac-list,
.iwg[style*="--iw-card-gap"] .iwpb-list,
.iwg[style*="--iw-card-gap"] .iwmap-dir { gap: var(--iw-card-gap); }

/* 연혁은 grid 가 아니라 항목의 padding-bottom 이 간격이다.
   마지막 항목은 0 이어야 하므로 :not(:last-child) 로 보호. */
.iwg[style*="--iw-card-gap"] .iwtl-item:not(:last-child) { padding-bottom: var(--iw-card-gap); }

.iwg[style*="--iw-card-pad"] .iwtl-card,
.iwg[style*="--iw-card-pad"] .iwic-card,
.iwg[style*="--iw-card-pad"] .iwcnt-item,
.iwg[style*="--iw-card-pad"] .iwlogo-item,
.iwg[style*="--iw-card-pad"] .iwdl-item,
.iwg[style*="--iw-card-pad"] .iwpr-card,
.iwg[style*="--iw-card-pad"] .iwst-card,
.iwg[style*="--iw-card-pad"] .iwmv-card,
.iwg[style*="--iw-card-pad"] .iwmap-dir-card,
.iwg[style*="--iw-card-pad"] .iwcta-box { padding: var(--iw-card-pad); }

/* ============================================================
 * v1.2.0 — 신규 블록 4종 (개요표 · 프로필 카드 · 부서별 연락처 · 바로가기 배너)
 *   기존 디자인 언어 준수: radius 14px, 테두리 #e8ebee,
 *   그림자 rgba(20,26,31,.04), 포인트색 var(--ac),
 *   글자 스타일은 --iw-{label|head|title|body}-* 변수 사용,
 *   간격은 --iw-gap / --iw-card-gap / --iw-card-pad 로 조절 가능.
 * ============================================================ */

/* ── 공통 머리말 (4종 동일) ── */
.iwg-ovt .iwovt-head, .iwg-profile .iwpf-head,
.iwg-cdept .iwcd-head, .iwg-quick .iwql-head { text-align: center; margin-bottom: 40px; }
.iwg-ovt .iwovt-head h3, .iwg-profile .iwpf-head h3,
.iwg-cdept .iwcd-head h3, .iwg-quick .iwql-head h3 {
  font-size: var(--iw-head-size, 34px); font-weight: var(--iw-head-weight, 800);
  line-height: var(--iw-head-lh, 1.35); text-align: var(--iw-head-align, inherit);
  color: var(--iw-head-color, var(--iw-ink, #141a1f)); margin: 0 0 12px;
}
.iwovt-sub, .iwpf-sub, .iwcd-sub, .iwql-sub {
  font-size: var(--iw-body-size, 16px); font-weight: var(--iw-body-weight, 400);
  line-height: var(--iw-body-lh, 1.7); text-align: var(--iw-body-align, inherit);
  color: var(--iw-body-color, var(--iw-body, #6b7580)); margin: 0;
}

/* ── 1) 개요표 ── */
.iwovt-grid { display: grid; grid-template-columns: repeat(var(--iw-ovt-cols, 2), minmax(0, 1fr)); gap: var(--iw-card-gap, 14px); margin: 0; }
.iwovt-cell { background: var(--iw-card-bg, #f7f9fb); border: 1px solid #eaeef2; border-radius: 12px; padding: var(--iw-card-pad, 22px 24px); }
.iwovt-name { font-size: var(--iw-label-size, 13px); font-weight: var(--iw-label-weight, 700); line-height: var(--iw-label-lh, 1.5); letter-spacing: var(--iw-label-ls, .04em); color: var(--iw-label-color, var(--ac)); margin: 0 0 7px; }
.iwovt-value { font-size: var(--iw-title-size, 19px); font-weight: var(--iw-title-weight, 700); line-height: var(--iw-title-lh, 1.45); text-align: var(--iw-title-align, inherit); color: var(--iw-title-color, var(--iw-ink, #141a1f)); margin: 0; word-break: keep-all; }
.iwovt-desc { font-size: var(--iw-body-size, 14px); font-weight: var(--iw-body-weight, 400); line-height: var(--iw-body-lh, 1.6); color: var(--iw-body-color, var(--iw-body, #8a949e)); margin: 8px 0 0; }

/* ── 2) 프로필 카드 ── */
.iwpf-grid { display: grid; grid-template-columns: repeat(var(--iw-pf-cols, 4), minmax(0, 1fr)); gap: var(--iw-card-gap, 24px); }
.iwpf-card { background: var(--iw-card-bg, #fff); border: 1px solid #e8ebee; border-radius: 14px; padding: var(--iw-card-pad, 28px 22px); text-align: center; box-shadow: 0 2px 12px rgba(20,26,31,.04); transition: box-shadow .2s, transform .2s; }
.iwpf-card:hover { box-shadow: 0 8px 28px rgba(20,26,31,.09); transform: translateY(-2px); }
.iwpf-photo { width: 116px; height: 116px; margin: 0 auto 18px; overflow: hidden; background: color-mix(in srgb, var(--ac) 10%, #f1f4f7); display: flex; align-items: center; justify-content: center; }
.iwpf-round .iwpf-photo { border-radius: 50%; }
.iwpf-square .iwpf-photo { border-radius: 12px; }
.iwpf-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.iwpf-initial { font-size: 40px; font-weight: 800; color: var(--ac); }
.iwpf-pos { font-size: var(--iw-label-size, 13px); font-weight: var(--iw-label-weight, 700); letter-spacing: var(--iw-label-ls, .04em); color: var(--iw-label-color, var(--ac)); margin: 0 0 6px; }
.iwpf-name { font-size: var(--iw-title-size, 19px); font-weight: var(--iw-title-weight, 700); line-height: var(--iw-title-lh, 1.4); color: var(--iw-title-color, var(--iw-ink, #141a1f)); margin: 0; }
.iwpf-dept { font-size: 14px; color: #8a949e; margin: 6px 0 0; }
.iwpf-desc { font-size: var(--iw-body-size, 14.5px); font-weight: var(--iw-body-weight, 400); line-height: var(--iw-body-lh, 1.65); color: var(--iw-body-color, var(--iw-body, #6b7580)); margin: 12px 0 0; }
.iwpf-contact { list-style: none; margin: 14px 0 0; padding: 14px 0 0; border-top: 1px solid #eef1f4; display: flex; flex-direction: column; gap: 6px; }
.iwpf-contact li { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 13.5px; color: #6b7580; }
.iwpf-contact a { color: inherit; text-decoration: none; }
.iwpf-contact a:hover { color: var(--ac); }
.iwpf-ci { display: inline-flex; width: 15px; height: 15px; color: var(--ac); }
.iwpf-ci svg, .iwcd-ci svg { width: 100%; height: 100%; }

/* ── 3) 부서별 연락처 ── */
.iwcd-list { border-top: 2px solid var(--iw-ink, #141a1f); }
.iwcd-thead, .iwcd-row { display: grid; grid-template-columns: 1fr 1.6fr 1.2fr; gap: 20px; align-items: center; }
.iwcd-thead { padding: 14px 20px; background: #f7f9fb; font-size: 13.5px; font-weight: 700; color: #6b7580; }
.iwcd-row { padding: var(--iw-card-pad, 20px); border-bottom: 1px solid #eef1f4; transition: background .15s; }
.iwcd-row:hover { background: #fafbfc; }
.iwcd-name { font-size: var(--iw-title-size, 17px); font-weight: var(--iw-title-weight, 700); line-height: var(--iw-title-lh, 1.45); color: var(--iw-title-color, var(--iw-ink, #141a1f)); }
.iwcd-role { font-size: var(--iw-body-size, 15px); font-weight: var(--iw-body-weight, 400); line-height: var(--iw-body-lh, 1.6); color: var(--iw-body-color, var(--iw-body, #6b7580)); }
.iwcd-tels { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.iwcd-tel { display: inline-flex; align-items: center; gap: 7px; font-size: 16px; font-weight: 700; color: var(--ac); text-decoration: none; }
.iwcd-tel:hover { text-decoration: underline; }
.iwcd-ci { display: inline-flex; width: 15px; height: 15px; }
.iwcd-meta { font-size: 13px; color: #8a949e; text-decoration: none; }
.iwcd-meta:hover { color: var(--ac); }

/* ── 4) 바로가기 배너 ── */
.iwql-grid { display: grid; grid-template-columns: repeat(var(--iw-ql-cols, 4), minmax(0, 1fr)); gap: var(--iw-card-gap, 16px); }
.iwql-item { display: flex; align-items: center; gap: 14px; padding: var(--iw-card-pad, 22px 20px); border-radius: 14px; text-decoration: none; border: 1px solid #e8ebee; background: #fff; color: var(--iw-ql-fg, var(--iw-ink, #141a1f)); transition: transform .18s, box-shadow .18s, background .18s, border-color .18s; }
.iwql-item:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(20,26,31,.10); border-color: color-mix(in srgb, var(--ac) 45%, #e8ebee); }
.iwql-soft .iwql-item { background: color-mix(in srgb, var(--ac) 7%, #fff); border-color: transparent; }
.iwql-fill .iwql-item { background: var(--ac); border-color: var(--ac); color: var(--iw-ql-fg, #fff); }
.iwql-fill .iwql-item:hover { filter: brightness(1.07); }
.iwql-ico { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px; background: color-mix(in srgb, var(--ac) 12%, #fff); color: var(--ac); }
.iwql-fill .iwql-ico { background: rgba(255,255,255,.18); color: inherit; }
.iwql-ico svg { width: var(--iw-icon-size, 24px); height: var(--iw-icon-size, 24px); }
.iwql-tx { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.iwql-title { font-size: var(--iw-title-size, 16.5px); font-weight: var(--iw-title-weight, 700); line-height: var(--iw-title-lh, 1.4); color: inherit; }
.iwql-desc { font-size: var(--iw-body-size, 13.5px); font-weight: var(--iw-body-weight, 400); line-height: var(--iw-body-lh, 1.5); color: inherit; opacity: .68; }
.iwql-arrow { flex: 0 0 auto; margin-left: auto; width: 18px; height: 18px; opacity: .35; transition: transform .18s, opacity .18s; }
.iwql-arrow svg { width: 100%; height: 100%; }
.iwql-item:hover .iwql-arrow { opacity: 1; transform: translateX(3px); }
div.iwql-item { cursor: default; }
div.iwql-item:hover { transform: none; box-shadow: none; }
div.iwql-item .iwql-arrow { display: none; }

/* ── 반응형 ── */
@media (max-width: 1024px) {
  .iwpf-grid { grid-template-columns: repeat(min(3, var(--iw-pf-cols, 4)), minmax(0, 1fr)); }
  .iwql-grid { grid-template-columns: repeat(min(3, var(--iw-ql-cols, 4)), minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .iwovt-grid { grid-template-columns: 1fr; }
  .iwpf-grid, .iwql-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .iwovt-cell { padding: 18px 18px; }
  .iwpf-photo { width: 96px; height: 96px; }
  /* 부서별 연락처: 행 → 카드 전환 (좌우 스크롤 방지) */
  .iwcd-thead { display: none; }
  .iwcd-list { border-top: none; }
  .iwcd-row { grid-template-columns: 1fr; gap: 8px; border: 1px solid #e8ebee; border-radius: 12px; padding: 18px 18px; margin-bottom: 10px; }
  .iwcd-tels { margin-top: 2px; }
}
@media (max-width: 560px) {
  .iwpf-grid, .iwql-grid { grid-template-columns: 1fr; }
}

/* ============================================================
 * v1.2.1 — 신규 블록 2배치 (조직도 · 인증수상 · CI소개 · 층별 시설안내)
 * ============================================================ */

/* ── 공통 머리말 ── */
.iwg-org .iworg-head, .iwg-award .iwaw-head,
.iwg-ci .iwci-head, .iwg-floor .iwfl-head { text-align: center; margin-bottom: 40px; }
.iwg-org .iworg-head h3, .iwg-award .iwaw-head h3,
.iwg-ci .iwci-head h3, .iwg-floor .iwfl-head h3 {
  font-size: var(--iw-head-size, 34px); font-weight: var(--iw-head-weight, 800);
  line-height: var(--iw-head-lh, 1.35); text-align: var(--iw-head-align, inherit);
  color: var(--iw-head-color, var(--iw-ink, #141a1f)); margin: 0 0 12px;
}
.iworg-sub, .iwaw-sub, .iwci-sub, .iwfl-sub {
  font-size: var(--iw-body-size, 16px); font-weight: var(--iw-body-weight, 400);
  line-height: var(--iw-body-lh, 1.7); text-align: var(--iw-body-align, inherit);
  color: var(--iw-body-color, var(--iw-body, #6b7580)); margin: 0;
}

/* ── 5) 조직도 ── */
.iworg-chart { display: flex; flex-direction: column; align-items: center; }
.iworg-level { display: grid; grid-template-columns: repeat(var(--iw-org-n, 1), minmax(0, 1fr)); gap: var(--iw-card-gap, 16px); width: 100%; justify-items: stretch; }
.iworg-d1 { max-width: 340px; }
.iworg-d2 { max-width: 100%; }
.iworg-d3 { max-width: 100%; }
.iworg-node { display: flex; flex-direction: column; gap: 5px; align-items: center; text-align: center; padding: var(--iw-card-pad, 20px 18px); border-radius: 12px; border: 1px solid #e2e7ec; background: #fff; box-shadow: 0 2px 10px rgba(20,26,31,.04); }
.iworg-d1 .iworg-node { background: var(--ac); border-color: var(--ac); box-shadow: 0 6px 22px color-mix(in srgb, var(--ac) 28%, transparent); }
.iworg-d1 .iworg-name { color: #fff; }
.iworg-d1 .iworg-role { color: rgba(255,255,255,.82); }
.iworg-d2 .iworg-node { background: color-mix(in srgb, var(--ac) 7%, #fff); border-color: color-mix(in srgb, var(--ac) 22%, #e2e7ec); }
.iworg-name { font-size: var(--iw-title-size, 16.5px); font-weight: var(--iw-title-weight, 700); line-height: var(--iw-title-lh, 1.4); color: var(--iw-title-color, var(--iw-ink, #141a1f)); }
.iworg-role { font-size: var(--iw-body-size, 13.5px); font-weight: var(--iw-body-weight, 400); line-height: var(--iw-body-lh, 1.55); color: var(--iw-body-color, var(--iw-body, #6b7580)); }
.iworg-link { width: 2px; height: 26px; background: #dfe4e9; }

/* ── 6) 인증·수상 ── */
.iwaw-grid { display: grid; grid-template-columns: repeat(var(--iw-aw-cols, 4), minmax(0, 1fr)); gap: var(--iw-card-gap, 20px); }
.iwaw-card { background: var(--iw-card-bg, #fff); border: 1px solid #e8ebee; border-radius: 14px; overflow: hidden; box-shadow: 0 2px 12px rgba(20,26,31,.04); transition: box-shadow .2s, transform .2s; display: flex; flex-direction: column; }
.iwaw-card:hover { box-shadow: 0 8px 28px rgba(20,26,31,.09); transform: translateY(-2px); }
.iwaw-thumb { background: #fff; border-bottom: 1px solid #eef1f4; aspect-ratio: 3/4; display: flex; align-items: center; justify-content: center; padding: 16px; }
.iwaw-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.iwaw-body { padding: var(--iw-card-pad, 18px 18px 20px); display: flex; flex-direction: column; gap: 6px; }
.iwaw-year { display: inline-block; align-self: flex-start; font-size: var(--iw-label-size, 12px); font-weight: var(--iw-label-weight, 700); letter-spacing: var(--iw-label-ls, .04em); color: var(--iw-label-color, var(--ac)); background: color-mix(in srgb, var(--ac) 10%, #fff); border-radius: 20px; padding: 4px 10px; }
.iwaw-title { font-size: var(--iw-title-size, 16px); font-weight: var(--iw-title-weight, 700); line-height: var(--iw-title-lh, 1.45); color: var(--iw-title-color, var(--iw-ink, #141a1f)); margin: 0; word-break: keep-all; }
.iwaw-org { font-size: var(--iw-body-size, 13.5px); font-weight: var(--iw-body-weight, 400); line-height: var(--iw-body-lh, 1.55); color: var(--iw-body-color, var(--iw-body, #8a949e)); margin: 0; }

/* ── 7) CI 소개 ── */
.iwci-logos { display: grid; grid-template-columns: repeat(var(--iw-ci-n, 3), minmax(0, 1fr)); gap: var(--iw-card-gap, 20px); }
.iwci-logo { border: 1px solid #e8ebee; border-radius: 14px; overflow: hidden; background: #fff; }
.iwci-canvas { aspect-ratio: 16/10; display: flex; align-items: center; justify-content: center; padding: 30px; background: #f7f9fb; }
.iwci-canvas img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.iwci-logo-ft { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px; border-top: 1px solid #eef1f4; }
.iwci-logo-name { font-size: var(--iw-title-size, 15px); font-weight: var(--iw-title-weight, 700); color: var(--iw-title-color, var(--iw-ink, #141a1f)); }
.iwci-dl { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--ac); text-decoration: none; border: 1px solid color-mix(in srgb, var(--ac) 35%, #e8ebee); border-radius: 20px; padding: 6px 13px; transition: .15s; }
.iwci-dl:hover { background: var(--ac); color: #fff; border-color: var(--ac); }
.iwci-dl-i { display: inline-flex; width: 14px; height: 14px; }
.iwci-dl-i svg, .iwci-note-i svg, .iwfl-tel svg { width: 100%; height: 100%; }
.iwci-colors { display: flex; flex-wrap: wrap; gap: var(--iw-card-gap, 14px); margin-top: 28px; }
.iwci-swatch { flex: 1 1 160px; min-width: 140px; border: 1px solid #eef1f4; border-radius: 12px; overflow: hidden; background: #fff; }
.iwci-chip { height: 74px; }
.iwci-cname { display: block; font-size: 14px; font-weight: 700; color: var(--iw-ink, #141a1f); padding: 12px 14px 0; }
.iwci-cval { display: block; font-size: 12.5px; color: #8a949e; padding: 3px 14px 13px; font-family: var(--iw-mono, ui-monospace, SFMono-Regular, Menlo, monospace); }
.iwci-note { display: flex; gap: 12px; align-items: flex-start; margin-top: 28px; padding: 20px 22px; border-radius: 12px; background: color-mix(in srgb, var(--ac) 6%, #f7f9fb); border: 1px solid color-mix(in srgb, var(--ac) 16%, #eef1f4); }
.iwci-note-i { flex: 0 0 auto; width: 20px; height: 20px; color: var(--ac); margin-top: 2px; }
.iwci-note-tx { font-size: var(--iw-body-size, 14.5px); font-weight: var(--iw-body-weight, 400); line-height: var(--iw-body-lh, 1.75); color: var(--iw-body-color, var(--iw-body, #4c565e)); margin: 0; }

/* ── 8) 층별 시설 안내 ── */
.iwfl-list { display: flex; flex-direction: column; gap: var(--iw-card-gap, 12px); }
.iwfl-row { display: grid; grid-template-columns: 108px 1fr; gap: 20px; align-items: stretch; background: var(--iw-card-bg, #fff); border: 1px solid #e8ebee; border-radius: 14px; overflow: hidden; }
.iwfl-badge { display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--ac) 9%, #f7f9fb); border-right: 1px solid #eef1f4; }
.iwfl-badge span { font-size: var(--iw-label-size, 20px); font-weight: var(--iw-label-weight, 800); letter-spacing: var(--iw-label-ls, normal); color: var(--iw-label-color, var(--ac)); }
.iwfl-items { display: flex; flex-wrap: wrap; gap: 10px 12px; padding: var(--iw-card-pad, 20px); }
.iwfl-item { display: flex; align-items: baseline; gap: 8px; background: #f7f9fb; border-radius: 8px; padding: 9px 14px; }
.iwfl-name { font-size: var(--iw-title-size, 15.5px); font-weight: var(--iw-title-weight, 700); line-height: var(--iw-title-lh, 1.45); color: var(--iw-title-color, var(--iw-ink, #141a1f)); }
.iwfl-desc { font-size: var(--iw-body-size, 13.5px); font-weight: var(--iw-body-weight, 400); color: var(--iw-body-color, var(--iw-body, #8a949e)); }
.iwfl-tel { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; color: var(--ac); }
.iwfl-tel svg { width: 12px; height: 12px; }

/* ── 반응형 ── */
@media (max-width: 1024px) {
  .iwaw-grid { grid-template-columns: repeat(min(3, var(--iw-aw-cols, 4)), minmax(0, 1fr)); }
  .iworg-level { gap: 12px; }
}
@media (max-width: 768px) {
  .iwaw-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .iwci-logos { grid-template-columns: 1fr; }
  /* 조직도: 가로 나열 → 세로 나열 (좁은 화면에서 글자가 짜부라지는 것 방지) */
  .iworg-level { grid-template-columns: 1fr; }
  .iworg-d1 { max-width: 100%; }
  .iwfl-row { grid-template-columns: 1fr; gap: 0; }
  .iwfl-badge { justify-content: flex-start; padding: 12px 18px; border-right: none; border-bottom: 1px solid #eef1f4; }
  .iwfl-badge span { font-size: 17px; }
}
@media (max-width: 560px) {
  .iwaw-grid { grid-template-columns: 1fr; }
  .iwci-swatch { flex: 1 1 100%; }
}

/* ── 조직도: 10단계 지원 (v1.2.2) ──
   d1 = 포인트색 채움, d2 = 연한 포인트색, d3 이상 = 흰 카드.
   깊어질수록 글자를 살짝 줄여 위계가 보이게 하고, 한 단계에 6개 이상이면
   고정 열 수 대신 auto-fit 으로 줄바꿈해 카드가 짜부라지지 않게 한다. */
.iworg-d3 .iworg-node, .iworg-d4 .iworg-node, .iworg-d5 .iworg-node,
.iworg-d6 .iworg-node, .iworg-d7 .iworg-node, .iworg-d8 .iworg-node,
.iworg-d9 .iworg-node, .iworg-d10 .iworg-node { background: #fff; border-color: #e2e7ec; }
.iworg-d3 .iworg-name, .iworg-d4 .iworg-name { font-size: calc(var(--iw-title-size, 16.5px) * .94); }
.iworg-d5 .iworg-name, .iworg-d6 .iworg-name, .iworg-d7 .iworg-name,
.iworg-d8 .iworg-name, .iworg-d9 .iworg-name, .iworg-d10 .iworg-name { font-size: calc(var(--iw-title-size, 16.5px) * .88); }
.iworg-d4 .iworg-node, .iworg-d5 .iworg-node, .iworg-d6 .iworg-node,
.iworg-d7 .iworg-node, .iworg-d8 .iworg-node, .iworg-d9 .iworg-node,
.iworg-d10 .iworg-node { padding: var(--iw-card-pad, 15px 14px); }
.iworg-many { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }

/* ============================================================
 * v1.2.3 — 후원 안내 · 자원봉사 안내
 * ============================================================ */
.iwg-donate .iwdn-head, .iwg-volun .iwvl-head { text-align: center; margin-bottom: 40px; }
.iwg-donate .iwdn-head h3, .iwg-volun .iwvl-head h3 {
  font-size: var(--iw-head-size, 34px); font-weight: var(--iw-head-weight, 800);
  line-height: var(--iw-head-lh, 1.35); text-align: var(--iw-head-align, inherit);
  color: var(--iw-head-color, var(--iw-ink, #141a1f)); margin: 0 0 12px;
}
.iwdn-sub, .iwvl-sub {
  font-size: var(--iw-body-size, 16px); font-weight: var(--iw-body-weight, 400);
  line-height: var(--iw-body-lh, 1.7); text-align: var(--iw-body-align, inherit);
  color: var(--iw-body-color, var(--iw-body, #6b7580)); margin: 0;
}

/* ── 후원 안내 ── */
.iwdn-accounts { display: grid; grid-template-columns: repeat(var(--iw-dn-n, 1), minmax(0, 1fr)); gap: var(--iw-card-gap, 14px); }
.iwdn-card { background: var(--iw-card-bg, #fff); border: 1px solid color-mix(in srgb, var(--ac) 24%, #e8ebee); border-radius: 14px; padding: var(--iw-card-pad, 24px 26px); }
.iwdn-kind { display: inline-block; font-size: var(--iw-label-size, 12px); font-weight: var(--iw-label-weight, 700); letter-spacing: var(--iw-label-ls, .04em); color: var(--iw-label-color, var(--ac)); background: color-mix(in srgb, var(--ac) 10%, #fff); border-radius: 20px; padding: 4px 11px; margin-bottom: 12px; }
.iwdn-meta { font-size: var(--iw-body-size, 14px); font-weight: var(--iw-body-weight, 400); color: var(--iw-body-color, var(--iw-body, #6b7580)); margin: 0 0 6px; }
.iwdn-dot { margin: 0 5px; color: #c9d1d9; }
.iwdn-norow { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.iwdn-no { font-size: var(--iw-title-size, 22px); font-weight: var(--iw-title-weight, 800); line-height: var(--iw-title-lh, 1.35); letter-spacing: .01em; color: var(--iw-title-color, var(--iw-ink, #141a1f)); font-variant-numeric: tabular-nums; word-break: break-all; }
.iwdn-copy { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; background: var(--ac); color: #fff; border: none; border-radius: 20px; padding: 8px 15px; font-size: 13px; font-weight: 700; font-family: inherit; cursor: pointer; transition: .15s; }
.iwdn-copy:hover { filter: brightness(1.08); }
.iwdn-copy.is-done { background: #0f9d55; }
.iwdn-copy-i { display: inline-flex; width: 14px; height: 14px; }
.iwdn-copy-i svg, .iwdn-tel-i svg, .iwdn-note-i svg, .iwvl-tel-i svg { width: 100%; height: 100%; }
.iwdn-tel { display: flex; align-items: center; gap: 8px; font-size: var(--iw-body-size, 15px); color: var(--iw-body-color, var(--iw-body, #4c565e)); margin: 22px 0 0; }
.iwdn-tel-i, .iwvl-tel-i { display: inline-flex; width: 16px; height: 16px; color: var(--ac); }
.iwdn-tel a, .iwvl-tel a { color: var(--ac); font-weight: 700; text-decoration: none; }
.iwdn-tel a:hover, .iwvl-tel a:hover { text-decoration: underline; }
.iwdn-note { display: flex; gap: 12px; align-items: flex-start; margin-top: 20px; padding: 18px 20px; border-radius: 12px; background: color-mix(in srgb, var(--ac) 6%, #f7f9fb); border: 1px solid color-mix(in srgb, var(--ac) 16%, #eef1f4); }
.iwdn-note-i { flex: 0 0 auto; width: 19px; height: 19px; color: var(--ac); margin-top: 2px; }
.iwdn-note-tx { font-size: var(--iw-body-size, 14.5px); font-weight: var(--iw-body-weight, 400); line-height: var(--iw-body-lh, 1.75); color: var(--iw-body-color, var(--iw-body, #4c565e)); margin: 0; }

/* ── 자원봉사 안내 ── */
.iwvl-areas { display: grid; grid-template-columns: repeat(var(--iw-vl-n, 4), minmax(0, 1fr)); gap: var(--iw-card-gap, 12px); }
.iwvl-area { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; background: var(--iw-card-bg, #fff); border: 1px solid #e8ebee; border-radius: 14px; padding: var(--iw-card-pad, 22px 16px); transition: box-shadow .2s, transform .2s; }
.iwvl-area:hover { box-shadow: 0 8px 24px rgba(20,26,31,.08); transform: translateY(-2px); }
.iwvl-ico { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: color-mix(in srgb, var(--ac) 11%, #fff); color: var(--ac); margin-bottom: 4px; }
.iwvl-ico svg { width: var(--iw-icon-size, 22px); height: var(--iw-icon-size, 22px); }
.iwvl-atitle { font-size: var(--iw-title-size, 15.5px); font-weight: var(--iw-title-weight, 700); line-height: var(--iw-title-lh, 1.4); color: var(--iw-title-color, var(--iw-ink, #141a1f)); }
.iwvl-adesc { font-size: var(--iw-body-size, 13px); font-weight: var(--iw-body-weight, 400); line-height: var(--iw-body-lh, 1.55); color: var(--iw-body-color, var(--iw-body, #8a949e)); }
.iwvl-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--iw-card-gap, 12px); margin: 28px 0 0; }
.iwvl-fact { background: #f7f9fb; border-radius: 12px; padding: var(--iw-card-pad, 16px 18px); }
.iwvl-fname { font-size: var(--iw-label-size, 12.5px); font-weight: var(--iw-label-weight, 700); letter-spacing: var(--iw-label-ls, .03em); color: var(--iw-label-color, var(--ac)); margin: 0 0 5px; }
.iwvl-fval { font-size: var(--iw-title-size, 16px); font-weight: var(--iw-title-weight, 600); line-height: var(--iw-title-lh, 1.5); color: var(--iw-title-color, var(--iw-ink, #141a1f)); margin: 0; word-break: keep-all; }
.iwvl-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-top: 26px; }
.iwvl-tel { display: flex; align-items: center; gap: 8px; font-size: var(--iw-body-size, 15px); color: var(--iw-body-color, var(--iw-body, #4c565e)); margin: 0; }
.iwvl-btn { display: inline-block; background: var(--ac); color: var(--iw-btn-color, #fff); text-decoration: none; padding: 13px 28px; border-radius: 7px; font-size: var(--iw-btn-size, 15px); font-weight: var(--iw-btn-weight, 700); }
.iwvl-btn:hover { filter: brightness(1.08); }

@media (max-width: 1024px) {
  .iwdn-accounts { grid-template-columns: repeat(min(2, var(--iw-dn-n, 1)), minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .iwdn-accounts { grid-template-columns: 1fr; }
  .iwvl-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .iwdn-no { font-size: 19px; }
  .iwvl-foot { flex-direction: column; align-items: stretch; }
  .iwvl-btn { text-align: center; }
}
@media (max-width: 560px) {
  .iwvl-areas, .iwvl-facts { grid-template-columns: 1fr; }
}

/* ============================================================
   인라인 서식 (v1.2.5) — 빌더 편집기에서 글자 단위로 넣은 굵게/색/형광/링크
   블록 스타일 변수(--iw-*)보다 인라인 style이 우선하므로 여기서는
   태그 자체의 기본 모양만 잡아준다.
   ============================================================ */
.iwg b, .iwg strong { font-weight: 700; }
.iwg mark { background: #ffe066; color: inherit; padding: 0 .15em; border-radius: 2px; }
/* 편집기에서 넣은 링크는 class가 없다 — 버튼(.btn 등)은 건드리지 않는다 */
.iwg a:not([class]) { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.iwg a:not([class]):hover { opacity: .75; }
.iwg u { text-underline-offset: 3px; }

/* ============================================================
   표 정렬 (v1.3.0) — 헤더행/본문/열별 정렬
   render.php 의 iw_table_apply_align() 이 격자 좌표를 계산해 셀마다
   클래스를 붙인다. nth-child 로 하면 rowspan 이 있는 표에서 열이 밀린다.
   앞쪽 --iw-body-align 게이트 규칙과 특이도가 같으므로 반드시 뒤에 온다.
   ============================================================ */
.iwg-table th.iwtb-al, .iwg-table td.iwtb-al { text-align: left; }
.iwg-table th.iwtb-ac, .iwg-table td.iwtb-ac { text-align: center; }
.iwg-table th.iwtb-ar, .iwg-table td.iwtb-ar { text-align: right; }
.iwg-table th.iwtb-aj, .iwg-table td.iwtb-aj { text-align: justify; text-justify: inter-character; }
/* 셀 안에 <p>가 들어온 경우(한글·워드 붙여넣기)도 같이 따라가게 */
.iwg-table td.iwtb-al > p, .iwg-table th.iwtb-al > p { text-align: left; }
.iwg-table td.iwtb-ar > p, .iwg-table th.iwtb-ar > p { text-align: right; }

/* 맨 아랫줄 굵은 선 (v1.3.1)
   rowspan 으로 아래까지 이어진 셀은 마지막 <tr> 의 자식이 아니라
   tr:last-child td 규칙에 안 걸린다. PHP 가 격자로 판정해 iwtb-bot 을 붙인다. */
.iwg-table th.iwtb-bot, .iwg-table td.iwtb-bot { border-bottom: 2px solid #141a1f; }
