/* 법무법인 거평 — 신규 디자인 시스템 (클로드디자인 목업 기반)
   컬러: 레드(#C8102E) + 네이비(#14213D) CI, 폰트: Pretendard */

:root {
  --gp-bg: #F5F6F8;
  --gp-surface: #FFFFFF;
  --gp-text: #14213D;
  --gp-accent: #C8102E;
  --gp-accent-600: #a70e27;
  --gp-accent-700: #8a0c20;
  --gp-accent-100: #fdecef;
  --gp-accent-300: #ec9aa6;
  --gp-neutral-900: #14213D;
  --gp-neutral-800: #2a3654;
  --gp-neutral-700: #445078;
  --gp-neutral-600: #5f6c94;
  --gp-neutral-400: #a6adc4;
  --gp-neutral-300: #ced3e0;
  --gp-neutral-200: #e6e9f0;
  --gp-neutral-100: #f3f4f8;
  --gp-divider: rgba(20,33,61,0.14);
  --gp-font: 'Pretendard', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* overflow-x: hidden 은 안쪽 상단 묶음(.gpm-top)의 sticky 를 깨뜨려서, 지원 브라우저에선 clip 으로 자른다 */
.gp-page { background: var(--gp-bg); color: var(--gp-text); font-family: var(--gp-font); overflow-x: hidden; overflow-x: clip; }
.gp-page * { box-sizing: border-box; }
.gp-page a { text-decoration: none; color: inherit; }
.gp-page img { display: block; max-width: 100%; }
.gp-inner { max-width: 1240px; margin: 0 auto; padding: 0 24px; }

/* 상단 지역바 */
.gp-locbar { background: var(--gp-neutral-800); color: #fff; padding: 8px 24px; display: flex; gap: 16px; font-size: 14.5px; }
.gp-locbar span { opacity: 0.85; }

/* 공지바 */
.gp-noticebar { background: var(--gp-accent-100); color: var(--gp-accent-700); text-align: center; padding: 8px 16px; font-size: 13px; font-weight: 600; }

/* 네비게이션 */
.gp-nav { background: #fff; border-bottom: 1px solid var(--gp-divider); }
.gp-nav-inner { max-width: 1240px; margin: 0 auto; padding: 14px 24px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }
.gp-nav-brand { font-weight: 800; font-size: 18px; white-space: nowrap; color: var(--gp-text); }
.gp-nav-links { display: flex; gap: 28px; flex-wrap: wrap; justify-content: center; }
.gp-nav-links a { font-size: 14px; }
.gp-nav-links a:hover { color: var(--gp-accent); }
.gp-nav-cta { justify-self: end; }
.gp-nav-toggle { display: none; width: 32px; height: 32px; border: none; background: transparent; padding: 0; margin-left: auto; cursor: pointer; flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
.gp-nav-toggle span { display: block; width: 22px; height: 2px; background: var(--gp-text); transition: transform 0.2s ease, opacity 0.2s ease; }

/* 히어로 */
.gp-hero { position: relative; overflow: hidden; }
.gp-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: var(--gp-neutral-200); }
.gp-hero-overlay { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(20,33,61,0.92) 0%, rgba(20,33,61,0.78) 42%, rgba(20,33,61,0.35) 75%); }
.gp-hero-grid { position: relative; padding: 64px 84px 56px 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 32px; align-items: center; min-height: 420px; max-width: 1240px; margin: 0 auto; }
.gp-hero-kicker { color: var(--gp-accent-300); font-size: 13px; font-weight: 800; letter-spacing: 0.08em; margin-bottom: 10px; }
.gp-hero-title { font-size: clamp(24px,3.2vw,40px); color: #fff; margin-bottom: 20px; line-height: 1.35; font-weight: 800; }
.gp-hero-search { display: flex; max-width: 460px; margin-bottom: 16px; }
.gp-hero-search input { flex: 1; padding: 12px 14px; border: none; font-size: 14px; }
.gp-hero-search button { flex-shrink: 0; background: var(--gp-accent); color: #fff; border: none; padding: 0 22px; font-weight: 800; cursor: pointer; }
.gp-hero-media { position: relative; aspect-ratio: 16/10; background: var(--gp-neutral-800); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.5); font-size: 13px; overflow: hidden; }
.gp-hero-media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gp-hero-play { width: 64px; height: 64px; border-radius: 50%; background: rgba(255,255,255,0.9); display: flex; align-items: center; justify-content: center; position: absolute; }
.gp-hero-play::after { content: ''; width: 0; height: 0; border-top: 12px solid transparent; border-bottom: 12px solid transparent; border-left: 18px solid var(--gp-neutral-900); margin-left: 4px; }
.gp-hero-rail { position: absolute; top: 24px; right: 0; display: flex; flex-direction: column; z-index: 5; }
.gp-hero-rail a { background: var(--gp-neutral-800); color: #fff; font-size: 14.5px; font-weight: 800; text-align: center; padding: 14px 10px; border-bottom: 1px solid rgba(255,255,255,0.15); min-width: 76px; }
.gp-hero-rail a:hover { background: var(--gp-accent); }

/* 신뢰배지 */
.gp-trust { padding: 28px 24px; background: var(--gp-neutral-100); }
.gp-trust-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px,1fr)); gap: 8px; max-width: 1240px; margin: 0 auto; text-align: center; }
.gp-trust-icon { width: 64px; height: 64px; margin: 0 auto 8px; border-radius: 8px; background: var(--gp-neutral-200); display: flex; align-items: center; justify-content: center; color: var(--gp-accent); font-weight: 800; font-size: 20px; }
.gp-trust-label { font-size: 14.5px; font-weight: 700; }

/* 섹션 공통 */
.gp-section { padding: 56px 24px; max-width: 1240px; margin: 0 auto; }
.gp-section-title { font-size: clamp(22px,3vw,30px); margin-bottom: 24px; font-weight: 800; line-height: 1.4; }
.gp-section-sub { font-size: 22px; margin-bottom: 20px; font-weight: 800; }
.gp-kicker-big { font-weight: 800; font-size: clamp(36px,6vw,56px); color: var(--gp-neutral-300); margin: 8px 0 28px; letter-spacing: 0.02em; }

/* 승소사례 카드 */
.gp-winning-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 16px; }
.gp-winning-card { position: relative; min-height: 340px; background: var(--gp-neutral-800); display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; }
.gp-winning-card .gp-ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.6; }
.gp-winning-body { position: relative; padding: 24px; color: #fff; display: flex; flex-direction: column; gap: 8px; background: linear-gradient(180deg, transparent 0%, rgba(20,33,61,0.85) 60%); }
.gp-winning-num { font-size: 14.5px; opacity: 0.85; }
.gp-winning-title { font-weight: 800; font-size: 19px; line-height: 1.3; }
.gp-winning-desc { font-size: 14.5px; opacity: 0.8; }

/* 사건유형 아이콘 그리드 */
.gp-casetype-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px,1fr)); gap: 6px; }
.gp-casetype-item { position: relative; aspect-ratio: 1/1; background: var(--gp-neutral-200); display: block; overflow: hidden; }
.gp-casetype-item img { width: 100%; height: 100%; object-fit: cover; }
.gp-casetype-item .gp-label { position: absolute; inset: 0; display: flex; align-items: flex-end; padding: 10px; background: linear-gradient(to top, rgba(20,33,61,0.7), transparent 60%); color: #fff; font-weight: 800; font-size: 14px; }

/* 인증 배지 */
.gp-cert-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px,1fr)); gap: 10px; }
.gp-cert-item { aspect-ratio: 3/4; border: 2px solid var(--gp-accent); background: var(--gp-neutral-100); display: flex; align-items: center; justify-content: center; color: var(--gp-neutral-400); font-size: 14.5px; text-align: center; padding: 6px; }

