@charset "utf-8";
/* ==========================================================================
   골든디아망 시술 상세(서브) — 신규 디자인 (pc_서브.png 기준)
   main.css 다음에 로드한다. 토큰·헤더·드로어·버튼·Contact·푸터는 전부
   main.css 것을 그대로 쓰고, 여기서는 서브페이지 전용 컴포넌트만 정의한다.

   시안 실측 기준 — 1920 뷰포트 / 콘텐츠 박스 x240~1680(폭 1440).
   .gd-wrap 의 콘텐츠 폭이 정확히 1440 이 되도록 아래에서 max-width 를 고정하고,
   내부 폭은 전부 1440 대비 % 로 옮겨 시안 비례를 그대로 지킨다.
   시안의 카드·이미지 모서리는 전부 18px 로 동일했다(원호 피팅 17.2~18.2 → --gd-r).

   블록
   01 TOKENS    02 TYPO      03 BUTTONS   04 LAYOUT    05 HEADER
   06 HERO      07 NUMCARDS  08 PRS       09 CHECKS    10 NUMLIST
   11 DUO       12 STEPS     13 BA        14 CHAIN     15 SCAR
   16 DRAWER    17 RESPONSIVE
   ========================================================================== */

/* --- 01. TOKENS ---------------------------------------------------------- */
:root{
  --gd-deep:#070d18;         /* 시안 실측 — 원장 밴드 / 수술방법 콜아웃 */
  --gd-hair:#cdcdcd;         /* 추천 리스트 구분선 */
  --gd-cardline:#d7deea;     /* 히어로 스펙 카드 테두리 */
  --gd-r:18px;   /* 시안 원호 피팅 실측 17.2~18.2 */
  /* 콘텐츠 박스 좌측선 → 뷰포트 왼쪽 끝까지의 거리.
     .gd-wrap 의 보더박스가 (1440 + 거터*2) 이므로 (100vw - 1440)/2 가 정확히 그 거리다. */
  --gd-bleed:max(var(--gd-gut), calc((100vw - var(--gd-wrap))/2));
  /* .gd-wrap 의 콘텐츠 폭. 블리드된 요소가 컬럼 폭을 계산할 때 쓴다. */
  --gd-content:calc(min(100vw, var(--gd-wrap) + var(--gd-gut)*2) - var(--gd-gut)*2);
}
/* main.css 의 .gd-wrap 정의가 어떻게 바뀌든 서브 페이지의 콘텐츠 박스는
   시안 실측값(1920 에서 240~1680 = 1440)으로 고정한다. body 에만 스코프를
   걸어 index.html 에는 어떤 영향도 주지 않는다. */
.gd-subpage .gd-wrap{max-width:calc(var(--gd-wrap) + var(--gd-gut)*2)}

/* --- 02. TYPO ------------------------------------------------------------ */
/* 서브페이지 국문 헤드 — 시안 43px @1920 */
.gd-shead{
  font-size:clamp(21px,2.29vw,44px);font-weight:700;line-height:1.5;
  letter-spacing:-.026em;color:var(--gd-ink);
}
/* 라틴 이탤릭 액센트 — 시안 실측: 문장 안(DOWN/UP)은 1.15em,
   단독 줄(WHY? / POINT)은 캡높이 48~50px = 한글 43px 대비 약 1.6em */
.gd-shead i{
  font-family:var(--gd-serif);font-style:italic;font-weight:400;
  font-size:1.30em;line-height:.9;letter-spacing:0;color:var(--gd-brown);
}
.gd-shead--big i{font-size:1.6em;line-height:.8}
.gd-shead--why i{font-size:1.44em;line-height:.8}
.gd-shead--why i{display:inline-block;margin-top:.3em}
/* 컬럼 소제목 — 밴드 제목(h2.gd-shead) 아래 «각 칸의 제목»으로 쓰는 자리.
   기본 .gd-shead 를 그대로 쓰면 밴드 제목과 **글자 크기가 같아**(1440 실측 둘 다 32.98px)
   위계가 납작해지고, 바로 뒤 콘텐츠와도 붙는다(face-liposuction §5 실측 gap 0px·1px).
   크기는 30% 줄이고(0.7배) 아래 간격을 준다. 2026-08-20 사용자 요청. */
.gd-shead--sub{
  font-size:clamp(16px,1.6vw,31px);
  margin-bottom:clamp(14px,1.46vw,28px);
}
/* ⚠ **아직 39곳 중 4곳(face-liposuction)에만 붙어 있다.** 일부러 그렇다 —
   나머지 35곳도 걸지 말지는 사용자 결정 대기 중이다(2026-08-20 시점 미결).
   그래서 지금은 face-liposuction 만 다른 페이지와 다르게 보인다. 이걸 «버그»로 보고
   되돌리지 말 것. 결정이 나면 .gd-2col > div > p.gd-shead:first-child 자리에
   일괄로 붙이면 된다(전수 목록은 아래 실측 참고).
   남은 35곳: eye 9 · face-implant 3 · lift-forehead 3 · lift-oneday 3 · lift-t 3 ·
   lift-brow 2 · nose 2 · face-chin/dimple/fat-graft/lift/lift-neck/lift-nefertiti/
   lift-point-botox/mouth-reconstruction/mouth-revision/philtrum-bone 각 1.
   그중 7곳은 아래 요소와 0~9px 로 붙어 있고 mouth-revision §6 은 -26px 로 겹친다. */
