/* ==========================================================================
   법무법인 서앤율 — 메인 홈 (Figma: 서울 본사무소 주소 수정_Main 204:49835)
   PC 1440 기준 / Mobile 375 기준, 768px 브레이크포인트
   ========================================================================== */
@import url("tokens.css");

/* ---------- GNB ---------- */
.gnb {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 91px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  z-index: 20;
}
/* 와이드 모니터에서 로고·메뉴가 화면 양끝으로 벌어지지 않게 본문 레이아웃(콘텐츠 1200)과
 * 같은 폭으로 캡·중앙 정렬(2026-08-27) — 로고 좌측이 섹션 타이틀 기준선과 일치한다.
 * gnb--light 도 같은 row 를 쓰므로 함께 적용됨 */
.gnb__row { display: flex; align-items: center; justify-content: space-between; width: 100%; max-width: 1200px; margin: 0 auto; }
.gnb__logo img { width: 196px; height: 39px; }
.gnb__menu { display: flex; align-items: center; gap: 40px; }
.gnb__menu a {
  font-weight: 700; font-size: 20px; color: #fff;
  /* 메뉴명은 관리자 자유 입력 — 폭 고정(80px) 시 4글자 초과가 줄바꿈되므로 min-width+nowrap (2026-09-02) */
  letter-spacing: -0.03em; text-align: center; min-width: 80px; white-space: nowrap;
  /* 검수 코멘트(정의서 5p, GNB 대상): 마우스 오버 전에는 반투명, 오버 시 뚜렷 (2026-09-02) */
  opacity: 0.65; transition: opacity 0.2s;
}
.gnb__menu a:hover, .gnb__menu .nh-nav-item:hover a { opacity: 1; }
/* 드롭다운 안의 하위 메뉴 항목은 상시 불투명(위 반투명 규칙이 자손까지 물드는 것 방지) */
.gnb__menu .nh-nav-drop a { opacity: 1; }
.gnb__burger { display: none; }

