/* ==========================================================================
   assets/page/149.css — [149] 레이저리프팅 (카테고리 랜딩) 전용
   모든 셀렉터는 .fs-p-149 스코프. 색은 --fs-* 토큰만 쓴다 (새 hex 0개).
   임의 px 는 clamp(MO360, 절편px + 계수vw, PC1920) 형식으로만 쓴다.

   전용 컴포넌트
     .fs-laser-lifting-hero       장비 2대 타일 다크 히어로
     .fs-laser-lifting-layer      좌 도해 / 층 이름 척추 / 우 도해 (원본 도해의 라벨 재조판)
     .fs-laser-lifting-collagen   콜라겐 2컷 대조 + 도해
     .fs-laser-lifting-dark       다크 스테이트먼트 밴드 (사진 + 분석 항목 하이라인)
     .fs-laser-lifting-device     장비 라인업 카드 (사진 + 라벨바 + 원문 정의 + 플러스 버튼)
     .fs-laser-lifting-depth   ★ 시그니처 · 장비 5종 도달 깊이 자
     .fs-laser-lifting-spec       장비 비교 매트릭스 표
     .fs-laser-lifting-zone       얼굴 시술 부위 핀 맵
     .fs-laser-lifting-pick       울써마지 복합 시술 블록
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 히어로 — 장비 2대 타일 (다크)
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-hero { background: var(--fs-ink-band); }
.fs-p-149 .fs-laser-lifting-hero .fs-hero__bg img {
  opacity: .3;
  object-position: 50% 62%;
}
.fs-p-149 .fs-laser-lifting-hero .fs-hero__inner {
  padding-block: clamp(36px, 24.5px + 3.205vw, 86px);
}
.fs-p-149 .fs-laser-lifting-hero .fs-hero__kicker {
  line-height: 1.6;
  max-inline-size: 46ch;
}
.fs-p-149 .fs-laser-lifting-hero__lines {
  display: grid;
  gap: var(--fs-sp-2);
  font-size: var(--fs-t-lead);
  line-height: var(--fs-lh-body);
  color: var(--fs-on-dark);
}
.fs-p-149 .fs-laser-lifting-hero__lines b {
  font-weight: 700;
  color: var(--fs-white);
}
.fs-p-149 .fs-laser-lifting-hero__devices {
  list-style: none;
  margin: clamp(26px, 18.1px + 2.179vw, 60px) auto 0;
  padding: 0;
  inline-size: 100%;
  max-inline-size: 620px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--fs-gap-card);
}
.fs-p-149 .fs-laser-lifting-hero__tile {
  margin: 0;
  display: grid;
  background: var(--fs-white);
}
.fs-p-149 .fs-laser-lifting-hero__tile img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 100 / 96;
  object-fit: contain;
}
/* 1024↑ 에서는 카피를 좌측 컬럼으로 내리고 장비 타일이 우측 절반을 채운다.
   (중앙 정렬로는 1440·1920 에서 우측 25~33% 가 빈 잉크면으로 남는다) */
@media (min-width: 1024px) {
  .fs-p-149 .fs-laser-lifting-hero .fs-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 560fr) minmax(0, 800fr);
    column-gap: var(--fs-gap-col);
    align-items: center;
  }
  .fs-p-149 .fs-laser-lifting-hero .fs-hero__copy { justify-items: start; text-align: start; }
  .fs-p-149 .fs-laser-lifting-hero__devices { margin: 0; max-inline-size: none; }
}

/* --------------------------------------------------------------------------
   2. 층 도해 — 좌 초음파 / 층 이름 척추 / 우 고주파
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-layer {
  margin-block-start: var(--fs-sp-8);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: clamp(10px, 5.4px + 1.282vw, 30px);
}
.fs-p-149 .fs-laser-lifting-layer__fig { display: contents; margin: 0; }
.fs-p-149 .fs-laser-lifting-layer__box { display: block; background: var(--fs-cream); }
.fs-p-149 .fs-laser-lifting-layer__box img {
  display: block;
  inline-size: 100%;
  block-size: auto;
}
.fs-p-149 .fs-laser-lifting-layer__fig--l > .fs-laser-lifting-layer__box { grid-area: 1 / 1; }
.fs-p-149 .fs-laser-lifting-layer__fig--l > .fs-labelbar { grid-area: 2 / 1; }
.fs-p-149 .fs-laser-lifting-layer__fig--r > .fs-laser-lifting-layer__box { grid-area: 1 / 3; }
.fs-p-149 .fs-laser-lifting-layer__fig--r > .fs-labelbar { grid-area: 2 / 3; }

.fs-p-149 .fs-laser-lifting-layer__key {
  grid-area: 1 / 2;
  position: relative;
  inline-size: clamp(74px, 63.9px + 2.821vw, 118px);
  list-style: none;
  margin: 0;
  padding: 0;
}
.fs-p-149 .fs-laser-lifting-layer__key li {
  position: absolute;
  inset-inline: 0;
  inset-block-start: var(--fs-ly, 50%);
  transform: translateY(-50%);
  text-align: center;
  white-space: nowrap;
  font-size: var(--fs-t-sm);
  font-weight: 600;
  letter-spacing: var(--fs-ls-tight);
  color: var(--fs-ink);
}
.fs-p-149 .fs-laser-lifting-layer__key li::before,
.fs-p-149 .fs-laser-lifting-layer__key li::after {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inline-size: clamp(6px, 2.1px + 1.09vw, 23px);
  block-size: 1px;
  background: var(--fs-teal);
}
.fs-p-149 .fs-laser-lifting-layer__key li::before { inset-inline-end: 100%; margin-inline-end: 3px; }
.fs-p-149 .fs-laser-lifting-layer__key li::after { inset-inline-start: 100%; margin-inline-start: 3px; }

/* 719px 이하 : 도해를 세로로 쌓되 층 이름 척추는 첫 도해 오른쪽에 그대로 둔다.
   (목록으로 빼면 어느 띠가 근막층인지 그림에서 확인할 수 없다 — 두 도해는 같은 층 축이다) */
