:root{
  --bg:#F5F2EC;
  --bg-alt:#EDE7D9;
  --card:#FFFFFF;
  --ink:#1C2521;
  --ink-dim:#5E6660;
  --line:#DDD5C2;
  --brown:#6B4226;
  --brown-dim:#42291A;
  --brown-tint:#F1E6D6;
  --brass:#C08D3D;
  --brass-dim:#A0742E;
  --brass-tint:#F5EBD8;
  --radius:12px;
  --serif:'Noto Serif KR', serif;
  --sans:'Pretendard', -apple-system, sans-serif;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.65;
  font-size:15.5px;
}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit; cursor:pointer;}
input, textarea{font-family:inherit; font-size:14.5px;}

/* ---------- NAV ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(245,242,236,0.92); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  position:relative;
  max-width:1140px; margin:0 auto; padding:18px 28px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.nav-brand{
  font-family:var(--serif); font-weight:800; font-size:25px;
  letter-spacing:-0.01em; color:var(--brown);
  display:inline-flex; align-items:center; gap:5px;
}
.nav-brand .brand-run{font-style:italic; font-weight:900; color:var(--brown);}
.nav-brand .brand-runner{color:var(--brass); flex-shrink:0; display:block;}
.nav-links{display:flex; align-items:center; gap:28px; font-size:18px; font-weight:600; color:var(--ink-dim); flex:1; margin-left:32px;}
.nav-links a{position:relative; padding-bottom:5px;}
.nav-links a:hover{color:var(--brown);}
.nav-links a.active{color:var(--brass-dim);}
.nav-links a.active::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--brass);
}
.nav-cta{
  background:var(--brown); color:#fff !important;
  padding:9px 18px; border-radius:7px; font-weight:600; font-size:14px; flex-shrink:0;
}
.nav-cta:hover{background:var(--brown-dim);}
.nav-toggle{
  display:none; flex-direction:column; justify-content:center; align-items:stretch;
  gap:5px; width:30px; height:26px; background:none; border:none; padding:0; flex-shrink:0;
}
.nav-toggle-bar{display:block; width:100%; height:2px; background:var(--brown); border-radius:2px; transition:transform 0.2s ease, opacity 0.2s ease;}
.nav-toggle.active .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.active .nav-toggle-bar:nth-child(2){opacity:0;}
.nav-toggle.active .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- HERO ---------- */
.hero{
  max-width:100%; margin:0 auto;
  padding:0; position:relative; overflow:hidden; isolation:isolate;
  background:linear-gradient(155deg, #2A1B10 0%, #6B4226 48%, #8B5E3C 100%);
}
.hero-bg{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.hero-bg-layer{
  position:absolute; inset:0;
  background-repeat:no-repeat; background-position:right bottom; background-size:contain;
  opacity:0; transition:opacity 2.6s ease-in-out;
}
.hero-bg-layer.active{ opacity:0.13; }
@media (prefers-reduced-motion: reduce){
  .hero-bg-layer{ transition:none; }
}
.hero-content{
  position:relative; z-index:1; max-width:1140px; margin:0 auto;
  padding:96px 28px 80px; display:flex; align-items:flex-start; justify-content:space-between; gap:48px;
}
.hero-inner{max-width:640px; flex:1 1 auto;}

.hero .eyebrow{
  font-family:var(--serif); font-size:14px; font-weight:600; color:#E9C879;
  letter-spacing:0.04em; margin-bottom:20px;
}
.hero h1{
  font-family:var(--serif); font-weight:800; letter-spacing:-0.01em;
  font-size:clamp(30px,4.6vw,50px); line-height:1.38; white-space:pre-line;
  color:#F7F5F0;
}
.hero .hero-body{margin-top:22px; font-size:16px; color:rgba(247,245,240,0.84); max-width:560px;}
.hero-cta{display:flex; gap:14px; margin-top:32px; flex-wrap:wrap;}
.hero .btn-primary{background:#E9C879; color:#2A1B10;}
.hero .btn-primary:hover{background:#F2D897; transform:translateY(-2px);}
.hero .btn-ghost{border-color:rgba(247,245,240,0.55); color:#F7F5F0;}
.hero .btn-ghost:hover{border-color:#E9C879; color:#E9C879;}
.btn{
  padding:13px 24px; border-radius:8px; font-size:14.5px; font-weight:600;
  transition:transform .15s ease, background .15s ease;
  display:inline-block; border:none;
}
.btn-primary{background:var(--brown); color:#fff;}
.btn-primary:hover{background:var(--brown-dim); transform:translateY(-2px);}
.btn-ghost{border:1px solid var(--ink); color:var(--ink); background:transparent;}
.btn-ghost:hover{border-color:var(--brass); color:var(--brass-dim); transform:translateY(-2px);}

.hero-highlights{
  margin-top:40px; display:grid; grid-template-columns:1fr 1fr; gap:12px 24px;
}
.hero-highlights li{
  font-size:14px; color:rgba(247,245,240,0.94); padding-left:22px; position:relative;
}
.hero-highlights li::before{
  content:''; position:absolute; left:0; top:7px; width:9px; height:9px; border-radius:2px;
  background:#E9C879;
}

/* ---------- SECTION SHELL ---------- */
/* 고정(sticky) 헤더 높이는 script.js가 --header-offset으로 측정해 채워준다.
   앵커 이동·scrollIntoView 모두 scroll-margin-top을 따르므로, 아래 스크롤 목표
   지점들에 일괄 적용해두면 제목이 헤더에 가려지는 문제가 한 곳에서 해결된다. */
#top, #services, #how, #cost, #faq, #consult, .service-card{
  scroll-margin-top: var(--header-offset, 80px);
}
/* 상단 padding만 줄여서(80px→36px) 메뉴/버튼 클릭으로 섹션에 스크롤 이동했을 때
   헤더 바로 아래 빈 공간이 과하게 보이지 않도록 한다. 하단은 섹션 간 여백 유지를 위해 그대로 둔다. */
.section{max-width:1140px; margin:0 auto; padding:36px 28px 80px;}
.section-head{margin-bottom:44px;}
.section-eyebrow{
  font-family:var(--serif); font-size:12.5px; font-weight:700; color:var(--brass-dim);
  letter-spacing:0.16em; margin-bottom:10px;
}
.section-head h2{font-family:var(--serif); font-size:clamp(22px,2.8vw,30px); font-weight:700; color:var(--brown);}
.section-sub{margin-top:12px; font-size:14.5px; color:var(--ink-dim);}
.section-sub a{color:var(--brass-dim); font-weight:600;}
.section-sub a:hover{text-decoration:underline;}
.warning-note{
  display:flex; align-items:flex-start; gap:6px;
  margin-top:8px; font-size:14.5px; font-weight:700; color:var(--ink); line-height:1.5;
}
.warning-note .warning-icon{width:15px; height:15px; flex-shrink:0; margin-top:2px; color:var(--brass-dim);}
/* 유치권 안내 문구는 이제 cost-grid 아래, 하단 cost-note 바로 위에 위치한다.
   왼쪽 들여쓰기(14px)·글자 크기(12.5px)는 기존 스타일을 그대로 유지한다. */
.cost-warning-note{padding-left:14px; margin-top:24px; margin-bottom:0; font-size:12.5px;}

/* ---------- PRICING PROMO ---------- */
.pricing-promo-section{background:var(--bg-alt); max-width:100%; padding-left:0; padding-right:0;}
.pricing-promo-inner{max-width:620px; margin:0 auto; padding:0 28px; text-align:center;}
.pricing-promo-headline{
  font-family:var(--serif); font-size:clamp(21px,3vw,28px); font-weight:800; color:var(--brown);
  margin-bottom:8px; line-height:1.4;
}
.pricing-promo-mark{
  display:inline-block; font-size:1.8em; font-weight:900; font-style:italic;
  color:var(--brass); transform:rotate(-8deg); line-height:0.6; vertical-align:-0.28em;
  margin-left:2px;
}
.pricing-promo-headline .brand-run{font-style:italic; font-weight:900;}
.pricing-promo-runner{color:var(--brass); vertical-align:-0.1em; margin:0 1px;}
.pricing-promo-subcopy{
  font-size:15px; font-weight:700; color:#1B4A73;
  margin-bottom:20px; line-height:1.5;
}
.pricing-top-badge{
  display:inline-block; background:var(--brass-tint); border:1px solid var(--brass);
  color:var(--brass-dim); font-weight:700; font-size:12.5px; letter-spacing:0.02em;
  border-radius:20px; padding:6px 16px; margin-bottom:22px;
}
.pricing-summary{margin-bottom:26px;}
.pricing-summary-label{font-size:14px; color:var(--ink-dim); font-weight:600; margin-bottom:2px;}
.pricing-summary-amount{font-family:var(--serif); font-size:clamp(34px,5vw,48px); font-weight:800; color:var(--brown); line-height:1.15;}
.pricing-items-caption{font-size:12.5px; color:var(--ink-dim); margin-bottom:12px;}
.pricing-items{display:flex; justify-content:center; gap:14px; flex-wrap:wrap; margin:0 auto 26px; max-width:440px;}
.pricing-item{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:14px 22px; min-width:170px; text-align:center;
}
.pricing-item-name{display:block; font-size:12.5px; color:var(--ink-dim); margin-bottom:4px;}
.pricing-item-price{display:block; font-family:var(--serif); font-size:19px; font-weight:700; color:var(--brown);}
.payment-badge{
  display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:var(--ink-dim);
  background:var(--card); border:1px solid var(--line); border-radius:20px; padding:7px 14px;
  margin-bottom:24px;
}
.payment-badge svg{color:var(--brown); flex-shrink:0;}
.payment-badge-sm{
  display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:600; color:var(--ink-dim);
  background:var(--card); border:1px solid var(--line); border-radius:14px; padding:3px 9px;
}
.payment-badge-sm svg{color:var(--brown); flex-shrink:0;}
.pricing-more-link{display:inline-block; font-size:13.5px; font-weight:600; color:var(--brass-dim); text-decoration:underline; text-underline-offset:2px;}
.pricing-more-link:hover{color:var(--brass);}

/* ---------- SERVICES ---------- */
.services-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
.service-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:28px; display:flex; flex-direction:column; border-top:3px solid var(--brown);
}
.service-card h3{font-family:var(--serif); font-size:19px; font-weight:700; color:var(--brown); margin-bottom:8px;}
.service-card > p.desc{font-size:14px; color:var(--ink-dim); margin-bottom:18px;}
.service-steps{margin-bottom:20px; list-style:none;}
.service-steps li{
  font-size:13px; color:var(--ink); padding:6px 0 6px 20px; position:relative;
  border-bottom:1px dashed var(--line);
}
.service-steps li:last-child{border-bottom:none;}
.service-steps li::before{
  content:counter(step); counter-increment:step;
  position:absolute; left:0; top:6px; font-family:var(--serif); font-size:11px; color:var(--brass-dim); font-weight:700;
}
.service-steps{counter-reset:step;}
.service-footer{
  margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding-top:16px; border-top:1px solid var(--line);
}
.service-price{font-family:var(--serif);}
.service-price .amount{font-size:22px; font-weight:800; color:var(--brown);}
.service-price .note{display:block; font-size:11px; color:var(--ink-dim); font-weight:400; margin-top:2px;}
.service-price .payment-badge-sm{margin-top:8px;}
.service-cta{
  background:var(--brass); color:#fff; padding:10px 18px; border-radius:7px; font-size:13.5px; font-weight:700; flex-shrink:0;
}
.service-cta:hover{background:var(--brass-dim);}

/* ---------- PROCESS TRACK (4 step) ---------- */
.process-track{display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative;}
.pr-item{position:relative; padding:0 16px 0 0; text-align:left;}
.pr-item:not(:last-child)::after{
  content:''; position:absolute; top:26px; left:56px; right:-4px; height:1px; background:var(--line);
}
.pr-num{
  width:52px; height:52px; border-radius:50%; background:var(--brown); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-weight:700; font-size:16px;
  position:relative; z-index:1; margin-bottom:16px;
}
.pr-title{font-size:16px; font-weight:700; color:var(--brown); margin-bottom:6px;}
.pr-desc{font-size:13px; color:var(--ink-dim);}

/* ---------- HOW TO USE (6 step vertical) ---------- */
.how-track{position:relative; padding-left:34px; max-width:640px;}
.how-track::before{
  content:''; position:absolute; left:11px; top:6px; bottom:6px; width:1px; background:var(--line);
}
.h-item{position:relative; padding-bottom:34px;}
.h-item:last-child{padding-bottom:0;}
.h-dot{
  position:absolute; left:-34px; top:2px; width:23px; height:23px; border-radius:50%;
  background:var(--brass-tint); border:2px solid var(--brass); color:var(--brass-dim);
  display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-weight:700; font-size:11px;
}
.h-title{font-size:15.5px; font-weight:700; color:var(--ink); margin-bottom:4px;}
.h-desc{font-size:13.5px; color:var(--ink-dim);}

/* ---------- COST ---------- */
.cost-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.cost-card{
  background:var(--brown-tint); border-radius:var(--radius); padding:22px 18px; text-align:center;
}
.cost-card-head{display:flex; align-items:flex-start; justify-content:space-between; gap:8px; margin-bottom:10px; min-height:38px;}
.cost-card h3{font-size:14.5px; font-weight:700; color:var(--brown); text-align:left; margin-bottom:0;}
.cost-detail-btn{
  flex-shrink:0; background:none; border:1px solid var(--line); color:var(--ink-dim);
  font-size:11px; font-weight:600; padding:3px 10px; border-radius:12px;
}
.cost-detail-btn:hover{border-color:var(--brass); color:var(--brass-dim);}
.cost-card .amount{font-family:var(--serif); font-size:24px; font-weight:800; color:var(--brown);}
.cost-card .amount-note{display:block; font-size:11px; color:var(--ink-dim); margin-top:6px; font-weight:400;}
.cost-card .payment-badge-sm{margin-top:10px;}
.cost-note{margin-top:24px; font-size:12.5px; color:var(--ink-dim); line-height:1.7;}

/* ---------- LAWFIRM ---------- */
.lawfirm-section{padding-top:0; padding-bottom:0;}
.lawfirm-inner{
  background:var(--brown); color:#fff; border-radius:18px;
  padding:56px 48px; text-align:center; max-width:1140px; margin:0 auto;
}
.lawfirm-inner .section-eyebrow{color:#E3CBAE;}
.lawfirm-inner h2{font-family:var(--serif); font-size:clamp(20px,2.6vw,26px); font-weight:700; margin-bottom:14px;}
.lawfirm-inner p{color:#E9DCCB; max-width:560px; margin:0 auto 26px; font-size:14.5px;}
.lawfirm-inner .btn-ghost{border-color:rgba(255,255,255,0.5); color:#fff;}
.lawfirm-inner .btn-ghost:hover{border-color:var(--brass-tint); color:var(--brass-tint);}

/* ---------- PROBLEMS ---------- */
.problems-section{background:var(--bg-alt); max-width:100%; padding-left:0; padding-right:0;}
.problems-section .section-head, .problems-grid{max-width:1140px; margin-left:auto; margin-right:auto; padding-left:28px; padding-right:28px;}
.problems-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.problem-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:24px 20px;
}
.problem-card h3{font-size:15.5px; font-weight:700; color:var(--brown); margin-bottom:8px;}
.problem-card p{font-size:13.5px; color:var(--ink-dim);}

/* ---------- FAQ ---------- */
.faq-list{border-top:1px solid var(--line); max-width:800px;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%; background:none; border:none; text-align:left;
  padding:20px 4px; font-size:15px; font-weight:600; color:var(--ink);
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq-q:hover{color:var(--brown);}
.faq-q .icon{font-family:var(--serif); font-size:18px; color:var(--brass); transition:transform .2s ease; flex-shrink:0;}
.faq-item.open .faq-q .icon{transform:rotate(45deg);}
.faq-a{
  max-height:0; overflow:hidden; transition:max-height .25s ease;
  font-size:13.5px; color:var(--ink-dim); padding:0 4px;
}
.faq-item.open .faq-a{padding-bottom:20px;}

/* ---------- CONSULT ---------- */
.consult-section{
  background:linear-gradient(160deg, #6B4226 0%, #402616 100%);
  max-width:100%; padding:36px 28px 80px; position:relative; overflow:hidden; isolation:isolate;
}
.consult-bg{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.consult-bg-layer{
  position:absolute; background-repeat:no-repeat; background-size:contain; opacity:0.14;
}
.consult-bg-1{ left:0; bottom:0; width:34%; height:78%; background-position:left bottom; }
.consult-bg-2{ right:4%; bottom:0; width:22%; height:52%; background-position:right bottom; }
.consult-wrap{
  max-width:1140px; margin:0 auto; position:relative; z-index:1;
  display:grid; grid-template-columns:0.8fr 1.2fr; gap:56px;
}
.consult-section .section-eyebrow{color:#E9C879;}
.consult-intro h2{font-family:var(--serif); font-size:clamp(22px,2.8vw,28px); font-weight:700; color:#F7F5F0; margin-bottom:14px;}
.consult-intro p{font-size:14.5px; color:rgba(247,245,240,0.86); margin-bottom:22px;}
.consult-body-row{display:flex; align-items:center; gap:8px;}
.consult-body-row #consult-body{margin-bottom:0;}
.consult-runner-icon{
  background:none; border:none; padding:2px; flex-shrink:0; line-height:0;
  color:rgba(247,245,240,0.32); cursor:default;
}
.consult-runner-icon:hover{color:rgba(247,245,240,0.5);}
.consult-phone-note{font-size:13.5px; color:rgba(247,245,240,0.86); line-height:1.8;}
.consult-phone-note p{margin-bottom:12px;}
.consult-call-btn{
  display:inline-flex; align-items:center; gap:8px; padding:11px 22px;
  border-radius:8px; border:1.5px solid #E9C879; color:#E9C879;
  font-size:14px; font-weight:700; transition:background .15s ease, color .15s ease, transform .15s ease;
}
.consult-call-btn:hover{background:#E9C879; color:#2A1B10; transform:translateY(-2px);}
.consult-call-btn svg{flex-shrink:0;}

.consult-form{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:32px; box-shadow:0 12px 32px rgba(42,27,16,0.28);
}
.form-group{margin-bottom:22px;}
.form-group label{display:block; font-size:13.5px; font-weight:700; color:var(--ink); margin-bottom:10px;}
.label-note{font-weight:400; font-size:12px;}
.req{color:#B0472F;}
.chip-group{display:flex; flex-wrap:wrap; gap:8px;}
.chip{
  border:1px solid var(--line); border-radius:20px; padding:8px 14px; font-size:13px;
  color:var(--ink-dim); background:var(--bg);
}
.chip input{display:none;}
.chip.checked{background:var(--brown); border-color:var(--brown); color:#fff;}
.property-type-other{margin-top:12px; border:1.5px solid var(--ink);}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
input[type="text"], input[type="tel"], textarea{
  width:100%; border:1px solid var(--line); border-radius:8px; padding:11px 13px;
  background:var(--bg); color:var(--ink);
}
input:focus, textarea:focus{outline:2px solid var(--brass); outline-offset:1px;}
textarea{min-height:90px; resize:vertical;}
.consent-row{
  display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink-dim);
  margin-bottom:22px;
}
.consult-privacy-link{
  display:inline-block; font-size:12.5px; color:var(--ink-dim);
  text-decoration:underline; text-underline-offset:2px; margin-bottom:14px;
}
.consult-privacy-link:hover{color:var(--brown);}
.form-actions{display:flex; gap:10px;}
.btn-submit{flex:1; padding:14px; font-size:15px;}
.btn-reset{padding:14px 20px; font-size:15px; flex-shrink:0;}
.form-note{margin-top:12px; font-size:13px; color:var(--brown); font-weight:600; min-height:18px;}
.consult-form input:not([type="checkbox"]):disabled, .consult-form textarea:disabled{opacity:.6; cursor:not-allowed;}
.consult-form.locked .chip{opacity:.6; cursor:not-allowed;}
.consult-form.locked .btn-submit{opacity:.6; cursor:not-allowed;}

.success-stars{ font-size:1.2em; font-weight:800; color:#1B4A73; }
.success-runner-wrap{display:inline-flex; vertical-align:middle;}
.success-runner-icon{width:36px; height:15px; display:block;}
.success-runner-road{stroke:var(--brown);}
.success-runner-figure{fill:var(--brass);}

/* 개인정보 동의 체크박스: 잠긴(disabled) 상태에서도 체크 표시가 흐려지지 않도록 커스텀 렌더링 */
.consent-row input[type="checkbox"]{
  appearance:none; -webkit-appearance:none; margin:0;
  width:16px; height:16px; flex-shrink:0;
  border:1.5px solid var(--ink-dim); border-radius:4px;
  background:var(--card); position:relative; cursor:pointer;
}
.consent-row input[type="checkbox"]:checked{
  background:var(--brown); border-color:var(--brown);
}
.consent-row input[type="checkbox"]:checked::after{
  content:""; position:absolute; left:4px; top:1px; width:4px; height:8px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg);
}
.consent-row input[type="checkbox"]:disabled{cursor:not-allowed;}
.consent-row input[type="checkbox"]:disabled:checked{background:var(--brown); border-color:var(--brown);}

/* ---------- FOOTER ---------- */
.footer{background:var(--brown-dim); color:#E3D3C0; padding:40px 28px;}
.footer-inner{
  max-width:1140px; margin:0 auto; font-size:12.5px; line-height:2;
  display:flex; align-items:center; justify-content:space-between; gap:32px;
}
.footer-main{flex:1 1 auto; min-width:0;}
.footer-brand{font-family:var(--serif); font-size:16px; font-weight:700; color:#fff; margin-bottom:6px;}
.footer-links{
  display:flex; flex-direction:column; align-items:flex-end; gap:8px;
  flex-shrink:0; padding-left:24px; border-left:1px solid rgba(227,211,192,0.25);
}
.footer-links a{color:#E3D3C0; text-decoration:underline; text-underline-offset:2px; font-size:12.5px; opacity:0.85;}
.footer-links a:hover{opacity:1; color:#fff;}
.footer-modal-btn{
  background:none; border:none; padding:0; font-family:inherit;
  color:#E3D3C0; text-decoration:underline; text-underline-offset:2px; font-size:12.5px; opacity:0.85; cursor:pointer;
}
.footer-modal-btn:hover{opacity:1; color:#fff;}

/* ---------- 개인정보처리방침 인라인 스크롤 박스 ---------- */
.privacy-scroll-box{
  border:1px solid var(--line); border-radius:8px;
  background:var(--bg); margin-bottom:14px;
  height:240px; overflow:hidden; position:relative;
}
.privacy-scroll-inner{
  height:100%; overflow-y:auto; padding:14px 16px;
  font-size:12.5px; color:var(--ink-dim); line-height:1.8;
  scrollbar-width:thin; scrollbar-color:var(--line) transparent;
}
.privacy-scroll-inner::-webkit-scrollbar{width:5px;}
.privacy-scroll-inner::-webkit-scrollbar-track{background:transparent;}
.privacy-scroll-inner::-webkit-scrollbar-thumb{background:var(--line); border-radius:4px;}
.privacy-scroll-inner h2{font-size:13px; font-weight:700; color:var(--ink); margin:14px 0 4px;}
.privacy-scroll-inner h2:first-child{margin-top:0;}
.privacy-scroll-inner p{margin-bottom:6px;}
.privacy-scroll-inner ol{padding-left:18px; margin-bottom:6px;}
.privacy-loading{color:var(--ink-dim); font-size:12.5px;}

/* ---------- 법인정보 이용약관/방침 모달 ---------- */
.legal-modal{
  position:fixed; inset:0; z-index:200; display:flex;
  align-items:center; justify-content:center; padding:24px;
}
.legal-modal[hidden]{display:none;}
.legal-modal-backdrop{
  position:absolute; inset:0; background:rgba(37,27,19,0.65);
  backdrop-filter:blur(4px);
}
.legal-modal-box{
  position:relative; z-index:1; background:var(--card);
  border-radius:14px; width:100%; max-width:720px;
  max-height:82vh; display:flex; flex-direction:column;
  box-shadow:0 24px 60px rgba(42,27,16,0.35);
}
.legal-modal-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 28px; border-bottom:1px solid var(--line); flex-shrink:0;
}
.legal-modal-title{
  font-family:var(--serif); font-size:18px; font-weight:700; color:var(--brown);
}
.legal-modal-close{
  background:none; border:none; font-size:18px; color:var(--ink-dim);
  cursor:pointer; padding:4px 8px; border-radius:6px; line-height:1;
}
.legal-modal-close:hover{background:var(--bg-alt); color:var(--ink);}
.legal-modal-body{
  overflow-y:auto; padding:28px; font-size:14px; color:var(--ink-dim); line-height:1.85;
  scrollbar-width:thin; scrollbar-color:var(--line) transparent;
}
.legal-modal-body::-webkit-scrollbar{width:6px;}
.legal-modal-body::-webkit-scrollbar-track{background:transparent;}
.legal-modal-body::-webkit-scrollbar-thumb{background:var(--line); border-radius:4px;}
.legal-modal-body h2{font-family:var(--serif); font-size:15.5px; font-weight:700; color:var(--ink); margin:24px 0 8px;}
.legal-modal-body h2:first-child{margin-top:0;}
.legal-modal-body p{margin-bottom:8px;}
.legal-modal-body ol, .legal-modal-body ul{padding-left:20px; margin-bottom:8px;}
.legal-modal-body li{margin-bottom:4px;}
.legal-modal-draft{
  background:var(--brass-tint); border:1px solid var(--brass);
  color:var(--brass-dim); font-weight:700; font-size:13px;
  border-radius:8px; padding:10px 14px; margin-bottom:16px;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:960px){
  .problems-grid{grid-template-columns:1fr 1fr;}
  .services-grid{grid-template-columns:1fr;}
  .process-track{grid-template-columns:1fr 1fr; row-gap:32px;}
  .pr-item:nth-child(2)::after{display:none;}
  .cost-grid{grid-template-columns:1fr 1fr;}
  .consult-wrap{grid-template-columns:1fr;}
  .hero-highlights{grid-template-columns:1fr;}
  .hero-content{flex-direction:column;}
  .footer-inner{flex-direction:column; align-items:flex-start;}
  .footer-links{align-items:flex-start; padding-left:0; border-left:none; border-top:1px solid rgba(227,211,192,0.25); padding-top:14px; width:100%;}
}
@media (max-width:768px){
  .nav-links{
    display:flex; visibility:hidden; opacity:0; pointer-events:none;
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--bg); border-bottom:1px solid var(--line);
    padding:6px 0; margin-left:0;
    box-shadow:0 12px 24px rgba(37,27,19,0.12);
    transition:opacity .15s ease;
  }
  .nav-links.open{visibility:visible; opacity:1; pointer-events:auto;}
  .nav-links a{padding:13px 28px; width:100%;}
  .nav-links a.active::after{display:none;}
  .nav-links a.active{background:var(--brown-tint);}
  .nav-toggle{display:flex;}
}
@media (max-width:620px){
  .problems-grid{grid-template-columns:1fr;}
  .process-track{grid-template-columns:1fr;}
  .pr-item::after{display:none;}
  .cost-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
}

a:focus-visible, .btn:focus-visible, .chip:focus-within{outline:2px solid var(--brass); outline-offset:2px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .btn:hover{transform:none;}
}

/* ---------- 이용약관 / 개인정보처리방침 (임시 문구 페이지) ---------- */
.legal-main{max-width:820px; margin:0 auto; padding:64px 28px 100px;}
.legal-eyebrow{font-size:13px; font-weight:700; letter-spacing:0.08em; color:var(--brass-dim);}
.legal-title{font-family:var(--serif); font-size:32px; font-weight:800; color:var(--ink); margin:10px 0 20px; letter-spacing:-0.01em;}
.legal-draft-notice{
  background:var(--brass-tint); border:1px solid var(--brass);
  color:var(--brass-dim); font-weight:700; font-size:14px;
  border-radius:8px; padding:14px 18px; margin-bottom:28px;
}
.legal-updated{font-size:13px; color:var(--ink-dim); margin-bottom:40px;}
.legal-content{color:#999; font-size:14.5px; line-height:1.9;}
.legal-content h2{font-family:var(--serif); font-size:18.5px; font-weight:700; color:#999; margin:34px 0 10px;}
.legal-content h2:first-child{margin-top:0;}
.legal-content p{margin-bottom:10px;}
.legal-content ol, .legal-content ul{padding-left:20px; margin-bottom:10px;}
.legal-content li{margin-bottom:6px;}
.legal-back{
  display:inline-block; margin-top:44px; font-size:13.5px; font-weight:600;
  color:var(--brown); text-decoration:underline; text-underline-offset:2px;
}
.legal-back:hover{color:var(--brown-dim);}
@media (max-width:620px){
  .legal-title{font-size:26px;}
}
