:root{
  --brand:#7C3AED; --brand-hover:#6D28D9;
  --text-primary:#212124; --text-secondary:#6B6B6B; --text-tertiary:#868B94;
  --bg-page:#FFFFFF; --bg-gray:#F7F8F9; --border-line:#EAEBEE;
  --star:#F59E0B; --radius-card:12px; --max-width:720px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Malgun Gothic",sans-serif;
  color:var(--text-primary); background:var(--bg-gray);
  font-size:15px; line-height:1.55; -webkit-font-smoothing:antialiased;
}
a{color:inherit}
.container{max-width:var(--max-width);margin:0 auto;padding:0 16px;}
.page{background:var(--bg-page);max-width:var(--max-width);margin:0 auto;min-height:100vh;position:relative;padding-bottom:88px;}
h1,h2,h3{margin:0}
.section{padding:24px 16px;border-bottom:8px solid var(--bg-gray);}
.section-title{font-size:17px;font-weight:700;margin-bottom:14px;color:var(--text-primary);}

/* 1. 헤더 */
.site-header{
  position:sticky;top:0;z-index:40;background:var(--bg-page);
  border-bottom:1px solid var(--border-line);max-width:var(--max-width);margin:0 auto;
}
.site-header .top{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:12px;}
.brand-logo{font-weight:800;font-size:17px;color:var(--text-primary);text-decoration:none;letter-spacing:-0.3px;}
.header-call-btn{
  display:inline-flex;align-items:center;gap:6px;background:var(--brand);color:#fff;
  font-weight:700;font-size:13px;padding:9px 14px;border-radius:999px;text-decoration:none;white-space:nowrap;
}
.chip-row{display:flex;gap:8px;overflow-x:auto;padding:0 16px 12px;scrollbar-width:none;}
.chip-row::-webkit-scrollbar{display:none;}
.chip{
  flex:0 0 auto;background:var(--bg-gray);color:var(--text-secondary);font-size:13px;
  padding:7px 13px;border-radius:999px;white-space:nowrap;border:1px solid var(--border-line);
}

/* 2. 브레드크럼 */
.breadcrumb{padding:12px 16px 0;font-size:12px;color:var(--text-tertiary);}
.breadcrumb a{text-decoration:none;color:var(--text-tertiary);}
.breadcrumb .sep{margin:0 4px;}
.breadcrumb .current{color:var(--text-secondary);}