@media (max-width: 719px) {
  .fs-p-149 .fs-laser-lifting-layer {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto auto auto;
    row-gap: var(--fs-sp-6);
    column-gap: var(--fs-sp-2);
  }
  .fs-p-149 .fs-laser-lifting-layer__fig--r > .fs-laser-lifting-layer__box { grid-area: 3 / 1; }
  .fs-p-149 .fs-laser-lifting-layer__fig--r > .fs-labelbar { grid-area: 4 / 1; }
  .fs-p-149 .fs-laser-lifting-layer__key {
    inline-size: clamp(76px, 66.2px + 2.722vw, 98px);
    align-self: stretch;
  }
  .fs-p-149 .fs-laser-lifting-layer__key li {
    font-size: var(--fs-t-xs);
    letter-spacing: -0.03em;
  }
  .fs-p-149 .fs-laser-lifting-layer__key li::after { display: none; }
}

/* --------------------------------------------------------------------------
   3. 콜라겐 대조 블록
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-collagen { margin-block-start: clamp(28px, 22.3px + 1.282vw, 48px); }
.fs-p-149 .fs-laser-lifting-collagen__pair {
  list-style: none;
  margin: var(--fs-sp-7) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--fs-gap-card);
}
.fs-p-149 .fs-laser-lifting-collagen__pair figure { margin: 0; display: grid; }
.fs-p-149 .fs-laser-lifting-collagen__pair img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 5 / 6;
  object-fit: cover;
}
.fs-p-149 .fs-laser-lifting-collagen__stack { display: grid; gap: var(--fs-sp-4); align-content: start; }
.fs-p-149 .fs-laser-lifting-collagen__stack figure { margin: 0; display: grid; }
.fs-p-149 .fs-laser-lifting-collagen__stack img {
  display: block;
  inline-size: 100%;
  block-size: auto;
}
.fs-p-149 .fs-laser-lifting-collagen__tip img {
  aspect-ratio: 1238 / 449;
  object-fit: contain;
}
.fs-p-149 .fs-laser-lifting-collagen__note {
  font-size: var(--fs-t-sm);
  line-height: var(--fs-lh-body);
  color: var(--fs-muted);
}

/* --------------------------------------------------------------------------
   4. 다크 스테이트먼트 밴드
   ⚠ fs.css 는 .fs-section > .fs-container 에만 z-index:1 을 준다.
      .fs-section__bg 를 쓰면 다른 직계 자식이 배경에 덮이므로 명시한다.
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-dark > .fs-container { position: relative; z-index: 1; }
.fs-p-149 .fs-laser-lifting-dark .fs-section__bg img {
  opacity: .14;
  object-position: 88% 45%;
}
.fs-p-149 .fs-laser-lifting-dark__photo { margin: 0; display: block; overflow: hidden; }
.fs-p-149 .fs-laser-lifting-dark__photo img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 1090 / 640;
  object-fit: cover;
  object-position: 38% 50%;
}
.fs-p-149 .fs-laser-lifting-dark__q {
  margin-block-start: var(--fs-sp-6);
  line-height: var(--fs-lh-head);
}
.fs-p-149 .fs-laser-lifting-dark__lead {
  margin-block-start: var(--fs-sp-5);
  color: var(--fs-on-dark);
}
.fs-p-149 .fs-laser-lifting-dark__checks {
  list-style: none;
  margin: clamp(28px, 21.3px + 1.859vw, 57px) 0 0;
  padding: 0;
  display: grid;
  border-block-start: 1px solid var(--fs-teal-dk);
}
.fs-p-149 .fs-laser-lifting-dark__checks li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  column-gap: var(--fs-sp-5);
  padding-block: var(--fs-sp-4);
  border-block-end: 1px solid var(--fs-teal-dk);
  font-size: var(--fs-t-body);
  color: var(--fs-on-dark);
}
.fs-p-149 .fs-laser-lifting-dark__checks li b {
  font-family: var(--fs-font-en);
  font-size: var(--fs-t-xs);
  font-weight: 700;
  letter-spacing: var(--fs-ls-wide);
  color: var(--fs-teal);
}
@media (min-width: 600px) {
  .fs-p-149 .fs-laser-lifting-dark__checks { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--fs-gap-col); }
}

/* --------------------------------------------------------------------------
   5. 장비 라인업 카드
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-lineup__wide { margin: 0 0 var(--fs-gap-title); display: block; overflow: hidden; }
.fs-p-149 .fs-laser-lifting-lineup__wide img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 1440 / 305;
  object-fit: cover;
  object-position: 50% 0%;
}
.fs-p-149 .fs-laser-lifting-lineup__grid { list-style: none; margin: 0; padding: 0; }

.fs-p-149 .fs-laser-lifting-device {
  block-size: 100%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  background: var(--fs-white);
}
.fs-p-149 .fs-laser-lifting-device__fig {
  position: relative;
  margin: 0;
  display: grid;
}
.fs-p-149 .fs-laser-lifting-device__fig img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 520 / 450;
  object-fit: contain;
}
.fs-p-149 .fs-laser-lifting-device__fig .fs-plusbtn {
  position: absolute;
  inset-block-end: 0;
  inset-inline-end: 0;
}
.fs-p-149 .fs-laser-lifting-device__body {
  display: grid;
  align-content: start;
  gap: var(--fs-sp-4);
  padding: var(--fs-sp-5);
}
.fs-p-149 .fs-laser-lifting-device__desc {
  font-size: var(--fs-t-sm);
  line-height: var(--fs-lh-body);
  color: var(--fs-ink-soft);
}
.fs-p-149 .fs-laser-lifting-device__meta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: var(--fs-sp-3);
  font-size: var(--fs-t-sm);
  color: var(--fs-teal-dk);
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   6. ★ 시그니처 — 장비 5종 도달 깊이 자
      --fs-d1 / --fs-d2 = 1-based 층 인덱스(1 표피 · 2 진피 · 3 피하지방 · 4 근막)
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-depth {
  --fs-dimg: clamp(52px, 43.3px + 2.436vw, 94px);
  --fs-dlab: clamp(26px, 22.3px + 1.026vw, 42px);
  --fs-drow: clamp(32px, 26.3px + 1.282vw, 52px);
  margin-block-start: var(--fs-sp-6);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: clamp(10px, 4.9px + 1.41vw, 32px);
  align-items: start;
}
.fs-p-149 .fs-laser-lifting-depth__axis {
  list-style: none;
  margin: calc(var(--fs-dimg) + var(--fs-dlab)) 0 0;
  padding: 0;
  display: grid;
  grid-template-rows: repeat(4, var(--fs-drow));
  inline-size: clamp(64px, 52.5px + 3.205vw, 114px);
}
.fs-p-149 .fs-laser-lifting-depth__axis li {
  display: grid;
  align-content: center;
  justify-items: end;
  text-align: end;
  border-block-start: 1px solid var(--fs-line);
  font-size: var(--fs-t-sm);
  font-weight: 600;
  letter-spacing: var(--fs-ls-tight);
  color: var(--fs-ink);
}
.fs-p-149 .fs-laser-lifting-depth__axis li:last-child { border-block-end: 1px solid var(--fs-line); }
.fs-p-149 .fs-laser-lifting-depth__axis small {
  display: block;
  font-family: var(--fs-font-en);
  font-size: var(--fs-t-xs);
  font-weight: 400;
  letter-spacing: var(--fs-ls-wide);
  color: var(--fs-muted);
}
.fs-p-149 .fs-laser-lifting-depth__devs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(6px, 3.5px + 0.705vw, 17px);
}
.fs-p-149 .fs-laser-lifting-depth__dev {
  display: grid;
  grid-template-rows: var(--fs-dimg) var(--fs-dlab) repeat(4, var(--fs-drow)) auto;
}
.fs-p-149 .fs-laser-lifting-depth__fig { display: contents; margin: 0; }
.fs-p-149 .fs-laser-lifting-depth__fig img {
  grid-row: 1;
  display: block;
  inline-size: 100%;
  block-size: 100%;
  object-fit: contain;
}
.fs-p-149 .fs-laser-lifting-depth__fig .fs-labelbar {
  grid-row: 2;
  min-block-size: var(--fs-dlab);
  font-size: var(--fs-t-sm);
  line-height: 1.15;
}
.fs-p-149 .fs-laser-lifting-depth__track {
  grid-row: 3 / 7;
  display: grid;
  grid-template-rows: repeat(4, minmax(0, 1fr));
  background:
    linear-gradient(var(--fs-line) 1px, transparent 1px) 0 0 / 100% 25%,
    var(--fs-cream-2);
}
.fs-p-149 .fs-laser-lifting-depth__bar {
  grid-row: var(--fs-d1, 1) / calc(var(--fs-d2, 1) + 1);
  display: block;
  background: var(--fs-teal-text);
}
.fs-p-149 .fs-laser-lifting-depth__val {
  grid-row: 7;
  padding-block-start: var(--fs-sp-4);
  font-size: var(--fs-t-xs);
  line-height: 1.45;
  color: var(--fs-ink-soft);
  text-align: center;
}
.fs-p-149 .fs-laser-lifting-depth__note {
  margin-block-start: var(--fs-sp-4);
  font-size: var(--fs-t-xs);
  line-height: var(--fs-lh-body);
  color: var(--fs-muted-2);
}

/* 막대 성장 모션 — .fs-reveal 이 붙은 대상에만 초기 상태를 준다.
   (첫 화면 요소는 fs.js 가 .fs-reveal 을 붙이지 않으므로 영구히 숨는 사고를 막는다) */
