/*
 * IHWIZ 사이트 스타일 — 시안 v5 기반 (GLM-FE / TASK:G002 소유 파일)
 * 마크업은 GLM-BE 의 BEM 클래스(ihwiz-*) 기준으로 매핑.
 * 팔레트: 배경 #FFF / 주강조 #090C9B / 보조 #00509D / 진남색 #03045E(CTA 밴드 전용) /
 *         밝은톤 #ABC4FF·#87BFFF(배경 전용, 글자색 금지) / 보라 #613DC1(단계 배지 계열 전용)
 * 유형 스코핑: BE body_class 출력이 슬러그 클래스(page-menu-*)가 없으므로
 *   홈 = body.home / MENU 상위 = body.page:not(.home):not(.page-child) /
 *   세부 = body.page-child 로 판별한다. (post-6/7/8 = page-child 확인됨)
 */

:root {
	--ihwiz-bg: #ffffff;
	--ihwiz-primary: #090c9b;
	--ihwiz-secondary: #00509d;
	--ihwiz-navy: #03045e;
	--ihwiz-tint: #abc4ff;
	--ihwiz-tint2: #87bfff;
	--ihwiz-purple: #613dc1;
	--ihwiz-ink: #1a1c2e;
	--ihwiz-line: #dfe4f4;
	--ihwiz-card-pad: 24px;
	--ihwiz-section-gap: clamp(56px, 8vw, 104px); /* 카드 패딩 3배 이상 */
	--ihwiz-max: 1120px;
}

