/* ==========================================================================
   assets/page/128.css — [128] 고압산소치료 전용 컴포넌트
   · 모든 셀렉터는 .fs-p-128 스코프. 색은 --fs-* 토큰만 쓴다(새 hex 0개).
   · 새 모션 없음 — fs.js 의 reveal / tilt / parallax 만 쓰므로 fs.css 의
     prefers-reduced-motion 무효화가 그대로 적용된다.
   ========================================================================== */

/* --- A01 · 장비 컷아웃 히어로 -------------------------------------------
   크림2 배경 위에 챔버가 가로로 눕는 배너. 배경이 밝아 카피를 잉크색으로 내린다(57 방식). */
/* 2026-08-31 · 122(튠페이스)와 같은 「크림 면 + 우하단 장비 컷아웃」 히어로로 바꿨다.
   옛 판은 챔버 사진을 .fs-hero__bg 로 깔아 cover 가 장비를 오른쪽·아래로 잘라먹었다.
   높이·컷아웃 정렬·카피 폭은 122 의 값을 그대로 따르되, 챔버는 세워 놓은 악센트프라임과
   달리 «가로로 긴» 장비라 폭 상한만 460 → 640 으로 올렸다. */
.fs-p-128 .fs-hbo-hero {
  min-height: clamp(400px, 348.7px + 14.25vw, 620px);
  background: var(--fs-cream);
  /* 122 는 카피 아래에 인증 배지가 한 칸 더 있어 end 로도 가운데로 읽히지만,
     이 페이지는 킥커·제목·인용 3줄뿐이라 end 면 620px 중 아래 40% 에 몰린다
     (2026-08-31 지적). 컷아웃은 inset-block-end:0 이라 이 값과 무관하게 바닥에 붙는다. */
  align-items: center;
}
.fs-p-128 .fs-hbo-hero .fs-hero__inner {
  padding-block: clamp(40px, 30.7px + 2.58vw, 80px);
}
.fs-p-128 .fs-hbo-hero .fs-hero__copy {
  position: relative;
  z-index: 1;
  max-width: min(100%, 760px);
  gap: clamp(10px, 8.4px + 0.449vw, 17px);
}
/* 컷아웃이 «가로로 긴» 장비라 122 처럼 padding 상수로는 못 끊는다.
   글 열을 컷아웃 폭의 보수로 잡아 어느 폭에서도 24px 이 남게 한다. */
@media (min-width: 1024px) {
  .fs-p-128 .fs-hbo-hero .fs-hero__copy {
    max-width: min(100%, calc(100% - clamp(190px, 30px + 35.94vw, 720px) - 24px));
  }
}
/* <1024 — 가로가 짧아 좌우로 나누면 글 열이 150px 밑으로 떨어진다.
   카피를 위에 full-width 로 쌓고 컷아웃은 아래에 깔아 세로로 나눈다. */
@media (max-width: 1023px) {
  .fs-p-128 .fs-hbo-hero { align-items: start; }
  .fs-p-128 .fs-hbo-hero .fs-hero__inner {
    padding-block: clamp(30px, 26.4px + 1vw, 40px) clamp(160px, 70px + 25vw, 300px);
  }
  .fs-p-128 .fs-hbo-hero .fs-hero__copy { max-width: 100%; }
}
.fs-p-128 .fs-hbo-hero .fs-hero__kicker { color: var(--fs-ink-soft); }
.fs-p-128 .fs-hbo-hero .fs-hero__title  { color: var(--fs-ink); }
.fs-p-128 .fs-hbo-hero__quote { color: var(--fs-teal-dk); }

.fs-p-128 .fs-hbo-hero__device {
  position: absolute;
  inset-block-end: 0;
  inset-inline-end: 0;
  z-index: 0;
  width: clamp(190px, 30px + 35.94vw, 720px);
  height: auto;
}
@media (min-width: 1024px) {
  .fs-p-128 .fs-hbo-hero__device {
    inset-inline-end: max(var(--fs-gutter), calc((100% - var(--fs-container)) / 2));
  }
}
@media (max-width: 1023px) {
  /* 챔버는 제어함 쪽이 «평평한 세로 면» 이라 화면 끝에 붙이면 잘린 것처럼 읽힌다.
     122 의 타워(오른쪽이 둥글다)와 달라서 여백을 한 칸 준다. */
  .fs-p-128 .fs-hbo-hero__device {
    width: clamp(300px, 130px + 47vw, 560px);
    inset-inline-end: var(--fs-gutter);
  }
}

