/* ==========================================================================
   assets/page/138.css — [138] 핵심경쟁력 (slug: strengths)
   모든 셀렉터는 .fs-p-138 스코프. 색은 --fs-* 토큰만 쓴다(새 hex 0개).
   전용 컴포넌트
     .fs-strengths-hero__logotype  네온 스크립트 로고타입
     .fs-strengths-index           핵심 01–05 인덱스 타일
     .fs-strengths-core            좌 사진쌍 / 우 서술 캐러셀 + 라벨 탭
     .fs-strengths-band            다크 스테이트먼트 밴드
     .fs-strengths-zero            '대리 수술 0%' 수술실명제 배지 (시그니처)
     .fs-strengths-rail            상담 → 수술 → 수술 후 치료 레일
     .fs-strengths-duty            책임 3원칙 사진 + 겹친 패널 카드
   ========================================================================== */

/* --- A01 히어로 : 다크 라운지 + 네온 스크립트 --------------------------- */
.fs-p-138 .fs-strengths-hero { min-height: clamp(420px, 372.3px + 13.2vw, 626px); }
.fs-p-138 .fs-strengths-hero .fs-hero__copy { gap: clamp(12px, 8.2px + 1.06vw, 28px); }
.fs-p-138 .fs-strengths-hero .fs-hero__kicker {
  font-family: var(--fs-font-en);
  letter-spacing: 0.26em;
  color: var(--fs-on-dark);
  opacity: .82;
}
.fs-p-138 .fs-strengths-hero__logotype {
  display: block;
  width: clamp(230px, 121.4px + 30.2vw, 700px);
  height: auto;
}
.fs-p-138 .fs-strengths-hero .fs-hero__title {
  position: relative;
  padding-block-start: clamp(12px, 9.8px + 0.61vw, 22px);
}
.fs-p-138 .fs-strengths-hero .fs-hero__title::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 50%;
  width: clamp(56px, 47.4px + 2.4vw, 94px);
  height: 1px;
  background: var(--fs-on-dark);
  opacity: .55;
  transform: translateX(-50%);
}

/* --- A05 선언 밴드 + 핵심 인덱스 ---------------------------------------- */
.fs-p-138 .fs-strengths-lead { display: grid; justify-items: center; gap: var(--fs-sp-5); text-align: center; }
.fs-p-138 .fs-strengths-lead .fs-h2 { font-weight: 300; }

