@charset "utf-8";
/* ============================================================
   txt_page.css — 아이오라 «이미지 → 텍스트» 재코딩 공용 스타일
   2026-09-16 신설. 파일럿(clinic01_test·laboratory01_test)의 인라인 CSS를 승격.

   🔴 제목 서체는 «변수 한 곳»에서만 정한다 (--iora-title-font).
      최종 서체(레페리 라이선스 또는 대체 서체)가 정해지면 아래 @font-face 와
      이 변수만 바꾸면 32개 페이지 전체가 한 번에 바뀐다. 페이지 재작업 불필요.
      2026-09-16 현재: 사용자 지시 «우선 최대한 비슷한 무료 서체로 진행».

   치수·자간·색은 PSD 텍스트 레이어 실측값(psd_text/json)에서 가져왔다. 임의 조정 금지.
   ============================================================ */

/* ── 본문 서체: 사이트가 이미 로드하는 Noto Sans KR ── */
@font-face{font-family:'IoraNoto';src:url('/fonts/notokr/notokr-regular.woff2') format('woff2'),url('/fonts/notokr/notokr-regular.woff') format('woff');font-weight:400;font-display:swap;}
@font-face{font-family:'IoraNoto';src:url('/fonts/notokr/notokr-medium.woff2') format('woff2'),url('/fonts/notokr/notokr-medium.woff') format('woff');font-weight:500;font-display:swap;}
@font-face{font-family:'IoraNoto';src:url('/fonts/notokr/notokr-bold.woff2') format('woff2'),url('/fonts/notokr/notokr-bold.woff') format('woff');font-weight:700;font-display:swap;}
@font-face{font-family:'IoraNoto';src:url('/fonts/notokr/notokr-black.woff2') format('woff2'),url('/fonts/notokr/notokr-black.woff') format('woff');font-weight:900;font-display:swap;}

/* ── 제목 서체(잠정): Freesentation OFL. 교체 시 이 4줄 + --iora-title-font 만 수정 ── */
@font-face{font-family:'IoraTitle';src:url('/img/sub/text_test/Freesentation-4Regular.woff2') format('woff2');font-weight:400;font-display:swap;}
@font-face{font-family:'IoraTitle';src:url('/img/sub/text_test/Freesentation-5Medium.woff2') format('woff2');font-weight:500;font-display:swap;}
@font-face{font-family:'IoraTitle';src:url('/img/sub/text_test/Freesentation-6SemiBold.woff2') format('woff2');font-weight:600;font-display:swap;}
@font-face{font-family:'IoraTitle';src:url('/img/sub/text_test/Freesentation-7Bold.woff2') format('woff2');font-weight:700;font-display:swap;}

:root{
  --iora-title-font:'IoraTitle','IoraNoto','Noto Sans KR',sans-serif;
  --iora-body-font:'IoraNoto','Noto Sans KR',sans-serif;
  --iora-title-weight:700;      /* 페이지 대제목 굵기 */
  --iora-title-ls:0;            /* 페이지 대제목 자간 */
  --iora-hero-weight:600;       /* 배너 문구 굵기 */
  --iora-ink:#292929;           /* 본문 먹색 */
  --iora-ink-sub:#4a4a4a;
  --iora-rule:#333;             /* 섹션 제목 좌우 선 */
  --iora-female:#f7a5a5;        /* 여성 항목 번호 배경 */
  --iora-male:#9fd1f0;          /* 남성 항목 번호 배경 */
  --iora-inner:1300px;          /* 본문 폭 */
}

/* 사이트 전역 `*{font-family}` 선언을 이 영역 안에서만 덮어쓴다 */
.txt_page *{font-family:var(--iora-body-font);}
.txt_page{color:var(--iora-ink);word-break:keep-all;font-family:var(--iora-body-font);}
.txt_page .inner{width:var(--iora-inner);margin:0 auto;}

/* ── 페이지 대제목 ── */
.txt_page h1{font-family:var(--iora-title-font);font-size:57px;font-weight:var(--iora-title-weight);letter-spacing:var(--iora-title-ls);color:var(--iora-ink);text-align:center;line-height:1.1;margin:0 0 30px;}