/* --- A03 · 장비 도해 (좌 대형 컷아웃 + 하단 3분할 디테일) ---------------- */
.fs-p-128 .fs-hbo-def__title { margin-block-start: clamp(9px, 7.5px + 0.4vw, 15px); }
.fs-p-128 .fs-hbo-def__quote { margin-block-start: clamp(16px, 13.5px + 0.7vw, 27px); }
.fs-p-128 .fs-hbo-def__lead  { margin-block-start: clamp(14px, 12.1px + 0.5vw, 22px); color: var(--fs-muted); }
.fs-p-128 .fs-hbo-def__lead strong { color: var(--fs-ink); }

.fs-p-128 .fs-hbo-dev {
  display: grid; gap: var(--fs-gap-card);
  grid-template-columns: minmax(0, 1fr);
  margin-block-start: clamp(30px, 22.2px + 2.179vw, 64px);
  list-style: none; padding: 0;
}
.fs-p-128 .fs-hbo-dev > li { display: grid; }
@media (min-width: 600px) { .fs-p-128 .fs-hbo-dev { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.fs-p-128 .fs-hbo-dev__fig { display: grid; grid-template-rows: minmax(0, 1fr) auto; height: 100%; }
.fs-p-128 .fs-hbo-dev__box {
  display: grid; place-items: center; overflow: hidden;
  background: var(--fs-cream-2);
  padding: clamp(8px, 6.2px + 0.513vw, 16px);
  aspect-ratio: 16 / 10;
}
.fs-p-128 .fs-hbo-dev__box img { display: block; width: 100%; height: 100%; object-fit: contain; }
.fs-p-128 .fs-hbo-def__grid .fs-hbo-dev__box { aspect-ratio: 725 / 440; padding: clamp(10px, 7.4px + 0.769vw, 22px); }
/* 틸트 래퍼(.fs-hbo-def__tilt)는 grid 자식 자리를 그대로 이어받는다 */
.fs-p-128 .fs-hbo-def__tilt { display: grid; }

/* --- A12 · 원리 : 3단계 스텝 ---------------------------------------------
   원 안에 필 + 아이콘 + 2행 텍스트가 들어가므로 gap 을 좁힌다.
   fs.css 는 1400px 에서 가로 전환하지만 3단계라 1024px 부터 펴도 된다. */
.fs-p-128 .fs-hbo-principle__q { margin-block-start: clamp(12px, 10.1px + 0.513vw, 20px); }
.fs-p-128 .fs-hbo-steps { margin-block-start: clamp(32px, 24.7px + 2.051vw, 64px); }
.fs-p-128 .fs-hbo-step { gap: clamp(6px, 4.5px + 0.4vw, 12px); }
.fs-p-128 .fs-hbo-step .fs-pill { min-height: 30px; }
/* 크림 밴드 위라 fs.css 기본 회색 채움(--fs-step-bg)이 배경에 묻힌다. 흰 원으로 세운다.
   활성/비활성 구분은 3px 틸 테두리와 필 색이 그대로 맡는다. */
.fs-p-128 .fs-hbo-steps .fs-step { background: var(--fs-white); }
.fs-p-128 .fs-hbo-steps .fs-steps__link { background: var(--fs-white); }
.fs-p-128 .fs-hbo-steps .fs-steps__link--active { background: var(--fs-teal); }
.fs-p-128 .fs-hbo-step__icon {
  display: grid; place-items: center;
  width: clamp(52px, 46.9px + 1.410vw, 74px); aspect-ratio: 1;
}
.fs-p-128 .fs-hbo-step__icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.fs-p-128 .fs-hbo-step .fs-step__text { font-size: clamp(15px, 14.1px + 0.256vw, 19px); line-height: 1.4; }

@media (min-width: 1024px) {
  .fs-p-128 .fs-hbo-steps { flex-direction: row; justify-content: center; gap: 0; }
  .fs-p-128 .fs-hbo-steps .fs-steps__link { width: clamp(24px, -20.6px + 4.356vw, 70px); height: 3px; }
  .fs-p-128 .fs-hbo-step { width: clamp(190px, 90.9px + 9.679vw, 248px); }
}

/* --- A12 · 원리 : 도해 범례 ---------------------------------------------- */
.fs-p-128 .fs-hbo-legend {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 7.1px + 0.8vw, 20px);
  max-width: 560px; margin: clamp(34px, 26.2px + 2.179vw, 68px) auto 0;
  list-style: none; padding: 0;
}
.fs-p-128 .fs-hbo-legend__fig { display: grid; grid-template-rows: minmax(0, 1fr) auto; height: 100%; }
.fs-p-128 .fs-hbo-legend__box {
  display: grid; place-items: center; background: var(--fs-white);
  padding: clamp(10px, 8.1px + 0.513vw, 18px);
}
.fs-p-128 .fs-hbo-legend__box img { display: block; width: clamp(44px, 38.9px + 1.410vw, 66px); height: auto; }

/* --- A12 · ★ 시그니처 : 1기압 vs 고기압 혈관상태 2분할 ------------------- */
.fs-p-128 .fs-hbo-vessel {
  display: grid; gap: var(--fs-gap-card);
  grid-template-columns: minmax(0, 1fr);
  margin-block-start: clamp(30px, 22.2px + 2.179vw, 64px);
}
@media (min-width: 1024px) { .fs-p-128 .fs-hbo-vessel { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.fs-p-128 .fs-hbo-vessel__panel {
  display: grid; align-content: start;
  background: var(--fs-white);
  padding: clamp(24px, 19.1px + 1.359vw, 45px) clamp(18px, 12.9px + 1.410vw, 40px)
           clamp(26px, 20.6px + 1.500vw, 49px);
}
.fs-p-128 .fs-hbo-vessel__panel--hbo { background: var(--fs-teal-dk); color: var(--fs-on-dark); }
.fs-p-128 .fs-hbo-vessel__panel--hbo .fs-kicker,
.fs-p-128 .fs-hbo-vessel__panel--hbo .fs-body { color: var(--fs-on-dark); }
.fs-p-128 .fs-hbo-vessel__kicker { text-align: center; }
.fs-p-128 .fs-hbo-vessel__title { margin-block-start: var(--fs-sp-1); text-align: center; }
.fs-p-128 .fs-hbo-vessel__fig { display: grid; margin-block-start: clamp(18px, 15.1px + 0.8vw, 30px); }
.fs-p-128 .fs-hbo-vessel__box { display: block; overflow: hidden; background: var(--fs-white); }
.fs-p-128 .fs-hbo-vessel__box img { display: block; width: 100%; height: auto; }

.fs-p-128 .fs-hbo-vessel__calls {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 9.1px + 0.8vw, 24px);
  margin-block-start: clamp(20px, 16.6px + 0.9vw, 33px);
  list-style: none; padding: 0;
}
.fs-p-128 .fs-hbo-vessel__call { display: grid; align-content: start; }
.fs-p-128 .fs-hbo-vessel__zoom { display: grid; }
/* 확대 도해 4장의 원본 비율이 제각각이라 라벨바 높이가 어긋난다. 흰 상자에 담아 통일한다. */
.fs-p-128 .fs-hbo-vessel__zoom .fs-hbo-vessel__box { aspect-ratio: 16 / 10; }
.fs-p-128 .fs-hbo-vessel__zoom .fs-hbo-vessel__box img { height: 100%; object-fit: contain; }
.fs-p-128 .fs-hbo-vessel__call > .fs-body {
  margin-block-start: clamp(10px, 8.6px + 0.4vw, 16px);
  font-size: clamp(14px, 13.5px + 0.128vw, 16px); line-height: 1.55; text-align: center;
}
.fs-p-128 .fs-hbo-vessel__panel .fs-hbo-vessel__call > .fs-body strong { font-weight: 700; }

/* --- A06 · 치료효과 8가지 ------------------------------------------------ */
.fs-p-128 .fs-hbo-effects-sec { background: var(--fs-white); overflow: hidden; }
.fs-p-128 .fs-hbo-effects-sec .fs-section__bg img { object-fit: contain; object-position: right bottom; }
.fs-p-128 .fs-hbo-effects-sec__inner { position: relative; z-index: 1; }
.fs-p-128 .fs-hbo-effects {
  margin-block-start: clamp(32px, 24.7px + 2.051vw, 64px);
  list-style: none; padding: 0;
}
.fs-p-128 .fs-hbo-effects > li { display: grid; }
.fs-p-128 .fs-hbo-effect { height: 100%; background: var(--fs-cream); }
.fs-p-128 .fs-hbo-effect .fs-card__icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.fs-p-128 .fs-hbo-effect .fs-card__caption { font-size: clamp(14px, 13.1px + 0.256vw, 18px); color: var(--fs-muted); }
.fs-p-128 .fs-hbo-effect .fs-card__caption strong { color: var(--fs-ink); font-weight: 700; }

/* --- A09 · 다크 스테이트먼트 밴드 ---------------------------------------
   .fs-section__bg 는 z-index 0 의 위치지정 요소라, 변환이 없는 컨테이너 내용이
   그 아래로 깔린다. 컨테이너를 한 층 올린다. */
.fs-p-128 .fs-hbo-band { overflow: hidden; }
.fs-p-128 .fs-hbo-band__inner { position: relative; z-index: 1; }
.fs-p-128 .fs-hbo-band__copy .fs-mega { line-height: 1.22; }
.fs-p-128 .fs-hbo-band__fig { display: grid; }
.fs-p-128 .fs-hbo-band__box { display: block; overflow: hidden; background: var(--fs-white); }
.fs-p-128 .fs-hbo-band__box img { display: block; width: 100%; height: auto; }

/* --- A24 · 상담 버튼 바 -------------------------------------------------- */
.fs-p-128 .fs-hbo-cta__fig { display: grid; }
.fs-p-128 .fs-hbo-cta__box { display: grid; place-items: center; background: var(--fs-cream-2); padding: clamp(10px, 7.4px + 0.769vw, 22px); }
.fs-p-128 .fs-hbo-cta__box img { display: block; width: 100%; height: auto; }
.fs-p-128 .fs-hbo-cta__lead  { margin-block-start: var(--fs-sp-3); color: var(--fs-muted); }
.fs-p-128 .fs-hbo-cta__label { margin-block-start: clamp(18px, 15.1px + 0.8vw, 30px); }
.fs-p-128 .fs-hbo-cta__tel   { margin-block-start: var(--fs-sp-1); }
.fs-p-128 .fs-hbo-cta__tel a { color: inherit; text-decoration: none; }

/* ==========================================================================
   ▼▼▼ 진단·수정 패스 — 2026-08-27
   근거·판정은 _design/QA/128.md. 되돌리려면 이 아래 블록만 지우면 된다.
   ========================================================================== */

/* --------------------------------------------------------------------------
   F0. [호버·틸트] 틸트가 라벨바를 두고 갔다
      장비 도해 4장은 `data-fs-tilt-inner` 가 사진 상자(.fs-hbo-dev__box)에만
      붙어 있어, 마우스를 올리면 사진만 4도 돌고 그 아래 색면 라벨바는 평평하게
      남았다(호버 상태를 직접 주입해 렌더로 확인 — 상자 밑변과 바 윗변이 어긋난다).
      tiltcheck 는 «명시 지정 + 면적 60% 이상» 이라 이 형태를 잡지 않는다.
      → inner 를 <figure> 로 올려 사진+라벨바가 한 몸으로 돌게 했다.
        큰 도해는 figure 자신이 틸트 호스트였으므로 래퍼 .fs-hbo-def__tilt 를
        새로 만들어 호스트를 옮겼다(figcaption 은 figure 직계로 유지 — <span> 으로
        감싸면 HTML 이 깨진다). 텍스트 노드 순서는 textdiff 로 확인했다.
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   F1. [접근성] 다크 틸 패널 안의 킥커가 배경에 묻힌다 — 실측 1.32:1
      fs.css:2666 `.fs-kicker:not(.fs-kicker--light)…` 는 특정성 (0,4,0) 이라
      이 파일의 `.fs-p-128 .fs-hbo-vessel__panel--hbo .fs-kicker`(0,3,0)를 이긴다.
      → 마크업에 fs.css 가 마련해 둔 탈출구 `.fs-kicker--light` 를 붙여 해결했다
        (index.html:「산소캡슐」). 여기서는 그 규칙이 확실히 이기도록 못만 박는다.
   -------------------------------------------------------------------------- */
.fs-p-128 .fs-hbo-vessel__panel--hbo .fs-kicker--light { color: var(--fs-on-dark); }

/* --------------------------------------------------------------------------
   F2. [구조] A09 다크 밴드 고스트에 블러가 없다
      band-ghost.jpg 는 수술모·마스크·확대경을 쓴 인물의 상반신이고 블러가
      전혀 안 걸려 있다(엣지 에너지 1.47 · 확정 시안 57 의 nose/compare-bg.jpg 는 0.77).
      풀블리드로 깔면 질감이 아니라 «패널 뒤에 반쯤 가려진 두번째 얼굴» 로 읽힌다.
      확정 시안의 처방(spec-nose[3] 「단색 위에 강하게 블러된 인물 사진」)을 CSS 로만
      건다 — 에셋은 그대로라 이 한 줄을 지우면 원상복구된다. (127 에서 검증된 처방)
   -------------------------------------------------------------------------- */
.fs-p-128 .fs-hbo-band .fs-section__bg img { filter: blur(24px); transform: scale(1.06); }

/* --------------------------------------------------------------------------
   F3. [V70-B] 다크 밴드 741:659 «거의 50:50» → 44:56 비대칭 + 사진 우측 풀블리드
      실측(1920): 카피 글자가 x716 에서 끝나고 사진이 x1021 에서 시작해
      그 사이 305px 가 빈 다크 면으로 남는다. 두 칸이 나란히 놓인 정적 구성이다.
      · 열을 44:56 으로 비대칭화하고 gap 을 0 으로 닫아 빈 면을 지운다.
      · 사진을 1440 컨테이너 밖 화면 오른쪽 끝까지 흘려 잘리게 둔다.
        확정 시안 91 의 다크 밴드가 «사진이 밴드 한쪽을 풀블리드로 차지» 하는
        바로 그 형태다(spec-about[3] 「좌측 사진 x0-959, 풀블리드 좌측 절반」).
        밝은 제품컷(평균 휘도 214.7)이 다크 면을 가르며 비대칭을 만든다.
      ★ 카피에 ink 패널을 깔아 사진 위로 겹치는 48 식 처방은 여기서 쓰지 않는다 —
        카피가 3행뿐이라 패널이 «밴드 위에 뜬 회색 상자» 로 읽혔고(렌더 확인),
        블러된 고스트가 --fs-ink-band-2 보다 어두워 48 과 명암 관계가 뒤집힌다.
      ★ 라벨바는 사진과 같은 폭으로 함께 흘러 나간다 — LOCK 2(d) 유지.
      ★ 겹침·비대칭은 PC 가로 방향으로만. 모바일에서는 그대로 세로로 쌓인다(48 함정).
      ★ 인라인 style 의 `--fs-split` 은 커스텀 속성이라 CSS 로 못 덮는다.
        grid-template-columns 를 직접 준다.
   -------------------------------------------------------------------------- */
@media (min-width: 1024px) {
  .fs-p-128 .fs-hbo-band .fs-split {
    grid-template-columns: minmax(0, 44fr) minmax(0, 56fr);
    gap: 0;
  }
  /* 컨테이너 콘텐츠 오른쪽 끝(1920 에서 x1680) → 화면 오른쪽 끝까지의 거리.
     .fs-hbo-band 의 overflow:hidden 이 잘라내므로 가로 스크롤은 생기지 않는다. */
  .fs-p-128 .fs-hbo-band__fig {
    position: relative;
    z-index: 1;
    margin-inline-end: calc(-1 * (
      max(0px, (100vw - (var(--fs-container) + var(--fs-gutter) * 2)) / 2) + var(--fs-gutter)
    ));
  }
}

/* --------------------------------------------------------------------------
   F4. [마이크로] 섹션 제목 뒤 70px 틸 선 (48 검증분)
      ★ «.is-in 이면 보이기» 로 짜면 첫 화면 제목의 선이 영원히 안 그어진다.
        fs.js 는 첫 화면 대상에 .fs-reveal 클래스 자체를 안 붙인다.
        → 기본을 「그어진 상태」로 두고 .fs-reveal:not(.is-in) 에만 초기 은닉.
      가운데정렬 제목(혈관상태 2패널 h3)과 다크 밴드 대제목에는 걸지 않는다.
   -------------------------------------------------------------------------- */
.fs-p-128 .fs-nose-head h2,
.fs-p-128 .fs-hbo-def__title { position: relative; }

.fs-p-128 .fs-nose-head h2::after,
.fs-p-128 .fs-hbo-def__title::after {
  content: "";
  display: block;
  width: 70px;
  height: 1px;
  margin-block-start: var(--fs-sp-4);
  background: var(--fs-teal);
  transform: scaleX(1);
  transform-origin: left center;
  transition: transform var(--fs-dur-slow) var(--fs-ease-out) .5s;
}
:root.fs-js .fs-p-128 h2.fs-reveal:not(.is-in)::after,
:root.fs-js .fs-p-128 .fs-reveal:not(.is-in) h2::after { transform: scaleX(0); }

/* --------------------------------------------------------------------------
   F5. [마이크로] 호버 — 프레임은 고정, 사진만 scale(1.045). 그림자는 쓰지 않는다.
      의학 도해(스텝·범례·혈관상태·확대 도해)와 선화 아이콘에는 걸지 않는다.
      대상은 장비 사진 6장뿐이다.
   -------------------------------------------------------------------------- */
.fs-p-128 .fs-hbo-cta__box { overflow: hidden; }

.fs-p-128 .fs-hbo-dev__box img,
.fs-p-128 .fs-hbo-band__box img,
.fs-p-128 .fs-hbo-cta__box img {
  transition: transform var(--fs-dur-slow) var(--fs-ease-out);
}

@media (hover: hover) and (pointer: fine) {
  .fs-p-128 .fs-hbo-dev__fig:hover .fs-hbo-dev__box img,
  .fs-p-128 .fs-hbo-band__fig:hover .fs-hbo-band__box img,
  .fs-p-128 .fs-hbo-cta__fig:hover .fs-hbo-cta__box img { transform: scale(1.045); }

  /* 라벨바는 사진과 함께 커지면 안 된다 — 글자가 흔들린다. 색만 한 단계. */
  .fs-p-128 .fs-hbo-dev__fig:hover > .fs-labelbar,
  .fs-p-128 .fs-hbo-band__fig:hover > .fs-labelbar {
    background: var(--fs-teal-dk);
    transition: background var(--fs-dur) var(--fs-ease);
  }
}

/* --------------------------------------------------------------------------
   F6. reduced-motion — 위에서 새로 얹은 모션을 전부 정지 상태로 확정
      (겹침·비대칭·블러는 모션이 아니므로 그대로 둔다)
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .fs-p-128 .fs-nose-head h2::after,
  .fs-p-128 .fs-hbo-def__title::after {
    transform: scaleX(1) !important;
    transition: none !important;
  }
  .fs-p-128 .fs-hbo-dev__box img,
  .fs-p-128 .fs-hbo-band__box img,
  .fs-p-128 .fs-hbo-cta__box img {
    transition: none !important;
    transform: none !important;
  }
  /* 히어로 장비 컷아웃의 패럴랙스 — 122 와 같이 명시적으로 잠근다 */
  .fs-p-128 .fs-hbo-hero__device { transform: none !important; }
}

/* ==========================================================================
   ▼▼▼ 2026-10-22 · 모바일 최적화(승인자 「홈페이지 전체적인 모바일 최적화 진행」) — 줄바꿈은 전 폭, 배치는 599px 이하만. PC 요소 위치 무변화(1024·1440·1920 실측).
   백업 _src/build/backup-128-1022-mo · 실측 _design/momeasure.py 360/390/540/768.
   줄바꿈: 정의 인용의 문장 가운데 <br> → <br class="fs-pc-only">(§1-7, 뒤 공백은 원래 있다) · WJ 2(「수·시술」 가운뎃점 뒤 — 「각종 수· / 시술」) ·
           balance(히어로 인용, 정의 인용·리드, 원리 리드·단계 설명, 효과 리드, 주소) · 정의 인용 형광 칸 <600 inline(390 「…기압 / 이 올라간」, §7-19).
   고아 줄(전): 360 「…여러 질환을 / 개선”」 · 360·390 「…각종 수· / 시술 후」 · 원리 단계 설명 「…크기 / 때문에 …」 외.
   배치(<600): 치료효과 POINT 8장 1열(장당 ≈230px, 360 섹션 ≈1,850px) → 2열(§2 A, 600~1023 과 같은 짜임).
   ========================================================================== */
.fs-p-128 .fs-hbo-hero__quote,
.fs-p-128 .fs-hbo-def__quote,
.fs-p-128 .fs-hbo-def__lead,
.fs-p-128 #principle .fs-nose-lead,
.fs-p-128 #principle .fs-body,
.fs-p-128 #effects .fs-nose-lead,
.fs-p-128 .fs-hbo-effect .fs-card__caption,
.fs-p-128 .fs-address { text-wrap: balance; }
@media (max-width: 599px) {
  .fs-p-128 .fs-hbo-def__quote .fs-mark {
    display: inline;
    -webkit-box-decoration-break: clone;
            box-decoration-break: clone;
  }
  .fs-p-128 .fs-hbo-effects {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--fs-sp-4);
  }
  /* 캡션 줄 수가 다른 두 장의 POINT 필이 어긋나지 않게 위 정렬(fs.css .fs-card--point 는 center) */
  .fs-p-128 .fs-hbo-effect { padding-inline: var(--fs-sp-3); align-content: start; }
  .fs-p-128 .fs-hbo-effect .fs-card__caption { word-break: keep-all; }
}