/* 3. 프로필 헤더 */
.profile-header{padding:20px 16px 24px;}
.profile-title{font-size:23px;font-weight:800;letter-spacing:-0.4px;margin-bottom:8px;}
.profile-meta{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-secondary);margin-bottom:12px;flex-wrap:wrap;}
.profile-meta .star{color:var(--star);}
.profile-meta .dot{color:var(--border-line);}
.tag-row{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap;}
.tag{background:var(--bg-gray);color:var(--text-secondary);font-size:12px;font-weight:600;padding:5px 10px;border-radius:6px;}
.cta-row{display:flex;gap:8px;}
.btn{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  padding:13px 12px;border-radius:var(--radius-card);font-weight:700;font-size:14.5px;
  text-decoration:none;border:none;cursor:pointer;
}
.btn-primary{background:var(--brand);color:#fff;}
.btn-secondary{background:var(--bg-gray);color:var(--text-primary);border:1px solid var(--border-line);}
.btn-copy{flex:0 0 auto;width:46px;background:var(--bg-gray);border:1px solid var(--border-line);color:var(--text-secondary);border-radius:var(--radius-card);font-size:13px;}

/* 4. 사진 갤러리 */
.gallery{display:flex;gap:8px;overflow-x:auto;padding:0 16px;scroll-snap-type:x mandatory;scrollbar-width:none;}
.gallery::-webkit-scrollbar{display:none;}
.gallery-item{
  flex:0 0 78%;aspect-ratio:4/3;border-radius:var(--radius-card);scroll-snap-align:start;
  background:linear-gradient(135deg,var(--bg-gray),#ECEDEF);display:flex;align-items:center;justify-content:center;
  color:var(--text-tertiary);font-size:13px;font-weight:600;border:1px solid var(--border-line);
}

/* 5. 단골 혜택 배너 */
.benefit-banner{
  margin:20px 16px 0;background:#F5F0FF;border:1px solid #E4D5FF;border-radius:var(--radius-card);
  padding:14px 16px;display:flex;align-items:center;gap:10px;font-size:13.5px;color:#5B21B6;font-weight:600;
}
.benefit-banner .ico{font-size:18px;}

/* 6. 연락/기본정보 */
.info-list{padding:20px 16px;}
.info-row{
  display:flex;align-items:center;justify-content:space-between;padding:13px 0;
  border-bottom:1px solid var(--border-line);font-size:14.5px;
}
.info-row:last-child{border-bottom:none;}
.info-label{color:var(--text-tertiary);font-size:12.5px;width:78px;flex:0 0 78px;}
.info-value{flex:1;color:var(--text-primary);font-weight:500;}
.info-action{color:var(--brand);font-weight:700;font-size:13px;background:none;border:none;cursor:pointer;}

/* 7. 소개 */
.intro-body{font-size:15px;color:var(--text-primary);line-height:1.75;}
.intro-body p{margin:0 0 14px;}
.intro-body p:last-child{margin-bottom:0;}
.intro-highlights{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap;}
.intro-highlights span{background:var(--bg-gray);border-radius:8px;padding:8px 12px;font-size:12.5px;color:var(--text-secondary);font-weight:600;}

/* 8. 견적 도우미 */
.helper-box{background:var(--bg-gray);border-radius:var(--radius-card);padding:18px 16px;}
.helper-step{margin-bottom:18px;}
.helper-step:last-child{margin-bottom:0;}
.helper-q{font-size:14px;font-weight:700;margin-bottom:10px;}
.option-grid{display:flex;gap:8px;flex-wrap:wrap;}
.option-btn{
  background:#fff;border:1.5px solid var(--border-line);color:var(--text-secondary);
  padding:10px 14px;border-radius:10px;font-size:13.5px;font-weight:600;cursor:pointer;
}
.option-btn.active{border-color:var(--brand);color:var(--brand);background:#F5F0FF;}
.helper-result{
  margin-top:16px;padding-top:16px;border-top:1px dashed var(--border-line);display:none;
}
.helper-result.show{display:block;}
.helper-result p{font-size:13.5px;color:var(--text-secondary);margin:0 0 10px;}

/* 9. 가격표 */
.price-list{display:flex;flex-direction:column;gap:10px;}
.price-card{
  display:flex;justify-content:space-between;align-items:center;padding:15px 16px;
  border:1px solid var(--border-line);border-radius:var(--radius-card);text-decoration:none;color:inherit;
}
.price-card.current{border-color:var(--brand);background:#F5F0FF;}
.price-name{font-weight:700;font-size:14.5px;margin-bottom:3px;}
.price-unit{font-size:12px;color:var(--text-tertiary);}
.price-amount{font-weight:800;color:var(--brand);font-size:15px;white-space:nowrap;}
.price-note{margin-top:12px;font-size:12.5px;color:var(--text-tertiary);text-align:center;}

/* 10. 후기 */
.review-summary{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.review-summary .big-star{font-size:22px;font-weight:800;color:var(--text-primary);}
.review-card{padding:16px 0;border-bottom:1px solid var(--border-line);}
.review-card:last-child{border-bottom:none;}
.review-top{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px;}
.review-name{font-weight:700;}
.review-region{color:var(--text-tertiary);}
.review-stars{color:var(--star);font-size:12px;letter-spacing:1px;}
.review-content{font-size:14px;color:var(--text-primary);line-height:1.6;}
.review-date{font-size:11.5px;color:var(--text-tertiary);margin-top:6px;}
.empty-state{
  text-align:center;padding:36px 16px;color:var(--text-tertiary);font-size:13.5px;
  background:var(--bg-gray);border-radius:var(--radius-card);
}

/* 11. FAQ */
.faq-item{border-bottom:1px solid var(--border-line);}
.faq-item:last-child{border-bottom:none;}
.faq-item summary{
  padding:15px 0;font-size:14.5px;font-weight:600;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+';font-size:18px;color:var(--text-tertiary);font-weight:400;}
.faq-item[open] summary::after{content:'−';}
.faq-item p{margin:0 0 16px;font-size:13.5px;color:var(--text-secondary);line-height:1.65;}

/* 12. 하단 고정 CTA */
.bottom-cta{
  position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:var(--max-width);
  background:#fff;border-top:1px solid var(--border-line);padding:10px 16px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:50;
  box-shadow:0 -2px 12px rgba(0,0,0,0.05);
}
.bottom-cta .brand-info{font-size:12px;color:var(--text-secondary);}
.bottom-cta .brand-info b{color:var(--text-primary);font-size:13.5px;}
.bottom-cta .call-big{
  background:var(--brand);color:#fff;font-weight:800;font-size:15px;padding:13px 22px;
  border-radius:var(--radius-card);text-decoration:none;white-space:nowrap;
}

/* 업체 카드 (biz-card) */
.biz-list{display:flex;flex-direction:column;gap:12px;}
.biz-card{
  border:1px solid var(--border-line);border-radius:var(--radius-card);padding:16px;
  background:var(--bg-page);
}
.biz-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.biz-card-name{font-size:16px;font-weight:700;color:var(--text-primary);}
.biz-card-rating{font-size:13px;color:var(--star);font-weight:700;}
.biz-card-tagline{font-size:12.5px;color:var(--text-tertiary);margin-bottom:12px;line-height:1.5;}
.biz-card-cta{display:flex;gap:8px;}
.biz-card .btn{padding:11px 10px;font-size:13.5px;}

/* 통합 업체 카드 (biz-card-full) */
.biz-card-full{padding:20px 16px;margin:0;border-radius:0;border-left:none;border-right:none;}
.biz-card-full .biz-card-header{margin-bottom:4px;}
.biz-card-full .biz-card-name{font-size:20px;}
.biz-card-full .biz-card-rating{font-size:14px;}
.biz-card-meta{
  display:flex;align-items:center;gap:5px;font-size:13px;color:var(--text-secondary);margin-bottom:10px;
}
.biz-card-meta .star{color:var(--star);}
.biz-card-meta .dot{color:var(--border-line);font-weight:300;}
.biz-card-full .biz-card-tagline{font-size:13px;margin-bottom:16px;}
.biz-card-full .biz-card-cta{margin-bottom:16px;}
.biz-card-full .btn-copy{width:52px;font-size:12px;}
.biz-card-info{border-top:1px solid var(--border-line);padding-top:4px;}
.biz-card-info .info-row:last-child{border-bottom:none;}

/* index.html 지역 칩/링크 */
.region-chip{
  padding:8px 14px;border:1px solid var(--border-line);border-radius:8px;
  font-size:14px;color:var(--text-primary);text-decoration:none;display:inline-block;
}
.region-chip:hover{background:var(--bg-gray);}
.sido-group{margin-bottom:16px;}
.sido-name{font-size:15px;color:var(--text-secondary);display:block;margin-bottom:8px;}
.sido-items{display:flex;flex-wrap:wrap;gap:8px;}
.svc-group{margin-bottom:16px;}
.svc-name{font-size:16px;font-weight:700;display:block;margin-bottom:8px;}
.link-row{
  padding:8px 0;font-size:14px;color:var(--text-primary);text-decoration:none;
  border-bottom:1px solid var(--border-line);display:flex;justify-content:space-between;
}
.link-row:hover{background:var(--bg-gray);}
.link-cta{color:var(--brand);font-size:13px;}

/* 13. 푸터 */
.site-footer{padding:24px 16px 100px;font-size:12px;color:var(--text-tertiary);line-height:1.8;}
.site-footer .foot-brand{font-weight:700;color:var(--text-secondary);font-size:13px;margin-bottom:6px;}

@media (min-width:760px){
  body{background:#EDEEF0;}
  .page{box-shadow:0 0 0 1px var(--border-line);}
}