:root.fs-js .fs-p-149 .fs-laser-lifting-depth__dev.fs-reveal .fs-laser-lifting-depth__bar {
  transform: scaleY(0);
  transform-origin: 50% 0;
  transition-property: transform;
  transition-duration: var(--fs-dur-slow, .8s);
  transition-timing-function: var(--fs-ease);
  transition-delay: 120ms;
}
:root.fs-js .fs-p-149 .fs-laser-lifting-depth__dev.fs-reveal.is-in .fs-laser-lifting-depth__bar {
  transform: none;
}

@media (max-width: 1023px) {
  .fs-p-149 .fs-laser-lifting-depth {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--fs-sp-3);
  }
  .fs-p-149 .fs-laser-lifting-depth__axis {
    margin: 0;
    inline-size: auto;
    grid-template-rows: none;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .fs-p-149 .fs-laser-lifting-depth__axis li {
    justify-items: start;
    text-align: start;
    padding-block: var(--fs-sp-2);
    padding-inline-start: var(--fs-sp-2);
    border-block-start: 0;
    border-inline-start: 1px solid var(--fs-line);
    font-size: var(--fs-t-xs);
  }
  .fs-p-149 .fs-laser-lifting-depth__axis li:last-child { border-block-end: 0; }
  .fs-p-149 .fs-laser-lifting-depth__devs {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--fs-sp-5);
  }
  .fs-p-149 .fs-laser-lifting-depth__dev {
    grid-template-rows: auto auto auto;
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--fs-sp-3);
    padding-block-end: var(--fs-sp-5);
    border-block-end: 1px solid var(--fs-line);
  }
  .fs-p-149 .fs-laser-lifting-depth__fig {
    display: flex;
    align-items: center;
    gap: var(--fs-sp-4);
  }
  .fs-p-149 .fs-laser-lifting-depth__fig img {
    inline-size: clamp(48px, 44.3px + 1.026vw, 64px);
    block-size: auto;
  }
  .fs-p-149 .fs-laser-lifting-depth__fig .fs-labelbar {
    padding-inline: var(--fs-sp-5);
    min-block-size: clamp(26px, 24.2px + 0.513vw, 34px);
  }
  .fs-p-149 .fs-laser-lifting-depth__track {
    grid-row: auto;
    grid-template-rows: none;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    block-size: clamp(18px, 16.2px + 0.513vw, 26px);
    background:
      linear-gradient(90deg, var(--fs-line) 1px, transparent 1px) 0 0 / 25% 100%,
      var(--fs-cream-2);
  }
  .fs-p-149 .fs-laser-lifting-depth__bar {
    grid-row: 1;
    grid-column: var(--fs-d1, 1) / calc(var(--fs-d2, 1) + 1);
  }
  .fs-p-149 .fs-laser-lifting-depth__val {
    grid-row: auto;
    padding-block-start: 0;
    text-align: start;
    font-size: var(--fs-t-sm);
  }
  :root.fs-js .fs-p-149 .fs-laser-lifting-depth__dev.fs-reveal .fs-laser-lifting-depth__bar {
    transform: scaleX(0);
    transform-origin: 0 50%;
  }
  :root.fs-js .fs-p-149 .fs-laser-lifting-depth__dev.fs-reveal.is-in .fs-laser-lifting-depth__bar {
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   7. 장비 비교 매트릭스
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-spec { margin-block-start: clamp(28px, 22.3px + 1.282vw, 48px); }
.fs-p-149 .fs-laser-lifting-spec .fs-table { min-inline-size: 880px; }
.fs-p-149 .fs-laser-lifting-spec .fs-table th[scope="row"] {
  background: var(--fs-cream);
  font-weight: 700;
  white-space: nowrap;
}
.fs-p-149 .fs-laser-lifting-spec .fs-table td { vertical-align: top; }
.fs-p-149 .fs-laser-lifting-spec .fs-table td em {
  font-style: normal;
  color: var(--fs-muted-2);
}
.fs-p-149 .fs-laser-lifting-spec__th {
  display: grid;
  justify-items: center;
  gap: var(--fs-sp-2);
}
.fs-p-149 .fs-laser-lifting-spec__chip {
  display: block;
  inline-size: clamp(38px, 33.8px + 1.154vw, 56px);
  block-size: auto;
  aspect-ratio: 1;
  object-fit: contain;
  background: var(--fs-white);
}
.fs-p-149 .fs-laser-lifting-spec .fs-table thead th { padding-block: var(--fs-sp-3); }
.fs-p-149 .fs-laser-lifting-spec .fs-table tbody th,
.fs-p-149 .fs-laser-lifting-spec .fs-table tbody td { padding-block: var(--fs-sp-3); }
.fs-p-149 .fs-laser-lifting-spec__origin {
  display: inline-block;
  margin-inline-start: var(--fs-sp-3);
  font-size: var(--fs-t-sm);
  font-weight: 500;
  letter-spacing: 0;
  color: var(--fs-muted);
}
.fs-p-149 .fs-laser-lifting-lineup .fs-sec-head { margin-block-end: var(--fs-sp-8); }
.fs-p-149 .fs-laser-lifting-spec__swipe { display: none; }
@media (max-width: 1023px) {
  .fs-p-149 .fs-laser-lifting-spec__swipe {
    display: block;
    margin-block-start: var(--fs-sp-5);
    font-size: var(--fs-t-sm);
    font-weight: 700;
    letter-spacing: var(--fs-ls-tight);
    color: var(--fs-teal-dk);
  }
}
.fs-p-149 .fs-laser-lifting-spec__note {
  margin-block-start: var(--fs-sp-5);
  font-size: var(--fs-t-xs);
  line-height: var(--fs-lh-body);
  color: var(--fs-muted-2);
}

/* --------------------------------------------------------------------------
   8. 얼굴 시술 부위 핀 맵
   -------------------------------------------------------------------------- */
/* 도해와 라벨바를 «같은 한 칸» 으로 묶어 컬럼 가운데에 세운다.
   ★ 폭은 여기서 정하지 않는다 — 파일 끝 「진단·수정 패스 B」의 --fs-zone-w 가
     스테이지와 라벨바 둘 다에 걸려 있어 여기에 폭을 또 쓰면 트랙만 넓어지고
     사진은 트랙 왼쪽에 붙어 «왼쪽으로 쏠린» 그림이 된다(2026-08-28 실측:
     트랙 326px / 사진 277px → 도해 중심이 컬럼 중심에서 24px 왼쪽).
   트랙을 auto 로 두면 트랙 = 사진 폭이 되고, justify-content 가 그 트랙을 가운데로 민다.
   좌우 핀 라벨은 트랙 밖으로 나가 앉으므로 남는 여백(각 변 ≥ 94px)이 그 자리다. */
.fs-p-149 .fs-laser-lifting-zone {
  margin: 0;
  display: grid;
  justify-content: center;
  justify-items: center;
  grid-template-columns: minmax(0, auto);
}
.fs-p-149 .fs-laser-lifting-zone__stage { position: relative; }
.fs-p-149 .fs-laser-lifting-zone__stage img {
  display: block;
  inline-size: 100%;
  block-size: auto;
}
.fs-p-149 .fs-laser-lifting-zone__pins { list-style: none; margin: 0; padding: 0; }
.fs-p-149 .fs-laser-lifting-zone__pin {
  position: absolute;
  inset-block-start: var(--fs-zy, 50%);
  transform: translateY(-50%);
  white-space: nowrap;
  font-size: var(--fs-t-sm);
  font-weight: 700;
  letter-spacing: var(--fs-ls-tight);
  color: var(--fs-ink);
}
.fs-p-149 .fs-laser-lifting-zone__pin::after {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inline-size: clamp(12px, 8.3px + 1.026vw, 28px);
  block-size: 1px;
  background: var(--fs-teal-dk);
}
.fs-p-149 .fs-laser-lifting-zone__pin--l {
  inset-inline-end: 100%;
  padding-inline-end: clamp(18px, 14.3px + 1.026vw, 34px);
}
.fs-p-149 .fs-laser-lifting-zone__pin--l::after { inset-inline-end: 0; }
.fs-p-149 .fs-laser-lifting-zone__pin--r {
  inset-inline-start: 100%;
  padding-inline-start: clamp(18px, 14.3px + 1.026vw, 34px);
}
.fs-p-149 .fs-laser-lifting-zone__pin--r::after { inset-inline-start: 0; }
.fs-p-149 .fs-laser-lifting-zone > .fs-labelbar {
  inline-size: 100%;
  margin-block-start: var(--fs-sp-5);
}

/* 759px 이하 : 지시선 5개가 사진에 구워져 있으므로 핀을 정적 목록으로 빼면
   선이 라벨 없이 허공에 매달린다. 좁은 폭에서는 핀을 프레임 안쪽 지시선 끝에 붙인다. */
@media (max-width: 759px) {

  .fs-p-149 .fs-laser-lifting-zone__pin {
    padding-block: 2px;
    font-size: var(--fs-t-xs);
    font-weight: 700;
    color: var(--fs-white);
    background: var(--fs-teal-dk);
  }
  .fs-p-149 .fs-laser-lifting-zone__pin--l {
    inset-inline: 0 auto;
    padding-inline: var(--fs-sp-2);
  }
  .fs-p-149 .fs-laser-lifting-zone__pin--r {
    inset-inline: auto 0;
    padding-inline: var(--fs-sp-2);
  }
  .fs-p-149 .fs-laser-lifting-zone__pin::after { display: none; }
}

/* --------------------------------------------------------------------------
   8-b. 설계 원칙 01·02 — 번호는 한 칸, 본문은 컬럼 전폭
   원본은 .fs-card--rule 의 num|제목|본문 3열이라 본문이 190px 로 눌리고
   제목 두 줄과 본문 다섯 줄의 밑선이 어긋났다. 본문을 제목 아래로 내린다.
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-principle__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--fs-gap-card);
}
.fs-p-149 .fs-laser-lifting-principle__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: var(--fs-sp-5);
  padding: clamp(20px, 16.3px + 1.03vw, 34px) clamp(20px, 14.8px + 1.44vw, 40px);
  background: var(--fs-white);
  border-inline-start: 2px solid var(--fs-teal);
}
.fs-p-149 .fs-laser-lifting-principle__num {
  font-family: var(--fs-font-en);
  font-size: var(--fs-t-num);
  font-weight: 700;
  line-height: 1;
  color: var(--fs-teal-dk);
  font-variant-numeric: tabular-nums;
}
.fs-p-149 .fs-laser-lifting-principle__body { display: grid; gap: var(--fs-sp-3); }
.fs-p-149 .fs-laser-lifting-principle__sub {
  font-size: var(--fs-t-sm);
  font-weight: 500;
  color: var(--fs-muted);
}
.fs-p-149 .fs-laser-lifting-principle__title {
  font-size: var(--fs-t-h3);
  font-weight: 700;
  line-height: var(--fs-lh-head);
  letter-spacing: var(--fs-ls-tight);
  color: var(--fs-ink);
}
.fs-p-149 .fs-laser-lifting-principle__desc {
  font-size: var(--fs-t-body);
  line-height: var(--fs-lh-body);
  color: var(--fs-ink-soft);
}
/* 01 본문의 대괄호 열거를 세 칸으로 편다 — 문장은 그만큼 짧게 다시 썼다 */
.fs-p-149 .fs-laser-lifting-principle__factors {
  list-style: none;
  margin: var(--fs-sp-2) 0 0;
  padding: 0;
  display: grid;
  gap: var(--fs-sp-2);
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 700px) {
  .fs-p-149 .fs-laser-lifting-principle__factors { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.fs-p-149 .fs-laser-lifting-principle__factors li {
  display: grid;
  gap: var(--fs-sp-1);
  align-content: start;
  padding: var(--fs-sp-4) var(--fs-sp-4);
  background: var(--fs-cream);
}
.fs-p-149 .fs-laser-lifting-principle__fnum {
  font-family: var(--fs-font-en);
  font-size: var(--fs-t-xs);
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--fs-teal-dk);
}
.fs-p-149 .fs-laser-lifting-principle__ftext {
  font-size: var(--fs-t-sm);
  font-weight: 600;
  line-height: var(--fs-lh-head);
  color: var(--fs-ink);
}

/* --------------------------------------------------------------------------
   9. 포시즌 PICK — 울써마지 (독립 섹션이 아니라 #principle 하단 인용 블록)
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-pick {
  margin-block-start: clamp(26px, 21.4px + 1.282vw, 44px);
  padding-block-start: clamp(22px, 18.4px + 1.0vw, 36px);
  border-block-start: 1px solid var(--fs-teal);
  display: grid;
  gap: var(--fs-gap-col);
}
.fs-p-149 .fs-laser-lifting-pick__body {
  display: grid;
  align-content: center;
  justify-items: start;
  gap: var(--fs-sp-5);
}
.fs-p-149 .fs-laser-lifting-pick__q { line-height: var(--fs-lh-head); }
.fs-p-149 .fs-laser-lifting-pick__lead { color: var(--fs-ink-soft); }
.fs-p-149 .fs-laser-lifting-pick__combo {
  list-style: none;
  margin: var(--fs-sp-2) 0 0;
  padding: 0;
  inline-size: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: var(--fs-sp-4);
}
.fs-p-149 .fs-laser-lifting-pick__combo > li:not(.fs-laser-lifting-pick__plus) {
  display: grid;
  gap: var(--fs-sp-3);
}
.fs-p-149 .fs-laser-lifting-pick__cap {
  font-size: var(--fs-t-sm);
  line-height: var(--fs-lh-body);
  color: var(--fs-muted);
  text-align: center;
}
@media (min-width: 900px) {
  .fs-p-149 .fs-laser-lifting-pick {
    grid-template-columns: minmax(0, 700fr) minmax(0, 660fr);
    align-items: center;
  }
}
.fs-p-149 .fs-laser-lifting-pick__plus {
  position: relative;
  inline-size: clamp(34px, 30.3px + 1.026vw, 50px);
  aspect-ratio: 1;
  border-radius: var(--fs-radius-round);
  background: var(--fs-teal-text);
}
.fs-p-149 .fs-laser-lifting-pick__plus::before,
.fs-p-149 .fs-laser-lifting-pick__plus::after {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  background: var(--fs-white);
  transform: translate(-50%, -50%);
}
.fs-p-149 .fs-laser-lifting-pick__plus::before { inline-size: 44%; block-size: 2px; }
.fs-p-149 .fs-laser-lifting-pick__plus::after { inline-size: 2px; block-size: 44%; }
.fs-p-149 .fs-laser-lifting-pick__photo { margin: 0; display: block; overflow: hidden; }
.fs-p-149 .fs-laser-lifting-pick__photo img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 1220 / 700;
  object-fit: cover;
  object-position: 50% 30%;
}

/* --------------------------------------------------------------------------
   10. 마감 CTA
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-cta__photo { margin: 0; display: block; overflow: hidden; }
.fs-p-149 .fs-laser-lifting-cta__photo img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 962 / 368;
  object-fit: cover;
  object-position: 50% 40%;
}
.fs-p-149 .fs-laser-lifting-cta__q { line-height: var(--fs-lh-head); }
.fs-p-149 .fs-laser-lifting-cta .fs-btnbar { margin-block-start: var(--fs-sp-7); }

/* --------------------------------------------------------------------------
   12. 간격 유틸 (인라인 style 대체) · 룰 카드 머리
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-layer__note { margin-block-start: var(--fs-sp-5); }
.fs-p-149 .fs-laser-lifting-collagen__lead { margin-block-start: var(--fs-sp-5); }
.fs-p-149 .fs-laser-lifting-spec__wrap { margin-block-start: var(--fs-sp-6); }
.fs-p-149 .fs-laser-lifting-principle__grid { margin-block-start: var(--fs-sp-7); }
.fs-p-149 .fs-laser-lifting-principle__wide {
  margin: clamp(26px, 21.4px + 1.28vw, 44px) 0 0;
  display: block;
  overflow: hidden;
}
.fs-p-149 .fs-laser-lifting-principle__wide img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 1440 / 336;
  object-fit: cover;
  object-position: 50% 0%;
}
.fs-p-149 .fs-laser-lifting-cta__sub { margin-block-start: var(--fs-sp-5); }

/* --------------------------------------------------------------------------
   11. reduced-motion — 새 모션 전부 무효화 (레이아웃은 동일)
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  :root.fs-js .fs-p-149 .fs-laser-lifting-depth__dev.fs-reveal .fs-laser-lifting-depth__bar,
  :root.fs-js .fs-p-149 .fs-laser-lifting-depth__dev.fs-reveal.is-in .fs-laser-lifting-depth__bar {
    transform: none !important;
    transition: none !important;
  }
}

/* --------------------------------------------------------------------------
   13. 좁은 폭에서 와이드 사진이 실낱처럼 얇아지는 것을 막는다
   -------------------------------------------------------------------------- */
@media (max-width: 1023px) {
  .fs-p-149 .fs-laser-lifting-lineup__wide img { aspect-ratio: 16 / 9; }
  .fs-p-149 .fs-laser-lifting-principle__wide img { aspect-ratio: 16 / 9; }
  .fs-p-149 .fs-laser-lifting-cta__photo img { aspect-ratio: 16 / 9; }
  .fs-p-149 .fs-laser-lifting-dark__photo img { aspect-ratio: 16 / 9; }
}
@media (max-width: 599px) {
  .fs-p-149 .fs-laser-lifting-pick__combo { gap: var(--fs-sp-3); }
  .fs-p-149 .fs-laser-lifting-pick__combo .fs-labelbar { font-size: var(--fs-t-xs); padding-inline: var(--fs-sp-1); }
}

/* ── 2026-08-27 · VIBE LOCK 스윕 ─────────────────────────────────── */
/* LOCK 2 — 라벨바는 도해에 «간격 0» 으로 붙는다.
   위반이 확인된 래퍼만 지운다(아이콘 크기 도해의 라벨바는 규칙 대상이 아니라 그대로 둔다). */
.fs-p-149 .fs-laser-lifting-zone .fs-labelbar { margin-block-start: 0; border-block-start: 0; }

/* ==========================================================================
   ▼▼▼ 진단·수정 패스 — 2026-08-27
   근거: _design/QA/149.md. 48.css 「V70 승격분」에서 검증된 패턴을 그대로 옮겼다.
   ========================================================================== */

/* --------------------------------------------------------------------------
   A. 접근성 — 각주 회색이 AA(4.5:1) 미달
   --fs-muted-2 #7D7D7D 는 흰 배경에서 4.12:1 이다. 이 페이지의 각주는 둘 다
   흰 섹션 위에 놓이므로 --fs-ink-soft(#3F3F3F · 10.5:1)로 올린다.
   (--fs-muted #939393 은 더 낮고, 통과하는 텍스트 잉크 토큰은 ink / ink-soft 뿐이다)
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-depth__note,
.fs-p-149 .fs-laser-lifting-spec__note { color: var(--fs-ink-soft); }

/* --------------------------------------------------------------------------
   B. [LOCK 2 · 폭 조항] 라벨바 폭 === 도해 폭
   부위 맵의 라벨바가 620px 인데 사진은 300px 다. 핀 5개가 사진 좌우 여백에
   절대배치돼 있어 «스테이지» 가 사진보다 320px 넓기 때문이다. 렌더에서
   「띠 위에 세로 사진이 얹힌」 모양으로 읽힌다. vibecheck 의 L2 는 margin-top ·
   border-top 만 재므로 이 위반을 잡지 못한다 — 폭을 사진에 맞춘다.
   -------------------------------------------------------------------------- */
/* 2026-08-28 축 반전(도해를 왼쪽 앵커로) 후 이 컬럼이 562px 로 넓어졌다 —
   340px 상한이면 도해가 컬럼 안에서 작아 보인다. 상한만 374 로 올린다.
   (그 이상은 1024px 에서 좌우 핀 라벨이 컨테이너 밖으로 나간다) */
.fs-p-149 .fs-laser-lifting-zone { --fs-zone-w: min(100%, clamp(190px, 158.6px + 8.65vw, 374px)); }
.fs-p-149 .fs-laser-lifting-zone__stage { inline-size: var(--fs-zone-w); }
.fs-p-149 .fs-laser-lifting-zone > .fs-labelbar { inline-size: var(--fs-zone-w); }
@media (max-width: 759px) {
  .fs-p-149 .fs-laser-lifting-zone { --fs-zone-w: min(100%, 300px); }
}

/* --------------------------------------------------------------------------
   C. 다크 밴드 체크리스트의 번호 정렬
   --fs-font-en 의 「01」은 「02·03·04」보다 2.6px 좁아서 좌열 두 행의 글자
   시작점이 995.75px / 998.19px 로 어긋난다.
   font-variant-numeric: tabular-nums 는 서브셋에 tnum 이 없어 먹지 않았다(실측).
   번호 칸의 최소 폭을 고정해 어느 숫자가 와도 같은 자리에서 글자가 시작하게 한다.
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-dark__checks li b {
  font-variant-numeric: tabular-nums;
  min-inline-size: 3ch;
}

/* --------------------------------------------------------------------------
   D. 태블릿 — 5열 카드가 마지막 줄에 1장만 남는다
   fs.css:334 가 600~1023px 에서 .fs-grid--5 를 2열로 만들어 2+2+1 이 된다.
   48.css F 와 같은 처방: 3+2 로 나눠 고아 행을 없앤다.
   -------------------------------------------------------------------------- */
@media (min-width: 600px) and (max-width: 1023px) {
  .fs-p-149 .fs-laser-lifting-lineup__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* --------------------------------------------------------------------------
   E. 제목 뒤에 그어지는 70px 틸 선 (48.css B)
   ★ 「.is-in 이면 보이기」로 짜면 첫 화면 제목의 선이 영원히 안 그어진다.
     fs.js 는 첫 화면 대상에 .fs-reveal 자체를 붙이지 않는다.
     → 기본을 「그어진 상태」로 두고 .fs-reveal:not(.is-in) 에만 초기 은닉.
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-nose-head h2,
.fs-p-149 .fs-sec-head__title,
.fs-p-149 .fs-laser-lifting-dark h2 { position: relative; }

.fs-p-149 .fs-nose-head h2::after,
.fs-p-149 .fs-sec-head__title::after,
.fs-p-149 .fs-laser-lifting-dark h2::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-149 h2.fs-reveal:not(.is-in)::after,
:root.fs-js .fs-p-149 .fs-reveal:not(.is-in) h2::after { transform: scaleX(0); }

/* --------------------------------------------------------------------------
   F. 호버 — 프레임은 고정, 사진만 움직인다 (48.css D). 그림자는 쓰지 않는다.
   대상은 «누를 수 있는» 장비 카드 5장뿐이다(각 카드에 .fs-plusbtn 링크가 있다).
   틸트(data-fs-tilt)는 이 페이지에 0건이라 53 의 광택 사고는 해당 없다.
   -------------------------------------------------------------------------- */
.fs-p-149 .fs-laser-lifting-device__fig { overflow: hidden; }
.fs-p-149 .fs-laser-lifting-device__fig img {
  transition: transform var(--fs-dur-slow) var(--fs-ease-out);
}
@media (hover: hover) and (pointer: fine) {
  .fs-p-149 .fs-laser-lifting-device:hover .fs-laser-lifting-device__fig img { transform: scale(1.045); }
  /* 라벨바는 사진과 함께 커지면 안 된다 — 글자가 흔들린다. 색만 한 단계 */
  .fs-p-149 .fs-laser-lifting-device:hover .fs-labelbar {
    background: var(--fs-teal-dk);
    transition: background var(--fs-dur) var(--fs-ease);
  }
}

/* --------------------------------------------------------------------------
   G. [V70 · B] 다크 밴드의 50:50 을 깬다
   680fr : 720fr 에 좌우 거터까지 있어 «맞붙은 두 장» 으로 읽힌다.
   사진(dark-doctor.jpg 평균 휘도 157 — 겹침 하한 110 통과)을 컨테이너 밖
   화면 가장자리까지 흘려 축을 비대칭으로 만든다. 글자는 자기 열에 그대로 두어
   사진 위에 흰 글자가 얹히는 대비 위험을 만들지 않는다.
   음수 마진은 PC 가로(1024↑)로만 — 모바일에서는 세로 스택이라 의미가 없다.
   -------------------------------------------------------------------------- */
@media (min-width: 1024px) {
  .fs-p-149 .fs-laser-lifting-dark__photo {
    margin-inline-start: calc(-1 * ((100vw - min(100vw, var(--fs-container) + var(--fs-gutter) * 2)) / 2 + var(--fs-gutter)));
  }
}

/* --------------------------------------------------------------------------
   H. reduced-motion — 위에서 새로 얹은 모션 전부 무효화 (레이아웃은 동일)
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .fs-p-149 .fs-nose-head h2::after,
  .fs-p-149 .fs-sec-head__title::after,
  .fs-p-149 .fs-laser-lifting-dark h2::after { transform: scaleX(1) !important; transition: none !important; }
  .fs-p-149 .fs-laser-lifting-device__fig img { transition: none !important; }
  .fs-p-149 .fs-laser-lifting-device:hover .fs-laser-lifting-device__fig img { transform: none !important; }
}

/* ==========================================================================
   ▼▼▼ 2026-10-22 · 모바일 최적화(승인자 「홈페이지 전체적인 모바일 최적화 진행」) — 줄바꿈은 전 폭, 배치는 599px 이하만. PC 요소 위치 무변화(1024·1440·1920 실측).
   백업 _src/build/backup-149-1022-mo · 실측 _design/momeasure.py 360/390/540/768.
   줄바꿈: 층 리드 <br> → .fs-lead__s 두 블록(「…초음파 / 리프팅과」 고아) · balance(히어로 킥커, 콜라겐 본문·노트, 라인업 부제·설명,
           깊이 비교표 칸, 원칙 설명, PICK 리드·캡션, 주소) · nbsp 5(킥커 「ULTHERAPY PRIME」「THERMAGE FLX」「VIRTUE RF」 · 부제 「울쎄라피 프라임」 ·
           원칙 제목 「먼저 봅니다」「적용하지 않습니다」 · 킥커·부제의 « · » 앞 4곳씩(점이 줄 머리로 가지 않게, §7-18) — 줄 수 무변화).
   배치(<600): ① 장비 라인업 5장 1열(장당 ≈400px) → «사진+라벨바 왼쪽 · 설명 오른쪽» 행(§2 B — no-implant 유형별과 같은 짜임).
               ② 다크 밴드 인용의 형광 칸 inline(「설계하는지 / 가 핵심입니다」, §7-19) · ③ 울써마지 두 장 위 정렬(캡션 줄 수가 달라 라벨바가 어긋났다).
   ========================================================================== */
.fs-p-149 .fs-lead__s { display: block; text-wrap: balance; }
.fs-p-149 .fs-hero__kicker,
.fs-p-149 .fs-laser-lifting-collagen__lead,
.fs-p-149 .fs-laser-lifting-collagen__note,
.fs-p-149 .fs-sec-head__sub,
.fs-p-149 .fs-laser-lifting-device__desc,
.fs-p-149 .fs-table td,
.fs-p-149 .fs-laser-lifting-principle__desc,
.fs-p-149 .fs-laser-lifting-pick__lead,
.fs-p-149 .fs-laser-lifting-pick__cap,
.fs-p-149 .fs-address { text-wrap: balance; }
@media (max-width: 599px) {
  .fs-p-149 .fs-laser-lifting-lineup__grid { row-gap: var(--fs-sp-4); }
  .fs-p-149 .fs-laser-lifting-device {
    grid-template-columns: min(40%, 220px) minmax(0, 1fr);
    grid-template-rows: auto;
    align-items: center;
  }
  .fs-p-149 .fs-laser-lifting-device__body { padding: var(--fs-sp-4) var(--fs-sp-4) var(--fs-sp-4) var(--fs-sp-5); }
  .fs-p-149 .fs-laser-lifting-device__desc { word-break: keep-all; }
  .fs-p-149 .fs-laser-lifting-dark__q .fs-mark {
    display: inline;
    -webkit-box-decoration-break: clone;
            box-decoration-break: clone;
  }
  .fs-p-149 .fs-laser-lifting-pick__combo { align-items: start; }
  .fs-p-149 .fs-laser-lifting-pick__plus { align-self: center; }
  .fs-p-149 .fs-table td { word-break: keep-all; }
}