/* CTA 배너 */
.gp-cta { background: var(--gp-accent); color: #fff; padding: 32px 24px; }
.gp-cta-inner { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; max-width: 1240px; margin: 0 auto; }
.gp-cta-text { font-weight: 800; font-size: clamp(18px,2.4vw,24px); }
.gp-cta-btn { background: #fff; color: var(--gp-accent-700); padding: 12px 26px; font-weight: 800; border: none; cursor: pointer; }

/* 카드(성공사례) */
.gp-card { background: var(--gp-surface); box-shadow: 0 1px 2px rgba(20,33,61,0.08); display: flex; flex-direction: column; }
.gp-card-thumb { width: 100%; height: 160px; background: var(--gp-neutral-200); display: flex; align-items: center; justify-content: center; color: var(--gp-neutral-400); font-size: 14.5px; overflow: hidden; }
.gp-card-thumb img, .gp-lawyer-photo img, .gp-profile-photo img, .gp-branch-photo img, .gp-case-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gp-card-body { padding: 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.gp-tag { display: inline-flex; align-items: center; font-size: 14.5px; padding: 3px 10px; border-radius: 999px; background: var(--gp-accent-100); color: var(--gp-accent-700); align-self: flex-start; font-weight: 700; }
.gp-card-title { font-weight: 800; font-size: 15px; line-height: 1.3; }
.gp-card-desc { font-size: 13px; opacity: 0.75; flex: 1; margin: 0; }
.gp-card-meta { font-size: 14.5px; opacity: 0.55; }
.gp-cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap: 16px; }

/* 변호사 그리드 */
.gp-lawyer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 2px; background: var(--gp-neutral-800); }
.gp-lawyer-card { position: relative; background: var(--gp-neutral-800); color: #fff; display: flex; flex-direction: column; }
.gp-lawyer-photo { position: relative; width: 100%; aspect-ratio: 4/5; background: var(--gp-neutral-700); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.4); font-size: 14.5px; overflow: hidden; }
.gp-lawyer-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(20,33,61,0.85) 100%); }
.gp-lawyer-nameplate { position: absolute; left: 16px; bottom: 14px; z-index: 2; }
.gp-lawyer-name { font-weight: 800; font-size: 22px; }
.gp-lawyer-role { font-size: 13px; margin-left: 8px; opacity: 0.85; }
.gp-lawyer-bullets { padding: 16px 18px 22px; display: flex; flex-direction: column; gap: 6px; }
.gp-lawyer-bullets div { font-size: 13px; opacity: 0.85; }