.fs-p-138 .fs-strengths-index {
  display: grid;
  gap: var(--fs-gap-card);
  grid-template-columns: minmax(0, 1fr);
  margin-block-start: var(--fs-gap-title);
}
@media (min-width: 600px)  { .fs-p-138 .fs-strengths-index { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .fs-p-138 .fs-strengths-index { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

.fs-p-138 .fs-strengths-index__item {
  display: grid;
  grid-template-rows: 1fr auto;
  background: var(--fs-white);
  border-block-start: 2px solid var(--fs-teal);
}
.fs-p-138 .fs-strengths-index__body {
  display: grid;
  justify-items: center;
  align-content: start;
  gap: var(--fs-sp-3);
  padding: clamp(20px, 17.4px + 0.72vw, 31px) var(--fs-sp-5) clamp(16px, 14.2px + 0.5vw, 24px);
}
.fs-p-138 .fs-strengths-index__num {
  font-family: var(--fs-font-en);
  font-size: var(--fs-t-h3);
  font-weight: 700;
  line-height: 1;
  color: var(--fs-teal-text);
}
.fs-p-138 .fs-strengths-index__icon {
  display: block;
  width: clamp(62px, 53.4px + 2.4vw, 100px);
  height: auto;
}
.fs-p-138 .fs-strengths-index .fs-labelbar {
  min-height: clamp(40px, 35.4px + 1.28vw, 60px);
  padding-block: 7px;
  line-height: 1.32;
}

/* --- A17 핵심 01–05 캐러셀 ---------------------------------------------- */
.fs-p-138 .fs-strengths-core__viewport { overflow: hidden; }
.fs-p-138 .fs-strengths-core__track { display: flex; }
.fs-p-138 .fs-strengths-core__slide {
  display: grid;
  gap: var(--fs-gap-col);
  align-content: start;
}
@media (min-width: 1024px) {
  .fs-p-138 .fs-strengths-core__slide {
    grid-template-columns: minmax(0, 780fr) minmax(0, 620fr);
    align-items: center;
  }
}
.fs-p-138 .fs-strengths-core__fig { display: grid; }
.fs-p-138 .fs-strengths-core__frame { display: block; overflow: hidden; }
.fs-p-138 .fs-strengths-core__frame img { display: block; width: 100%; height: auto; }
.fs-p-138 .fs-strengths-core__fig .fs-labelbar { min-height: clamp(34px, 30.6px + 0.96vw, 50px); }
.fs-p-138 .fs-strengths-core__sub {
  display: block;
  margin-block-start: clamp(20px, 17.4px + 0.72vw, 31px);
  border-block-start: 2px solid var(--fs-teal);
  padding-block-start: clamp(12px, 10.5px + 0.42vw, 18px);
}
.fs-p-138 .fs-strengths-core__sub img { display: block; width: 100%; height: auto; }
.fs-p-138 .fs-strengths-core__text { display: grid; align-content: start; gap: var(--fs-sp-3); }
.fs-p-138 .fs-strengths-core__num {
  font-family: var(--fs-font-en);
  font-size: var(--fs-t-num);
  font-weight: 500;
  line-height: 1;
  color: var(--fs-teal-text);
}
.fs-p-138 .fs-strengths-core__title { font-size: var(--fs-t-h2); font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; }
.fs-p-138 .fs-strengths-core__body { margin-block-start: var(--fs-sp-3); }

/* 도트를 라벨 탭으로 — fs.js 가 마크업의 <button> 을 그대로 도트로 배선한다 */
.fs-p-138 .fs-strengths-core__tabs {
  display: grid;
  gap: 2px;
  grid-template-columns: minmax(0, 1fr);
  margin-block-start: clamp(28px, 24.4px + 1vw, 44px);
}
@media (min-width: 600px)  { .fs-p-138 .fs-strengths-core__tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .fs-p-138 .fs-strengths-core__tabs { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.fs-p-138 .fs-strengths-core__tabs .fs-carousel__dot,
.fs-p-138 .fs-strengths-core__tabs .fs-carousel__dot.is-active {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: var(--fs-sp-3);
  width: auto;
  aspect-ratio: auto;
  padding: var(--fs-sp-4) var(--fs-sp-5);
  border-radius: 0;
  background: none;
  background-image: none;
  box-shadow: none;
  text-align: start;
  font-size: var(--fs-t-sm);
  font-weight: 600;
  line-height: 1.35;
  color: var(--fs-muted);
  border-block-start: 2px solid var(--fs-line);
  transition: color var(--fs-dur) var(--fs-ease), border-color var(--fs-dur) var(--fs-ease);
}
.fs-p-138 .fs-strengths-core__tabs .fs-carousel__dot.is-active {
  color: var(--fs-teal-text);
  border-block-start-color: var(--fs-teal);
}
.fs-p-138 .fs-strengths-core__tabnum {
  font-family: var(--fs-font-en);
  font-size: var(--fs-t-body);
  font-weight: 700;
  color: var(--fs-teal-text);
}

/* --- A09 다크 스테이트먼트 밴드 ----------------------------------------- */
/* fs.css 의 .fs-section__bg 는 .fs-container/.fs-bleed 만 위로 올린다 —
   섹션 직계 자식인 .fs-split 에는 직접 z-index 를 준다. */
.fs-p-138 .fs-strengths-band { position: relative; z-index: 1; }
.fs-p-138 .fs-strengths-band__fig { overflow: hidden; }
.fs-p-138 .fs-strengths-band__fig img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fs-p-138 .fs-strengths-band__copy {
  display: grid;
  align-content: center;
  gap: var(--fs-sp-6);
  padding: clamp(56px, 36.6px + 5.4vw, 140px) var(--fs-gutter);
}
.fs-p-138 .fs-strengths-band__rule { width: clamp(48px, 41.1px + 1.92vw, 78px); height: 2px; background: var(--fs-teal); }
@media (min-width: 1024px) {
  .fs-p-138 .fs-strengths-band__fig { min-height: clamp(460px, 300px + 16vw, 640px); }
}

/* --- A08 시그니처 : '대리 수술 0%' 수술실명제 --------------------------- */
.fs-p-138 .fs-strengths-zero {
  display: grid;
  gap: var(--fs-gap-col);
  align-items: center;
}
@media (min-width: 1024px) {
  .fs-p-138 .fs-strengths-zero { grid-template-columns: minmax(0, 470fr) minmax(0, 890fr); }
}
.fs-p-138 .fs-strengths-zero__badge {
  display: grid;
  justify-items: center;
  gap: var(--fs-sp-5);
  padding: clamp(30px, 24.1px + 1.64vw, 56px) var(--fs-sp-6);
  background: var(--fs-white);
  border-block-start: 3px solid var(--fs-teal);
}
.fs-p-138 .fs-strengths-zero__head { display: grid; justify-items: center; gap: var(--fs-sp-1); }
.fs-p-138 .fs-strengths-zero__kicker {
  display: block;
  font-size: var(--fs-t-lead);
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--fs-ink-soft);
}
.fs-p-138 .fs-strengths-zero__num {
  display: block;
  font-family: var(--fs-font-en);
  font-size: clamp(88px, 62.9px + 6.97vw, 196px);
  font-weight: 700;
  line-height: .92;
  letter-spacing: -0.04em;
  color: var(--fs-teal-text);
}
.fs-p-138 .fs-strengths-zero__pct { font-size: .42em; font-weight: 700; letter-spacing: 0; }
.fs-p-138 .fs-strengths-zero__body { display: grid; align-content: center; gap: var(--fs-sp-5); }

.fs-p-138 .fs-strengths-rail {
  position: relative;
  display: grid;
  gap: var(--fs-gap-card);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-block-start: clamp(24px, 20.4px + 1vw, 40px);
}
.fs-p-138 .fs-strengths-rail__step {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: 1fr auto;
  background: var(--fs-white);
}
.fs-p-138 .fs-strengths-rail__body {
  display: grid;
  justify-items: center;
  gap: var(--fs-sp-2);
  padding: clamp(16px, 13.7px + 0.64vw, 26px) var(--fs-sp-3);
}
.fs-p-138 .fs-strengths-rail__icon { display: block; width: clamp(48px, 41.1px + 1.92vw, 78px); height: auto; }
.fs-p-138 .fs-strengths-rail__step .fs-labelbar { min-height: clamp(30px, 27.7px + 0.64vw, 40px); }
.fs-p-138 .fs-strengths-rail::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset-block-start: 50%;
  inset-inline: 8%;
  height: 2px;
  background: var(--fs-teal);
  transform: translateY(-50%);
}

/* --- A18 책임 3원칙 사진 + 겹친 패널 ------------------------------------ */
.fs-p-138 .fs-strengths-duty { display: block; background: transparent; }
.fs-p-138 .fs-strengths-duty__photo { display: block; width: 100%; height: auto; }
.fs-p-138 .fs-strengths-duty .fs-card__panel {
  display: grid;
  gap: var(--fs-sp-4);
  border-block-start: 2px solid var(--fs-teal);
}
.fs-p-138 .fs-strengths-duty__icon { display: block; width: clamp(46px, 40.3px + 1.6vw, 72px); height: auto; }
@media (min-width: 1024px) {
  .fs-p-138 .fs-strengths-duty .fs-card__panel {
    position: relative;
    z-index: 1;
    inset: auto;
    width: auto;
    margin-block-start: -54px;
    margin-inline-start: clamp(16px, 8.6px + 0.74vw, 26px);
  }
}

/* --- A26 : 지도 프레임 --------------------------------------------------- */
.fs-p-138 .fs-strengths-contact__map img { display: block; width: 100%; height: auto; }

/* --- 모션 : 새로 넣은 것이 없으므로 무효화할 것도 최소로 두되,
       탭 전환 트랜지션은 reduced-motion 에서 끈다 -------------------------- */
@media (prefers-reduced-motion: reduce) {
  .fs-p-138 .fs-strengths-core__tabs .fs-carousel__dot,
  .fs-p-138 .fs-strengths-core__tabs .fs-carousel__dot.is-active { transition: none !important; }
}


/* ==========================================================================
   ▼▼▼ 진단·수정 패스 — 2026-08-28
   렌더(1920 / 1440 / 1024 / 768 / 600 / 360)와 vibecheck·qa·tiltcheck·
   glosscheck 를 함께 보고 잡은 것만 넣는다. 근거는 _design/QA/138.md.
   ========================================================================== */

/* --------------------------------------------------------------------------
   A. [LOCK 6] 캐러셀은 1440 밖으로 흘려 잘리게 둔다
   위 89행이 .fs-strengths-core__viewport 에 overflow:hidden 을 걸어
   「한 화면에 딱 맞는 캐러셀」을 만들고 있었다 — LOCK 6 판정법 (b) 가
   「잘림을 만드는 수단이 뷰포트의 overflow:hidden → FAIL」로 명시한다.
   vibecheck 는 L6 을 구현하지 않아 7개 폭 전부 ✓ 로 통과시킨다(침묵 ≠ 통과).
   확정 시안 57 의 .fs-nose-tx__viewport(fs.css:1543) 와 같은 처방 —
   뷰포트 «폭» 은 1440 그대로 두고(fs.js 가 clientWidth 로 슬라이드 폭을
   계산하므로 폭을 건드리면 시안 수치가 통째로 어긋난다) 잘림만
   html/body 의 overflow-x: clip(fs.css:211·219)에 맡긴다.
   좁은 폭에서는 거터(20~28px)만큼만 삐져나와 「잘린 조각」이 아니라
   「어긋난 여백」으로 읽히므로 1024 이상에서만 푼다.
   -------------------------------------------------------------------------- */
@media (min-width: 1024px) {
  .fs-p-138 .fs-strengths-core__viewport { overflow: visible; }
}

/* --------------------------------------------------------------------------
   B. [LOCK 7-d] 섹션 제목 h2 의 굵기는 700 이다
   위 46행이 .fs-strengths-lead .fs-h2 를 통째로 300 으로 낮췄다.
   DESIGN_SYSTEM 7항 (d) 의 판정 대상에 .fs-h2 가 있고 「font-weight === 700,
   자식 <span class="fs-w300"> 한 어절의 300 만 허용」이다. 제목 전체를 300 으로
   낮추는 것은 그 예외가 아니다(코퍼스 75장 중 이 페이지 1장뿐이었다).
   같은 페이지 안에서도 A08 의 .fs-mark 는 이미 700 이라 두 하이라이트 박스의
   굵기가 서로 달랐다. 700 으로 통일한다. vibecheck L7 은 상한만 보므로
   이 위반을 잡지 못한다.
   -------------------------------------------------------------------------- */
.fs-p-138 .fs-strengths-lead .fs-h2 { font-weight: 700; }

/* --------------------------------------------------------------------------
   C. [구조] 태블릿에서 마지막 줄에 한 장만 남는 폭을 없앤다
   .fs-strengths-index(5장)와 .fs-strengths-core__tabs(5개)가 600~1023 에서
   2열이라 3번째 줄에 한 칸만 남고 그 오른쪽에 빈 구멍이 뚫렸다
   (768 실측: 348.8px 타일 하나 + 348.8px 공백). 48 의 처방과 같이 3열로 나눠
   3+2 로 끝낸다.
   -------------------------------------------------------------------------- */
@media (min-width: 600px) and (max-width: 1023px) {
  .fs-p-138 .fs-strengths-index,
  .fs-p-138 .fs-strengths-core__tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* A18 의 책임 3원칙도 같은 구멍이 난다 — 공용 .fs-grid--3 이 600~1023 에서
   2열이라(fs.css:334) 3번째 카드가 홀로 남고 그 옆에 349px 빈 크림 면이 뚫린다.
   768 이상은 3열로 두면 1024 의 3열과 카드 폭이 이어져 분기에서 튀지 않고
   (1023 에서 309px ≈ 1024 에서 309px), 그 아래는 1열로 떨어뜨린다. */
@media (min-width: 768px) and (max-width: 1023px) {
  .fs-p-138 .fs-strengths-duty-sec .fs-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 600px) and (max-width: 767px) {
  .fs-p-138 .fs-strengths-duty-sec .fs-grid--3 { grid-template-columns: minmax(0, 1fr); }
}

/* --------------------------------------------------------------------------
   D. [구조] A18 흰 패널의 바닥이 크림 밴드 위에서 어긋난다
   위 253행이 .fs-strengths-duty 를 display:block 으로 되돌려 놓아
   («.fs-card--panel { display: grid }» fs.css:735 을 끈다) 카드가 li 의
   행 높이만큼 늘어나지 않는다. 카드 배경은 transparent 이고 실제로 보이는
   흰 면은 .fs-card__panel 뿐이라, 설명문 길이가 다르면 흰 상자 바닥이
   그대로 어긋난다(600px 실측: 1번 카드 450.6 ↔ 2번 카드 427.8, 22.8px 차).
   1024 이상 3열에서는 우연히 맞아 있어 눈에 안 띄고 검사기도 통과시킨다.
   → li 를 그리드로 만들어 카드를 늘리고, 카드 안에서 패널이 남는 높이를
     먹게 한다. 글자는 align-content:start 로 위에 붙여 둔다.
   -------------------------------------------------------------------------- */
.fs-p-138 .fs-strengths-duty-sec .fs-grid > li { display: grid; }
.fs-p-138 .fs-strengths-duty {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}
.fs-p-138 .fs-strengths-duty .fs-card__panel { align-content: start; }

/* --------------------------------------------------------------------------
   E. [V70] A09 다크 밴드의 50:50 균등 격자를 깬다
   fs-split 이 정확히 1fr 1fr 이라 사진과 카피가 「맞붙은 두 장」으로 읽힌다.
   ★ 사진과 카피를 «겹치지는» 않는다 — band-surgeon.jpg 의 평균 휘도를
     PIL 로 직접 재면 83.4(좌반 59.7 / 우반 107.1)로, 겹침이 먹는 하한
     110 에 못 미친다. 어두운 사진 위에 흰 글자를 얹으면 판독이 되레 나빠진다.
     축의 비대칭(56:44)만 취하고 겹침은 버린다.
   비율 근거: 사진 쪽을 넓혀 인물이 열 중앙에 오게 하고, 카피 열은 1920 에서
   844.8 − 거터 80 = 764.8px 로 «포시즌의 기본입니다.»(58px) 한 줄이 들어간다.
   -------------------------------------------------------------------------- */
@media (min-width: 1024px) {
  /* 인라인 style 의 --fs-split: 1fr 1fr 가 커스텀 프로퍼티라 CSS 선언으로는
     못 이긴다 — grid-template-columns 를 직접 못박는다. */
  .fs-p-138 .fs-strengths-band { grid-template-columns: minmax(0, 56fr) minmax(0, 44fr); }
  /* 하드컷 완화 — 사진 오른쪽 가장자리에서만 밴드색으로 수렴시킨다.
     발주서 Phase 3 「섹션 전환은 하드컷 대신 배경 레이어 전환」. */
  .fs-p-138 .fs-strengths-band__fig { position: relative; }
  .fs-p-138 .fs-strengths-band__fig::after {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline-end: 0;
    width: clamp(40px, 4vw, 88px);
    background: linear-gradient(to right, rgba(17, 17, 17, 0), var(--fs-ink-band));
    pointer-events: none;
  }
}

/* --------------------------------------------------------------------------
   F. 마이크로 인터랙션 — 48 에서 검증된 두 가지
   -------------------------------------------------------------------------- */

/* F-1 섹션 제목 뒤 70px 틸 선 (delay .5s)
   A05 의 인용 제목에는 걸지 않는다 — 이미 .fs-mark 색면이 액센트라
   선이 겹치면 두 강조가 싸운다. A09 는 .fs-strengths-band__rule 이 같은 역할을
   이미 하고 있다. */
.fs-p-138 .fs-sec-head__title { position: relative; }
.fs-p-138 .fs-sec-head__title::after {
  content: "";
  display: block;
  inline-size: 70px;
  block-size: 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;
}
/* 가운데정렬 헤드에서는 선도 가운데에서 자란다 */
.fs-p-138 .fs-sec-head--center .fs-sec-head__title::after {
  margin-inline: auto;
  transform-origin: center;
}
/* ★ 초기 은닉을 «.is-in 이면 보이기» 로 짜면 첫 화면 제목의 선이 영원히 안 그어진다.
   fs.js 는 첫 화면 대상에 .fs-reveal 클래스 자체를 안 붙인다.
   → 기본은 「그어진 상태」, 실제 리빌 대상에만 초기 은닉을 건다. */
:root.fs-js .fs-p-138 h2.fs-reveal:not(.is-in)::after,
:root.fs-js .fs-p-138 .fs-reveal:not(.is-in) h2::after { transform: scaleX(0); }

/* F-2 호버 — 프레임은 고정, 사진만 scale(1.045). 그림자는 쓰지 않는다.
   transform-origin 을 바닥에 두는 것이 핵심이다 — 가운데로 두면 사진이
   아래로 자라 라벨바를 덮어 LOCK 2 의 「간격 0」이 호버에서만 깨진다. */
.fs-p-138 .fs-strengths-core__sub,
.fs-p-138 .fs-strengths-duty { overflow: hidden; }
.fs-p-138 .fs-strengths-core__frame img,
.fs-p-138 .fs-strengths-core__sub img,
.fs-p-138 .fs-strengths-duty__photo {
  transform-origin: 50% 100%;
  transition: transform var(--fs-dur-slow) var(--fs-ease-out);
}
@media (hover: hover) and (pointer: fine) {
  .fs-p-138 .fs-strengths-core__fig:hover .fs-strengths-core__frame img,
  .fs-p-138 .fs-strengths-core__sub:hover img,
  .fs-p-138 .fs-strengths-duty:hover .fs-strengths-duty__photo { transform: scale(1.045); }

  /* 라벨바는 사진과 같이 커지면 안 된다 — 글자가 흔들린다. 색만 한 단계 */
  .fs-p-138 .fs-strengths-core__fig:hover .fs-labelbar {
    background: var(--fs-teal-dk);
    transition: background var(--fs-dur) var(--fs-ease);
  }
}

/* --------------------------------------------------------------------------
   G. reduced-motion — 위에서 얹은 모션을 전부 정지 상태로 확정한다.
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .fs-p-138 .fs-sec-head__title::after {
    transform: scaleX(1) !important;
    transition: none !important;
  }
  .fs-p-138 .fs-strengths-core__frame img,
  .fs-p-138 .fs-strengths-core__sub img,
  .fs-p-138 .fs-strengths-duty__photo {
    transform: none !important;
    transition: none !important;
  }
}

/* ==========================================================================
   ▼▼▼ 2026-10-22 · 모바일 최적화(승인자 「홈페이지 전체적인 모바일 최적화 진행」) — 줄바꿈은 전 폭, 배치는 599px 이하만. PC 요소 위치 무변화(1024·1440·1920 실측).
   백업 _src/build/backup-138-1022-mo · 실측 _design/momeasure.py 360/390/540/768.
   줄바꿈: balance(핵심 부제, 0% 리드, 책임 3원칙 설명, 주소) · nbsp 3(제목 「서비스교육 및 위생교육」 · 「귀 기울이는」 — 줄 수 무변화).
           핵심 본문의 <br> 3줄은 PC 와 같은 설계 줄이라 그대로(모든 폭에서 같은 줄).
   고아 줄(전): 360 「…성형 윤리규칙을 / 준수합니다.」 · 390 「…언제나 함께 / 하겠습니다.」 · 540 「…서비스교육 및 / 위생교육」 · 768 「…귀 / 기울이는」.
   배치(<600): 핵심 01–05 인덱스 타일 1열(장당 ≈190px) → 2열 + 홀수 마지막 전폭(§2 A). 155px 칸에서 라벨바가 1·2줄로 섞이면
               바 윗선이 어긋나 라벨바 최소 높이를 두 줄로 맞췄다.
   ========================================================================== */
.fs-p-138 .fs-sec-head__sub,
.fs-p-138 .fs-strengths-zero .fs-lead,
.fs-p-138 .fs-card__desc,
.fs-p-138 .fs-address { text-wrap: balance; }
@media (max-width: 599px) {
  .fs-p-138 .fs-strengths-index {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--fs-sp-4);
  }
  .fs-p-138 .fs-strengths-index__item:nth-child(odd):last-child:not(:first-child) { grid-column: 1 / -1; }
  .fs-p-138 .fs-strengths-index .fs-labelbar {
    min-height: calc(2 * 1.32em + 14px);
    padding-inline: var(--fs-sp-2);
    word-break: keep-all;
    text-wrap: balance;
  }
}