.gd-skicker{
  font-size:clamp(14px,1.2vw,23px);font-weight:700;line-height:1.5;
  letter-spacing:0;color:var(--gd-muted);
}
.gd-sec--beige .gd-skicker{color:#3f4a5f}
/* 시안 실측: kicker→제목 2px, 제목→제목 12px (한 규칙으로 묶으면 안 된다) */
.gd-skicker+.gd-shead{margin-top:2px}
.gd-shead+.gd-shead{margin-top:clamp(6px,.63vw,12px)}
.gd-sbody{
  margin-top:clamp(18px,2.19vw,42px);
  font-size:clamp(13.5px,.89vw,17px);line-height:1.42;color:#3d4352;
}
/* §7 은 우측 컬럼이 좁고 글이 많아 시안이 한 단계 작게 썼다(실측 13.5px) */
/* 2026-08-21 사용자 요청으로 «조금» 키웠다 — 전 clamp(12.5px,.7vw,13.5px).
   .7vw 는 뷰포트 **1786px** 이 돼야 하한을 벗어나서, 사실상 모든 화면에서 12.5px 고정이었다.
   그래서 같은 카드 안 제목(.gd-branch strong, 1440 에서 16.6px)과 1.33배까지 벌어졌다.
   상한 14.5 는 .95vw 가 뷰포트 1520(= .gd-wrap 이 멈추는 폭)에서 갖는 값이다 —
   「레이아웃은 멈추는데 글꼴만 커지는」 자리를 새로 만들지 않으려고 거기에 맞췄다.
   실측: 390/768 12.5→13 · 1440 12.5→13.7 · 1920 13.4→14.5px */
.gd-sbody--sm{font-size:clamp(13px,.95vw,14.5px);line-height:1.5}
/* §9 는 제목 바로 아래 본문이라 시안의 제목-본문 간격이 82px 로 넓다 */
.gd-sbody--lead{margin-top:clamp(24px,4.27vw,82px)}
/* §8 리드는 반대로 좁다(시안 36) */
.gd-shead--big+.gd-sbody{margin-top:clamp(10px,.94vw,18px)}
.gd-sbody p+p{margin-top:1.3em}
/* 콜아웃 다음 본문은 시안 간격이 35 로 좁다 */
.gd-callout+.gd-sbody{margin-top:clamp(16px,1.82vw,35px)}
.gd-sbody b,.gd-sbody strong{font-weight:700;color:var(--gd-ink)}
/* 주의사항은 안전 정보다. clamp 의 vw 항이 1920 시안 기준이라 1440 이하에서 바닥값 11px 로
   고정돼 페이지에서 가장 작은 글자였다(2026-08-20 사용자 결정으로 13px 고정 — 1920 값과 같다) */
.gd-snote{margin-top:clamp(28px,4.38vw,84px);font-size:13px;color:var(--gd-muted)}
.gd-center{text-align:center}

.gd-sec--deep{background:var(--gd-deep);color:#fff}
/* 밴드 제목만 «위로» 올려 아래 콘텐츠와 벌린다. 기본은 위 150 / 아래 40 이라
   (--gd-pad 150 vs .gd-duo margin-top 40) 제목이 바로 아래 카드에 붙어 보인다.
   밴드 위 패딩에서 40 을 빼고 그 40 을 제목 아래로 옮기므로 **아래 콘텐츠의 y 는 그대로**다
   (110 + 제목 + 80 = 150 + 제목 + 40). 아래 값이 40 이 아니라 80 인 것은 .gd-duo 의
   margin-top(40)과 인접 마진이 상쇄돼 큰 쪽만 남기 때문이다 — 40 을 주면 아무 변화가 없다.
   2026-08-21 사용자 요청 — 「이 제목은 조금 위로 떨어지게 하고, 가운데 정렬해줘」.
   새 클래스라 이걸 붙이지 않은 나머지 밴드의 픽셀에는 영향이 0이다. */
.gd-sec--headlift{padding-top:clamp(53px,5.73vw,110px)}
.gd-sec--headlift>.gd-wrap>.gd-shead{margin-bottom:clamp(28px,4.17vw,80px)}
/* --- 03. BUTTONS --------------------------------------------------------- */
/* 밝은 배경용 다크 아웃라인 필 — 시안 실측 1px #111, 높이 44 */
.gd-btn--line{border:1.4px solid var(--gd-ink);color:var(--gd-ink)}
.gd-btn--line:hover{background:var(--gd-ink);color:#fff}
.gd-btn--sm{min-height:40px;padding:0 22px;font-size:14px}
/* 공용 .gd-btn 을 건드리므로 서브 페이지 안으로만 스코프한다 */
.gd-subpage .gd-btn svg{width:26px;height:8px;margin-left:12px;overflow:visible;transition:transform .35s var(--gd-ease)}
.gd-subpage .gd-btn svg path{stroke:currentColor;stroke-width:1.2;fill:none}
.gd-subpage .gd-btn:hover svg,.gd-subpage .gd-btn:focus-visible svg{transform:translateX(6px)}
/* 시안 버튼 폭: 골드 136 / 라인 181 → 좌우 패딩 34 */
.gd-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:clamp(20px,2.3vw,44px)}
.gd-subpage .gd-actions .gd-btn{padding:0 clamp(20px,1.67vw,32px)}
/* 시안의 골드 CTA 는 그림자 없는 플랫 필이다 */
.gd-subpage .gd-btn--gold{box-shadow:none}
.gd-subpage .gd-btn--gold:hover{box-shadow:0 6px 18px rgba(30,79,216,.3)}

/* --- 04. LAYOUT — 좌 제목 / 우 콘텐츠 ------------------------------------ */
/* 우측 컬럼 폭은 시안 실측값(콘텐츠폭 대비 %)을 그대로 넣는다.
   퍼센트 트랙은 갭을 빼기 전 컨테이너 폭 기준으로 풀리므로 1fr 쪽이 나머지를 갖는다. */
.gd-2col{
  --rc:54.17%;                              /* §2 780/1440 */
  display:grid;align-items:start;
  column-gap:clamp(24px,3.7vw,72px);row-gap:clamp(26px,3vw,44px);
  grid-template-columns:minmax(0,1fr) minmax(0,var(--rc));
}
.gd-2col--r50{--rc:50%}                     /* §4 720/1440 */
.gd-2col--r42{--rc:41.67%}                  /* §5 600/1440 */
.gd-2col--r47{--rc:47.29%}                  /* §7 681/1440 */
.gd-2col--r56{--rc:55.56%}                  /* §8 800/1440 */
.gd-2col--r57{--rc:56.94%}                  /* §9 820/1440 */
/* §5 는 리스트 밑줄이 컬럼 폭을 그대로 드러내므로 갭까지 시안(40)을 지켜야 한다 */
.gd-2col--g40{column-gap:clamp(16px,2.08vw,40px)}
/* 좌우 반전 — 56장 579개 밴드가 전부 "좌 제목 / 우 콘텐츠" 한 문법이라 어느 페이지를
   열어도 눈이 같은 경로로 내려갔다(반전 밴드 0개, 2026-08-19 실측). 열 순서만 뒤집는다.
   DOM 은 그대로 두므로 단컬럼(≤1024)에서는 17.RESPONSIVE 가 order 를 되돌려 원문 순서로
   읽힌다. 새 셀렉터라 이걸 붙이지 않은 페이지의 픽셀에는 영향이 0이다. */
.gd-2col--flip{grid-template-columns:minmax(0,var(--rc)) minmax(0,1fr)}
.gd-2col--flip>:first-child{order:2}
/* 반전하면 짧은 제목 블록이 오른쪽으로 가는데, .gd-2col 의 align-items:start 때문에
   위로 붙어 **바깥 모서리에 빈 칸이 남는다**(lip-corner §4 실측 448:251 = 아래 197px).
   왼쪽 여백은 여백으로 읽히지만 오른쪽 끝 여백은 덜 끝난 화면으로 읽힌다.
   반전 밴드에서만 세로 가운데로 맞춘다 — 단컬럼에서는 행이 하나씩이라 무효과다. */
.gd-2col--flip{align-items:center}
/* 좌우는 그대로 두고 세로 정렬만 필요한 자리. 위 --flip 이 같은 한 줄을 품고 있지만
   그건 열까지 뒤집는다 — 도해가 좌 컬럼에 있는 밴드에 쓰면 원문 구도가 깨진다.
   **도해가 왼쪽 / 짧은 글이 오른쪽**이라 바깥(오른쪽) 아래가 비는 밴드에만 쓴다.
   실측(1440px): face-implant §7 702:245 / face-liposuction §7 727:291 /
   lift-forehead-reduction §6 869:375 / lift-point-botox §6 714:355 · §7 513:206 /
   lift-nefertiti §6 557:215. 단컬럼(≤1024)에서는 행마다 항목이 하나라 무효과다. */
.gd-2col--vc{align-items:center}

/* 좌우가 «같은 급의 카드 두 장»인 자리(제목-콘텐츠 비대칭이 아니라 형제 두 장).
   .gd-2col 의 기본 문법은 [1fr | rc%] 비대칭이라 --r47 을 걸어도 1440 에서 664:643 으로
   21px 어긋나고, 그 21px 만큼 두 카드의 사진 높이와 **바닥이 갈린다**
   (spa-facial §4 실측 47px · §5 20px — 사용자 지적 2026-08-20).
   두 칸을 정확히 같은 폭으로 만든다. 사진의 가로세로비까지 같아야 바닥이 맞으므로
   에셋 쪽도 같은 비율로 잘라 둔다(tools/make_assets_201.py 참조). */
.gd-2col--even{grid-template-columns:repeat(2,minmax(0,1fr))}

/* 좌우가 «글 두 덩이»이고 줄바꿈이 <br> 로 고정된 자리 — 스킨부스터 제품 밴드
   ([제품 설명 | WHY? 골든디아망], 5장 7밴드). 원문은 [제품 바이알컷 | 글 두 덩이 세로]
   인데 상표 노출 때문에 사진을 못 실어 글만 좌우로 나눠 얹은 자리라, 트랙(627/680)이
   글 폭(385/271)보다 훨씬 넓다. 그래서 1fr:50% 에 얹으면 글이 왼쪽으로 몰리고
   **오른쪽이 335~429px 빈다**(2026-08-21 실측, 사용자 지적).
   트랙을 글 폭에 맞추고 그 묶음을 가운데에 세운다.
   ⚠ 이 규칙을 §2 상담 밴드 같은 «좌 제목 / 우 콘텐츠» 자리에 쓰면 안 된다 —
     좌 컬럼이 성긴 것은 이 디자인의 문법이지 결함이 아니다(전 페이지 공통).
   ⚠ minmax(0,max-content) 라 좁은 화면에서는 트랙이 줄어 넘치지 않는다.
     단컬럼(≤1024)에서는 17.RESPONSIVE 의 .gd-2col 1열 규칙이 파일 뒤라 그대로 이긴다. */
.gd-2col--ctr{
  grid-template-columns:repeat(2,minmax(0,max-content));
  justify-content:center;
  column-gap:clamp(40px,9.7vw,140px);
}

/* 두 칸이 «같은 주제의 좌·우»가 아니라 **서로 다른 내용**일 때 거터 한가운데에 실선을
   긋는다(2026-08-20 사용자 요청 — lift-t §5 는 왼쪽이 KFDA 인증, 오른쪽이 실리프팅
   설명이라 이어지는 글로 오해된다). DOM 은 안 건드린다.
   음수 마진으로 상자를 거터 절반만큼 왼쪽으로 당기고 같은 값을 패딩으로 되밀어
   **글의 x 위치는 그대로 두고** 선만 거터 가운데에 세운다(값은 .gd-2col 의
   column-gap clamp(24,3.7vw,72) 의 절반). 단컬럼에서는 17.RESPONSIVE 가 끈다. */
.gd-2col--rule>:nth-child(2){
  margin-left:calc(-1 * clamp(12px,1.85vw,36px));padding-left:clamp(12px,1.85vw,36px);
  border-left:1px solid var(--gd-cardline);
  /* .gd-2col 이 align-items:start 라, 오른쪽이 더 짧은 밴드에서는 선이 왼쪽 글보다
     먼저 끊겨 덜 그린 것처럼 보인다(lift-brow-endoscopic §5 실측 좌 515 : 우 385 —
     선이 130px 모자랐다). 상자만 늘리는 것이라 글의 위치는 그대로다. */
  align-self:stretch;
}

/* --- 05. HEADER — 서브는 히어로가 흰 배경이라 처음부터 먹색 --------------- */
.gd-header--light{color:var(--gd-ink)}
.gd-header--light .gd-burger,.gd-header--light .gd-brand .gd-logo{color:var(--gd-ink)}
.gd-header--light:not(.is-solid) :focus-visible{outline-color:#1a46c2}

/* --- 05b. LOGO — 시안 실측 --------------------------------------------- */
/* 헤더: 엠블럼 30x30 골드(#2f6fe8) · 간격 13 · 워드마크 270x23 먹 · 태그라인 129x9 #5b6478
   푸터: 엠블럼 30x30 웜크림(#aab4c8) · 간격 13 · 워드마크 217x19 · 태그라인 120x9 #7f8aa0
   → 엠블럼과 간격은 두 곳 모두 30/13 로 같고 워드마크만 크기가 다르다.
      main.css 는 전부를 font-size 에서 파생시키므로 위치별로 em 값을 다시 잡는다.
   ※ 푸터 로고의 웜크림은 pc_메인.png 도 동일하다 → index.html 은 main.css 쪽 수정 필요. */
.gd-subpage .gd-header .gd-logo{gap:.295em}                 /* 44 * .295 = 13 */
.gd-subpage .gd-header .gd-logo-gem{width:.879em;height:.600em;color:#2f6fe8}   /* 44 * .600 = 26.4 */
/* 시안 워드마크는 400 보다 굵다(잉크율 29.3% vs 400 에서 21.0%). 500 이 26.0% 로 가장 가깝고
   -.045em 에서 폭이 시안과 같은 270 이 된다. 700 은 32.6% 로 반대쪽으로 같은 만큼 벗어난다. */
.gd-subpage .gd-logo-nm{font-weight:500}
.gd-subpage .gd-header .gd-logo-nm{letter-spacing:-.045em;text-indent:-.045em}  /* 폭 270 */
.gd-subpage .gd-logo--footer .gd-logo-nm{letter-spacing:-.058em;text-indent:-.058em}  /* 폭 217 */
.gd-subpage .gd-header .gd-logo-sub{color:#5b6478;opacity:1}

.gd-subpage .gd-logo--footer{color:#aab4c8;opacity:1}
.gd-subpage .gd-logo--footer .gd-logo{gap:.361em}
.gd-subpage .gd-logo--footer{gap:.361em}                    /* 36 * .361 = 13 */
.gd-subpage .gd-logo--footer .gd-logo-gem{width:1.074em;height:.733em}          /* 36 * .733 = 26.4 */
/* #7f8aa0 는 시안값이지만 어두운 푸터(#0b1220)에서 대비 3.80:1 로 기준(4.5)에 못 미쳤다.
   같은 계열에서 가장 적게 밝힌 값으로 올린다 — 4.9:1. */
.gd-subpage .gd-logo--footer .gd-logo-sub{color:#8f9ab0;opacity:1;font-size:.271em}

/* --- 06. HERO ------------------------------------------------------------ */
.gd-shero{padding:calc(var(--gd-hdr) + clamp(24px,7.81vw,150px)) 0 clamp(56px,7.8vw,150px)}
.gd-shero-in{
  display:grid;align-items:center;
  column-gap:clamp(20px,3.1vw,60px);
  grid-template-columns:minmax(0,1fr) minmax(0,54.17%);
}
/* 좌측 사진은 뷰포트 왼쪽 끝까지 빠져나간다(시안: x=0 부터, 우측만 라운드) */
.gd-shero-media{
  margin-left:calc(-1 * var(--gd-bleed));
  border-radius:0 var(--gd-r) var(--gd-r) 0;overflow:hidden;background:#e6edf7;
  aspect-ratio:840/551;
}
.gd-shero-media picture{display:block;width:100%;height:100%}
.gd-shero-media img{width:100%;height:100%;object-fit:cover}

.gd-shero-h{
  margin-top:clamp(10px,1.1vw,21px);
  font-size:clamp(28px,3.34vw,64px);font-weight:800;line-height:1.2;
  letter-spacing:-.035em;color:var(--gd-ink);
}

/* 스펙 카드 4 — 시안 186x200, 갭 12, 반경 14, 1px #d7deea */
.gd-spec{
  margin-top:clamp(24px,3.8vw,72px);
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,.63vw,9.6px);
}
/* /154 맥스리프팅만 원문 수술정보가 5칸이다(수술시간·마취방법·실밥제거·회복기간·내원횟수 —
   1b9f85bd63b9c.png 축자). 4칸 그리드에 5개를 넣으면 다섯째가 2행에 1/4 폭으로 홀로 남아
   깨진다. 값을 버릴 수 없어 열 수만 바꾸는 한 줄을 더했다(RESUME 절대규칙 4).
   768px 이하는 아래 미디어쿼리의 .gd-spec 2열 규칙이 뒤에 와서 그대로 이긴다. */
.gd-spec--5{grid-template-columns:repeat(5,minmax(0,1fr))}
.gd-spec>div{
  display:flex;flex-direction:column;
  min-height:clamp(132px,10.4vw,200px);
  padding:clamp(14px,1.25vw,19px);
  background:#fff;border:1px solid var(--gd-cardline);border-radius:var(--gd-r);
}
/* dt 안에 아이콘을 넣고 margin-bottom:auto 로 라벨만 아래로 민다(dl>div 는 dt/dd 만 허용) */
/* --gd-brown(#1e4fd8) 은 흰 4.4999 / 크림 4.21 / 베이지 3.79 로 소형 텍스트 AA(4.5:1) 를
   못 넘는다. -dp 는 5.99 / 5.60 / 5.05. .gd-check-no · .gd-step-no · .gd-numlist b 와 같은
   사유이며 2026-08-19 1차에서 이 셋이 빠져 있었다. 딥네이비 밴드 인스턴스 0이라 안전. */
.gd-spec dt{
  display:flex;flex-direction:column;flex:1;
  font-size:clamp(12px,.89vw,17px);font-weight:700;color:var(--gd-brown-dp);
}
.gd-spec dt svg{
  margin-bottom:auto;
  width:clamp(24px,1.67vw,32px);height:clamp(24px,1.67vw,32px);
  fill:none;stroke:var(--gd-icon-line);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;
}
/* ⚠ 2026-08-21 상한 3개를 낮췄다(gap 12→9.6 · padding 24→19 · dd 23→18.2px).
   .gd-subpage .gd-wrap 은 콘텐츠 1440 에서 멈추므로 **뷰포트 1520 위로는 레이아웃이 안 커진다.**
   그런데 이 셋은 vw 를 계속 따라가서, 1520 위에서는 **칸은 그대로인데 패딩·갭이 커져 글자
   자리는 줄고 글꼴만 커지는 이중 압박**이 걸렸다. 실측(skin-radiesse 히어로 칩):
     vw 1536  dd폭 108px  글꼴 18.4px  → 2줄(정상)
     vw 1600  dd폭 106px  글꼴 19.2px  → 3줄
     vw 1920  dd폭  96px  글꼴 23.0px  → **4줄**
   상한을 vw 1520 시점의 값으로 맞추면 레이아웃이 멈추는 지점에서 글꼴도 같이 멈춘다.
   1520 이하 화면의 렌더는 한 픽셀도 바뀌지 않는다(clamp 중간값 구간이라 vw 식이 그대로 산다). */
/* 원문에서 "(3회 시술 기준)" 같은 단서는 값보다 **작은 글자**다(f7f69ad8ce683.jpg 실측).
   값과 같은 크기로 흘리면 좁은 칸에서 두 줄로 더 접힌다. */
.gd-spec dd small{display:block;margin-top:2px;font-size:clamp(11px,.62em,12px);
  font-weight:500;letter-spacing:-.02em}
/* ⚠ .62em 만 쓰면 dd 하한(15px)이 걸리는 좁은 화면에서 **9.3px** 이 된다(390 실측).
   전 페이지 텍스트 조사에서 이 사이트 최소값이었다 — 하한 11px 을 둔다. */
.gd-spec dd{
  margin:8px 0 0;font-size:clamp(15px,1.2vw,18.2px);font-weight:700;
  letter-spacing:-.035em;line-height:1.2;color:var(--gd-ink);
}

/* --- 07. NUMCARDS — §2 어긋난 흰 카드 4 ---------------------------------- */
/* 시안: 370x200 2열, 갭 41, 우측 열이 +40px 아래로 어긋남 */
.gd-numgrid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(14px,2.13vw,41px);
  /* stretch 로 두면 +40 어긋난 짝수 카드가 행 높이를 키워 홀수 카드까지 늘어난다 */
  align-items:start;
  /* 짝수 카드가 마지막 행 아래로 삐져나온 만큼만 컨테이너에 되돌려 준다 */
  padding-bottom:clamp(14px,2.08vw,40px);
}
/* margin-bottom 으로 상쇄하지 않으면 어긋난 카드가 행 높이를 40 씩 밀어 올린다 */
.gd-numgrid>li:nth-child(even){
  margin-top:clamp(14px,2.08vw,40px);
  margin-bottom:clamp(-40px,-2.08vw,-14px);
}
.gd-numcard{
  min-height:clamp(126px,10.4vw,200px);
  padding:clamp(17px,1.56vw,30px);
  background:#fff;border-radius:var(--gd-r);
  display:flex;flex-direction:column;
}
/* ② 번호만 시안이 산세리프다(⑤·⑨ 는 세리프). 잉크 16x12 → Pretendard 700 17px */
/* --gd-brown(#1e4fd8) 은 흰 4.4999 / 크림 4.21 / 베이지 3.79 로 소형 텍스트 AA(4.5:1) 를
   못 넘는다. -dp 는 5.99 / 5.60 / 5.05. .gd-check-no · .gd-step-no · .gd-numlist b 와 같은
   사유이며 2026-08-19 1차에서 이 셋이 빠져 있었다. 딥네이비 밴드 인스턴스 0이라 안전. */
.gd-numcard b{
  font-family:var(--gd-ff);font-weight:700;
  font-size:clamp(12px,.89vw,17px);letter-spacing:0;color:var(--gd-brown-dp);
}
.gd-numcard p{
  margin-top:clamp(8px,.83vw,16px);
  font-size:clamp(14px,1.25vw,24px);font-weight:700;line-height:1.21;
  letter-spacing:-.035em;color:var(--gd-ink);
}
/* 시안의 ZERO 는 진짜 이탤릭이 아니라 로만을 기울인 오블리크다.
   Playfair 의 이탤릭 Z 는 아래로 뻗는 스와시가 있어 시안과 형태가 다르므로
   로만 + skewX 로 재현한다(이 한 단어에만 적용). */
.gd-zero{
  display:block;width:fit-content;margin-top:2px;
  font-family:var(--gd-serif);font-style:normal;font-weight:700;
  font-size:clamp(25px,2.19vw,42px);line-height:1.15;letter-spacing:.01em;color:var(--gd-brown);
  transform:skewX(-11deg);transform-origin:0 100%;
}

/* --- 08. PRS — §3 원장 밴드 ---------------------------------------------- */
.gd-prs{position:relative;overflow:hidden;padding-block:clamp(72px,8.07vw,155px) clamp(72px,10.16vw,195px)}
/* 시안은 중앙이 살짝 밝은 비네트다(중앙 #101b26 / 가장자리 #070d18) */
.gd-prs::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(51% 51% at 51% 49%,rgba(40,70,120,.44) 0%,rgba(10,17,24,0) 100%);
}
.gd-prs>.gd-wrap{position:relative;z-index:3}
.gd-prs-body{max-width:min(100%,52%)}
.gd-prs-mark{
  font-family:var(--gd-serif);font-weight:400;line-height:1;
  font-size:clamp(30px,3.28vw,63px);letter-spacing:.005em;word-spacing:-.16em;color:#fff;
}
/* 시안의 KOREA·19 는 진짜 이탤릭이 아니라 로만을 기울인 오블리크다
   (Playfair 이탤릭은 K·R 다리가 곡선 스와시라 형태가 다르다) */
.gd-prs-mark i{
  font-style:normal;display:inline-block;color:var(--gd-hero-italic);
  transform:skewX(-11deg);transform-origin:0 100%;
}
/* 위 word-spacing:-.16em 은 두 낱말짜리 「PRS KOREA」에 맞춘 값이다. philtrum-bone(/82)
   §3 은 원문에 PRS 띠가 없고 마크가 「DR. SONG'S KNOW HOW」 4낱말이라 낱말이 다 붙어
   "DR.SONG'SKNOWHOW" 로 읽힌다(캡처 실측). 기존 클래스로는 풀 수 없어 한 줄 추가한다 —
   새 클래스라 이 클래스를 붙이지 않은 기존 페이지 픽셀에는 영향이 없다. */
.gd-prs-mark--long{word-spacing:normal}
.gd-prs-h{
  margin-top:clamp(36px,4.79vw,92px);
  font-size:clamp(21px,2.29vw,44px);font-weight:700;line-height:1.45;
  letter-spacing:-.025em;color:#fff;
}
/* 시안의 19 는 라이닝 숫자 + 오블리크다(Playfair 이탤릭은 올드스타일이라 9 에 꼬리가 생긴다) */
.gd-prs-h i{
  font-family:var(--gd-serif);font-style:normal;font-weight:700;
  font-variant-numeric:lining-nums;font-size:1.45em;line-height:.8;letter-spacing:0;
  display:inline-block;position:relative;top:7px;margin-left:-4px;
  transform:skewX(-14deg);transform-origin:0 100%;color:var(--gd-hero-italic);
}
.gd-prs-cap{margin-top:clamp(12px,1.35vw,26px);font-size:clamp(11px,.78vw,15px);letter-spacing:.02em;color:#98a2b8}
.gd-prs-lead{margin-top:clamp(4px,.42vw,8px);font-size:clamp(14px,1.25vw,24px);letter-spacing:-.035em;color:#a3adc2}
/* 위 margin-top:8px 은 바로 위에 .gd-prs-h(또는 .gd-prs-cap)가 있는 판을 전제로 한 값이다.
   nose-alar-lift(/100) §3 은 원문에 제목 띠가 없어 마크 바로 밑이 리드라 8px 로는 붙어버린다.
   기존 클래스로는 못 푼다 — .gd-sbody--lead 는 66행이라 262행의 이 규칙에 지고,
   .gd-prs-cred 는 display:grid 라 문단에 못 쓴다. 그래서 한 줄 추가한다.
   이 인접 조합(.gd-prs-mark 다음이 곧바로 .gd-prs-lead)은 프로젝트 전체에서
   /100 한 자리뿐이라(정규식 전수 확인 — 나머지 24장은 모두 mark→.gd-prs-h)
   기존 페이지 픽셀에는 영향이 없다. */
.gd-prs-mark+.gd-prs-lead{margin-top:clamp(18px,1.88vw,36px)}

/* 다크 밴드 위 경력 리스트 — 1_1 에는 이 요소가 없다(원문에 경력 항목이 없음).
   인중축소술 원문 20.jpg 의 4줄을 담기 위해 추가했다.
   본문급 정보라 cap/lead 보다 밝게 쓴다(#c3cbdb on #070d18 = 11.0:1). */
.gd-prs-cred{margin-top:clamp(20px,2.4vw,46px);display:grid;gap:clamp(6px,.63vw,12px)}
.gd-prs-cred li{
  position:relative;padding-left:clamp(14px,1.15vw,22px);
  font-size:clamp(12.5px,.89vw,17px);line-height:1.5;letter-spacing:-.01em;color:#c3cbdb;
}
.gd-prs-cred li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:clamp(5px,.42vw,8px);height:1px;background:var(--gd-hero-italic);
}

/* 원문 분량이 적어 밴드가 짧은 페이지용. 기본값은 1_1 §3 분량(마크+제목+캡션+
   리드+사진 2장)을 전제로 인물을 650px 까지 키우는데, 본문이 3줄뿐이면 밴드가
   인물보다 낮아져 얼굴이 상단에서 잘린다. 밴드 최소 높이와 인물을 함께 줄인다. */
@media (min-width:1025px){
  .gd-prs--compact{min-height:clamp(420px,39vw,566px)}
  .gd-prs--compact .gd-prs-media{width:clamp(260px,26vw,430px)}
}

.gd-figrow{margin-top:clamp(26px,3.9vw,75px);display:flex;gap:clamp(10px,1.1vw,21px)}
.gd-figrow figure{
  margin:0;flex:0 0 clamp(140px,13.96vw,268px);
  aspect-ratio:268/170;border-radius:var(--gd-r);overflow:hidden;background:#1a1f28;
}
/* 이 줄은 사진 2~3장을 전제로 폭이 잠겨 있다. 한 장뿐인 페이지에서는
   201px 자투리로 읽혀 같은 밴드 원장컷(488px)과 위상이 안 맞는다 */
.gd-figrow>figure:only-child{flex:0 0 clamp(200px,22vw,420px)}
.gd-figrow picture{display:block;width:100%;height:100%}
.gd-figrow img{width:100%;height:100%;object-fit:cover}

/* 우측 인물 — 콘텐츠 우측선에 맞춰 바닥에 붙이고 섹션 밖은 잘린다 */
.gd-prs-media{
  position:absolute;right:var(--gd-bleed);bottom:calc(-1 * clamp(0px,.63vw,12px));z-index:2;margin:0;
  width:clamp(300px,33.9vw,650px);aspect-ratio:620/809;
}
/* 에셋 계조가 시안보다 눌려 있어 임시 보정한다(근본 해결은 원본 재추출) */
.gd-prs-media img{width:100%;height:100%;object-fit:cover;object-position:50% 6%;filter:brightness(1.28) contrast(1.08)}
/* 누끼가 아니라 어두운 배경의 사각 사진이라 상자의 네 변이 드러난다.
   섹션 색으로 덧칠하면 비네트가 깔린 주변보다 오히려 어두워져 상자가 더 보인다.
   → 마스크로 가장자리를 투명하게 깎아 섹션(비네트 포함)이 그대로 비치게 한다.
   인물은 원본 기준 좌우 10% 안쪽에 있어 잘리지 않는다. */
.gd-prs-media{
  -webkit-mask-image:
    linear-gradient(90deg,transparent 0,#000 10%,#000 91%,transparent 100%),
    linear-gradient(180deg,transparent 0,#000 9%);
  -webkit-mask-composite:source-in;
          mask-image:
    linear-gradient(90deg,transparent 0,#000 10%,#000 91%,transparent 100%),
    linear-gradient(180deg,transparent 0,#000 9%);
          mask-composite:intersect;
}

/* --- 09. CHECKS — §4 알약 카드 3 ----------------------------------------- */
/* 시안: 카드 묶음이 좌측 kicker 보다 36px 아래에서 시작한다 */
.gd-checks{margin-top:clamp(0px,1.88vw,36px);display:flex;flex-direction:column;gap:clamp(10px,1.04vw,20px)}
.gd-check{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:clamp(14px,1.56vw,30px);
  /* 시안은 위쪽 정렬이다(가운데 정렬이면 짧은 카드의 글이 7px 내려간다) */
  align-content:start;align-items:start;
  /* 2026-08-20 에 clamp(108px,9.58vw,184px) 에서 내렸다. 그 값은 [제목 + 부제] 두 줄짜리
     카드를 기준으로 잡은 것이라, 짧은 카드에서는 상자가 글보다 훨씬 커진다 —
     1920 실측: 한 줄 제목 카드가 96px 을 쓰는데 상자는 184px 로 절반이 빈다.
     사용자가 세 페이지(/45 /46 /143)에서 같은 걸 지적했다. 이제는 «너무 납작해지지만
     않게 막는 바닥»이고 높이는 글이 정한다. */
  min-height:clamp(72px,5.2vw,100px);
  padding:clamp(18px,1.61vw,31px) clamp(24px,3.13vw,60px) clamp(17px,1.51vw,29px);
  background:#fff;border-radius:999px;
}
/* 흰 글자를 얹는 브라운은 --gd-brown(#1e4fd8) 이 4.4999:1 로 AA(4.5:1) 를 못 넘는다.
   --gd-brown-dp(#173fae) = 5.99:1. .gd-branch em · .gd-compare>li.is-me 와 같은 사유. */
.gd-check-no{
  display:inline-flex;align-items:center;justify-content:center;
  width:clamp(76px,5.21vw,100px);min-height:clamp(24px,1.82vw,35px);padding:0;
  border-radius:999px;background:var(--gd-brown-dp);color:#fff;
  font-size:clamp(11px,.81vw,15.5px);font-weight:700;letter-spacing:0;white-space:nowrap;
}
.gd-check-t{font-size:clamp(14px,1.25vw,24px);font-weight:700;line-height:1.5;letter-spacing:-.035em;color:var(--gd-ink)}
.gd-check-s{margin-top:clamp(6px,.63vw,12px);font-size:clamp(11px,.68vw,13px);line-height:1.55;color:#707070}

/* 제목의 줄바꿈은 **원문 글상자 폭**에 맞춰 끊긴 것이라, 우리 판의 알약(글칸 약 490px)
   에서는 글이 왼쪽에 몰리고 오른쪽이 통째로 빈다 — 전수 실측(1440): 제목에 <br> 가 있는
   131칸 중 **101칸이 글칸의 55% 미만**만 쓴다(최저 24%). 대부분은 <br> 를 풀면 한 줄에
   들어간다. 낱말은 그대로다(.gd-sbody br 감춤 · .gd-checks--wide 와 같은 처리).
   ⚠ 이 규칙이 켜져 있으므로 **<br> 뒤에는 공백이 한 칸 있어야 한다** — 없으면
      「성형외과전문의로」처럼 낱말이 붙는다. 전 페이지에 넣어 뒀다(2026-08-20).
   ⚠ **목표 디자인 lip-corner 에도 그대로 건다**(제목 5곳). 사용자가 전후를 보고
      「그대로 둬」로 확정했다(2026-08-20). 기준 페이지만 예외로 빼면 나머지 61장과
      다르게 생겨서 «기준» 노릇을 못 한다 — 되돌리지 말 것.
      verify.py 의 회귀 기준선(.verify/baseline-lip-corner.png)은 이 결정 뒤에 다시 떴다. */
.gd-check-t br{display:none}

/* 단독으로 쓰인 가운데정렬 .gd-check-t 만 예외 — 위 규칙은 «알약 안 좁은 칸» 을 위한
   것이라, 밴드 폭(627px)에 홀로 놓인 문단에서는 줄이 통째로 꽉 차 **가운데 정렬이
   보이지 않는다**(nose-nostril §5 실측: 2줄 다 627px 를 다 씀). 바로 위 .gd-sbody 는
   <br> 가 살아 있어 경사로 떨어지는데 이 문단만 네모난 덩어리로 보였다.
   원문 끊는 자리 5곳 중 2곳만 살려 3줄로 만든다 — 새 끊는 자리는 없다(461/427/230px).
   2026-08-21 사용자 요청 「문구를 가운데 정렬하고, 경사 텍스트로」. */
.gd-check-t--taper br{display:inline}

/* 전폭(.gd-2col 밖) .gd-checks — 좁은 컬럼(약 490px)용으로 만든 [배지 | 세로글] 배치를
   1360px 밴드에 그대로 쓰면 1171px 글칸에 글이 136px 만 든다(lift-point-botox §8 실측
   12%. 같은 처지 11장). 제목과 설명을 가로로 갈라 상자 폭을 실제로 쓴다. */
/* 가로로 펴면 한 줄뿐이라 세로로 남는다 — .gd-check 의 align-content:start 를 되돌려
   min-height 안에서 가운데에 앉힌다(안 그러면 글이 알약 위쪽에 붙고 아래가 통째로 빈다) */
.gd-checks--wide .gd-check{align-items:center;align-content:center}
.gd-checks--wide .gd-check>div{
  display:grid;grid-template-columns:minmax(0,20%) minmax(0,1fr);
  gap:clamp(16px,2.08vw,40px);align-items:center;
}
/* 좁은 컬럼에서는 제목 밑에 붙는 잔글씨(13px)지만, 전폭에서는 제목과 **나란히** 놓여
   같은 무게로 읽힌다. 그 자리에서 13px 은 각주처럼 보인다 — 한 단계만 올린다. */
.gd-checks--wide .gd-check-s{margin-top:0;font-size:clamp(12.5px,.83vw,16px)}
/* 원문 줄바꿈은 **원문 글상자 폭**에 맞춰 끊긴 것이라 폭이 다른 전폭 자리에서는 다시
   흘린다. 낱말은 그대로다(sub.css 17 의 .gd-sbody br 감춤 · lip-removal §7 과 같은 처리).
   ⚠ 이 규칙을 켠 페이지는 <br> 뒤에 공백을 한 칸씩 넣어야 한다 — 없으면 감췄을 때
      「밴드에직접」처럼 낱말이 붙는다. */
.gd-checks--wide .gd-check-s br{display:none}

/* --- 10. NUMLIST — §5 번호 리스트 ---------------------------------------- */
/* 시안: 최상단 선만 #111, 행 사이는 #cdcdcd */
.gd-numlist{margin-top:clamp(26px,4.22vw,81px);border-top:1px solid var(--gd-ink)}
.gd-numlist li{
  display:grid;grid-template-columns:clamp(30px,2.4vw,46px) minmax(0,1fr);
  gap:clamp(6px,.63vw,12px);align-items:baseline;
  padding:clamp(10px,1.15vw,22px) 0;
  border-bottom:1px solid var(--gd-hair);
}
/* 서수는 1440px 에서 19.4px/400 이라 large-text 판정이 안 된다 — --gd-brown 은
   흰 4.50 / 크림 4.21 / 베이지 3.79 로 셋 다 미달. -dp 는 5.99 / 5.60 / 5.05.
   쌍둥이 .gd-scarlist b 는 이미 -dp 로 옮겨져 있었고 여기만 남아 있었다.
   .gd-numlist 인스턴스 배경 전수 = 흰 35 / 크림 17 / 베이지 17, 딥네이비 0 → 안전. */
.gd-numlist b{
  font-family:var(--gd-serif);font-weight:400;
  font-size:clamp(15px,1.35vw,26px);line-height:1.38;color:var(--gd-brown-dp);font-variant-numeric:tabular-nums;
}
.gd-numlist span{font-size:clamp(13.5px,1.25vw,24px);font-weight:700;line-height:1.5;letter-spacing:-.035em;color:var(--gd-ink)}

.gd-figbox{margin:0;border-radius:var(--gd-r);overflow:hidden;background:#e9eef6}
.gd-figbox picture{display:block;width:100%;height:100%}
.gd-figbox img{width:100%;height:100%;object-fit:cover}
.gd-figbox--portrait{aspect-ratio:600/739}
/* 정사각 원본을 그대로 흘리면 좁은 컬럼에서 밴드를 혼자 다 먹는다 */
.gd-figbox--wide{aspect-ratio:4/3}

/* --- 11. DUO — §6 엇갈린 카드 2 ------------------------------------------ */
.gd-duo{
  margin-top:clamp(18px,2.08vw,40px);
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2.13vw,41px);
}
/* CASE 01 은 720x537(1.34:1) 한 장, CASE 02 는 두 컷이 붙은 1457x537(2.71:1) 이라
   등폭 2열에서 높이가 496:245 로 벌어져 오른쪽 아래가 190px 빈다. 폭 비율만 40:60 으로 */
.gd-duo--ba{grid-template-columns:minmax(0,40%) minmax(0,1fr);align-items:end}
/* 한 행이 [도해 | 글] 일 때만. 원 도해가 행 높이를 잡고(1440 실측 412px) 글은 224~263px
   이라 기본 stretch 로는 글이 위에 붙어 원 중심과 94px 어긋난다(lip-removal §7).
   .gd-2col--vc 와 같은 취지 — 열 순서는 그대로 두고 세로 정렬만 가운데로. */
.gd-duo--vc{align-items:center}
.gd-duo>figure{margin:0}
.gd-duo>figure:nth-child(2){margin-top:clamp(20px,4.17vw,80px)}
.gd-duo-media{
  display:grid;place-items:center;
  border-radius:var(--gd-r);overflow:hidden;background:#fff;
  aspect-ratio:700/497;padding:clamp(20px,5vw,96px);
}
.gd-duo-media picture{display:grid;place-items:center;width:100%;height:100%;min-height:0}
/* 원본보다 크게 늘리지 않는다 — 315x314 도해가 594x598 로 부풀어 상자(700/497) 밖으로
   161px 넘쳐 overflow:hidden 에 잘렸다(skin-juvelook §5 아래쪽 화살표가 통째로 날아갔다) */
.gd-duo-media img{width:auto;height:auto;max-width:100%;max-height:100%}
.gd-duo>figure:nth-child(2) .gd-duo-media{padding:clamp(14px,2.45vw,47px)}
.gd-duo figcaption{
  margin-top:clamp(11px,1.09vw,21px);text-align:center;
  font-size:clamp(13px,1.04vw,20px);font-weight:500;line-height:1.5;color:var(--gd-ink);
}

/* --- 12. STEPS — §7 수술방법 --------------------------------------------- */
.gd-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2.13vw,41px)}
/* STEP 이 4개인 페이지(lift-brow-endoscopic §7)용. 3열에 4장을 넣으면 둘째 줄에
   한 장만 남아 오른쪽 2/3 가 빈다. 아래 모바일 규칙(.gd-steps 1열)이 파일 뒤라
   같은 명시도로 이겨 모바일은 그대로 1열로 접힌다. */
.gd-steps--4{grid-template-columns:repeat(4,minmax(0,1fr))}
/* 한 줄에 나란한 칸들이 «서로 다른 항목»일 때 칸 사이에 세로선을 긋는다.
   갭(1440 실측 30.7px)만으로는 어디까지가 한 칸인지 안 끊겨 네 항목이 한 문단처럼
   읽힌다(spa §4·§5 「기대 효과」 — 사용자 지적 2026-08-20).
   음수 마진으로 갭 절반만큼 당기고 같은 값을 패딩으로 되밀어 **글 위치는 그대로 두고**
   선만 거터 한가운데에 세운다(.gd-2col--rule 과 같은 수법. 값은 .gd-steps 의
   gap clamp(12,2.13vw,41) 의 절반). 단컬럼(≤480)에서는 17.RESPONSIVE 가 끈다. */
.gd-steps--div>*+*{
  margin-left:calc(-1 * clamp(6px,1.07vw,20.5px));
  padding-left:clamp(6px,1.07vw,20.5px);
  border-left:1px solid var(--gd-cardline);
}
/* 카드가 5개인 페이지(spa §2 케어 효과)용. 3열에 5장을 넣으면 둘째 줄에 2장만 남아
   오른쪽 1/3 이 빈다. 값을 버릴 수 없어 열 수만 바꾸는 한 줄을 더했다
   (RESUME 절대규칙 4 — .gd-spec--5 와 같은 사유). 480px 이하는 아래 모바일 규칙
   (.gd-steps 1열)이 파일 뒤라 같은 명시도로 이겨 그대로 1열로 접힌다. */
.gd-steps--5{grid-template-columns:repeat(5,minmax(0,1fr))}
/* 카드가 4장이되 2열 안(2col 의 한쪽 열)에 들어가는 경우(lift-brow-endoscopic §5)용.
   3열로 두면 좁은 열 안에서 3+1 로 끊겨 원문의 2×2 배치와도 어긋난다. */
.gd-steps--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.gd-step{margin:0;display:flex;flex-direction:column;align-items:center}
/* 흰 글자를 얹는 브라운은 --gd-brown(#1e4fd8) 이 4.4999:1 로 AA(4.5:1) 를 못 넘는다.
   --gd-brown-dp(#173fae) = 5.99:1. .gd-branch em · .gd-compare>li.is-me 와 같은 사유. */
.gd-step-no{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:clamp(22px,1.56vw,30px);padding:0 clamp(10px,.83vw,16px);
  border-radius:999px;background:var(--gd-brown-dp);color:#fff;
  font-size:clamp(10px,.68vw,13px);font-weight:700;letter-spacing:.08em;white-space:nowrap;
}
.gd-step-media{
  position:relative;width:100%;margin-top:clamp(6px,.47vw,9px);
  aspect-ratio:200/159;border-radius:var(--gd-r);background:#e9eef6;
}
.gd-step-media picture{display:block;width:100%;height:100%;border-radius:inherit;overflow:hidden}
.gd-step-media img{width:100%;height:100%;object-fit:cover}
/* .gd-step 은 flex 컬럼이라 자식에 min-height:auto 가 걸리고, 그 자동 최소 크기가 안쪽
   <img> 고유비를 전이시켜 aspect-ratio:200/159 를 밀어낸다. 사진이 그보다 세로로 길면
   카드 높이가 제각각이 된다(spa §3 371/344/372px). 붙인 자리만 잠그는 옵트인이다 */
.gd-steps--fit .gd-step-media{min-height:0}
/* 카드 사이를 잇는 점선 — 이미지 세로 중앙 */
.gd-step+.gd-step .gd-step-media::before{
  /* dashed 는 브라우저가 패턴을 정하므로 시안(6px 대시 / 4px 간격, #2f6fe8)을 직접 그린다 */
  content:"";position:absolute;top:50%;right:100%;height:1px;
  width:clamp(12px,2.13vw,41px);
  background-image:linear-gradient(90deg,#2f6fe8 0 6px,transparent 6px 10px);
  background-size:10px 1px;background-repeat:repeat-x;
}
/* 4열 그리드가 **두 줄 이상**인 자리(about §5 Signature 8장)용. 위 커넥터는
   .gd-step+.gd-step 이라 둘째 줄 첫 카드에도 붙는데, 그 자리는 왼쪽이 거터라
   아무것도 잇지 않는 선 한 토막이 뜬다(1440 캡처 실측 x9..40). 줄이 바뀌는
   자리에서만 지운다 — 값을 버리지 않고 열 수만 바꾸는 .gd-steps--4 / --5 와 같은
   사유의 한 줄이다(RESUME 절대규칙 4).
   .gd-steps--4 를 쓰는 다른 페이지(lift-brow-endoscopic §7)는 카드가 4장뿐이라
   4n+1 이 첫 카드 하나이고 그 카드엔 애초에 ::before 가 없다 → 기존 픽셀 영향 0. */
.gd-steps--4 .gd-step:nth-child(4n+1) .gd-step-media::before{content:none}

/* 크림 밴드 위에서는 딥네이비 알약이 버튼 줄로 읽히고 페이지의 두 번째 어두운 매스가 된다.
   원문이 탄색 원인 자리용 밝은 변형 */
.gd-callout--light{background:var(--gd-cream);color:var(--gd-brown-dp);
  border:1px solid var(--gd-brown);box-shadow:none}
.gd-callout{
  margin-top:clamp(14px,1.15vw,22px);
  padding:clamp(11px,.78vw,15px) clamp(20px,2.08vw,40px);
  background:var(--gd-deep);color:#fff;border-radius:var(--gd-r);
  font-size:clamp(14px,1.25vw,24px);font-weight:700;line-height:1.42;letter-spacing:-.035em;
}
/* .gd-skicker 는 margin 이 0 이라 콜아웃 알약 바로 뒤에 오면 10px 만 띄고 붙어
   콜아웃의 일부처럼 읽힌다(mouth-reconstruction §5 에서 실측). 콜아웃은 한 덩어리를
   맺는 요소라 다음 덩어리와는 떨어져야 한다. 이 인접 조합은 프로젝트 전체에서
   그 한 자리뿐이라(정규식 전수 확인) 다른 페이지 픽셀에는 영향이 없다. */
.gd-callout+.gd-skicker{margin-top:clamp(20px,2.08vw,40px)}

.gd-notes{
  margin-top:clamp(18px,1.67vw,32px);padding-top:clamp(12px,.94vw,18px);
  border-top:1px solid var(--gd-ink);
  display:grid;grid-template-columns:clamp(70px,7.3vw,140px) minmax(0,1fr);gap:clamp(10px,1.5vw,28px);
}
/* --gd-brown(#1e4fd8) 은 흰 4.4999 / 크림 4.21 / 베이지 3.79 로 소형 텍스트 AA(4.5:1) 를
   못 넘는다. -dp 는 5.99 / 5.60 / 5.05. .gd-check-no · .gd-step-no · .gd-numlist b 와 같은
   사유이며 2026-08-19 1차에서 이 셋이 빠져 있었다. 딥네이비 밴드 인스턴스 0이라 안전. */
.gd-notes-t{
  font-family:var(--gd-serif);font-style:italic;font-weight:400;
  font-size:clamp(15px,1.15vw,22px);line-height:1.2;color:var(--gd-brown-dp);
}
.gd-notes dl{display:grid;grid-template-columns:clamp(64px,4.7vw,90px) minmax(0,1fr);gap:clamp(3px,.21vw,4px) clamp(14px,2vw,38px)}
.gd-notes dt{font-size:clamp(12px,.89vw,17px);font-weight:700;color:var(--gd-ink)}
.gd-notes dd{margin:0;font-size:clamp(12px,.89vw,17px);color:#3d4352;font-variant-numeric:tabular-nums}

/* --- 13. BA — §8 전후 캐러셀 --------------------------------------------- */
/* 시안은 캐러셀이 좌측 컬럼보다 12px 위에서 시작한다 */
.gd-ba{margin-top:calc(-1 * clamp(0px,.63vw,12px));margin-right:calc(-1 * var(--gd-bleed));min-width:0}
.gd-ba-track{
  display:flex;gap:clamp(14px,2.13vw,41px);
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding-right:var(--gd-bleed);
  scrollbar-width:none;-ms-overflow-style:none;
}
.gd-ba-track::-webkit-scrollbar{display:none}
.gd-ba-track.is-drag{scroll-behavior:auto;cursor:grabbing}
.gd-ba-item{
  flex:0 0 calc(var(--gd-content) * .5556);scroll-snap-align:start;
  border-radius:var(--gd-r);overflow:hidden;background:#e9eef6;aspect-ratio:800/450;
}
.gd-ba-item picture{display:block;width:100%;height:100%}
.gd-ba-item img{width:100%;height:100%;object-fit:cover}

/* 시안에는 컨트롤이 없지만 19장 스트립을 키보드/스크린리더로 넘길 수단이 필요하다.
   시안에서 비어 있는 좌측 컬럼 아래에 두어 구도는 건드리지 않는다. */
.gd-ba-nav{display:flex;align-items:center;gap:14px;margin-top:clamp(18px,2.2vw,42px)}
.gd-no-js .gd-ba-nav{display:none}
.gd-ba-nav button{
  width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  border:1.4px solid var(--gd-ink);color:var(--gd-ink);
  transition:background .25s,color .25s,opacity .25s;
}
.gd-ba-nav button:hover:not([aria-disabled="true"]){background:var(--gd-ink);color:#fff}
.gd-ba-nav button[aria-disabled="true"]{opacity:.32;cursor:default}
.gd-ba-nav svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.gd-ba-count{font-size:14px;font-weight:700;color:var(--gd-ink);font-variant-numeric:tabular-nums}

/* --- 14. CHAIN — §8 결론 카드 4 ------------------------------------------ */
.gd-chain{
  margin-top:clamp(16px,1.77vw,34px);
  display:grid;grid-template-columns:repeat(3,minmax(0,272fr)) minmax(0,564fr);
  gap:clamp(10px,1.09vw,21px);
}
.gd-chain li{
  position:relative;display:flex;align-items:center;
  min-height:clamp(84px,6.88vw,132px);
  padding:clamp(14px,1.35vw,26px) clamp(14px,1.56vw,30px);
  background:#fff;border-radius:var(--gd-r);
}
.gd-chain li:last-child{border:2px solid var(--gd-brown)}
/* 체인 카드는 흰 면으로 경계를 만든다 — 크림·베이지 밴드에서는 그것으로 충분하다(7장).
   흰 밴드에 놓인 인스턴스(philtrum-bone §7 한 곳)만 앞 3칸이 배경에 녹아 테두리 있는
   마지막 칸만 카드로 보인다. 그 자리에만 히어로 스펙 카드와 같은 1px 선을 준다. */
.gd-chain--line li:not(:last-child){border:1px solid var(--gd-cardline)}
.gd-chain p{font-size:clamp(13px,1.2vw,23px);line-height:1.5;letter-spacing:-.03em;color:var(--gd-ink)}
.gd-chain li:last-child p{font-weight:700}
.gd-chain p em{font-style:normal;font-weight:400;color:var(--gd-muted)}
.gd-chain-op{
  /* 카드 우측선이 아니라 카드 사이 거터 한가운데에 놓는다 */
  position:absolute;top:50%;right:calc(-.5 * clamp(10px,1.09vw,21px));
  transform:translate(50%,-50%);z-index:1;
  width:clamp(28px,2.29vw,44px);height:clamp(28px,2.29vw,44px);border-radius:50%;
  display:grid;place-items:center;background:#d6e2fb;
  color:var(--gd-brown-dp);font-size:clamp(13px,1.04vw,20px);line-height:1;
}

/* --- 15. SCAR — §9 흉터관리 ---------------------------------------------- */
.gd-scar-media{margin:0;border-radius:var(--gd-r);overflow:hidden;background:#e9eef6;aspect-ratio:820/414}
.gd-scar-media picture{display:block;width:100%;height:100%}
.gd-scar-media img{width:100%;height:100%;object-fit:cover}
.gd-scarlist{
  margin-top:clamp(12px,1.2vw,23px);
  padding:clamp(11px,.89vw,17px) clamp(18px,2.08vw,40px);
  border:2px solid #2f6fe8;   /* 시안 실측 */border-radius:var(--gd-r);
}
.gd-scarlist li{
  display:grid;grid-template-columns:clamp(24px,1.66vw,32px) minmax(0,1fr);
  gap:clamp(6px,.52vw,10px);align-items:baseline;
  padding:clamp(3.5px,.234vw,4.5px) 0;
}
/* 소형 라벨은 --gd-brown(#1e4fd8) 이 크림 위 4.21:1 로 미달이라 한 단계 어둡게 쓴다.
   24px 이상 이탤릭 디스플레이(PRS / WHY? / POINT 등)는 --gd-brown 그대로. */
.gd-scarlist b{
  font-family:var(--gd-serif);font-weight:400;font-size:clamp(12px,.89vw,17px);line-height:1.5;
  color:var(--gd-brown-dp);font-variant-numeric:tabular-nums;
}
.gd-scarlist span{font-size:clamp(13px,.89vw,17px);font-weight:700;line-height:1.6;letter-spacing:-.03em;color:var(--gd-ink)}

/* --- 16. DRAWER ---------------------------------------------------------- */
.rb-acc-list a[aria-current="page"],.rb-acc-sub a[aria-current="page"]{color:var(--gd-brown-dp);font-weight:700}
/* 접힌 아코디언 패널(max-height:0 + overflow:hidden)은 높이만 0 일 뿐 안의 링크가
   계속 포커스를 받아 ≤1024px 에서 보이지 않는 탭 스톱 120개가 생긴다.
   visibility 로 실제 비활성화한다.
   ⚠ visibility:visible 은 숨겨진 조상을 이긴다. 드로어가 닫혀 있을 때(.rb-drawer 가
      visibility:hidden) 패널에 visible 을 주면 패널만 되살아나 z-index:180 짜리
      투명 레이어가 되어 페이지 전체의 클릭을 가로챈다. 열린 상태로만 한정할 것. */
.gd-subpage .rb-acc-panel{visibility:hidden;transition:max-height .38s var(--gd-ease),visibility 0s .38s}
.gd-subpage.rb-drawer-open .rb-acc[aria-expanded="true"]+.rb-acc-panel{
  visibility:visible;transition:max-height .38s var(--gd-ease),visibility 0s 0s;
}
@media (min-width:1025px){
  .gd-subpage.rb-drawer-open .rb-acc-panel{visibility:visible}
}

/* --- 17. RESPONSIVE ------------------------------------------------------ */
@media (max-width:1024px){
  .gd-2col,.gd-shero-in{grid-template-columns:minmax(0,1fr);row-gap:clamp(24px,4vw,40px)}
  /* 반전은 2열일 때만이다. 단컬럼에 order 가 남으면 제목이 본문 뒤로 밀린다 */
  .gd-2col--flip>:first-child{order:0}
  /* 단컬럼에서 세로 경계선은 «두 칸 사이»가 아니라 아래 칸 왼쪽에 붙은 줄이 된다 */
  .gd-2col--rule>:nth-child(2){margin-left:0;padding-left:0;border-left:0}
  .gd-shero{padding-top:calc(var(--gd-hdr) + clamp(18px,3vw,34px))}
  /* 모바일도 시안처럼 왼쪽 끝에 붙이되 오른쪽 거터까지만 온다 */
  .gd-shero-media{margin-right:calc(-1 * var(--gd-gut));border-radius:0;aspect-ratio:840/620}

  .gd-prs-body{max-width:none}
  /* 인물을 흐름 안으로 되돌린다 — 절대배치를 두면 본문과 겹친다 */
  .gd-prs-media{
    position:static;width:min(100%,420px);margin:clamp(24px,4vw,40px) auto 0;aspect-ratio:620/700;
    -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 9%);
    -webkit-mask-composite:source-over;
            mask-image:linear-gradient(180deg,transparent 0,#000 9%);
            mask-composite:add;
  }
  .gd-prs::before{background:radial-gradient(120% 60% at 50% 40%,rgba(40,70,120,.34) 0%,rgba(10,17,24,0) 68%)}

  /* 1열이 되면 어긋남 자체가 없어지므로 상쇄용 음수 마진과 보정 패딩도 되돌려야 한다 */
  .gd-numgrid{padding-bottom:0}
  .gd-numgrid>li:nth-child(even){margin-top:0;margin-bottom:0}
  .gd-figbox--portrait{aspect-ratio:16/11}
  .gd-duo>figure:nth-child(2){margin-top:0}
  .gd-ba{margin-right:calc(-1 * var(--gd-gut))}
  .gd-ba-track{padding-right:var(--gd-gut)}
  .gd-ba-item{flex:0 0 min(680px,82vw)}
  .gd-chain{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2.6vw,24px)}
  .gd-chain li:last-child{grid-column:1/-1}
}

@media (max-width:768px){
  /* 본문의 <br> 은 시안 1920 기준으로 잡은 줄바꿈이라 좁은 폭에서는 누더기가 된다 */
  .gd-sbody br,.gd-check-t--taper br{display:none}
  .gd-spec{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  /* 칩이 5개인 페이지는 2열에서 마지막 한 칸만 왼쪽에 남는다 → 그 칸만 전폭으로 */
  .gd-spec--5>div:nth-child(5):last-child{grid-column:1/-1}
  .gd-spec>div{min-height:0;padding:16px}
  .gd-spec dt{gap:14px}
  .gd-numgrid{grid-template-columns:minmax(0,1fr);gap:12px}
  .gd-checks{gap:12px}
  /* 알약형은 좁은 폭에서 글이 라운드에 물린다 → 모서리를 줄이고 배지를 위로 */
  .gd-check{grid-template-columns:minmax(0,1fr);gap:12px;border-radius:22px;padding:22px 24px;min-height:0}
  .gd-check-no{justify-self:start}
  /* 전폭 배치의 [제목 | 설명] 2열도 여기서는 펼 자리가 없다. 세로로 되돌린다.
     <br> 은 계속 감춘 채로 둔다 — 좁은 폭에서는 어차피 .gd-sbody br 과 같은 이유로
     원문 줄바꿈이 누더기가 된다 */
  .gd-checks--wide .gd-check>div{grid-template-columns:minmax(0,1fr);gap:8px}
  .gd-checks--wide .gd-check-s{margin-top:0}
  .gd-figrow{gap:10px}
  .gd-figrow figure{flex:1 1 0}
  .gd-duo{grid-template-columns:minmax(0,1fr);gap:22px}
  /* 두 컷을 나란히 놓고 각도 차를 읽히는 밴드는 1열로 풀면 비교가 성립하지 않는다
     (앞 장이 기억에 안 남는다). 그 자리만 2열로 잠근다 */
  .gd-duo--keep2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .gd-steps{gap:10px}
  .gd-step-no{padding:0 8px;letter-spacing:.02em}
  .gd-step+.gd-step .gd-step-media::before{width:10px}
  .gd-notes{grid-template-columns:minmax(0,1fr);gap:12px}
  .gd-notes dl{grid-template-columns:82px minmax(0,1fr)}
  .gd-chain{grid-template-columns:minmax(0,1fr)}
  .gd-chain li:last-child{grid-column:auto}
  /* 세로로 쌓이면 연산자도 아래 가운데로 옮긴다 */
  .gd-chain-op{top:100%;right:50%;transform:translate(50%,-50%)}
  .gd-scarlist{padding:16px 18px}
}

@media (max-width:480px){
  .gd-steps{grid-template-columns:minmax(0,1fr);gap:16px}
  .gd-step+.gd-step .gd-step-media::before{display:none}
  /* 1열로 접히면 세로선이 칸 왼쪽에 붙은 장식이 된다 — 세로로 쌓이면 행 간격이 곧 경계다 */
  .gd-steps--div>*+*{margin-left:0;padding-left:0;border-left:0}
  .gd-actions .gd-btn{flex:1 1 auto}
  /* 위 규칙은 버튼 2개짜리 히어로용이다. 하나뿐인 자리에서는 그 하나가 전폭 골드 띠가 되어
     버튼이 아니라 섹션 헤더로 읽힌다 */
  .gd-actions>.gd-btn:only-child{flex:0 0 auto}
}

/* --- 17b. MAP ------------------------------------------------------------ */
/* 지도는 메인(index.html)과 동일한 가로형 약도(map-design-pc 900x460 / -mo 320x227)를
   같은 마크업으로 쓴다. 박스 규격은 시안 실측(우측 컬럼 900x460, 섹션상단 기준
   y506~965)과 그대로 맞는다. 시안은 모서리 18px·테두리 없음이라 그것만 덮어쓴다.
   ⚠ 이 약도 이미지에는 다른 병원("오가나셀 피부과의원 청담본점") 마커가 찍혀 있다.
      메인과 상세가 같은 파일을 쓰므로 교체 시 두 페이지를 함께 바꿔야 한다. */
.gd-subpage .gd-map{
  margin-top:clamp(18px,2.14vw,41px);
  border-radius:var(--gd-r);border:0;
}

/* --- 18. MOTION ---------------------------------------------------------- */
/* .gd-ba-track 의 scroll-behavior:smooth 는 sub.js 의 behavior:'auto' 를 무시한다.
   CSS 쪽에서도 꺼야 reduced-motion 이 실제로 지켜진다. */
@media (prefers-reduced-motion:reduce){
  .gd-ba-track{scroll-behavior:auto}
}

/* --- 19. ACCENT — 시술별 악센트 패턴 -------------------------------------
   페이지마다 딱 한 섹션만 이 패턴 중 하나를 쓴다. 나머지 섹션은 06~15 블록의
   공용 컴포넌트를 그대로 써서 사이트 통일감을 유지한다.
   패턴을 페이지마다 새로 만들지 말 것 — 여기 있는 것 중에서 고른다.

     .gd-branch  분기형 — 한 시술에 술식이 여러 갈래일 때  (2_1 §7 술식 4종)
     .gd-ratio   비율형 — 내용이 비율·각도 같은 수치일 때  (2_2 §6 황금비율)

   토큰만 쓰고 이미지는 쓰지 않는다(에셋 0장 제약).
   ------------------------------------------------------------------------ */

/* 19a. 분기형 — 좌측 줄기에서 항목이 갈라져 나온다 */
.gd-branch{
  position:relative;
  margin-top:clamp(20px,2.08vw,40px);
  padding-left:clamp(18px,1.98vw,38px);
  display:grid;gap:clamp(12px,1.25vw,24px);
}
/* 줄기 — 첫 항목 중심에서 마지막 항목 중심까지만 그린다 */
.gd-branch::before{
  content:"";position:absolute;left:0;
  top:clamp(17px,1.35vw,26px);bottom:clamp(17px,1.35vw,26px);
  width:1px;background:var(--gd-brown);
}
.gd-branch li{
  position:relative;
  display:grid;grid-template-columns:auto auto minmax(0,1fr);
  gap:clamp(10px,1.04vw,20px);align-items:center;
  padding:clamp(12px,1.15vw,22px) clamp(14px,1.46vw,28px);
  background:var(--gd-cream);border-radius:var(--gd-r);
}
/* 가지 — 줄기에서 카드까지 잇는 가로선 */
.gd-branch li::before{
  content:"";position:absolute;top:50%;right:100%;
  width:clamp(18px,1.98vw,38px);height:1px;background:var(--gd-brown);
}
.gd-branch b{
  font-family:var(--gd-serif);font-weight:400;
  font-size:clamp(15px,1.35vw,26px);line-height:1;
  color:var(--gd-brown-dp);font-variant-numeric:lining-nums tabular-nums;
}
/* 술식 도해 썸네일 — 원본 도해에서 검은 라벨 바를 잘라낸 이미지라
   글자가 구워져 있지 않다. 설명은 옆의 strong/em 이 담당한다. */
.gd-branch .gd-branch-fig{
  /* 절개선·점선이 보여야 도해 구실을 한다. 70px 에서는 판독이 안 됐다. */
  margin:0;flex:none;width:clamp(72px,8.6vw,150px);
  aspect-ratio:330/420;border-radius:calc(var(--gd-r) - 6px);
  overflow:hidden;background:#e9eef6;
}
.gd-branch .gd-branch-fig picture{display:block;width:100%;height:100%}
.gd-branch .gd-branch-fig img{width:100%;height:100%;object-fit:cover}
.gd-branch strong{
  display:block;
  font-size:clamp(13.5px,1.15vw,22px);font-weight:700;line-height:1.35;
  letter-spacing:-.035em;color:var(--gd-ink);
}
/* 술식 칩 — 흰 글자를 얹으므로 --gd-brown(4.7:1) 이 아니라 -dp(6.3:1) 를 쓴다 */
.gd-branch em{
  display:inline-block;margin-top:clamp(4px,.42vw,8px);
  padding:clamp(3px,.26vw,5px) clamp(8px,.73vw,14px);
  border-radius:999px;background:var(--gd-brown-dp);
  font-style:normal;font-size:clamp(11px,.73vw,14px);font-weight:500;
  letter-spacing:-.01em;color:#fff;
}

/* 19b. 비율형 — flex-grow 값 자체가 비율이라 수치와 그림이 어긋날 수 없다 */
.gd-ratio{margin-top:clamp(20px,2.08vw,40px);display:grid;gap:clamp(14px,1.46vw,28px)}
/* 높이를 고정해야 flex-grow 가 배분할 여유가 생긴다. auto 높이로 두면 두 칸이
   콘텐츠 높이대로 잡혀 4:6 이 눈에 보이지 않는다(실측: 두 칸 모두 60px 남짓). */
.gd-ratio-bar{
  display:flex;flex-direction:column;gap:clamp(5px,.42vw,8px);
  height:clamp(170px,16.5vw,300px);
}
.gd-ratio-seg{
  display:flex;align-items:center;gap:clamp(10px,1.04vw,20px);
  padding:clamp(10px,1.04vw,20px) clamp(14px,1.46vw,28px);
  border-radius:var(--gd-r);
}
.gd-ratio-seg b{
  font-family:var(--gd-serif);font-weight:400;line-height:1;
  font-size:clamp(26px,2.6vw,50px);font-variant-numeric:lining-nums;
}
.gd-ratio-seg span{font-size:clamp(13px,1.04vw,20px);font-weight:700;letter-spacing:-.035em}
/* 윗입술 4 : 아랫입술 6 — 높이가 곧 비율이다 */
.gd-ratio-seg--a{flex:4;background:#efe7d6;color:var(--gd-ink)}
.gd-ratio-seg--a b{color:var(--gd-brown-dp)}
.gd-ratio-seg--b{flex:6;background:var(--gd-brown-dp);color:#fff}
.gd-ratio-seg--b b{color:#fff}

/* 19c. MEDFIG — 원본 사이트에서 가져온 의학 도해
   도해는 잘리면 라벨·지시선이 함께 잘려 의미가 깨진다. 다른 figure 들과 달리
   object-fit:cover 를 쓰지 않고 원본 비율 그대로 흘린다. */
.gd-medfig{margin:0;border-radius:var(--gd-r);overflow:hidden;background:#e9eef6}
.gd-medfig picture{display:block}
.gd-medfig img{display:block;width:100%;height:auto}
.gd-medfig+.gd-sbody{margin-top:clamp(16px,1.67vw,32px)}
/* 반대 순서(§8 좌 컬럼) — .gd-medfig 는 margin:0 이라 앞 요소에 붙어버린다 */
.gd-sbody+.gd-medfig,.gd-actions+.gd-medfig{margin-top:clamp(16px,1.67vw,32px)}
/* 제목·콜아웃·다른 그림 뒤에 오는 도해는 위 두 규칙이 안 걸려 **0px 로 맞붙는다.**
   그 자리마다 작성자가 «마진만 정의된» .gd-sbody--lead(66행)를 겹쳐 뒀는데,
   .gd-medfig{margin:0}(이 절 첫 줄)이 같은 명시도 · 뒤라서 **조용히 이겨 왔다** —
   의도가 CSS 에 삼켜진 채 13곳이 붙어 있었다(2026-08-21 전수 실측: 그 조합 13건이
   **하나도 빠짐없이** 간격 0px). 클래스 둘(0,2,0)이라 .gd-medfig(0,1,0)를 이긴다.
   ⚠ 새 «조합»에만 걸리는 규칙이라 이 조합을 안 쓴 페이지의 픽셀에는 영향이 0이다.
     회귀 기준 페이지 lip-corner 에는 이 조합이 **0건**이므로 게이트는 영향받을 수 없다
     (querySelectorAll('.gd-medfig.gd-sbody--lead').length === 0 — 논리적 증명).
   ⚠ 값은 .gd-sbody--lead 와 같다. 감싸는 <div> 로 우회하던 방법(lip-cupid §7 ·
     mouth-botox §6)을 이제 안 써도 된다 — 다만 이미 감싼 자리는 그대로 둔다. */
.gd-medfig.gd-sbody--lead{margin-top:clamp(24px,4.27vw,82px)}
/* 원본 해상도가 낮은 도해는 확대하면 라벨이 뭉갠다. 원본 폭에서 멈춘다. */
.gd-medfig--sm{max-width:595px}
/* 원본보다 크게 늘리지 않는다. 상자가 원본보다 넓으면 상자가 이미지를 감싼다 —
   .gd-medfig 의 배경(#e9eef6)은 로딩 플레이스홀더라 드러나면 띠로 보인다 */
.gd-medfig--nat{width:max-content;max-width:100%}
.gd-medfig--nat img{width:auto;max-width:100%}
/* 도해 한 장만 놓는 단독 밴드용. --nat 이 width:max-content 라 부모의 text-align:center
   로는 가운데로 오지 않는다(블록 요소는 정렬이 아니라 여백으로 가운데에 선다).
   2026-08-20 philtrum-lipline §5b(만족도 그래프)·§8b(사례 사진)에서 필요해졌다 —
   밴드를 쪼개면 «도해 한 장뿐인 밴드»가 생기는데 sub.css 에 그걸 가운데 세우는 수단이
   없었다. 새 셀렉터라 이 클래스를 붙이지 않은 나머지 60장의 픽셀에는 영향이 0이다. */
.gd-medfig--ctr{margin-inline:auto}
/* 기관 인증 마크는 도해가 아니라 배지다 — 옆 인물컷의 87% 폭을 먹으면 위계가 뒤집힌다 */
.gd-medfig--badge{max-width:clamp(190px,20.8vw,300px)}
/* 원형 도해를 «원만» 보이게 자른다. 원문에서 잘라 온 원은 정사각 상자 안에 네 변에
   딱 닿아 있어(face-implant 절개 도해: 651x651, 중심 325 반지름 325) CSS 원과 그림 원이
   그대로 겹친다. 알파 PNG 로 만들면 2048^2 이 5MB 를 넘어 이 방법이 훨씬 싸다(알파 0바이트).
   2026-08-20 사용자 요청 — 「원형만 필요. 그 밑에 네모난 박스 모양이 필요없어」. */
.gd-medfig--circle{border-radius:50%}
/* 여러 칸에 나란히 놓는 그림칸을 **한 크기**로 맞춘다. 원문에서 잘라 온 조각은
   높이가 제각각일 수 있다 — lift-neck §8 STEP 은 1행 384x375 / 2행 384x302 로,
   2행은 그림 위에 겹쳐 구워진 「선택 가능」 배지를 빼느라 위에서 끊었기 때문이다
   (배지 둘레가 흰 여백이 아니라 어깨 살색이라 지우면 구멍이 난다 — 실측).
   .gd-step-media(object-fit:cover)로 맞추면 목선이 잘리므로, 자르지 않고 **상자만**
   같은 비율로 세우고 그림은 그 안에서 줄인다. 남는 자리는 원문 그림칸과 같은 흰색이라
   보이지 않는다. 원본보다 키우지도 않는다(width/height:auto).
   2026-08-20 사용자 요청 — 「이미지 사이즈가 동일하지 않아. step1처럼 그 사이즈로」. */
.gd-medfig--fit{aspect-ratio:384/375;display:grid;place-items:center;background:#fff}
.gd-medfig--fit picture{display:grid;place-items:center;width:100%;height:100%;min-height:0}
.gd-medfig--fit img{width:auto;height:auto;max-width:100%;max-height:100%}

/* 19d. 비교형 — 같은 축으로 여러 제품·술식을 나란히 견주는 자리.
   .gd-checks 로도 담기지만 그러면 속성이 <br> 로 이어붙은 한 덩어리 문장이 되어
   "무엇이 다른가"가 안 읽힌다(skin-juvelook §7 = 제품 4종 × 속성 4개).
   카드마다 같은 <dl> 축을 세워 눈이 세로로 내려가게 한다. 이미지 0장.
   크림 밴드 위에서 --gd-cardline 은 1.38:1 이라 경계 구실을 못 하므로
   .gd-numcard 와 같은 방식으로 **흰 면**으로 경계를 만든다. */
.gd-compare{
  margin-top:clamp(20px,2.08vw,40px);
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(10px,1.04vw,20px);
}
/* 견줄 대상이 2종뿐인 자리(일반 시술 VS 골든디아망 술식). 4열에 2장을 넣으면
   오른쪽 절반이 빈다. 값을 하나도 버리지 않고 열 수만 바꾸는 한 줄이라
   .gd-steps--2 / --4 / --5 와 같은 사유다(RESUME 절대규칙 4).
   ≤768 은 파일 말미 .gd-compare 2열 규칙이, ≤480 은 1열 규칙이 그대로 이긴다. */
.gd-compare--2{grid-template-columns:repeat(2,minmax(0,1fr))}
/* 비교 대상이 3종이면 기본 4열에서 오른쪽 한 칸이 빈다. 값은 하나도 안 버리고 열 수만 바꾼다 */
.gd-compare--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.gd-compare>li{
  background:#fff;border-radius:var(--gd-r);
  padding:clamp(16px,1.46vw,28px) clamp(14px,1.25vw,24px);
}
.gd-compare-t{
  padding-bottom:clamp(9px,.78vw,15px);border-bottom:1px solid var(--gd-cardline);
  font-size:clamp(13.5px,1.04vw,20px);font-weight:700;line-height:1.35;
  letter-spacing:-.035em;color:var(--gd-ink);
}
.gd-compare dl{display:grid;gap:0;margin:clamp(10px,.94vw,18px) 0 0}
/* 한 항목(라벨+값)이 한 «행»으로 읽히게 묶는다. 기본은 gap 하나로 dt·dd 를 균등하게
   띄워서, 「수술시간→6시간」 간격과 「6시간→개선범위」 간격이 같았다. 그래서 여덟 줄이
   그냥 흘러내리고 표로 안 보인다(2026-08-20 사용자 지적 — lift-oneday §11 · lift-neck).
   라벨→값은 붙이고, 항목 사이만 띄우고 실선을 그어 눈이 가로로 건너가게 한다.
   채워진 칸(is-me)은 갈색 바탕이라 --gd-cardline 이 안 보여 흰 선으로 바꾼다. */
.gd-compare dt+dd{margin-top:clamp(3px,.26vw,5px)}
.gd-compare dd+dt{
  margin-top:clamp(10px,.94vw,18px);padding-top:clamp(10px,.94vw,18px);
  border-top:1px solid var(--gd-cardline);
}
.gd-compare>li.is-me dd+dt{border-top-color:rgba(255,255,255,.22)}

/* 19e. RANGE — 인물 위에 지시 라벨을 얹는 도해.
   원문(lift-neck §6)은 평평한 회색 판 위에 인물 + 알약 라벨 6개 + 지시선 6개가
   **통째로 구워진** 한 장이었다. 구운 글자라 확대하면 뭉개지고, 밴드 배경색이
   바뀌면 회색 판이 그대로 드러난다. 인물만 투명 배경으로 뽑고
   (tools/make_assets_43_range.py) 라벨·지시선은 여기서 다시 그린다.
   좌표계를 원본과 같은 1451x840 으로 두어 실측 좌표가 %·viewBox 로 그대로 옮겨진다.
   2026-08-20 사용자 요청 — 「투명 배경으로 중간에 모델이 있고, html 로 요소들을
   다시 재현. 텍스트로 전체 폰트랑 잘 맞는 폰트로」. 알약 글자는 본문과 같은
   var(--gd-sans) 를 그대로 쓴다(별도 폰트 로딩 0). */
.gd-range{position:relative;aspect-ratio:1451/840;margin-top:clamp(20px,2.08vw,40px)}
.gd-range-fig{position:absolute;inset:0;margin:0}
.gd-range-fig picture{display:block;width:100%;height:100%}
.gd-range-fig img{width:100%;height:100%;object-fit:contain}
/* viewBox 가 컨테이너와 같은 비율이라 meet 로 좌표가 1:1 로 맞는다 */
.gd-range-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.gd-range-svg line{stroke:var(--gd-brown-dp);stroke-width:2;stroke-linecap:round;opacity:.7}
.gd-range-svg circle{fill:var(--gd-brown-dp);opacity:.9}
/* 알약은 «선이 나가는 모서리» 를 붙박아 둔다 — 글자 길이가 달라도 선 시작점이 안 움직인다.
   ⚠ 세로 가운데 맞춤에 transform 을 쓰면 안 된다 — 알약에 .gd-reveal 이 함께 붙어 있고
     main.css 114 의 `.gd-reveal.is-in{transform:none}`(0,2,0)이 여기(0,1,0)를 **이긴다.**
     그래서 리빌이 끝나는 순간 -50% 가 사라져 알약이 제 높이의 절반만큼 아래로 내려앉고,
     SVG 지시선 여섯 줄이 전부 알약 위쪽 허공에서 시작했다
     (2026-08-21 실측: x 는 오차 0.1px 인데 y 만 일정하게 -21.6px = 알약 높이의 절반).
     독립 속성 `translate` 는 transform 과 따로 합성되므로 리빌이 덮어쓰지 못한다. */
.gd-range-t{
  position:absolute;translate:0 -50%;margin:0;
  padding:clamp(5px,.62vw,12px) clamp(11px,1.32vw,26px);
  background:#fff;border:1px solid var(--gd-cardline);border-radius:999px;
  font-size:clamp(11px,1.25vw,24px);font-weight:700;line-height:1.3;
  letter-spacing:-.035em;color:var(--gd-ink);white-space:nowrap;
}
/* 2026-08-21 사용자 요청 「표 안에 있는 제목들을 강조해줬으면 좋겠어」(skin-inmode-onda §7).
   행 이름(에너지 방식·주요 목적…)이 10.5~13px weight 500 회색이라 카드에서 가장 먼저
   사라진다 — 값보다 작고 흐려서 «무엇을 견주는 축인지»가 안 읽혔다. 작은 라벨은 이 사이트
   공통으로 --gd-brown-dp 700 이다(.gd-check-no · .gd-numcard b · .gd-numlist b 와 같은 처리).
   흰 카드 대비 5.99:1 로 소형 텍스트 AA 를 넘는다. 값(dd)보다는 여전히 작아 위계는 그대로다.
   전역 규칙이라 .gd-compare 를 쓰는 10장에 같이 걸린다([[gd-reference-page-not-frozen]]). */
.gd-compare dt{
  font-size:clamp(11px,.78vw,15px);font-weight:700;letter-spacing:.02em;
  color:var(--gd-brown-dp);
}
.gd-compare dd{
  margin:0;font-size:clamp(12.5px,.83vw,16px);line-height:1.45;
  letter-spacing:-.02em;color:#3d4352;
}
/* 그 페이지가 다루는 제품 한 칸만 채워 세운다 — 어느 칸이 주인공인지가 비교표의
   정보다. 흰 글자를 얹으므로 --gd-brown(4.7:1) 이 아니라 -dp(6.0:1) 를 쓴다. */
.gd-compare>li.is-me{background:var(--gd-brown-dp)}
.gd-compare>li.is-me .gd-compare-t{color:#fff;border-bottom-color:rgba(255,255,255,.3)}
/* .68 은 #173fae 위에서 3.75:1 이라 10.5~13px 라벨에 못 미친다(4.5:1 필요).
   .82 = 4.64:1. 값을 재서 올렸다. */
.gd-compare>li.is-me dt{color:rgba(255,255,255,.82)}
.gd-compare>li.is-me dd{color:#fff}

/* 19f. 대비형(VS) — 두 술식을 «같은 행»에서 맞대는 자리.
   (19e 는 위 RANGE 가 이미 쓰고 있어 f 로 매긴다)
   .gd-compare 는 카드마다 <dl> 축을 따로 세우므로 (1) 행 이름이 양쪽에 두 번 적히고
   (2) 두 카드의 행이 우연히만 맞는다(값 길이가 달라지는 순간 어긋난다).
   원문(lift-brow-endoscopic §9 = 0c9cbc4fed62b.jpg)은 좌우 두 열 사이에 「구분」 칸을
   세운 3열 표라 그 구조를 그대로 받는다.
   진짜 <table> 로 짠다 — 행 정렬이 조판이 아니라 **구조로** 보장되고, 스크린리더가
   「시술 방법 · 실리프팅 · 고정된 실이…」처럼 행·열을 짚어 읽는다.
   견줄 대상이 3종 이상이면 이게 아니라 .gd-compare 다(가운데 축이 하나뿐이라 2종 전용). */
.gd-vs{
  width:100%;margin-top:clamp(20px,2.08vw,40px);
  border-collapse:separate;border-spacing:0;table-layout:fixed;
  background:#fff;border-radius:var(--gd-r);overflow:hidden;
}
/* 가로 패딩이 넉넉해야 값 칸의 글줄이 원문처럼 두 줄로 접힌다. 26px 이면 값 칸이
   585px 이 되어 「내시경을 이용하여…당겨줌」이 한 줄 570px 로 늘어진다(1440 실측). */
.gd-vs th,.gd-vs td{
  padding:clamp(12px,1.15vw,22px) clamp(14px,3vw,58px);
  text-align:center;vertical-align:middle;
  border-bottom:1px solid var(--gd-cardline);
}
/* ⚠ tbody 로 좁혀야 한다. <thead> 안의 <tr> 도 그 부모의 마지막 자식이라
   `.gd-vs tr:last-child` 로 쓰면 **머리행 밑줄까지 지워진다**(실측: thead 셀
   border-bottom-width 가 0 이 되어 채운 열이 한 덩어리로 보였다). */
.gd-vs tbody tr:last-child th,.gd-vs tbody tr:last-child td{border-bottom:0}
.gd-vs thead th{
  font-size:clamp(13px,1.04vw,20px);font-weight:700;
  letter-spacing:-.03em;line-height:1.35;color:var(--gd-ink);
}
.gd-vs tbody td{
  font-size:clamp(12.5px,.83vw,16px);font-weight:500;line-height:1.5;
  letter-spacing:-.02em;color:#3d4352;
}
/* 가운데 축 — 이 칸이 행 이름 노릇을 한다. 폭을 고정해 양쪽 값 칸이 같은 폭이 된다 */
.gd-vs .gd-vs-ax{
  width:clamp(92px,13.2vw,190px);background:var(--gd-cream);
  font-size:clamp(11.5px,.83vw,16px);font-weight:700;letter-spacing:-.02em;
  color:var(--gd-ink-2);
}
/* 그 페이지가 다루는 술식 열만 채워 세운다 — 어느 쪽이 주인공인지가 비교표의 정보다.
   흰 글자를 얹으므로 --gd-brown(4.7:1) 이 아니라 -dp(6.0:1) 를 쓴다(.gd-compare 와 같은 사유). */
.gd-vs .is-me{background:var(--gd-brown-dp)}
.gd-vs thead .is-me,.gd-vs tbody .is-me{color:#fff}
.gd-vs tbody .is-me{font-weight:700}
/* 채운 열 안에서는 흰 선이 아니면 행 경계가 안 보인다. .28 은 #173fae 위에서 너무 묽어
   한 덩어리로 보였다(1440 캡처 확인) — 흰 칸의 --gd-cardline 과 눈으로 같아지는 값. */
.gd-vs .is-me{border-bottom-color:rgba(255,255,255,.42)}
/* 머리행과 값행 사이는 한 단계 진하게 — 세 열이 같은 높이에서 갈라져야 표로 읽힌다 */
.gd-vs thead th{border-bottom-color:var(--gd-brown-dp)}
.gd-vs thead .is-me{border-bottom-color:rgba(255,255,255,.62)}
/* 모바일에서만 쓰는 열 이름(각 값 칸의 data-col). 3열을 390px 에 밀어넣으면
   칸당 100px 이 안 돼 「고정된 / 실이 / 한 곳」처럼 두세 글자씩 끊긴다 */
.gd-vs td::before{display:none}

@media (max-width:768px){
  /* 컨테이너가 728px 밑으로 내려가면 알약 글자가 8px 이하가 되어 못 읽는다.
     겹치게 두느니 그림 아래로 펴고, 어느 지점을 가리키는지는 img[alt] 가 받는다. */
  .gd-range{aspect-ratio:auto}
  .gd-range-fig{position:static}
  .gd-range-fig img{height:auto}
  .gd-range-svg{display:none}
  .gd-range-t{position:static;transform:none;translate:none;display:inline-block;margin:8px 8px 0 0}
  /* 4열이면 카드 폭이 150px 밑으로 떨어져 dd 가 두세 글자씩 끊긴다 */
  .gd-compare{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gd-branch li{grid-template-columns:minmax(0,1fr);gap:6px;align-items:start}
  .gd-branch li::before{top:clamp(20px,5vw,26px)}
  .gd-ratio-seg{padding:14px 16px}
}

@media (max-width:480px){
  .gd-compare{grid-template-columns:minmax(0,1fr)}
}

/* .gd-vs 3열을 좁은 화면에 그대로 두면 값 칸이 100px 밑으로 떨어져 「고정된 / 실이 /
   한 곳」처럼 두세 글자씩 끊긴다. 행마다 [구분 → 좌값 → 우값] 세 줄로 편다.
   <tr> 을 그리드로 바꿔야 가운데(DOM 2번째)인 축 칸을 order 로 맨 위에 올릴 수 있다 —
   display:block 만으로는 순서를 못 바꾼다. 열 이름은 각 값 칸의 data-col 로 되살린다. */
@media (max-width:640px){
  .gd-vs,.gd-vs tbody{display:block}
  .gd-vs thead{display:none}
  .gd-vs tbody tr{display:grid;grid-template-columns:minmax(0,1fr);border-bottom:1px solid var(--gd-cardline)}
  .gd-vs tbody tr:last-child{border-bottom:0}
  .gd-vs th,.gd-vs td{border-bottom:0;text-align:left;padding:12px 16px}
  .gd-vs .gd-vs-ax{order:-1;width:auto}
  .gd-vs td::before{
    content:attr(data-col);display:block;margin-bottom:3px;
    font-size:11px;font-weight:700;letter-spacing:.01em;opacity:.72;
  }
  .gd-vs .is-me{border-bottom:0}
}

/* --- 20. OPTCARD — 흰 카드 + 먹색 알약 목록 ------------------------------
   두 갈래(연령대·타입)를 나란히 놓고 «어느 쪽에 무엇이 있는가»만 보여 주는 자리.
   .gd-compare 는 두 카드에 **같은 축(dt)** 이 설 때 쓰는 것이라, 항목 수가 서로
   다르면(eye §5 = 3개 vs 4개) 축을 세울 수 없다. 원문(21a08e76a367e.png)도 축 없이
   흰 카드 안에 먹색 알약을 쌓아 둔 조판이라 그대로 받는다.
   크림 밴드 위에서 --gd-cardline 은 1.38:1 이라 경계 구실을 못 하므로 **흰 면**으로
   경계를 만든다(.gd-numcard · .gd-compare 와 같은 사유). 새 셀렉터라 다른 페이지 영향 0. */
.gd-optcard{
  /* .gd-2col 이 align-items:start 라 항목 수가 다르면 두 카드 높이가 갈린다.
     원문도 두 카드가 같은 높이라 행 높이를 채우게 둔다(짧은 쪽 아래가 여백이 된다). */
  align-self:stretch;
  background:#fff;border-radius:var(--gd-r);
  padding:clamp(22px,2.08vw,40px) clamp(18px,1.77vw,34px) clamp(24px,2.29vw,44px);
}
/* 20b. NOTELIST — 「시술 전 후 주의사항」처럼 짧은 문장이 여러 줄 서는 자리.
   .gd-snote 는 13px 회색 한 덩어리라 7줄이 되면 눈이 미끄러진다(2026-08-21 사용자 지적
   — 「주의사항 내용이 잘 안 보여. 라운드 박스에 문장씩 담아서 나열하고 글자도 키워줘」).
   문장마다 흰 라운드 박스로 끊고 글자를 13 → 16.6px(@1440)로 올린다. 낱말은 그대로다.
   가운뎃점은 원문의 «글자»가 아니라 목록 기호라 CSS 로 세운다(마크업에서는 뺀다).
   새 셀렉터라 이 클래스를 붙이지 않은 나머지 페이지 픽셀에는 영향이 0이다. */
.gd-notelist{margin-top:clamp(16px,1.46vw,28px);display:grid;gap:clamp(8px,.68vw,13px)}
.gd-notelist li{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:clamp(7px,.57vw,11px);align-items:start;
  padding:clamp(12px,1.11vw,21px) clamp(15px,1.35vw,26px);
  background:#fff;border-radius:var(--gd-r);
  font-size:clamp(13px,1.15vw,22px);line-height:1.5;
  letter-spacing:-.028em;color:var(--gd-ink);
}
.gd-notelist li::before{content:"\00B7";font-weight:700;color:var(--gd-brown-dp)}

.gd-pilllist{display:grid;gap:clamp(8px,.78vw,15px);margin-top:clamp(16px,1.46vw,28px)}
.gd-pilllist li{
  display:flex;align-items:center;justify-content:center;
  min-height:clamp(42px,3.28vw,63px);
  padding:clamp(8px,.68vw,13px) clamp(12px,1.15vw,22px);
  background:var(--gd-deep);border-radius:999px;
  font-size:clamp(12.5px,.89vw,17px);font-weight:700;line-height:1.4;
  letter-spacing:-.025em;color:#fff;text-align:center;
}