/* 지점 그리드 */
.gp-branch-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 16px; }
.gp-branch-photo { width: 100%; aspect-ratio: 16/10; background: var(--gp-neutral-200); display: flex; align-items: center; justify-content: center; color: var(--gp-neutral-400); font-size: 14.5px; overflow: hidden; }
.gp-branch-name { font-weight: 800; font-size: 15px; margin: 12px 0 4px; }
.gp-branch-line { font-size: 13px; opacity: 0.7; }

/* 버튼 */
.gp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-weight: 800; font-size: 13px; padding: 10px 18px; cursor: pointer; border: 1px solid var(--gp-divider); background: transparent; color: var(--gp-text); }
.gp-btn-primary { background: var(--gp-accent); color: #fff; border-color: var(--gp-accent); }
.gp-btn-primary:hover { background: var(--gp-accent-600); }

/* 푸터 */
.gp-footer { background: var(--gp-neutral-800); color: #fff; padding: 32px 24px; font-size: 13px; line-height: 1.9; }
.gp-footer-inner { max-width: 1240px; margin: 0 auto; }
.gp-footer-title { font-weight: 800; font-size: 16px; margin-bottom: 16px; }
.gp-footer-line { opacity: 0.8; margin-bottom: 6px; }
.gp-footer-copy { opacity: 0.5; margin-top: 16px; }

/* 서브페이지 공통 상단 배너 */
.gp-subhero { background: var(--gp-neutral-900); color: #fff; padding: 48px 24px; text-align: center; }
.gp-subhero-title { font-size: clamp(22px,3vw,30px); font-weight: 800; margin-bottom: 8px; }
.gp-subhero-sub { font-size: 13px; opacity: 0.7; }
.gp-crumb { font-size: 14.5px; opacity: 0.55; margin-top: 10px; }
.gp-crumb a { opacity: 0.9; }

/* 변호사 목록 페이지(카드형 링크) */
.gp-lawyer-linkgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 2px; background: var(--gp-neutral-800); }
.gp-lawyer-linkgrid a { display: block; }

/* 변호사 상세 프로필 */
.gp-profile-grid { display: grid; grid-template-columns: 320px 1fr; gap: 40px; }
.gp-profile-photo { width: 100%; aspect-ratio: 4/5; background: var(--gp-neutral-200); display: flex; align-items: center; justify-content: center; color: var(--gp-neutral-400); font-size: 13px; overflow: hidden; }
.gp-profile-name { font-size: 28px; font-weight: 800; }
.gp-profile-role { color: var(--gp-accent); font-weight: 700; font-size: 14px; margin: 4px 0 18px; }
.gp-profile-intro { font-size: 15px; line-height: 1.7; margin-bottom: 24px; }
.gp-profile-block-title { font-weight: 800; font-size: 14px; margin: 20px 0 10px; padding-top: 16px; border-top: 1px solid var(--gp-divider); }
.gp-profile-list div { font-size: 14px; line-height: 1.9; opacity: 0.85; }
.gp-tag-row { display: flex; gap: 8px; flex-wrap: wrap; }

/* 업무분야 허브 그리드 */
.gp-expertise-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 16px; }
.gp-expertise-card { background: var(--gp-surface); box-shadow: 0 1px 2px rgba(20,33,61,0.08); padding: 28px 22px; display: block; }
.gp-expertise-card .gp-label { font-weight: 800; font-size: 18px; margin-bottom: 8px; }
.gp-expertise-card .gp-desc { font-size: 13px; opacity: 0.7; }
.gp-expertise-card:hover { box-shadow: 0 4px 14px rgba(20,33,61,0.14); }

/* 업무분야 허브 (daeryunlaw.com/field/area 참고: 배너+검색+아코디언) */
.gp-hub-banner { background: var(--gp-neutral-900); color: #fff; padding: 44px 24px; text-align: center; }
.gp-hub-banner-title { font-size: clamp(28px,4vw,40px); font-weight: 800; color: #fff; }
.gp-hub-banner-sub { opacity: 0.8; font-size: 14px; margin-top: 8px; }
.gp-hub-search { max-width: 640px; margin: 28px auto 0; }
.gp-hub-search input { width: 100%; padding: 12px 16px; font-size: 14px; border: none; }
.gp-hub-quick { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px,1fr)); gap: 10px; padding: 32px 24px 0; max-width: 1000px; margin: 0 auto; }
.gp-hub-quick-item { border: 1px solid var(--gp-divider); padding: 18px 10px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; text-decoration: none; color: var(--gp-text); font-weight: 800; font-size: 13px; background: #fff; }
.gp-hub-quick-item:hover { border-color: var(--gp-accent); color: var(--gp-accent-700); }
.gp-hub-accordion { max-width: 900px; margin: 32px auto 56px; padding: 0 24px; }
.gp-hub-cat { border-bottom: 1px solid var(--gp-divider); }
.gp-hub-cat-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 4px; cursor: pointer; text-decoration: none; color: var(--gp-text); }
.gp-hub-cat-title { font-weight: 800; font-size: 17px; }
.gp-hub-cat-count { font-size: 14.5px; opacity: 0.55; display: flex; align-items: center; gap: 8px; }
.gp-hub-cat-items { display: none; padding: 0 4px 18px; grid-template-columns: repeat(auto-fit, minmax(160px,1fr)); gap: 6px; }
.gp-hub-cat.on .gp-hub-cat-items { display: grid; }
.gp-hub-cat.on .gp-hub-cat-arrow { transform: rotate(180deg); }
.gp-hub-cat-arrow { display: inline-block; transition: transform 0.15s ease; font-size: 14.5px; }
.gp-hub-cat-items a { font-size: 13px; }
.gp-hub-cat-items a:hover { color: var(--gp-accent); }

/* 업무분야 상세 */
.gp-detail-body { font-size: 15px; line-height: 1.85; }
.gp-detail-body p { margin: 0 0 16px; }
.gp-subtopic-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px,1fr)); gap: 8px; margin-top: 8px; }
.gp-subtopic-item { background: var(--gp-neutral-100); padding: 14px 16px; font-size: 13px; font-weight: 700; }

