/* ════════════════════════════════════════════════════════
   특허맨 v2 (2026-11) : 화이트 톤 리디자인
   front.css / services.css 뒤에 불러와 공통 요소를 덮어씁니다.
   새 홈(.v2-*)과 칼럼(.col-*) 전용 스타일도 여기 있습니다.
════════════════════════════════════════════════════════ */
:root {
  --primary: #048368;
  --primary-light: #EAF6F2;
  --primary-mid: #C9E9DF;
  --primary-dark: #035E4B;
  --bg: #ffffff;
  --gray-100: #F2F4F6;
  --gray-200: #E5E8EB;
  --gray-300: #D1D6DB;
  --gray-400: #8B95A1;
  --gray-500: #6B7684;
  --gray-600: #4E5968;
  --gray-700: #333D4B;
  --gray-900: #191F28;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.03), 0 4px 14px rgba(0,30,20,0.04);
  --shadow-md: 0 2px 6px rgba(0,0,0,0.04), 0 10px 28px rgba(0,30,20,0.06);
  --font-title: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
  --v2-wrap: 1200px;
}
body { background: #ffffff; color: var(--gray-900); letter-spacing: -0.01em; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; }
[hidden] { display: none !important; }
a { color: inherit; }

/* ── 헤더 ── */
.site-header { box-shadow: none; border-bottom: 1px solid var(--gray-200); background: rgba(255,255,255,0.96); backdrop-filter: saturate(180%) blur(12px); }
.header-inner { max-width: var(--v2-wrap); padding: 0 24px; height: 72px; }
.logo-img { height: 32px; width: auto; }
.nav-tabs { height: 72px; gap: 6px; }
.nav-tab { font-size: 15px; font-weight: 600; color: var(--gray-600); padding: 0 16px; }
.nav-tab:hover { color: var(--primary); }
.nav-tab.active { color: var(--primary); }
.nav-tab-cta { align-self: center; height: 40px; margin-left: 10px; padding: 0 18px !important; border-radius: 10px; background: var(--primary); color: #ffffff !important; }
.nav-tab-cta::after { display: none !important; }
.nav-tab-cta:hover { background: var(--primary-dark); }

/* ── 빠른 메뉴 ── */
.side-float-list { border: 1px solid var(--gray-200); box-shadow: 0 8px 24px rgba(0,0,0,0.08); border-radius: 16px; }

/* ── 공통 버튼 ── */
.section-btn-primary, .home-btn-primary { border-radius: 12px; box-shadow: none; background: var(--primary); }
.section-btn-primary:hover, .home-btn-primary:hover { background: var(--primary-dark); }
.section-btn-secondary { border-radius: 12px; }

/* ── 하위 페이지 상단 (소개, 서비스) ── */
.about-hero, .about-hero-alt {
  background: linear-gradient(180deg, #F1F9F6 0%, #ffffff 100%);
  color: var(--gray-900);
  border-bottom: 1px solid #EEF1F3;
  padding: 64px 24px 56px;
}
.about-hero-badge { background: var(--primary-light); border: 0; color: var(--primary); font-weight: 700; font-size: 13px; letter-spacing: 0; padding: 6px 14px; }
.about-hero-title { font-size: clamp(26px, 4vw, 38px); line-height: 1.35; letter-spacing: -0.03em; color: var(--gray-900); }
.svc-hero-sub { color: var(--gray-600) !important; font-size: 17px !important; line-height: 1.7 !important; max-width: 680px; margin-left: auto !important; margin-right: auto !important; }
.svc-subnav { background: #ffffff; border-bottom: 1px solid var(--gray-200); }
.svc-subtab { font-size: 14px; font-weight: 600; }
.svc-subtab.active { color: var(--primary); }

.about-container, .svc-container { max-width: 960px; padding-left: 24px; padding-right: 24px; }
.about-section, .svc-block {
  border-radius: 20px;
  border: 1px solid var(--gray-200);
  box-shadow: var(--shadow-sm);
  padding: 36px 36px;
}
.svc-block-title { font-size: 22px; letter-spacing: -0.02em; }
.svc-block-lead, .svc-text, .about-point-desc { font-size: 15.5px; line-height: 1.75; color: var(--gray-600); }
.about-point-title { font-size: 17px; }
.about-point-num, .svc-step-num { background: var(--primary); }
.svc-card, .svc-link-card, .svc-compare-col, .svc-stage, .svc-region { border-radius: 16px; }
.svc-card-title { font-size: 16px; }
.svc-card-text { font-size: 14.5px; line-height: 1.7; }
.faq-q { font-size: 15.5px; }
.faq-a { font-size: 15px; line-height: 1.75; color: var(--gray-600); }

/* ── 공통 하단 정보 (모든 페이지) ── */
.v2-footer { background: #F7F9FA; border-top: 1px solid var(--gray-200); margin-top: 0; }
.v2-footer-inner { max-width: var(--v2-wrap); margin: 0 auto; padding: 44px 24px 52px; }
.v2-footer-top { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; padding-bottom: 24px; border-bottom: 1px solid var(--gray-200); }
.v2-footer-top img { height: 26px; width: auto; display: block; }
.v2-footer-links { margin-left: auto; display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 14px; font-weight: 600; }
.v2-footer-links a { color: var(--gray-600); text-decoration: none; }
.v2-footer-links a:hover { color: var(--primary); }
.v2-footer-info { margin: 24px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 8px 32px; font-size: 13px; line-height: 1.7; color: var(--gray-500); }
.v2-footer-info div { display: flex; gap: 12px; }
.v2-footer-info dt { flex: none; width: 104px; color: var(--gray-400); }
.v2-footer-info dd { margin: 0; }
.v2-footer-copy { margin-top: 28px; font-size: 12px; color: var(--gray-400); }

/* ════════════════════════════════
   새 홈 (index.php)
════════════════════════════════ */
.v2 { font-family: var(--font-body); }
.v2-wrap { max-width: var(--v2-wrap); margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.v2-eyebrow { display: inline-flex; align-items: center; height: 30px; padding: 0 14px; border-radius: 980px; background: var(--primary-light); color: var(--primary); font-size: 14px; font-weight: 700; }
.v2-h2 { margin: 16px 0 0; font-size: 36px; line-height: 1.3; font-weight: 800; letter-spacing: -0.03em; color: var(--gray-900); }
.v2-sub { margin: 12px 0 0; font-size: 17px; line-height: 1.6; color: var(--gray-500); }
.v2-sec { padding-top: 104px; }
.v2-center { text-align: center; }
.v2-head-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; }
.v2-more { font-size: 15px; font-weight: 700; color: var(--primary); text-decoration: none; }
.v2-more:hover { color: var(--primary-dark); }
.v2-card { background: #ffffff; border: 1px solid var(--gray-200); border-radius: 20px; box-shadow: var(--shadow-sm); }
a.v2-card { text-decoration: none; color: var(--gray-900); transition: border-color .15s, box-shadow .15s, transform .15s; }
a.v2-card:hover { border-color: var(--primary-mid); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.v2-ico { flex: none; width: 48px; height: 48px; border-radius: 14px; background: var(--primary-light); display: flex; align-items: center; justify-content: center; color: var(--primary); }
.v2-ico svg { width: 24px; height: 24px; }
.v2-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 26px; border-radius: 12px; font-size: 16px; font-weight: 700; text-decoration: none; box-sizing: border-box; transition: background .15s, color .15s, border-color .15s; }
.v2-btn-p { background: var(--primary); color: #ffffff; }
.v2-btn-p:hover { background: var(--primary-dark); color: #ffffff; }
.v2-btn-s { background: #ffffff; color: var(--gray-900); border: 1px solid var(--gray-300); }
.v2-btn-s:hover { border-color: var(--primary); color: var(--primary); }
.v2-g4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.v2-g3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.v2-g2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }

/* 히어로 */
.v2-hero { background: linear-gradient(180deg, #F1F9F6 0%, #ffffff 100%); border-bottom: 1px solid #EEF1F3; overflow: hidden; }
.v2-hero-viewport { overflow: hidden; }
.v2-hero-track { display: flex; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.v2-slide { flex: 0 0 100%; min-width: 0; }
.v2-slide-in { max-width: var(--v2-wrap); margin: 0 auto; padding: 72px 24px 24px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 48px; align-items: center; box-sizing: border-box; }
.v2-hero-title { margin: 20px 0 0; font-size: 48px; line-height: 1.25; font-weight: 800; letter-spacing: -0.035em; color: var(--gray-900); }
.v2-hero-title em { font-style: normal; color: var(--primary); }
.v2-hero-text { margin: 20px 0 0; font-size: 18px; line-height: 1.7; color: var(--gray-600); }
.v2-hero-text strong { color: var(--gray-900); }
.v2-hero-btns { margin-top: 32px; display: flex; flex-wrap: wrap; gap: 10px; }
.v2-hero-cards { display: flex; flex-direction: column; gap: 12px; }
.v2-hcard { padding: 20px 22px; display: flex; align-items: center; gap: 16px; }
.v2-hcard-t { display: block; font-size: 17px; font-weight: 700; }
.v2-hcard-s { display: block; margin-top: 4px; font-size: 14px; color: var(--gray-500); }
.v2-hcard-v { margin-left: auto; font-size: 17px; font-weight: 800; color: var(--primary); white-space: nowrap; }
.v2-hero-nav { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 32px 0 48px; }
.v2-hero-arrow { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--gray-300); background: #ffffff; color: var(--gray-600); cursor: pointer; font-size: 16px; line-height: 1; }
.v2-hero-arrow:hover { border-color: var(--primary); color: var(--primary); }
.v2-dot { width: 8px; height: 8px; border-radius: 980px; background: var(--gray-300); border: 0; padding: 0; cursor: pointer; transition: width .2s, background .2s; }
.v2-dot.active { width: 22px; background: var(--primary); }

/* 숫자 띠 */
.v2-stats { padding: 28px 12px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.v2-stat { text-align: center; padding: 4px 12px; border-right: 1px solid var(--gray-100); }
.v2-stat:last-child { border-right: 0; }
.v2-stat-n { margin: 0; font-size: 30px; font-weight: 800; color: var(--primary); letter-spacing: -0.02em; }
.v2-stat-l { margin: 6px 0 0; font-size: 14px; color: var(--gray-500); }

/* 상담 현황 (기존 JS가 채우는 목록을 새 카드 모양으로) */
.v2-status .status-section { background: #ffffff; border: 1px solid var(--gray-200); border-radius: 20px; box-shadow: var(--shadow-sm); padding: 24px; }
.v2-status .status-header { padding: 0 0 12px; border-bottom: 0; background: transparent; }
.v2-status .status-title { font-size: 18px; font-weight: 800; }
.v2-status .status-count { background: var(--primary); color: #ffffff; border-radius: 980px; font-weight: 700; }
.v2-status .status-list { max-height: 392px; }
.v2-status .status-item { border-top: 1px solid var(--gray-100); }
.v2-status .status-avatar { background: var(--primary-light); color: var(--primary); }
.v2-note { margin: 0; font-size: 14px; color: var(--gray-400); }

/* 강점 카드 */
.v2-feature { padding: 28px; display: flex; gap: 16px; text-align: left; }
.v2-feature h3 { margin: 0; font-size: 18px; font-weight: 800; }
.v2-feature p { margin: 8px 0 0; font-size: 15px; line-height: 1.65; color: var(--gray-500); }

/* 비용 */
.v2-fees { padding: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: 32px; background: #FAFCFB; }
.v2-fees-txt { flex: 1 1 300px; }
.v2-fees-list { flex: 2 1 520px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.v2-fee { padding: 20px; }
.v2-fee p { margin: 0; }
.v2-fee-k { font-size: 14px; color: var(--gray-500); }
.v2-fee-v { margin-top: 8px !important; font-size: 20px; font-weight: 800; white-space: nowrap; letter-spacing: -0.02em; }
.v2-fee-n { margin-top: 4px !important; font-size: 12px; color: var(--gray-400); }

/* 변리사 */
.v2-att { overflow: hidden; text-align: left; }
.v2-att img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: center 22%; background: var(--gray-100); }
.v2-att-b { padding: 20px; }
.v2-att-n { margin: 0; font-size: 19px; font-weight: 800; }
.v2-att-n span { font-size: 14px; font-weight: 600; color: var(--primary); }
.v2-att-c { margin: 10px 0 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.7; color: var(--gray-600); }

/* 절차 */
.v2-process { margin-top: 104px; background: #F7F9FA; border-top: 1px solid #EEF1F3; border-bottom: 1px solid #EEF1F3; }
.v2-process-in { padding-top: 88px; padding-bottom: 88px; }
.v2-tabs { margin-top: 28px; display: inline-flex; padding: 4px; background: #ffffff; border: 1px solid var(--gray-200); border-radius: 12px; }
.v2-tab { border: 0; cursor: pointer; min-height: 40px; padding: 0 22px; border-radius: 9px; font-family: inherit; font-size: 15px; font-weight: 700; background: transparent; color: var(--gray-500); }
.v2-tab.active { background: var(--primary); color: #ffffff; }
.v2-step { padding: 28px 24px; text-align: left; }
.v2-step-no { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--primary); color: #ffffff; font-size: 15px; font-weight: 800; }
.v2-step h3 { margin: 18px 0 0; font-size: 18px; font-weight: 800; }
.v2-step p { margin: 8px 0 0; font-size: 15px; line-height: 1.65; color: var(--gray-500); }

/* 분야 */
.v2-field { padding: 22px; display: flex; align-items: center; gap: 14px; text-align: left; }
.v2-field .v2-ico { width: 44px; height: 44px; }
.v2-field b { display: block; font-size: 17px; font-weight: 800; }
.v2-field small { display: block; margin-top: 3px; font-size: 13px; color: var(--gray-400); }

/* 등록 사례 */
.v2-case { padding: 14px; display: flex; flex-direction: column; gap: 14px; }
.v2-case-img { height: 160px; border-radius: 12px; background: var(--gray-100); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.v2-case-img img { max-width: 100%; max-height: 100%; object-fit: contain; padding: 12px; box-sizing: border-box; }
.v2-case-b { padding: 0 6px 6px; }
.v2-case-k { font-size: 12px; font-weight: 700; color: var(--primary); }
.v2-case-t { margin: 6px 0 0; font-size: 16px; font-weight: 800; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.v2-case-m { margin: 6px 0 0; font-size: 13px; color: var(--gray-400); }

/* 칼럼 카드 (홈, 칼럼 목록 공용) */
.col-card { padding: 28px; display: flex; flex-direction: column; gap: 10px; text-align: left; min-height: 210px; box-sizing: border-box; }
.col-cat { align-self: flex-start; padding: 4px 10px; border-radius: 980px; background: var(--primary-light); color: var(--primary); font-size: 12px; font-weight: 700; }
.col-title { margin: 4px 0 0; font-size: 19px; line-height: 1.45; font-weight: 800; letter-spacing: -0.02em; }
.col-desc { margin: 0; font-size: 14.5px; line-height: 1.65; color: var(--gray-500); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.col-meta { margin-top: auto; font-size: 13px; color: var(--gray-400); }

/* CTA */
.v2-cta { margin-top: 104px; margin-bottom: 104px; border-radius: 24px; padding: 56px 48px; background: var(--primary-light); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.v2-cta h2 { margin: 0; font-size: 32px; line-height: 1.3; font-weight: 800; letter-spacing: -0.03em; }
.v2-cta p { margin: 10px 0 0; font-size: 17px; color: var(--gray-600); }

/* ════════════════════════════════
   칼럼 페이지 (column.php)
════════════════════════════════ */
.col-hero { background: linear-gradient(180deg, #F1F9F6 0%, #ffffff 100%); border-bottom: 1px solid #EEF1F3; padding: 64px 24px 48px; text-align: center; }
.col-hero h1 { margin: 16px 0 0; font-size: clamp(28px, 4vw, 40px); font-weight: 800; letter-spacing: -0.03em; }
.col-hero p { margin: 12px auto 0; max-width: 640px; font-size: 17px; line-height: 1.7; color: var(--gray-600); }
.col-filter { margin-top: 28px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.col-filter a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border-radius: 980px; border: 1px solid var(--gray-300); background: #ffffff; font-size: 15px; font-weight: 600; color: var(--gray-600); text-decoration: none; }
.col-filter a.active, .col-filter a:hover { border-color: var(--primary); color: var(--primary); }
.col-filter a.active { background: var(--primary); color: #ffffff; }
.col-list { padding-top: 48px; padding-bottom: 96px; }
.col-empty { padding: 64px 0; text-align: center; color: var(--gray-400); }

.col-article { max-width: 760px; margin: 0 auto; padding: 56px 24px 32px; }
.col-crumb { font-size: 14px; color: var(--gray-400); }
.col-crumb a { color: var(--gray-500); text-decoration: none; }
.col-crumb a:hover { color: var(--primary); }
.col-article h1 { margin: 18px 0 0; font-size: clamp(28px, 4vw, 38px); line-height: 1.35; font-weight: 800; letter-spacing: -0.03em; }
.col-byline { margin-top: 18px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 14px; color: var(--gray-500); padding-bottom: 28px; border-bottom: 1px solid var(--gray-200); }
.col-byline b { color: var(--gray-900); }
.col-summary { margin: 32px 0 0; padding: 22px 24px; border-radius: 16px; background: #F7F9FA; border: 1px solid var(--gray-200); }
.col-summary strong { display: block; font-size: 14px; color: var(--primary); margin-bottom: 8px; }
.col-summary ul { margin: 0; padding-left: 18px; font-size: 15.5px; line-height: 1.75; color: var(--gray-700); }
.col-body { margin-top: 36px; font-size: 17px; line-height: 1.85; color: var(--gray-700); }
.col-body h2 { margin: 48px 0 0; font-size: 25px; line-height: 1.4; font-weight: 800; color: var(--gray-900); letter-spacing: -0.02em; }
.col-body h3 { margin: 32px 0 0; font-size: 20px; line-height: 1.45; font-weight: 800; color: var(--gray-900); }
.col-body p { margin: 16px 0 0; }
.col-body ul, .col-body ol { margin: 16px 0 0; padding-left: 22px; }
.col-body li { margin-top: 6px; }
.col-body strong { color: var(--gray-900); }
.col-body a { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.col-body table { width: 100%; margin-top: 20px; border-collapse: collapse; font-size: 15px; }
.col-body th, .col-body td { padding: 12px 14px; border-bottom: 1px solid var(--gray-200); text-align: left; vertical-align: top; }
.col-body th { background: #F7F9FA; font-weight: 700; color: var(--gray-900); }
.col-table { overflow-x: auto; }
.col-body blockquote { margin: 24px 0 0; padding: 18px 22px; border-radius: 14px; background: var(--primary-light); color: var(--gray-900); }
.col-faq { margin-top: 56px; }
.col-faq h2 { font-size: 25px; font-weight: 800; }
.col-faq details { margin-top: 12px; border: 1px solid var(--gray-200); border-radius: 14px; padding: 18px 20px; }
.col-faq summary { cursor: pointer; font-size: 16.5px; font-weight: 700; list-style: none; }
.col-faq summary::-webkit-details-marker { display: none; }
.col-faq summary::before { content: 'Q. '; color: var(--primary); }
.col-faq details p { margin: 12px 0 0; font-size: 15.5px; line-height: 1.75; color: var(--gray-600); }
.col-author { margin-top: 56px; padding: 24px; display: flex; align-items: center; gap: 18px; }
.col-author img { flex: none; width: 72px; height: 72px; border-radius: 50%; object-fit: cover; object-position: center 20%; background: var(--gray-100); }
.col-author p { margin: 0; }
.col-author-n { font-size: 17px; font-weight: 800; }
.col-author-d { margin-top: 4px !important; font-size: 14px; line-height: 1.6; color: var(--gray-500); }
.col-cta { margin-top: 32px; padding: 32px; border-radius: 20px; background: var(--primary-light); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.col-cta b { font-size: 19px; }
.col-cta p { margin: 6px 0 0; font-size: 15px; color: var(--gray-600); }
.col-related { padding-bottom: 96px; }

/* ── 반응형 ── */
@media (max-width: 960px) {
  .v2-slide-in { grid-template-columns: minmax(0, 1fr); padding-top: 48px; gap: 28px; }
  .v2-hero-title { font-size: 34px; }
  .v2-g3, .v2-g2 { grid-template-columns: minmax(0, 1fr); }
  .v2-g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v2-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; }
  .v2-stat:nth-child(2) { border-right: 0; }
  .v2-fees-list { grid-template-columns: minmax(0, 1fr); }
  .v2-h2 { font-size: 28px; }
  .v2-sec { padding-top: 72px; }
  .v2-cta { padding: 36px 24px; }
  .v2-cta h2 { font-size: 26px; }
  .nav-tab-cta { display: none !important; }
}
@media (max-width: 560px) {
  .v2-g4 { gap: 10px; }
  #fields .v2-g4, #process .v2-g4 { grid-template-columns: minmax(0, 1fr); }
  .v2-att-b { padding: 14px; }
  .v2-att-n { font-size: 16px; }
  .v2-att-c { font-size: 12.5px; }
  .v2-case-img { height: 120px; }
  .v2-case-t { font-size: 14.5px; }
  .v2-hcard { padding: 16px; gap: 12px; }
  .v2-hcard-v { font-size: 15px; }
  .side-float { display: none !important; }
  .v2-hero-title { font-size: 30px; }
  .about-section, .svc-block { padding: 26px 20px; }
  .v2-fees { padding: 28px 20px; }
}

/* 견적, 상담, 현황 페이지 상단도 밝은 톤으로 통일 */
.page-section > .hero{background:linear-gradient(180deg,#EEF8F5 0%,#fff 100%)!important;color:#0F172A!important;padding:56px 20px 40px!important;box-shadow:none!important}
.page-section > .hero::before,.page-section > .hero::after{display:none!important}
.page-section > .hero h1{color:#0F172A!important;font-family:Pretendard,sans-serif;font-weight:800;letter-spacing:-.02em}
.page-section > .hero p{color:#475569!important}
.page-section > .hero .hero-badge{background:#E3F4EF!important;color:#048368!important;border:0!important}

/* 글자 크기 조정, 제목 글꼴은 기존 특허맨(G마켓 산스) 유지 */
:root { --font-title: 'Gmarket Sans', 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif; }
.v2-hero-title, .v2-h2, .v2-cta h2, .col-hero h1, .col-article h1, .page-section > .hero h1, .about-hero-title { font-family: var(--font-title) !important; font-weight: 700 !important; letter-spacing: -0.02em; }
.v2-hero-title { font-size: 38px; line-height: 1.3; }
.v2-hero-text { font-size: 16px; }
.v2-h2 { font-size: 30px; }
.v2-cta h2 { font-size: 26px; }
.col-hero h1 { font-size: clamp(26px, 3.4vw, 34px); }
.col-article h1 { font-size: clamp(24px, 3.2vw, 32px); }
.v2-stat-n { font-size: 26px; }
.v2-hcard-v { font-size: 15px; }
.v2-fee-v { font-size: 18px; }
@media (max-width: 860px) { .v2-hero-title { font-size: 30px; } .v2-h2 { font-size: 25px; } .v2-cta h2 { font-size: 22px; } }
@media (max-width: 560px) { .v2-hero-title { font-size: 26px; } .v2-h2 { font-size: 23px; } .v2-stat-n { font-size: 23px; } }
.v2-hcard-t { font-size: 16px; }

/* 등록 사례: 옆으로 흐르는 띠 (마우스를 올리면 멈춤) */
.v2-mq { position: relative; overflow: hidden; margin-left: -8px; margin-right: -8px; padding: 6px 0 10px; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%); }
.v2-mq-track { display: flex; width: max-content; animation: v2mq 70s linear infinite; }
.v2-mq:hover .v2-mq-track, .v2-mq:focus-within .v2-mq-track { animation-play-state: paused; }
.v2-mq .v2-case { flex: none; width: 264px; margin: 0 8px; }
@keyframes v2mq { to { transform: translateX(-50%); } }
@media (max-width: 560px) { .v2-mq .v2-case { width: 210px; margin: 0 6px; } .v2-mq-track { animation-duration: 55s; } }
@media (prefers-reduced-motion: reduce) { .v2-mq { overflow-x: auto; -webkit-mask-image: none; mask-image: none; } .v2-mq-track { animation: none; } .v2-mq-track > [aria-hidden="true"] { display: none; } }

/* 실시간 상담 현황: 위로 천천히 흐르는 목록 (마우스를 올리면 멈춤) */
.v2-status .status-list.is-ticker { overflow: hidden; height: 392px; max-height: none; position: relative; -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%); mask-image: linear-gradient(180deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%); }
.v2-status .status-tick { animation: v2tick var(--tick-dur, 40s) linear infinite; }
.v2-status .status-list.is-ticker:hover .status-tick { animation-play-state: paused; }
@keyframes v2tick { to { transform: translateY(-50%); } }
@media (prefers-reduced-motion: reduce) { .v2-status .status-list.is-ticker { overflow-y: auto; -webkit-mask-image: none; mask-image: none; } .v2-status .status-tick { animation: none; } .v2-status .status-tick > [aria-hidden="true"] { display: none; } }

/* 칼럼 본문 사진, 표 */
.col-body img { max-width: 100%; height: auto; border-radius: 12px; margin-top: 20px; }
@media (max-width: 560px) { .col-body table { display: block; overflow-x: auto; white-space: nowrap; } }

/* 상담, 견적, 현황 페이지 아래 여백 */
.page-section { padding-bottom: 96px; }
.consult-type-select { margin-bottom: 8px; }
@media (max-width: 560px) { .page-section { padding-bottom: 64px; } }

/* 비용 안내, 상담 안내 */
.qg { max-width: 1000px; margin: 0 auto; padding: 48px 20px 8px; }
.qg-consult { padding-top: 72px; }
.qg-head { text-align: center; max-width: 720px; margin: 0 auto; }
.qg-lead { margin: 16px 0 0; font-size: 16px; line-height: 1.8; color: var(--gray-600); }
.qg-lead b { color: var(--gray-900); }
.qg-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 36px; }
.qg-3s { margin-top: 16px; }
.qg-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 40px; }
.qg-card { background: #ffffff; border: 1px solid var(--gray-200); border-radius: 18px; padding: 24px; box-shadow: var(--shadow-sm); }
.qg-card h3 { margin: 0; font-size: 17px; font-weight: 800; color: var(--gray-900); }
.qg-card p { margin: 10px 0 0; font-size: 14.5px; line-height: 1.75; color: var(--gray-600); }
.qg-num { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--primary-light); color: var(--primary); font-weight: 800; font-size: 14px; margin-bottom: 14px; }
.qg-h3 { margin: 48px 0 0; font-size: 21px; font-weight: 800; color: var(--gray-900); letter-spacing: -0.02em; }
.qg-2 .qg-h3 { margin-top: 0; }
.qg-sub { margin: 8px 0 0; font-size: 15px; line-height: 1.7; color: var(--gray-600); }
.qg-table { margin-top: 18px; overflow-x: auto; border: 1px solid var(--gray-200); border-radius: 16px; background: #ffffff; }
.qg-table table { width: 100%; border-collapse: collapse; font-size: 14.5px; min-width: 620px; }
.qg-table th, .qg-table td { padding: 14px 16px; text-align: center; border-bottom: 1px solid var(--gray-100); }
.qg-table thead th { background: var(--gray-50, #F9FAFB); font-size: 13px; color: var(--gray-500); font-weight: 700; }
.qg-table tbody th { text-align: left; color: var(--gray-700); font-weight: 700; white-space: nowrap; }
.qg-table tbody tr:last-child th, .qg-table tbody tr:last-child td { border-bottom: 0; }
.qg-table b { color: var(--primary); font-size: 16px; }
.qg-note { margin: 10px 0 0; font-size: 13px; color: var(--gray-500); line-height: 1.7; }
.qg-list { list-style: none; margin: 16px 0 0; padding: 0; border: 1px solid var(--gray-200); border-radius: 16px; background: #ffffff; }
.qg-list li { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 14px 18px; border-bottom: 1px solid var(--gray-100); font-size: 14.5px; }
.qg-list li:last-child { border-bottom: 0; }
.qg-list span { color: var(--gray-700); }
.qg-list b { color: var(--gray-900); text-align: right; white-space: nowrap; }
.qg-list small { grid-column: 1 / -1; color: var(--gray-400); font-size: 12.5px; }
.qg-ex { margin-top: 40px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px 32px; border-radius: 20px; background: linear-gradient(135deg, #EEF8F5 0%, #F7FBFA 100%); border: 1px solid #D5EEE6; }
.qg-ex-k { display: inline-block; font-size: 12.5px; font-weight: 800; color: var(--primary); }
.qg-ex h3 { margin: 6px 0 0; font-size: 19px; font-weight: 800; }
.qg-ex p { margin: 8px 0 0; font-size: 14.5px; color: var(--gray-600); line-height: 1.7; }
.qg-ex-total { text-align: right; flex: none; }
.qg-ex-total small { display: block; font-size: 13px; color: var(--gray-500); }
.qg-ex-total b { display: block; margin-top: 4px; font-size: 28px; font-weight: 800; color: var(--primary); letter-spacing: -0.02em; white-space: nowrap; }
.qg-faq details { border-bottom: 1px solid var(--gray-200); }
.qg-faq .qg-h3 { margin-bottom: 8px; }
.qg-faq summary { cursor: pointer; list-style: none; padding: 18px 28px 18px 0; font-size: 16px; font-weight: 700; color: var(--gray-900); position: relative; }
.qg-faq summary::-webkit-details-marker { display: none; }
.qg-faq summary::after { content: "+"; position: absolute; right: 4px; top: 16px; font-size: 20px; color: var(--gray-400); }
.qg-faq details[open] summary::after { content: "−"; }
.qg-faq details p { margin: 0 0 18px; font-size: 15px; line-height: 1.8; color: var(--gray-600); }
.qg-go { margin: 36px 0 0; text-align: center; }
.qg-steps { list-style: none; counter-reset: qs; margin: 36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.qg-steps li { counter-increment: qs; background: #ffffff; border: 1px solid var(--gray-200); border-radius: 18px; padding: 22px; box-shadow: var(--shadow-sm); }
.qg-steps li::before { content: counter(qs); display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--primary); color: #ffffff; font-weight: 800; font-size: 14px; }
.qg-steps b { display: block; margin-top: 14px; font-size: 16px; font-weight: 800; color: var(--gray-900); }
.qg-steps p { margin: 8px 0 0; font-size: 14px; line-height: 1.7; color: var(--gray-600); }
.qg-dots { margin: 12px 0 0; padding-left: 18px; font-size: 14.5px; line-height: 1.9; color: var(--gray-600); }
.qg-calc-head { max-width: 840px; margin: 72px auto 0; padding: 40px 20px 0; text-align: center; border-top: 1px solid var(--gray-200); }
.qg-calc-head p { margin: 12px 0 0; font-size: 15px; color: var(--gray-600); line-height: 1.7; }
@media (max-width: 860px) {
  .qg-3, .qg-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qg-2 { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .qg { padding-top: 36px; }
  .qg-3, .qg-steps { grid-template-columns: 1fr; }
  .qg-ex { flex-direction: column; align-items: flex-start; padding: 22px; }
  .qg-ex-total { text-align: left; }
  .qg-h3 { font-size: 19px; margin-top: 40px; }
  .qg-list li { grid-template-columns: 1fr; }
  .qg-list b { text-align: left; white-space: normal; }
}

/* 비용 안내: 특허 / 디자인 탭 */
.qg-tabs { display: flex; gap: 6px; margin: 44px auto 0; padding: 5px; width: fit-content; max-width: 100%; background: var(--gray-100, #F2F4F6); border-radius: 14px; }
.qg-tabs button { border: 0; cursor: pointer; min-height: 46px; padding: 0 28px; border-radius: 10px; background: transparent; font-family: inherit; font-size: 16px; font-weight: 700; color: var(--gray-500); }
.qg-tabs button.active { background: #ffffff; color: var(--primary); box-shadow: 0 1px 4px rgba(0,0,0,0.08); }
.qg-tabs button:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.qg-panel > .qg-h3:first-child { margin-top: 32px; }
.qg-plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 18px; }
.qg-plan { background: #ffffff; border: 1px solid var(--gray-200); border-radius: 18px; padding: 24px; box-shadow: var(--shadow-sm); }
.qg-plan-k { display: inline-block; padding: 4px 12px; border-radius: 999px; background: var(--primary-light); color: var(--primary); font-size: 13px; font-weight: 800; }
.qg-plan-v { display: block; margin-top: 14px; font-size: 28px; font-weight: 800; color: var(--gray-900); letter-spacing: -0.02em; }
.qg-plan small { font-size: 13px; color: var(--gray-500); }
.qg-plan ul { list-style: none; margin: 16px 0 0; padding: 0; border-top: 1px solid var(--gray-100); }
.qg-plan li { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--gray-100); font-size: 14.5px; }
.qg-plan li span { color: var(--gray-600); }
.qg-plan li b { color: var(--gray-900); text-align: right; }
.qg-plan p { margin: 12px 0 0; font-size: 13.5px; color: var(--gray-500); }
.qg-list-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.qg-list-cols li:nth-last-child(2):nth-child(odd) { border-bottom: 1px solid var(--gray-100); }
@media (max-width: 560px) {
  .qg-plans, .qg-list-cols { grid-template-columns: 1fr; }
  .qg-tabs { width: 100%; }
  .qg-tabs button { flex: 1; padding: 0 10px; font-size: 15px; }
  .qg-plan-v { font-size: 24px; }
}

/* 서비스 페이지 관련 칼럼 */
.col-rel { padding-top: 72px; padding-bottom: 24px; }
.col-rel .v2-h2 { font-size: 26px; }
@media (max-width: 560px) { .col-rel { padding-top: 48px; } .col-rel .v2-h2 { font-size: 21px; } }

/* 변리사 소개 페이지 */
.att-hero { background: linear-gradient(180deg, #EEF8F5 0%, #ffffff 100%); padding: 64px 20px 48px; }
.att-in { max-width: 1000px; margin: 0 auto; display: flex; gap: 40px; align-items: center; }
.att-photo { width: 200px; height: 200px; flex: none; object-fit: cover; object-position: top; border-radius: 28px; background: #ffffff; box-shadow: var(--shadow-md); }
.att-hero h1 { margin: 14px 0 0; font-family: var(--font-title); font-weight: 700; font-size: 36px; letter-spacing: -0.02em; color: var(--gray-900); }
.att-hero h1 small { font-size: 20px; color: var(--gray-500); font-weight: 700; }
.att-bio { margin: 14px 0 0; font-size: 16px; line-height: 1.8; color: var(--gray-600); max-width: 620px; }
.att-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.att-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; padding-top: 24px; }
.att-box { padding: 28px; }
.att-box h2 { margin: 0; font-size: 19px; font-weight: 800; }
.att-box ul { margin: 14px 0 0; padding-left: 18px; font-size: 15px; line-height: 2; color: var(--gray-700); }
.att-cols { padding-top: 64px; padding-bottom: 96px; }
.col-byline a, .col-author-n a { color: inherit; text-decoration: none; }
.col-byline a:hover, .col-author-n a:hover { color: var(--primary); text-decoration: underline; }
@media (max-width: 760px) {
  .att-in { flex-direction: column; align-items: flex-start; gap: 24px; }
  .att-photo { width: 140px; height: 140px; border-radius: 22px; }
  .att-hero h1 { font-size: 28px; }
  .att-grid { grid-template-columns: 1fr; }
}

/* 특허맨소개: 글자 크기를 다른 페이지와 맞춤 */
#page-about .about-container { max-width: 1000px; }
#page-about .about-hero { padding-top: 72px; padding-bottom: 32px; }
#page-about .about-hero-badge { font-size: 14px; padding: 6px 14px; }
#page-about .about-point { gap: 20px; padding: 28px 0; }
#page-about .about-point-num { width: 48px; height: 48px; font-size: 16px; flex: none; }
#page-about .about-point-title { font-size: 21px; line-height: 1.45; }
#page-about .about-point-text { font-size: 16px; line-height: 1.85; color: var(--gray-600); }
#page-about .about-compare-col-title { font-size: 19px; }
#page-about .about-compare-col-items { font-size: 15px; line-height: 2; }
#page-about .about-stat-num { font-size: 30px; }
#page-about .about-stat-label { font-size: 14px; }
#page-about .about-collab-chip { font-size: 14.5px; }
#page-about .about-btn-primary, #page-about .about-btn-secondary { font-size: 16px; min-height: 52px; padding-left: 26px; padding-right: 26px; }
@media (max-width: 560px) {
  #page-about .about-point-title { font-size: 18px; }
  #page-about .about-point-text { font-size: 15px; }
  #page-about .about-point-text br { display: none; }
}

/* 특허맨소개: 변리사 카드 (큰 사진 + 상세 소개) */
.ab-att-wrap { display: flex; flex-direction: column; gap: 24px; padding-bottom: 32px; }
.ab-att-lead { margin: 0 auto 8px; max-width: 680px; text-align: center; font-size: 17px; line-height: 1.8; color: var(--gray-600); }
.ab-att { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 40px; padding: 32px; background: #ffffff; border: 1px solid var(--gray-200); border-radius: 24px; box-shadow: var(--shadow-sm); }
.ab-att-photo { display: block; border-radius: 18px; overflow: hidden; background: #2b2b2b; aspect-ratio: 4 / 5; align-self: start; }
.ab-att-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.ab-att-photo:hover img { transform: scale(1.03); }
.ab-att-field { display: inline-block; padding: 5px 12px; border-radius: 999px; background: var(--primary-light); color: var(--primary); font-size: 13.5px; font-weight: 800; }
.ab-att-name { margin: 14px 0 0; font-family: var(--font-title); font-weight: 700; font-size: 30px; letter-spacing: -0.02em; color: var(--gray-900); }
.ab-att-name a { color: inherit; text-decoration: none; }
.ab-att-name small { font-family: var(--font-body); font-size: 16px; font-weight: 700; color: var(--gray-500); margin-left: 4px; }
.ab-att-head { margin: 12px 0 0; font-size: 19px; font-weight: 800; color: var(--gray-900); line-height: 1.5; }
.ab-att-bio { margin: 10px 0 0; font-size: 16px; line-height: 1.85; color: var(--gray-600); }
.ab-att-cols { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 28px; margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--gray-100); }
.ab-att-k { margin: 0 0 10px; font-size: 14px; font-weight: 800; color: var(--gray-900); }
.ab-att-list { margin: 0; padding-left: 18px; font-size: 15px; line-height: 1.95; color: var(--gray-700); }
.ab-att-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ab-att-tags li { padding: 7px 12px; border-radius: 10px; background: var(--gray-50, #F9FAFB); border: 1px solid var(--gray-200); font-size: 14px; color: var(--gray-700); }
.ab-att-more { display: inline-block; margin-top: 22px; font-size: 15px; }
@media (max-width: 860px) {
  .ab-att { grid-template-columns: 220px minmax(0, 1fr); gap: 28px; padding: 24px; }
  .ab-att-cols { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .ab-att { grid-template-columns: 1fr; padding: 20px; gap: 20px; }
  .ab-att-photo { max-width: 260px; }
  .ab-att-name { font-size: 26px; }
  .ab-att-head { font-size: 17px; }
  .ab-att-bio, .ab-att-lead { font-size: 15px; }
}

/* 변리사 소개 페이지 추가 */
.att-head { margin: 10px 0 0; font-size: 20px; font-weight: 800; color: var(--gray-900); }
.att-photo { width: 240px; height: 300px; }
.att-spec { padding-top: 64px; }
.att-spec-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.att-spec-c { padding: 22px; }
.att-spec-c b { display: block; font-size: 16px; color: var(--gray-900); }
.att-spec-c p { margin: 8px 0 0; font-size: 14.5px; line-height: 1.7; color: var(--gray-600); }
@media (max-width: 860px) { .att-spec-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .att-spec-grid { grid-template-columns: 1fr; } .att-photo { width: 160px; height: 200px; } }

/* 스크롤 애니메이션 (vpat 와 같은 방식): 스크립트가 켜졌을 때만 숨겼다가 나타냄 */
html.rv-on .rv { opacity: 0; transform: translateY(28px); transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); transition-delay: var(--rv-d, 0s); }
html.rv-on .rv.rv-s { transform: translateY(14px); }
html.rv-on .rv.rv-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html.rv-on .rv { opacity: 1; transform: none; transition: none; } }

/* 비용안내 메뉴에서 이동할 때 상단 메뉴에 가리지 않게 */
#calc, #cost { scroll-margin-top: 96px; }

/* 특허맨소개: 수임 상한제 안내 상자 */
.ab-cap { margin-top: 12px; padding: 22px 26px; border-radius: 18px; background: linear-gradient(135deg, #EEF8F5 0%, #F7FBFA 100%); border: 1px solid #D5EEE6; }
.ab-cap b { display: block; font-size: 17px; color: var(--primary); }
.ab-cap p { margin: 8px 0 0; font-size: 15px; line-height: 1.8; color: var(--gray-600); }

/* 푸터: 패밀리사이트 */
.v2-footer-bottom { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--gray-200); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.v2-footer-bottom .v2-footer-copy { margin: 0; }
.v2-family { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.v2-family-k { font-size: 12.5px; font-weight: 700; color: var(--gray-500); margin-right: 4px; }
.v2-family-a { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 12px; background: #ffffff; border: 1px solid var(--gray-200); text-decoration: none; color: var(--gray-900); transition: border-color .2s, box-shadow .2s; }
.v2-family-a:hover { border-color: var(--primary); box-shadow: var(--shadow-sm); }
.v2-family-a img { width: 18px; height: 18px; }
.v2-family-a span { display: flex; flex-direction: column; line-height: 1.25; }
.v2-family-a b { font-size: 13.5px; }
.v2-family-a small { font-size: 11.5px; color: var(--gray-500); }
.v2-family-a i { font-style: normal; font-size: 12px; color: var(--gray-400); }
.v2-footer-info a { color: inherit; }
@media (max-width: 560px) { .v2-footer-bottom { flex-direction: column-reverse; align-items: flex-start; } }