/* ── 상단 배너(사진 + 문구) ── */
.txt_page .hero{position:relative;width:1920px;}
.txt_page .hero img{width:100%;display:block;}
.txt_page .hero .lead{position:absolute;left:0;right:0;bottom:0;padding:80px 0 105px;text-align:center;color:#fff;background:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,.45));}
.txt_page .hero .lead h2{font-family:var(--iora-title-font);font-size:44px;font-weight:var(--iora-hero-weight);letter-spacing:0;line-height:1.1;margin-bottom:22px;color:#fff;text-shadow:0 0 10px rgba(255,255,255,.6),0 0 2px rgba(255,255,255,.8),0 2px 6px rgba(0,0,0,.35);}
.txt_page .hero .lead p{font-size:20px;line-height:36px;font-weight:500;letter-spacing:-0.06em;color:#fff;}

/* ── 사진 + 설명 2단 블록 ── */
.txt_page .what{display:flex;margin:110px auto 0;background:#f2f2f2;}
.txt_page .what img{flex:0 0 650px;width:650px;display:block;}
.txt_page .what .txt{flex:1;display:flex;flex-direction:column;justify-content:center;padding:40px 30px;text-align:center;}
.txt_page .what h2{font-size:41px;font-weight:700;letter-spacing:-0.06em;line-height:1.15;margin-bottom:36px;color:var(--iora-ink);}
.txt_page .what p{font-size:20px;line-height:36px;font-weight:500;letter-spacing:-0.06em;color:var(--iora-ink);}

/* ── 번호 목록 섹션(검사·시술 절차) ── */
.txt_page .method{margin-top:110px;}
.txt_page .method h2{display:flex;align-items:center;gap:30px;font-size:41px;font-weight:700;letter-spacing:-0.06em;line-height:1.15;color:var(--iora-ink);margin-bottom:50px;}
.txt_page .method h2:before,.txt_page .method h2:after{content:"";flex:1;height:3px;background:var(--iora-rule);}
.txt_page .method li{display:flex;align-items:flex-start;gap:18px;margin-bottom:34px;}
.txt_page .method .num{flex:0 0 32px;width:32px;height:32px;line-height:32px;border-radius:50%;color:#fff;font-size:23px;font-weight:900;text-align:center;letter-spacing:-0.06em;margin-top:2px;}
.txt_page .method.female .num{background:var(--iora-female);}
.txt_page .method.male .num{background:var(--iora-male);}
.txt_page .method dl{display:flex;align-items:flex-start;}
.txt_page .method dt{font-size:25px;font-weight:700;letter-spacing:-0.06em;line-height:36px;white-space:nowrap;margin-right:22px;color:var(--iora-ink);}
.txt_page .method dd{font-size:19px;line-height:36px;font-weight:500;letter-spacing:-0.04em;color:var(--iora-ink-sub);}
.txt_page .method dd.ml{line-height:30px;padding-top:3px;}
.txt_page .method dd small{display:block;font-size:19px;letter-spacing:-0.04em;margin-top:22px;}
.txt_page .method.male{margin-bottom:40px;}

/* ── 모바일(640px 디자인) ── */
@media screen and (max-width:1023px){
  :root{--iora-inner:100%;}
  .txt_page .inner{width:100%;padding:0 20px;box-sizing:border-box;}
  .txt_page h1{font-size:28px;margin-bottom:18px;}
  .txt_page .hero{width:100%;}
  .txt_page .hero .lead{position:static;padding:22px 20px 26px;background:#6d6d6d;}
  .txt_page .hero .lead h2{font-size:22px;margin-bottom:12px;text-shadow:none;}
  .txt_page .hero .lead p{font-size:14px;line-height:22px;}
  .txt_page .what{display:block;margin-top:40px;}
  .txt_page .what img{width:100%;flex:none;}
  .txt_page .what .txt{padding:24px 20px;}
  .txt_page .what h2{font-size:22px;margin-bottom:16px;}
  .txt_page .what p{font-size:15px;line-height:26px;}
  .txt_page .method{margin-top:44px;}
  .txt_page .method h2{font-size:22px;gap:14px;margin-bottom:24px;}
  .txt_page .method li{margin-bottom:22px;gap:12px;}
  .txt_page .method .num{flex:0 0 26px;width:26px;height:26px;line-height:26px;font-size:16px;}
  .txt_page .method dl{display:block;}
  .txt_page .method dt{font-size:17px;line-height:26px;margin:0 0 6px;white-space:normal;}
  .txt_page .method dd{font-size:15px;line-height:26px;}
  .txt_page .method dd small{font-size:14px;margin-top:12px;}
}

/* ============================================================
   시술 안내형 페이지 컴포넌트 (2026-09-18, clinic02 시험관아기시술에서 도출)
   치수·색은 PSD 「서브/6-2 시험관아기시술.psd」 레이어 실측값.
     남색 #060058 / 본문폭 1300(inner) / 아이콘 줄은 1600
   ============================================================ */
:root{
  --iora-navy:#060058;
  --iora-wide:1600px;      /* 아이콘 6열 줄 */
}

/* 배너 위 워터마크 문구(원본은 이미지에 구워져 있던 장식 텍스트) */
.txt_page .hero .wm{position:absolute;left:0;right:0;top:66px;text-align:center;color:rgba(255,255,255,.55);
  font-family:var(--iora-title-font);font-size:15px;letter-spacing:.62em;font-weight:400;}

/* ── 원형 아이콘 + 캡션 줄 ── */
.txt_page .icon_row{display:flex;justify-content:center;gap:88px;margin:0;padding:0;list-style:none;}
.txt_page .icon_row.four{gap:60px;}
.txt_page .icon_row li{width:192px;text-align:center;}
.txt_page .icon_row img{width:192px;height:192px;display:block;}
.txt_page .icon_row .cap{display:block;margin-top:16px;font-size:20px;font-weight:700;letter-spacing:-0.04em;line-height:1.35;color:var(--iora-ink);}
.txt_page .icon_row .cap small{display:block;font-size:16px;font-weight:500;color:var(--iora-ink-sub);margin-top:4px;letter-spacing:-0.04em;}
.txt_page .section_head{font-size:41px;font-weight:700;letter-spacing:-0.06em;text-align:center;color:var(--iora-ink);margin:0 0 50px;}

/* ── 단계 섹션(번호 워터마크 + 제목 + 설명) ── */
.txt_page .step_sec{padding:78px 0 86px;}
.txt_page .step_sec.navy{background:var(--iora-navy);color:#fff;}
.txt_page .step_sec.light{background:#fff;}
.txt_page .step_sec .inner{position:relative;padding-left:159px;box-sizing:border-box;}
.txt_page .step_sec .num{position:absolute;left:0;top:-14px;font-family:var(--iora-title-font);font-size:150px;font-weight:700;line-height:1;letter-spacing:-0.04em;}
.txt_page .step_sec.navy .num{color:rgba(255,255,255,.13);}
.txt_page .step_sec.light .num{color:rgba(6,0,88,.08);}
.txt_page .step_sec h3{font-size:30px;font-weight:700;letter-spacing:-0.05em;line-height:1.2;margin:0 0 26px;}
.txt_page .step_sec.navy h3{color:#fff;}
.txt_page .step_sec p.desc{font-size:18px;line-height:29px;font-weight:500;letter-spacing:-0.045em;margin:0;}
.txt_page .step_sec.navy p.desc{color:rgba(255,255,255,.88);}
.txt_page .step_sec.light p.desc{color:var(--iora-ink-sub);}

/* 단계 안 2열 카드 */
.txt_page .cards{display:flex;gap:24px;margin-top:38px;}
.txt_page .cards > div{flex:1;background:#fff;border-radius:2px;padding:24px 20px 26px;text-align:center;}
.txt_page .cards h4{font-size:25px;font-weight:700;letter-spacing:-0.05em;color:var(--iora-navy);margin:0 0 12px;}
.txt_page .cards p{font-size:17px;line-height:26px;font-weight:500;letter-spacing:-0.045em;color:var(--iora-ink-sub);margin:0;}

/* 사진 + 캡션 격자 */
.txt_page .photo_grid{display:flex;flex-wrap:wrap;gap:20px 20px;margin-top:40px;}
.txt_page .photo_grid figure{margin:0;width:428px;}
.txt_page .photo_grid img{width:428px;height:226px;object-fit:cover;display:block;}
.txt_page .photo_grid figcaption{margin-top:14px;text-align:center;font-size:19px;font-weight:500;letter-spacing:-0.04em;color:var(--iora-ink);}
.txt_page .step_sec.navy .photo_grid figcaption{color:#fff;}
.txt_page .photo_grid.offset{padding-left:266px;}

/* 배아 발달 단계 — 흰 카드 위 7열 */
.txt_page .stage_card{background:#fff;border-radius:2px;padding:26px 20px 24px;margin-top:38px;}
.txt_page .stage_row{display:flex;justify-content:space-between;list-style:none;margin:0;padding:0;}
.txt_page .stage_row li{width:140px;text-align:center;}
.txt_page .stage_row img{width:140px;height:140px;display:block;}
.txt_page .stage_row .cap{display:block;margin-top:10px;font-size:17px;font-weight:700;letter-spacing:-0.05em;color:var(--iora-ink);line-height:1.3;}
.txt_page .stage_row .cap small{display:block;font-size:15px;font-weight:500;color:var(--iora-ink-sub);}

/* ── 모바일 ── */
@media screen and (max-width:1023px){
  .txt_page .hero .wm{top:24px;font-size:11px;letter-spacing:.4em;}
  .txt_page .section_head{font-size:22px;margin-bottom:24px;}
  .txt_page .icon_row{flex-wrap:wrap;gap:24px 14px;}
  .txt_page .icon_row li{width:30%;}
  .txt_page .icon_row img{width:100%;height:auto;}
  .txt_page .icon_row .cap{font-size:14px;margin-top:8px;}
  .txt_page .icon_row .cap small{font-size:12px;}
  .txt_page .step_sec{padding:34px 0 38px;}
  .txt_page .step_sec .inner{padding-left:20px;padding-right:20px;}
  .txt_page .step_sec .num{position:static;display:block;font-size:44px;margin-bottom:6px;}
  .txt_page .step_sec h3{font-size:20px;margin-bottom:14px;}
  .txt_page .step_sec p.desc{font-size:15px;line-height:24px;}
  .txt_page .cards{display:block;}
  .txt_page .cards > div{margin-bottom:12px;padding:18px 16px;}
  .txt_page .cards h4{font-size:18px;}
  .txt_page .cards p{font-size:14px;line-height:22px;}
  .txt_page .photo_grid{gap:16px;margin-top:24px;}
  .txt_page .photo_grid figure{width:100%;}
  .txt_page .photo_grid img{width:100%;height:auto;}
  .txt_page .photo_grid.offset{padding-left:0;}
  .txt_page .photo_grid figcaption{font-size:14px;margin-top:8px;}
  .txt_page .stage_card{padding:16px 12px;margin-top:22px;}
  .txt_page .stage_row{flex-wrap:wrap;justify-content:center;gap:14px 10px;}
  .txt_page .stage_row li{width:30%;}
  .txt_page .stage_row img{width:100%;height:auto;}
  .txt_page .stage_row .cap{font-size:13px;}
  .txt_page .stage_row .cap small{font-size:11px;}
}

/* 페이지 조립용 여백 (PSD 실측: 배너 끝 938 → 시술대상 제목 1027 = 89 / 시술과정 제목 1520) */
.txt_page .inner.wide{width:var(--iora-wide);max-width:100%;}
.txt_page .target{margin-top:89px;}
.txt_page .section_head.proc{margin-top:82px;margin-bottom:0;padding-bottom:40px;}
@media screen and (max-width:1023px){
  .txt_page .target{margin-top:34px;}
  .txt_page .section_head.proc{margin-top:36px;padding-bottom:18px;}
}

/* clinic02 1차 대조 후 보정 (2026-09-18) — PSD 「6-2 시험관아기시술」 y좌표 실측 반영
   원본: 남색 1451~2036 / 흰 2036~2904 / 남색 2914~3469 / 흰 3483~4009
   «시술 과정» 제목은 남색 영역 «안» 에 있다(흰 배경 위가 아님). */
.txt_page .step_sec{padding:79px 0 90px;}
.txt_page .step_sec.first{padding-top:69px;}
.txt_page .step_sec .section_head.on_navy{color:#fff;margin:0 0 72px;}
.txt_page .step_sec .num{top:-6px;line-height:.96;}
.txt_page .step_sec h3{margin:0 0 32px;}
.txt_page .step_sec p.desc + .cards{margin-top:42px;}
.txt_page .cards > div{padding:22px 20px 24px;}
.txt_page .photo_grid{margin-top:40px;}
.txt_page .photo_grid + .photo_grid{margin-top:42px;}
.txt_page .stage_card{margin-top:46px;}
.txt_page .step_sec .icon_row{margin-top:51px;}
@media screen and (max-width:1023px){
  .txt_page .step_sec{padding:34px 0 38px;}
  .txt_page .step_sec.first{padding-top:28px;}
  .txt_page .step_sec .section_head.on_navy{margin-bottom:26px;}
  .txt_page .step_sec .icon_row{margin-top:24px;}
}

/* clinic02 2차 보정 (2026-09-18) — 렌더 실측 vs PSD y좌표 대조 결과
   ① .photo_grid.offset 의 padding 266 때문에 두 번째 사진 줄이 «줄바꿈» 되어 +315px 발생 → 260 으로
   ② 제목·본문 line-height 가 기본값이라 PSD 글자상자보다 6~20px 씩 높았다 → 실측값으로 고정 */
.txt_page h1{line-height:1;margin:0 0 40px;}
.txt_page .section_head{line-height:1;margin-bottom:30px;}
.txt_page .hero .lead{padding:93px 0 105px;}
.txt_page .target{margin-bottom:82px;}
.txt_page .step_sec h3{line-height:1;}
.txt_page .step_sec p.desc{line-height:27px;}
.txt_page .cards > div{padding:18px 20px 20px;}
.txt_page .cards h4{margin-bottom:10px;}
.txt_page .photo_grid.offset{padding-left:260px;}
@media screen and (max-width:1023px){
  .txt_page h1{margin-bottom:18px;}
  .txt_page .hero .lead{padding:22px 20px 26px;}
  .txt_page .target{margin-bottom:34px;}
  .txt_page .section_head{margin-bottom:22px;}
  .txt_page .step_sec p.desc{line-height:24px;}
}

/* clinic02 3차 보정 (2026-09-18) — 2차 측정 후 잔여 오차 정리 */
.txt_page h1{margin-bottom:46px;}
.txt_page .section_head{margin-bottom:50px;}
.txt_page .hero .lead{padding:105px 0 105px;}
.txt_page .target{margin-bottom:73px;}
.txt_page .step_sec.photos{padding-bottom:70px;}   /* 사진 캡션 아래 여백은 PSD 70 */
@media screen and (max-width:1023px){
  .txt_page h1{margin-bottom:18px;}
  .txt_page .section_head{margin-bottom:22px;}
  .txt_page .hero .lead{padding:22px 20px 26px;}
  .txt_page .target{margin-bottom:34px;}
  .txt_page .step_sec.photos{padding-bottom:38px;}
}

/* clinic02 4차 미세보정 — 섹션 높이를 PSD 실측에 맞춤
   PSD: 남색1 585 / 흰2 868 / 남색3 555 / 흰4 526 (px, 1920 기준) */
.txt_page .step_sec.s1{padding-bottom:82px;}
.txt_page .step_sec.s2{padding-bottom:57px;}
.txt_page .step_sec.s3{padding-bottom:99px;}
.txt_page .step_sec.s4{padding-bottom:72px;}
@media screen and (max-width:1023px){
  .txt_page .step_sec.s1,.txt_page .step_sec.s2,.txt_page .step_sec.s3,.txt_page .step_sec.s4{padding-bottom:38px;}
}

/* ============================================================
   글자 스펙 정합 (2026-09-18) — PSD 텍스트 레이어의 «실제 서체·크기» 로 교체
   출처: psd_text/json/서브__6-2 시험관아기시술.json (font / size 필드)
     본문 계열 = NotoSansCJKkr (사이트가 이미 쓰는 Noto Sans KR 과 동일 계열)
       Thin=100 / Regular=400 / Medium=500 / Bold=700
     제목 계열 = LeferiPoint-Special (라이선스 미확인 → 대체 서체 유지, 크기만 맞춤)
     번호 = KOHIBaeum 168px (대체 서체로 크기·불투명도만 맞춤)
   종전 값이 전반적으로 2~3px 작고 굵기가 낮아 «글자가 약해 보인다» 는 지적을 받았다.
   ============================================================ */
@font-face{font-family:'IoraNoto';src:url('/fonts/notokr/notokr-thin.woff2') format('woff2'),url('/fonts/notokr/notokr-thin.woff') format('woff');font-weight:100;font-display:swap;}

/* 배너 */
.txt_page h1{font-size:57px;}                                   /* Leferi 57 */
.txt_page .hero .lead h2{font-size:45px;}                        /* Leferi 45 */
.txt_page .hero .lead p{font-size:20px;font-weight:500;}         /* Noto Medium 20 */
.txt_page .hero .wm{font-family:var(--iora-body-font);font-weight:100;font-size:11px;letter-spacing:3.55em;
  text-indent:3.55em;color:rgba(255,255,255,.62);}               /* Noto Thin 11, 자간 넓게 */

/* 섹션 제목 */
.txt_page .section_head{font-size:41px;font-weight:700;}         /* Noto Bold 41 */

/* 단계 */
.txt_page .step_sec h3{font-size:32px;font-weight:700;}          /* Noto Bold 32 */
.txt_page .step_sec p.desc{font-size:19px;font-weight:400;line-height:27px;}   /* Noto Regular 19 */
.txt_page .step_sec .num{font-size:168px;}                       /* KOHIBaeum 168 */

/* 카드 */
.txt_page .cards h4{font-size:28px;font-weight:700;}             /* Noto Bold 28 */
.txt_page .cards p{font-size:17px;font-weight:500;line-height:26px;}  /* Noto Medium 17 */

/* 사진 캡션 */
.txt_page .photo_grid figcaption{font-size:21px;font-weight:700;} /* Noto Bold 21 */

/* 아이콘 캡션 */
.txt_page .icon_row .cap{font-size:19.4px;font-weight:700;}      /* Noto Bold 19.4 */
.txt_page .icon_row .cap small{font-size:15.7px;font-weight:500;} /* Noto Medium 15.7 */

/* 배아 단계 캡션 */
.txt_page .stage_row .cap{font-size:20px;font-weight:700;line-height:21px;}
.txt_page .stage_row .cap small{font-size:15px;font-weight:500;line-height:21px;}

@media screen and (max-width:1023px){
  .txt_page h1{font-size:28px;}
  .txt_page .hero .lead h2{font-size:22px;}
  .txt_page .hero .lead p{font-size:14px;}
  .txt_page .hero .wm{font-size:9px;letter-spacing:.9em;text-indent:.9em;}
  .txt_page .section_head{font-size:22px;}
  .txt_page .step_sec h3{font-size:20px;}
  .txt_page .step_sec p.desc{font-size:15px;line-height:24px;}
  .txt_page .step_sec .num{font-size:44px;}
  .txt_page .cards h4{font-size:18px;}
  .txt_page .cards p{font-size:14px;line-height:22px;}
  .txt_page .photo_grid figcaption{font-size:14px;}
  .txt_page .icon_row .cap{font-size:14px;}
  .txt_page .icon_row .cap small{font-size:12px;}
  .txt_page .stage_row .cap{font-size:13px;line-height:16px;}
  .txt_page .stage_row .cap small{font-size:11px;line-height:16px;}
}

/* 글자 정합 2차 (2026-09-18) — 렌더 폭 실측 대조 결과
   · 제목용 대체 서체(Freesentation)는 원본 Leferi 보다 «글자 폭이 좁다»(57px 제목 기준 -56px).
     자간을 벌리면 띄엄띄엄해 보여서, 글자 자체를 가로로 늘려 원본 폭에 맞춘다(비율 1.18).
     🔴 최종 서체가 정해지면 이 scaleX 는 제거한다 — `--iora-title-stretch` 한 곳만 1 로.
   · 번호(KOHIBaeum 168px)는 대체 서체에서 같은 크기면 높이가 197px 로 커진다 → 123px 로 맞춤(글자높이 144). */
:root{--iora-title-stretch:1.18;}
.txt_page h1{display:inline-block;transform:scaleX(var(--iora-title-stretch));transform-origin:center top;}
.txt_page h1{width:100%;box-sizing:border-box;}
.txt_page .hero .lead h2{display:inline-block;transform:scaleX(var(--iora-title-stretch));transform-origin:center top;}
.txt_page .step_sec .num{font-size:123px;}
@media screen and (max-width:1023px){
  :root{--iora-title-stretch:1.1;}
  .txt_page .step_sec .num{font-size:44px;}
}

/* 섹션 높이 최종 보정 (2026-09-18) — 글자 크기 정합 후 재측정 반영
   PSD 섹션 끝: 1866 / 2734 / 3299 / 3839 (제목 top 을 0 으로 한 상대 y) */
.txt_page .step_sec.s1{padding-bottom:75px;}
.txt_page .step_sec.s2{padding-bottom:40px;}
.txt_page .step_sec.s3{padding-bottom:90px;}
.txt_page .step_sec.s4{padding-bottom:75px;}

/* 아이콘 자산 재추출 반영 (2026-09-18)
   원 테두리가 잘려 보이던 문제 — 크롭 상자를 원 경계에 딱 맞춰서 가장자리가 깎였다.
   PSD 에서 상하좌우 10px 여백을 두고 다시 추출(192→212). 배치가 변하지 않도록 음수 여백으로 상쇄한다. */
.txt_page .icon_row img{width:212px;height:212px;margin:-10px;}
.txt_page .stage_row img{width:144px;height:144px;margin:-2px;}
@media screen and (max-width:1023px){
  .txt_page .icon_row img{width:100%;height:auto;margin:0;}
  .txt_page .stage_row img{width:100%;height:auto;margin:0;}
}

/* 큰 번호 크기 정정 (2026-09-18)
   앞서 123px 로 맞춘 것은 «줄상자» 기준이었다. PSD 의 144 는 «숫자 자체(잉크) 높이».
   실측: 123px → 잉크 89px. 따라서 144px 를 얻으려면 123×144/89 ≒ 199px.
   원본 서체(KOHIBaeum)의 숫자는 폭이 넓어(68px) 대체 서체(53px)보다 크다 → scaleX 로 보정.
   🔴 최종 서체 확정 시 --iora-num-stretch 를 1 로 되돌린다. */
:root{--iora-num-stretch:1.28;}
.txt_page .step_sec .num{font-size:199px;display:inline-block;transform:scaleX(var(--iora-num-stretch));transform-origin:left top;top:-30px;}
@media screen and (max-width:1023px){
  :root{--iora-num-stretch:1.15;}
  .txt_page .step_sec .num{font-size:60px;top:auto;}
}

/* 글자 굵기 보정 3차 (2026-09-18) — 사용자 지적: 원본(이미지) 본문이 재코딩본보다 진하고 눈에 잘 들어온다.
   원본은 Photoshop 래스터(안티앨리어싱 «선명하게»)라 같은 굵기 값이어도 화면에서 한 단계 굵게 보인다.
   → 본문 계열을 한 단계씩 올리고, 회색(ink-sub)·반투명 흰색을 진한 먹색·순백으로 되돌린다. */
.txt_page .step_sec p.desc{font-weight:500;}
.txt_page .step_sec.navy p.desc{color:#fff;}
.txt_page .step_sec.light p.desc{color:var(--iora-ink);}
.txt_page .cards p{font-weight:700;color:var(--iora-ink);}
.txt_page .what p{font-weight:500;color:var(--iora-ink);}
.txt_page .method dd{color:var(--iora-ink);}
.txt_page .icon_row .cap small,.txt_page .stage_row .cap small{color:var(--iora-ink);}

/* 아이콘 원 테두리를 CSS 로 그린다 (2026-09-18)
   PSD 의 원(레이어 123)은 «1px 안쪽 스트로크 #929292» 레이어 효과인데 psd_tools 합성이 효과를 렌더하지 않아
   추출 PNG 에서 상하좌우 접점의 선이 빠졌다(사용자 지적). 그림은 원에 클리핑돼 있어 원 레이어를 뺄 수도 없다.
   → PNG 는 그대로 두고 같은 자리(지름 192·1px 안쪽)에 CSS 원을 덧그린다. 색·굵기는 여기 한 곳. */
.txt_page .icon_row li{position:relative;}
.txt_page .icon_row li:after{content:"";position:absolute;left:0;top:0;width:190px;height:190px;border:1px solid #929292;border-radius:50%;pointer-events:none;}
@media screen and (max-width:1023px){
  .txt_page .icon_row li:after{width:calc(100% - 2px);height:auto;aspect-ratio:1/1;}
}

/* 검수 보정(2026-09-18) — clinic03(Codex) 단계 카드 설명이 원본보다 연함(최암 107 vs 119) → PC 공통과 같은 «+1단계» 원칙 */
.txt_page.clinic03 .process-cards p{font-weight:500;color:#555;}

/* 연구소 검토본에서 재사용하는 고정 캔버스의 공통 배치. */
.txt_page.iora-canvas .panel{position:absolute;left:0;width:100%;}
.txt_page.iora-canvas .panel img{display:block;width:100%;height:100%;}
.txt_page.iora-canvas .copy{position:absolute;margin:0;padding:0;transform:none;box-sizing:content-box;white-space:nowrap;}
.txt_page.iora-canvas .copy>span{display:block;position:relative;width:max-content;font:inherit;color:inherit;letter-spacing:inherit;}