/* 성공사례 목록 필터 */
.gp-filter-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; }
.gp-filter-row a { font-size: 13px; font-weight: 700; padding: 8px 16px; background: var(--gp-neutral-100); color: var(--gp-text); }
.gp-filter-row a.on, .gp-filter-row a:hover { background: var(--gp-accent); color: #fff; }
.gp-card-link { display: block; }

/* 성공사례 상세 */
.gp-case-head { border-bottom: 1px solid var(--gp-divider); padding-bottom: 20px; margin-bottom: 24px; }
.gp-case-title { font-size: clamp(20px,2.6vw,28px); font-weight: 800; margin: 10px 0 8px; line-height: 1.4; }
.gp-case-meta { font-size: 14.5px; opacity: 0.55; }
.gp-case-thumb { width: 100%; aspect-ratio: 16/8; background: var(--gp-neutral-200); display: flex; align-items: center; justify-content: center; color: var(--gp-neutral-400); font-size: 13px; margin-bottom: 24px; overflow: hidden; }

@media (max-width: 700px) {
  .gp-hero-grid { padding: 56px 24px 40px; }
  .gp-hero-rail { flex-direction: row; top: auto; bottom: 0; right: 0; left: 0; }
  .gp-hero-rail a { flex: 1; }
  .gp-profile-grid { grid-template-columns: 1fr; }

  /* 모바일 햄버거 메뉴 */
  .gp-nav-inner { grid-template-columns: 1fr auto; }
  .gp-nav-toggle { display: flex; }
  .gp-nav-links {
    display: none;
    position: absolute;
    left: 0; right: 0; top: 100%;
    flex-direction: column;
    gap: 0;
    background: #fff;
    border-top: 1px solid var(--gp-divider);
    border-bottom: 1px solid var(--gp-divider);
    box-shadow: 0 8px 16px rgba(20,33,61,0.08);
  }
  .gp-nav-links a { padding: 14px 24px; border-bottom: 1px solid var(--gp-divider); }
  .gp-nav-links a:last-child { border-bottom: none; }
  .gp-nav { position: relative; }
  .gp-nav.gp-nav-open .gp-nav-links { display: flex; }
  .gp-nav.gp-nav-open .gp-nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .gp-nav.gp-nav-open .gp-nav-toggle span:nth-child(2) { opacity: 0; }
  .gp-nav.gp-nav-open .gp-nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

/* ── 2026 타이포/레이아웃 리스킨 : gp-main.css 와 톤 통일 (제목 명조 / 직각 / 헤어라인) ──
   서브페이지(lawyer, expertise, expertise_view)는 이 블록의 규칙을 따른다. */
:root {
  --gp-bg: #FFFFFF;
  --gp-text: #14202F;
  --gp-accent: #B08C2B;
  --gp-accent-600: #8C6E1E;
  --gp-accent-700: #8C6E1E;
  --gp-accent-100: #F4EFE2;
  --gp-neutral-900: #0B1E3D;
  --gp-neutral-800: #0E2344;
  --gp-neutral-600: #55606F;
  --gp-neutral-400: #8C95A1;
  --gp-neutral-100: #F5F4F1;
  --gp-divider: rgba(20,32,47,0.16);
  --gp-font: 'Pretendard Variable', 'Pretendard', -apple-system, BlinkMacSystemFont, 'Malgun Gothic', sans-serif;
  --gp-serif: 'Noto Serif KR', 'Nanum Myeongjo', 'Apple SD Gothic Neo', serif;
}
.gp-page { background: #fff; letter-spacing: -0.012em; }
.gp-section { padding: 76px 28px; max-width: 1180px; }

.gp-section-title, .gp-section-sub, .gp-subhero-title, .gp-card-title, .gp-lawyer-name,
.gp-profile-name, .gp-hub-banner-title, .gp-hub-cat-title, .gp-profile-block-title,
.gp-cta-text, .gp-hub-quick-item, .gp-subtopic-item {
  font-family: var(--gp-serif); font-weight: 600; letter-spacing: -0.04em;
}
.gp-section-title { font-size: clamp(25px,3.1vw,36px); line-height: 1.38; }
.gp-section-sub { font-size: clamp(20px,2.2vw,25px); padding-bottom: 20px; border-bottom: 1px solid rgba(20,32,47,0.34); margin-bottom: 28px; }

/* 서브 히어로 · 허브 배너 : 네이비 중앙정렬 → 흰 배경 좌측정렬 + 헤어라인 */
.gp-subhero, .gp-hub-banner { background: #fff; color: var(--gp-text); text-align: left; padding: 54px 28px 30px; border-bottom: 1px solid var(--gp-divider); max-width: 1180px; margin: 0 auto; }
.gp-subhero-title, .gp-hub-banner-title { font-size: clamp(26px,3.4vw,38px); letter-spacing: -0.045em; color: var(--gp-text); margin-bottom: 12px; }
.gp-subhero-sub, .gp-hub-banner-sub { font-size: 14.5px; color: var(--gp-neutral-600); opacity: 1; line-height: 1.8; }
.gp-crumb { font-size: 14.5px; color: var(--gp-neutral-400); opacity: 1; margin-top: 18px; }
.gp-hub-search { max-width: 460px; margin: 26px 0 0; }
.gp-hub-search input { border: none; border-bottom: 1px solid rgba(20,32,47,0.34); padding: 11px 2px; font-family: var(--gp-font); background: transparent; }
.gp-hub-search input:focus { outline: none; border-bottom-color: var(--gp-accent); }

/* 카드 : 그림자 → 헤어라인, 태그 알약 → 텍스트 */
.gp-card { box-shadow: none; border: 1px solid var(--gp-divider); }
.gp-card-title { font-size: 17px; line-height: 1.5; }
.gp-card-desc { font-size: 13px; color: var(--gp-neutral-600); opacity: 1; line-height: 1.8; }
.gp-card-meta { font-size: 14.5px; color: var(--gp-neutral-400); opacity: 1; }
.gp-tag { border-radius: 0; background: transparent; padding: 0; font-size: 14.5px; font-weight: 500; letter-spacing: .06em; color: var(--gp-accent-600); }

/* 버튼 */
.gp-btn { font-weight: 600; font-size: 13.5px; padding: 14px 26px; border-color: rgba(20,32,47,0.34); }
.gp-btn-primary { background: var(--gp-neutral-900); border-color: var(--gp-neutral-900); }
.gp-btn-primary:hover { background: #071527; }
/* gp-main.css 의 `.gpm-page a { color: inherit }` 가 우선순위(0-1-1)로 이겨서
   네이비 배경에 본문색 글자가 되던 문제. 같은 수준의 선택자로 흰색을 되돌린다. */
.gpm-page a.gp-btn-primary, a.gp-btn-primary { color: #fff; }

/* CTA 밴드 : 레드 → 네이비 */
.gp-cta { background: var(--gp-neutral-900); padding: 46px 28px; }
.gp-cta-inner { max-width: 1180px; }
.gp-cta-text { font-size: clamp(19px,2.4vw,26px); line-height: 1.5; }
.gp-cta-btn { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.45); font-weight: 600; padding: 14px 28px; }
.gp-cta-btn:hover { background: rgba(255,255,255,0.08); }

/* 변호인단 카드 : 다크 타일 → 흰 배경 + 흑백 사진 */
.gp-lawyer-grid, .gp-lawyer-linkgrid { background: transparent; gap: 34px; }
.gp-lawyer-card { background: transparent; color: var(--gp-text); }
.gp-lawyer-photo { background: var(--gp-neutral-100); aspect-ratio: 3/4; }
.gp-lawyer-photo img { filter: grayscale(1) contrast(1.04); transition: filter .35s; }
.gp-lawyer-card:hover .gp-lawyer-photo img { filter: grayscale(0); }
.gp-lawyer-name { font-size: 21px; letter-spacing: -0.05em; }
.gp-lawyer-role { font-size: 14.5px; letter-spacing: .08em; }
.gp-lawyer-bullets { padding: 14px 0 0; gap: 0; }
.gp-lawyer-bullets div { font-size: 12.5px; color: var(--gp-neutral-600); opacity: 1; line-height: 1.6; padding: 6px 0; border-bottom: 1px solid rgba(20,32,47,0.1); }
.gp-lawyer-bullets div:last-child { border-bottom: none; }

/* 변호사 상세 */
.gp-profile-name { font-size: 30px; letter-spacing: -0.05em; }
.gp-profile-role { color: var(--gp-accent-600); font-weight: 500; font-size: 14.5px; letter-spacing: .08em; }
.gp-profile-photo { background: var(--gp-neutral-100); aspect-ratio: 3/4; }
.gp-profile-photo img { filter: grayscale(1) contrast(1.04); }
.gp-profile-intro { font-size: 15.5px; line-height: 1.9; color: #26313F; }
.gp-profile-block-title { font-size: 14.5px; font-family: var(--gp-font); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gp-accent-600); border-top-color: rgba(20,32,47,0.34); padding-top: 18px; margin: 28px 0 12px; }
.gp-profile-list div { font-size: 14px; line-height: 1.75; color: var(--gp-neutral-600); opacity: 1; padding: 7px 0; border-bottom: 1px solid rgba(20,32,47,0.1); }

/* 업무분야 허브 : 박스 그리드 → 헤어라인 목록 */
.gp-hub-quick { display: flex; flex-wrap: wrap; gap: 0 26px; max-width: 1180px; padding: 26px 28px 0; }
.gp-hub-quick-item { border: none; background: transparent; padding: 6px 0; font-size: 14px; font-weight: 500; color: var(--gp-neutral-600); flex-direction: row; }
.gp-hub-quick-item:hover { color: var(--gp-accent-600); border: none; }
.gp-hub-accordion { max-width: 1180px; margin: 34px auto 76px; padding: 0 28px; border-top: 1px solid rgba(20,32,47,0.34); }
.gp-hub-cat-head { padding: 21px 2px; }
.gp-hub-cat-title { font-size: 18px; }
.gp-hub-cat-head:hover .gp-hub-cat-title { color: var(--gp-accent-600); }
.gp-hub-cat-count { font-size: 14.5px; color: var(--gp-neutral-400); opacity: 1; }
.gp-hub-cat-items { padding: 0 2px 20px; gap: 0 24px; }
.gp-hub-cat-items a { font-size: 13.5px; color: var(--gp-neutral-600); padding: 7px 0; border-bottom: 1px solid rgba(20,32,47,0.1); }
.gp-hub-cat-items a:hover { color: var(--gp-accent-600); }

/* 업무분야 상세 */
.gp-detail-body { font-size: 15px; line-height: 1.92; color: #26313F; max-width: 46em; }
.gp-detail-body p { margin: 0 0 20px; }
.gp-subtopic-grid { gap: 0 24px; border-top: 1px solid rgba(20,32,47,0.34); margin-top: 14px; }
.gp-subtopic-item { background: transparent; padding: 13px 2px; font-size: 14.5px; border-bottom: 1px solid rgba(20,32,47,0.1); }

/* ===== 업무분야 허브 v2 : 상단 풀블리드 히어로 비주얼 + 하단 2×5 카테고리 그리드 ===== */

.gp-px-wrap { max-width: 1180px; margin: 0 auto; padding: 0 28px; }
.gp-px-quick { display: flex; flex-wrap: wrap; gap: 0 26px; padding: 26px 0 0; }
.gp-px-quick a { font-size: 14px; font-weight: 500; color: var(--gp-neutral-600); padding: 6px 0; }
.gp-px-quick a:hover { color: var(--gp-accent-600); }

.gp-px-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 56px; margin: 34px 0 84px; border-top: 1px solid rgba(20,32,47,0.34); }
.gp-px-cat { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 24px; padding: 30px 0; border-bottom: 1px solid rgba(20,32,47,0.14); scroll-margin-top: calc(var(--gpm-top-h, 118px) + 12px); }
.gp-px-cat-photo { display: block; aspect-ratio: 1/1; overflow: hidden; background: #F5F4F1; }
.gp-px-cat-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); transition: filter .35s, transform .5s; }
.gp-px-cat:hover .gp-px-cat-photo img { filter: grayscale(0); transform: scale(1.03); }
.gp-px-cat-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.gp-px-cat-title { font-family: var(--gp-serif); font-weight: 600; font-size: 21px; letter-spacing: -0.045em; color: var(--gp-text); }
.gp-px-cat-title:hover { color: var(--gp-accent-600); }
.gp-px-cat-more { font-size: 13px; font-weight: 600; white-space: nowrap; color: var(--gp-neutral-600); border-bottom: 1px solid rgba(20,32,47,0.34); padding-bottom: 2px; }
.gp-px-cat-more:hover { color: var(--gp-accent-600); border-bottom-color: #B08C2B; }
.gp-px-cat-desc { font-size: 14px; line-height: 1.75; color: var(--gp-neutral-600); margin-top: 8px; }
.gp-px-cat-items { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 14px; }
.gp-px-cat-items a { font-size: 13.5px; color: #26313F; }
.gp-px-cat-items a::before { content: '·'; margin-right: 5px; color: #B08C2B; }
.gp-px-cat-items a:hover { color: var(--gp-accent-600); }
.gp-px-empty { display: none; padding: 40px 0; font-size: 15px; color: var(--gp-neutral-600); }

@media (max-width: 900px) {
  .gp-px-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .gp-px-wrap { padding: 0 20px; }
  .gp-px-cat { grid-template-columns: 92px minmax(0, 1fr); gap: 16px; padding: 24px 0; }
  .gp-px-cat-title { font-size: 19px; }
}

/* 업무분야 허브 v2 : 세부 항목이 많은 분야는 일부만 보여주고 '전체 보기'로 펼침 */
.gp-px-cat-items .gp-px-extra { display: none; }
.gp-px-cat-items.open .gp-px-extra, .gp-px-cat-items.searching .gp-px-extra { display: inline; }
.gp-px-cat-items a.hit { color: var(--gp-accent-600); font-weight: 600; }
.gp-px-more { background: none; border: none; border-bottom: 1px solid rgba(20,32,47,0.34); padding: 0 0 1px; margin-left: 2px; font-family: var(--gp-font); font-size: 13px; font-weight: 600; color: var(--gp-neutral-600); cursor: pointer; }
.gp-px-more:hover { color: var(--gp-accent-600); border-bottom-color: #B08C2B; }
.gp-px-cat-items.searching .gp-px-more { display: none; }

/* ── 업무분야 허브 v3 (page/expertise.php, 2026-10-01) ─────────────────────────
   사진·점 목록을 걷어내고 각진 상자 + 대표 항목 8개 + 꺾쇠로 정리. 검색창은 흰 상자 + 금색 버튼으로 크게. */
.gp-hx-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.gp-hx-hero { position: relative; background: var(--gpm-navy); overflow: hidden; }
.gp-hx-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .22; filter: grayscale(1); }
.gp-hx-hero-in { position: relative; max-width: 1180px; margin: 0 auto; padding: 84px 28px 72px; }
.gp-hx-hero .gp-hx-title { margin: 0; font-family: var(--gpm-serif); font-weight: 600; font-size: 44px; letter-spacing: -0.04em; color: #fff; }
.gp-hx-hero .gp-hx-sub { margin: 12px 0 32px; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.78); }
.gp-hx-search { display: flex; max-width: 780px; height: 64px; background: #fff; }
.gp-hx-search:focus-within { outline: 3px solid var(--gpm-gold); outline-offset: 0; }
.gp-hx-search input { flex: 1; min-width: 0; border: 0; padding: 0 24px; font-family: var(--gpm-font); font-size: 17px; color: var(--gpm-text); background: transparent; outline: none; border-radius: 0; -webkit-appearance: none; appearance: none; }
.gp-hx-search input::placeholder { color: #8A929C; }
.gp-hx-search input::-webkit-search-cancel-button { -webkit-appearance: none; }
.gp-hx-search button { flex: none; width: 124px; border: 0; border-radius: 0; background: var(--gpm-gold); color: #fff; font-family: var(--gpm-font); font-size: 17px; font-weight: 600; cursor: pointer; }
.gp-hx-search button:hover { background: #967522; }
.gp-hx-pop { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 18px; }
.gp-hx-pop span { margin-right: 6px; font-size: 14px; color: rgba(255,255,255,.62); }
.gp-hx-pop button { height: 34px; padding: 0 14px; border: 1px solid rgba(255,255,255,.45); border-radius: 0; background: transparent; color: #fff; font-family: var(--gpm-font); font-size: 14px; cursor: pointer; }
.gp-hx-pop button:hover { background: #fff; color: var(--gpm-navy); }

.gp-hx-wrap { max-width: 1180px; margin: 0 auto; padding: 0 28px; }
.gp-hx-wrap [hidden] { display: none !important; }
.gp-hx-nav { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); margin: 48px 0 36px; border: 1px solid var(--gpm-line-strong); border-right: 0; }
.gp-hx-nav a { display: flex; align-items: center; justify-content: center; height: 56px; border-right: 1px solid var(--gpm-line-strong); font-size: 15px; font-weight: 500; color: var(--gpm-text); white-space: nowrap; }
.gp-hx-nav a:hover { background: var(--gpm-navy); color: #fff; }

.gp-hx-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-bottom: 96px; }
.gp-hx-cat { display: flex; flex-direction: column; padding: 32px 36px 30px; border: 1px solid #D8D5CE; background: #fff; scroll-margin-top: calc(var(--gpm-top-h, 118px) + 16px); }
.gp-hx-cat-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.gp-hx-cat-head h2 { margin: 0; font-family: var(--gpm-serif); font-weight: 600; font-size: 26px; letter-spacing: -0.04em; }
.gp-hx-cat-head h2 a { color: var(--gpm-navy); }
.gp-hx-cat-head h2 a:hover { color: var(--gpm-gold); }
.gp-hx-cat-head span { font-size: 14px; color: #6B7480; white-space: nowrap; }
.gp-hx .gp-hx-cat-desc, .gp-hx-cat .gp-hx-cat-desc { margin: 8px 0 20px; font-size: 15px; line-height: 1.7; color: #5B6573; }
.gp-hx-cat-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--gpm-line-strong); }
.gp-hx-cat-items li { border-bottom: 1px solid var(--gpm-divider); min-width: 0; }
.gp-hx-cat-items a { display: flex; align-items: center; justify-content: space-between; gap: 10px; height: 48px; font-size: 15px; color: var(--gpm-text); }
.gp-hx-cat-items a span, .gp-hx-cat-items a { overflow: hidden; }
.gp-hx-cat-items a::after { content: '\203A'; flex: none; font-size: 20px; line-height: 1; color: var(--gpm-gold); }
.gp-hx-cat-items a:hover { color: var(--gpm-navy); font-weight: 600; }
.gp-hx-cat-all { align-self: flex-start; margin-top: auto; padding-top: 24px; font-size: 15px; font-weight: 600; color: var(--gpm-navy); }
.gp-hx-cat-all::after { content: ' \203A'; color: var(--gpm-gold); font-size: 18px; }
.gp-hx-cat-all:hover { color: var(--gpm-gold); }

.gp-hx-results { margin: 44px 0 96px; }
.gp-hx-results-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.gp-hx-results-head strong { font-family: var(--gpm-serif); font-size: 22px; font-weight: 600; color: var(--gpm-navy); }
.gp-hx-results-head button { height: 38px; padding: 0 16px; border: 1px solid var(--gpm-line-strong); border-radius: 0; background: #fff; font-family: var(--gpm-font); font-size: 14px; color: var(--gpm-text); cursor: pointer; }
.gp-hx-results-head button:hover { background: var(--gpm-navy); color: #fff; }
.gp-hx-results ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--gpm-line-strong); }
.gp-hx-results li { border-bottom: 1px solid var(--gpm-divider); }
.gp-hx-results li a { display: flex; align-items: center; gap: 14px; height: 56px; color: var(--gpm-text); }
.gp-hx-results li a .c { flex: none; width: 76px; font-size: 13px; color: var(--gpm-gold); }
.gp-hx-results li a .t { flex: 1; min-width: 0; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gp-hx-results li a::after { content: '\203A'; flex: none; font-size: 20px; color: var(--gpm-gold); }
.gp-hx-results li a:hover .t { color: var(--gpm-navy); font-weight: 600; }
.gp-hx-results .gp-hx-none { margin: 24px 0 0; font-size: 16px; line-height: 1.7; color: #5B6573; }
.gp-hx-none a { color: var(--gpm-navy); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1024px) {
  .gp-hx-nav { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .gp-hx-nav a { border-bottom: 1px solid var(--gpm-line-strong); }
  .gp-hx-nav { border-bottom: 0; }
}
@media (max-width: 760px) {
  .gp-hx-hero-in { padding: 52px 20px 44px; }
  .gp-hx-hero .gp-hx-title { font-size: 32px; }
  .gp-hx-hero .gp-hx-sub { margin-bottom: 24px; font-size: 15px; }
  .gp-hx-search { height: 56px; }
  .gp-hx-search input { padding: 0 16px; font-size: 16px; }
  .gp-hx-search button { width: 76px; font-size: 16px; }
  .gp-hx-pop span { width: 100%; margin: 0 0 2px; }
  .gp-hx-wrap { padding: 0 20px; }
  .gp-hx-nav { margin: 32px 0 24px; }
  .gp-hx-nav a { height: 48px; font-size: 14px; }
  .gp-hx-grid { grid-template-columns: 1fr; gap: 16px; margin-bottom: 64px; }
  .gp-hx-cat { padding: 24px 20px 22px; }
  .gp-hx-cat-head h2 { font-size: 23px; }
  .gp-hx-cat-items, .gp-hx-results ul { grid-template-columns: 1fr; }
  .gp-hx-cat-items li:nth-child(n+6) { display: none; }  /* 모바일은 대표 5개만 — 나머지는 '전체 보기'·검색으로 */
  .gp-hx-cat-items a { height: 46px; }
  .gp-hx-cat-all { padding-top: 18px; }
  .gp-hx-results-head strong { font-size: 19px; }
}