/* ---------- Hero ---------- */
.hero { position: relative; height: 840px; overflow: hidden; }
.hero__bg { position: absolute; inset: 0; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.hero__bg::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.1); }
.hero__content {
  position: absolute; left: 50%; top: calc(50% + 28px);
  transform: translate(-50%, -50%);
  display: flex; flex-direction: column; align-items: center; gap: 60px;
  width: max-content;
}
.hero__title { font-size: 60px; color: #fff; text-align: center; letter-spacing: -0.04em; line-height: var(--lh-tight); /* 피그마 최종본 Main/Hero 60/72 = 120% (2026-09-24, 검토 P7) */ }
.hero__title .t-light { font-weight: 300; }
.hero__title .t-bold { font-weight: 700; }
.hero__scroll { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-top: 60px; } /* 스크롤다운을 더 아래로(정의서 50p 검수) */
.hero__scroll img { width: 40px; height: 40px; }
.hero__scroll span { font-weight: 300; font-size: 16px; color: #fff; }
.hero__deco {
  position: absolute; left: 50%; top: 800px; transform: translateX(-50%);
  width: 320px;
}

/* ---------- Quick Menu (floating) ---------- */
.quick {
  position: fixed; right: 24px; bottom: 80px;
  width: 64px; z-index: 30;
  filter: drop-shadow(0 4px 15px rgba(0, 0, 0, 0.08));
}
.quick__label {
  background: var(--color-main); color: #fff;
  font-weight: 700; font-size: var(--fs-label); line-height: 1;
  text-align: center; padding: 10px 0;
  border-radius: 30px 30px 0 0;
}
.quick__item {
  position: relative;
  /* 아이콘 아래 라벨 상시 노출(2026-09-02, 정의서 6p 검수 코멘트) — 세로 스택 */
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
  background: #fff; border-bottom: 1px solid #f0f0f0;
  padding: 11px 0 9px;
  width: 100%;
}
.quick__item img { width: 33px; height: 33px; } /* 2026-09-11 피그마 Quick Menu Desktop 33×33 (D3) */
.quick__item--phone img { width: 25px; height: 28px; } /* 2026-09-11 피그마 Quick Menu Desktop 전화 아이콘 25×28 — 33×33 아닌 별도 규격 (D3) */
.quick__item:last-child { border-bottom: 0; border-radius: 0 0 30px 30px; }
.quick__name { font-size: 12px; font-weight: 500; color: #000; line-height: 1; white-space: nowrap; } /* 2026-09-09 피그마 12 Medium #000 (P1-3) */
/* PC 사이드 바 호버(2026-10-18 사용자 요청) — 칸 이동 없이 그 칸만 색 반전: 브랜드 블루 배경 + 흰 글자·흰 아이콘.
 * 종전 호버(아래 Phase 6A .quick__item:hover translateX(-4px))는 칸이 왼쪽으로 빠져 흰 카드가 따로 떠 보였음 → PC 에선 transform 끔.
 * 아이콘은 검정 단색 SVG(img)라 filter 로 흰색. 위쪽 옅은 흰 선(inset 그림자, 크기 무변화)은 전화상담 칸이 파란 Menu 머리와 붙어 보이지 않게.
 * 글자·아이콘은 즉시, 배경만 서서히(업무분야 카드와 같은 원칙 — 검정 글자가 파랑 위에 깜빡이지 않게).
 * 오시는 길(마지막 칸) 아래 여백 9 → 20: 아래 모서리 둥글기 30 안에서 글자가 곡선에 붙어 보이던 것. 모바일 하단 바(≤1199)는 무변경. */
@media (min-width: 1200px) {
  .quick .quick__item { transition: background-color 0.2s; }
  .quick .quick__item:hover, .quick .quick__item:focus-visible { transform: none; background: var(--color-main); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35); }
  .quick .quick__item:hover .quick__name, .quick .quick__item:focus-visible .quick__name { color: #fff; }
  .quick .quick__item:hover img, .quick .quick__item:focus-visible img { filter: brightness(0) invert(1); }
  .quick .quick__item:last-child { padding-bottom: 20px; }
}

/* ---------- USP Intro ---------- */
.usp-intro {
  background: var(--color-main);
  height: 800px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 220px;
}
.usp-intro__wrap { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.usp-intro__title { font-size: 60px; color: #fff; letter-spacing: -0.03em; line-height: var(--lh-tight); /* 피그마 최종본 USP Intro·USP Point 제목 60/72 = 120% (2026-09-24, 검토 P7) */ white-space: nowrap; }
.usp-intro__title .t-light { font-weight: 300; }
.usp-intro__title .t-bold { font-weight: 700; }
.usp-intro__line { width: 200px; height: 2px; background: #fff; flex: none; }
.usp-intro__desc {
  display: flex; flex-direction: column; gap: 8px;
  font-size: 24px; text-align: right; color: #fff; font-weight: 400; /* #ededed→#fff 피그마 */
  letter-spacing: -0.03em;
}
.usp-intro__desc strong { color: #fff; font-weight: 700; }

/* ---------- USP Points ---------- */
.usp {
  background: #fff;
  padding: 152px 120px 0;
  height: 800px;
  display: flex; justify-content: center;
}
.usp--last { height: 929px; }
.usp__wrap {
  display: flex; align-items: flex-start; justify-content: space-between;
  width: 100%; max-width: 1200px;
}
.usp__heading { font-size: 60px; color: #000; letter-spacing: -0.03em; line-height: var(--lh-tight); /* 피그마 최종본 USP Intro·USP Point 제목 60/72 = 120% (2026-09-24, 검토 P7) */ white-space: nowrap; }
.usp__heading .t-light { font-weight: 300; }
.usp__heading .t-bold { font-weight: 700; }
.usp__media { display: flex; flex-direction: column; gap: 32px; width: 700px; }
.usp__img { width: 700px; height: 400px; border-radius: 20px; object-fit: cover; }
.usp__caption { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.usp__num-title { display: flex; align-items: center; gap: 16px; white-space: nowrap; }
.usp__num {
  font-weight: 400; font-size: var(--fs-number-pc); line-height: 100px; letter-spacing: -0.03em;
  background: linear-gradient(to bottom, var(--color-main), var(--color-secondary-500));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.usp__title { font-size: 32px; color: #000; letter-spacing: -0.03em; line-height: var(--lh-tight); /* 피그마 최종본 USP Point 32/38.2 ≈ 120% (2026-09-24, 검토 P7) */ }
.usp__title .t-med { font-weight: 500; }
.usp__title .t-bold { font-weight: 700; }
.usp__desc { font-weight: 600; font-size: 20px; color: var(--color-neutral-900); width: 372px; }

/* ---------- Reviews ---------- */
.reviews {
  background: var(--color-primary-50);
  height: 751px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 60px;
  position: relative;
}
.reviews__title { font-weight: 700; font-size: 60px; color: #000; text-align: center; }
.reviews__deck { position: relative; width: 900px; height: 309px; }
.reviews__card {
  position: absolute;
  background: #fff; border-radius: 20px;
  box-shadow: var(--shadow-default);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 60px 40px;
}
.reviews__card--1 { left: 122px; top: 0; width: 655px; height: 229px; z-index: 1; }
.reviews__card--2 { left: 76px; top: 18px; width: 748px; height: 261px; z-index: 2; }
.reviews__card--3 { left: 0; top: 48px; width: 900px; z-index: 3; }
.reviews__card--1 .reviews__inner, .reviews__card--2 .reviews__inner { visibility: hidden; }
.reviews__inner { display: flex; flex-direction: column; align-items: center; gap: 40px; }
.reviews__inner img { width: 30px; height: 30px; }
.reviews__quote-wrap { display: flex; flex-direction: column; align-items: center; gap: 24px; }
.reviews__quote {
  font-weight: 500; font-size: 26px; color: #000; text-align: center;
  max-width: 638px;
}
.reviews__author { font-weight: 400; font-size: 20px; color: var(--color-neutral-600); }
.reviews__nav {
  position: absolute; left: 50%; top: 442px; transform: translateX(-50%);
  width: 806px;
  display: flex; align-items: center; justify-content: space-between;
  pointer-events: none;
}
.reviews__nav button { pointer-events: auto; padding: 0; line-height: 0; }
.reviews__nav img { width: 40px; height: 40px; }
.reviews__nav .next img { transform: rotate(180deg); }

/* ---------- Practice Areas ---------- */
.practice {
  background: #fff;
  height: 800px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 120px;
}
.practice__wrap {
  display: flex; align-items: flex-start; justify-content: space-between;
  width: 100%; max-width: 1200px;
}
.practice__title-group { display: flex; flex-direction: column; gap: 16px; }
.practice__title { font-weight: 700; font-size: 56px; color: #000; }
.practice__sub { font-weight: 600; font-size: 24px; color: var(--color-neutral-700); }
.practice__list {
  display: flex; flex-direction: column; gap: 10px;
  width: 600px;
  filter: drop-shadow(0 4px 15px rgba(0, 0, 0, 0.05));
}
.practice__card {
  display: flex; align-items: center; justify-content: space-between;
  height: 100px; padding: 0 32px;
  border-radius: 2px;
  background: #fff; border: 1px solid var(--color-neutral-200);
  font-weight: 500; font-size: 24px; color: var(--color-main);
}
.practice__card--active {
  background: linear-gradient(92deg, var(--color-main) 0%, #74c5fa 112%);
  border: 0;
  font-weight: 700; color: #fff;
}
.practice__card img { width: 8px; height: 16px; }

/* ---------- Lawyer Profile ---------- */
.profile { background: var(--color-secondary-500); height: 905px; position: relative; overflow: hidden; }
.profile__inner { position: relative; width: 1440px; max-width: 100%; height: 100%; margin: 0 auto; }
.profile__img-group { position: absolute; left: 249px; top: 137px; width: 395px; height: 623px; }
.profile__img-group img { width: 100%; height: 100%; object-fit: contain; }
.profile__img-fade {
  position: absolute; left: 192px; top: 696px; width: 507px; height: 112px;
  background: linear-gradient(to bottom, rgba(26, 40, 69, 0) 10%, var(--color-secondary-500) 50%);
  filter: blur(15px);
}
.profile__text { position: absolute; left: 720px; top: 215px; display: flex; flex-direction: column; gap: 47px; }
.profile__quote {
  font-family: var(--font-serif); font-weight: 600; font-size: 40px; color: #fff;
  letter-spacing: var(--ls-serif); white-space: nowrap;
}
.profile__group { display: flex; flex-direction: column; gap: 32px; width: 361px; }
.profile__name { font-weight: 700; font-size: 32px; color: #fff; }
.profile__career { display: flex; flex-direction: column; gap: 8px; }
.profile__career li {
  list-style: disc; margin-left: 24px;
  font-weight: 500; font-size: 16px; color: var(--color-neutral-200);
}
.profile__sign { position: absolute; left: 991px; top: 593px; width: 181px; height: 77px; overflow: hidden; }
.profile__sign img { width: 100%; height: 100%; object-fit: cover; }
.profile__more {
  position: absolute; left: 720px; top: 690px;
  display: flex; align-items: center; justify-content: space-between;
  width: 204px; padding: 8px 20px;
  border: 1px solid #fff;
  font-weight: 400; font-size: 16px; color: #fff;
}
.profile__more img { width: 16px; height: 16px; transform: rotate(90deg); }

/* ---------- Location ---------- */
.location {
  background: #fff; height: 1200px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 120px;
}
.location__wrap { display: flex; flex-direction: column; gap: 80px; width: 100%; max-width: 1200px; }
.location__title-group { display: flex; flex-direction: column; gap: 16px; }
.location__title { font-weight: 700; font-size: 56px; color: #000; }
.location__sub { font-weight: 400; font-size: 24px; color: var(--color-neutral-800); }
.location__row { display: flex; gap: 40px; }
.location__office { flex: 1 0 0; min-width: 1px; display: flex; flex-direction: column; }
.location__office-head { display: flex; flex-direction: column; gap: 32px; height: 240px; padding: 40px 0; }
.location__office-name { font-size: 26px; color: #000; font-weight: 700; }
.location__office-name span { font-weight: 400; }
.location__office-info { display: flex; flex-direction: column; gap: 8px; }
.location__office-info p { font-size: 16px; color: #000; }
.location__office-info b { font-weight: 700; margin-right: 12px; }
.location__map { width: 100%; aspect-ratio: 409 / 248; object-fit: cover; }

/* ---------- CTA ---------- */
.cta {
  background: var(--color-main); height: 350px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 120px;
}
.cta__wrap { display: flex; align-items: center; justify-content: space-between; width: 100%; max-width: 1200px; }
.cta__text { display: flex; flex-direction: column; gap: 8px; color: #fff; }
.cta__title { font-weight: 700; font-size: 40px; }
.cta__title--2line::first-line { font-weight: 400; } /* 2026-09-09 피그마 Main/Cta: 1행 Regular + 2행 Bold */
.cta__sub { font-weight: 400; font-size: 16px; }
.cta__btns { display: flex; gap: 16px; }
.cta__btn {
  display: flex; align-items: center; justify-content: center;
  width: 216px; padding: 16px 32px;
  font-weight: 600; font-size: 20px; white-space: nowrap;
}
.cta__btn .arrow { font-weight: 400; margin-left: 4px; }
.cta__btn--consult { background: #fff; color: var(--color-main); }
.cta__btn--kakao { background: var(--color-secondary-500); color: #fff; }

/* ---------- Footer ---------- */
.footer { background: var(--color-secondary-500); padding: 60px 120px; }
.footer__wrap {
  display: flex; flex-direction: column; gap: 60px;
  width: 100%; max-width: 1200px; margin: 0 auto;
}
.footer__top { display: flex; align-items: center; justify-content: space-between; }
.footer__logo img { width: 196px; height: 39px; }
.footer__sns { display: flex; gap: 16px; }
.footer__sns img { width: 38px; height: 38px; }
.footer__info { display: flex; align-items: flex-start; justify-content: space-between; }
.footer__addr { display: flex; flex-direction: column; gap: 12px; font-size: 13px; line-height: 1; }
.footer__addr .lbl { color: #b1b1b1; }
.footer__addr .val { color: var(--color-neutral-400); }
.footer__biz { display: flex; gap: 16px; white-space: nowrap; }
.footer__staff {
  border: 1px solid var(--color-neutral-400);
  padding: 10px 16px;
  font-weight: 500; font-size: 12px; line-height: 1; color: var(--color-neutral-400);
}
.footer__bottom {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12px; color: var(--color-neutral-400);
}
.footer__copy { font-weight: 500; }
.footer__links { display: flex; gap: 16px; }
.footer__links a:first-child { font-weight: 700; }

/* ==========================================================================
   Mobile (≤768px) — Figma 375 기준
   ========================================================================== */
/* 🔴 2026-09-12 R9 결정: 모바일 브레이크포인트 768px → 1199px.
   이유: 피그마에 태블릿 시안이 없어 769~1199px 이 데스크톱 레이아웃으로 렌더되면서 가로 스크롤이 생겼다
         (2026-09-11 실측: 769px 에서 49페이지 중 27페이지 넘침·최대 191px — 이번 패치 전부터의 선재 결함).
   조치: 시안이 있는(검증된) 모바일 레이아웃을 태블릿 구간까지 적용한다.
   🔴 이 값을 되돌리면 태블릿 가로 스크롤이 다시 생긴다. 태블릿 전용 시안이 나오면 그때 별도 구간을 만든다.
   ※ 1200~1216px 은 여전히 데스크톱이라 hp 기업회생 카드 그리드는 아래 D14 유연폭 규칙이 담당한다. */
@media (max-width: 1199px) {
  .gnb { height: 64px; padding: 0 20px; }
  .gnb__logo img { width: 140px; height: 28px; }
  .gnb__menu { display: none; }
  .gnb__burger {
    display: flex; flex-direction: column; gap: 5px;
    padding: 8px 0;
  }
  .gnb__burger span { display: block; width: 24px; height: 2px; background: #fff; }

  .hero { height: 840px; }
  .hero__title { font-size: 32px; }
  .hero__content { gap: 40px; width: 100%; padding: 0 20px; }
  .hero__scroll img { width: 32px; height: 32px; }
  .hero__deco { display: none; }

  .quick { display: none; }

  .usp-intro { height: auto; padding: 80px 20px; }
  .usp-intro__wrap { flex-direction: column; align-items: flex-start; gap: 40px; }
  .usp-intro__title { font-size: 40px; }
  .usp-intro__line { width: 120px; }
  .usp-intro__desc { font-size: 18px; text-align: left; }

  .usp { height: auto; padding: 80px 20px; }
  .usp--last { height: auto; }
  .usp__wrap { flex-direction: column; gap: 32px; }
  .usp__heading { font-size: 40px; }
  .usp__media { width: 100%; gap: 24px; }
  .usp__img { width: 100%; height: auto; aspect-ratio: 7 / 4; border-radius: 12px; }
  .usp__caption { flex-direction: column; align-items: flex-start; gap: 16px; }
  .usp__num { font-size: var(--fs-number-mobile); line-height: 1; }
  .usp__title { font-size: 24px; }
  .usp__desc { width: 100%; font-size: 16px; }

  .reviews { height: auto; padding: 80px 20px; gap: 40px; }
  .reviews__title { font-size: 36px; } /* Main/Reviews Mobile 36 (2026-09-24, 검토 M3) */
  .reviews__deck { width: 100%; height: auto; }
  .reviews__card { position: static; width: 100% !important; height: auto !important; padding: 40px 24px; }
  .reviews__card--1, .reviews__card--2 { display: none; }
  .reviews__quote { font-size: 18px; }
  .reviews__author { font-size: 14px; }
  .reviews__nav { display: none; }

  .practice { height: auto; padding: 80px 20px; }
  .practice__wrap { flex-direction: column; gap: 40px; }
  .practice__title { font-size: 36px; }
  .practice__sub { font-size: 18px; }
  .practice__list { width: 100%; }
  .practice__card { height: 72px; padding: 0 24px; font-size: 18px; }

  .profile { height: auto; }
  .profile__inner { width: 100%; display: flex; flex-direction: column; padding: 60px 20px 80px; }
  .profile__img-group { position: static; width: 70%; max-width: 280px; height: auto; margin: 0 auto; order: 2; }
  .profile__img-fade { display: none; }
  .profile__text { position: static; order: 1; gap: 32px; margin-bottom: 40px; }
  .profile__quote { font-size: 24px; white-space: normal; }
  .profile__group { width: 100%; }
  .profile__name { font-size: 32px; }      /* Main/Lawyer Profile Mobile 32 (2026-09-24, 검토 M3) */
  .profile__career li { font-size: 16px; } /* Mobile 16 Medium (2026-09-24, 검토 M3) */
  .profile__sign { position: static; order: 3; margin: 24px auto 0; }
  .profile__more { position: static; order: 4; margin: 24px auto 0; }

  .location { height: auto; padding: 80px 20px; }
  .location__title { font-size: 36px; }
  .location__sub { font-size: 18px; }
  .location__row { flex-direction: column; gap: 40px; }
  .location__office-head { height: auto; padding: 0 0 24px; gap: 16px; }
  .location__office-name { font-size: 22px; }

  .cta { height: auto; padding: 60px 20px; }
  .cta__wrap { flex-direction: column; align-items: flex-start; gap: 32px; }
  .cta__title { font-size: 28px; }
  .cta__btns { width: 100%; flex-direction: column; }
  .cta__btn { width: 100%; }

  .footer { padding: 48px 20px 32px; }
  .footer__wrap { gap: 40px; }
  .footer__top { flex-direction: column; align-items: flex-start; gap: 24px; }
  .footer__info { flex-direction: column; gap: 24px; }
  .footer__addr .row { display: flex; flex-direction: column; gap: 4px; }
  .footer__biz { flex-direction: column; gap: 8px; white-space: normal; }
  .footer__bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
}

/* ==========================================================================
   서브페이지 공통 — 라이트 GNB · 페이지 헤더 · 브레드크럼
   ========================================================================== */
.gnb--light {
  position: sticky; top: 0; background: #fff; border-bottom: 1px solid var(--color-neutral-200);
}
.gnb--light .gnb__menu a { color: #000; } /* 피그마 Global/GNB Theme=Light 메뉴 #000000 (2026-09-24, 검토 P11 — 종전 Neutral/900 #313131) */
.gnb--light .gnb__logo img { width: 163px; height: 32px; }
.gnb--light .gnb__burger span { background: var(--color-neutral-900); }

.page-header { position: relative; height: 252px; background: #fff; }
.page-header__breadcrumb {
  /* GNB 콘텐츠(1200) 우측선 정렬 — 1440에선 종전 120 과 동일(2026-08-28) */
  position: absolute; right: max(20px, calc((100% - 1200px) / 2)); top: 32px;
  display: flex; align-items: center;
  font-weight: 500; font-size: 16px; color: #000;
}
.page-header__breadcrumb img { width: 24px; height: 24px; }
.page-header__breadcrumb .sep { transform: rotate(90deg); }
.page-header__title-block {
  position: absolute; left: 50%; top: calc(50% + 45px); transform: translate(-50%, -50%);
  display: flex; flex-direction: column; align-items: center; justify-content: space-between;
  height: 162px; width: 511px;
}
.page-header__title { font-weight: 800; font-size: 60px; color: #000; letter-spacing: -0.04em; white-space: nowrap; }
.page-header__tabs { display: flex; width: 100%; }
.page-header__tab {
  flex: 1; display: flex; align-items: center; justify-content: center;
  padding: 10px 24px; font-weight: 400; font-size: 16px;
  background: #fafafa; color: #1a364e; white-space: nowrap;
}
.page-header__tab--active { background: var(--color-main); color: #fff; }

/* ==========================================================================
   02 Brand Story
   ========================================================================== */
.brand-hero { height: 600px; }
.brand-hero img { width: 100%; height: 100%; object-fit: cover; }

.brand-section { background: #fff; position: relative; }
.brand-section__row {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; max-width: 1200px; margin: 0 auto;
}
.brand-labels { display: flex; flex-direction: column; gap: 21px; }
.brand-labels p {
  font-weight: 600; font-size: 24px; text-transform: uppercase;
  color: rgba(0, 0, 0, 0.2); white-space: nowrap;
}
.brand-labels .active { color: #000; display: flex; align-items: center; gap: 8px; }
.brand-labels .active::after {
  content: ""; width: 8px; height: 8px; border-radius: 50%; background: #000; display: inline-block;
}
.grad-text {
  background: linear-gradient(to right, var(--color-main), #102e42);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  font-weight: 700;
}

.brand-beginning { padding: 122px 120px 0; height: 733px; }
.brand-beginning .brand-section__row { align-items: center; }
.brand-beginning__text { display: flex; flex-direction: column; gap: 16px; width: 680px; }
.brand-beginning__headline { font-size: 32px; line-height: 1.4; }
.brand-beginning__text p { font-weight: 400; font-size: 20px; color: #000; }
.brand-beginning__sign {
  position: absolute; left: 44.6%; top: 63.9%;
  display: flex; align-items: center; gap: 24px;
}
.brand-beginning__sign p { font-weight: 400; font-size: 24px; color: #000; white-space: nowrap; }
.brand-beginning__sign img { height: 74px; }

.brand-value { height: 600px; display: flex; align-items: center; padding: 0 120px; }
.brand-value__text { display: flex; flex-direction: column; gap: 40px; }
.brand-value__text h3 { font-weight: 600; font-size: 32px; color: #000; text-transform: uppercase; }
.brand-value__items { display: flex; flex-direction: column; gap: 16px; font-size: 24px; }
.brand-value__items p { font-weight: 400; color: #000; white-space: nowrap; }
.brand-value__items p.grad-text { white-space: nowrap; }

.brand-promise { height: 700px; display: flex; align-items: center; padding: 0 120px; }
.brand-promise .brand-section__row { transform: translateY(-75px); }
.brand-promise__text { display: flex; flex-direction: column; gap: 40px; width: 680px; }
.brand-promise__text h3 { font-weight: 600; font-size: 32px; color: #000; text-transform: uppercase; }
.brand-promise__items { display: flex; flex-direction: column; gap: 16px; font-size: 24px; }
.brand-promise__items p { font-weight: 400; color: #000; white-space: nowrap; }

.brand-history { background: #1a364e; min-height: 980px; padding-top: 170px; padding-bottom: 120px; overflow: hidden; }
.brand-history__wrap {
  display: flex; flex-direction: column; align-items: center; gap: 80px;
  width: 100%; max-width: 1200px; margin: 0 auto;
}
.brand-history__title { font-weight: 600; font-size: 40px; color: #fff; text-transform: uppercase; }
.brand-history__timeline { display: flex; gap: 100px; align-items: flex-start; justify-content: center; width: 100%; }
.brand-history__years {
  display: flex; gap: 20px; align-items: stretch; height: 530px;
}
.brand-history__year-list {
  display: flex; flex-direction: column; justify-content: flex-start; gap: 48px;
  font-size: 16px; text-transform: uppercase;
}
.brand-history__year-list p { font-weight: 400; color: rgba(213, 213, 213, 0.7); }
.brand-history__year-list p.active { font-weight: 600; color: #fff; }
.brand-history__line { width: 2px; background: rgba(213, 213, 213, 0.4); }
.brand-history__detail { display: flex; gap: 60px; align-items: flex-start; width: 600px; padding-top: 16px; }
.brand-history__detail-year { font-weight: 500; font-size: 40px; color: #fff; }
.brand-history__events { display: flex; flex-direction: column; gap: 60px; }
.brand-history__event { display: flex; gap: 24px; align-items: flex-start; }
.brand-history__event .month { font-weight: 700; font-size: 32px; color: #fff; width: 42px; text-align: center; }
.brand-history__event .desc { font-weight: 400; font-size: 20px; color: #fff; line-height: 1.7; }

@media (max-width: 1199px) {
  .page-header { height: auto; padding: 24px 20px 0; }
  .page-header__breadcrumb { position: static; justify-content: flex-end; font-size: 13px; }
  .page-header__breadcrumb img { width: 18px; height: 18px; }
  .page-header__title-block { position: static; transform: none; height: auto; width: 100%; gap: 24px; padding: 16px 0 0; }
  .page-header__title { font-size: 34px; }

  .brand-hero { height: 320px; }
  .brand-beginning, .brand-value, .brand-promise { height: auto; padding: 64px 20px; }
  .brand-section__row { flex-direction: column; align-items: flex-start; gap: 32px; }
  .brand-promise .brand-section__row { transform: none; }
  .brand-labels { flex-direction: row; gap: 16px; flex-wrap: wrap; }
  .brand-labels p { font-size: 14px; }
  .brand-beginning__text, .brand-promise__text { width: 100%; }
  .brand-beginning__headline { font-size: 24px; } /* Brand/Beginning Mobile 24 (2026-09-24, 검토 M2) */
  .brand-beginning__text p { font-size: 16px; }
  .brand-beginning__sign { position: static; margin-top: 24px; }
  .brand-beginning__sign p { font-size: 20px; } /* Brand/Beginning Mobile 이름 20 (2026-09-24, 검토 M2) */
  .brand-beginning__sign img { height: 52px; }
  .brand-value__text h3, .brand-promise__text h3 { font-size: 24px; }
  .brand-value__items, .brand-promise__items { font-size: 16px; }
  .brand-value__items p, .brand-promise__items p { white-space: normal; }
  .brand-value__items p.grad-text { font-size: 24px; font-weight: 700; } /* Brand/Value Mobile 첫 줄 24 Bold 그라데이션 (2026-09-24, 검토 M2) */
  .brand-history { height: auto; padding: 64px 20px; }
  .brand-history__timeline { flex-direction: column; gap: 40px; }
  .brand-history__years { height: auto; }
  .brand-history__year-list { flex-direction: row; flex-wrap: wrap; gap: 12px; }
  .brand-history__line { display: none; }
  .brand-history__detail { width: 100%; gap: 24px; }
  .brand-history__detail-year { font-size: 28px; }
  .brand-history__events { gap: 32px; }
  .brand-history__event .month { font-size: 24px; }
  .brand-history__event .desc { font-size: 15px; }
}

/* ==========================================================================
   Hero 슬라이더 (홈 — CSS 자동 전환)
   ========================================================================== */
.hero__slide { position: absolute; inset: 0; opacity: 0; animation: heroFade 16s infinite; }
.hero__slide--1 { animation-delay: 0s; }
.hero__slide--2 { animation-delay: 8s; }
@keyframes heroFade {
  0% { opacity: 0; z-index: 2; }
  4% { opacity: 1; }
  50% { opacity: 1; }
  54% { opacity: 0; z-index: 1; }
  100% { opacity: 0; }
}
.hero-banner__bg { position: absolute; inset: 0; }
.hero-banner__bg img { width: 100%; height: 100%; object-fit: cover; }
.hero-banner__bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(41, 118, 168, 0.8), rgba(16, 46, 66, 0.8));
}
.hero-banner__content {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  display: flex; flex-direction: column; align-items: center; gap: 40px;
  width: max-content; max-width: 100%;
}
.hero-banner__eyebrow { font-weight: 600; font-size: 20px; color: #a2daff; line-height: 1; }
.hero-banner__title { font-weight: 700; font-size: 48px; line-height: 1.3; color: #fff; text-align: center; letter-spacing: -0.03em; margin-top: 10px; }
.hero-banner__title .hl { color: #a2daff; }
.hero-banner__sub { font-weight: 400; font-size: 28px; color: #d9d9d9; margin-top: 8px; text-align: center; }
.hero-banner__meta { display: flex; flex-direction: column; gap: 16px; align-items: center; }
.hero-banner__meta p { font-size: 24px; color: #fff; line-height: 1; }
.hero-banner__meta b { font-weight: 700; margin-right: 4px; }
.hero-banner__btn {
  background: #fff; color: var(--color-main);
  font-weight: 600; font-size: 24px;
  padding: 16px 32px;
}

/* ==========================================================================
   03 Member (구성원)
   ========================================================================== */
.member-hero { height: 600px; }
.member-hero img { width: 100%; height: 100%; object-fit: cover; }
.member-list { background: #fff; padding: 80px 0 120px; }
.member-list__wrap {
  display: flex; flex-direction: column; gap: 60px; align-items: center;
  width: 100%; max-width: 1000px; margin: 0 auto;
}
.member-list__grid {
  display: grid; grid-template-columns: repeat(3, 310px);
  justify-content: space-between; row-gap: 60px; width: 100%;
}
.member-card { display: flex; flex-direction: column; gap: 34px; align-items: center; width: 310px; }
.member-card__photo { position: relative; width: 310px; height: 390px; background: #f5f5f5; overflow: hidden; }
.member-card__photo img {
  position: absolute; left: 29px; top: 34px;
  width: 251px; height: 356px; object-fit: cover; object-position: top;
}
.member-card__name { display: flex; gap: 8px; align-items: center; white-space: nowrap; }
.member-card__name .role { font-weight: 400; font-size: 24px; color: #969696; }
.member-card__name .name { font-weight: 600; font-size: 32px; color: #000; }
.member-list__more {
  background: #f3f2f1; border-radius: 2px;
  padding: 16px 50px; font-weight: 400; font-size: 20px; color: #000;
}

/* ---- Member detail ---- */
.mdetail-hero { position: relative; height: 600px; overflow: hidden; }
.mdetail-hero__bg { position: absolute; inset: 0; }
.mdetail-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.mdetail-hero__bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(0, 0, 0, 0.35) 80%);
}
.mdetail-hero__info {
  position: absolute; left: 120px; top: 359px;
  display: flex; flex-direction: column; gap: 24px;
}
.mdetail-hero__role { font-weight: 500; font-size: 24px; line-height: var(--lh-tight); color: #fff; /* Detail1/Profile 24/29 (2026-09-24, 검토 P7) */ text-shadow: 0 4px 10px rgba(0, 0, 0, 0.25); }
.mdetail-hero__name { font-weight: 700; font-size: 40px; color: #fff; text-shadow: 0 4px 10px rgba(0, 0, 0, 0.25); }
.mdetail-hero__tags { display: flex; gap: 8px; }
.mdetail-hero__tags span {
  display: flex; align-items: center; justify-content: center;
  width: 60px; padding: 8px 0;
  background: rgba(255, 255, 255, 0.7);
  font-weight: 400; font-size: 16px; color: #000; line-height: 1;
}
.mdetail-body { background: #fff; padding: 120px 120px 140px; }
.mdetail-body__wrap { display: flex; gap: 100px; align-items: flex-start; max-width: 1200px; margin: 0 auto; }
.mdetail-quote { display: flex; flex-direction: column; gap: 40px; width: 414px; flex: none; }
.mdetail-quote__text { font-weight: 600; font-size: 28px; color: #000; letter-spacing: -0.07em; max-width: 374px; }
.mdetail-quote__desc { font-weight: 400; font-size: 18px; color: #000; line-height: 1.7; }
.mdetail-quote__desc b { font-weight: 700; }
.mdetail-info { display: flex; flex-direction: column; gap: 32px; flex: 1; min-width: 1px; }
.mdetail-info hr { width: 100%; border: 0; border-top: 1px solid var(--color-neutral-200); margin: 0; }
.mdetail-info__group { display: flex; flex-direction: column; gap: 20px; }
.mdetail-info__group h3 { font-weight: 700; font-size: 20px; color: #000; }
.mdetail-info__rows { display: flex; flex-direction: column; gap: 8px; }
.mdetail-info__row { display: flex; gap: 24px; align-items: flex-start; }
.mdetail-info__row .yr { font-weight: 700; font-size: 24px; color: #000; width: 60px; flex: none; }
.mdetail-info__row .tx { font-weight: 400; font-size: 20px; color: #000; line-height: 1.7; }
.mdetail-info__list { display: flex; flex-direction: column; gap: 8px; }
.mdetail-info__list li { list-style: disc; margin-left: 30px; font-weight: 400; font-size: 20px; color: #000; line-height: 1.7; }
.mdetail-info__tags { display: flex; gap: 8px; }
.mdetail-info__tags span {
  background: #f3f2f1; border-radius: 2px; padding: 10px 16px;
  font-weight: 500; font-size: 16px; color: #000; line-height: 1;
}

/* ==========================================================================
   04 News (소식)
   ========================================================================== */
.news-section { background: #fafafa; padding: 80px 0 120px; }
.news-section__inner { max-width: 1000px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; }
.news-tabs { display: flex; gap: 8px; align-self: flex-start; }
.news-tab { padding: 10px 24px; background: var(--color-neutral-200); font-weight: 400; font-size: 16px; color: #000; }
.news-tab--active { background: var(--color-main); color: #fff; font-weight: 700; }
.news-sort { display: flex; gap: 20px; align-items: center; margin: 42px auto 0; }
.news-sort__select {
  display: flex; align-items: center; justify-content: space-between;
  background: #fff; border: 1px solid #b5b5b5;
  padding: 10px 24px; width: 174px;
  font-weight: 400; font-size: 16px; color: var(--color-neutral-800);
}
.news-sort__search {
  display: flex; align-items: center; justify-content: space-between;
  background: #fff; border: 1px solid #b5b5b5;
  padding: 10px 24px; width: 345px;
  font-weight: 400; font-size: 16px; color: var(--color-neutral-800);
}
.news-sort img { width: 16px; height: 16px; }
.news-grid {
  display: grid; grid-template-columns: repeat(3, 320px);
  justify-content: space-between; row-gap: 60px;
  width: 100%; margin-top: 42px;
}
.news-card { display: flex; flex-direction: column; gap: 20px; }
.news-card__img { width: 320px; height: 210px; object-fit: cover; }
.news-card__body { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.news-card__badge {
  background: #d9f0ff; padding: 4px;
  font-weight: 700; font-size: 14px; color: var(--color-main); line-height: 1.2;
}
.news-card__title { font-weight: 600; font-size: 24px; color: #000; } /* 26→24 피그마 News/List */
.news-card__excerpt { font-weight: 600; font-size: 16px; color: var(--color-neutral-500); }
.news-card__date { font-weight: 400; font-size: 16px; color: var(--color-neutral-600); }
.news-paging { display: flex; gap: 40px; align-items: center; margin-top: 60px; }
.news-paging__arrow { line-height: 0; }
.news-paging__arrow img { width: 12px; height: 24px; }
.news-paging__arrow--prev img { transform: rotate(180deg); }
.news-paging__nums { display: flex; }
.news-paging__nums a {
  display: flex; align-items: center; justify-content: center;
  width: 42px; padding: 10px;
  font-weight: 400; font-size: 16px; color: #000;
}
.news-paging__nums a.on { background: var(--color-main); color: #fff; font-weight: 700; }

/* ---- News detail ---- */
.ndetail-hero { position: relative; height: 300px; }
.ndetail-hero img { width: 100%; height: 100%; object-fit: cover; }
.ndetail-hero::after { content: ""; position: absolute; inset: 0; background: rgba(255, 255, 255, 0.3); }
.ndetail-hero__title {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  font-weight: 600; font-size: 40px; color: #000; line-height: 1; z-index: 1; /* NewsDetail/Content 노드 상자 40/40 = 고정 높이 → 행간 1 유지 (2026-09-24 5차, P12 되돌림) */
}
.ndetail-body { background: #fff; padding: 80px 0 120px; }
.ndetail-body__wrap {
  display: flex; flex-direction: column; gap: 80px; align-items: center;
  max-width: 800px; margin: 0 auto;
}
.ndetail-article { display: flex; flex-direction: column; gap: 40px; width: 100%; }
.ndetail-article__head { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.ndetail-article__badge {
  background: #d9f0ff; padding: 6px;
  font-weight: 700; font-size: 16px; color: var(--color-main); line-height: 1;
}
.ndetail-article__title { font-weight: 600; font-size: 32px; color: #000; }
.ndetail-article__date { font-weight: 500; font-size: 16px; color: var(--color-neutral-800); }
.ndetail-article hr { width: 100%; border: 0; border-top: 1px solid var(--color-neutral-400); margin: 0; }
.ndetail-article__body { font-weight: 400; font-size: 18px; color: var(--color-neutral-900); line-height: 1.8; }
.ndetail-article__body p { margin-bottom: 1em; }
.ndetail-list-btn {
  display: flex; gap: 10px; align-items: center;
  background: #f3f2f1; border-radius: 10px; padding: 16px 50px;
  font-weight: 500; font-size: 20px; color: var(--color-neutral-600); /* 공통/Case-contents 목록보기 #727272 (2026-09-24, 검토 P4) */
}
.ndetail-list-btn img { width: 24px; height: 24px; }

/* ==========================================================================
   06 Board (상담문의)
   ========================================================================== */
/* display:flow-root — 첫 카드(.board__card)의 큰 margin-top 이 부모 밖으로 collapse 되어
 * 섹션 전체(배너·브레드크럼 포함)가 GNB 에서 125px 밀리던 문제 차단(타 페이지와 간격 통일) */
.board { position: relative; background: #fafafa; padding-bottom: 120px; display: flow-root; }
.board__hero { position: absolute; left: 0; top: 0; width: 100%; height: 400px; overflow: hidden; }
.board__hero img { width: 100%; height: 100%; object-fit: cover; }
.board__breadcrumb {
  position: absolute; right: max(20px, calc((100% - 1200px) / 2)); top: 32px; z-index: 2; /* GNB 우측선 정렬 */
  display: flex; align-items: center;
  font-weight: 500; font-size: 16px; color: #000;
}
.board__breadcrumb img { width: 24px; height: 24px; }
.board__breadcrumb .sep { transform: rotate(90deg); }
.board__card {
  position: relative; z-index: 1;
  width: 100%; max-width: 1000px; margin: 125px auto 0;
  background: #fff;
  filter: drop-shadow(0 4px 15px rgba(0, 0, 0, 0.03));
  display: flex; flex-direction: column; gap: 70px; align-items: center;
  padding: 100px 0;
}
.board-form { display: flex; flex-direction: column; gap: 60px; align-items: center; width: 800px; }
.board-form__head { display: flex; flex-direction: column; gap: 16px; align-items: center; }
.board-form__title { font-weight: 700; font-size: 40px; color: #000; text-align: center; }
.board-form__sub { font-weight: 400; font-size: 16px; color: var(--color-neutral-900); }
.board-form__fields { display: flex; flex-direction: column; gap: 24px; width: 100%; border-top: 2px solid #000; padding-top: 40px; }
.board-form__fields > hr { width: 100%; border: 0; border-top: 1px solid var(--color-neutral-200); margin: 0; }
.board-field { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.board-field--top { align-items: flex-start; }
.board-field__label {
  display: flex; gap: 4px; align-items: center;
  font-weight: 500; font-size: 20px; color: #000; width: 100px;
}
.board-field__label .req { color: #ff0808; }
.board-field__input { width: 550px; }
.board-field__input input, .board-field__input textarea {
  width: 100%; border: 1px solid #d7d7d7; background: #fff;
  padding: 12px 16px;
  font-family: var(--font-sans); letter-spacing: var(--ls-sans);
  font-weight: 500; font-size: 15px; color: #080808; /* 🟡 팔레트 외 — 피그마에 입력된 값(placeholder 아닌 타이핑 글자) 노드가 없어 근거 없음. 2026-09-11 임의 정규화를 철회하고 결정 대기(R8) */
}
.board-field__input textarea { height: 200px; resize: none; }
.board-field__input input::placeholder, .board-field__input textarea::placeholder { color: #b5b5b5; }
.board-field__hint { font-weight: 400; font-size: 12px; margin-top: 8px; }
.board-field__hint--red { color: #ff0808; width: 550px; margin-left: auto; }
.board-field__hint--gray { color: var(--color-neutral-600); } /* 2026-09-11 #6f6f6f→Neutral/600 피그마 Board/Content (D1) */
.board-radios { display: flex; align-items: center; justify-content: space-between; width: 550px; }
.board-radio { display: flex; gap: 5px; align-items: center; cursor: pointer; }
.board-radio input { display: none; }
.board-radio .dot { width: 15px; height: 15px; border-radius: 50%; background: #d9d9d9; }
.board-radio .lbl { font-weight: 600; font-size: 15px; color: var(--color-neutral-600); } /* 피그마 15 SemiBold #727272 */
.board-radio input:checked ~ .dot { background: var(--color-main); box-shadow: inset 0 0 0 3px #fff, 0 0 0 1px var(--color-main); }
.board-radio input:checked ~ .lbl { color: var(--color-main); }
.board-form__end { border-top: 2px solid #000; width: 100%; }
.board-agree { display: flex; flex-direction: column; gap: 72px; align-items: center; width: 396px; }
.board-agree__rows { display: flex; flex-direction: column; gap: 16px; width: 100%; }
.board-agree__row { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.board-agree__check { display: flex; gap: 8px; align-items: center; cursor: pointer; }
.board-agree__check img { width: 24px; height: 24px; }
.board-agree__check span { font-weight: 500; font-size: 16px; color: #000; }
.board-agree__more { font-weight: 400; font-size: 18px; color: var(--color-neutral-500); text-decoration: underline; }
.board-btns { display: flex; gap: 24px; }
.board-btns .cancel {
  background: #f3f2f1; border-radius: 8px; padding: 16px 50px;
  font-weight: 600; font-size: 20px; color: #000;
}
.board-btns .submit {
  background: var(--color-main); border-radius: 8px; padding: 16px 50px;
  font-weight: 700; font-size: 20px; color: #fff;
}

/* ---- 레이어 팝업 (CSS :target) ---- */
.popup { position: fixed; inset: 0; z-index: 100; display: none; }
.popup:target { display: block; }
.popup__dim { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.5); }
.popup__panel {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 900px; max-width: calc(100% - 40px); max-height: 85vh;
  background: #fff; border-radius: 5px;
  filter: drop-shadow(0 4px 15px rgba(0, 0, 0, 0.11));
  display: flex; flex-direction: column; overflow: hidden;
}
.popup__head {
  background: var(--color-neutral-900); color: #fff;
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 40px; flex: none;
}
.popup__head h3 { font-weight: 500; font-size: 20px; line-height: 1; }
.popup__head img { width: 32px; height: 32px; }
.popup__body {
  padding: 40px 40px 60px; overflow-y: auto;
  font-weight: 400; font-size: 15px; color: var(--color-neutral-900); line-height: 1.7; /* 2026-09-12 R1 결정: #3b3b3b→Neutral/900. 피그마에 약관 팝업 본문 텍스트 노드가 없어 팔레트 내 가독성 값으로 확정(우리팀 권고) */
}
.popup__body p { margin-bottom: 0.4em; }
.popup__body ol { list-style: decimal; margin-left: 22px; }
.popup__body ul { list-style: disc; margin-left: 22px; }

/* ==========================================================================
   05 Directions (오시는 길)
   ========================================================================== */
.dir-exterior { height: 565px; }
.dir-exterior img { width: 100%; height: 100%; object-fit: cover; }
.dir-section { background: #fafafa; padding: 80px 0 120px; }
.dir-section__inner { max-width: 1000px; margin: 0 auto; display: flex; flex-direction: column; }
.dir-tabs { display: flex; gap: 8px; }
.dir-tab { padding: 10px 24px; background: var(--color-neutral-200); font-weight: 400; font-size: 16px; color: #000; }
.dir-tab--active { background: var(--color-main); color: #fff; font-weight: 700; }
.dir-columns { display: flex; align-items: flex-start; gap: 40px; margin-top: 42px; }
.dir-info { flex: 1; min-width: 1px; display: flex; flex-direction: column; gap: 32px; }
.dir-info__group { display: flex; flex-direction: column; gap: 8px; }
.dir-info__group h3 { font-weight: 700; font-size: 24px; color: #000; }
.dir-info__row { display: flex; gap: 8px; align-items: flex-start; font-size: 16px; font-weight: 400; color: #000; } /* 2026-10-19 정의서 63p: 라벨(본/분사무소)만 Bold, 주소·안내는 Regular (9/24 P1 전부 Bold 철회) */
.dir-info__row img { width: 20px; height: 20px; flex: none; }
.dir-info__row .pin { width: 16px; height: 20px; }
.dir-info__row b { font-weight: 700; margin-right: 8px; }
.dir-map { width: 453px; height: 453px; flex: none; }
.dir-map img { width: 100%; height: 100%; object-fit: cover; }

/* ==========================================================================
   서브페이지 모바일
   ========================================================================== */
@media (max-width: 1199px) {
  .hero-banner__title { font-size: 28px; }
  .hero-banner__sub { font-size: 16px; }
  .hero-banner__meta p { font-size: 16px; }
  .hero-banner__btn { font-size: 18px; padding: 12px 24px; }
  .hero-banner__content { gap: 28px; padding: 0 20px; width: 100%; }

  .member-hero { height: 320px; }
  .member-list { padding: 48px 20px 80px; }
  .member-list__grid { grid-template-columns: repeat(2, 1fr); gap: 20px; row-gap: 40px; justify-content: stretch; }
  .member-card { width: 100%; }
  .member-card__photo { width: 100%; height: auto; aspect-ratio: 310 / 390; }
  .member-card__photo img { left: 9.3%; top: 8.7%; width: 81%; height: 91.3%; }
  .member-card__name .role { font-size: 14px; }
  .member-card__name .name { font-size: 20px; }

  .mdetail-hero { height: 480px; }
  .mdetail-hero__info { left: 20px; top: auto; bottom: 48px; }
  .mdetail-hero__name { font-size: 32px; }
  .mdetail-body { padding: 64px 20px 80px; }
  .mdetail-body__wrap { flex-direction: column; gap: 48px; }
  .mdetail-quote { width: 100%; }
  .mdetail-quote__text { font-size: 22px; }
  .mdetail-info__row .tx, .mdetail-info__list li { font-size: 16px; }
  .mdetail-info__row .yr { font-size: 20px; }

  .news-section { padding: 48px 20px 80px; }
  .news-tabs { flex-wrap: wrap; }
  .news-tab { padding: 8px 16px; font-size: 14px; }
  .news-sort { flex-direction: column; width: 100%; gap: 12px; margin-top: 32px; }
  .news-sort__select, .news-sort__search { width: 100%; }
  .news-grid { grid-template-columns: 1fr; margin-top: 32px; row-gap: 40px; }
  .news-card__img { width: 100%; height: auto; aspect-ratio: 320 / 210; }
  .news-card__title { font-size: 20px; }
  .ndetail-hero { height: 200px; }
  .ndetail-hero__title { font-size: 28px; }
  .ndetail-body { padding: 48px 20px 80px; }
  .ndetail-article__title { font-size: 24px; }
  .ndetail-article__body { font-size: 16px; }

  .board__hero { height: 240px; }
  .board__breadcrumb { right: 20px; }
  .board__card { margin: 80px 20px 0; width: auto; padding: 48px 20px; gap: 48px; }
  .board-form { width: 100%; gap: 40px; }
  .board-form__title { font-size: 32px; } /* Board/Content Mobile 32 (2026-09-24, 검토 M1) */
  .board-form__sub { font-size: 14px; text-align: center; }
  .board-field { flex-direction: column; align-items: flex-start; gap: 8px; }
  .board-field__label { width: auto; font-size: 16px; }
  .board-field__input { width: 100%; }
  .board-field__hint--red { width: 100%; }
  .board-radios { width: 100%; flex-wrap: wrap; gap: 12px; justify-content: flex-start; }
  .board-agree { width: 100%; gap: 40px; }
  .board-agree__more { font-size: 14px; }
  .board-btns { width: 100%; flex-direction: column; gap: 12px; }
  .board-btns .cancel, .board-btns .submit { width: 100%; text-align: center; }
  .popup__panel { max-height: 80vh; }
  .popup__head { padding: 12px 20px; }
  .popup__body { padding: 24px 20px 40px; font-size: 14px; }

  .dir-exterior { height: 280px; }
  .dir-section { padding: 48px 20px 80px; }
  .dir-columns { flex-direction: column; gap: 32px; margin-top: 32px; }
  .dir-map { width: 100%; height: auto; aspect-ratio: 1; }
}

/* ==========================================================================
   07 Login (의뢰인 전용) · 08 Search (직원 조회)
   ========================================================================== */
.login-content { position: relative; min-height: 841px; background: #fff; }
.login-content__grad {
  position: absolute; left: 0; top: 0; width: 100%; height: 300px;
  background: linear-gradient(to bottom, #eaf3fa 25%, #fff 106%);
}
.login-content__breadcrumb {
  position: absolute; right: max(20px, calc((100% - 1200px) / 2)); top: 34px; /* GNB 우측선 정렬 */
  display: flex; align-items: center;
  font-weight: 500; font-size: 16px; color: #000;
}
.login-content__breadcrumb img { width: 24px; height: 24px; }
.login-content__breadcrumb .sep { transform: rotate(90deg); }
.login-content__head {
  position: relative; padding-top: 96px;
  display: flex; flex-direction: column; gap: 24px; align-items: center; text-align: center;
}
.login-content__title { font-weight: 800; font-size: 32px; color: #000; letter-spacing: -0.04em; }
.login-content__sub { display: flex; flex-direction: column; gap: 8px; font-size: 16px; color: var(--color-neutral-600); line-height: 1.4; } /* 피그마 #727272·행간 auto */
.login-content__sub b { font-weight: 700; }
.login-form {
  position: relative;
  width: 500px; margin: 60px auto 100px;
  background: #fafafa; border-radius: 20px;
  padding: 40px 60px;
  display: flex; flex-direction: column; gap: 63px; align-items: center;
}
.login-form__fields { display: flex; flex-direction: column; gap: 24px; align-items: center; width: 100%; }
.login-form__label { display: flex; gap: 8px; align-items: center; justify-content: center; margin-bottom: 16px; }
.login-form__label img { width: 24px; height: 24px; }
.login-form__label span { font-weight: 500; font-size: 24px; color: #000; }
.login-form__inputs { display: flex; flex-direction: column; gap: 20px; width: 100%; }
.login-form__input {
  display: flex; align-items: center; justify-content: space-between;
  background: #fff; border: 1px solid #e4e4e4; border-radius: 10px;
  padding: 12px 16px;
}
.login-form__input input {
  border: 0; outline: 0; flex: 1;
  font-family: var(--font-sans); letter-spacing: var(--ls-sans);
  font-weight: 500; font-size: 14px; color: #080808; /* 🟡 팔레트 외 — 근거 없음. 2026-09-11 임의 정규화 철회, 결정 대기(R8) */
}
.login-form__input input::placeholder { color: #b5b5b5; }
.login-form__input img { width: 16px; height: 16px; }
.login-form__btn {
  background: var(--color-main); border-radius: 8px;
  padding: 16px 50px; font-weight: 700; font-size: 16px; color: #fff;
}
.login-form__links { display: flex; gap: 8px; align-items: center; font-weight: 400; font-size: 14px; color: var(--color-neutral-600); line-height: 1; } /* 2026-09-11 #6f6f6f→Neutral/600 피그마 Login/Content (D1) */
.login-form__links .bar { color: #d5d5d5; }

.search-header { background: linear-gradient(to bottom, #eaf3fa 26%, #fff); height: 300px; position: relative; }
.search-header .page-header__breadcrumb { right: max(20px, calc((100% - 1200px) / 2)); }
.search-header__title {
  position: absolute; left: 50%; top: calc(50% - 6px); transform: translate(-50%, -50%);
  font-weight: 800; font-size: 60px; color: #000; letter-spacing: -0.04em; white-space: nowrap;
}
.search-section { background: #fff; padding: 78px 0 120px; }
.search-section__inner { max-width: 1000px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; }
.search-table { width: 100%; margin-top: 64px; border-collapse: collapse; }
.search-table th {
  background: #fafafa; border-top: 1px solid #d2d2d2; border-bottom: 1px solid #d2d2d2;
  padding: 26px 0; font-weight: 700; font-size: 18px; color: var(--color-neutral-700);
}
.search-table td {
  border-bottom: 1px solid #e0e0e0;
  padding: 24px 0; font-weight: 500; font-size: 16px; color: var(--color-neutral-700); text-align: center;
}
.search-table td.name { color: var(--color-main); }
.search-bottom { display: flex; flex-direction: column; gap: 60px; align-items: center; margin-top: 60px; width: 345px; }
.search-bottom__input {
  display: flex; align-items: center; justify-content: space-between;
  background: #fff; border: 1px solid var(--color-neutral-400); border-radius: 10px;
  padding: 10px 24px; width: 100%;
  font-weight: 400; font-size: 16px; color: var(--color-neutral-800);
}
.search-bottom__input img { width: 16px; height: 16px; }

@media (max-width: 1199px) {
  .login-content__breadcrumb { right: 20px; }
  .login-content__head { padding: 72px 20px 0; }
  .login-content__title { font-size: 32px; } /* Login/Content Mobile 32 (2026-09-24, 검토 M4) */
  .login-content__sub { font-size: 16px; } /* Login/Content Mobile 16 (2026-09-24, 검토 M4) */
  .login-form { width: auto; margin: 40px 20px 80px; padding: 32px 24px; gap: 40px; }
  .search-header { height: 200px; }
  .search-header .page-header__breadcrumb { right: 20px; }
  .search-header__title { font-size: 32px; } /* Search/Header Mobile 32 (2026-09-24, 검토 M4) */
  .search-section { padding: 40px 20px 80px; }
  .search-table { margin-top: 40px; }
  .search-table th { font-size: 16px; padding: 16px 0; } /* Search/Results Mobile th 16 (2026-09-24, 검토 M4) */
  .search-table td { font-size: 13px; padding: 14px 0; }
  .search-table th:nth-child(3), .search-table td:nth-child(3) { display: none; }
}

/* ==========================================================================
   서브 사이트 공통 (민형사/부동산/가사/회생파산)
   ========================================================================== */
.gnb__brand { display: flex; gap: 16px; align-items: center; }
.gnb__field { font-weight: 600; font-size: 20px; line-height: var(--lh-tight); color: #fff; letter-spacing: -0.04em; white-space: nowrap; } /* Global/GNB 분야명 20/24 (2026-09-24, 검토 P3) */
.gnb--light .gnb__field { color: #000; } /* Theme=Light #000000 (2026-09-24, 검토 P3 — 종전 Secondary/500 네이비) */
.gnb--light .gnb__brand img { width: 163px; height: 32px; }

.sub-hero { position: relative; height: 840px; overflow: hidden; } /* 최종 시안(.fig 0821) 840 — 구판 700에서 정합(2026-09-02) */
.sub-hero__bg { position: absolute; inset: 0; }
.sub-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.sub-hero__bg::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.3); }
.sub-hero__content {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  display: flex; flex-direction: column; align-items: center; gap: 40px;
}
.sub-hero__title { font-weight: 700; font-size: 60px; color: #fff; letter-spacing: var(--ls-sans); white-space: nowrap; } /* 민형사/Hero 60 Bold -3% (2026-09-24, 검토 P2) */

.field-hero { position: relative; height: 500px; overflow: hidden; }
.field-hero__bg { position: absolute; inset: 0; }
.field-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.field-hero__bg::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.25); }
.field-hero__block {
  position: absolute; left: max(20px, calc((100% - 1200px) / 2)); top: calc(50% + 110px); transform: translateY(-50%); /* GNB 좌측선(로고) 정렬 */
  display: flex; flex-direction: column; gap: 24px; align-items: flex-start;
}
.field-hero__breadcrumb { display: flex; align-items: center; font-weight: 500; font-size: 16px; color: #fff; }
.field-hero__breadcrumb img { width: 24px; height: 24px; }
.field-hero__breadcrumb .sep { transform: rotate(90deg); }
.field-hero__title { font-weight: 700; font-size: 60px; color: #fff; letter-spacing: var(--ls-sans); } /* 공통/Hero 60 Bold -3% (2026-09-24, 검토 P2) */

.field-intro { background: #fff; padding: 100px 120px; }
.field-intro__wrap { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 40px; align-items: flex-start; }
.field-intro__title { font-weight: 600; font-size: 40px; color: var(--color-main); letter-spacing: -0.03em; line-height: 1.4; /* 타이포 가이드 140% (2026-09-02 시안 정합) */ }
.field-intro__body { display: flex; flex-direction: column; gap: 32px; }
.field-intro__body p { font-weight: 400; font-size: 24px; color: #000; line-height: 1.7; } /* 20→24 피그마 공통/Intro */
.field-intro__body b { font-weight: 700; }
.field-intro__body .sb { font-weight: 600; }
.field-intro__chips { display: flex; gap: 16px; flex-wrap: wrap; }
.field-intro__chips span {
  background: var(--color-primary-50); border-radius: 2px; padding: 10px 20px; /* 2026-09-11 #ecf7ff→Primary/50 피그마 공통/Intro tag (D10) */
  font-weight: 500; font-size: 20px; color: var(--color-main); line-height: 1.4; white-space: nowrap;
}

.sub-fields { background: #fafafa; padding: 100px 120px; }
.sub-fields__wrap { max-width: 1200px; margin: 0 auto; display: flex; align-items: flex-start; justify-content: space-between; }
.sub-fields__title { font-weight: 600; font-size: 56px; color: #000; line-height: 1.4; /* 타이포 가이드 140% (2026-09-02 시안 정합) */ }
.sub-fields__list {
  display: flex; flex-direction: column; gap: 10px; width: 600px;
  filter: drop-shadow(0 4px 15px rgba(0, 0, 0, 0.05));
}
.sub-fields__card {
  display: flex; align-items: center; justify-content: space-between;
  background: #fff; border-radius: 2px; padding: 20px 32px;
  font-weight: 500; font-size: 24px; color: var(--color-main);
}
.sub-fields__card img { width: 8px; height: 16px; }

.success { background: #fff; padding: 120px; }
.success__wrap { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 60px; }
.success__head { display: flex; align-items: center; justify-content: space-between; }
.success__title { font-weight: 700; font-size: 60px; color: #000; }
.success__more { background: var(--color-neutral-200); border-radius: 2px; /* 2026-09-11 #eee→Neutral/200 피그마 more_button (D9) */ padding: 16px 50px; font-weight: 400; font-size: 16px; color: #000; }
.success__list { border-top: 2px solid #000; border-bottom: 2px solid #000; display: flex; flex-direction: column; }
.success__row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 32px 20px; border-bottom: 1px solid var(--color-neutral-200);
}
.success__row:last-child { border-bottom: 0; }
.success__row-text { display: flex; flex-direction: column; gap: 20px; }
.success__row-title { font-weight: 400; font-size: 24px; color: #000; line-height: 1; } /* 공통/Case 노드 상자 24/24 = 고정 높이 → 행간 1 유지 (2026-09-24 5차, P8 되돌림) */
/* (제거됨 2026-08-27) 첫 행 강조는 퍼블리싱 시안의 호버 상태 예시였음 — 호버 시에만 강조 */
.success__row-date { font-weight: 400; font-size: 18px; color: var(--color-neutral-600); line-height: 1; } /* 2026-09-11 #6d6d6d→Neutral/600 피그마 공통/Case (D1) */
.success__row img { width: 8px; height: 16px; }

.lawyers { background: #fff; padding: 120px 0; overflow: hidden; }
/* 피그마 시안(1440 캔버스, 담당 변호사 프레임) 기준: 타이틀·화살표 버튼은 사이트 공통
 * 콘텐츠 폭 1200 중앙(시안 좌 여백 120 = (1440-1200)/2), 타이틀-카드 간격 40 */
.lawyers__head {
  max-width: 1240px; margin: 0 auto 40px;
  display: flex; align-items: center; justify-content: space-between; padding: 0 20px;
}
.lawyers__title { font-weight: 700; font-size: 60px; color: #000; }
.lawyers__nav { display: flex; gap: 26px; }
.lawyers__nav img { width: 40px; height: 40px; }
.lawyers__nav .next img { transform: rotate(180deg); }
/* 확정 사양(2026-08-27 사용자 최종): 한 화면 4명 — 3장 정상 노출 + "4번째 카드 자체"가 우측에서
 * 일부 잘려 보이게. 카드는 피그마 원치수 310 고정(사진·인셋은 기본 .member-card 규칙), 갭 32.
 * 잘림선 = 화살표 버튼 기준선(콘텐츠 1200 우측) — 클립 래퍼가 콘텐츠 폭 자체로 잘라
 * 4번째가 174px(310 중)만 보인다(3×310+3×32=1026 → 1200-1026=174). */
.lawyers__clip { width: calc(100% - 40px); max-width: 1200px; margin: 0 auto; overflow: hidden; }
.lawyers__strip { display: flex; gap: 32px; }
.lawyers__strip .member-card .role { font-size: 20px; }
.lawyers__strip .member-card .name { font-size: 28px; }
.lawyers__strip .member-card { flex: 0 0 310px; width: 310px; }

.yt { background: var(--color-primary-50); padding: 120px 88px; }
.yt__wrap { display: flex; gap: 32px; justify-content: center; }
/* 1280~1450px 창에서 3열(400×3+갭)이 패딩을 뚫고 화면 밖으로 삐지지 않게 축소 허용.
 * min-width:0 이 없으면 flex 자식은 콘텐츠(400px 썸네일) 이하로 줄지 않는다 */
.yt__card { display: flex; flex-direction: column; gap: 20px; flex: 0 1 400px; min-width: 0; width: auto; max-width: 400px; }
.yt__thumb { position: relative; width: 100%; aspect-ratio: 400 / 229; height: auto; } /* 카드 폭 축소에 비례 */
.yt__thumb img.bg { width: 100%; height: 100%; object-fit: cover; }
.yt__thumb::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.2); }
.yt__thumb .play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 70px; height: 72px; z-index: 1;
}
.yt__card p { font-weight: 600; font-size: 24px; color: #000; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.35; } /* 제목 2줄까지 그대로(정의서 38p 검수) */

.faq { background: #fff; padding: 120px; }
.faq__wrap { max-width: 1200px; margin: 0 auto; display: flex; align-items: flex-start; justify-content: space-between; }
.faq__title { font-weight: 700; font-size: 60px; color: #000; white-space: nowrap; }
.faq__list { display: flex; flex-direction: column; gap: 32px; width: 750px; }
.faq__item { display: flex; flex-direction: column; gap: 16px; border-bottom: 1px solid var(--color-neutral-200); padding-bottom: 32px; }
.faq__item:last-child { border-bottom: 0; padding-bottom: 0; }
.faq__q { display: flex; gap: 8px; align-items: flex-start; }
.faq__q .num {
  font-weight: 600; font-size: 24px; line-height: 1;
  background: linear-gradient(to bottom, var(--color-main), var(--color-secondary-500));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  white-space: nowrap;
}
.faq__q .txt { flex: 1; font-weight: 600; font-size: 24px; color: #000; line-height: 1.4; } /* 28→24 피그마 공통/FAQ */
.faq__q img { width: 18px; height: 18px; margin-top: 5px; }
.faq__a { overflow: hidden; } /* 슬라이드 전환(sec_faq.php JS) */
.faq__a { padding-left: 48px; font-weight: 300; font-size: 20px; color: var(--color-secondary-500); line-height: 1.7; max-width: 698px; } /* #1b263b(피그마 placeholder 색 오용)→#1a2845 */

.cases-header { background: linear-gradient(to bottom, #eaf3fa 25%, #fff); padding: 81px 20px 60px; text-align: center; position: relative; }
/* 성공사례 목록·상세 브레드크럼(2026-08-28 추가) — 타 페이지 헤더와 동일 스타일, GNB 콘텐츠(1200) 우측선 정렬 */
.cases-header__breadcrumb, .cdetail__breadcrumb {
  position: absolute; right: max(20px, calc((100% - 1200px) / 2)); top: 32px;
  display: flex; align-items: center;
  font-weight: 500; font-size: 16px; color: #000;
}
.cases-header__breadcrumb img, .cdetail__breadcrumb img { width: 24px; height: 24px; }
.cases-header__breadcrumb .sep, .cdetail__breadcrumb .sep { transform: rotate(90deg); }
.cases-header__title { font-weight: 800; font-size: 60px; color: #000; letter-spacing: -0.04em; }
.cases-header__sub { font-weight: 400; font-size: 20px; color: var(--color-neutral-600); line-height: 1.7; margin-top: 24px; } /* 2026-09-11 #6f6f6f→Neutral/600 피그마 공통/Case-Hero (D1) */
.cases-section { background: #fff; padding: 80px 0 120px; }
.cases-section__inner { max-width: 1004px; margin: 0 auto; display: flex; flex-direction: column; gap: 80px; }
.cases-toolbar { display: flex; align-items: center; justify-content: space-between; }
.cases-toolbar__search {
  display: flex; align-items: center; justify-content: space-between;
  background: #fff; border: 1px solid var(--color-neutral-400); border-radius: 10px;
  padding: 10px 24px; width: 300px;
  font-weight: 400; font-size: 16px; color: var(--color-neutral-800);
}
.cases-toolbar__search img { width: 16px; height: 16px; }
.cases-list { display: flex; flex-direction: column; gap: 40px; }
.cases-list__row { display: flex; align-items: center; justify-content: space-between; }
.cases-list__left { display: flex; gap: 32px; align-items: center; }
.cases-list__num { font-weight: 500; font-size: 20px; color: #b1b1b1; width: 30px; line-height: 1; }
.cases-list__title { font-weight: 400; font-size: 24px; color: #000; line-height: 1; }
/* (제거됨 2026-08-27) 첫 행 강조는 퍼블리싱 시안의 호버 상태 예시였음 — 실서비스는 호버 시에만 강조 */
.cases-list__date { font-weight: 400; font-size: 18px; color: var(--color-neutral-600); line-height: 1; } /* 2026-09-11 #6d6d6d→Neutral/600 피그마 공통/Case-list (D1) */

.cdetail { background: #fff; padding: 91px 0 120px; position: relative; }
.cdetail__wrap { max-width: 800px; margin: 0 auto; display: flex; flex-direction: column; gap: 60px; }
.cdetail__head { display: flex; flex-direction: column; gap: 11px; align-items: center; text-align: center; }
.cdetail__badge {
  background: #d9f0ff; padding: 6px;
  font-weight: 700; font-size: 16px; color: var(--color-main); line-height: 1;
}
.cdetail__title { font-weight: 600; font-size: 40px; color: #000; }
.cdetail__date { font-weight: 400; font-size: 18px; color: var(--color-neutral-600); line-height: 1; } /* 2026-09-11 #6d6d6d→Neutral/600 피그마 공통/Case-contents (D1) */
.cdetail__body { display: flex; flex-direction: column; gap: 60px; align-items: center; }
.cdetail__group { display: flex; flex-direction: column; gap: 0; width: 100%; } /* 문단(<p>) 사이 22px 간격 제거 — 정의서 40p "행간 넓음"의 실제 원인. 제목→본문 22는 아래 margin-bottom */
.cdetail__group-title {
  background: #fafafa; border-top: 1px solid #d2d2d2; border-bottom: 1px solid #d2d2d2; border-radius: 3px;
  text-align: center; padding: 10px 0; margin-bottom: 22px; /* 피그마 section 간격 22 */
  font-weight: 700; font-size: 18px; color: var(--color-neutral-700);
}
.cdetail__group ol { list-style: decimal; margin-left: 27px; }
.cdetail__group ul { list-style: disc; margin-left: 27px; }
.cdetail__group p, .cdetail__group li { font-weight: 400; font-size: 18px; color: var(--color-neutral-900); line-height: 1.8; letter-spacing: -0.03em; margin: 0; } /* 피그마 본문 18/1.8/-3% — DB 본문은 줄 단위 <p>라 p 규칙이 핵심(정의서 40p 검수) */
.cdetail__group li b { font-weight: 700; }

@media (max-width: 1199px) {
  .sub-hero { height: auto; min-height: 300px; display: flex; align-items: flex-end; } /* 최종 시안 모바일 300 (2026-09-02) — 2026-10-18: 큰 제목이 길면 위로 먼저 늘고(GNB 아래 16 까지) 그 뒤엔 히어로가 늘어남 */
  .sub-hero__content { position: relative; left: auto; top: auto; transform: none; width: 100%; gap: 16px; padding: 80px 20px 60px; } /* 2026-10-18 피그마 민형사/Hero Mobile: 제목 위 108·제목~scroll 16·아래 60(짧은 제목 = 300). 위 80 = GNB 64 + 16. 종전엔 PC 간격(40+60)으로 가운데 정렬돼 제목 위끝 40.8 = GNB 밑 */
  .sub-hero .hero__scroll { margin-top: 0; } /* 2026-10-18 PC 의 '스크롤다운 더 아래로' 60(정의서 50p)은 모바일 시안에 없음 */
  .sub-hero .hero__scroll img { width: 30px; height: 30px; } /* 2026-10-18 피그마 Mobile scroll_icon 30 */
  .sub-hero__title { font-size: 40px; white-space: normal; text-align: center; max-width: 100%; overflow-wrap: break-word; } /* 2026-10-18 긴 큰 제목 좌우 잘림 → 모바일만 줄바꿈(낱말 단위 = body keep-all 상속, 띄어쓰기 없는 긴 낱말만 글자 단위). PC 는 nowrap 유지 */
  .field-hero { height: auto; min-height: 300px; display: flex; align-items: flex-end; padding: 80px 20px 40px; } /* 최종 시안 모바일 300 (2026-09-02) — 2026-10-18: 큰 제목이 길면 위로 먼저 늘고(GNB 아래 16 까지) 그 뒤엔 히어로가 늘어남 */
  .field-hero__block { position: relative; left: auto; top: auto; transform: none; width: 100%; } /* 2026-10-18 종전 absolute left 20·bottom 40 과 같은 자리(짧은 제목), 좌우 여백 20 */
  .field-hero__title { font-size: 40px; max-width: 100%; overflow-wrap: break-word; } /* 2026-10-18 띄어쓰기 없는 긴 낱말 좌우 잘림 방지 */
  .field-intro { padding: 64px 20px; }
  .field-intro__title { font-size: 28px; }
  .field-intro__body p { font-size: 16px; }
  .field-intro__chips span { font-size: 15px; padding: 8px 14px; }
  .sub-fields { padding: 64px 20px; }
  .sub-fields__wrap { flex-direction: column; gap: 32px; }
  .sub-fields__title { font-size: 36px; }
  .sub-fields__list { width: 100%; }
  .sub-fields__card { font-size: 24px; padding: 16px 24px; } /* 민형사/Practice Areas Mobile 카드 24 Medium (2026-09-24, 검토 M5) */
  .success { padding: 64px 20px; }
  .success__title { font-size: 36px; }
  .success__more { padding: 10px 24px; font-size: 14px; }
  .success__row { padding: 20px 8px; }
  .success__row-title { font-size: 17px; line-height: 1.4; }
  .lawyers .member-card__name .role { line-height: var(--lh-tight); } /* 공통/Lawyer Mobile 직함 16/19.1 (2026-09-24, 검토 P7) */
  .success__row-date { font-size: 14px; }
  .lawyers { padding: 64px 0; }
  .lawyers__head { margin-bottom: 32px; padding: 0 20px; }
  .lawyers__title { font-size: 36px; }
  .lawyers__clip { width: 100%; max-width: none; } /* 모바일은 화면 폭 잘림(기존 동작) — 데스크톱 1200 클립 해제 */
  .lawyers__strip { padding: 0 20px; gap: 16px; }
  .lawyers__strip .member-card { flex: 0 0 220px; width: 220px; } /* 기본 규칙의 flex-basis calc 를 덮어야 폭 유지됨 */
  .lawyers__strip .member-card__photo { width: 220px; height: 277px; }
  .lawyers__strip .member-card__photo img { left: 21px; top: 24px; width: 178px; height: 253px; }
  .yt { padding: 64px 20px; }
  .yt__wrap { flex-direction: column; align-items: center; }
  .yt__card { width: 100%; max-width: 400px; }
  .yt__thumb { width: 100%; height: auto; aspect-ratio: 400 / 229; }
  .yt__card p { font-size: 18px; }
  .faq { padding: 64px 20px; }
  .faq__wrap { flex-direction: column; gap: 32px; }
  .faq__title { font-size: 36px; }
  .faq__list { width: 100%; }
  .faq__q .num, .faq__q .txt { font-size: 20px; }
  .faq__a { font-size: 16px; padding-left: 0; }
  .cases-header { padding: 48px 20px 32px; }
  .cases-header__title { font-size: 36px; }
  .cases-header__sub { font-size: 15px; }
  .cases-section { padding: 40px 20px 80px; }
  .cases-section__inner { gap: 40px; }
  .cases-toolbar { flex-direction: column; gap: 16px; align-items: stretch; }
  .cases-toolbar__search { width: 100%; }
  .cases-list__title { font-size: 17px; line-height: 1.4; }
  .cases-list__num { font-size: 15px; }
  .cases-list__date { font-size: 13px; }
  .cdetail { padding: 48px 20px 80px; }
  .cdetail__title { font-size: 26px; }
}

/* chevron 방향 보정 (Figma rotate180) */
/* '>' 아이콘 파일(ico_chev_r_blue.svg)로 교체 — rotate 제거. 예전엔 '<'를 rotate 로 뒤집었는데 호버의 translateX 가 rotate 를 덮어써 방향이 되돌아가던 버그(정의서 37·50p 검수) */

/* ==========================================================================
   회생파산(hp) 전용 섹션
   ========================================================================== */
.hp-lawyer { background: #fafafa; padding: 100px 0 0; } /* 2026-09-11 피그마 Certification: 사진이 섹션 하단에 맞물림(726) — 하단 패딩 120→0 (D7) */
.hp-lawyer__title { text-align: center; font-size: 50px; font-weight: 600; letter-spacing: -0.03em; line-height: 1.3; color: #000; margin-bottom: 80px; } /* 회생파산/Certification 50 SemiBold (2026-09-24, 검토 P5) */ /* 2026-09-11 피그마 제목 하단 230 → 사진 상단 310 = 80 (D7) */
.hp-lawyer__title b { font-weight: 600; } /* SemiBold (2026-09-24, 검토 P5) */
.hp-lawyer__row { display: flex; align-items: stretch; justify-content: flex-start; width: 100%; } /* 피그마: 사진이 좌측(x=20)부터 932, 우측 증빙 카드 510 — 우측 밀림 교정(정의서 44p 검수) */
.hp-lawyer__photo { position: relative; flex: 1 1 932px; min-width: 0; height: 416px; overflow: hidden; }
.hp-lawyer__photo img { width: 100%; height: 100%; object-fit: cover; }
.hp-lawyer__photo::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.2); }
.hp-lawyer__card {
  width: 510px; height: 416px; background: var(--color-primary-50);
  display: flex; flex-direction: column; gap: 20px; align-items: center; justify-content: center;
}
.hp-lawyer__card img { width: 210px; height: 296px; object-fit: cover; border-radius: 3px; }
.hp-lawyer__card p { font-size: 24px; color: #000; }
.hp-lawyer__card p b { font-weight: 700; }

.hp-fields { background: #fafafa; padding: 85px 120px; } /* 2026-09-11 피그마 Practice Areas 270 = 85+100+85 (D7) */
.hp-fields__list {
  display: flex; gap: 10px; max-width: 1200px; margin: 0 auto;
  filter: drop-shadow(0 4px 15px rgba(0, 0, 0, 0.05));
}
.hp-fields__card {
  flex: 1; height: 100px; border-radius: 2px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 32px;
  background: #fff; border: 1px solid #fff;
  font-weight: 600; font-size: 24px; color: var(--color-main);
}
.hp-fields__card--active {
  background: linear-gradient(-25deg, rgba(116, 197, 250, 0.85) 48%, rgba(41, 118, 168, 0.85) 87%);
  border: 0; font-weight: 800; color: #fff;
}
.hp-fields__card img { width: 8px; height: 16px; } /* '>' 고정(정의서 44p 검수) */
.hp-fields__card--active img { filter: brightness(10); }

.hp-intro { background: #fafafa; padding: 100px 120px; }
.hp-intro__wrap { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 32px; }
.hp-intro__title { font-weight: 600; font-size: 40px; color: var(--color-main); letter-spacing: -0.03em; line-height: normal; }
.hp-intro__body p { font-weight: 400; font-size: 24px; color: #000; line-height: 1.7; }
.hp-intro__body b { font-weight: 700; }

.hp-region { background: var(--color-primary-50); padding: 120px 20px 100px; }
.hp-region__title { font-weight: 700; font-size: 40px; color: #000; text-align: center; }
.hp-region__tabs { display: flex; gap: 16px; justify-content: center; margin-top: 28px; flex-wrap: wrap; }
.hp-region__tab {
  padding: 16px 24px; border-radius: 2px; border: 1px solid var(--color-neutral-200);
  background: #fafafa; font-weight: 600; font-size: 20px; color: var(--color-main); line-height: 1;
}
.hp-region__tab--active { background: var(--color-main); color: #fff; }
.hp-region__map { position: relative; width: 437px; margin: 40px auto 0; }
.hp-region__map > img.map { width: 100%; display: block; }
.hp-region__pin {
  position: absolute;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.hp-region__pin .bubble {
  background: #fafafa; border-radius: 9px; padding: 12px 16px;
  filter: drop-shadow(0 4px 15px rgba(0, 0, 0, 0.05));
  display: flex; flex-direction: column; gap: 6px; align-items: center; white-space: nowrap;
}
.hp-region__pin .bubble .city { font-weight: 700; font-size: 18px; color: #000; line-height: 1; }
.hp-region__pin .bubble .desc { font-weight: 500; font-size: 14px; color: var(--color-neutral-500); line-height: 1.4; } /* 12→14 피그마 회생파산/Map */
.hp-region__pin .dot { width: 14px; height: 14px; border-radius: 50%; background: #b7cfde; } /* 2026-09-11 피그마 Map: 비활성 #B7CFDE 단색(종전 파랑+#cfe4f2 링은 피그마 최종본에 없는 색) (D11) */

.hp-compare { background: #fafafa; padding: 120px 20px; }
.hp-compare__head { text-align: center; display: flex; flex-direction: column; gap: 16px; margin-bottom: 60px; }
.hp-compare__title { font-weight: 700; font-size: 40px; color: #000; }
.hp-compare__sub { font-weight: 500; font-size: 20px; color: var(--color-neutral-800); }
.hp-compare__row { display: flex; gap: 40px; align-items: center; justify-content: center; }
.hp-compare__vs { font-weight: 700; font-size: 24px; color: #000; }
.hp-compare__card {
  width: 450px; border-radius: 20px; padding: 40px 32px;
  display: flex; flex-direction: column; gap: 10px; align-items: center;
}
.hp-compare__card--blue { background: #e7f0f7; }
.hp-compare__card--gray { background: var(--color-neutral-200); } /* 2026-09-11 #ebebeb→Neutral/200 피그마 Comparison (D12) */
.hp-compare__card h3 { font-weight: 700; font-size: 24px; text-align: center; }
.hp-compare__card--blue h3 { color: var(--color-main); }
.hp-compare__card--gray h3 { color: var(--color-secondary-400); } /* 피그마 #1A364E */
.hp-compare__desc { font-weight: 500; font-size: 18px; color: #79849b; text-align: center; padding: 8px 0 16px; line-height: 1.4; }
.hp-compare__desc b { font-weight: 700; }
.hp-compare__checks {
  background: #fafafa; border-radius: 10px; padding: 24px;
  display: flex; flex-direction: column; gap: 16px; width: 100%;
}
.hp-compare__checks p { display: flex; gap: 10px; align-items: center; font-weight: 400; font-size: 20px; color: #000; line-height: 1; } /* 19→20 · 노드 상자 20/20 → 행간 1 유지 (2026-09-24 5차, P8 되돌림) */
.hp-compare__checks img { width: 16px; height: 16px; }

.hp-process { background: #fafafa; padding: 120px 40px; }
.hp-process__title { font-weight: 700; font-size: 40px; color: #000; text-align: center; margin-bottom: 60px; }
.hp-process__row { display: flex; gap: 10px; align-items: center; justify-content: center; flex-wrap: wrap; }
.hp-process__card {
  background: #fafafa; border-radius: 9px; padding: 24px 32px;
  filter: drop-shadow(0 4px 15px rgba(0, 0, 0, 0.09));
  display: flex; flex-direction: column; gap: 16px; align-items: flex-start;
}
.hp-process__card .head { display: flex; gap: 10px; align-items: center; }
.hp-process__card .num {
  width: 24px; height: 24px; border-radius: 7px; background: var(--color-main);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 14px; color: #fff; line-height: 1;
}
.hp-process__card .tit { font-weight: 700; font-size: 24px; color: #000; line-height: 1; } /* 회생파산/Process 노드 상자 24/24 → 행간 1 유지 (2026-09-24 5차, P8 되돌림) */
.hp-process__card .desc { font-weight: 500; font-size: 16px; color: var(--color-neutral-500); line-height: 1.2; }
.hp-process__row > img { width: 24px; height: 24px; }

.hp-steps { background: #fafafa; padding: 120px 120px 60px; }
.hp-steps__title { font-weight: 700; font-size: 40px; color: #000; text-align: center; line-height: normal; margin-bottom: 80px; }
.hp-step { max-width: 1200px; margin: 0 auto; border-top: 1px solid #ccc; padding: 80px 0 60px; display: flex; gap: 95px; align-items: flex-start; }
.hp-step__label { width: 255px; flex: none; display: flex; flex-direction: column; gap: 8px; }
.hp-step__label .step { font-weight: 700; font-size: 24px; color: var(--color-main); }
.hp-step__label .name { font-weight: 700; font-size: 32px; color: #000; line-height: 1.4; }
.hp-step__body { flex: 1; min-width: 1px; }
.hp-problem {
  background: #e7f0f7; border-radius: 10px; padding: 40px;
  display: flex; flex-direction: column; gap: 40px;
}
.hp-problem__title { font-weight: 700; font-size: 32px; color: var(--color-main); }
.hp-problem__list { display: flex; flex-direction: column; gap: 12px; }
.hp-problem__item {
  background: #fff; border-radius: 10px; padding: 24px 20px;
  display: flex; gap: 20px; align-items: center;
}
.hp-problem__item .num {
  width: 30px; height: 30px; border-radius: 50%; background: var(--color-main); border: 2px solid #fff;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 15px; color: #fff; line-height: 1; flex: none;
}
.hp-problem__item p { font-weight: 400; font-size: 20px; color: #000; line-height: 1.3; }
.hp-solution {
  background: #fff; border: 1px solid #d9d9d9; border-radius: 10px; padding: 40px;
  display: flex; flex-direction: column; gap: 40px;
}
.hp-solution__title { font-weight: 700; font-size: 32px; color: var(--color-main); }
.hp-solution__cols { display: flex; }
.hp-solution__col {
  flex: 1; display: flex; flex-direction: column; gap: 32px; align-items: center;
  border-right: 1px solid var(--color-neutral-400); padding: 0 12px;
}
.hp-solution__col:last-child { border-right: 0; }
.hp-solution__col img { width: 60px; height: 60px; }
.hp-solution__col p { font-weight: 600; font-size: 24px; color: #000; text-align: center; line-height: normal; }
.hp-vscards { display: flex; gap: 40px; align-items: center; }
.hp-vscards__vs { font-weight: 700; font-size: 24px; color: #000; }
.hp-vscard { flex: 1; border-radius: 10px; padding: 24px; display: flex; flex-direction: column; gap: 16px; align-items: center; }
.hp-vscard--blue { background: #e7f0f7; }
.hp-vscard--red { background: #ffecec; }
.hp-vscard h4 { font-weight: 700; font-size: 32px; text-align: center; }
.hp-vscard--blue h4 { color: var(--color-main); }
.hp-vscard--red h4 { color: #b40000; }
.hp-vscard p { font-weight: 400; font-size: 20px; color: #636363; text-align: center; line-height: 1.4; }
.hp-vscard p b { font-weight: 700; }
.hp-vscard--blue p b { color: var(--color-main); }
.hp-vscard--red p b { color: #b40000; }
.hp-conclusion {
  position: relative; border: 1px solid #d9d9d9; border-radius: 10px; padding: 40px;
  text-align: center; overflow: hidden; margin-bottom: 20px;
}
.hp-conclusion > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hp-conclusion::after { content: ""; position: absolute; inset: 0; background: rgba(41, 135, 195, 0.9); }
.hp-conclusion div { position: relative; z-index: 1; font-size: 24px; line-height: 1.5; }
.hp-conclusion .dim { font-weight: 600; color: rgba(255, 255, 255, 0.6); }  /* 기업회생/Checklist 24 SemiBold (2026-09-24, 검토 P6) */
.hp-conclusion .strong { font-weight: 600; color: #fff; }
/* 2026-09-12 R3: `.hp-ctabox*` 사문 CSS 삭제(마크업 참조 0 — 2026-09-06 기업회생 STEP 하단 CTA 박스가 피그마 최종본에서 제거됨).
   함께 사라진 팔레트 외 색: #181818. 되살릴 일이 생기면 git 이력에서 복구한다. */

.hp-benefits { background: #2987c3; padding: 120px 40px; }
.hp-benefits__title { font-weight: 700; font-size: 40px; color: #fff; text-align: center; margin-bottom: 60px; }
.hp-benefits__grid {
  display: grid; grid-template-columns: repeat(3, 363px); gap: 24px; justify-content: center;
}
.hp-benefits__card { /* 2026-09-09 마크업 클래스와 통일(종전 .hp-benefit 로 스타일 미적용, P1-2) */
  background: #fff; border-radius: 10px; padding: 32px 16px; min-height: 240px; /* 피그마 카드 363×240 */
  display: flex; flex-direction: column; gap: 10px; align-items: center; text-align: center;
}
.hp-benefits__card img { width: 40px; height: 40px; }
.hp-benefits__card h4 { font-weight: 700; font-size: 24px; color: #004673; }
.hp-benefits__card p { font-weight: 500; font-size: 18px; color: #79849b; line-height: 1.4; }
.hp-benefits__card p b { font-weight: 700; }

.hp-industry { position: relative; padding: 120px 40px; overflow: hidden; background: #1a2845; }
.hp-industry > img.bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.2; }
.hp-industry::after { content: ""; position: absolute; inset: 0; background: rgba(26, 40, 69, 0.6); }
.hp-industry__inner { position: relative; z-index: 1; max-width: 864px; margin: 0 auto; display: flex; flex-direction: column; gap: 60px; align-items: center; }
.hp-industry__title { font-weight: 700; font-size: 40px; color: #fff; text-align: center; }
.hp-industry__grid { display: grid; grid-template-columns: repeat(2, 420px); gap: 24px; justify-content: center; }
.hp-industry__card {
  background: #fafafa; border-radius: 10px; padding: 24px 24px 24px 32px;
  display: flex; flex-direction: column; gap: 16px; align-items: flex-start;
  filter: drop-shadow(0 4px 15px rgba(0, 0, 0, 0.09));
}
.hp-industry__card img { width: 40px; height: 40px; }
.hp-industry__card h4 { font-weight: 600; font-size: 24px; color: #000; line-height: 1.4; }
.hp-industry__card p { font-weight: 500; font-size: 20px; color: var(--color-neutral-500); line-height: 1.4; } /* 19→20 피그마 */

@media (max-width: 1199px) {
  .hp-lawyer { padding: 64px 0 80px; }
  .hp-lawyer__title { font-size: 24px; margin-bottom: 32px; padding: 0 20px; } /* Mobile 24 SemiBold (2026-09-24, 검토 P5) */
  .hp-lawyer__row { flex-direction: column; }
  .hp-lawyer__photo { width: 100%; max-width: none; height: 240px; }
  .hp-lawyer__card { width: 100%; height: auto; padding: 32px 0; }
  .hp-lawyer__card img { width: 160px; height: 226px; }
  .hp-lawyer__card p { font-size: 18px; }
  .hp-fields { padding: 0 20px 64px; }
  .hp-fields__list { flex-direction: column; }
  .hp-fields__card { font-size: 24px; height: 72px; padding: 0 24px; } /* 회생파산/Practice Areas Mobile 24 (2026-09-24, 검토 M5) */
  .hp-intro { padding: 64px 20px; }
  .hp-intro__title { font-size: 28px; }
  .hp-intro__body p { font-size: 16px; }
  .hp-region { padding: 64px 20px; }
  .hp-region__title { font-size: 28px; }
  .hp-region__tab { font-size: 15px; padding: 10px 16px; }
  /* 🔴 모바일 지도 폭 보정(2026-09-02): 인천 핀이 지도 왼쪽 바깥(left:-14%) 배치라
   * 지도가 화면 폭까지 커지면 핀·말풍선이 화면 밖으로 넘쳐 페이지가 좌우로 흔들린다.
   * 280px 중앙이면 전 핀이 비율 그대로 화면(375px) 안에 들어온다 */
  .hp-region__map { width: 100%; max-width: 280px; }
  /* 부산 핀(7번째 자식, 우측 말풍선)은 280px 지도에서도 우측으로 넘친다 → 모바일은 말풍선을
   * 점(dot) 왼쪽으로 뒤집는다. 핀 div 의 left 는 인라인 고정이라 방향만 바꾸면 박스가 안 움직임 —
   * translateX(-100%+14px)로 div 를 말풍선 폭만큼 왼쪽 이동시켜 점은 지도상 부산 위치에 유지 */
  .hp-region__map .hp-region__pin:nth-child(7) {
    flex-direction: row !important;
    transform: translateX(calc(-100% + 14px));
  }
  .hp-region__pin .bubble .city { font-size: 14px; }
  .hp-region__pin .bubble .desc { font-size: 10px; }
  .hp-compare { padding: 64px 20px; }
  .hp-compare__title { font-size: 26px; }
  .hp-compare__sub { font-size: 15px; }
  .hp-compare__row { flex-direction: column; gap: 20px; }
  .hp-compare__card { width: 100%; padding: 28px 20px; }
  .hp-compare__checks p { font-size: 15px; }
  .hp-process { padding: 64px 20px; }
  .hp-process__title { font-size: 28px; }
  .hp-process__row { flex-direction: column; }
  .hp-process__row > img { transform: rotate(90deg); }
  .hp-process__card { width: 100%; }
  .hp-steps { padding: 64px 20px 32px; }
  .hp-steps__title { font-size: 32px; margin-bottom: 40px; } /* 기업회생/Checklist Mobile 32 (2026-09-24, 검토 M6) */
  .hp-step__label .step { font-size: 18px; } /* STEP 18 (M6) */
  .hp-step { flex-direction: column; gap: 24px; padding: 40px 0 32px; }
  .hp-step__label { width: auto; }
  .hp-step__label .name { font-size: 28px; } /* Mobile 28 (M6) */
  .hp-problem { padding: 24px; gap: 24px; }
  .hp-problem__title { font-size: 28px; } /* Mobile 28 (M6) */
  .hp-problem__item p { font-size: 20px; line-height: 1.4; } /* Mobile 20/28 (M6) */
  .hp-solution { padding: 24px; gap: 24px; }
  .hp-solution__title { font-size: 28px; } /* Mobile 28 (M6) */
  .hp-solution__cols { flex-direction: column; gap: 32px; }
  .hp-solution__col { border-right: 0; }
  .hp-solution__col p { font-size: 24px; } /* Mobile 24 SemiBold (M6) */
  .hp-vscards { flex-direction: column; gap: 16px; }
  .hp-vscard { width: 100%; }
  .hp-vscard h4 { font-size: 32px; } /* Mobile 32 (M6) */
  .hp-vscard p { font-size: 16px; }
  .hp-conclusion div { font-size: 17px; }
  .hp-benefits { padding: 64px 20px; }
  .hp-benefits__title { font-size: 32px; margin-bottom: 32px; } /* 기업회생/Change Mobile 32 (M6) */
  .hp-benefits__grid { grid-template-columns: 1fr; }
  .hp-industry { padding: 64px 20px; }
  .hp-industry__title { font-size: 26px; }
  .hp-industry__grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Phase 6A — 인터랙션·호버 (기능정의서 파랑 항목)
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
  /* 퀵메뉴: 상시 불투명·흰색 뚜렷(2026-09-02, 정의서 6p 검수 코멘트 — 5p '반투명' 코멘트를 6p 최신 코멘트가 뒤집음) */
  .quick__item { transition: transform 0.2s; }
  .quick__item:hover { transform: translateX(-4px); }
  /* 업무분야 리스트: 브랜드 그라데이션 + 흰 텍스트 + 아이콘 이동 */
  .practice__card { transition: background 0.25s, color 0.25s; }
  .practice__card:not(.practice__card--active):hover { background: linear-gradient(90deg, #2976a8 0%, #1a2845 100%); color: #fff; }
  .practice__card img { transition: transform 0.2s, filter 0.2s; }
  .practice__card:hover img { transform: translateX(6px); filter: brightness(10); }
  /* 구성원·담당변호사 카드: 사진 확대(1.05) + 이름 강조 */
  .member-card__photo img { transition: transform 0.35s; }
  .member-card:hover .member-card__photo img { transform: scale(1.05); }
  .member-card .name { transition: color 0.2s; }
  .lawyers .member-card:hover .name { color: #2976a8; }
  /* 소식 카드: 썸네일 확대 */
  .news-card { overflow: hidden; }
  .news-card__img { transition: transform 0.35s; }
  .news-card:hover .news-card__img { transform: scale(1.04); }
  /* 성공 사례 행: 제목 브랜드 컬러 + 밑줄, 아이콘 4px 이동 */
  .success__row-title { transition: color 0.2s; }
  .success__row:hover .success__row-title { color: #2976a8; text-decoration: underline; }
  .success__row > img { transition: transform 0.2s; }
  .success__row:hover > img { transform: translateX(4px); }
  /* 2026-09-11 호버 색: filter 근사(채널 오차 11/255)를 버리고 피그마 원본 파랑 아이콘으로 교체 → 정확히 #2976A8.
     content:url() 은 대체요소(img)의 내용을 바꾸는 표준 방식이며, 미지원 브라우저에서는 검정 아이콘이 그대로 남는다(레이아웃 영향 없음).
     display 토글을 쓰지 않는다(2026-08 구성원 사진 미표시 사고 규칙). */
  .success__row:hover > img { content: url(../img/ico_chev_r_blue.svg); } /* 2026-09-11 검정 아이콘 → 호버 시 #2976A8 (D4, hp-industry 와 동일 기법) */
  .cases-list__title { transition: color 0.2s; }
  .cases-list__row:hover .cases-list__title { color: #2976a8; text-decoration: underline; }
  /* 더보기: 배경 명도 상승 / 목록보기: 브랜드 컬러 반전 */
  .success__more { transition: background 0.2s, color 0.2s; }
  .success__more:hover { background: var(--color-main); color: #fff; } /* 더보기 호버 = 파란색(정의서 37p 검수) */
  .ndetail-list-btn { transition: background 0.2s, color 0.2s, border-color 0.2s; }
  .ndetail-list-btn:hover { background: #2976a8; color: #fff; border-color: #2976a8; }
  .ndetail-list-btn:hover img { filter: brightness(10); }
  /* 세부 분야 리스트: 연블루 배경 + 아이콘 4px */
  .sub-fields__card { transition: background 0.2s; }
  .sub-fields__card:hover { background: #f1f7fc; }
  .sub-fields__card img { transition: transform 0.2s; }
  .sub-fields__card:hover img { transform: translateX(4px); }
  /* 유튜브 카드: 썸네일·재생 버튼 확대 */
  .yt__thumb { overflow: hidden; }
  .yt__thumb .bg { transition: transform 0.35s; }
  .yt__card:hover .yt__thumb .bg { transform: scale(1.05); }
  .yt__thumb .play { transition: transform 0.25s; }
  .yt__card:hover .yt__thumb .play { transform: translate(-50%, -50%) scale(1.15); } /* 중앙 고정 유지 — scale 만 주면 translate 가 사라져 대각선으로 밀리던 버그(정의서 38p 검수) */
  /* 회생: 분야 선택 버튼·업종 카드 */
  /* 호버 = 컬러 반전(파랑→흰, 흰→파랑) — 정의서 44p 검수 */
  /* 2026-10-19 정의서 67p: 마우스를 올린 칸만 파랑(그라데이션) — 기본 선택(첫 칸)은 다른 칸을 올리는 동안 흰색으로 물러나고,
     다시 올리면 파랑. 종전엔 선택 칸이 계속 파랑이라 두 칸이 같이 파랗고, 선택 칸에 올리면 흰색으로 뒤집혔다 */
  .hp-fields__card { transition: background 0.2s, color 0.2s; }
  .hp-fields__card:hover { background: linear-gradient(-25deg, rgba(116, 197, 250, 0.85) 48%, rgba(41, 118, 168, 0.85) 87%); color: #fff; font-weight: 800; }
  .hp-fields__card:hover img { filter: brightness(10); }
  .hp-fields__list:hover .hp-fields__card--active:not(:hover) { background: #fff; color: var(--color-main); font-weight: 600; }
  .hp-fields__list:hover .hp-fields__card--active:not(:hover) img { filter: none; }
  .hp-fields__card img { transition: transform 0.2s; }
  .hp-fields__card:hover img { transform: translateX(4px); }
  .hp-industry__card h4 { transition: color 0.2s; }
  .hp-industry__card:hover h4 { color: #2976a8; }
  /* 업종 아이콘도 호버 시 브랜드 블루(정의서 48p 검수) — 어떤 색 아이콘이든 필터로 #2976A8 근사 */
  .hp-industry__card img { transition: filter 0.2s; }
  .hp-industry__card:hover img { filter: brightness(0) saturate(100%) invert(35%) sepia(49%) saturate(766%) hue-rotate(163deg) brightness(93%) contrast(89%); }
}
/* 성공 사례 상세 제목: 1줄 고정 (넘치면 JS가 사이즈 축소) */
.cdetail__title { white-space: nowrap; overflow: hidden; max-width: 100%; }
/* 브랜드 스토리 좌측 인덱스: sticky + 클릭 가능 */
.brand-labels { position: sticky; top: 140px; align-self: flex-start; }
.brand-labels p { cursor: pointer; transition: color 0.2s; }

/* ---------- GNB 상단 고정 (스크롤 추종) ---------- */
.gnb { transition: background 0.3s, box-shadow 0.3s; }
.gnb:not(.gnb--light).nh-gnb-solid { background: rgba(26, 40, 69, 0.94); box-shadow: 0 2px 14px rgba(0, 0, 0, 0.22); }
@supports (backdrop-filter: blur(6px)) {
  .gnb:not(.gnb--light).nh-gnb-solid { background: rgba(26, 40, 69, 0.86); backdrop-filter: blur(6px); }
}
.gnb--light.nh-gnb-solid { box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); }
html { scroll-padding-top: 100px; }
@media (max-width: 1199px) { html { scroll-padding-top: 72px; } }

@media (max-width: 1199px) {
  .cases-header__breadcrumb, .cdetail__breadcrumb { position: static; justify-content: flex-end; font-size: 13px; }
  .cases-header__breadcrumb img, .cdetail__breadcrumb img { width: 18px; height: 18px; }
}

/* ===== 정의서 46p 검수 "지역 탭 클릭 안됨" — 탭 클릭 시 지도 핀 강조(JS: personal.html) ===== */
.hp-region__tab { cursor: pointer; transition: background 0.2s, color 0.2s; }
.hp-region__pin .bubble { transition: background 0.2s, box-shadow 0.2s; }
.hp-region__pin .bubble .city, .hp-region__pin .bubble .desc { transition: color 0.2s; }
.hp-region__pin--active .bubble { background: var(--color-main); box-shadow: 0 6px 18px rgba(41, 118, 168, 0.35); }
.hp-region__pin--active .bubble .city { color: #fff; }
.hp-region__pin--active .bubble .desc { color: rgba(255, 255, 255, 0.85); }
.hp-region__pin--active .dot { background: var(--color-main); transform: scale(1.3); } /* 2026-09-11 활성 점만 브랜드 컬러 (D11) */

/* ---- 담당 변호사 카드 글자 규격 (2026-09-09, 피그마 최종본 공통/Lawyer 대조 P1-4) ----
   구성원 소개 목록(.member-card 기본 24/32, 메인은 검수 코멘트로 22/30)과 달리
   분야 홈·세부 페이지의 담당 변호사 슬라이드는 직함 20 / 이름 28(-7%, 자간은 tokens.css 예외 블록) 이다. */
.lawyers .member-card__name .role { font-size: 20px; } /* PC 공통/Lawyer 직함 20/28 = 1.4 (2026-09-24 2차: 1.2 는 모바일만) */
.lawyers .member-card__name .name { font-size: 28px; }

/* ==========================================================================
   모바일 피그마 최종본 정합 (2026-09-09, 4단계)
   기준: figma/SEO&YUL_Website_Renewal_Design_Final.fig 의 Internal Only Canvas/<섹션>/Device=Mobile (375 폭).
   이 블록은 파일 끝에 두어 앞선 768 미디어 규칙을 같은 특이성으로 덮는다. 수치는 시안 좌표를 그대로 옮긴 것.
   ========================================================================== */
@media (max-width: 1199px) {
  /* M1 하단 퀵바 — Global/Quick Menu Mobile: 375×82, 항목 4개(각 94), 흰 배경 + #F0F0F0 구분선, 아이콘 33, 라벨 12 Medium.
     종전엔 모바일에서 .quick 을 숨겼음(display:none). PC 우측 세로 바를 하단 가로 바로 재배치한다. */
  .quick { display: flex; position: fixed; left: 0; right: 0; bottom: 0; top: auto; width: 100%; height: 82px; z-index: 40;
    background: #fff; filter: drop-shadow(0 -4px 15px rgba(0, 0, 0, 0.06)); }
  .quick__label { display: none; }
  .quick__item { flex: 1 1 0; height: 82px; padding: 14px 0 0; justify-content: flex-start; gap: 7px; border-bottom: 0; border-right: 1px solid #f0f0f0; border-radius: 0; }
  .quick__item:last-child { border-right: 0; border-radius: 0; }
  .quick__item img { width: 33px; height: 33px; }
  .quick__item--phone img { width: 25px; height: 27px; margin-top: 3px; }
  body { padding-bottom: 82px; } /* 하단 바가 푸터를 가리지 않게 */

  /* M2 글자 규격 — Mobile 변형 실측 */
  .hero__title { font-size: 30px; line-height: var(--lh-tight); }          /* Main/Hero Mobile 30/36 = 120% (2026-09-24, 검토 P7) */
  .usp-intro__title { font-size: 36px; }                                   /* Main/USP Intro 36 */
  .usp-intro__desc { font-size: 16px; }                                    /* 16 */
  .usp__title { line-height: 1.2; }                                        /* USP Point 24/29 */
  .practice__sub { font-size: 16px; }                                      /* Practice Areas 16 SemiBold */
  .practice__card { height: 74px; font-size: 20px; font-weight: 600; }     /* 카드 335×74, 라벨 20 SemiBold */
  .success__title, .lawyers__title, .faq__title, .sub-fields__title,
  .page-header__title, .cases-header__title { font-size: 32px; }          /* 공통 섹션 타이틀 32 Bold */
  .field-hero__title { font-size: 32px; letter-spacing: var(--ls-sans); } /* 공통/Hero 32, -3% */
  .field-intro__chips span { font-size: 16px; }                            /* 키워드 태그 16 */
  .faq__q .num, .faq__q .txt { font-size: 24px; }                          /* 공통/FAQ 질문 24 */
  .faq__a { line-height: 1.4; }
  .cta__title { font-size: 26px; }                                         /* Main/Cta 26 */
  .gnb__field { font-size: 12px; line-height: var(--lh-base); }            /* GNB 분야명 Mobile 12/17 ≈ 1.4 (2026-09-24 3차: PC 1.2 상속 차단) */
  .footer__addr .lbl { color: #fff; }                                      /* Main/Footer Mobile 라벨 흰색 */
  .news-tab { font-size: 16px; }
  .news-card__badge { font-size: 12px; }
  .news-card__title { font-size: 16px; font-weight: 500; line-height: var(--lh-tight); } /* News/List Mobile 16 Medium, lh 19.1 (2026-09-24, 검토 P7) */
  .news-card__date { font-size: 13px; }
  .board-field__label { font-size: 20px; }                                 /* Board/Content Mobile */
  .board-agree__check span { font-size: 14px; }
  .board-agree__more { font-size: 12px; }
  .nh-bc, .nh-bc a { font-size: 16px; }                                    /* 브레드크럼 16 */

  /* M3 담당 변호사 카드 — 공통/Lawyer Mobile: 카드 206, 사진 206×259(내부 167×236 @19,22), 간격 21, 직함 16 / 이름 24 */
  .lawyers__strip { gap: 21px; }
  .lawyers__strip .member-card { flex: 0 0 206px; width: 206px; gap: 10px; }
  .lawyers__strip .member-card__photo { width: 206px; height: 259px; }
  .lawyers__strip .member-card__photo img { left: 19px; top: 22px; width: 167px; height: 236px; }
  .lawyers__strip .member-card .role { font-size: 16px; }
  .lawyers__strip .member-card .name { font-size: 24px; }

  /* M4 구성원 목록 — Member/List Mobile: 가로형 카드 335×253(#F5F5F5), 사진 168×238 우측(@147,13), 직함 20 Regular #727272(@24,32) / 이름 32 SemiBold(@24,60), 카드 간격 32 */
  .member-list__grid { grid-template-columns: 1fr; gap: 32px; row-gap: 32px; }
  .member-list .member-card { position: relative; display: block; width: 100%; height: 253px; background: #f5f5f5; }
  .member-list .member-card__photo { position: absolute; right: 20px; top: 13px; width: 168px; height: 238px; aspect-ratio: auto; background: transparent; overflow: hidden; }
  .member-list .member-card__photo img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; }
  .member-list .member-card__name { position: absolute; left: 24px; top: 32px; flex-direction: column; align-items: flex-start; gap: 8px; }
  .member-list .member-card__name .role { font-size: 20px; color: #727272; line-height: 1; }
  .member-list .member-card__name .name { font-size: 32px; line-height: 1.4; }

  /* M5 분야 홈·세부 성공사례 — 공통/Case Mobile: 세로 목록 대신 가로 스크롤 카드 270×220(r10, #D9D9D9 1px, 안쪽 20/24), 간격 16, 제목 24 / 날짜 18 #727272 하단 정렬 */
  .success { padding: 40px 0 40px 20px; }
  .success__wrap { gap: 32px; }
  .success__head { padding-right: 20px; }
  .success__list { flex-direction: row; overflow-x: auto; gap: 16px; border-top: 0; border-bottom: 0; padding: 2px 20px 8px 0; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
  .success__row { flex: 0 0 270px; width: 270px; height: 220px; box-sizing: border-box; border: 1px solid #d9d9d9; border-radius: 10px; padding: 24px 20px;
    display: flex; flex-direction: column; justify-content: space-between; scroll-snap-align: start; }
  .success__row:last-child { border-bottom: 1px solid #d9d9d9; }
  .success__row > img { display: none; }
  .success__row-text { gap: 12px; height: 100%; justify-content: space-between; }
  .success__row-title { font-size: 24px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .success__row-date { font-size: 18px; color: var(--color-neutral-600); }

  /* M6 성공사례 목록 — 공통/Case-list Mobile: 번호 없음, 제목 16 위 / 날짜 14 아래(행 42, 간격 36) */
  .cases-list__row { flex-direction: column; align-items: flex-start; gap: 6px; padding: 18px 0; }
  .cases-list__left { gap: 0; }
  .cases-list__num { display: none; }
  .cases-list__title { font-size: 16px; line-height: 1.4; }
  .cases-list__date { font-size: 14px; color: var(--color-neutral-600); line-height: 1; white-space: nowrap; }
}

/* 회생파산 전용 모바일 정합 (2026-09-09, 4단계) — 회생파산/Map·Comparison Mobile */
@media (max-width: 1199px) {
  .hp-region__title { font-size: 32px; }
  .hp-region__pin .bubble .desc { font-size: 12px; }
  .hp-compare__desc { font-size: 16px; } /* 피그마 Mobile 카탈로그가 카드별 18/16 내부 불일치 → 원래 16 유지, 판단 대기 (2026-09-24 3차) */
  .hp-compare__checks p { font-size: 18px; line-height: 1.7; } /* Comparison Mobile 18/31 (2026-09-24, 검토 P8) */
  .hp-process__card .tit { font-weight: 400; } /* Process Mobile 24 Regular (2026-09-24, 검토 P8) */
}

/* ── D14 태블릿 구간 가로 넘침 교정 (2026-09-11) ─────────────────────────────
   증상: 기업회생(corporate) '신청 즉시 달라지는 것들' 그리드가 3×363px + gap 24 = 1137px 고정이라
         뷰포트 1024px 에서 문서 폭이 1081px 로 늘어 가로 스크롤이 생겼다(2026-09-11 실측).
   범위: 769~1216px 구간만 유연폭으로 바꾼다 — 1440 데스크톱(피그마 363×240 검증분)과
         768 이하 모바일(1열, 2026-09-09 검증분) 규칙은 건드리지 않는다. */
@media (min-width: 769px) and (max-width: 1216px) {
  .hp-benefits__grid { grid-template-columns: repeat(3, minmax(0, 363px)); }
}
