/* ============================================================
   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-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 { 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; }

/* ===== 카드 슬라이더 ===== */
.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; }
.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; }
@media (max-width: 1100px) { .iwic-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .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: 18px 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; }
.iwg-table tbody tr: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) {
  .iwg-table th, .iwg-table td { padding: 12px 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; }
.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 { 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-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 { grid-template-columns:repeat(3,1fr); } }
@media (max-width:520px){ .iwlogo-grid { grid-template-columns:repeat(2,1fr); } }

/* ===== 인용문 ===== */
.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; }
.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 { grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .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 을 붙였다 뗐다 함.
   스크롤 위로 다시 올리면 .is-in 제거 → 다시 내려오면 재생(반복).
   ============================================================ */
.iw-anim {
  transition: opacity .7s ease, transform .7s cubic-bezier(.22,.61,.36,1);
  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);
}