/* ---------- 리셋/기본 ---------- */
*, *::before, *::after { box-sizing: border-box; }
body {
	margin: 0;
	background: var(--ihwiz-bg);
	color: var(--ihwiz-ink);
	font-family: "Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { color: var(--ihwiz-navy); line-height: 1.32; margin-block: 0 .5em; }
h1 { font-size: clamp(1.9rem, 3.4vw, 2.9rem); }
h2 { font-size: clamp(1.4rem, 2.3vw, 1.9rem); }
h3 { font-size: clamp(1.08rem, 1.5vw, 1.25rem); }
p { margin-block: 0 1em; }
p:last-child { margin-bottom: 0; }
a { color: var(--ihwiz-secondary); text-decoration: none; }
a:hover { color: var(--ihwiz-primary); }

.ihwiz-header { background: #fff; border-bottom: 1px solid var(--ihwiz-line); }
.ihwiz-header__inner { max-width: var(--ihwiz-max); margin-inline: auto; padding: 14px 24px;
	display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ihwiz-brand { font-weight: 800; color: var(--ihwiz-navy); font-size: 1.15rem; }
.ihwiz-nav { display: flex; }
.ihwiz-nav__list { list-style: none; margin: 0; padding: 0;
	display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.ihwiz-nav__list > li { position: relative; }
.ihwiz-nav a { color: var(--ihwiz-ink); font-size: .95rem; }
.ihwiz-nav a:hover { color: var(--ihwiz-primary); }
.ihwiz-nav .current-menu-item > a,
.ihwiz-nav .current_page_item > a { color: var(--ihwiz-primary); font-weight: 700; }
/* 하위 메뉴(BE 출력: ul.sub-menu) — 데스크톱 드롭다운 */
.ihwiz-nav .sub-menu { list-style: none; margin: 0; padding: 8px 0;
	position: absolute; top: 100%; left: 0; z-index: 30; min-width: 220px;
	background: #fff; border: 1px solid var(--ihwiz-line); border-radius: 10px;
	box-shadow: 0 10px 26px rgba(3, 4, 94, .12);
	display: none; }
.ihwiz-nav .menu-item-has-children:hover > .sub-menu,
.ihwiz-nav .menu-item-has-children:focus-within > .sub-menu { display: block; }
.ihwiz-nav .sub-menu li { padding: 0; }
.ihwiz-nav .sub-menu a { display: block; padding: 9px 16px; font-size: .9rem; white-space: nowrap; }
.ihwiz-nav .sub-menu a:hover { background: var(--ihwiz-tint); color: var(--ihwiz-navy); }
.ihwiz-main { display: block; }
.ihwiz-page { display: block; }
.ihwiz-footer { background: var(--ihwiz-navy); color: rgba(255,255,255,.85); margin-top: 0; }
.ihwiz-footer__inner { max-width: var(--ihwiz-max); margin-inline: auto; padding: 40px 24px;
	display: flex; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.ihwiz-footer__brand { color: #fff; font-weight: 800; }
.ihwiz-footer-nav { list-style: none; margin: 0; padding: 0;
	display: flex; gap: 18px; flex-wrap: wrap; }
.ihwiz-footer-nav a, .ihwiz-footer__copy { color: rgba(255,255,255,.8); font-size: .9rem; }
.ihwiz-footer-nav a:hover { color: var(--ihwiz-tint2); }

/* ---------- 히어로: 반드시 밝은 배경(다크 금지, 시안 §2) ---------- */
.ihwiz-hero {
	background: linear-gradient(180deg, var(--ihwiz-tint) 0%, var(--ihwiz-bg) 100%);
	padding: clamp(56px, 9vw, 120px) 24px;
	text-align: center;
	color: var(--ihwiz-navy);
}
.ihwiz-hero__eyebrow { color: var(--ihwiz-secondary); font-weight: 700; letter-spacing: .04em; }
.ihwiz-hero__title { color: var(--ihwiz-navy); max-width: 780px; margin-inline: auto; }
.ihwiz-hero__sub { color: var(--ihwiz-navy); opacity: .85; max-width: 640px; margin-inline: auto; }
.ihwiz-hero__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 28px; }

/* ---------- 버튼 ----------
 * BE 마크업: div.wp-block-button.ihwiz-btn(--primary|--ghost) > a.wp-block-button__link
 * 코어 theme.css 의 .wp-block-button__link(0,1,0)보다 강한 특이성으로 고정. */
.wp-block-button .wp-block-button__link,
a.ihwiz-btn {
	display: inline-block;
	background: var(--ihwiz-primary);
	color: #fff;
	border-radius: 8px;
	padding: 13px 26px;
	font-weight: 700;
	font-size: .98rem;
	text-decoration: none;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.wp-block-button.ihwiz-btn--ghost .wp-block-button__link,
a.ihwiz-btn--ghost {
	background: transparent;
	color: var(--ihwiz-primary);
	border: 2px solid var(--ihwiz-primary);
	padding: 11px 24px;
}
.wp-block-button .wp-block-button__link:hover,
a.ihwiz-btn:hover { background: var(--ihwiz-secondary); color: #fff; }
.wp-block-button.ihwiz-btn--ghost .wp-block-button__link:hover,
a.ihwiz-btn--ghost:hover { background: var(--ihwiz-primary); color: #fff; }

/* ---------- 전체폭 몰입 밴드(페이지당 히어로+중간 1) ---------- */
.ihwiz-band {
	background: var(--ihwiz-tint);
	padding: clamp(48px, 7vw, 96px) 24px;
	text-align: center;
}
.ihwiz-band--scope { background: var(--ihwiz-tint2); }
.ihwiz-band__title { color: var(--ihwiz-navy); }
.ihwiz-band__text { color: var(--ihwiz-navy); max-width: 720px; margin-inline: auto; opacity: .9; }

/* ---------- CTA: 맨 아래, 진남색 전용 ---------- */
.ihwiz-cta {
	background: var(--ihwiz-navy);
	padding: clamp(56px, 8vw, 104px) 24px;
	text-align: center;
}
.ihwiz-cta__title { color: #ffffff; }
.ihwiz-cta p { color: rgba(255,255,255,.85); }
.ihwiz-cta__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 24px; }
.ihwiz-cta .wp-block-button__link { background: #ffffff; color: var(--ihwiz-navy); }
.ihwiz-cta .wp-block-button__link:hover { background: var(--ihwiz-tint); color: var(--ihwiz-navy); }

/* ---------- 섹션/리드 ---------- */
.ihwiz-section { max-width: var(--ihwiz-max); margin-inline: auto; padding: var(--ihwiz-section-gap) 24px; }
.ihwiz-sec-title { color: var(--ihwiz-navy); margin-bottom: 1.2em; }
.ihwiz-lead { background: #fff; }
.ihwiz-lead__text { font-size: clamp(1.15rem, 2vw, 1.5rem); font-weight: 700;
	color: var(--ihwiz-navy); max-width: 860px; margin-inline: auto; text-align: center; }

/* ---------- 카드: 3단위 스태킹(--3/--2), 4단(--4) ---------- */
.ihwiz-cards { display: grid; gap: 24px; padding: 0; margin: 0; }
.ihwiz-cards--2 { grid-template-columns: repeat(2, 1fr); }
.ihwiz-cards--3 { grid-template-columns: repeat(3, 1fr); }
.ihwiz-cards--4 { grid-template-columns: repeat(4, 1fr); }
.ihwiz-card {
	background: #fff;
	border: 1px solid var(--ihwiz-line);
	border-radius: 12px;
	padding: var(--ihwiz-card-pad);
	box-shadow: 0 1px 2px rgba(3, 4, 94, .05);
	display: flex; flex-direction: column;
}
.ihwiz-card__tag { display: inline-block; align-self: flex-start; font-size: .78rem; font-weight: 700;
	color: var(--ihwiz-secondary); background: #eef2ff;
	border-radius: 999px; padding: 2px 10px; margin-bottom: 10px; }
.ihwiz-card__title { color: var(--ihwiz-navy); }
.ihwiz-card__text { color: var(--ihwiz-ink); font-size: .95rem; }
.ihwiz-card__more { margin-top: auto; padding-top: 14px; font-size: .92rem; font-weight: 700; }
.ihwiz-card__more a::after { content: " →"; }
.ihwiz-card--link { transition: transform .15s ease, box-shadow .15s ease; }
.ihwiz-card--link:hover { transform: translateY(-3px); box-shadow: 0 6px 18px rgba(3,4,94,.12); }
.ihwiz-hero-cards { background: #fff; padding: 40px 24px 0; max-width: var(--ihwiz-max); margin-inline: auto; }

/* ---------- 2단 분할(BE: ihwiz-two-col > __col) ---------- */
.ihwiz-two-col { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(28px, 4vw, 56px); align-items: start; }
.ihwiz-two-col__col { min-width: 0; }

/* ---------- 체크 리스트(판단기준) ---------- */
.ihwiz-list { list-style: none; padding: 0; margin: 0; }
.ihwiz-list li { position: relative; padding: 13px 16px 13px 42px; background: #fff;
	border: 1px solid var(--ihwiz-line); border-radius: 10px; margin-bottom: 12px; }
.ihwiz-list--check li::before { content: ""; position: absolute; left: 16px; top: 50%;
	width: 14px; height: 8px; border-left: 3px solid var(--ihwiz-primary);
	border-bottom: 3px solid var(--ihwiz-primary); transform: translateY(-60%) rotate(-45deg); }
/* 칩 리스트(기술 스택 등, 홈) */
.ihwiz-list--chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ihwiz-list--chips li { position: static; padding: 6px 14px; margin: 0;
	background: #f4f7ff; border: 1px solid var(--ihwiz-line); border-radius: 999px;
	font-size: .88rem; font-weight: 600; color: var(--ihwiz-secondary); }

/* ---------- 인용/중간 강조 밴드(BE: ihwiz-quote) ---------- */
.ihwiz-quote { background: var(--ihwiz-tint); text-align: center;
	padding: clamp(48px, 7vw, 96px) 24px; }
.ihwiz-quote__title { color: var(--ihwiz-navy); max-width: 820px; margin-inline: auto; }
.ihwiz-quote__text { color: var(--ihwiz-navy); opacity: .9; max-width: 720px; margin-inline: auto; }

/* ---------- 다음 단계 크로스셀(BE: ihwiz-crossell) ---------- */
.ihwiz-crossell { max-width: var(--ihwiz-max); margin-inline: auto; padding: 0 24px 8px;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; }
.ihwiz-crossell__step { background: #fff; border: 1px solid var(--ihwiz-line);
	border-radius: 12px; padding: 20px 22px; }
.ihwiz-crossell__step--now { border: 2px solid var(--ihwiz-purple); box-shadow: 0 6px 18px rgba(97,61,193,.10); }
.ihwiz-crossell__badge { display: inline-block; background: var(--ihwiz-purple); color: #fff;
	font-size: .78rem; font-weight: 700; border-radius: 999px; padding: 3px 10px; margin-bottom: 10px; }
.ihwiz-crossell__text { color: var(--ihwiz-ink); font-size: .95rem; }
.ihwiz-crossell__text a { font-weight: 700; }

/* ---------- 시작 단계 + 보라 배지 ---------- */
.ihwiz-steps { list-style: none; padding: 0; margin: 0; }
.ihwiz-steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ihwiz-step { background: #fff; border: 1px solid var(--ihwiz-line); border-radius: 12px;
	padding: var(--ihwiz-card-pad); }
.ihwiz-step__badge { display: inline-block; background: var(--ihwiz-purple); color: #fff;
	font-size: .78rem; font-weight: 700; border-radius: 999px; padding: 3px 10px; margin-bottom: 10px; }
.ihwiz-step--now { border: 2px solid var(--ihwiz-purple); }
.ihwiz-step__title { color: var(--ihwiz-navy); }

/* ---------- FAQ ---------- */
.ihwiz-faq { max-width: var(--ihwiz-max); margin-inline: auto; padding: var(--ihwiz-section-gap) 24px; }
.ihwiz-faq__item { background: #fff; border: 1px solid var(--ihwiz-line);
	border-radius: 10px; padding: 16px 20px; margin-bottom: 12px; }
.ihwiz-faq__q { color: var(--ihwiz-navy); margin-bottom: .3em; }
.ihwiz-faq__a { color: var(--ihwiz-ink); font-size: .95rem; }

/* ---------- 세부 페이지 컴포넌트 ---------- */
.ihwiz-timeline { list-style: none; padding: 0; margin: 0; }
.ihwiz-timeline li { position: relative; padding: 0 0 28px 40px; border-left: 2px solid var(--ihwiz-tint2); }
.ihwiz-timeline li::before { content: ""; position: absolute; left: -9px; top: 2px;
	width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 3px solid var(--ihwiz-primary); }
.ihwiz-table { width: 100%; border-collapse: collapse; background: #fff; }
.ihwiz-table thead th { background: var(--ihwiz-primary); color: #fff; padding: 12px 16px; text-align: left; }
.ihwiz-table tbody td, .ihwiz-table tbody th { border: 1px solid var(--ihwiz-line); padding: 12px 16px; vertical-align: top; }
.ihwiz-table tbody tr:nth-child(even) { background: #f7f9ff; }

/* ---------- 유형 구분 1) HOME — 13섹션 특수 랜딩 ---------- */
.home .ihwiz-hero { padding-block: clamp(72px, 11vw, 150px); }

/* ---------- 유형 구분 2) MENU 상위 진입형 — 낮은 히어로, 틴트 진입 카드 ---------- */
body.page:not(.home):not(.page-child) .ihwiz-hero { padding-block: clamp(40px, 6vw, 80px); }
body.page:not(.home):not(.page-child) .ihwiz-card { background: var(--ihwiz-tint); border-color: transparent; }
body.page:not(.home):not(.page-child) .ihwiz-cards { gap: 20px; }

/* ---------- 유형 구분 3) 세부 페이지(page-child) — 촘촘 밀도 ---------- */
body.page-child .ihwiz-section,
body.page-child .ihwiz-faq { padding-block: clamp(28px, 4vw, 52px); }
body.page-child .ihwiz-sec-title { font-size: clamp(1.15rem, 1.8vw, 1.5rem); }
body.page-child .ihwiz-timeline li { padding-bottom: 18px; }

/* ---------- 반응형 ---------- */
@media (max-width: 960px) {
	.ihwiz-cards--3, .ihwiz-cards--4 { grid-template-columns: repeat(2, 1fr); }
	.ihwiz-steps-grid { grid-template-columns: 1fr; }
	.ihwiz-two-col { grid-template-columns: 1fr; }
	.ihwiz-nav .sub-menu { position: static; display: block; box-shadow: none;
		border-left: 0; border-right: 0; border-bottom: 0; border-radius: 0;
		background: #f7f9ff; min-width: 0; }
	.ihwiz-nav { flex-direction: column; }
	.ihwiz-nav__list { flex-direction: column; align-items: flex-start; gap: 8px; }
}
@media (max-width: 640px) {
	.ihwiz-cards--2, .ihwiz-cards--3, .ihwiz-cards--4 { grid-template-columns: 1fr; }
	.ihwiz-header__inner { flex-direction: column; align-items: flex-start; gap: 10px; }
	.ihwiz-hero { text-align: left; }
	.ihwiz-hero__actions, .ihwiz-cta__actions { flex-direction: column; align-items: stretch; }
	.ihwiz-table { display: block; overflow-x: auto; }
	.ihwiz-table table { min-width: 620px; }
	.ihwiz-footer__inner { flex-direction: column; }
}
