@charset "UTF-8";
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700;900&display=swap');

/* =====================================================
   CSS 변수 (디자인 토큰) — 한옥호텔 헤리티지 프리미엄
   ※ 변수명은 기존 호환을 위해 유지, 값만 골드/헤리티지 톤
   ===================================================== */
:root {
  /* 메인 컬러 — 채도 강한 밝은 그린 + 흰색 + 차콜 (황토 제거) */
  --sky:        #4CAF50;   /* 메인 그린 */
  --sky-dark:   #2E7D32;   /* 진한 그린 */
  --sky-deeper: #1B5E20;   /* 디퍼 다크 그린 */
  --sky-light:  #E8F5E9;   /* 옅은 그린 배경 */

  /* 그린 - 강조 포인트 */
  --green:      #4CAF50;   /* 메인 그린 */
  --green-dark: #2E7D32;   /* 짙은 그린 */
  --green-light:#E8F5E9;   /* 옅은 그린 배경 */
  --green-bright:#66BB6A;  /* 밝은 그린 */
  --green-vivid:#8BC34A;   /* 채도 강한 연두 (rgb(59,252,37) 톤) */

  /* 통합 팔레트 (황토 모두 흰색/그린으로 교체) */
  --hanji:       #FFFFFF;
  --hanji-warm:  #F8FAF7;
  --ivory:       #FFFFFF;
  --cream:       #F1F8E9;
  --gold:        #4CAF50;   /* 강조 액센트 → 그린 */
  --gold-deep:   #2E7D32;   /* 짙은 그린 */
  --gold-shine:  #66BB6A;   /* 밝은 그린 */
  --gold-pale:   #C5E1A5;   /* 옅은 연두 */
  --ink:         #1A1A1A;   /* 차콜 (텍스트용) */
  --ink-soft:    #2A2A2A;
  --celadon:     #4CAF50;

  --white:      #FFFFFF;
  --bg:         #FFFFFF;
  --surface:    #FFFFFF;
  --border:     #E5E5E5;
  --text-main:  #1A1A1A;
  --text-sub:   #4A4A4A;
  --text-muted: #888888;

  --shadow-sm:  0 1px 4px rgba(0,0,0,0.06);
  --shadow-md:  0 4px 20px rgba(0,0,0,0.08);
  --shadow-lg:  0 12px 40px rgba(0,0,0,0.12);
  --shadow-gold:0 8px 32px rgba(76,175,80,0.20);

  --radius-sm:  6px;
  --radius-md:  10px;
  --radius-lg:  16px;

  /* 폰트 — 고딕 계열 (가독성 우선) */
  --font-display: 'Pretendard', 'Noto Sans KR', sans-serif;
  --font-han:     'Pretendard', 'Noto Sans KR', sans-serif;
  --font-serif:   'Pretendard', 'Noto Sans KR', sans-serif;
  --font-sans:    'Pretendard', 'Noto Sans KR', sans-serif;
}

/* =====================================================
   기본 초기화
   ===================================================== */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  overflow-x: hidden; /* 가로 스크롤 방지 */
}
body {
  font-family: var(--font-serif);
  font-weight: 400;
  background: var(--bg);
  color: var(--text-main);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  width: 100%;
  max-width: 100vw;
  height: 100%;
  background-image: 
    radial-gradient(ellipse at top, rgba(102,187,106,0.04), transparent 60%),
    url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.6 0 0 0 0 0.5 0 0 0 0 0.3 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* =====================================================
   자물쇠 인트로
   ===================================================== */
#intro-screen {
  position: fixed; inset: 0;
  background:
    linear-gradient(rgba(0,0,0,0.62), rgba(0,0,0,0.62)),
    url('images/intro_bg.jpg') center/cover no-repeat;
  background-color: #1A1A1A; /* 이미지 로딩 전 fallback */
  z-index: 99999;
  display: flex; justify-content: center; align-items: center;
  opacity: 1; visibility: visible;
  transition: opacity 0.8s ease;
}
/* fade-out은 인라인 CSS에서 관리 */
/* 배경 글로우 */
#intro-screen::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(76,175,80,0.12) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(102,187,106,0.08) 0%, transparent 50%);
  pointer-events: none;
}
.intro-box { text-align: center; position: relative; }
.intro-title {
  color: #fff;
  font-size: clamp(18px, 3vw, 26px);
  font-weight: 700;
  margin-bottom: 36px;
  letter-spacing: -0.5px;
  opacity: 0.9;
}
#lock-img {
  width: 100px; cursor: pointer;
  filter: drop-shadow(0 0 20px rgba(76,175,80,0.5));
  transform-origin: center;
}
#lock-img:hover { filter: drop-shadow(0 0 30px rgba(76,175,80,0.8)); }

/* 자물쇠 열릴 때 — 커졌다 작아지는 애니메이션 */
@keyframes lock-open {
  0%   { transform: scale(1);    filter: drop-shadow(0 0 20px rgba(76,175,80,0.5)); }
  35%  { transform: scale(1.55); filter: drop-shadow(0 0 50px rgba(76,175,80,1)); }
  65%  { transform: scale(1.45); }
  85%  { transform: scale(0.9);  }
  100% { transform: scale(1.05); filter: drop-shadow(0 0 20px rgba(76,175,80,0.3)); }
}
#lock-img.is-opening {
  animation: lock-open 1.0s cubic-bezier(.4,0,.2,1) forwards;
  pointer-events: none;
}
.intro-hint {
  margin-top: 22px; font-size: 17px;
  color: #F5C842;
  animation: blink 1.8s infinite;
  letter-spacing: 1px;
  text-shadow: 0 0 12px rgba(245,200,66,0.4);
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0.3} }
.fade-out { opacity: 0 !important; visibility: hidden !important; }

/* =====================================================
   충격화면
   ===================================================== */
/* shock-screen은 인라인 CSS에서 관리 */
#shock-bg {
  position: absolute; inset: 0;
  background-image: url('images/shock.jpg');
  background-size: cover; background-position: center top;
  filter: brightness(0.5) saturate(0.8);
}
#shock-screen::after {
  content: ''; position: absolute; bottom: 0; left: 0;
  width: 100%; height: 70%;
  background: linear-gradient(to top, rgba(0,0,0,0.92) 0%, transparent 100%);
  z-index: 1;
}
#shock-content { position: relative; z-index: 2; text-align: center; padding-bottom: 64px; width: 100%; }
#shock-text-box { margin-bottom: 36px; }
#shock-line1, #shock-line2, #shock-line3, #shock-line4 {
  font-size: clamp(18px, 4vw, 28px); color: #fff;
  font-weight: 700; line-height: 1.8; margin: 0;
  opacity: 0; transform: translateY(18px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
#shock-line1.line-visible, #shock-line2.line-visible,
#shock-line3.line-visible, #shock-line4.line-visible { opacity: 1; transform: translateY(0); }
#shock-line4 { color: #4CAF50; font-size: clamp(20px, 4.5vw, 32px); font-weight: 900; }
#shock-cta-btn {
  opacity: 0; transform: translateY(22px) scale(0.95);
  transition: opacity 0.5s ease, transform 0.5s ease;
  pointer-events: none;
  background: linear-gradient(135deg, #4CAF50, #66BB6A);
  color: #fff; border: none; border-radius: 50px;
  padding: 16px 48px;
  font-size: clamp(16px, 3vw, 20px); font-weight: 800;
  cursor: pointer; letter-spacing: -0.3px;
  box-shadow: 0 8px 30px rgba(76,175,80,0.45);
}
#shock-cta-btn.btn-visible { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
#shock-cta-btn:hover { transform: scale(1.05); box-shadow: 0 12px 40px rgba(76,175,80,0.6); }

/* =====================================================
   상단 네비게이션
   ===================================================== */
.top-navbar {
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  /* 모바일에서는 아래 미디어쿼리로 제거 */
  border-bottom: 1px solid var(--border);
  height: 96px;
  position: sticky; top: 0; z-index: 1000;
  box-shadow: 0 2px 16px rgba(26,26,26,0.06);
}
.navbar-inner {
  max-width: 1200px;
  margin: 0 auto;
  height: 100%;
  padding: 0 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
/* 로고 + 전화 묶음 */
.logo-area {
  display: flex; align-items: center; gap: 16px;
  flex-shrink: 0;
}
.logo-link {
  display: flex; align-items: center;
  text-decoration: none;
}
.logo-img {
  height: 80px; width: auto;
  display: block;
}
.logo-text-fallback {
  display: none;
  font-family: var(--font-display);
  font-size: 20px; font-weight: 900;
  color: var(--sky-dark); letter-spacing: -0.5px;
}
/* 전화번호 */
.nav-phone {
  display: flex; align-items: center; gap: 6px;
  text-decoration: none;
  color: var(--sky-dark);
  font-size: 15px; font-weight: 800;
  letter-spacing: -0.3px;
  padding: 6px 14px;
  border: 1.5px solid var(--sky);
  border-radius: 50px;
  background: var(--sky-light);
  transition: all 0.2s;
  white-space: nowrap;
}
.nav-phone:hover { background: var(--sky-dark); color: white; border-color: var(--sky-dark); }
.nav-phone svg { flex-shrink: 0; }

/* PC 네비 메뉴 */
.main-menu ul { list-style: none; display: flex; gap: 4px; }
.main-menu a {
  display: block; padding: 8px 14px;
  text-decoration: none; color: var(--text-sub);
  font-weight: 600; font-size: 15px;
  border-radius: var(--radius-sm);
  transition: color 0.2s, background 0.2s;
}
.main-menu a:hover { color: var(--sky-dark); background: var(--sky-light); }
.main-menu li { position: relative; }

/* 모바일 햄버거 버튼 */
.mobile-menu-btn {
  display: none;
  flex-direction: column; gap: 5px;
  background: none; border: none; cursor: pointer;
  padding: 6px; flex-shrink: 0;
}
.mobile-menu-btn span {
  display: block; width: 24px; height: 2px;
  background: var(--text-main); border-radius: 2px;
  transition: all 0.3s;
}

/* =====================================================
   모바일 풀스크린 오버레이 메뉴
   ===================================================== */
#mobile-overlay-menu {
  position: fixed; inset: 0;
  background: linear-gradient(160deg, #1A1A1A 0%, #1B5E20 100%);
  z-index: 9999;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 0;
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s ease;
}
#mobile-overlay-menu.is-open {
  opacity: 1; pointer-events: auto;
}
#mobile-menu-close {
  position: absolute; top: 20px; right: 24px;
  background: rgba(255,255,255,0.12); border: none;
  border-radius: 50%; width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: white;
  transition: background 0.2s;
}
#mobile-menu-close:hover { background: rgba(255,255,255,0.22); }
.mobile-overlay-nav {
  display: flex; flex-direction: column;
  width: 100%; padding: 0 40px;
  gap: 0;
}
.mob-menu-item {
  display: flex; align-items: center; gap: 20px;
  padding: 22px 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  text-decoration: none;
  transition: padding-left 0.2s;
}
.mob-menu-item:last-child { border-bottom: none; }
.mob-menu-item:hover { padding-left: 8px; }
.mob-menu-num {
  font-family: var(--font-display);
  font-size: 13px; font-weight: 700;
  color: var(--sky); opacity: 0.7;
  width: 28px; flex-shrink: 0;
}
.mob-menu-label {
  font-size: 28px; font-weight: 900;
  color: white; letter-spacing: -1px;
}
.mob-call-btn {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  margin-top: 40px;
  background: linear-gradient(135deg, var(--green-dark), var(--green));
  color: white; text-decoration: none;
  font-size: 17px; font-weight: 800;
  padding: 16px 40px; border-radius: 50px;
  box-shadow: 0 6px 24px rgba(102,187,106,0.4);
}
body.menu-open { overflow: hidden; }

/* 반응형 네비 */
@media (max-width: 900px) {
  .main-menu { display: none; }
  .mobile-menu-btn { display: flex; }
  .nav-phone { display: none; }
  .navbar-inner { padding: 0 18px; }
  /* 모바일 로고 크게 — 네비바 높이 유지하면서 로고만 확대 */
  .logo-img { height: 72px; }
}
@media (max-width: 400px) {
  .logo-img { height: 64px; }
}

/* 드롭다운 */
.submenu {
  display: none; position: absolute;
  top: calc(100% + 8px); left: 50%;
  transform: translateX(-50%);
  background: var(--surface);
  box-shadow: var(--shadow-lg);
  border-radius: var(--radius-md);
  min-width: 150px; z-index: 1001;
  border: 1px solid var(--border);
  overflow: hidden;
}
.submenu li { margin: 0; padding: 0; }
.submenu a {
  display: block; padding: 12px 20px;
  font-size: 14px; font-weight: 500;
  color: var(--text-sub); border-bottom: 1px solid var(--border);
  border-radius: 0;
}
.submenu li:last-child a { border-bottom: none; }
.submenu a:hover { background: var(--sky-light); color: var(--sky-dark); }

@media (max-width: 600px) {
  .top-navbar { padding: 0 16px; }
  .main-menu ul { gap: 2px; }
  .main-menu a { padding: 8px 10px; font-size: 13px; }
}

/* =====================================================
   메인 배너
   ===================================================== */
.hero {
  position: relative; width: 100%; height: 100vh; min-height: 500px;
  background: #1A1A1A;
  display: flex; flex-direction: column;
  justify-content: center; align-items: center;
  overflow: hidden;
  /* 스냅 포인트 */
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
#hero-bg-container {
  position: absolute; inset: 0; z-index: 0;
  background: #1A1A1A;
  background-size: cover;
  background-position: center center;
  opacity: 0;
  transition: opacity 1.2s ease;
}
#hero-bg-container img,
#hero-bg-container video {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}
#hero-bg-container.hero-bg-visible {
  opacity: 1;
}
.hero-swiper { width: 100%; height: 100%; }
.slide-media { width: 100%; height: 100%; object-fit: cover; object-position: center center; display: block; }
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    135deg,
    rgba(27,94,32,0.25) 0%,
    rgba(26,26,26,0.45) 60%,
    rgba(102,187,106,0.1) 100%
  );
  z-index: 1;
}
/* 기하학 장식 */
.hero::before {
  content: ''; position: absolute;
  top: -60px; right: -60px;
  width: 320px; height: 320px;
  border-radius: 50%;
  border: 2px solid rgba(76,175,80,0.2);
  z-index: 2; pointer-events: none;
}
.hero::after {
  content: ''; position: absolute;
  bottom: -40px; left: 10%;
  width: 200px; height: 200px;
  border-radius: 50%;
  border: 1px solid rgba(102,187,106,0.2);
  z-index: 2; pointer-events: none;
}
.hero-content {
  position: relative; z-index: 10;
  color: white; text-align: center; padding: 0 24px;
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1s ease, transform 1s ease;
}
.hero-content.hero-visible {
  opacity: 1;
  transform: translateY(0);
}
.hero-content.hero-fadeout {
  opacity: 0;
  transform: translateY(-20px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.hero-content h1 {
  font-family: var(--font-display);
  font-size: clamp(28px, 5vw, 52px);
  font-weight: 900; letter-spacing: -1px;
  margin-bottom: 16px;
  text-shadow: 0 2px 20px rgba(0,0,0,0.4);
  line-height: 1.15;
}
.hero-content p {
  font-size: clamp(15px, 2vw, 19px);
  font-weight: 400; opacity: 0.88;
  text-shadow: 0 1px 8px rgba(0,0,0,0.4);
}
@media (max-width: 600px) {
  .hero { height: 100svh; min-height: 100svh; }
  .slide-media { object-position: center top; }
  #hero-bg-container img { object-position: center top; }
}

/* =====================================================
   필터 버튼
   ===================================================== */
.portfolio-filter {
  display: flex; flex-wrap: wrap;
  justify-content: center; gap: 8px;
  padding: 36px 20px 12px;
  max-width: 900px; margin: 0 auto;
}
.filter-btn {
  padding: 9px 22px;
  font-size: 14px; font-weight: 700;
  color: var(--text-sub);
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: 50px; cursor: pointer;
  transition: all 0.22s ease;
  letter-spacing: -0.2px;
}
.filter-btn:hover { border-color: var(--sky); color: var(--sky-dark); background: var(--sky-light); }
.filter-btn.active {
  background: var(--sky-dark); color: #fff;
  border-color: var(--sky-dark);
  box-shadow: 0 4px 14px rgba(27,94,32,0.3);
}

/* =====================================================
   바둑판 카테고리 카드 ★ 핵심 디자인
   ===================================================== */
.category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 18px;
  padding: 20px 24px 48px;
  max-width: 1080px; margin: 0 auto;
}
.category-card {
  position: relative;
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-md);
  text-decoration: none; color: var(--text-main);
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s;
  cursor: pointer;
  display: flex; flex-direction: column;
}
.category-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-lg);
  border-color: var(--sky);
}
/* 썸네일 영역 */
.card-thumb {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--sky-light);
  position: relative;
}
.card-thumb img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.4s ease;
}
.category-card:hover .card-thumb img { transform: scale(1.06); }
/* 이미지 없을 때 */
.card-thumb-empty {
  display: flex; align-items: center; justify-content: center;
}
.card-thumb-empty::after {
  content: '사진 준비중';
  font-size: 12px; color: var(--text-muted); font-weight: 600;
}
.card-thumb-empty img { display: none; }
/* 이미지 위 그라데이션 */
.card-thumb::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(to top, rgba(0,0,0,0.18), transparent);
  pointer-events: none;
}
/* 텍스트 영역 */
.card-body {
  padding: 14px 16px 16px;
  display: flex; flex-direction: column; gap: 6px;
  border-top: 2px solid transparent;
  transition: border-color 0.25s;
}
.category-card:hover .card-body {
  border-top-color: var(--sky);
}
.card-body h3 {
  font-size: 14px; font-weight: 700;
  color: var(--text-main); line-height: 1.45;
  word-break: keep-all; margin: 0;
}
.price-text {
  font-size: 13px; font-weight: 800;
  color: var(--sky-dark);
  background: var(--sky-light);
  padding: 3px 10px; border-radius: 20px;
  display: inline-block; align-self: flex-start;
}

/* =====================================================
   업체 소개 섹션
   ===================================================== */
.about-section {
  max-width: 1100px; margin: 0 auto;
  padding: 72px 24px 60px;
  position: relative;
}
/* 큰따옴표 장식 */
.about-section::before,
.about-section::after {
  font-family: Georgia, serif;
  font-size: 80px; font-weight: 900;
  color: var(--green); opacity: 0.25;
  position: absolute; line-height: 1;
}
.about-section::before {
  content: '\201C';
  top: 60px; left: 20px;
}
.about-section::after {
  content: '\201D';
  top: 60px; right: 20px;
}
.about-section h2 {
  font-family: 'Noto Sans KR', sans-serif;
  font-size: clamp(20px, 3vw, 30px);
  font-weight: 900; color: var(--text-main);
  text-align: center; margin-bottom: 48px;
  letter-spacing: -0.8px;
  line-height: 1.45;
  word-break: keep-all;
  position: relative;
}
.about-section h2 .highlight {
  color: var(--green-dark);
}
.about-section h2::after {
  content: '';
  display: block; margin: 16px auto 0;
  width: 52px; height: 4px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--sky), var(--green));
}
.about-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
}
.about-box {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 28px 24px;
  position: relative; overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform 0.22s, box-shadow 0.22s;
}
.about-box::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--sky), var(--green));
}
.about-box:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.about-box h4 {
  font-size: 13px; font-weight: 800;
  color: var(--green-dark);
  margin-bottom: 14px;
  font-family: var(--font-display);
  letter-spacing: 0.5px;
  text-transform: lowercase;
}
.about-box p { font-size: 15px; color: var(--text-sub); line-height: 1.8; }
.about-box p strong { color: var(--text-main); font-size: 17px; font-weight: 900; }

/* =====================================================
   고객 후기
   ===================================================== */
.review-section {
  background: linear-gradient(135deg, var(--sky-light) 0%, var(--green-light) 100%);
  padding: 72px 24px;
}
.review-section h2 {
  font-family: var(--font-display);
  font-size: clamp(22px, 3vw, 32px); font-weight: 900;
  text-align: center; color: var(--text-main);
  margin-bottom: 48px; letter-spacing: -0.5px;
}
.review-section h2::after {
  content: '';
  display: block; margin: 14px auto 0;
  width: 48px; height: 4px; border-radius: 2px;
  background: linear-gradient(90deg, var(--sky), var(--green));
}
/* 후기 슬라이더 */
.review-section { padding-bottom: 60px; }

.review-swiper {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 8px 24px 48px !important;
  overflow: visible !important;
}
.review-swiper .swiper-wrapper { align-items: flex-start; }

.review-card {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.9);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform 0.22s, box-shadow 0.22s;
  display: flex; flex-direction: column;
  height: auto !important; /* 높이 자동 — 이미지 길이 무관 */
}
.review-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }

/* 후기 이미지 — 원본 비율 그대로 */
.review-img-wrap {
  width: 100%;
  background: #f0f4f8;
  flex-shrink: 0;
}
.review-img {
  width: 100%; height: auto;
  object-fit: contain;
  display: block;
}

/* 텍스트 영역 */
.review-body {
  padding: 16px 18px 18px;
  position: relative;
}
.review-body::before {
  content: '"';
  position: absolute; top: 10px; left: 14px;
  font-size: 44px; line-height: 1;
  color: var(--sky); opacity: 0.12;
  font-family: Georgia, serif; font-weight: 900;
  pointer-events: none;
}
.review-card .stars { display: flex; gap: 2px; margin-bottom: 8px; }
.review-card .review-text {
  font-size: 13px; color: var(--text-sub);
  line-height: 1.7; margin-bottom: 12px;
  font-style: italic; word-break: keep-all;
}
.review-card .review-author {
  font-size: 12px; color: var(--text-muted);
  font-weight: 700; text-align: right;
}

/* 페이지네이션 */
.review-pagination {
  bottom: 16px !important;
}
.review-pagination .swiper-pagination-bullet {
  background: var(--sky-dark); opacity: 0.3;
}
.review-pagination .swiper-pagination-bullet-active {
  opacity: 1; background: var(--sky-dark);
}

/* =====================================================
   푸터
   ===================================================== */
.site-footer {
  background: #1A1A1A;
  color: #888888;
  padding: 0;
  font-size: 13px;
  line-height: 1.9;
}
.footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 28px 32px 32px;
}
.footer-top {
  display: flex; align-items: center; gap: 6px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  margin-bottom: 20px;
}
.footer-link {
  color: #E5E5E5; text-decoration: none;
  font-size: 13px; font-weight: 600;
  transition: color 0.2s;
}
.footer-link:hover { color: white; }
.footer-admin { color: var(--sky); }
.footer-admin:hover { color: var(--sky-light); }
.footer-divider {
  color: rgba(255,255,255,0.2);
  font-size: 12px; margin: 0 2px;
}
.footer-body {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
}
.footer-info { flex: 1; }
.footer-info p { margin: 0; color: #8a909e; }
.footer-company {
  font-weight: 700; color: #c0c8d8 !important;
  margin-bottom: 2px !important;
}
.footer-copy {
  margin-top: 12px !important;
  color: #6a7080 !important;
  font-size: 12px;
}
.footer-badges {
  display: flex; align-items: center;
  gap: 12px; flex-shrink: 0;
}
.footer-badge {
  height: 52px; width: auto;
  opacity: 0.85;
  transition: opacity 0.2s;
}
.footer-badge:hover { opacity: 1; }
.footer-logo {
  height: 100px; width: auto;
  opacity: 0.75;
  transition: opacity 0.2s;
  padding-right: 16px;
  border-right: 1px solid rgba(255,255,255,0.15);
  margin-right: 4px;
}
.footer-logo:hover { opacity: 1; }
@media (max-width: 600px) {
  .footer-inner { padding: 24px 18px; }
  .footer-body { flex-direction: column; align-items: flex-start; }
  .footer-badges { margin-top: 16px; }
}

/* =====================================================
   퀵메뉴 토글 (오른쪽 상단)
   ===================================================== */
.quick-menu {
  position: fixed; right: 20px; bottom: 24px; top: auto;
  display: flex; flex-direction: column;
  align-items: flex-end; z-index: 2000;
}
.quick-toggle-btn { display: none; }
.quick-items {
  display: flex; flex-direction: column-reverse;
  align-items: flex-end; gap: 8px;
}
.quick-btn {
  display: flex; align-items: center;
  justify-content: flex-end; gap: 9px;
  height: 42px; padding: 0 16px 0 14px;
  border-radius: 50px;
  text-decoration: none; color: white;
  font-weight: 700; font-size: 13px;
  border: none; cursor: pointer;
  box-shadow: var(--shadow-md);
  white-space: nowrap;
  transition: transform 0.2s ease, box-shadow 0.2s;
}
.quick-btn:hover { box-shadow: var(--shadow-lg); transform: translateX(-3px) scale(1.03); }
.quick-btn .icon { font-size: 16px; }
.quick-btn.youtube  { background: #FF0000; }
.quick-btn.blog     { background: #03C75A; }
.quick-btn.call     { background: var(--sky-dark); }
.quick-btn.chatbot-btn { background: linear-gradient(135deg, var(--sky-dark), var(--green-dark)); }

@media (max-width: 600px) {
  .quick-menu { right: 12px; bottom: 18px; top: auto; }
  .quick-btn { height: 38px; font-size: 12px; padding: 0 13px 0 12px; }
}


/* =====================================================
   챗봇 팝업 (메신저형)
   ===================================================== */

/* 뱃지 */
#chatbot-badge {
  position: absolute;
  top: -3px; right: -3px;
  width: 11px; height: 11px;
  background: #EF4444;
  border-radius: 50%;
  border: 2px solid white;
  display: block;
  animation: badge-pulse 1.8s infinite;
}
@keyframes badge-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.3); opacity: 0.7; }
}
#chatbot-open-btn { position: relative; }

/* 팝업 컨테이너 */
#chatbot-popup {
  position: fixed;
  right: 82px;
  top: 104px;
  width: min(680px, calc(100vw - 100px));
  height: min(900px, calc(100vh - 80px));
  background: #F2F4F6;
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(26,26,26,0.2), 0 4px 16px rgba(26,26,26,0.1);
  z-index: 9998;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--border);
  /* 닫힌 상태 */
  opacity: 0;
  transform: translateY(-12px) scale(0.97);
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s cubic-bezier(.4,0,.2,1);
  transform-origin: top right;
}
#chatbot-popup.cb-open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* 헤더 */
#chatbot-header {
  background: white;
  padding: 16px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}
.cb-header-left {
  display: flex; align-items: center; gap: 12px;
}
.cb-profile-wrap {
  position: relative; flex-shrink: 0;
}
.cb-profile-img {
  width: 46px; height: 46px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--sky-light);
}
.cb-profile-fallback {
  width: 46px; height: 46px; border-radius: 50%;
  background: linear-gradient(135deg, var(--sky-dark), var(--sky));
  display: none; align-items: center; justify-content: center;
}
.cb-online-dot {
  position: absolute; bottom: 2px; right: 2px;
  width: 11px; height: 11px;
  background: var(--green);
  border-radius: 50%;
  border: 2px solid white;
}
.cb-header-info {}
.cb-name {
  font-size: 15px; font-weight: 800;
  color: var(--text-main); margin: 0 0 2px;
}
.cb-status {
  font-size: 12px; color: var(--green-dark);
  font-weight: 600; margin: 0;
}
#chatbot-close-btn {
  background: var(--bg); border: 1px solid var(--border);
  border-radius: 50%; width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: var(--text-muted);
  transition: background 0.2s, color 0.2s;
  flex-shrink: 0;
}
#chatbot-close-btn:hover { background: var(--border); color: var(--text-main); }

/* 알림 배너 */
#cb-notice-bar {
  background: #FFF7ED;
  border-bottom: 1px solid #FED7AA;
  padding: 10px 18px;
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: #92400E; font-weight: 600;
  flex-shrink: 0;
}
.cb-notice-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #F97316; flex-shrink: 0;
}
#cb-notice-read {
  margin-left: auto; background: none; border: none;
  font-size: 12px; color: #F97316; font-weight: 700;
  cursor: pointer; text-decoration: underline;
}

/* 메시지 영역 */
#chatbot-messages {
  flex: 1; overflow-y: auto;
  padding: 20px 18px;
  display: flex; flex-direction: column; gap: 6px;
  scroll-behavior: smooth;
}
#chatbot-messages::-webkit-scrollbar { width: 4px; }
#chatbot-messages::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

/* 메시지 행 */
.cb-row {
  display: flex; align-items: flex-end; gap: 8px;
  margin-bottom: 4px;
}
.cb-row.user { flex-direction: row-reverse; }

.cb-msg-avatar {
  width: 34px; height: 34px; border-radius: 50%;
  object-fit: cover; flex-shrink: 0;
  border: 1.5px solid var(--border);
  align-self: flex-end;
}

.cb-bubble-wrap {
  display: flex; flex-direction: column;
  max-width: 72%;
}
.cb-row.user .cb-bubble-wrap { align-items: flex-end; }
.cb-row.bot .cb-bubble-wrap { align-items: flex-start; }

/* 말풍선 */
.cb-bubble {
  padding: 12px 16px;
  border-radius: 18px;
  font-size: 14px; line-height: 1.65;
  word-break: keep-all;
}
.cb-bubble.bot {
  background: white;
  color: var(--text-main);
  border-bottom-left-radius: 4px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.07);
}
.cb-bubble.user {
  background: var(--sky-dark);
  color: white;
  border-bottom-right-radius: 4px;
}
.cb-time {
  font-size: 11px; color: var(--text-muted);
  margin-top: 4px; padding: 0 4px;
}

/* 타이핑 인디케이터 */
.cb-typing-bubble {
  padding: 14px 18px;
  display: flex; align-items: center; gap: 5px;
}
.cb-typing-bubble span {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--text-muted);
  animation: cb-typing 1.2s infinite;
}
.cb-typing-bubble span:nth-child(2) { animation-delay: 0.2s; }
.cb-typing-bubble span:nth-child(3) { animation-delay: 0.4s; }
@keyframes cb-typing {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.5; }
  30% { transform: translateY(-5px); opacity: 1; }
}

/* 선택지 영역 */
#chatbot-options {
  padding: 12px 18px 16px;
  display: flex; flex-direction: column; gap: 7px;
  border-top: 1px solid var(--border);
  background: white;
  flex-shrink: 0;
  max-height: 260px; overflow-y: auto;
}
.cb-opt-btn {
  background: white;
  border: 1.5px solid var(--sky);
  color: var(--sky-dark);
  border-radius: 10px;
  padding: 11px 16px;
  font-size: 14px; font-weight: 600;
  cursor: pointer; text-align: left;
  transition: all 0.18s;
  animation: cb-opt-in 0.25s ease both;
}
@keyframes cb-opt-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.cb-opt-btn:hover {
  background: var(--sky-dark); color: white;
  border-color: var(--sky-dark);
  transform: translateX(4px);
}
.cb-end-btns { display: flex; flex-direction: column; gap: 8px; }
.cb-cta-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  background: linear-gradient(135deg, var(--green-dark), var(--green));
  color: white; border: none; border-radius: 10px;
  padding: 13px; font-size: 14px; font-weight: 800;
  cursor: pointer; text-decoration: none;
  box-shadow: 0 4px 14px rgba(102,187,106,0.35);
  transition: all 0.2s;
}
.cb-cta-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(102,187,106,0.45); }

/* 하단 푸터 */
#chatbot-footer {
  background: white;
  border-top: 1px solid var(--border);
  padding: 12px 18px;
  display: flex; flex-direction: column; gap: 8px;
  flex-shrink: 0;
}
.chatbot-footer-row { display: flex; gap: 10px; }
#chatbot-restart-btn {
  display: flex; align-items: center; gap: 6px;
  background: var(--bg); border: 1.5px solid var(--border);
  border-radius: 8px; padding: 9px 16px;
  font-size: 13px; font-weight: 700; color: var(--text-sub);
  cursor: pointer; transition: all 0.2s; flex: 1;
  justify-content: center;
}
#chatbot-restart-btn:hover { background: var(--border); color: var(--text-main); }
#chatbot-kakao-shortcut {
  display: flex; align-items: center; justify-content: center; gap: 7px;
  background: #FEE500; border: 1.5px solid #FEE500;
  border-radius: 8px; padding: 11px 16px;
  font-size: 13px; font-weight: 800; color: #3C1E1E;
  text-decoration: none; transition: all 0.2s;
}
#chatbot-kakao-shortcut:hover { background: #FDD835; border-color: #FDD835; }
#chatbot-kakao-shortcut svg { color: #3C1E1E; }
#chatbot-call-shortcut {
  display: flex; align-items: center; gap: 6px;
  background: var(--sky-light); border: 1.5px solid var(--sky);
  border-radius: 8px; padding: 9px 16px;
  font-size: 13px; font-weight: 700; color: var(--sky-dark);
  text-decoration: none; transition: all 0.2s; flex: 1;
  justify-content: center;
}
#chatbot-call-shortcut:hover { background: var(--sky-dark); color: white; border-color: var(--sky-dark); }

/* 모바일 - 하단 절반 bottom sheet */
@media (max-width: 768px) {
  #chatbot-popup {
    right: 0;
    left: 0;
    bottom: 0;
    top: auto;           /* 상단 고정 해제 */
    width: 100%;
    height: 65vh;        /* 푸터가 2줄이라 더 넉넉하게 */
    max-height: 65vh;
    border-radius: 20px 20px 0 0;   /* 위쪽 모서리만 둥글게 */
    transform-origin: bottom center;
    transform: translateY(100%);    /* 닫힌 상태: 아래로 숨김 */
    opacity: 1;                     /* 모바일은 opacity 대신 translateY로 제어 */
    box-shadow: 0 -8px 40px rgba(26,26,26,0.18);
  }
  #chatbot-popup.cb-open {
    transform: translateY(0);
    opacity: 1;
  }
  /* 상단에 핸들 바 표시 */
  #chatbot-popup::before {
    content: '';
    display: block;
    width: 40px; height: 4px;
    background: var(--border);
    border-radius: 2px;
    margin: 10px auto 0;
    flex-shrink: 0;
  }
}


/* =====================================================
   상세 페이지 헤더
   ===================================================== */
.detail-header {
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(10px); /* 모바일 제거 대상 */
  border-bottom: 1px solid var(--border);
  padding: 0 28px; height: 62px;
  display: flex; align-items: center;
  position: sticky; top: 0; z-index: 1000;
  box-shadow: var(--shadow-sm);
}
.logo-link {
  text-decoration: none; color: var(--sky-dark);
  font-family: var(--font-display);
  font-size: 22px; font-weight: 900; letter-spacing: -0.5px;
}

/* 쇼핑 레이아웃 */
.shop-layout {
  display: flex; max-width: 1200px;
  margin: 36px auto; gap: 36px;
  padding: 0 20px; align-items: flex-start;
}
.sidebar {
  width: 230px; background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md); overflow: hidden;
  position: sticky; top: 80px; flex-shrink: 0;
  box-shadow: var(--shadow-sm);
}
.sidebar a {
  display: block; padding: 14px 18px;
  color: var(--text-sub); text-decoration: none;
  border-bottom: 1px solid var(--border);
  font-size: 14px; font-weight: 500;
  transition: all 0.18s; position: relative;
}
.sidebar a::before {
  content: ''; position: absolute;
  left: 0; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(180deg, var(--sky), var(--green));
  transform: scaleY(0); transition: transform 0.2s;
}
.sidebar a:hover { background: var(--sky-light); color: var(--sky-dark); padding-left: 22px; }
.sidebar a:hover::before { transform: scaleY(1); }
.sidebar a.active { background: var(--sky-light); color: var(--sky-dark); font-weight: 700; padding-left: 22px; }
.sidebar a.active::before { transform: scaleY(1); }
.sidebar a:last-child { border-bottom: none; }
.content-area { flex-grow: 1; min-width: 0; }
.youtube-link-box {
  background: linear-gradient(135deg, #FFF1F1, #FFE4E4);
  border: 1.5px solid #FFCCCC; padding: 18px;
  text-align: center; border-radius: var(--radius-md);
  margin-bottom: 24px; transition: all 0.2s;
}
.youtube-link-box:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.youtube-link-box a {
  color: #CC0000; font-size: 18px; font-weight: 800;
  text-decoration: none; display: inline-flex;
  align-items: center; gap: 10px;
}
.detail-img-box img { width: 100%; height: auto; display: block; border-radius: var(--radius-sm); }

@media (max-width: 800px) {
  .shop-layout { flex-direction: column; gap: 18px; }
  .sidebar { width: 100%; position: static; }
}

/* =====================================================
   스크롤 페이드 인
   ===================================================== */
.fade-animate {
  opacity: 0; transform: translateY(32px);
  transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}
.fade-animate.is-visible { opacity: 1; transform: translateY(0); }

/* =====================================================
   서브 페이지 (업체정보, 포트폴리오 등)
   ===================================================== */
.sub-page-container {
  max-width: 900px; margin: 48px auto 100px;
  padding: 48px; background: var(--surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md); min-height: 500px;
  border: 1px solid var(--border);
}
.sub-page-title {
  font-family: var(--font-han);
  font-size: clamp(24px, 3vw, 32px); color: var(--text-main);
  text-align: center; padding-bottom: 22px;
  margin-bottom: 40px; font-weight: 700;
  letter-spacing: 3px;
  border-bottom: none;
  position: relative;
}
.sub-page-title::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 80px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold) 20%, var(--gold-shine) 50%, var(--gold) 80%, transparent);
}
.sub-page-content {
  font-size: 15px; color: var(--text-sub); line-height: 1.8;
}
.sub-page-content img {
  max-width: 100%; height: auto; display: block;
  margin: 20px auto; border-radius: var(--radius-sm);
}
.sub-page-content figure { margin: 30px 0 50px; text-align: center; }
.sub-page-content figcaption {
  margin-top: 14px; font-size: 13px;
  color: var(--text-muted); line-height: 1.5;
}
.sub-page-content p { margin-bottom: 24px; }
.content-section {
  padding: 56px 0;
  border-bottom: 1px dashed var(--border);
}
.content-section:last-child { border-bottom: none; }


  /* 팀 프로필 — 인물 중심 카드 */
.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 24px;
  margin-top: 8px;
}
.profile-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform 0.25s, box-shadow 0.25s;
  display: flex; flex-direction: column;
  text-align: center;
}
.profile-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
}

/* 사진 영역 — 정사각형 */
.profile-photo-wrap {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: linear-gradient(135deg, var(--sky-light), var(--green-light));
  position: relative;
  flex-shrink: 0;
}
.profile-photo {
  width: 100%; height: 100%;
  object-fit: cover; object-position: top;
  display: block;
  transition: transform 0.4s ease;
}
.profile-card:hover .profile-photo { transform: scale(1.04); }
.profile-photo-fallback {
  display: none;
  width: 100%; height: 100%;
  background: linear-gradient(135deg, var(--sky-dark), var(--sky));
  color: white; font-size: 52px; font-weight: 900;
  align-items: center; justify-content: center;
}

/* 이름/직급 배지 — 사진 하단 오버레이 */
.profile-overlay {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 32px 14px 12px;
  background: linear-gradient(transparent, rgba(10,15,30,0.75));
}
.profile-role-badge {
  display: inline-block;
  background: var(--sky-dark);
  color: white; font-size: 11px; font-weight: 800;
  padding: 3px 10px; border-radius: 50px;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}
.profile-name-overlay {
  display: block;
  font-size: 18px; font-weight: 900;
  color: white; letter-spacing: -0.3px;
}

/* 텍스트 정보 영역 */
.profile-info {
  padding: 16px 18px 20px;
  flex: 1; display: flex; flex-direction: column; gap: 8px;
}
.profile-career {
  font-size: 12px; font-weight: 700;
  color: var(--sky-dark);
  background: var(--sky-light);
  padding: 5px 10px; border-radius: 50px;
  display: inline-block;
  align-self: center;
}
.profile-desc {
  font-size: 13px; color: var(--text-sub);
  line-height: 1.65; margin: 0;
  word-break: keep-all;
}
.profile-skills {
  display: flex; flex-wrap: wrap;
  gap: 5px; justify-content: center;
  margin-top: 4px;
}
.skill-tag {
  font-size: 11px; color: var(--text-muted);
  background: var(--bg);
  border: 1px solid var(--border);
  padding: 3px 8px; border-radius: 4px;
}

/* 모바일: 가로형 1열 (이미지 좌, 텍스트 우) */
@media (max-width: 768px) {
  .team-grid { grid-template-columns: 1fr !important; gap: 14px; }
  .profile-card {
    flex-direction: row !important; align-items: stretch !important;
    text-align: left !important;
    border-radius: 14px;
    overflow: hidden;
  }
  .profile-photo-wrap {
    flex: 0 0 130px;
    width: 130px !important; height: auto !important;
    min-height: 160px;
    border-radius: 0 !important;
    aspect-ratio: unset !important;
  }
  .profile-photo,
  .profile-photo-fallback {
    border-radius: 0 !important;
    width: 100% !important; height: 100% !important;
  }
  .profile-overlay {
    padding: 8px 10px !important;
  }
  .profile-role-badge { font-size: 10px !important; padding: 3px 8px !important; }
  .profile-name-overlay { font-size: 14px !important; }
  .profile-info {
    flex: 1; min-width: 0;
    padding: 14px 16px !important;
    display: flex; flex-direction: column; gap: 6px;
    text-align: left !important;
    justify-content: center;
  }
  .profile-career {
    font-size: 12px !important;
    word-break: keep-all; line-height: 1.4;
  }
  .profile-desc {
    font-size: 13px !important;
    line-height: 1.5 !important;
    word-break: keep-all;
    margin: 0 !important;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .profile-skills {
    justify-content: flex-start !important;
    gap: 4px !important;
    flex-wrap: wrap;
  }
  .profile-skills .skill-tag {
    font-size: 11px !important;
    padding: 3px 8px !important;
  }
}
@media (max-width: 400px) {
  .profile-photo-wrap { flex: 0 0 110px; width: 110px !important; min-height: 140px; }
  .profile-info { padding: 12px 12px !important; }
  .profile-desc { font-size: 12px !important; -webkit-line-clamp: 3; }
  .profile-career { font-size: 11px !important; }
}

/* =====================================================
   가견적 계산기
   ===================================================== */
.calculator-section {
  padding: 64px 20px; background: var(--bg);
  display: flex; justify-content: center;
}
.calculator-box {
  background: var(--surface); max-width: 600px;
  width: 100%; padding: 44px 40px;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--border);
}
.calc-title {
  font-family: var(--font-display);
  font-size: 26px; font-weight: 900;
  color: var(--text-main); text-align: center; margin-bottom: 8px;
  letter-spacing: -0.5px;
}
.calc-desc { font-size: 14px; color: var(--text-muted); text-align: center; margin-bottom: 32px; }
.calc-steps {
  display: flex; align-items: center; justify-content: center;
  gap: 4px; margin-bottom: 28px; flex-wrap: wrap;
}
.calc-step {
  padding: 6px 14px; border-radius: 20px;
  font-size: 12px; font-weight: 700; color: var(--text-muted);
  background: var(--bg); border: 1.5px solid var(--border);
  transition: all 0.25s;
}
.calc-step.active { background: var(--sky-dark); color: #fff; border-color: var(--sky-dark); }
.calc-step.done { background: var(--green-light); color: var(--green-dark); border-color: var(--green); }
.calc-step-arrow { color: var(--border); font-size: 16px; }
.calc-group label {
  display: block; font-size: 15px; font-weight: 700;
  color: var(--text-main); margin-bottom: 12px;
}
.required { color: #EF4444; }
.step-btn-group {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px; margin-top: 8px;
}
.step-select-btn {
  padding: 13px 10px;
  background: var(--surface); border: 1.5px solid var(--border);
  border-radius: var(--radius-sm); font-size: 14px;
  font-weight: 700; color: var(--text-sub);
  cursor: pointer; text-align: center;
  transition: all 0.2s;
}
.step-select-btn:hover { border-color: var(--sky); background: var(--sky-light); color: var(--sky-dark); }
.checkbox-group {
  background: var(--bg); padding: 16px;
  border-radius: var(--radius-sm); border: 1px solid var(--border);
}
.check-label {
  display: flex; align-items: center; gap: 10px;
  font-size: 14px; font-weight: 500; color: var(--text-sub);
  margin-bottom: 10px; cursor: pointer;
}
.check-label:last-child { margin-bottom: 0; }
.calc-option { width: 16px; height: 16px; cursor: pointer; accent-color: var(--sky-dark); }
.calc-back-btn {
  display: inline-block; margin-top: 16px;
  background: none; border: 1px solid var(--border);
  border-radius: var(--radius-sm); padding: 9px 18px;
  font-size: 13px; color: var(--text-muted); cursor: pointer;
  transition: all 0.2s;
}
.calc-back-btn:hover { background: var(--bg); color: var(--text-sub); }
.calc-result-btn {
  display: inline-block; margin-top: 16px; margin-left: 8px;
  background: linear-gradient(135deg, var(--sky-dark), var(--sky));
  border: none; border-radius: var(--radius-sm); padding: 10px 22px;
  font-size: 14px; font-weight: 800; color: #fff; cursor: pointer;
  transition: all 0.2s; float: right;
  box-shadow: 0 4px 14px rgba(27,94,32,0.3);
}
.calc-result-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(27,94,32,0.4); }
.calc-result {
  background: linear-gradient(135deg, var(--sky-dark) 0%, var(--sky-deeper) 100%);
  padding: 32px; border-radius: var(--radius-md);
  text-align: center; color: white;
  margin-top: 28px; margin-bottom: 18px;
}
.calc-summary {
  background: rgba(255,255,255,0.12); border-radius: var(--radius-sm);
  padding: 12px 16px; margin-bottom: 16px;
  font-size: 13px; text-align: left; line-height: 1.8;
}
.calc-summary p { margin: 0; }
.result-label { font-size: 14px; opacity: 0.85; margin-bottom: 8px; }
.result-price { font-size: 42px; font-weight: 900; letter-spacing: -1px; }
.result-price .unit { font-size: 22px; font-weight: 700; margin-left: 4px; opacity: 0.85; }
.result-notice { font-size: 12px; opacity: 0.65; margin-top: 14px; word-break: keep-all; }
.call-btn {
  display: block; width: 100%; padding: 17px;
  background: linear-gradient(135deg, var(--green-dark), var(--green));
  color: white; text-align: center; font-size: 16px;
  font-weight: 800; text-decoration: none;
  border-radius: var(--radius-sm); transition: all 0.2s;
  box-shadow: 0 4px 16px rgba(102,187,106,0.35);
}
.call-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(102,187,106,0.45); }

/* float-btn (TOP 버튼 등) */
.float-btn {
  width: 44px; height: 44px; border-radius: 50%;
  display: flex; justify-content: center; align-items: center;
  font-size: 18px; font-weight: bold;
  text-decoration: none; border: none;
  box-shadow: var(--shadow-sm); cursor: pointer;
  transition: all 0.25s;
}
.float-btn:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.top-btn { background: var(--text-main); color: white; font-size: 14px; }

/* =====================================================
   반응형
   ===================================================== */
@media (max-width: 600px) {
  .sub-page-container { padding: 28px 18px; margin: 24px 12px 60px; }
  .calculator-box { padding: 28px 20px; }
  .category-grid { padding: 16px 14px 32px; gap: 12px; }
  .category-grid { grid-template-columns: repeat(2, 1fr); }
}

/* =====================================================
   지그재그 섹션 (모헤어 교체 필요성)
   ===================================================== */
.zigzag-section {
  background: var(--white);
  padding: 80px 0;
  border-top: 1px solid var(--border);
}

.zigzag-header {
  text-align: center;
  margin-bottom: 64px;
  padding: 0 24px;
  position: relative;
}
.zigzag-header::before,
.zigzag-header::after {
  font-family: Georgia, serif;
  font-size: 72px; font-weight: 900;
  color: var(--green); opacity: 0.22;
  position: absolute; line-height: 0.8; top: 0;
}
.zigzag-header::before { content: '\201C'; left: calc(50% - 260px); }
.zigzag-header::after  { content: '\201D'; right: calc(50% - 260px); }

.zigzag-header h2 {
  font-family: 'Noto Sans KR', sans-serif;
  font-size: clamp(24px, 3.5vw, 36px);
  font-weight: 900; color: var(--text-main);
  letter-spacing: -1px; line-height: 1.3;
}
.zigzag-header h2 strong { color: var(--green-dark); }
.zigzag-header h2::after {
  content: '';
  display: block; margin: 16px auto 0;
  width: 52px; height: 4px; border-radius: 2px;
  background: linear-gradient(90deg, var(--sky), var(--green));
}

/* 각 행 */
.zz-row {
  display: flex;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto 80px;
  padding: 0 32px;
  gap: 64px;
}
.zz-row:last-child { margin-bottom: 0; }

/* 텍스트 블록 */
.zz-text {
  flex: 1;
  min-width: 0;
}
.zz-badge {
  display: inline-block;
  background: var(--sky-light);
  color: var(--sky-dark);
  font-size: 12px; font-weight: 800;
  padding: 5px 14px; border-radius: 50px;
  border: 1px solid rgba(76,175,80,0.3);
  margin-bottom: 14px;
  letter-spacing: 0.3px;
}
.zz-label {
  font-size: 13px; font-weight: 700;
  color: var(--green-dark);
  margin-bottom: 10px;
  font-family: var(--font-display);
  letter-spacing: 0.5px;
  text-transform: uppercase;
}
.zz-title {
  font-size: clamp(18px, 2.2vw, 24px);
  font-weight: 900; color: var(--text-main);
  margin-bottom: 18px;
  line-height: 1.4; letter-spacing: -0.5px;
  word-break: keep-all;
}
.zz-desc {
  font-size: 15px; color: var(--text-sub);
  line-height: 1.85; word-break: keep-all;
}

/* 이미지 블록 */
.zz-image {
  flex: 1; min-width: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--sky-light);
}
.zz-image img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.5s ease;
}
.zz-row:hover .zz-image img { transform: scale(1.04); }

/* 이미지 없을 때 플레이스홀더 */
.zz-img-placeholder {
  display: flex; align-items: center; justify-content: center;
}
.zz-img-placeholder::after {
  content: '🖼 이미지 준비 중';
  font-size: 14px; color: var(--text-muted);
  font-weight: 600;
}
.zz-img-placeholder img { display: none; }

/* 이미지 좌측 구분선 (텍스트 우측일 때) */
.zz-row:not(.reverse) .zz-text {
  padding-right: 8px;
}
.zz-row.reverse .zz-text {
  padding-left: 8px;
}

/* 번호 장식 */
.zz-row:nth-child(1) .zz-image::before,
.zz-row:nth-child(2) .zz-image::before,
.zz-row:nth-child(3) .zz-image::before,
.zz-row:nth-child(4) .zz-image::before {
  position: absolute; top: 16px; right: 16px;
  z-index: 1;
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255,255,255,0.9);
  display: flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 15px; color: var(--sky-dark);
  box-shadow: var(--shadow-sm);
}
.zz-row:nth-child(1) .zz-image::before { content: '01'; }
.zz-row:nth-child(2) .zz-image::before { content: '02'; }
.zz-row:nth-child(3) .zz-image::before { content: '03'; }
.zz-row:nth-child(4) .zz-image::before { content: '04'; }

/* 모바일: 세로 배치 */
@media (max-width: 768px) {
  .zigzag-section { padding: 52px 0; }

  .zigzag-header { margin-bottom: 40px; padding: 0 20px; }
  .zigzag-header::before,
  .zigzag-header::after { display: none; }

  /* reverse 포함 모든 행 → 세로 단일 컬럼 */
  .zz-row,
  .zz-row.reverse {
    flex-direction: column;   /* 항상 위→아래 */
    gap: 20px;
    padding: 0 18px;
    margin-bottom: 48px;
  }

  /* reverse 행: 이미지가 HTML상 첫 번째인데 모바일에서는 텍스트를 위로 */
  .zz-row.reverse .zz-text { order: -1; }  /* 텍스트 먼저 */
  .zz-row.reverse .zz-image { order: 1; }  /* 이미지 다음 */

  /* 이미지 비율 → 모바일에서 더 크게 */
  .zz-image {
    aspect-ratio: 4 / 3;   /* 16:9보다 키 큰 비율로 더 크게 */
    width: 100%;
  }

  /* 텍스트 패딩 초기화 */
  .zz-row:not(.reverse) .zz-text,
  .zz-row.reverse .zz-text { padding: 0; }

  /* 번호 배지 크기 */
  .zz-row:nth-child(1) .zz-image::before,
  .zz-row:nth-child(2) .zz-image::before,
  .zz-row:nth-child(3) .zz-image::before,
  .zz-row:nth-child(4) .zz-image::before {
    width: 30px; height: 30px; font-size: 12px;
    top: 10px; right: 10px;
  }

  .zz-title { font-size: 17px; }
  .zz-desc  { font-size: 14px; }
}

/* =====================================================
   SVG 별점
   ===================================================== */
.stars {
  display: flex; gap: 3px;
  margin-bottom: 12px;
}
.star-icon {
  color: #F59E0B;
  flex-shrink: 0;
}

/* =====================================================
   퀵메뉴 SVG 아이콘
   ===================================================== */
.qicon {
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.qicon-n {
  font-size: 14px; font-weight: 900;
  color: white; line-height: 1;
  font-family: 'Arial Black', sans-serif;
}
/* 토글 버튼 열렸을 때 X로 변환 */
.quick-toggle-btn.is-open svg line:first-child {
  transform: rotate(45deg) translate(0, 0);
  transform-origin: center;
}
.quick-toggle-btn.is-open svg line:last-child {
  transform: rotate(-45deg) translate(0, 0);
  transform-origin: center;
}

/* =====================================================
   지그재그 배지 (이모지 없는 버전)
   ===================================================== */
.zz-badge {
  display: inline-block;
  background: var(--sky-light);
  color: var(--sky-dark);
  font-size: 11px; font-weight: 800;
  padding: 4px 12px; border-radius: 50px;
  border: 1px solid rgba(76,175,80,0.3);
  margin-bottom: 12px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

/* =====================================================
   모바일 바둑판 2열 유지
   ===================================================== */
@media (max-width: 600px) {
  .category-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px; padding: 14px 14px 32px;
  }
  .card-body h3 { font-size: 13px; }
}

/* 모바일 챗봇 내부 레이아웃 조정 */
@media (max-width: 768px) {
  #chatbot-messages {
    padding: 14px 14px;
  }
  #chatbot-options {
    max-height: 160px;
    padding: 10px 14px 12px;
  }
  #chatbot-footer {
    padding: 10px 14px;
  }
  .cb-opt-btn {
    padding: 10px 14px;
    font-size: 13px;
  }
  #chatbot-header {
    padding: 12px 16px;
  }
  .cb-profile-img,
  .cb-profile-fallback {
    width: 38px; height: 38px;
  }
}

/* =====================================================
   견적 바로가기 CTA (about 섹션 하단)
   ===================================================== */
.estimate-cta {
  margin-top: 52px;
  background: linear-gradient(135deg, var(--sky-dark) 0%, var(--sky-deeper) 60%, var(--green-dark) 100%);
  border-radius: var(--radius-lg);
  padding: 32px 36px;
  box-shadow: 0 8px 32px rgba(27,94,32,0.25);
}
.estimate-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.estimate-cta-text {
  display: flex; flex-direction: column; gap: 6px;
}
.estimate-cta-text strong {
  font-size: 20px; font-weight: 900;
  color: white; letter-spacing: -0.5px;
}
.estimate-cta-text span {
  font-size: 14px; color: rgba(255,255,255,0.75);
}
.estimate-cta-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: white;
  color: var(--sky-dark);
  font-size: 15px; font-weight: 800;
  padding: 14px 28px; border-radius: 50px;
  text-decoration: none; white-space: nowrap;
  transition: all 0.2s;
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
  flex-shrink: 0;
}
.estimate-cta-btn:hover {
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}
@media (max-width: 600px) {
  .estimate-cta { padding: 24px 20px; }
  .estimate-cta-inner { flex-direction: column; align-items: flex-start; }
  .estimate-cta-btn { width: 100%; justify-content: center; }
  .estimate-cta-text strong { font-size: 17px; }
}

/* =====================================================
   퀵메뉴 툴팁 말풍선
   ===================================================== */
#quick-tooltip {
  position: absolute;
  right: 62px;
  top: 0;
  background: white;
  color: var(--text-main);
  font-size: 13px; font-weight: 600;
  line-height: 1.5;
  padding: 12px 16px;
  border-radius: 12px;
  border-radius: 12px 12px 0 12px;
  box-shadow: 0 4px 20px rgba(26,26,26,0.15);
  border: 1px solid var(--border);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transform: translateX(8px) scale(0.95);
  transition: opacity 0.3s ease, transform 0.3s ease;
  z-index: 10;
}
#quick-tooltip.show {
  opacity: 1;
  transform: translateX(0) scale(1);
}
/* 말풍선 꼬리 */
.tooltip-arrow {
  position: absolute;
  right: -7px; top: 14px;
  width: 0; height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 7px solid white;
  filter: drop-shadow(1px 0 1px rgba(0,0,0,0.08));
}
/* quick-menu 위치 (우하단 고정) */
.quick-menu { position: fixed; right: 20px; bottom: 24px; top: auto; }

/* =====================================================
   유튜브 embed 플레이어
   ===================================================== */
.yt-embed-wrap {
  margin-bottom: 28px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.yt-embed-label {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  font-size: 14px; font-weight: 700;
  color: var(--text-sub);
  background: var(--bg);
}
/* 16:9 비율 유지 */
.yt-embed-container {
  position: relative;
  width: 100%;
  padding-top: 56.25%;  /* 16:9 */
  background: #000;
}
.yt-embed-container iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  border: none;
  display: block;
}
.yt-channel-link {
  display: flex; align-items: center; justify-content: flex-end;
  gap: 6px;
  padding: 10px 16px;
  font-size: 13px; font-weight: 600;
  color: var(--text-muted);
  text-decoration: none;
  border-top: 1px solid var(--border);
  transition: color 0.2s;
}
.yt-channel-link:hover { color: #CC0000; }

/* =====================================================
   모바일 성능 최적화
   ===================================================== */
@media (max-width: 768px) {
  /* blur 효과 제거 — 모바일 GPU 부하 최대 원인 */
  .top-navbar,
  .detail-header {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: rgba(255,255,255,0.98) !important;
  }
  /* 서브페이지 헤더 로고도 크게 */
  .detail-header .logo-img { height: 70px; }

  /* 카드 호버 애니메이션 비활성화 */
  .category-card:hover { transform: none; }
  .category-card:hover .card-thumb img { transform: none; }
  .about-box:hover,
  .review-card:hover,
  .profile-card:hover,
  .zz-row:hover .zz-image img { transform: none; }

  /* 페이드 인 애니메이션 단순화 */
  .fade-animate {
    transition: opacity 0.4s ease;
    transform: none !important;
  }
  .fade-animate.is-visible {
    transform: none !important;
  }

  /* will-change로 합성 레이어 최적화 */
  #intro-screen,
  #shock-screen { will-change: opacity; }
}

/* 모바일 이미지 최적화 — 과도한 리사이징 방지 */
@media (max-width: 768px) {
  .hero { height: 100svh; }
  #hero-bg-container img,
  #hero-bg-container video { image-rendering: auto; }

  /* 인트로/충격 배경 — 모바일은 center 고정 */
  #intro-screen { background-attachment: scroll !important; }
  #shock-bg { background-attachment: scroll !important; }
}

/* 스플래시 CSS는 index.html 인라인으로 이동 */
/* 프로그레스바 */
.splash-bar-wrap {
  width: 200px; height: 3px;
  background: rgba(255,255,255,0.12);
  border-radius: 2px; overflow: hidden;
}
.splash-bar {
  height: 100%; width: 0%;
  background: linear-gradient(90deg, var(--sky), var(--green));
  border-radius: 2px;
  transition: width 0.3s ease;
}
.splash-msg {
  font-size: 13px; color: rgba(255,255,255,0.4);
  letter-spacing: 1px; margin: 0;
}

/* =====================================================
   연혁 스타일
   ===================================================== */
.history-headline {
  font-size: clamp(16px, 2.5vw, 20px);
  color: var(--text-sub); line-height: 1.7;
  text-align: center; margin-bottom: 48px;
  padding: 24px 28px;
  background: var(--sky-light);
  border-radius: var(--radius-md);
  border-left: 4px solid var(--sky);
}
.history-headline strong {
  color: var(--sky-dark); font-weight: 900;
}
.history-block {
  margin-bottom: 40px;
  padding-bottom: 40px;
  border-bottom: 1px dashed var(--border);
}
.history-block:last-child { border-bottom: none; margin-bottom: 0; }
.history-era {
  display: inline-block;
  background: linear-gradient(135deg, var(--sky-dark), var(--sky));
  color: white; font-size: 12px; font-weight: 800;
  padding: 4px 14px; border-radius: 50px;
  letter-spacing: 1px; margin-bottom: 8px;
}
.history-period {
  font-size: 17px; font-weight: 800;
  color: var(--text-main); margin-bottom: 16px;
  letter-spacing: -0.3px;
}
.history-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 12px;
}
.history-list li {
  display: flex; align-items: flex-start; gap: 14px;
  font-size: 14px; color: var(--text-sub); line-height: 1.7;
}
.history-year {
  flex-shrink: 0;
  background: var(--green-light);
  color: var(--green-dark);
  font-size: 12px; font-weight: 800;
  padding: 3px 10px; border-radius: 20px;
  border: 1px solid var(--green);
  margin-top: 2px;
}

/* 오시는 길 */
.location-address {
  display: flex; align-items: center; gap: 8px;
  font-size: 15px; font-weight: 700;
  color: var(--text-main); margin-bottom: 20px;
  padding: 14px 18px;
  background: var(--sky-light);
  border-radius: var(--radius-sm);
  border: 1px solid rgba(76,175,80,0.3);
}
.location-address svg { color: var(--sky-dark); flex-shrink: 0; }
.map-wrap {
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}

/* =====================================================
   상세페이지 — 도면 + 상세정보 + 가격표
   ===================================================== */

/* 도면 영역 */
.blueprint-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm);
}
.blueprint-label {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 16px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  font-size: 14px; font-weight: 700; color: var(--text-sub);
}
.blueprint-img-wrap {
  min-height: 200px;
  display: flex; align-items: center; justify-content: center;
}
#blueprint-img {
  width: 100%; height: auto;
  display: none;
}
.blueprint-placeholder {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 12px; padding: 48px;
  color: var(--text-muted);
}
.blueprint-placeholder p { font-size: 14px; margin: 0; }

/* 상세 정보 */
.dp-summary {
  background: linear-gradient(135deg, var(--sky-light), var(--green-light));
  border: 1px solid rgba(76,175,80,0.25);
  border-radius: var(--radius-md);
  padding: 18px 22px;
  font-size: 15px; font-weight: 600;
  color: var(--sky-dark); line-height: 1.7;
  margin-bottom: 20px;
}
.dp-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px; margin-bottom: 28px;
}
.dp-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 18px 16px;
  box-shadow: var(--shadow-sm);
}
.dp-card-title {
  font-size: 13px; font-weight: 800;
  color: var(--sky-dark); margin-bottom: 12px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  font-family: var(--font-display);
}
.dp-features {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.dp-features li {
  font-size: 13px; color: var(--text-sub);
  display: flex; align-items: flex-start; gap: 8px;
}
.dp-features li::before {
  content: '▸'; color: var(--sky); flex-shrink: 0;
  margin-top: 1px;
}
.dp-steps { display: flex; flex-direction: column; gap: 10px; }
.dp-step {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 13px; color: var(--text-sub);
}
.dp-step-num {
  flex-shrink: 0;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--sky-dark); color: white;
  font-size: 11px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  margin-top: 1px;
}
.dp-highlight {
  font-size: 18px; font-weight: 900;
  color: var(--sky-dark); margin: 4px 0 0;
}
.dp-highlight.green { color: var(--green-dark); }

/* 가격표 */
.price-table-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 28px 24px;
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm);
}
.price-table-title {
  font-size: 17px; font-weight: 900;
  color: var(--text-main); margin-bottom: 6px;
  letter-spacing: -0.3px;
}
.price-notice {
  font-size: 12px; color: var(--text-muted);
  margin-bottom: 16px;
}
.price-table {
  width: 100%; border-collapse: collapse;
  font-size: 14px;
}
.price-table th {
  background: var(--sky-dark); color: white;
  padding: 10px 16px; text-align: left;
  font-weight: 700; font-size: 13px;
}
.price-table th:last-child { text-align: right; }
.price-table td {
  padding: 12px 16px; border-bottom: 1px solid var(--border);
  color: var(--text-sub);
}
.price-table td:last-child { text-align: right; font-weight: 700; color: var(--sky-dark); }
.price-table tr:last-child td { border-bottom: none; }
.price-table tr:hover td { background: var(--sky-light); }
.price-special td { color: var(--green-dark) !important; }
.price-special td:last-child { color: var(--green-dark) !important; }

/* 점검 프로세스 */
.inspection-info {
  background: var(--bg);
  border-radius: var(--radius-sm);
  padding: 18px 20px;
  border: 1px solid var(--border);
}
.inspection-time {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 700;
  color: var(--sky-dark); margin-bottom: 14px;
}
.inspection-list {
  padding-left: 20px; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.inspection-list li {
  font-size: 14px; color: var(--text-sub); line-height: 1.6;
}

/* 하단 CTA 버튼 */
.detail-cta-btn {
  display: flex; align-items: center; justify-content: center;
  gap: 10px;
  background: linear-gradient(135deg, var(--green-dark), var(--green));
  color: white; text-decoration: none;
  font-size: 17px; font-weight: 800;
  padding: 18px; border-radius: var(--radius-md);
  margin-bottom: 40px;
  box-shadow: 0 6px 20px rgba(102,187,106,0.35);
  transition: all 0.2s;
}
.detail-cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(102,187,106,0.45);
}

/* 모바일 */
@media (max-width: 600px) {
  .dp-grid { grid-template-columns: 1fr; }
  .price-table-wrap { padding: 20px 14px; }
}

/* =====================================================
   상세페이지 쿠팡형 레이아웃
   ===================================================== */

/* 히어로 */
.dp-hero {
  background: linear-gradient(135deg, #1A1A1A 0%, #1B5E20 100%);
  border-radius: var(--radius-lg);
  padding: 40px 40px;
  margin-bottom: 24px;
  position: relative; overflow: hidden;
}
.dp-hero::after {
  content: '';
  position: absolute; top: -40px; right: -40px;
  width: 200px; height: 200px; border-radius: 50%;
  border: 2px solid rgba(76,175,80,0.15);
  pointer-events: none;
}
.dp-hero-tag {
  display: inline-block;
  background: rgba(76,175,80,0.2);
  border: 1px solid rgba(76,175,80,0.4);
  color: #66BB6A; font-size: 12px; font-weight: 700;
  padding: 4px 12px; border-radius: 50px;
  letter-spacing: 0.5px; margin-bottom: 14px;
}
.dp-hero-title {
  font-size: clamp(22px, 3vw, 30px); font-weight: 900;
  color: white; line-height: 1.35;
  letter-spacing: -0.8px; margin-bottom: 12px;
}
.dp-hero-title strong { color: #4CAF50; }
.dp-hero-sub {
  font-size: 14px; color: rgba(255,255,255,0.7);
  line-height: 1.75; margin: 0; word-break: keep-all;
}

/* 통계 카드 */
.dp-stats {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 12px; margin-bottom: 32px;
}
.dp-stat {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-md);
  padding: 20px 12px; text-align: center;
  box-shadow: var(--shadow-sm);
  position: relative; overflow: hidden;
}
.dp-stat::after {
  content: ''; position: absolute;
  bottom: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--sky), var(--green));
}
.dp-stat strong {
  display: block;
  font-size: clamp(18px, 2.5vw, 24px); font-weight: 900;
  color: var(--sky-dark); margin-bottom: 6px;
  letter-spacing: -0.5px;
}
.dp-stat span { font-size: 12px; color: var(--text-muted); font-weight: 600; }

/* 섹션 구분선 */
.dp-section-divider {
  display: flex; align-items: center; gap: 14px;
  margin: 36px 0 20px;
}
.dp-section-divider::before,
.dp-section-divider::after {
  content: ''; flex: 1; height: 1px;
  background: var(--border); display: block;
}
.dp-section-divider span {
  font-size: 12px; font-weight: 800;
  color: var(--text-muted); white-space: nowrap;
  letter-spacing: 1px; text-transform: uppercase;
  font-family: var(--font-display);
  flex-shrink: 0;
}

/* 특징 4카드 */
.dp-features-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 14px; margin-bottom: 8px;
}
.dp-feature-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 22px 20px;
  box-shadow: var(--shadow-sm);
  transition: transform 0.2s, box-shadow 0.2s;
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; gap: 10px;
}
.dp-feature-card::before {
  content: ''; position: absolute;
  top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--sky), var(--green));
}
.dp-feature-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.dp-feature-icon { font-size: 28px; line-height: 1; display: block; flex-shrink: 0; }
.dp-feature-card h4 {
  font-size: 15px; font-weight: 800;
  color: var(--text-main); margin: 0;
  word-break: keep-all; line-height: 1.4;
}
.dp-feature-card p { font-size: 13px; color: var(--text-sub); line-height: 1.65; margin: 0; word-break: keep-all; }

/* 전후 비교 */
.dp-before-after {
  display: flex; align-items: flex-start; gap: 16px;
  margin-bottom: 8px;
}
.dp-ba-card {
  flex: 1; border-radius: var(--radius-md);
  overflow: hidden; border: 1.5px solid var(--border);
  min-width: 0;
}
.dp-ba-card.before { border-color: #FCA5A5; }
.dp-ba-card.after  { border-color: var(--green); }
.dp-ba-label { padding: 8px 14px; font-size: 13px; font-weight: 800; letter-spacing: 1px; }
.before-label { background: #FEE2E2; color: #DC2626; }
.after-label  { background: var(--green-light); color: var(--green-dark); }
.dp-ba-img {
  overflow: hidden; background: var(--bg);
  display: flex; align-items: center; justify-content: center;
}
.dp-ba-img img { width: 100%; height: auto; object-fit: contain; display: block; max-height: 400px; }
.dp-ba-placeholder::after { content: '사진 준비 중'; font-size: 12px; color: var(--text-muted); }
.dp-ba-card p {
  padding: 10px 14px; font-size: 12px;
  color: var(--text-sub); line-height: 1.6; margin: 0;
  border-top: 1px solid var(--border);
}
.dp-ba-arrow { font-size: 24px; color: var(--sky-dark); font-weight: 900; flex-shrink: 0; align-self: center; }

/* 시공 프로세스 */
.dp-process {
  display: flex; flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.dp-proc-step {
  display: flex; align-items: stretch;
  border-bottom: 1px solid var(--border);
  transition: background 0.2s;
}
.dp-proc-step:last-child { border-bottom: none; }
.dp-proc-step:hover { background: var(--sky-light); }
.dp-proc-num {
  width: 56px; flex-shrink: 0;
  background: linear-gradient(180deg, var(--sky-dark), var(--sky));
  color: white; font-size: 18px; font-weight: 900;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
}
.dp-proc-text {
  flex: 1; padding: 18px 22px;
  font-size: 15px; font-weight: 600;
  color: var(--text-main); line-height: 1.5;
  display: flex; align-items: center;
}
.dp-proc-arrow { display: none; }

/* 자재 */
.dp-material {
  background: linear-gradient(135deg, var(--sky-light), var(--green-light));
  border: 1px solid rgba(76,175,80,0.2);
  border-radius: var(--radius-md);
  padding: 20px 22px;
  display: flex; align-items: center; gap: 16px;
}
.dp-material-icon { font-size: 36px; flex-shrink: 0; }
.dp-material h4 { font-size: 14px; font-weight: 800; color: var(--sky-dark); margin-bottom: 4px; }
.dp-material p { font-size: 13px; color: var(--text-sub); margin: 0; }

/* 시공 정보 요약 — 가로 3열 */
.dp-info-row {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 12px; margin-bottom: 8px;
}
.dp-info-item {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 16px; text-align: center;
}
.dp-info-label {
  display: block; font-size: 12px;
  color: var(--text-muted); font-weight: 600;
  margin-bottom: 6px; letter-spacing: 0.3px;
}
.dp-info-item strong { display: block; font-size: 16px; font-weight: 900; color: var(--sky-dark); }
.dp-info-item strong.green { color: var(--green-dark); }
.dp-info-item strong.price { color: #E53E3E; font-size: 14px; }

/* 모바일 */
@media (max-width: 600px) {
  .dp-stats { grid-template-columns: repeat(2, 1fr); }
  .dp-features-grid { grid-template-columns: 1fr; }
  .dp-hero { padding: 28px 24px; }
  .dp-info-row { grid-template-columns: repeat(3, 1fr); }
}

/* =====================================================
   상세페이지 — 도면 + 상세정보 + 가격표
   ===================================================== */

/* 도면 영역 */
.blueprint-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm);
}
.blueprint-label {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 16px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  font-size: 14px; font-weight: 700; color: var(--text-sub);
}
.blueprint-img-wrap {
  min-height: 200px;
  display: flex; align-items: center; justify-content: center;
}
#blueprint-img {
  width: 100%; height: auto;
  display: none;
}
.blueprint-placeholder {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 12px; padding: 48px;
  color: var(--text-muted);
}
.blueprint-placeholder p { font-size: 14px; margin: 0; }

/* 상세 정보 */
.dp-summary {
  background: linear-gradient(135deg, var(--sky-light), var(--green-light));
  border: 1px solid rgba(76,175,80,0.25);
  border-radius: var(--radius-md);
  padding: 18px 22px;
  font-size: 15px; font-weight: 600;
  color: var(--sky-dark); line-height: 1.7;
  margin-bottom: 20px;
}
.dp-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px; margin-bottom: 28px;
}
.dp-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 18px 16px;
  box-shadow: var(--shadow-sm);
}
.dp-card-title {
  font-size: 13px; font-weight: 800;
  color: var(--sky-dark); margin-bottom: 12px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  font-family: var(--font-display);
}
.dp-features {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.dp-features li {
  font-size: 13px; color: var(--text-sub);
  display: flex; align-items: flex-start; gap: 8px;
}
.dp-features li::before {
  content: '▸'; color: var(--sky); flex-shrink: 0;
  margin-top: 1px;
}
.dp-steps { display: flex; flex-direction: column; gap: 10px; }
.dp-step {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 13px; color: var(--text-sub);
}
.dp-step-num {
  flex-shrink: 0;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--sky-dark); color: white;
  font-size: 11px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  margin-top: 1px;
}
.dp-highlight {
  font-size: 18px; font-weight: 900;
  color: var(--sky-dark); margin: 4px 0 0;
}
.dp-highlight.green { color: var(--green-dark); }

/* 가격표 */
.price-table-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 28px 24px;
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm);
}
.price-table-title {
  font-size: 17px; font-weight: 900;
  color: var(--text-main); margin-bottom: 6px;
  letter-spacing: -0.3px;
}
.price-notice {
  font-size: 12px; color: var(--text-muted);
  margin-bottom: 16px;
}
.price-table {
  width: 100%; border-collapse: collapse;
  font-size: 14px;
}
.price-table th {
  background: var(--sky-dark); color: white;
  padding: 10px 16px; text-align: left;
  font-weight: 700; font-size: 13px;
}
.price-table th:last-child { text-align: right; }
.price-table td {
  padding: 12px 16px; border-bottom: 1px solid var(--border);
  color: var(--text-sub);
}
.price-table td:last-child { text-align: right; font-weight: 700; color: var(--sky-dark); }
.price-table tr:last-child td { border-bottom: none; }
.price-table tr:hover td { background: var(--sky-light); }
.price-special td { color: var(--green-dark) !important; }
.price-special td:last-child { color: var(--green-dark) !important; }

/* 점검 프로세스 */
.inspection-info {
  background: var(--bg);
  border-radius: var(--radius-sm);
  padding: 18px 20px;
  border: 1px solid var(--border);
}
.inspection-time {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 700;
  color: var(--sky-dark); margin-bottom: 14px;
}
.inspection-list {
  padding-left: 20px; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.inspection-list li {
  font-size: 14px; color: var(--text-sub); line-height: 1.6;
}

/* 하단 CTA 버튼 */
.detail-cta-btn {
  display: flex; align-items: center; justify-content: center;
  gap: 10px;
  background: linear-gradient(135deg, var(--green-dark), var(--green));
  color: white; text-decoration: none;
  font-size: 17px; font-weight: 800;
  padding: 18px; border-radius: var(--radius-md);
  margin-bottom: 40px;
  box-shadow: 0 6px 20px rgba(102,187,106,0.35);
  transition: all 0.2s;
}
.detail-cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(102,187,106,0.45);
}

/* 모바일 */
@media (max-width: 600px) {
  .dp-grid { grid-template-columns: 1fr; }
  .price-table-wrap { padding: 20px 14px; }
}

/* =====================================================
   상세페이지 — 도면 + 상세정보 + 가격표
   ===================================================== */

/* 도면 영역 */
.blueprint-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm);
}
.blueprint-label {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 16px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  font-size: 14px; font-weight: 700; color: var(--text-sub);
}
.blueprint-img-wrap {
  min-height: 200px;
  display: flex; align-items: center; justify-content: center;
}
#blueprint-img {
  width: 100%; height: auto;
  display: none;
}
.blueprint-placeholder {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 12px; padding: 48px;
  color: var(--text-muted);
}
.blueprint-placeholder p { font-size: 14px; margin: 0; }

/* 상세 정보 */
.dp-summary {
  background: linear-gradient(135deg, var(--sky-light), var(--green-light));
  border: 1px solid rgba(76,175,80,0.25);
  border-radius: var(--radius-md);
  padding: 18px 22px;
  font-size: 15px; font-weight: 600;
  color: var(--sky-dark); line-height: 1.7;
  margin-bottom: 20px;
}
.dp-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px; margin-bottom: 28px;
}
.dp-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 18px 16px;
  box-shadow: var(--shadow-sm);
}
.dp-card-title {
  font-size: 13px; font-weight: 800;
  color: var(--sky-dark); margin-bottom: 12px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  font-family: var(--font-display);
}
.dp-features {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.dp-features li {
  font-size: 13px; color: var(--text-sub);
  display: flex; align-items: flex-start; gap: 8px;
}
.dp-features li::before {
  content: '▸'; color: var(--sky); flex-shrink: 0;
  margin-top: 1px;
}
.dp-steps { display: flex; flex-direction: column; gap: 10px; }
.dp-step {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 13px; color: var(--text-sub);
}
.dp-step-num {
  flex-shrink: 0;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--sky-dark); color: white;
  font-size: 11px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  margin-top: 1px;
}
.dp-highlight {
  font-size: 18px; font-weight: 900;
  color: var(--sky-dark); margin: 4px 0 0;
}
.dp-highlight.green { color: var(--green-dark); }

/* 가격표 */
.price-table-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 28px 24px;
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm);
}
.price-table-title {
  font-size: 17px; font-weight: 900;
  color: var(--text-main); margin-bottom: 6px;
  letter-spacing: -0.3px;
}
.price-notice {
  font-size: 12px; color: var(--text-muted);
  margin-bottom: 16px;
}
.price-table {
  width: 100%; border-collapse: collapse;
  font-size: 14px;
}
.price-table th {
  background: var(--sky-dark); color: white;
  padding: 10px 16px; text-align: left;
  font-weight: 700; font-size: 13px;
}
.price-table th:last-child { text-align: right; }
.price-table td {
  padding: 12px 16px; border-bottom: 1px solid var(--border);
  color: var(--text-sub);
}
.price-table td:last-child { text-align: right; font-weight: 700; color: var(--sky-dark); }
.price-table tr:last-child td { border-bottom: none; }
.price-table tr:hover td { background: var(--sky-light); }
.price-special td { color: var(--green-dark) !important; }
.price-special td:last-child { color: var(--green-dark) !important; }

/* 점검 프로세스 */
.inspection-info {
  background: var(--bg);
  border-radius: var(--radius-sm);
  padding: 18px 20px;
  border: 1px solid var(--border);
}
.inspection-time {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 700;
  color: var(--sky-dark); margin-bottom: 14px;
}
.inspection-list {
  padding-left: 20px; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.inspection-list li {
  font-size: 14px; color: var(--text-sub); line-height: 1.6;
}

/* 하단 CTA 버튼 */
.detail-cta-btn {
  display: flex; align-items: center; justify-content: center;
  gap: 10px;
  background: linear-gradient(135deg, var(--green-dark), var(--green));
  color: white; text-decoration: none;
  font-size: 17px; font-weight: 800;
  padding: 18px; border-radius: var(--radius-md);
  margin-bottom: 40px;
  box-shadow: 0 6px 20px rgba(102,187,106,0.35);
  transition: all 0.2s;
}
.detail-cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(102,187,106,0.45);
}

/* 모바일 */
@media (max-width: 600px) {
  .dp-grid { grid-template-columns: 1fr; }
  .price-table-wrap { padding: 20px 14px; }
}
/* =====================================================
   상세페이지 — 도면 + 상세정보 + 가격표
   ===================================================== */

/* 도면 영역 */
.blueprint-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm);
}
.blueprint-label {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 16px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  font-size: 14px; font-weight: 700; color: var(--text-sub);
}
.blueprint-img-wrap {
  min-height: 200px;
  display: flex; align-items: center; justify-content: center;
}
#blueprint-img {
  width: 100%; height: auto;
  display: none;
}
.blueprint-placeholder {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 12px; padding: 48px;
  color: var(--text-muted);
}
.blueprint-placeholder p { font-size: 14px; margin: 0; }

/* 상세 정보 */
.dp-summary {
  background: linear-gradient(135deg, var(--sky-light), var(--green-light));
  border: 1px solid rgba(76,175,80,0.25);
  border-radius: var(--radius-md);
  padding: 18px 22px;
  font-size: 15px; font-weight: 600;
  color: var(--sky-dark); line-height: 1.7;
  margin-bottom: 20px;
}
.dp-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px; margin-bottom: 28px;
}
.dp-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 18px 16px;
  box-shadow: var(--shadow-sm);
}
.dp-card-title {
  font-size: 13px; font-weight: 800;
  color: var(--sky-dark); margin-bottom: 12px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  font-family: var(--font-display);
}
.dp-features {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.dp-features li {
  font-size: 13px; color: var(--text-sub);
  display: flex; align-items: flex-start; gap: 8px;
}
.dp-features li::before {
  content: '▸'; color: var(--sky); flex-shrink: 0;
  margin-top: 1px;
}
.dp-steps { display: flex; flex-direction: column; gap: 10px; }
.dp-step {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 13px; color: var(--text-sub);
}
.dp-step-num {
  flex-shrink: 0;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--sky-dark); color: white;
  font-size: 11px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  margin-top: 1px;
}
.dp-highlight {
  font-size: 18px; font-weight: 900;
  color: var(--sky-dark); margin: 4px 0 0;
}
.dp-highlight.green { color: var(--green-dark); }

/* 가격표 */
.price-table-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 28px 24px;
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm);
}
.price-table-title {
  font-size: 17px; font-weight: 900;
  color: var(--text-main); margin-bottom: 6px;
  letter-spacing: -0.3px;
}
.price-notice {
  font-size: 12px; color: var(--text-muted);
  margin-bottom: 16px;
}
.price-table {
  width: 100%; border-collapse: collapse;
  font-size: 14px;
}
.price-table th {
  background: var(--sky-dark); color: white;
  padding: 10px 16px; text-align: left;
  font-weight: 700; font-size: 13px;
}
.price-table th:last-child { text-align: right; }
.price-table td {
  padding: 12px 16px; border-bottom: 1px solid var(--border);
  color: var(--text-sub);
}
.price-table td:last-child { text-align: right; font-weight: 700; color: var(--sky-dark); }
.price-table tr:last-child td { border-bottom: none; }
.price-table tr:hover td { background: var(--sky-light); }
.price-special td { color: var(--green-dark) !important; }
.price-special td:last-child { color: var(--green-dark) !important; }

/* 점검 프로세스 */
.inspection-info {
  background: var(--bg);
  border-radius: var(--radius-sm);
  padding: 18px 20px;
  border: 1px solid var(--border);
}
.inspection-time {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 700;
  color: var(--sky-dark); margin-bottom: 14px;
}
.inspection-list {
  padding-left: 20px; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.inspection-list li {
  font-size: 14px; color: var(--text-sub); line-height: 1.6;
}

/* 하단 CTA 버튼 */
.detail-cta-btn {
  display: flex; align-items: center; justify-content: center;
  gap: 10px;
  background: linear-gradient(135deg, var(--green-dark), var(--green));
  color: white; text-decoration: none;
  font-size: 17px; font-weight: 800;
  padding: 18px; border-radius: var(--radius-md);
  margin-bottom: 40px;
  box-shadow: 0 6px 20px rgba(102,187,106,0.35);
  transition: all 0.2s;
}
.detail-cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(102,187,106,0.45);
}

/* 모바일 */
@media (max-width: 600px) {
  .dp-grid { grid-template-columns: 1fr; }
  .price-table-wrap { padding: 20px 14px; }
}

/* =====================================================
   시공 실적 이미지 그리드
   ===================================================== */
.stats-img-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.stats-img-item {
  aspect-ratio: 1 / 1;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  transition: transform 0.25s;
  position: relative;
}
.stats-img-item:hover { transform: scale(1.02); }
.stats-img-item img {
  width: 100%; height: 100%;
  object-fit: cover;   /* 1:1 꽉 채우기 */
  display: block;
  transition: transform 0.4s ease;
}
.stats-img-item:hover img { transform: scale(1.06); }
.stats-img-item.stats-img-empty {
  display: flex; align-items: center; justify-content: center;
}
.stats-img-item.stats-img-empty::after {
  content: '사진 준비 중';
  font-size: 12px; color: rgba(255,255,255,0.3); font-weight: 600;
}
.stats-img-item.stats-img-empty img { display: none; }

@media (max-width: 768px) {
  .stats-img-grid { grid-template-columns: repeat(2, 1fr); }
}

/* =====================================================
   시공 실적 카운터 섹션
   ===================================================== */
.stats-section {
  background: linear-gradient(160deg, #1A1A1A 0%, #1B5E20 100%);
  padding: 72px 24px;
  position: relative; overflow: hidden;
}
.stats-section::before {
  content: '';
  position: absolute; top: -80px; right: -80px;
  width: 400px; height: 400px; border-radius: 50%;
  border: 1px solid rgba(76,175,80,0.1);
  pointer-events: none;
}
.stats-section::after {
  content: '';
  position: absolute; bottom: -60px; left: 5%;
  width: 250px; height: 250px; border-radius: 50%;
  border: 1px solid rgba(102,187,106,0.1);
  pointer-events: none;
}
.stats-inner {
  max-width: 1100px; margin: 0 auto;
  position: relative; z-index: 1;
}

/* 상단 텍스트 */
.stats-top {
  display: flex; align-items: center;
  gap: 48px; margin-bottom: 48px;
  flex-wrap: wrap;
}
.stats-text-col { flex: 1; min-width: 260px; }
.stats-tag {
  display: inline-block;
  background: rgba(76,175,80,0.15);
  border: 1px solid rgba(76,175,80,0.3);
  color: #66BB6A; font-size: 12px; font-weight: 700;
  padding: 5px 16px; border-radius: 50px;
  letter-spacing: 1px; margin-bottom: 14px;
}
.stats-text-col h2 {
  font-family: 'Noto Sans KR', sans-serif;
  font-size: clamp(24px, 3.5vw, 38px);
  font-weight: 900; color: white;
  letter-spacing: -1px; line-height: 1.3;
  margin-bottom: 0;
}
.stats-text-col h2::after { display: none; }
.stats-text-col h2 strong { color: #4CAF50; }

/* 이미지 4개 그리드 */
.stats-img-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.stats-img-item {
  aspect-ratio: 1 / 1;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  transition: transform 0.25s;
  position: relative;
}
.stats-img-item:hover { transform: scale(1.02); }
.stats-img-item img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.4s ease;
}
.stats-img-item:hover img { transform: scale(1.06); }
.stats-img-item.stats-img-empty {
  display: flex; align-items: center; justify-content: center;
}
.stats-img-item.stats-img-empty::after {
  content: '사진 준비 중';
  font-size: 12px; color: rgba(255,255,255,0.3); font-weight: 600;
}
.stats-img-item.stats-img-empty img { display: none; }

@media (max-width: 768px) {
  .stats-section { padding: 52px 20px; }
  .stats-top { gap: 28px; margin-bottom: 32px; }
  .stats-img-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* =====================================================
   후기 슬라이더 화살표 버튼
   ===================================================== */
.review-slider-wrap {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 64px;
}
.review-nav-btn {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  z-index: 10;
  width: 48px; height: 48px;
  border-radius: 50%;
  background: white;
  border: 2px solid var(--border);
  color: var(--sky-dark);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--shadow-md);
  transition: all 0.2s;
}
.review-nav-btn:hover {
  background: var(--sky-dark);
  color: white;
  border-color: var(--sky-dark);
  transform: translateY(-50%) scale(1.1);
}
.review-prev { left: 8px; }
.review-next { right: 8px; }
.review-nav-btn.swiper-button-disabled {
  opacity: 0.3; cursor: not-allowed;
}
.review-nav-btn.swiper-button-disabled:hover {
  background: white; color: var(--sky-dark);
  border-color: var(--border);
  transform: translateY(-50%) scale(1);
}
@media (max-width: 600px) {
  .review-slider-wrap { padding: 0 16px; }
  .review-nav-btn { display: none; }
}

/* =====================================================
   지그재그 모바일 반응형
   ===================================================== */
@media (max-width: 768px) {
  .zigzag-section { padding: 52px 0; }
  .zigzag-header { margin-bottom: 40px; padding: 0 20px; }
  .zigzag-header::before,
  .zigzag-header::after { display: none; }

  /* 모든 행 세로 배치 */
  .zz-row,
  .zz-row.reverse {
    flex-direction: column;
    gap: 20px;
    padding: 0 18px;
    margin-bottom: 48px;
  }
  /* reverse 행: 텍스트 위, 이미지 아래 */
  .zz-row.reverse .zz-text { order: -1; }
  .zz-row.reverse .zz-image { order: 1; }

  /* 이미지 비율 */
  .zz-image { aspect-ratio: 4 / 3; width: 100%; }

  .zz-row:not(.reverse) .zz-text,
  .zz-row.reverse .zz-text { padding: 0; }

  .zz-title { font-size: 17px; }
  .zz-desc  { font-size: 14px; }
}

/* =====================================================
   모바일 이미지 최적화 (추가)
   ===================================================== */
@media (max-width: 600px) {
  /* 히어로 */
  .hero { height: 100svh; }


/* =====================================================
   보양~청소 프로세스 이미지 섹션
   ===================================================== */
.process-img-section {
  background: var(--bg);
  padding: 80px 24px;
}
.process-img-inner {
  max-width: 1100px; margin: 0 auto;
}
.process-img-header {
  text-align: center; margin-bottom: 52px;
}
.process-img-tag {
  display: inline-block;
  background: var(--sky-light);
  border: 1px solid rgba(76,175,80,0.3);
  color: var(--sky-dark); font-size: 12px; font-weight: 700;
  padding: 5px 16px; border-radius: 50px;
  letter-spacing: 1px; margin-bottom: 14px;
}
.process-img-header h2 {
  font-size: clamp(24px, 3.5vw, 36px);
  font-weight: 900; color: var(--text-main);
  letter-spacing: -0.8px; margin-bottom: 12px;
}
.process-img-header p {
  font-size: 15px; color: var(--text-sub);
  line-height: 1.7;
}

/* 3열 그리드 */
.process-img-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.process-img-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform 0.25s, box-shadow 0.25s;
}
.process-img-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
}

/* 이미지 영역 — 4:3 비율 */
.process-img-wrap {
  width: 100%; aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--sky-light);
  position: relative;
}
.process-img-wrap img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.4s ease;
}
.process-img-card:hover .process-img-wrap img { transform: scale(1.05); }
.process-img-wrap.process-img-empty::after {
  content: '사진 준비 중';
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; color: var(--text-muted); font-weight: 600;
}
.process-img-wrap.process-img-empty img { opacity: 0; }

/* 텍스트 영역 */
.process-img-info {
  padding: 24px 22px 28px;
  position: relative;
}
.process-img-num {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 11px; font-weight: 900;
  color: var(--sky-dark);
  background: var(--sky-light);
  border: 1px solid rgba(76,175,80,0.25);
  padding: 3px 10px; border-radius: 50px;
  letter-spacing: 1px; margin-bottom: 10px;
}
.process-img-info h3 {
  font-size: 18px; font-weight: 900;
  color: var(--text-main); margin-bottom: 10px;
  letter-spacing: -0.3px;
}
.process-img-info p {
  font-size: 14px; color: var(--text-sub);
  line-height: 1.7; margin: 0;
  word-break: keep-all;
}

/* 카드 상단 컬러 바 */
.process-img-card:nth-child(1) .process-img-info::before { background: var(--sky-dark); }
.process-img-card:nth-child(2) .process-img-info::before { background: var(--sky); }
.process-img-card:nth-child(3) .process-img-info::before { background: var(--green); }
.process-img-info::before {
  content: ''; position: absolute;
  top: 0; left: 0; right: 0; height: 3px;
}

/* 모바일 */
@media (max-width: 768px) {
  .process-img-section { padding: 60px 20px; }
  .process-img-grid { grid-template-columns: 1fr; gap: 20px; }
  .process-img-header { margin-bottom: 36px; }
}

/* =====================================================
   견적 계산기 — 3단계 최종 금액 버전
   ===================================================== */
.calc-result-new {
  display: flex; flex-direction: column; gap: 20px;
}

/* 선택 요약 태그 */
.calc-summary-tags {
  display: flex; align-items: center; gap: 10px;
  flex-wrap: wrap;
}
.summary-tag {
  background: var(--sky-light);
  border: 1.5px solid rgba(76,175,80,0.3);
  color: var(--sky-dark);
  font-size: 14px; font-weight: 800;
  padding: 8px 18px; border-radius: 50px;
}
.summary-divider {
  font-size: 18px; font-weight: 900;
  color: var(--text-muted);
}

/* 금액 카드 */
.calc-price-card {
  background: linear-gradient(135deg, #1A1A1A 0%, #1B5E20 100%);
  border-radius: var(--radius-lg);
  padding: 36px 28px;
  text-align: center;
  position: relative; overflow: hidden;
}
.calc-price-card::before {
  content: '';
  position: absolute; top: -40px; right: -40px;
  width: 150px; height: 150px; border-radius: 50%;
  border: 1px solid rgba(76,175,80,0.15);
}
.calc-price-card.is-special {
  background: linear-gradient(135deg, #1B5E20, #1B5E20);
}
.calc-price-label {
  font-size: 13px; font-weight: 700;
  color: rgba(255,255,255,0.6);
  letter-spacing: 1px; text-transform: uppercase;
  margin-bottom: 14px; margin-top: 0;
}
.calc-price-range {
  font-size: clamp(22px, 5vw, 36px);
  font-weight: 900; color: white;
  letter-spacing: -1px; line-height: 1.2;
  font-family: var(--font-display);
  margin-bottom: 14px;
}
.calc-price-notice {
  font-size: 12px; color: rgba(255,255,255,0.45);
  margin: 0;
}

/* =====================================================
   홈페이지 투어 팝업
   ===================================================== */
#tour-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.55);
  z-index: 99980;
  backdrop-filter: blur(3px);
}
#tour-popup {
  position: fixed;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  z-index: 99985;
  background: white;
  border-radius: 24px;
  padding: 40px 32px 32px;
  text-align: center;
  width: min(400px, 90vw);
  box-shadow: 0 24px 60px rgba(0,0,0,0.2);
}
.tour-popup-icon {
  font-size: 48px; margin-bottom: 16px;
  animation: wave 1.5s ease-in-out infinite;
}
@keyframes wave {
  0%,100% { transform: rotate(0deg); }
  25%      { transform: rotate(15deg); }
  75%      { transform: rotate(-10deg); }
}
.tour-popup-title {
  font-size: 22px; font-weight: 900;
  color: var(--text-main); line-height: 1.4;
  margin-bottom: 10px; letter-spacing: -0.5px;
}
.tour-popup-desc {
  font-size: 14px; color: var(--text-muted);
  line-height: 1.7; margin-bottom: 28px;
}
.tour-popup-btns {
  display: flex; flex-direction: column; gap: 10px;
}
.tour-btn-yes {
  background: linear-gradient(135deg, var(--sky-dark), var(--sky));
  color: white; border: none;
  padding: 14px 20px; border-radius: 50px;
  font-size: 15px; font-weight: 800;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(27,94,32,0.35);
  transition: transform 0.2s, box-shadow 0.2s;
}
.tour-btn-yes:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(27,94,32,0.45);
}
.tour-btn-no {
  background: transparent; border: 1.5px solid var(--border);
  color: var(--text-muted); padding: 12px 20px;
  border-radius: 50px; font-size: 14px; font-weight: 600;
  cursor: pointer; transition: all 0.2s;
}
.tour-btn-no:hover { border-color: var(--text-muted); color: var(--text-main); }

/* 투어 진행 안내바 */
#tour-bar {
  position: fixed; bottom: 0; left: 0; right: 0;
  z-index: 99970;
  background: var(--text-main);
  padding: 12px 20px;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.15);
}
.tour-bar-inner {
  max-width: 900px; margin: 0 auto;
  display: flex; align-items: center; gap: 14px;
}
.tour-bar-text {
  font-size: 14px; font-weight: 700;
  color: white; white-space: nowrap; flex-shrink: 0;
}
.tour-bar-progress {
  flex: 1; height: 4px; background: rgba(255,255,255,0.15);
  border-radius: 2px; overflow: hidden;
}
.tour-bar-fill {
  height: 100%; width: 0%;
  background: linear-gradient(90deg, var(--sky), var(--green));
  border-radius: 2px;
  transition: width 0.5s ease;
}
.tour-bar-stop {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.7);
  padding: 6px 14px; border-radius: 50px;
  font-size: 12px; font-weight: 700;
  cursor: pointer; flex-shrink: 0;
  transition: all 0.2s;
}
.tour-bar-stop:hover { background: rgba(255,255,255,0.2); color: white; }

@media (max-width: 600px) {
  #tour-popup { padding: 32px 22px 24px; }
  .tour-popup-title { font-size: 19px; }
  .tour-bar-text { font-size: 12px; }
}

/* 히어로 업체정보 힌트 */
.hero-about-hint {
  display: inline-block;
  margin-top: 20px;
  font-size: 13px;
  color: rgba(255,255,255,0.6);
  letter-spacing: 1px;
  animation: bounce-hint 1.8s ease-in-out infinite;
}
@keyframes bounce-hint {
  0%, 100% { transform: translateY(0); opacity: 0.6; }
  50%       { transform: translateY(5px); opacity: 1; }
}
.hero:hover .hero-about-hint { color: rgba(255,255,255,0.9); }

/* =====================================================
   상세페이지 — 해당 평수 가격 카드
   ===================================================== */
.price-card-wrap {
  background: linear-gradient(135deg, #1A1A1A 0%, #1B5E20 100%);
  border-radius: var(--radius-lg);
  padding: 32px 28px;
  text-align: center;
  margin-bottom: 28px;
  position: relative; overflow: hidden;
}
.price-card-wrap::before {
  content: ''; position: absolute;
  top: -40px; right: -40px;
  width: 150px; height: 150px; border-radius: 50%;
  border: 1px solid rgba(76,175,80,0.15);
}
.price-card-label {
  font-size: 12px; font-weight: 700;
  color: rgba(255,255,255,0.55);
  letter-spacing: 1.5px; margin-bottom: 12px;
}
.price-card-value {
  font-size: clamp(24px, 5vw, 38px);
  font-weight: 600; color: white;
  letter-spacing: -1px; line-height: 1.2;
  margin-bottom: 12px;
  font-family: var(--font-display);
}
.price-card-value.is-special { color: #86EFAC; }
.price-card-notice {
  font-size: 12px; color: rgba(255,255,255,0.4);
  margin-bottom: 20px;
}
.price-card-cta {
  display: inline-block;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.25);
  color: white; font-size: 14px; font-weight: 700;
  padding: 10px 24px; border-radius: 50px;
  text-decoration: none;
  transition: background 0.2s;
}
.price-card-cta:hover { background: rgba(255,255,255,0.2); }

/* =====================================================
   상세페이지 — 시공 프로세스 그리드 (이미지 공간 포함)
   ===================================================== */
.dp-process-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px;
  margin-bottom: 8px;
}
.dp-proc-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform 0.2s, box-shadow 0.2s;
}
.dp-proc-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.dp-proc-card-top {
  display: flex; align-items: center; gap: 12px;
  padding: 16px;
  border-bottom: 1px solid var(--border);
}
.dp-proc-num {
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, var(--sky-dark), var(--sky));
  color: white; font-size: 15px; font-weight: 900;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  flex-shrink: 0;
}
.dp-proc-text {
  font-size: 13px; font-weight: 600;
  color: var(--text-main); line-height: 1.5;
}
/* 이미지 공간 */
.dp-proc-img-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--sky-light);
  overflow: hidden;
}
.dp-proc-img-wrap img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.4s ease;
}
.dp-proc-card:hover .dp-proc-img-wrap img { transform: scale(1.05); }
.dp-proc-img-placeholder {
  display: none;
  position: absolute; inset: 0;
  align-items: center; justify-content: center;
  font-size: 12px; color: var(--text-muted);
  font-weight: 600;
}
.dp-proc-img-wrap.dp-proc-img-empty img { display: none; }
.dp-proc-img-wrap.dp-proc-img-empty .dp-proc-img-placeholder { display: flex; }

@media (max-width: 768px) {
  .dp-process-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .dp-process-grid { grid-template-columns: 1fr; }
}

/* =====================================================
   상세페이지 — 시공 프로세스 큰 블록
   ===================================================== */
.dp-process-blocks {
  display: flex; flex-direction: column;
  gap: 12px; margin-bottom: 8px;
}
.dp-proc-block {
  display: flex; align-items: stretch;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform 0.2s, box-shadow 0.2s;
  min-height: 80px;
}
.dp-proc-block:hover {
  transform: translateX(4px);
  box-shadow: var(--shadow-md);
}
.dp-proc-block-num {
  width: 80px; flex-shrink: 0;
  background: linear-gradient(180deg, var(--sky-dark), var(--sky));
  color: white;
  font-size: 28px; font-weight: 900;
  font-family: var(--font-display);
  display: flex; align-items: center; justify-content: center;
  letter-spacing: -1px;
}
.dp-proc-block-body {
  flex: 1; padding: 20px 24px;
  display: flex; align-items: center;
  position: relative;
}
.dp-proc-block-body::before {
  content: '';
  position: absolute; left: 0; top: 16px; bottom: 16px;
  width: 3px;
  background: linear-gradient(180deg, var(--sky), var(--green));
  border-radius: 2px;
}
.dp-proc-block-text {
  font-size: 16px; font-weight: 700;
  color: var(--text-main);
  line-height: 1.5; padding-left: 16px;
  word-break: keep-all;
}

/* =====================================================
   상세페이지 — 시공 현장 갤러리
   ===================================================== */
.dp-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 8px;
}
.dp-gallery-item {
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--sky-light);
  border: 1px solid var(--border);
  position: relative;
  transition: transform 0.25s;
}
.dp-gallery-item:hover { transform: scale(1.02); }
.dp-gallery-item img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.4s ease;
}
.dp-gallery-item:hover img { transform: scale(1.06); }
.dp-gallery-empty-text {
  display: none;
  position: absolute; inset: 0;
  align-items: center; justify-content: center;
  font-size: 13px; color: var(--text-muted);
  font-weight: 600;
}
.dp-gallery-item.dp-gallery-empty img { display: none; }
.dp-gallery-item.dp-gallery-empty .dp-gallery-empty-text { display: flex; }

@media (max-width: 600px) {
  .dp-proc-block-num { width: 60px; font-size: 22px; }
  .dp-proc-block-text { font-size: 14px; }
  .dp-gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
}

.snap-section-hero { height: 100dvh; }
}

/* 스크롤 유도 힌트 */
.hero-scroll-hint {
  position: absolute;
  bottom: 36px; left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex; flex-direction: column;
  align-items: center; gap: 8px;
  cursor: pointer;
  animation: scroll-bounce 2s ease-in-out infinite;
}
.hero-scroll-text {
  font-size: 12px; color: rgba(255,255,255,0.6);
  letter-spacing: 1px; font-weight: 600;
  white-space: nowrap;
}
.hero-scroll-arrow {
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.25);
  display: flex; align-items: center; justify-content: center;
}
@keyframes scroll-bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); opacity: 0.7; }
  50%       { transform: translateX(-50%) translateY(8px); opacity: 1; }
}

/* 네비바가 히어로 위에 올라오게 */
.top-navbar {
  z-index: 100 !important;
}

/* 모바일 */
@media (max-width: 600px) {
  .main-content-wrap { border-radius: 16px 16px 0 0; }
  .hero-scroll-hint { bottom: 24px; }
  .hero-scroll-text { font-size: 11px; }
}


/* =====================================================
   모바일 히어로 후킹 문구
   ===================================================== */
.hero-hook-mobile {
  display: none;
}
@media (max-width: 600px) {
  .hero-hook-mobile {
    display: flex; flex-direction: column;
    align-items: center; gap: 10px;
    margin-bottom: 24px;
  }
  .hero-hook-line {
    font-size: 26px; font-weight: 900;
    color: rgba(255,255,255,0.9);
    letter-spacing: -0.5px;
    line-height: 1.4;
    text-align: center;
    word-break: keep-all;
    text-shadow: 0 2px 12px rgba(0,0,0,0.4);
  }
  .hero-hook-line.accent {
    color: #4CAF50;
    font-size: 22px;
    margin-top: 4px;
    padding: 8px 20px;
    background: rgba(76,175,80,0.15);
    border: 1px solid rgba(76,175,80,0.3);
    border-radius: 50px;
  }
  /* 모바일 회사명 크게 */
  .hero-content h1 { font-size: 52px !important; margin-bottom: 0; letter-spacing:-2px; }
}

/* =====================================================
   헤더 소셜 버튼 (유튜브/블로그)
   ===================================================== */
.nav-social {
  display: flex; align-items: center; gap: 8px;
  margin-right: 12px;
}
.nav-social-btn {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  padding: 0 16px; height: 36px; border-radius: 50px;
  font-size: 13px; font-weight: 700;
  text-decoration: none;
  transition: opacity 0.2s, transform 0.15s;
  white-space: nowrap;
  box-sizing: border-box;
}
.nav-social-btn svg {
  width: 16px; height: 16px; flex-shrink: 0;
}
.nav-blog-n {
  font-size: 15px; font-weight: 900;
  font-family: 'Arial Black', sans-serif;
  line-height: 1; flex-shrink: 0;
}
.nav-social-btn:hover { opacity: 0.85; transform: translateY(-1px); }

/* 유튜브 */
.nav-yt {
  background: #FF0000;
  color: #fff;
}
/* 블로그 */
.nav-blog {
  background: #03C75A;
  color: #fff;
}

/* 태블릿/모바일: 텍스트 유지, 크기만 조정 */
@media (max-width: 900px) {
  .nav-social { margin-right: 8px; gap: 6px; }
  .nav-social-btn { padding: 6px 12px; font-size: 12px; gap: 4px; }
  .nav-social-btn svg { width: 14px; height: 14px; }
}

/* 모바일: 텍스트 숨김, 원형 아이콘만 표시 */
@media (max-width: 768px) {
  .nav-social { margin-right: 6px; gap: 6px; }
  .nav-social-btn {
    padding: 0; width: 36px; height: 36px; border-radius: 50%;
    gap: 0;
  }
  .nav-social-btn > span:not(.nav-blog-n) { display: none; }
  .nav-social-btn svg { width: 20px; height: 20px; }
  .nav-blog-n { font-size: 18px; display: inline-block; }
}

/* =====================================================
   플로팅 홈 버튼 (서브페이지 우하단)
   ===================================================== */
.floating-home-btn {
  position: fixed;
  right: 92px; bottom: 24px;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: #1B5E20;
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  text-decoration: none;
  box-shadow: 0 6px 20px rgba(27,94,32,0.4), 0 2px 6px rgba(0,0,0,0.1);
  z-index: 1999;
  transition: transform 0.2s, background 0.2s, box-shadow 0.2s;
}
.floating-home-btn:hover {
  background: #1B5E20;
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(27,94,32,0.5), 0 4px 10px rgba(0,0,0,0.12);
}
.floating-home-btn:active { transform: translateY(-1px); }
@media (max-width: 768px) {
  .floating-home-btn {
    right: 76px; bottom: 18px;
    width: 50px; height: 50px;
    box-shadow: 0 4px 14px rgba(27,94,32,0.45), 0 2px 4px rgba(0,0,0,0.1);
  }
  .floating-home-btn svg { width: 20px; height: 20px; }
}

/* =====================================================
   한옥호텔 헤리티지 — 폰트 & 디테일 오버라이드
   (원본 구조 유지하면서 분위기만 격상)
   ===================================================== */

/* 영문 액센트 폰트는 자동으로 Cormorant Garamond Italic */
.nd-label, .stats-tag, .pillar-num, .heritage-num,
.review-author, .footer-copy, .footer-tagline,
.section-num, .hero-hook-pc-small {
  font-family: var(--font-display) !important;
  font-style: italic !important;
}

/* 메인 후킹 — 한국어 명조체로 */
.hero-hook-pc-big,
.hero-hook-pc-sub,
.hm-big {
  font-family: var(--font-han) !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
}
.hero-hook-pc-highlight,
.hm-mint {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-weight: 600 !important;
  background: linear-gradient(135deg, var(--gold-shine) 0%, var(--gold-pale) 50%, var(--gold) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  filter: drop-shadow(0 2px 12px rgba(76,175,80,0.3));
}
.hero-hook-pc-accent,
.hm-badge,
.hm-cta {
  font-family: var(--font-han) !important;
  letter-spacing: 3px !important;
  border-color: rgba(102,187,106,0.6) !important;
  color: var(--gold-shine) !important;
}

/* 섹션 타이틀들을 명조체로 */
.about-section h2,
.review-section h2,
.zigzag-header h2,
.stats-text-col h2,
.sub-page-title {
  font-family: var(--font-han) !important;
  letter-spacing: 2px !important;
  font-weight: 700 !important;
}
.about-section h2 .highlight,
.zigzag-header h2 strong,
.stats-text-col h2 strong {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-weight: 600 !important;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold) 60%, var(--gold-shine)) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* 섹션 디바이더를 골드 페이드로 */
.about-section h2::after,
.review-section h2::after,
.zigzag-header h2::after {
  background: linear-gradient(90deg, transparent, var(--gold) 20%, var(--gold-shine) 50%, var(--gold) 80%, transparent) !important;
  width: 70px !important;
  height: 1px !important;
  border-radius: 0 !important;
}

/* 헤딩 위에 영문 부제 자동 추가 */
.about-section h2::before {
  content: 'OUR PROMISE';
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 12px;
  font-weight: 600;
  color: var(--gold-deep);
  letter-spacing: 6px;
  margin-bottom: 16px;
  opacity: 0.85;
}
.review-section h2::before {
  content: 'TESTIMONIALS';
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 12px;
  font-weight: 600;
  color: var(--gold-deep);
  letter-spacing: 6px;
  margin-bottom: 14px;
  opacity: 0.85;
}
.zigzag-header h2::before {
  content: 'WHY MOHAIR';
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 12px;
  font-weight: 600;
  color: var(--gold-deep);
  letter-spacing: 6px;
  margin-bottom: 14px;
  opacity: 0.85;
}

/* about-box (이유 카드) — 한지 종이 느낌 */
.about-box {
  background: var(--ivory) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-md) !important;
  position: relative;
}
.about-box::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--gold-deep), var(--gold-shine), var(--gold));
}
.about-box h4 {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  letter-spacing: 4px !important;
  text-transform: uppercase !important;
  color: var(--gold-deep) !important;
}

/* 카테고리 카드 — 호버시 골드 글로우 */
.category-card {
  border: 1px solid var(--border) !important;
  background: var(--ivory) !important;
  transition: transform 0.5s cubic-bezier(.2,.8,.2,1), box-shadow 0.5s, border-color 0.5s !important;
}
.category-card:hover {
  border-color: rgba(76,175,80,0.5) !important;
  box-shadow: var(--shadow-gold) !important;
  transform: translateY(-6px) !important;
}
.card-body h3 {
  font-family: var(--font-han) !important;
  letter-spacing: 1.5px !important;
}
.price-text {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  letter-spacing: 1px !important;
}

/* 네비바 한옥 톤 */
.top-navbar {
  background: rgba(250,246,238,0.96) !important;
  border-bottom-color: var(--border) !important;
}
.top-navbar::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity: 0.5;
}
.logo-text-fallback {
  font-family: var(--font-han) !important;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold)) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  letter-spacing: 2px !important;
}
.nav-phone {
  font-family: var(--font-sans) !important;
  border-color: var(--gold) !important;
  background: linear-gradient(135deg, var(--hanji), var(--ivory)) !important;
  color: var(--gold-deep) !important;
}
.nav-phone:hover {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold)) !important;
  color: white !important;
}
.main-menu a {
  font-family: var(--font-han) !important;
  letter-spacing: 2px !important;
  font-weight: 400 !important;
}
.main-menu a::after {
  background: var(--gold) !important;
}

/* 시공 실적(stats) 섹션 — 어두운 먹 + 골드 */
.stats-section {
  background: 
    radial-gradient(circle at 20% 20%, rgba(76,175,80,0.18), transparent 40%),
    radial-gradient(circle at 80% 80%, rgba(27,94,32,0.22), transparent 50%),
    linear-gradient(160deg, var(--ink) 0%, var(--ink-soft) 50%, var(--ink) 100%) !important;
  border-top: 1px solid rgba(76,175,80,0.2);
  border-bottom: 1px solid rgba(76,175,80,0.2);
}
.stats-tag {
  background: linear-gradient(135deg, rgba(76,175,80,0.2), rgba(197,225,165,0.15)) !important;
  border: 1px solid rgba(102,187,106,0.5) !important;
  color: var(--gold-shine) !important;
  font-family: var(--font-display) !important;
  font-style: italic !important;
  letter-spacing: 4px !important;
  text-transform: uppercase !important;
}

/* 후기 카드 — 한지 + 명조 */
.review-card {
  background: var(--ivory) !important;
  border: 1px solid var(--border) !important;
  position: relative;
}
.review-card::before {
  content: '"';
  position: absolute; top: 14px; left: 18px;
  font-family: var(--font-display);
  font-size: 64px;
  font-style: italic;
  color: var(--gold);
  opacity: 0.15;
  line-height: 1;
  pointer-events: none;
}
.review-card .review-text {
  font-family: var(--font-serif) !important;
  line-height: 1.85 !important;
  position: relative;
  z-index: 1;
}
.review-card .review-author {
  color: var(--gold-deep) !important;
  letter-spacing: 2px !important;
}
.review-card .stars svg {
  color: var(--gold) !important;
}

/* 푸터 — 깊은 먹 + 골드 */
.site-footer {
  background: 
    radial-gradient(ellipse at top, rgba(76,175,80,0.08), transparent 50%),
    linear-gradient(180deg, var(--ink) 0%, #0F0B07 100%) !important;
  border-top: 1px solid rgba(76,175,80,0.25);
  position: relative;
}
.site-footer::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
}
.footer-copy {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  letter-spacing: 1.5px !important;
}

/* 상세 페이지 hero - 한옥 톤 */
.nd-hero {
  border: 1px solid var(--gold);
}
.nd-hero::after {
  content: '';
  position: absolute; inset: 10px;
  border: 1px solid rgba(102,187,106,0.2);
  pointer-events: none;
  z-index: 1;
}
.nd-hero-overlay {
  background: linear-gradient(to top, rgba(26,26,26,0.92) 0%, rgba(26,26,26,0.55) 60%, rgba(26,26,26,0.25) 100%) !important;
}
.nd-tag {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  letter-spacing: 4px !important;
  text-transform: uppercase !important;
  background: rgba(26,26,26,0.65) !important;
  border-color: rgba(102,187,106,0.5) !important;
  color: var(--gold-shine) !important;
}
.nd-hero-title {
  font-family: var(--font-han) !important;
  letter-spacing: 2px !important;
}
.nd-hero-title strong {
  background: linear-gradient(135deg, var(--gold-shine), var(--gold-pale)) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-weight: 600 !important;
  border: none !important;
  background-color: transparent !important;
  padding: 0 !important;
}
.nd-section-title {
  font-family: var(--font-han) !important;
  letter-spacing: 2px !important;
}
.nd-label {
  color: var(--gold-deep) !important;
}
.nd-dark .nd-label {
  color: var(--gold-shine) !important;
}

/* 가견적 계산기 - 한옥 카드 */
.calculator-box {
  background: var(--ivory) !important;
  border: 1px solid var(--border) !important;
  position: relative;
}
.calculator-box::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--gold-deep), var(--gold-shine), var(--gold));
}
.calc-title {
  font-family: var(--font-han) !important;
  letter-spacing: 3px !important;
  position: relative;
}
.calc-title::before {
  content: 'INSTANT QUOTE';
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 11px;
  font-weight: 600;
  color: var(--gold-deep);
  letter-spacing: 6px;
  margin-bottom: 12px;
  opacity: 0.85;
}
.step-select-btn {
  font-family: var(--font-han) !important;
  letter-spacing: 1.5px !important;
  border-color: var(--border) !important;
}
.step-select-btn:hover {
  border-color: var(--gold) !important;
  background: var(--hanji) !important;
  color: var(--gold-deep) !important;
}
.calc-result {
  background: 
    radial-gradient(ellipse at top, rgba(102,187,106,0.18), transparent 60%),
    linear-gradient(135deg, var(--ink), var(--gold-deep)) !important;
  border: 1px solid rgba(102,187,106,0.3);
}

/* 서브페이지 컨테이너 */
.sub-page-container {
  background: var(--ivory) !important;
  border: 1px solid var(--border) !important;
  position: relative;
}
.sub-page-container::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--gold-deep), var(--gold-shine), var(--gold));
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

/* 연혁 - 한옥 톤 */
.history-headline {
  background: linear-gradient(135deg, var(--hanji), var(--ivory)) !important;
  border-left: 3px solid var(--gold) !important;
  font-family: var(--font-han) !important;
  letter-spacing: 1.5px !important;
  position: relative;
}
.history-headline::before {
  content: '"';
  position: absolute;
  top: 8px; left: 16px;
  font-family: var(--font-display);
  font-size: 56px;
  font-style: italic;
  color: var(--gold);
  opacity: 0.18;
  line-height: 1;
}
.history-era {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold)) !important;
  font-family: var(--font-display) !important;
  font-style: italic !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
}
.history-period {
  font-family: var(--font-han) !important;
  letter-spacing: 1px !important;
}
.history-year {
  background: var(--hanji) !important;
  color: var(--gold-deep) !important;
  border-color: rgba(76,175,80,0.4) !important;
  font-family: var(--font-display) !important;
  font-style: italic !important;
}

/* 팀 카드 */
.team-card {
  background: var(--ivory) !important;
  border: 1px solid var(--border) !important;
}
.team-card .team-name {
  font-family: var(--font-han) !important;
  letter-spacing: 3px !important;
}
.team-card .team-role {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
}

/* 모바일 메뉴 오버레이 - 깊은 먹 */
#mobile-overlay-menu {
  background: var(--ink) !important;
}
.mob-menu-num {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  color: var(--gold) !important;
}
.mob-menu-label {
  font-family: var(--font-han) !important;
  letter-spacing: 3px !important;
}

/* 플로팅 홈 버튼 - 골드 */
.floating-home-btn {
  background: var(--gold) !important;
  color: var(--ink) !important;
  border: 1px solid var(--gold-deep) !important;
}
.floating-home-btn:hover {
  background: var(--gold-deep) !important;
  color: var(--ivory) !important;
}

/* CTA 버튼들 */
.estimate-cta {
  background: 
    radial-gradient(circle at 20% 30%, rgba(218,212,160,0.18), transparent 50%),
    linear-gradient(135deg, var(--ink) 0%, var(--gold-deep) 100%) !important;
  border: 1px solid rgba(76,175,80,0.3);
}
.estimate-cta-btn {
  font-family: var(--font-han) !important;
  letter-spacing: 2px !important;
}

/* 인트로 자물쇠 화면 */
.intro-title {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  letter-spacing: 1px !important;
}
.intro-hint {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  letter-spacing: 4px !important;
  text-transform: uppercase !important;
  color: var(--gold-shine) !important;
}

/* shock 화면 골드 그라데이션 */
#shock-line4 {
  background: linear-gradient(135deg, var(--gold-shine), var(--gold-pale), var(--ivory)) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}
#shock-cta-btn {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold), var(--gold-shine)) !important;
  border: 1px solid rgba(102,187,106,0.4) !important;
  font-family: var(--font-han) !important;
  letter-spacing: 1px !important;
}

/* 챗봇 - 한옥 톤 (있다면) */
.cb-cta-btn {
  font-family: var(--font-han) !important;
  letter-spacing: 1px !important;
}

/* =====================================================
   v4 추가 — 카테고리 카드 신규 디자인 (3개 카테고리용)
   ===================================================== */
.category-card {
  position: relative;
  background: var(--ivory);
  border: 1px solid var(--border);
  overflow: hidden;
  transition: transform 0.6s cubic-bezier(.2,.8,.2,1), box-shadow 0.6s, border-color 0.6s;
  display: flex; flex-direction: column;
  text-decoration: none;
  color: var(--text-main);
}
.category-card .card-thumb {
  width: 100%;
  aspect-ratio: 16 / 10;
  background: linear-gradient(135deg, var(--hanji), var(--cream));
  overflow: hidden;
  position: relative;
}
.category-card .card-thumb::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(to top, rgba(26,26,26,0.35), transparent);
  pointer-events: none;
  z-index: 1;
}
.category-card .card-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1s cubic-bezier(.2,.8,.2,1);
  filter: brightness(0.95);
}
.category-card:hover .card-thumb img { transform: scale(1.08); filter: brightness(1); }

.card-thumb-empty {
  display: flex; align-items: center; justify-content: center;
}
.card-thumb-empty::after {
  content: '— Image —';
  font-family: var(--font-display);
  font-style: italic;
  font-size: 14px;
  color: var(--text-light);
  letter-spacing: 2px;
}
.card-thumb-empty img { display: none; }

.category-card .card-body {
  padding: 28px 28px 32px;
  background: var(--ivory);
  position: relative;
}
.category-card .card-body::before {
  content: '';
  position: absolute;
  top: 0; left: 28px; right: 28px;
  height: 1px;
  background: var(--gold);
  opacity: 0.3;
  transition: all 0.4s;
}
.category-card:hover .card-body::before {
  left: 0; right: 0;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity: 1;
}

.card-subtitle {
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 12px;
  font-weight: 600;
  color: var(--gold-deep);
  letter-spacing: 4px;
  text-transform: uppercase;
  margin-bottom: 12px;
  opacity: 0.9;
}
.category-card h3 {
  font-family: var(--font-han) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
  color: var(--text-main) !important;
  line-height: 1.4 !important;
  margin: 0 0 20px 0 !important;
}
.card-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 13px;
  color: var(--text-muted);
  letter-spacing: 2px;
  transition: all 0.4s;
}
.card-arrow em {
  font-style: normal;
  transition: transform 0.4s;
  color: var(--gold);
}
.category-card:hover .card-arrow {
  color: var(--gold-deep);
  letter-spacing: 3px;
}
.category-card:hover .card-arrow em { transform: translateX(8px); }

.category-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-gold);
  border-color: rgba(76,175,80,0.5);
}

/* 카테고리 그리드 (3개) */
.category-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 28px !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 40px 24px !important;
}
@media (max-width: 900px) {
  .category-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
  .category-card .card-body { padding: 24px 22px; }
  .category-card h3 { font-size: 19px !important; letter-spacing: 1.5px !important; }
}

/* =====================================================
   v4 추가 — 지그재그 섹션 배경 + 구분선 강화
   ===================================================== */
.zigzag-section {
  position: relative;
  background: 
    radial-gradient(ellipse at top, rgba(102,187,106,0.10), transparent 50%),
    radial-gradient(ellipse at bottom, rgba(27,94,32,0.05), transparent 50%),
    linear-gradient(180deg, var(--ivory) 0%, var(--hanji) 100%) !important;
  overflow: hidden;
}
.zigzag-section::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
}
.zigzag-section::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
}
/* 잉크 텍스처 장식 (좌상단/우하단 원) */
.zigzag-section .zigzag-deco-tl,
.zigzag-section .zigzag-deco-br {
  position: absolute;
  pointer-events: none;
  z-index: 0;
}
.zigzag-section .zigzag-deco-tl {
  top: 60px; left: -100px;
  width: 280px; height: 280px;
  border: 1px solid var(--line-gold);
  border-radius: 50%;
}
.zigzag-section .zigzag-deco-br {
  bottom: 80px; right: -120px;
  width: 360px; height: 360px;
  border: 1px solid var(--line-gold);
  border-radius: 50%;
  opacity: 0.6;
}

/* 지그재그 각 항목 사이에 잉크 라인 구분 */
.zz-row {
  position: relative;
  z-index: 1;
}
.zz-row:not(:last-child)::after {
  content: '';
  position: absolute;
  bottom: -32px; left: 50%;
  transform: translateX(-50%);
  width: 80px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
  opacity: 0.5;
}

/* =====================================================
   v4 추가 — about-section (업체 소개) 레이아웃 수정
   좌측: 영문 부제 + 한글 헤드라인 (스티키) / 우측: 4 이유 카드 그리드
   ===================================================== */
.about-section {
  background: var(--paper) !important;
  position: relative;
  padding: 110px 24px !important;
  border-top: 1px solid var(--line-soft, rgba(26,26,26,0.06));
  border-bottom: 1px solid var(--line-soft, rgba(26,26,26,0.06));
}
.about-section::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 200px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}

.about-section-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 80px;
  align-items: start;
}
.about-section h2 {
  position: sticky;
  top: 100px;
  text-align: left !important;
  margin-bottom: 0 !important;
  font-size: clamp(28px, 3.5vw, 42px) !important;
  line-height: 1.4 !important;
}
.about-section h2::before {
  text-align: left;
}
.about-section h2::after {
  margin: 24px 0 0 !important;
  width: 80px !important;
  background: linear-gradient(90deg, var(--gold) 0%, var(--gold-shine) 50%, transparent 100%) !important;
}

.about-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 20px !important;
  max-width: none !important;
}

.about-box {
  background: var(--ivory) !important;
  padding: 32px 28px !important;
  position: relative;
}
.about-box::before {
  background: var(--gold) !important;
  width: 40px !important;
  left: 28px !important;
  right: auto !important;
  height: 2px !important;
}
.about-box h4 {
  margin-top: 16px;
  margin-bottom: 14px !important;
}

@media (max-width: 900px) {
  .about-section { padding: 70px 20px !important; }
  .about-section-inner { grid-template-columns: 1fr; gap: 40px; }
  .about-section h2 {
    position: static;
    text-align: center !important;
  }
  .about-section h2::before { text-align: center; }
  .about-section h2::after {
    margin: 22px auto 0 !important;
  }
  .about-grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  .about-box { padding: 24px 22px !important; }
}

/* =====================================================
   v4 추가 — 자재&견적 섹션 - 별도 상담 메시지 카드
   ===================================================== */
.nd-consult-msg {
  padding: 32px 16px;
  text-align: center;
  margin: 16px 0;
}
.nd-consult-title {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 18px;
  font-weight: 600;
  color: var(--gold-deep);
  letter-spacing: 4px;
  margin-bottom: 12px;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold), var(--gold-shine));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.nd-consult-desc {
  font-family: var(--font-serif);
  font-size: 14px;
  color: var(--text-sub);
  line-height: 1.7;
  margin: 0;
}

/* =====================================================
   v5 — 상세페이지 서비스 특징 (호텔 럭셔리 리스트형)
   ===================================================== */
.nd-features-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  background: #fff;
  border: 1px solid var(--line-gold);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.nd-feat-item {
  display: grid;
  grid-template-columns: 60px 56px 1fr 28px;
  align-items: center;
  gap: 22px;
  padding: 28px 32px;
  border-bottom: 1px solid var(--line-soft, rgba(26,26,26,0.06));
  position: relative;
  transition: all 0.4s cubic-bezier(.2,.8,.2,1);
  cursor: pointer;
}
.nd-feat-item:last-child { border-bottom: none; }
.nd-feat-item::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0; left: 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--gold-deep), var(--gold), var(--gold-shine));
  transform: scaleY(0);
  transform-origin: center;
  transition: transform 0.4s cubic-bezier(.2,.8,.2,1);
}
.nd-feat-item:hover::before { transform: scaleY(1); }
.nd-feat-item:hover {
  background: linear-gradient(90deg, rgba(245,237,216,0.5), transparent);
  padding-left: 40px;
}
.nd-feat-num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 32px;
  font-weight: 500;
  color: var(--gold);
  line-height: 1;
  opacity: 0.45;
  letter-spacing: -1px;
  transition: opacity 0.3s, color 0.3s;
}
.nd-feat-item:hover .nd-feat-num {
  opacity: 1;
  color: var(--gold-deep);
}
.nd-feat-icon {
  width: 48px; height: 48px;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px;
  background: var(--hanji);
  border: 1px solid var(--line-gold);
  border-radius: 50%;
  flex-shrink: 0;
  transition: all 0.4s;
}
.nd-feat-item:hover .nd-feat-icon {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold));
  border-color: var(--gold-deep);
  transform: rotate(5deg) scale(1.05);
}
.nd-feat-body {
  min-width: 0;
}
.nd-feat-title {
  font-family: var(--font-han) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  color: var(--text-main) !important;
  margin: 0 0 6px 0 !important;
  line-height: 1.4 !important;
}
.nd-feat-desc {
  font-family: var(--font-serif) !important;
  font-size: 14px !important;
  color: var(--text-sub) !important;
  line-height: 1.7 !important;
  margin: 0 !important;
  word-break: keep-all !important;
}
.nd-feat-arrow {
  color: var(--gold);
  opacity: 0;
  transform: translateX(-8px);
  transition: all 0.4s cubic-bezier(.2,.8,.2,1);
}
.nd-feat-item:hover .nd-feat-arrow {
  opacity: 1;
  transform: translateX(0);
}

@media (max-width: 768px) {
  .nd-feat-item {
    grid-template-columns: 40px 1fr;
    grid-template-rows: auto auto;
    padding: 20px 18px;
    gap: 8px 16px;
  }
  .nd-feat-item:hover { padding-left: 24px; }
  .nd-feat-num {
    font-size: 22px;
    grid-column: 1;
    grid-row: 1;
  }
  .nd-feat-icon {
    width: 36px; height: 36px;
    font-size: 18px;
    grid-column: 1;
    grid-row: 2;
    align-self: start;
  }
  .nd-feat-body {
    grid-column: 2;
    grid-row: 1 / 3;
  }
  .nd-feat-arrow { display: none; }
  .nd-feat-title { font-size: 15px !important; letter-spacing: 1px !important; }
  .nd-feat-desc { font-size: 13px !important; }
}

/* =====================================================
   v5 — 상세페이지 갤러리 매거진 스타일
   ===================================================== */
.nd-gallery-magazine {
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.gmag-group {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.gmag-cat-label {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line-gold);
}
.gmag-cat-num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 22px;
  font-weight: 500;
  color: var(--gold);
  letter-spacing: -0.5px;
}
.gmag-cat-name {
  font-family: var(--font-han);
  font-size: 17px;
  font-weight: 700;
  color: var(--text-main);
  letter-spacing: 2px;
}
.gmag-cat-en {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 11px;
  color: var(--gold-deep);
  letter-spacing: 4px;
  text-transform: uppercase;
  margin-left: auto;
  opacity: 0.85;
}

.gmag-grid {
  display: grid;
  gap: 10px;
}
/* Feature - 큰 좌측 1 + 작은 우측 2 (스택) */
.gmag-grid-feature {
  grid-template-columns: 2fr 1fr;
  grid-template-rows: 1fr;
}
.gmag-stack {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 10px;
}
/* 3열 */
.gmag-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}
/* 2열 와이드 */
.gmag-grid-2 {
  grid-template-columns: 1fr 1fr;
}

.gmag-item {
  position: relative;
  overflow: hidden;
  background: var(--cream);
  aspect-ratio: 4/3;
  border-radius: var(--radius-sm);
  cursor: pointer;
}
.gmag-item.gmag-large {
  aspect-ratio: 4/5;
  border-radius: var(--radius-md);
}
.gmag-item.gmag-wide {
  aspect-ratio: 16/10;
}
.gmag-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s cubic-bezier(.2,.8,.2,1);
  filter: brightness(0.97) saturate(0.95);
}
.gmag-item:hover img {
  transform: scale(1.08);
  filter: brightness(1.02) saturate(1.05);
}
.gmag-item::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid rgba(76,175,80,0);
  pointer-events: none;
  transition: border-color 0.4s, box-shadow 0.4s;
}
.gmag-item:hover::after {
  border-color: var(--gold);
  box-shadow: inset 0 0 0 3px rgba(102,187,106,0.15);
}
.gmag-item.nd-img-empty {
  background: 
    linear-gradient(135deg, var(--cream), var(--hanji));
  display: flex;
  align-items: center;
  justify-content: center;
}
.gmag-item.nd-img-empty img { display: none; }
.gmag-item .nd-img-empty-txt {
  display: none;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 13px;
  color: var(--text-light);
  letter-spacing: 3px;
  text-transform: uppercase;
}
.gmag-item.nd-img-empty .nd-img-empty-txt { display: block; }

@media (max-width: 768px) {
  .nd-gallery-magazine { gap: 36px; }
  .gmag-grid-feature {
    grid-template-columns: 1fr;
  }
  .gmag-stack {
    grid-template-rows: auto;
    grid-template-columns: 1fr 1fr;
  }
  .gmag-item.gmag-large { aspect-ratio: 16/10; }
  .gmag-grid-3 { grid-template-columns: 1fr 1fr; }
  .gmag-grid-3 .gmag-item:last-child { grid-column: 1 / -1; }
  .gmag-cat-en { font-size: 10px; letter-spacing: 2px; }
  .gmag-cat-name { font-size: 15px; letter-spacing: 1.5px; }
}

/* =====================================================
   v5 — 팀 프로필 카드 - 화려하게 (호텔 럭셔리)
   ===================================================== */
.team-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
  gap: 24px !important;
}
.profile-card {
  background: var(--ivory) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-md) !important;
  overflow: hidden !important;
  position: relative;
  transition: all 0.5s cubic-bezier(.2,.8,.2,1) !important;
  cursor: pointer;
  isolation: isolate;
}
.profile-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--gold-deep), var(--gold-shine), var(--gold));
  z-index: 5;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s cubic-bezier(.2,.8,.2,1);
}
.profile-card:hover::before { transform: scaleX(1); }
.profile-card:hover {
  transform: translateY(-8px) !important;
  box-shadow: var(--shadow-gold) !important;
  border-color: var(--gold) !important;
}

/* 인덱스 번호 (우상단) */
.profile-index {
  position: absolute;
  top: 14px; right: 18px;
  z-index: 5;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 13px;
  color: var(--gold-shine);
  letter-spacing: 2px;
  background: rgba(26,26,26,0.55);
  backdrop-filter: blur(8px);
  padding: 4px 10px;
  border: 1px solid rgba(102,187,106,0.4);
  border-radius: 20px;
  font-weight: 600;
}

/* 코너 장식 */
.profile-corner {
  position: absolute;
  width: 18px; height: 18px;
  border: 1px solid var(--gold);
  pointer-events: none;
  z-index: 4;
  transition: all 0.5s;
  opacity: 0;
}
.profile-corner-tl {
  top: 10px; left: 10px;
  border-right: none; border-bottom: none;
}
.profile-corner-br {
  bottom: 10px; right: 10px;
  border-left: none; border-top: none;
}
.profile-card:hover .profile-corner {
  opacity: 1;
}

/* 사진 영역 */
.profile-photo-wrap {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, var(--hanji), var(--cream)) !important;
  position: relative;
}
.profile-photo {
  width: 100%; height: 100%;
  object-fit: cover; object-position: top;
  display: block;
  transition: transform 0.8s cubic-bezier(.2,.8,.2,1) !important;
  filter: grayscale(15%) brightness(0.97);
}
.profile-card:hover .profile-photo {
  transform: scale(1.08) !important;
  filter: grayscale(0%) brightness(1.02);
}
.profile-photo-fallback {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold)) !important;
  color: white !important;
  font-family: var(--font-han) !important;
  font-size: 64px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

/* 오버레이 (사진 위 정보) */
.profile-overlay {
  position: absolute !important;
  bottom: 0 !important; left: 0 !important; right: 0 !important;
  padding: 50px 18px 16px !important;
  background: linear-gradient(transparent, rgba(26,26,26,0.85) 60%) !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.profile-role-en {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 11px;
  color: var(--gold-shine);
  letter-spacing: 4px;
  text-transform: uppercase;
  opacity: 0.9;
}
.profile-name-overlay {
  font-family: var(--font-han) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: white !important;
  letter-spacing: 6px !important;
  margin: 4px 0 6px;
}
.profile-role-badge {
  font-family: var(--font-han) !important;
  background: var(--gold) !important;
  color: var(--ink) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  padding: 3px 12px !important;
  border-radius: 50px !important;
  letter-spacing: 2px !important;
}

/* 텍스트 정보 */
.profile-info {
  padding: 22px 20px 24px !important;
  display: flex; flex-direction: column;
  gap: 12px !important;
  text-align: center;
}
.profile-career {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--gold-deep) !important;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
  letter-spacing: 1.5px !important;
  position: relative;
  padding-bottom: 12px !important;
}
.profile-career::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 24px; height: 1px;
  background: var(--gold);
  opacity: 0.5;
}
.profile-desc {
  font-family: var(--font-serif) !important;
  font-size: 13px !important;
  color: var(--text-sub) !important;
  line-height: 1.75 !important;
  margin: 0 !important;
  word-break: keep-all !important;
}
.profile-skills {
  margin-top: 4px !important;
  justify-content: center !important;
}
.skill-tag {
  font-family: var(--font-han) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  color: var(--gold-deep) !important;
  background: var(--hanji) !important;
  border: 1px solid var(--line-gold) !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  letter-spacing: 0.5px !important;
}

/* 모바일 - 1열 세로형 유지 (가로형 X) */
@media (max-width: 600px) {
  .team-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 14px !important; }
  .profile-info { padding: 16px 14px 18px !important; gap: 10px !important; }
  .profile-name-overlay { font-size: 18px !important; letter-spacing: 4px !important; }
  .profile-role-en { font-size: 10px; letter-spacing: 3px; }
  .profile-overlay { padding: 36px 12px 12px !important; }
  .profile-role-badge { font-size: 10px !important; padding: 2px 10px !important; }
  .profile-career { font-size: 11px !important; letter-spacing: 1px !important; }
  .profile-desc { font-size: 12px !important; line-height: 1.6 !important; }
  .skill-tag { font-size: 10px !important; padding: 3px 7px !important; }
  .profile-index { font-size: 11px; padding: 3px 8px; top: 10px; right: 10px; }
}

/* 모바일에서 기존 가로형 강제 오버라이드 차단 */
@media (max-width: 768px) {
  .profile-card {
    flex-direction: column !important;
    align-items: stretch !important;
  }
}

/* =====================================================
   v6 - 메인 고객관리 서비스 섹션 (새 디자인)
   좌측 텍스트+카운터 / 우측 비대칭 이미지 그리드
   ===================================================== */
.service-section {
  position: relative;
  padding: 120px 24px;
  background: 
    radial-gradient(ellipse at 30% 20%, rgba(102,187,106,0.08), transparent 50%),
    radial-gradient(ellipse at 70% 80%, rgba(27,94,32,0.06), transparent 50%),
    linear-gradient(160deg, var(--ink) 0%, var(--ink-soft) 60%, var(--ink) 100%);
  color: var(--ivory);
  overflow: hidden;
}
.service-deco-line {
  position: absolute;
  left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
  opacity: 0.4;
  z-index: 1;
}
.service-deco-line-top { top: 0; }
.service-deco-line-bottom { bottom: 0; }

.service-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 80px;
  align-items: center;
  position: relative;
  z-index: 2;
}

/* 좌측 텍스트 */
.service-text {
  position: relative;
}
.service-eyebrow {
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 13px;
  color: var(--gold-shine);
  letter-spacing: 6px;
  text-transform: uppercase;
  margin-bottom: 20px;
  opacity: 0.9;
}
.service-title {
  font-family: var(--font-han) !important;
  font-size: clamp(32px, 4vw, 48px) !important;
  font-weight: 700 !important;
  color: var(--ivory) !important;
  line-height: 1.4 !important;
  letter-spacing: 3px !important;
  margin: 0 0 24px 0 !important;
}
.service-title strong {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-weight: 600 !important;
  background: linear-gradient(135deg, var(--gold-shine), var(--gold-pale), var(--gold)) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  letter-spacing: 2px !important;
}
.service-desc {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 300;
  color: rgba(250,244,229,0.7);
  line-height: 1.9;
  margin: 0 0 48px 0;
  word-break: keep-all;
}

/* 카운터 영역 */
.service-counters {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding-top: 36px;
  border-top: 1px solid rgba(102,187,106,0.25);
}
.service-counter {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  gap: 24px;
}
.counter-num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(36px, 5vw, 54px);
  font-weight: 500;
  color: var(--gold-shine);
  line-height: 1;
  letter-spacing: -1px;
  background: linear-gradient(135deg, var(--gold-shine), var(--gold-pale));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  min-width: 140px;
}
.counter-num em {
  font-style: normal;
  font-size: 0.55em;
  margin-left: 4px;
  opacity: 0.7;
}
.counter-label {
  font-family: var(--font-han);
  font-size: 13px;
  font-weight: 400;
  color: rgba(250,244,229,0.6);
  letter-spacing: 3px;
  padding-bottom: 4px;
  border-bottom: 1px solid transparent;
  position: relative;
}
.counter-label::after {
  content: '';
  position: absolute;
  bottom: -1px; left: 0;
  width: 20px; height: 1px;
  background: var(--gold);
  opacity: 0.6;
}

/* 우측 비대칭 이미지 그리드 */
.service-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 16px;
  height: 540px;
}
.service-img {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, var(--ink-soft), #3a2f24);
  border: 1px solid rgba(102,187,106,0.15);
  border-radius: var(--radius-sm);
  cursor: pointer;
}
.service-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  filter: brightness(0.85) saturate(0.95) grayscale(10%);
  transition: all 1s cubic-bezier(.2,.8,.2,1);
}
.service-img:hover img {
  filter: brightness(1.05) saturate(1.05) grayscale(0%);
  transform: scale(1.08);
}
.service-img::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 60%, rgba(26,26,26,0.5) 100%);
  pointer-events: none;
}
.service-img-num {
  position: absolute;
  bottom: 16px; right: 18px;
  z-index: 2;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 13px;
  color: var(--gold-shine);
  letter-spacing: 3px;
  opacity: 0.9;
}
/* 비대칭 배치 */
.service-img-1 { grid-row: 1 / 3; grid-column: 1; }
.service-img-2 { grid-row: 1; grid-column: 2; }
.service-img-3 { grid-row: 2; grid-column: 2; aspect-ratio: auto; }
.service-img-4 { display: none; }

.service-img-empty {
  display: flex;
  align-items: center;
  justify-content: center;
}
.service-img-empty::before {
  content: '— Image —';
  font-family: var(--font-display);
  font-style: italic;
  font-size: 12px;
  color: rgba(102,187,106,0.5);
  letter-spacing: 3px;
}
.service-img-empty img { display: none; }

@media (max-width: 900px) {
  .service-section { padding: 70px 20px; }
  .service-inner { grid-template-columns: 1fr; gap: 48px; }
  .service-desc { margin-bottom: 32px; }
  .service-counters { gap: 16px; padding-top: 24px; }
  .service-counter { gap: 16px; }
  .counter-num { min-width: 110px; font-size: 36px; }
  .counter-label { font-size: 11px; letter-spacing: 2px; }
  .service-gallery { 
    height: auto; 
    grid-template-columns: 1fr 1fr; 
    grid-template-rows: 200px 200px;
    gap: 10px; 
  }
  .service-img-4 { display: block; grid-row: 2; grid-column: 2; }
  .service-img-1 { grid-row: 1 / 2; grid-column: 1; }
  .service-img-2 { grid-row: 1; grid-column: 2; }
  .service-img-3 { grid-row: 2; grid-column: 1; }
}

/* 기존 stats-section 무력화 */
.stats-section { display: none !important; }

/* =====================================================
   v6 - 팀 프로필 카드 (새 디자인)
   사진은 깔끔하게, 텍스트는 사진 아래 별도 영역
   ===================================================== */
/* 사진 위 오버레이 제거 (기존) */
.profile-overlay { display: none !important; }

/* 프로필 카드 - 깔끔한 매거진 스타일 */
.profile-card {
  background: var(--ivory) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-md) !important;
  overflow: hidden !important;
  position: relative;
  transition: all 0.5s cubic-bezier(.2,.8,.2,1) !important;
  display: flex !important;
  flex-direction: column !important;
}

/* 사진 영역 - 텍스트 없이 깔끔하게 */
.profile-photo-wrap {
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, var(--hanji), var(--cream)) !important;
  position: relative;
}
.profile-photo {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center top;
  display: block;
  transition: transform 0.8s cubic-bezier(.2,.8,.2,1) !important;
  filter: grayscale(10%);
}
.profile-card:hover .profile-photo {
  transform: scale(1.06) !important;
  filter: grayscale(0%);
}
.profile-photo-fallback {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold)) !important;
  color: white !important;
  font-family: var(--font-han) !important;
  font-size: 72px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

/* 인덱스 번호 - 사진 우상단에 작게 */
.profile-index {
  position: absolute;
  top: 12px; right: 12px;
  z-index: 5;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 11px;
  color: var(--ivory);
  letter-spacing: 2px;
  background: rgba(26,26,26,0.55);
  backdrop-filter: blur(8px);
  padding: 4px 10px;
  border: 1px solid rgba(102,187,106,0.4);
  border-radius: 20px;
  font-weight: 600;
}

/* 사진 하단 살짝의 그라데이션 (자연스러운 전환) */
.profile-photo-wrap::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(transparent, rgba(26,26,26,0.18));
  pointer-events: none;
}

/* 텍스트 정보 영역 */
.profile-info {
  padding: 24px 22px 26px !important;
  display: flex; flex-direction: column;
  gap: 10px !important;
  text-align: center;
  flex: 1;
}

/* 영문 직급 */
.profile-role-en {
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 11px;
  color: var(--gold-deep);
  letter-spacing: 4px;
  text-transform: uppercase;
  opacity: 0.85;
  margin-bottom: 4px;
}

/* 한글 이름 + 직급 */
.profile-name {
  font-family: var(--font-han) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--text-main) !important;
  letter-spacing: 4px !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}
.profile-role-han {
  font-family: var(--font-serif) !important;
  font-style: normal !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--gold-deep) !important;
  letter-spacing: 2px !important;
  margin-left: 6px;
  vertical-align: middle;
}

/* 디바이더 */
.profile-divider {
  display: block;
  width: 32px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  margin: 8px auto;
}

/* 경력 */
.profile-career {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--gold-deep) !important;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
  letter-spacing: 1px !important;
  margin: 0 !important;
}
.profile-career::after { display: none !important; }

/* 설명 */
.profile-desc {
  font-family: var(--font-serif) !important;
  font-size: 13px !important;
  color: var(--text-sub) !important;
  line-height: 1.75 !important;
  margin: 0 !important;
  word-break: keep-all !important;
}

/* 스킬 태그 */
.profile-skills {
  margin-top: 6px !important;
  justify-content: center !important;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.skill-tag {
  font-family: var(--font-han) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  color: var(--gold-deep) !important;
  background: var(--hanji) !important;
  border: 1px solid var(--line-gold) !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  letter-spacing: 0.5px !important;
}

/* 호버 */
.profile-card:hover {
  transform: translateY(-6px) !important;
  box-shadow: var(--shadow-gold) !important;
  border-color: var(--gold) !important;
}

/* 모바일 */
@media (max-width: 600px) {
  .team-grid { 
    grid-template-columns: repeat(2, 1fr) !important; 
    gap: 12px !important; 
  }
  .profile-info { padding: 18px 14px 20px !important; gap: 8px !important; }
  .profile-name { font-size: 17px !important; letter-spacing: 3px !important; }
  .profile-role-han { font-size: 11px !important; }
  .profile-role-en { font-size: 10px; letter-spacing: 3px; }
  .profile-career { font-size: 11px !important; }
  .profile-desc { font-size: 12px !important; line-height: 1.6 !important; }
  .skill-tag { font-size: 10px !important; padding: 3px 7px !important; }
  .profile-index { font-size: 10px; padding: 3px 8px; top: 10px; right: 10px; }
}

/* =====================================================
   v7 — 헤더 SNS 버튼 (about/detail/estimate)
   ===================================================== */
.header-sns {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: 16px;
  margin-right: 12px;
}
.header-sns-btn {
  width: 36px; height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background: var(--ivory);
  border: 1px solid var(--line-gold);
  color: var(--gold-deep);
  transition: all 0.35s cubic-bezier(.2,.8,.2,1);
  position: relative;
  overflow: hidden;
}
.header-sns-btn::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold), var(--gold-shine));
  opacity: 0;
  transition: opacity 0.35s;
}
.header-sns-btn:hover::before { opacity: 1; }
.header-sns-btn:hover {
  color: white;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(76,175,80,0.4);
  border-color: var(--gold);
}
.header-sns-btn > * { position: relative; z-index: 1; }
.sns-n {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 700;
  font-size: 17px;
  line-height: 1;
}

@media (max-width: 900px) {
  .header-sns { display: none; }
}

/* =====================================================
   v7 — about/detail 페이지 우하단 floating quick-menu 숨김
   ===================================================== */
body:not(.has-main-quick) .quick-menu:not(.is-main-quick) {
  /* fallback - 직접 페이지에서 제거 */
}

/* =====================================================
   v7 — 메인 페이지 quick-menu 색상 골드로 통일
   ===================================================== */
.quick-btn.youtube,
.quick-btn.blog,
.quick-btn.call {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold)) !important;
  border: 1px solid var(--gold-shine) !important;
  color: white !important;
  box-shadow: 0 4px 14px rgba(76,175,80,0.3) !important;
}
.quick-btn.youtube:hover,
.quick-btn.blog:hover,
.quick-btn.call:hover {
  background: linear-gradient(135deg, var(--ink), var(--gold-deep)) !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 6px 20px rgba(102,187,106,0.4) !important;
}
.quick-btn .qicon,
.quick-btn .qicon-n {
  color: white !important;
}
.quick-btn .qicon-n {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-weight: 700 !important;
}
.quick-toggle-btn {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold)) !important;
  border: 1px solid var(--gold-shine) !important;
  box-shadow: 0 4px 14px rgba(76,175,80,0.3) !important;
}
.quick-toggle-btn:hover {
  background: linear-gradient(135deg, var(--ink), var(--gold-deep)) !important;
}

/* 플로팅 홈 버튼도 골드 */
.floating-home-btn {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold)) !important;
  border: 1px solid var(--gold-shine) !important;
  color: white !important;
  box-shadow: 0 4px 14px rgba(76,175,80,0.3) !important;
}
.floating-home-btn:hover {
  background: linear-gradient(135deg, var(--ink), var(--gold-deep)) !important;
  color: var(--gold-shine) !important;
}

/* =====================================================
   v7 — 후기 카드 디자인 (잡지 인용구 스타일)
   ===================================================== */
.review-section {
  background: 
    radial-gradient(ellipse at top, rgba(102,187,106,0.06), transparent 50%),
    var(--paper) !important;
  padding: 110px 24px !important;
  position: relative;
}
.review-section::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 240px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.review-section h2 {
  text-align: center !important;
  font-size: clamp(28px, 3.5vw, 40px) !important;
  margin-bottom: 56px !important;
}

.review-slider-wrap {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
}
.review-nav-btn {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background: var(--ivory) !important;
  border: 1px solid var(--gold) !important;
  color: var(--gold-deep) !important;
  cursor: pointer;
  display: flex !important;
  align-items: center;
  justify-content: center;
  transition: all 0.35s !important;
  box-shadow: var(--shadow-sm);
  z-index: 10;
}
.review-nav-btn:hover {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold)) !important;
  color: white !important;
  border-color: var(--gold-deep) !important;
}

/* 후기 카드 - 매거진 인용구 스타일 */
.review-swiper { padding: 40px 0 60px !important; }

.review-card {
  background: var(--ivory) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-md) !important;
  padding: 0 !important;
  overflow: hidden !important;
  position: relative;
  height: 100%;
  display: flex !important;
  flex-direction: column !important;
  transition: all 0.5s cubic-bezier(.2,.8,.2,1);
}
.review-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--gold-deep), var(--gold-shine), var(--gold));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s cubic-bezier(.2,.8,.2,1);
  z-index: 5;
}
.review-card:hover::before { transform: scaleX(1); }
.review-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-gold);
  border-color: var(--gold);
}

.review-img-wrap {
  width: 100%;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: linear-gradient(135deg, var(--hanji), var(--cream));
}
.review-img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.8s cubic-bezier(.2,.8,.2,1);
  filter: brightness(0.95);
}
.review-card:hover .review-img {
  transform: scale(1.06);
  filter: brightness(1);
}

.review-body {
  padding: 28px 24px 24px !important;
  display: flex;
  flex-direction: column;
  gap: 14px;
  flex: 1;
  position: relative;
}
/* 큰 따옴표 잉크 장식 */
.review-body::before {
  content: '"';
  position: absolute;
  top: 8px; left: 18px;
  font-family: var(--font-display);
  font-size: 84px;
  font-style: italic;
  color: var(--gold);
  opacity: 0.13;
  line-height: 1;
  pointer-events: none;
  font-weight: 600;
}

.review-card .stars {
  display: flex;
  gap: 2px;
  position: relative;
  z-index: 1;
}
.review-card .stars .star-icon {
  color: var(--gold) !important;
  filter: drop-shadow(0 1px 2px rgba(76,175,80,0.3));
}

.review-card .review-text {
  font-family: var(--font-serif) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: var(--text-main) !important;
  line-height: 1.85 !important;
  margin: 0 !important;
  word-break: keep-all !important;
  position: relative;
  z-index: 1;
  flex: 1;
}

.review-card .review-author {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--gold-deep) !important;
  letter-spacing: 2px !important;
  margin: 0 !important;
  padding-top: 16px;
  border-top: 1px dashed var(--line-gold);
  position: relative;
  z-index: 1;
}

/* 페이지네이션 골드 */
.review-pagination {
  text-align: center;
  margin-top: 24px;
}
.review-pagination .swiper-pagination-bullet {
  background: var(--gold-pale) !important;
  opacity: 0.5 !important;
  width: 8px !important;
  height: 8px !important;
}
.review-pagination .swiper-pagination-bullet-active {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold)) !important;
  opacity: 1 !important;
  width: 28px !important;
  border-radius: 4px !important;
}

@media (max-width: 768px) {
  .review-section { padding: 70px 16px !important; }
  .review-body { padding: 20px 18px 18px !important; }
  .review-body::before { font-size: 64px; top: 4px; left: 14px; }
}

/* =====================================================
   v7 — 상세페이지 디자인 전체 격상
   ===================================================== */

/* 페이지 래퍼 - 한지 톤 배경 */
.nd-page-wrap {
  background: var(--bg);
  padding-top: 32px !important;
  padding-bottom: 80px !important;
  position: relative;
}
.nd-page-wrap::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 200px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity: 0.5;
}

/* 사이드바 - 골드 라인 + 한지 톤 */
.nd-page-wrap .sidebar {
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 0 !important;
  position: sticky;
  top: 90px;
  width: 220px !important;
}
.sidebar a {
  font-family: var(--font-han) !important;
  font-size: 14px !important;
  letter-spacing: 1.5px !important;
  color: var(--text-sub) !important;
  padding: 14px 22px !important;
  display: block !important;
  position: relative;
  transition: all 0.3s;
  text-decoration: none;
  border-bottom: 1px solid var(--line-soft, rgba(26,26,26,0.06));
}
.sidebar a:last-child { border-bottom: none; }
.sidebar a::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--gold-deep), var(--gold));
  transform: scaleY(0);
  transition: transform 0.3s;
}
.sidebar a:hover {
  background: var(--paper) !important;
  color: var(--gold-deep) !important;
  padding-left: 28px !important;
}
.sidebar a:hover::before { transform: scaleY(1); }
.sidebar a.active {
  background: var(--paper) !important;
  color: var(--gold-deep) !important;
  font-weight: 700 !important;
  padding-left: 28px !important;
}
.sidebar a.active::before { transform: scaleY(1); }

/* 모바일에서 사이드바 → 가로 탭 */
@media (max-width: 1100px) {
  .nd-page-wrap .sidebar {
    width: 100% !important;
    border-radius: 0 !important;
    border: none !important;
    border-bottom: 1px solid var(--gold) !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto;
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--ivory) !important;
  }
  .sidebar a {
    border-bottom: none !important;
    padding: 14px 18px !important;
    font-size: 13px !important;
  }
  .sidebar a::before {
    width: 100% !important;
    height: 2px !important;
    bottom: 0 !important;
    top: auto !important;
    background: linear-gradient(90deg, var(--gold-deep), var(--gold)) !important;
    transform: scaleX(0) !important;
  }
  .sidebar a:hover, .sidebar a.active {
    padding-left: 18px !important;
  }
  .sidebar a:hover::before, .sidebar a.active::before {
    transform: scaleX(1) !important;
  }
}

/* 유튜브 영상 카드 */
.yt-embed-wrap {
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 24px;
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
}
.yt-embed-wrap::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.yt-embed-label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  font-family: var(--font-han);
  font-size: 14px;
  font-weight: 700;
  color: var(--text-main);
  letter-spacing: 2px;
}
.yt-embed-label svg { color: #CC0000 !important; fill: #CC0000 !important; }
.yt-embed-container {
  position: relative;
  aspect-ratio: 16/9;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--ink);
  border: 1px solid var(--line-gold);
}
.yt-embed-container iframe {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  border: none;
}
.yt-channel-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 13px;
  color: var(--gold-deep);
  letter-spacing: 1.5px;
  text-decoration: none;
  transition: all 0.3s;
}
.yt-channel-link:hover {
  color: var(--gold);
  letter-spacing: 2px;
}

/* 모바일 카테고리 셀렉터 */
.mobile-cat-selector {
  background: var(--ivory) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm);
  padding: 16px 18px !important;
  margin-bottom: 20px;
}
.mobile-cat-label {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: 11px !important;
  color: var(--gold-deep) !important;
  letter-spacing: 4px !important;
  text-transform: uppercase !important;
}
.mobile-cat-wrap select {
  background: var(--paper) !important;
  border: 1px solid var(--line-gold) !important;
  border-radius: var(--radius-sm) !important;
  font-family: var(--font-han) !important;
  font-size: 15px !important;
  color: var(--text-main) !important;
  letter-spacing: 1.5px !important;
}
.mobile-cat-wrap select:focus {
  border-color: var(--gold) !important;
  outline: none !important;
}
.mobile-cat-arrow { color: var(--gold-deep) !important; }

/* 상세 페이지 섹션 카드형 격상 */
.nd-section {
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  margin-bottom: 24px;
  padding: 48px 36px !important;
  position: relative;
  overflow: hidden;
}
.nd-section::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
  opacity: 0.4;
}
.nd-section-inner { 
  max-width: none; 
  position: relative;
  z-index: 1;
}
.nd-label {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: 12px !important;
  letter-spacing: 6px !important;
  color: var(--gold-deep) !important;
  text-transform: uppercase !important;
  margin-bottom: 14px !important;
  display: block !important;
  font-weight: 600 !important;
}
.nd-section-title {
  font-family: var(--font-han) !important;
  font-size: clamp(24px, 3vw, 32px) !important;
  font-weight: 700 !important;
  color: var(--text-main) !important;
  letter-spacing: 2px !important;
  line-height: 1.4 !important;
  margin-bottom: 32px !important;
  position: relative;
  padding-bottom: 20px;
}
.nd-section-title::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 60px; height: 1px;
  background: linear-gradient(90deg, var(--gold-deep), var(--gold-shine), transparent);
}

/* 히어로 - 풍성하게 */
.nd-hero {
  min-height: 540px !important;
  margin-bottom: 24px;
  border: 1px solid var(--gold) !important;
  border-radius: var(--radius-md) !important;
  position: relative;
  overflow: hidden;
}
.nd-hero::after {
  content: '';
  position: absolute;
  inset: 14px;
  border: 1px solid rgba(102,187,106,0.25);
  pointer-events: none;
  z-index: 2;
  border-radius: var(--radius-sm);
}
.nd-hero-bg {
  filter: brightness(0.55) saturate(0.95);
}
.nd-hero-overlay {
  background: linear-gradient(to top, rgba(26,26,26,0.95) 0%, rgba(26,26,26,0.5) 60%, rgba(26,26,26,0.2) 100%) !important;
}
.nd-hero-inner {
  padding: 64px 48px !important;
  z-index: 3 !important;
}
.nd-tag {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: 11px !important;
  letter-spacing: 5px !important;
  text-transform: uppercase !important;
  background: rgba(26,26,26,0.55) !important;
  backdrop-filter: blur(6px);
  border: 1px solid rgba(102,187,106,0.55) !important;
  color: var(--gold-shine) !important;
  padding: 6px 18px !important;
  border-radius: 50px !important;
  font-weight: 600 !important;
}
.nd-hero-title {
  font-family: var(--font-han) !important;
  font-size: clamp(26px, 3.5vw, 38px) !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
  line-height: 1.5 !important;
  color: var(--ivory) !important;
}
.nd-hero-title strong {
  display: inline-block !important;
  background: linear-gradient(135deg, var(--gold-shine), var(--gold-pale), var(--gold)) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  border: none !important;
  background-color: transparent !important;
  padding: 0 !important;
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-weight: 600 !important;
}
.nd-hero-sub {
  font-family: var(--font-serif) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  line-height: 1.9 !important;
  color: rgba(250,244,229,0.78) !important;
  max-width: 640px;
}
.nd-hero-stats {
  margin-top: 32px !important;
  gap: 12px !important;
}
.nd-hero-stats .dp-stat {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(102,187,106,0.35) !important;
  border-radius: 0 !important;
  padding: 14px 20px !important;
  position: relative;
}
.nd-hero-stats .dp-stat::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 16px; height: 1px;
  background: var(--gold-shine);
}
.nd-hero-stats .dp-stat strong {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-weight: 500 !important;
  color: var(--gold-shine) !important;
  font-size: 18px !important;
}
.nd-hero-stats .dp-stat span {
  font-family: var(--font-han) !important;
  color: rgba(250,244,229,0.6) !important;
  font-size: 10px !important;
  letter-spacing: 2px !important;
}

/* Before/After 다크 - 더 깊게 */
.nd-dark {
  background: 
    radial-gradient(ellipse at top, rgba(76,175,80,0.1), transparent 50%),
    linear-gradient(160deg, var(--ink) 0%, var(--ink-soft) 100%) !important;
  border: 1px solid rgba(102,187,106,0.3) !important;
  position: relative;
}
.nd-dark::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
  opacity: 0.6;
}
.nd-dark .nd-section-title { color: var(--ivory) !important; }
.nd-dark .nd-label { color: var(--gold-shine) !important; }
.nd-ba-img-wrap {
  border-radius: var(--radius-sm) !important;
  border: 1px solid rgba(102,187,106,0.2) !important;
}
.nd-ba-tag {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  letter-spacing: 3px !important;
  border-radius: 0 !important;
}
.before-t {
  background: rgba(26,26,26,0.8) !important;
  color: var(--gold-pale) !important;
  border: 1px solid rgba(102,187,106,0.4) !important;
}
.after-t {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold)) !important;
  color: white !important;
  border: 1px solid var(--gold-shine) !important;
}
.nd-ba-divider {
  background: rgba(102,187,106,0.3) !important;
}

/* 시공 프로세스 카드 - 한지 톤 */
.nd-process-section {
  background: 
    radial-gradient(ellipse at top right, rgba(102,187,106,0.06), transparent 40%),
    var(--hanji-warm) !important;
  border-color: var(--line-gold) !important;
}
.nd-proc-list {
  background: var(--ivory) !important;
  border: 1px solid var(--line-gold) !important;
  border-radius: var(--radius-md) !important;
  overflow: hidden;
}
.nd-proc-row {
  border-bottom: 1px solid var(--line-soft, rgba(26,26,26,0.06)) !important;
  padding: 20px 24px !important;
  transition: all 0.3s;
}
.nd-proc-row:hover {
  background: var(--paper) !important;
  padding-left: 30px !important;
}
.nd-proc-row:last-child { border-bottom: none !important; }
.nd-proc-num {
  background: linear-gradient(135deg, var(--ink), var(--ink-soft)) !important;
  border: 1px solid var(--gold) !important;
  border-radius: 50% !important;
  width: 44px !important;
  height: 44px !important;
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-weight: 500 !important;
  color: var(--gold-shine) !important;
}
.nd-proc-icon { color: var(--gold-deep) !important; }
.nd-proc-title {
  font-family: var(--font-han) !important;
  letter-spacing: 1.5px !important;
  color: var(--text-main) !important;
}
.nd-proc-desc {
  font-family: var(--font-serif) !important;
  color: var(--text-sub) !important;
}
.nd-proc-footer {
  background: linear-gradient(135deg, var(--hanji), var(--cream)) !important;
  border-radius: var(--radius-sm) !important;
  font-family: var(--font-han) !important;
  letter-spacing: 1px !important;
  color: var(--gold-deep) !important;
  border: 1px solid var(--line-gold);
}

/* 자재 + 견적 섹션 */
.nd-price-section {
  background: 
    radial-gradient(ellipse at bottom, rgba(102,187,106,0.06), transparent 50%),
    var(--paper) !important;
  border-color: var(--line-gold) !important;
}
.nd-material-box {
  background: var(--ivory) !important;
  border: 1px solid var(--gold) !important;
  border-radius: var(--radius-md) !important;
  padding: 24px 28px !important;
  position: relative;
  overflow: hidden;
}
.nd-material-box::before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--gold-deep), var(--gold), var(--gold-shine));
}
.nd-material-icon {
  background: linear-gradient(135deg, var(--hanji), var(--cream)) !important;
  border: 1px solid var(--gold) !important;
}
.nd-material-text strong {
  font-family: var(--font-han) !important;
  color: var(--text-main) !important;
  letter-spacing: 1.5px !important;
}
.nd-material-text p {
  font-family: var(--font-serif) !important;
  color: var(--text-sub) !important;
}

.nd-price-box {
  background: var(--ivory) !important;
  border: 1px solid var(--line-gold) !important;
  border-radius: var(--radius-md) !important;
  padding: 32px 28px !important;
}
.nd-price-meta {
  border-bottom: 1px dashed var(--line-gold) !important;
}
.nd-price-meta .nd-meta-icon {
  background: var(--paper) !important;
  border: 1px solid var(--line-gold) !important;
  border-radius: 50% !important;
}
.meta-text em {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  color: var(--gold-deep) !important;
  letter-spacing: 3px !important;
}
.meta-text .meta-value {
  font-family: var(--font-han) !important;
  color: var(--text-main) !important;
  letter-spacing: 1px !important;
}

.nd-consult-msg {
  text-align: center;
  padding: 28px 16px !important;
  margin: 20px 0 !important;
  background: var(--bg);
  border: 1px dashed var(--line-gold);
  border-radius: var(--radius-sm);
}
.nd-consult-title {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 20px;
  letter-spacing: 4px;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold-shine));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 10px;
}
.nd-consult-desc {
  font-family: var(--font-serif);
  color: var(--text-sub);
  font-size: 14px;
}

.nd-price-cta {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold), var(--gold-shine)) !important;
  border: 1px solid var(--gold-deep) !important;
  border-radius: var(--radius-md) !important;
  padding: 20px 24px !important;
  transition: all 0.4s !important;
  box-shadow: 0 4px 16px rgba(76,175,80,0.3);
}
.nd-price-cta:hover {
  background: linear-gradient(135deg, var(--ink), var(--gold-deep)) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(76,175,80,0.4);
}
.nd-price-cta .cta-phone-ico {
  background: var(--ivory) !important;
}
.nd-price-cta .cta-phone-num {
  font-family: var(--font-display) !important;
  font-style: italic !important;
}
.nd-price-cta .cta-desc {
  font-family: var(--font-han) !important;
  letter-spacing: 1.5px !important;
}

@media (max-width: 768px) {
  .nd-section { padding: 32px 22px !important; }
  .nd-hero { min-height: 360px !important; }
  .nd-hero-inner { padding: 32px 24px !important; }
}

/* =====================================================
   v8 — 모바일 정렬 + 홈 버튼 위치 + 후기 이미지 16:9
   ===================================================== */

/* ─── 홈 버튼 위치 수정 (모든 페이지) ─── */
/* 우하단 quick-menu가 있는 메인은 홈버튼이 quick-menu 옆에 위치하지 않고
   완전히 독립된 우하단 위치로. about/detail/estimate은 quick-menu가 없으므로 가장자리. */
.floating-home-btn {
  position: fixed !important;
  right: 24px !important;
  bottom: 24px !important;
  left: auto !important;
}
/* 메인 페이지의 quick-menu와 겹치지 않도록 quick-menu가 있을 때만 위로 살짝 */
body:has(.quick-menu) .floating-home-btn {
  bottom: 100px !important;
}
@media (max-width: 768px) {
  .floating-home-btn {
    right: 16px !important;
    bottom: 16px !important;
    width: 50px !important;
    height: 50px !important;
  }
  body:has(.quick-menu) .floating-home-btn {
    bottom: 84px !important;
  }
}

/* ─── 후기 이미지 16:9 비율 ─── */
.review-img-wrap {
  aspect-ratio: 16 / 9 !important;
}

/* ─── 견적 박스 보더 잘림 해결 ─── */
.nd-price-section .nd-price-box {
  overflow: visible !important;
  padding: 32px 28px 32px !important;
}
/* CTA 호버 시 위로 떠도 잘리지 않도록 */
.nd-price-cta {
  margin-top: 8px !important;
}

/* =====================================================
   v8 — 모바일 줄맞춤 (전체 페이지)
   ===================================================== */
@media (max-width: 900px) {
  /* 네비 - 로고와 햄버거만 깔끔하게 */
  .top-navbar {
    padding: 0 !important;
  }
  .navbar-inner {
    padding: 12px 16px !important;
    min-height: 56px;
  }
  .logo-area {
    gap: 10px !important;
  }
  .nav-phone {
    font-size: 12px !important;
    padding: 6px 10px !important;
  }
  .main-menu {
    display: none !important;
  }
  .mobile-menu-btn {
    margin-left: auto !important;
  }

  /* 메인 콘텐츠 좌우 패딩 통일 */
  .main-content-wrap,
  .sub-page-container,
  .review-section,
  .stats-section,
  .service-section,
  .about-section,
  .zigzag-section {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* 섹션별 내부 정렬 */
  .category-grid {
    padding: 24px 0 !important;
    gap: 16px !important;
  }

  /* 영문 부제 자동 추가 모바일 조정 */
  .about-section h2::before,
  .review-section h2::before,
  .zigzag-header h2::before {
    font-size: 10px !important;
    letter-spacing: 4px !important;
    margin-bottom: 10px !important;
  }
}

@media (max-width: 600px) {
  /* about/detail 컨테이너 */
  .sub-page-container {
    padding: 32px 18px !important;
    margin: 16px 12px !important;
    border-radius: 12px !important;
  }
  
  /* 연혁 카드 */
  .history-block {
    padding: 20px 16px !important;
  }
  .history-headline {
    padding: 20px 18px !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
  }
  .history-era {
    font-size: 11px !important;
    padding: 4px 10px !important;
  }
  .history-period {
    font-size: 12px !important;
  }
  .history-list li {
    padding: 10px 0 10px 12px !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
  }
  .history-year {
    font-size: 10px !important;
    padding: 2px 6px !important;
    margin-right: 6px !important;
  }

  /* 모바일 헤더 SNS 버튼 표시 안 함 (모바일은 mobile-menu에서) */
  .header-sns {
    display: none !important;
  }

  /* 메뉴 - 모바일에서 무료상담만 표시 */
  .top-navbar .nav-phone {
    display: none !important;
  }
  .navbar-inner {
    padding: 10px 14px !important;
  }
  .logo-img {
    height: 48px !important;
  }
  .logo-text-fallback {
    font-size: 17px !important;
  }
}

/* =====================================================
   v8 — 메인 페이지 모바일 줄맞춤 (개별 섹션)
   ===================================================== */
@media (max-width: 600px) {
  /* 카테고리 카드 */
  .category-card .card-body {
    padding: 18px 16px 20px !important;
  }
  .card-subtitle {
    font-size: 10px !important;
    letter-spacing: 3px !important;
    margin-bottom: 8px !important;
  }
  .category-card h3 {
    font-size: 17px !important;
    letter-spacing: 1.2px !important;
    margin-bottom: 14px !important;
  }
  .card-arrow {
    font-size: 11px !important;
    letter-spacing: 1.5px !important;
  }

  /* about-section h2 */
  .about-section h2 {
    font-size: 24px !important;
    line-height: 1.5 !important;
  }
  .about-box {
    padding: 20px 18px !important;
  }
  .about-box h4 {
    font-size: 11px !important;
  }

  /* 지그재그 */
  .zigzag-section { padding: 70px 16px !important; }
  .zigzag-header h2 {
    font-size: 22px !important;
    margin-bottom: 36px !important;
  }
  .zz-row { gap: 24px !important; padding: 0 !important; }
  .zz-content { padding: 0 4px !important; }
  .zz-content h3 {
    font-size: 16px !important;
    line-height: 1.5 !important;
  }
  .zz-content p {
    font-size: 13px !important;
    line-height: 1.65 !important;
  }
  .zz-badge {
    font-size: 10px !important;
    padding: 3px 10px !important;
  }
  .zz-label {
    font-size: 12px !important;
  }

  /* 무료상담 CTA */
  .estimate-cta { 
    padding: 28px 18px !important; 
    border-radius: 14px !important;
  }
  .estimate-cta-inner {
    flex-direction: column !important;
    align-items: stretch !important;
    text-align: center;
    gap: 16px !important;
  }
  .estimate-cta-text strong {
    font-size: 16px !important;
  }
  .estimate-cta-text span {
    font-size: 13px !important;
  }
  .estimate-cta-btn {
    justify-content: center !important;
    width: 100% !important;
    font-size: 14px !important;
    padding: 12px 20px !important;
  }

  /* service-section (고객 관리 서비스) */
  .service-section { padding: 60px 18px !important; }
  .service-title {
    font-size: 26px !important;
    letter-spacing: 2px !important;
  }
  .service-desc {
    font-size: 13px !important;
    line-height: 1.7 !important;
    margin-bottom: 24px !important;
  }
  .service-eyebrow {
    font-size: 11px !important;
    letter-spacing: 4px !important;
  }
  .counter-num {
    font-size: 30px !important;
    min-width: 90px !important;
  }
  .counter-label {
    font-size: 10px !important;
    letter-spacing: 1.5px !important;
  }
  .service-gallery {
    grid-template-rows: 160px 160px !important;
    gap: 8px !important;
  }

  /* 후기 섹션 */
  .review-section h2 {
    font-size: 22px !important;
    margin-bottom: 36px !important;
  }
  .review-body { padding: 18px 16px 18px !important; }
  .review-card .review-text {
    font-size: 13px !important;
    line-height: 1.7 !important;
  }
  .review-card .review-author {
    font-size: 12px !important;
    padding-top: 12px !important;
  }
  .review-nav-btn {
    width: 36px !important;
    height: 36px !important;
  }
  .review-nav-btn svg {
    width: 16px !important;
    height: 16px !important;
  }

  /* 푸터 */
  .site-footer { padding: 40px 18px 24px !important; }
  .footer-top {
    flex-wrap: wrap !important;
    justify-content: center;
    gap: 8px !important;
  }
  .footer-link { font-size: 12px !important; }
  .footer-business { font-size: 11px !important; line-height: 1.7 !important; }
}

/* =====================================================
   v8 — 상세페이지 모바일 줄맞춤
   ===================================================== */
@media (max-width: 768px) {
  .nd-page-wrap {
    padding: 0 0 60px !important;
  }
  .nd-main {
    padding: 12px 14px !important;
  }
  .nd-section {
    padding: 28px 18px !important;
    margin-bottom: 14px !important;
    border-radius: 12px !important;
  }
  .nd-hero {
    min-height: 280px !important;
    border-radius: 12px !important;
  }
  .nd-hero::after {
    inset: 8px !important;
  }
  .nd-hero-inner {
    padding: 24px 20px !important;
  }
  .nd-tag {
    font-size: 10px !important;
    letter-spacing: 3px !important;
    padding: 4px 12px !important;
  }
  .nd-hero-title {
    font-size: 19px !important;
    letter-spacing: 1.5px !important;
    line-height: 1.5 !important;
  }
  .nd-hero-sub {
    font-size: 13px !important;
    line-height: 1.7 !important;
    margin-bottom: 18px !important;
  }
  .nd-hero-stats {
    gap: 6px !important;
    margin-top: 18px !important;
  }
  .nd-hero-stats .dp-stat {
    padding: 8px 12px !important;
    min-width: 60px !important;
  }
  .nd-hero-stats .dp-stat strong {
    font-size: 14px !important;
  }
  .nd-hero-stats .dp-stat span {
    font-size: 9px !important;
    letter-spacing: 1px !important;
  }
  .nd-section-title {
    font-size: 19px !important;
    letter-spacing: 1.5px !important;
    margin-bottom: 22px !important;
    padding-bottom: 14px !important;
  }
  .nd-label {
    font-size: 10px !important;
    letter-spacing: 4px !important;
    margin-bottom: 10px !important;
  }

  /* 자재/견적 박스 - 모바일 */
  .nd-material-box {
    padding: 18px 16px !important;
    gap: 14px !important;
  }
  .nd-material-icon {
    width: 48px !important;
    height: 48px !important;
    font-size: 24px !important;
  }
  .nd-material-text strong {
    font-size: 15px !important;
  }
  .nd-material-text p {
    font-size: 13px !important;
  }
  .nd-price-box {
    padding: 22px 18px 26px !important;
  }
  .nd-price-meta {
    flex-direction: column !important;
    gap: 12px !important;
    padding-bottom: 18px !important;
  }
  .nd-price-meta .nd-meta-item {
    border-left: none !important;
    padding: 0 !important;
  }
  .nd-consult-msg {
    padding: 22px 14px !important;
    margin: 16px 0 !important;
  }
  .nd-consult-title {
    font-size: 17px !important;
    letter-spacing: 3px !important;
  }
  .nd-consult-desc {
    font-size: 13px !important;
    line-height: 1.6 !important;
  }
  .nd-price-cta {
    padding: 16px 18px !important;
    gap: 10px !important;
  }
  .nd-price-cta .cta-phone-num {
    font-size: 15px !important;
  }
  .nd-price-cta .cta-desc {
    font-size: 12px !important;
    letter-spacing: 1px !important;
  }
}

/* =====================================================
   v8 — estimate.html 모바일 줄맞춤
   ===================================================== */
@media (max-width: 600px) {
  .consult-section {
    padding: 32px 14px !important;
  }
  .consult-box {
    padding: 40px 22px !important;
  }
  .consult-box::after {
    inset: 8px !important;
  }
  .consult-title {
    font-size: 24px !important;
    letter-spacing: 2px !important;
    line-height: 1.5 !important;
  }
  .consult-eyebrow {
    font-size: 11px !important;
    letter-spacing: 4px !important;
  }
  .consult-desc {
    font-size: 13px !important;
    line-height: 1.75 !important;
    margin-bottom: 32px !important;
  }
  .consult-promises {
    gap: 8px !important;
    margin-bottom: 32px !important;
  }
  .consult-promise {
    padding: 12px 14px !important;
    gap: 12px !important;
  }
  .consult-promise-icon {
    width: 32px !important;
    height: 32px !important;
    font-size: 13px !important;
  }
  .consult-promise-text {
    font-size: 13px !important;
  }
  .consult-cta {
    padding: 16px 14px !important;
    gap: 12px !important;
  }
  .consult-cta-icon {
    width: 38px !important;
    height: 38px !important;
  }
  .consult-cta-num {
    font-size: 18px !important;
  }
  .consult-cta-desc {
    font-size: 11px !important;
    letter-spacing: 2px !important;
  }
  .consult-info {
    font-size: 12px !important;
    gap: 10px !important;
  }
}

/* =====================================================
   v9 — 로고 크기 통일 + 후기 이미지 9:16 세로형
   ===================================================== */

/* 모든 페이지 헤더 로고 크기 통일 (PC 80px) */
.top-navbar .logo-img,
.sub-header .logo-img,
.detail-header .logo-img {
  height: 80px !important;
  width: auto !important;
  display: block !important;
}

/* 태블릿 (1024px ~ 769px) */
@media (max-width: 1024px) {
  .top-navbar .logo-img,
  .sub-header .logo-img,
  .detail-header .logo-img {
    height: 64px !important;
  }
}

/* 모바일 */
@media (max-width: 768px) {
  .top-navbar .logo-img,
  .sub-header .logo-img,
  .detail-header .logo-img {
    height: 56px !important;
  }
  .navbar-inner {
    min-height: 70px !important;
  }
}

@media (max-width: 480px) {
  .top-navbar .logo-img,
  .sub-header .logo-img,
  .detail-header .logo-img {
    height: 50px !important;
  }
}

/* ─── 후기 이미지 비율 9:16 세로형 (인스타 릴스/숏폼 비율) ─── */
.review-img-wrap {
  aspect-ratio: 9 / 16 !important;
  max-height: 400px;
  overflow: hidden;
}

/* 후기 카드 전체 높이 조정 (세로형 이미지로 인해) */
.review-card {
  display: flex !important;
  flex-direction: column !important;
}
.review-body {
  flex: 1;
}

/* =====================================================
   v10 — 메인 고객관리+후기 GIF 통합 블록
   ===================================================== */
.media-block {
  position: relative;
  background: 
    radial-gradient(ellipse at 20% 10%, rgba(102,187,106,0.07), transparent 50%),
    radial-gradient(ellipse at 80% 90%, rgba(27,94,32,0.05), transparent 50%),
    var(--paper);
  padding: 100px 24px;
  overflow: hidden;
}
.media-deco-line {
  position: absolute; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
  opacity: 0.4;
}
.media-deco-top { top: 0; }
.media-deco-bottom { bottom: 0; }

.media-part { position: relative; z-index: 1; }
.media-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 64px;
  align-items: center;
}
.media-inner-reverse .media-visual { order: 1; }
.media-inner-reverse .media-text { order: 2; }

/* 텍스트 영역 */
.media-eyebrow {
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 13px;
  color: var(--gold-deep);
  letter-spacing: 5px;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.media-title {
  font-family: var(--font-han) !important;
  font-size: clamp(28px, 3.5vw, 40px) !important;
  font-weight: 700 !important;
  color: var(--text-main) !important;
  letter-spacing: 3px !important;
  line-height: 1.4 !important;
  margin: 0 0 20px 0 !important;
}
.media-title strong {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-weight: 600 !important;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold), var(--gold-shine)) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}
.media-desc {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 300;
  color: var(--text-sub);
  line-height: 1.9;
  margin: 0 0 36px 0;
  word-break: keep-all;
}

/* 카운터 */
.media-counters {
  display: flex;
  gap: 32px;
  padding-top: 32px;
  border-top: 1px solid var(--line-gold);
  flex-wrap: wrap;
}
.media-counter {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mc-num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 500;
  line-height: 1;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.mc-num em { font-style: normal; font-size: 0.55em; opacity: 0.7; margin-left: 2px; }
.mc-label {
  font-family: var(--font-han);
  font-size: 12px;
  color: var(--text-muted);
  letter-spacing: 2px;
}

/* 후기 링크 */
.media-review-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-han);
  font-size: 14px;
  font-weight: 700;
  color: var(--gold-deep);
  text-decoration: none;
  letter-spacing: 1.5px;
  padding: 14px 28px;
  border: 1px solid var(--gold);
  border-radius: 50px;
  transition: all 0.4s;
}
.media-review-link:hover {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold));
  color: white;
  gap: 14px;
  box-shadow: 0 6px 20px rgba(76,175,80,0.35);
}

/* GIF 비주얼 */
.media-gif-wrap {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--gold);
  box-shadow: var(--shadow-gold);
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, var(--ink), var(--ink-soft));
}
.media-gif-wrap::after {
  content: '';
  position: absolute; inset: 10px;
  border: 1px solid rgba(102,187,106,0.25);
  pointer-events: none;
  z-index: 2;
  border-radius: var(--radius-md);
}
.media-gif {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.media-gif-label {
  position: absolute;
  bottom: 18px; right: 20px;
  z-index: 3;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 12px;
  color: var(--gold-shine);
  letter-spacing: 5px;
  background: rgba(26,26,26,0.6);
  backdrop-filter: blur(6px);
  padding: 6px 16px;
  border: 1px solid rgba(102,187,106,0.4);
  border-radius: 50px;
}
.media-gif-empty {
  display: flex; align-items: center; justify-content: center;
}
.media-gif-empty::before {
  content: '— GIF 준비 중 —';
  font-family: var(--font-display);
  font-style: italic;
  font-size: 14px;
  color: rgba(102,187,106,0.5);
  letter-spacing: 3px;
}
.media-gif-empty .media-gif { display: none; }

/* 섹션 구분선 */
.media-section-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  max-width: 700px;
  margin: 72px auto;
}
.media-divider-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold));
}
.media-divider-line:last-child {
  background: linear-gradient(90deg, var(--gold), transparent);
}
.media-divider-icon {
  color: var(--gold);
  font-size: 16px;
  opacity: 0.7;
}

/* 후기 슬라이더 (블록 안에 통합) */
.media-block .review-section {
  background: transparent !important;
  padding: 56px 0 0 !important;
  margin-top: 16px;
}
.media-block .review-section::before { display: none !important; }

@media (max-width: 900px) {
  .media-block { padding: 60px 18px; }
  .media-inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .media-inner-reverse .media-visual { order: 2; }
  .media-inner-reverse .media-text { order: 1; }
  .media-section-divider { margin: 48px auto; }
  .media-desc { margin-bottom: 28px; }
  .media-counters { gap: 24px; padding-top: 24px; }
}

@media (max-width: 600px) {
  .media-title { font-size: 24px !important; letter-spacing: 2px !important; }
  .media-desc { font-size: 13px !important; line-height: 1.7 !important; }
  .media-eyebrow { font-size: 11px !important; letter-spacing: 4px !important; }
  .mc-num { font-size: 28px !important; }
  .mc-label { font-size: 10px !important; letter-spacing: 1px !important; }
  .media-counters { gap: 16px !important; }
  .media-review-link { font-size: 13px !important; padding: 12px 22px !important; }
}

/* 기존 service-section 무력화 (이전 버전) */
.service-section { display: none !important; }

/* =====================================================
   v10 — 팀 프로필 2명 단일 고급 블록
   ===================================================== */
.team-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 32px !important;
  max-width: 920px !important;
  margin: 0 auto !important;
}
.profile-card {
  background: linear-gradient(160deg, var(--ivory), var(--paper)) !important;
  border: 1px solid var(--gold) !important;
  border-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  position: relative;
  box-shadow: var(--shadow-md);
  transition: all 0.5s cubic-bezier(.2,.8,.2,1) !important;
}
/* 상단 골드 그라데이션 바 */
.profile-card::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold-deep), var(--gold-shine), var(--gold));
  z-index: 5;
}
/* 워터마크 장식 */
.profile-card::after {
  content: '';
  position: absolute;
  bottom: -60px; right: -60px;
  width: 200px; height: 200px;
  border: 1px solid var(--line-gold);
  border-radius: 50%;
  opacity: 0.4;
  pointer-events: none;
}
.profile-card:hover {
  transform: translateY(-8px) !important;
  box-shadow: var(--shadow-gold) !important;
}

.profile-photo-wrap {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, var(--hanji), var(--cream)) !important;
  position: relative;
}
.profile-photo {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center top;
  display: block;
  transition: transform 0.8s cubic-bezier(.2,.8,.2,1) !important;
  filter: grayscale(8%);
}
.profile-card:hover .profile-photo {
  transform: scale(1.05) !important;
  filter: grayscale(0%);
}
.profile-photo-fallback {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold)) !important;
  color: white !important;
  font-family: var(--font-han) !important;
  font-size: 80px !important;
  font-weight: 700 !important;
  display: flex; align-items: center; justify-content: center;
}

.profile-info {
  padding: 32px 28px 34px !important;
  display: flex; flex-direction: column;
  gap: 12px !important;
  text-align: center;
  position: relative;
  z-index: 1;
}
.profile-role-en {
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 12px;
  color: var(--gold-deep);
  letter-spacing: 4px;
  text-transform: uppercase;
  opacity: 0.9;
}
.profile-name {
  font-family: var(--font-han) !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  color: var(--text-main) !important;
  letter-spacing: 6px !important;
  margin: 0 !important;
}
.profile-role-han {
  display: block;
  font-family: var(--font-serif) !important;
  font-style: normal !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--gold-deep) !important;
  letter-spacing: 2px !important;
  margin-top: 6px;
}
.profile-divider {
  width: 40px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  margin: 6px auto !important;
}
.profile-career {
  font-family: var(--font-display) !important;
  font-style: italic !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--gold-deep) !important;
  letter-spacing: 0.5px !important;
  margin: 0 !important;
}
.profile-desc {
  font-family: var(--font-serif) !important;
  font-size: 13.5px !important;
  color: var(--text-sub) !important;
  line-height: 1.85 !important;
  margin: 0 !important;
  word-break: keep-all !important;
}
.profile-skills {
  margin-top: 8px !important;
  display: flex; flex-wrap: wrap; gap: 7px;
  justify-content: center !important;
}
.skill-tag {
  font-family: var(--font-han) !important;
  font-size: 11px !important;
  color: var(--gold-deep) !important;
  background: var(--hanji) !important;
  border: 1px solid var(--line-gold) !important;
  padding: 5px 12px !important;
  border-radius: 50px !important;
  letter-spacing: 0.5px !important;
}
.profile-index { display: none !important; }
.profile-corner {
  position: absolute;
  width: 20px; height: 20px;
  border: 1px solid var(--gold);
  pointer-events: none;
  z-index: 4;
  opacity: 0;
  transition: opacity 0.5s;
}
.profile-corner-tl { top: 12px; left: 12px; border-right: none; border-bottom: none; }
.profile-corner-br { bottom: 12px; right: 12px; border-left: none; border-top: none; }
.profile-card:hover .profile-corner { opacity: 1; }

@media (max-width: 600px) {
  .team-grid { grid-template-columns: 1fr !important; gap: 20px !important; max-width: 420px !important; }
  .profile-info { padding: 24px 20px 26px !important; }
  .profile-name { font-size: 22px !important; letter-spacing: 4px !important; }
  .profile-desc { font-size: 13px !important; }
}

/* =====================================================
   v11 — 상세페이지 Before/After 비교 카드 (세련되게)
   ===================================================== */
.nd-ba-section {
  background: 
    radial-gradient(ellipse at top, rgba(76,175,80,0.12), transparent 55%),
    linear-gradient(165deg, var(--ink) 0%, var(--ink-soft) 60%, var(--ink) 100%) !important;
}
.nd-ba-section .nd-label { color: var(--gold-shine) !important; }
.nd-ba-section .nd-section-title { color: var(--ivory) !important; }
.nd-ba-section .nd-section-title::after {
  background: linear-gradient(90deg, var(--gold), transparent) !important;
}

.nd-ba-pairs {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.nd-ba-pair {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(102,187,106,0.18);
  border-radius: var(--radius-md);
  transition: all 0.4s;
}
.nd-ba-pair:hover {
  background: rgba(102,187,106,0.06);
  border-color: rgba(102,187,106,0.4);
}
.nd-ba-card {
  position: relative;
  aspect-ratio: 16/10;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--ink-soft);
  border: 1px solid rgba(102,187,106,0.2);
}
.nd-ba-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s cubic-bezier(.2,.8,.2,1);
}
.nd-ba-card:hover img { transform: scale(1.06); }
.nd-ba-card.before img { filter: grayscale(45%) brightness(0.82); }
.nd-ba-card.after img { filter: saturate(1.08) brightness(1.02); }

.nd-ba-chip {
  position: absolute;
  top: 12px; left: 12px;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 11px;
  letter-spacing: 3px;
  padding: 5px 14px;
  border-radius: 50px;
  backdrop-filter: blur(8px);
  z-index: 2;
}
.before-chip {
  background: rgba(26,26,26,0.75);
  color: rgba(197,225,165,0.9);
  border: 1px solid rgba(102,187,106,0.3);
}
.after-chip {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold));
  color: white;
  border: 1px solid var(--gold-shine);
  box-shadow: 0 2px 10px rgba(76,175,80,0.4);
}

.nd-ba-vs {
  width: 40px; height: 40px;
  flex-shrink: 0;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  box-shadow: 0 4px 14px rgba(76,175,80,0.4);
}

.nd-ba-card.nd-img-empty img { display: none; }
.nd-ba-card .nd-img-empty-txt {
  display: none;
  position: absolute; inset: 0;
  align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 13px;
  color: rgba(197,225,165,0.4);
  letter-spacing: 2px;
}
.nd-ba-card.nd-img-empty .nd-img-empty-txt { display: flex; }

@media (max-width: 768px) {
  .nd-ba-pair {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px;
  }
  .nd-ba-vs {
    transform: rotate(90deg);
    width: 32px; height: 32px;
    margin: 0 auto;
  }
}

/* =====================================================
   v11 — 자재 & 견적 상담 (새 디자인)
   ===================================================== */
.nd-consult-section {
  background: 
    radial-gradient(ellipse at bottom right, rgba(102,187,106,0.07), transparent 50%),
    var(--paper) !important;
  border-color: var(--line-gold) !important;
}
.nd-consult-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 24px;
  align-items: stretch;
}

/* 좌측 스펙 리스트 */
.nd-consult-specs {
  display: flex;
  flex-direction: column;
  gap: 14px;
  justify-content: center;
}
.nd-spec-row {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px 24px;
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  transition: all 0.4s;
  position: relative;
  overflow: hidden;
}
.nd-spec-row::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--gold-deep), var(--gold-shine));
  transform: scaleY(0);
  transition: transform 0.4s;
}
.nd-spec-row:hover {
  border-color: var(--line-gold);
  transform: translateX(4px);
}
.nd-spec-row:hover::before { transform: scaleY(1); }
.nd-spec-icon {
  width: 48px; height: 48px;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--hanji), var(--cream));
  border: 1px solid var(--line-gold);
  border-radius: 50%;
  color: var(--gold-deep);
}
.nd-spec-icon svg { width: 22px; height: 22px; }
.nd-spec-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.nd-spec-label {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 11px;
  color: var(--gold-deep);
  letter-spacing: 3px;
  text-transform: uppercase;
}
.nd-spec-value {
  font-family: var(--font-han);
  font-size: 15px;
  font-weight: 700;
  color: var(--text-main);
  letter-spacing: 0.5px;
}

/* 우측 상담 패널 (어두운 골드 카드) */
.nd-consult-panel {
  background: 
    radial-gradient(ellipse at top right, rgba(102,187,106,0.18), transparent 55%),
    linear-gradient(150deg, var(--ink) 0%, var(--ink-soft) 100%);
  border: 1px solid var(--gold);
  border-radius: var(--radius-lg);
  padding: 44px 40px;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.nd-consult-panel::after {
  content: '';
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(102,187,106,0.2);
  border-radius: var(--radius-md);
  pointer-events: none;
}
.nd-consult-deco {
  position: absolute;
  top: 24px; right: 28px;
  color: var(--gold);
  font-size: 20px;
  opacity: 0.5;
}
.nd-consult-eyebrow {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 12px;
  color: var(--gold-shine);
  letter-spacing: 5px;
  text-transform: uppercase;
  margin-bottom: 14px;
  position: relative;
  z-index: 1;
}
.nd-consult-headline {
  font-family: var(--font-han);
  font-size: clamp(24px, 3vw, 30px);
  font-weight: 700;
  color: var(--ivory);
  letter-spacing: 2px;
  line-height: 1.45;
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
}
.nd-consult-sub {
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 300;
  color: rgba(250,244,229,0.72);
  line-height: 1.8;
  margin-bottom: 32px;
  word-break: keep-all;
  position: relative;
  z-index: 1;
}
.nd-consult-cta {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold), var(--gold-shine));
  padding: 16px 28px;
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.4s;
  position: relative;
  z-index: 1;
  align-self: flex-start;
  box-shadow: 0 6px 20px rgba(76,175,80,0.35);
}
.nd-consult-cta:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(102,187,106,0.5);
}
.nd-cta-ico {
  width: 42px; height: 42px;
  border-radius: 50%;
  background: var(--ivory);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.nd-cta-ico svg { width: 20px; height: 20px; color: var(--gold-deep); }
.nd-cta-txt {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.nd-cta-num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 20px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: 0.5px;
}
.nd-cta-desc {
  font-family: var(--font-han);
  font-size: 12px;
  font-weight: 700;
  color: rgba(26,26,26,0.7);
  letter-spacing: 1.5px;
}

@media (max-width: 900px) {
  .nd-consult-grid { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 768px) {
  .nd-consult-panel { padding: 32px 24px; }
  .nd-consult-headline { font-size: 22px !important; }
  .nd-consult-sub { font-size: 13px; margin-bottom: 24px; }
  .nd-spec-row { padding: 18px 18px; gap: 14px; }
  .nd-spec-icon { width: 42px; height: 42px; }
  .nd-spec-value { font-size: 14px; }
  .nd-consult-cta { padding: 14px 22px; gap: 12px; }
  .nd-cta-num { font-size: 17px; }
}

/* =====================================================
   v12 — 프로필 1:1 비율 강제 + Before/After 가독성 개선
   ===================================================== */

/* 프로필 이미지 1:1 비율 모든 화면에서 강제 */
.profile-card .profile-photo-wrap {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  min-height: 0 !important;
  flex: none !important;
}
.profile-card .profile-photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
}
@media (max-width: 400px) {
  .profile-card .profile-photo-wrap {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    min-height: 0 !important;
  }
}

/* ─── Before/After 새 디자인 (대형 비교) ─── */
.nd-ba-main {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: stretch;
  gap: 20px;
  margin-bottom: 24px;
}
.nd-ba-side {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.nd-ba-head {
  display: flex;
  align-items: center;
  gap: 12px;
}
.nd-ba-badge {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 12px;
  letter-spacing: 3px;
  padding: 6px 16px;
  border-radius: 50px;
}
.before-badge {
  background: rgba(255,255,255,0.08);
  color: rgba(197,225,165,0.85);
  border: 1px solid rgba(102,187,106,0.35);
}
.after-badge {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold));
  color: white;
  border: 1px solid var(--gold-shine);
  box-shadow: 0 2px 12px rgba(76,175,80,0.4);
}
.nd-ba-headtxt {
  font-family: var(--font-han);
  font-size: 16px;
  font-weight: 700;
  color: var(--ivory);
  letter-spacing: 2px;
}
.nd-ba-bigimg {
  position: relative;
  aspect-ratio: 4/3;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--ink-soft);
  border: 1px solid rgba(102,187,106,0.25);
}
.nd-ba-bigimg img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s cubic-bezier(.2,.8,.2,1);
}
.nd-ba-bigimg:hover img { transform: scale(1.05); }
.nd-ba-side-before .nd-ba-bigimg img { filter: grayscale(40%) brightness(0.85); }
.nd-ba-side-after .nd-ba-bigimg img { filter: saturate(1.1) brightness(1.02); }
.nd-ba-side-after .nd-ba-bigimg {
  border-color: rgba(102,187,106,0.5);
  box-shadow: 0 8px 30px rgba(76,175,80,0.2);
}
.nd-ba-caption {
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 300;
  color: rgba(250,244,229,0.78);
  line-height: 1.7;
  word-break: keep-all;
  padding: 0 4px;
}
.nd-ba-side-after .nd-ba-caption { color: var(--gold-pale); }

.nd-ba-arrow {
  align-self: center;
  width: 52px; height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold), var(--gold-shine));
  display: flex; align-items: center; justify-content: center;
  color: white;
  box-shadow: 0 6px 20px rgba(76,175,80,0.5);
  flex-shrink: 0;
  margin-top: 60px;
}

.nd-ba-bigimg.nd-img-empty img { display: none; }
.nd-ba-bigimg .nd-img-empty-txt {
  display: none;
  position: absolute; inset: 0;
  align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 15px;
  color: rgba(197,225,165,0.4);
  letter-spacing: 3px;
}
.nd-ba-bigimg.nd-img-empty .nd-img-empty-txt { display: flex; }

/* 하단 추가 썸네일 비교 */
.nd-ba-thumbs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding-top: 24px;
  border-top: 1px solid rgba(102,187,106,0.2);
}
.nd-ba-thumb-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.nd-ba-thumb {
  position: relative;
  aspect-ratio: 1/1;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--ink-soft);
  border: 1px solid rgba(102,187,106,0.2);
}
.nd-ba-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.nd-ba-thumb.before img { filter: grayscale(40%) brightness(0.85); }
.nd-ba-thumb.after img { filter: saturate(1.1); }
.nd-thumb-tag {
  position: absolute;
  bottom: 8px; left: 8px;
  font-family: var(--font-han);
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 50px;
  background: rgba(26,26,26,0.7);
  color: rgba(197,225,165,0.9);
  backdrop-filter: blur(6px);
}
.nd-thumb-tag.after {
  background: linear-gradient(135deg, var(--gold-deep), var(--gold));
  color: white;
}
.nd-ba-thumb.nd-img-empty img { display: none; }
.nd-ba-thumb .nd-img-empty-txt {
  display: none;
  position: absolute; inset: 0;
  align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 11px;
  color: rgba(197,225,165,0.35);
}
.nd-ba-thumb.nd-img-empty .nd-img-empty-txt { display: flex; }

@media (max-width: 768px) {
  .nd-ba-main {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .nd-ba-arrow {
    transform: rotate(90deg);
    margin: 0 auto;
    width: 44px; height: 44px;
  }
  .nd-ba-thumbs {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .nd-ba-headtxt { font-size: 14px; }
  .nd-ba-caption { font-size: 13px; }
}

/* =====================================================
   v13 — about-section 후킹문구 길이 대응 (폰트 조정)
   ===================================================== */
.about-section h2 {
  font-size: clamp(24px, 3vw, 34px) !important;
  line-height: 1.5 !important;
}
@media (max-width: 900px) {
  .about-section h2 {
    font-size: 22px !important;
    line-height: 1.55 !important;
  }
}
@media (max-width: 600px) {
  .about-section h2 {
    font-size: 19px !important;
    line-height: 1.6 !important;
  }
}

/* =====================================================
   v14 — 호텔/모텔 시공 프로세스 갤러리 (큰 사진 2장, 원본 비율)
   ===================================================== */
.nd-hotel-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.nd-hotel-item {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: linear-gradient(135deg, var(--cream), var(--hanji));
  border: 1px solid var(--line-gold);
  box-shadow: var(--shadow-md);
  transition: all 0.5s cubic-bezier(.2,.8,.2,1);
  /* 원본 비율 유지: aspect-ratio 강제하지 않고 최소 높이만 보장 */
  min-height: 280px;
}
.nd-hotel-item:hover {
  box-shadow: var(--shadow-gold);
  border-color: var(--gold);
  transform: translateY(-4px);
}
.nd-hotel-item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.8s cubic-bezier(.2,.8,.2,1);
  filter: brightness(0.97) saturate(1);
}
.nd-hotel-item:hover img {
  transform: scale(1.03);
  filter: brightness(1.02) saturate(1.05);
}
.nd-hotel-item::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid rgba(102,187,106,0);
  pointer-events: none;
  transition: border-color 0.4s;
  border-radius: var(--radius-md);
}
.nd-hotel-item:hover::after {
  border-color: rgba(102,187,106,0.4);
  box-shadow: inset 0 0 0 3px rgba(102,187,106,0.12);
}

/* 이미지 없을 때 fallback */
.nd-hotel-item.nd-img-empty {
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.nd-hotel-item.nd-img-empty img { display: none; }
.nd-hotel-item .nd-img-empty-txt {
  display: none;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 14px;
  color: var(--text-light);
  letter-spacing: 3px;
}
.nd-hotel-item.nd-img-empty .nd-img-empty-txt { display: block; }

@media (max-width: 768px) {
  .nd-hotel-gallery {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .nd-hotel-item { min-height: 240px; }
  .nd-hotel-item.nd-img-empty { min-height: 220px; }
}

/* =====================================================
   v15 — 메인 풀너비 유튜브 영상 (바둑판 위)
   ===================================================== */
.main-yt-section {
  width: 100%;
  padding: 48px 0 60px;
  margin: 0;
  background: var(--paper);
  position: relative;
}
.main-yt-section::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 200px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity: 0.5;
}
.main-yt-frame {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 0;
  border: none;
  border-top: 1px solid var(--line-gold);
  border-bottom: 1px solid var(--line-gold);
  box-shadow: none;
  background: var(--ink);
}
.main-yt-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

@media (max-width: 768px) {
  .main-yt-section {
    padding: 32px 0 40px;
  }
}
@media (max-width: 480px) {
  .main-yt-section {
    padding: 24px 0 32px;
  }
}

/* =====================================================
   v16 — 유튜브 UI 완전 가림 + 단일 사진 갤러리
   ===================================================== */

/* 유튜브 iframe 컨테이너 - 클릭/UI 차단 오버레이 */
.main-yt-frame {
  position: relative;
}
.main-yt-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: transparent;
  cursor: default;
  pointer-events: auto;
}
/* iframe poster 영역 클릭 방지 */
.main-yt-frame iframe {
  pointer-events: none;
}

/* 단일 사진 (호텔/시스템창) */
.nd-hotel-gallery.nd-single {
  grid-template-columns: 1fr !important;
  max-width: 880px;
  margin: 0 auto;
}

/* =====================================================
   v17 — 프로필 이름/직급 가운데 정렬
   ===================================================== */
.profile-card .profile-info {
  text-align: center !important;
}
.profile-card .profile-name {
  text-align: center !important;
  display: block !important;
}
.profile-card .profile-role-han {
  text-align: center !important;
  display: block !important;
}
.profile-card .profile-role-en {
  text-align: center !important;
}
.profile-card .profile-career {
  text-align: center !important;
}
.profile-card .profile-desc {
  text-align: center !important;
}

/* =====================================================
   v18 — 상세/업체정보 페이지 로고 메인과 동일 크기 보장
   ===================================================== */
/* 모든 페이지 PC 로고 강제 */
.top-navbar .logo-img,
.sub-header .logo-img,
.detail-header .logo-img,
.logo-area .logo-img {
  height: 110px !important;
  width: auto !important;
}

/* 태블릿 (1280px 이하) */
@media (max-width: 1280px) {
  .top-navbar .logo-img,
  .sub-header .logo-img,
  .detail-header .logo-img,
  .logo-area .logo-img {
    height: 96px !important;
  }
}

/* 1024px 이하 */
@media (max-width: 1024px) {
  .top-navbar .logo-img,
  .sub-header .logo-img,
  .detail-header .logo-img,
  .logo-area .logo-img {
    height: 88px !important;
  }
}

/* 모바일 */
@media (max-width: 768px) {
  .top-navbar .logo-img,
  .sub-header .logo-img,
  .detail-header .logo-img,
  .logo-area .logo-img {
    height: 76px !important;
  }
}

@media (max-width: 480px) {
  .top-navbar .logo-img,
  .sub-header .logo-img,
  .detail-header .logo-img,
  .logo-area .logo-img {
    height: 68px !important;
  }
}

/* =====================================================
   v19 — 시공 프로세스 갤러리: 호버 확대/밝기 효과 제거, 항상 밝게
   ===================================================== */
/* 매거진 그리드 (아파트) */
.gmag-item img {
  filter: none !important;
  transition: none !important;
}
.gmag-item:hover img {
  transform: none !important;
  filter: none !important;
}
.gmag-item:hover::after {
  border-color: transparent !important;
  box-shadow: none !important;
}

/* 호텔 / 시스템창 단일 사진 */
.nd-hotel-item img {
  filter: none !important;
  transition: none !important;
}
.nd-hotel-item:hover img {
  transform: none !important;
  filter: none !important;
}
.nd-hotel-item:hover {
  transform: none !important;
  box-shadow: var(--shadow-md) !important;
  border-color: var(--line-gold) !important;
}
.nd-hotel-item:hover::after {
  border-color: transparent !important;
  box-shadow: none !important;
}

/* =====================================================
   v20 — 시스템창 히어로 타이틀 크게
   ===================================================== */
.nd-hero-title strong.big-title {
  font-size: 1.4em !important;
  display: inline-block;
  letter-spacing: 4px !important;
  line-height: 1.2 !important;
}

@media (max-width: 768px) {
  .nd-hero-title strong.big-title {
    font-size: 1.3em !important;
    letter-spacing: 2px !important;
  }
}

/* =====================================================
   v21 — 새 옐로우 톤 조정 (가독성 + 프리미엄 강조)
   ===================================================== */

/* 강조 텍스트 그라데이션: 다크 옐로우 → 메인 옐로우 (가독성 확보) */
.hero-hook-pc-highlight,
.hm-mint,
.about-section h2 .highlight,
.zigzag-header h2 strong,
.stats-text-col h2 strong,
.media-title strong,
.service-title strong,
.consult-title strong,
.nd-section-title strong {
  background: linear-gradient(135deg, #1B5E20 0%, #2E7D32 50%, #4CAF50 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* 다크 배경에서는 밝은 옐로우 그라데이션 */
.nd-hero-title strong,
.nd-dark .nd-section-title strong,
.service-section strong {
  background: linear-gradient(135deg, #66BB6A 0%, #C5E1A5 50%, #FFFFFF 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* 본문 카드 배경을 깨끗한 흰색으로 (한지 톤 제거) */
.about-box,
.review-card,
.profile-card,
.category-card,
.nd-section,
.about-section .about-grid > div {
  background: #FFFFFF !important;
}

/* 보더는 옅은 옐로우 톤으로 */
.about-box,
.review-card,
.profile-card,
.category-card,
.nd-section {
  border-color: #E5E5E5 !important;
}

/* 페이지 배경 - 부드러운 화이트로 */
body {
  background-color: #FFFFFF !important;
  background-image: 
    radial-gradient(ellipse at top, rgba(76,175,80,0.04), transparent 60%) !important;
}

/* sub-page-container 배경 - 깔끔한 화이트 */
.sub-page-container,
.calculator-box,
.consult-box {
  background: #FFFFFF !important;
}

/* 다크 섹션 - 차콜 (이전 갈색 톤 → 순수 차콜) */
.service-section,
.nd-dark,
.stats-section,
.site-footer {
  background-color: #1A1A1A !important;
}

/* 다크 섹션 텍스트 - 깨끗한 흰색 */
.service-section,
.nd-dark,
.stats-section {
  color: #FFFFFF;
}

/* 다크 배경의 골드 텍스트는 밝은 옐로우 */
.nd-label,
.nd-dark .nd-label,
.service-eyebrow,
.media-eyebrow,
.consult-eyebrow {
  color: #2E7D32 !important;
}
.nd-dark .nd-label {
  color: #66BB6A !important;
}

/* 골드 그라데이션 배경 (CTA, 배지 등) - 더 밝고 명확하게 */
.estimate-cta,
.nd-price-cta,
.media-review-link:hover,
.estimate-cta-btn,
.nd-consult-cta,
.consult-cta,
.history-era,
.mobile-menu-call,
.after-badge,
.after-chip,
.nd-thumb-tag.after,
.nd-ba-arrow,
.nd-ba-vs {
  background: linear-gradient(135deg, #2E7D32 0%, #4CAF50 50%, #66BB6A 100%) !important;
}

/* 골드 단색 사용처 → 메인 옐로우 */
.consult-promise-icon,
.review-pagination .swiper-pagination-bullet-active,
.profile-role-badge,
.nav-phone:hover,
.header-sns-btn:hover {
  background: #4CAF50 !important;
}

/* 메인 톤 텍스트는 차콜로 명확하게 */
body, p, span, div, h1, h2, h3, h4, h5, h6, li, td, label {
  color: inherit;
}
.text-main, .nd-section-title, .media-title, .service-title, .review-card .review-text {
  color: #1A1A1A;
}

/* 보더 옐로우 단색 사용 → 메인 옐로우 */
.nav-phone,
.nd-material-box,
.calculator-box::before,
.sub-page-container::before {
  border-color: #4CAF50 !important;
}

/* line-gold 변수 대체 */
.consult-info,
.nd-price-meta,
.nd-proc-row,
.history-block,
.nd-spec-icon,
.nd-meta-icon,
.consult-promise,
.skill-tag {
  border-color: #E5E5E5 !important;
}

/* 핵심 카운터/숫자 강조 - 깊은 옐로우로 또렷하게 */
.counter-num,
.mc-num,
.nd-feat-num,
.gmag-cat-num,
.dp-feature-num,
.nd-cta-num,
.consult-cta-num {
  background: linear-gradient(135deg, #1B5E20, #2E7D32, #4CAF50) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* 다크 배경의 큰 숫자 - 밝게 */
.service-section .counter-num,
.nd-hero-stats .dp-stat strong {
  background: linear-gradient(135deg, #66BB6A, #C5E1A5) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* 다크 배경 보더는 옅은 옐로우 30% */
.nd-dark,
.service-section,
.stats-section,
.site-footer {
  border-color: rgba(102, 187, 106, 0.25) !important;
}

/* 다크 페이드 라인 - 메인 옐로우 */
.service-deco-line,
.media-deco-line,
.section-divider {
  background: linear-gradient(90deg, transparent, #4CAF50 50%, transparent) !important;
}

/* CTA 호버 - 다크 차콜로 */
.estimate-cta-btn:hover,
.nd-price-cta:hover,
.nd-consult-cta:hover,
.consult-cta:hover {
  background: linear-gradient(135deg, #1A1A1A, #2A2A2A) !important;
  color: #66BB6A !important;
}

/* =====================================================
   v22 — 색상 시스템 전면 재교체
   어두운 갈색황토 + 그린 액센트 + 흰색 / 고딕 폰트
   ===================================================== */

/* 전체 body 폰트 강제 고딕 (Pretendard) */
body, html {
  font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif !important;
  background-color: #FFFFFF !important;
  background-image: 
    radial-gradient(ellipse at top, rgba(76,175,80,0.04), transparent 60%) !important;
  color: #1A1A1A;
}

/* 모든 텍스트 요소도 강제 고딕 */
h1, h2, h3, h4, h5, h6, p, span, div, li, td, label, button, a, input, select, textarea {
  font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

/* 명조체 강조 클래스 사용처도 고딕으로 */
.nd-label, .stats-tag, .pillar-num, .heritage-num,
.review-author, .footer-copy, .footer-tagline,
.section-num, .hero-hook-pc-small,
.hero-hook-pc-big, .hero-hook-pc-sub, .hm-big,
.hero-hook-pc-highlight, .hm-mint,
.hero-hook-pc-accent, .hm-badge, .hm-cta,
.about-section h2, .review-section h2,
.zigzag-header h2, .stats-text-col h2, .sub-page-title,
.profile-name, .profile-role-han, .profile-career, .profile-role-en, .profile-desc,
.media-eyebrow, .media-title, .media-counters, .media-desc, .media-counter, .mc-label,
.service-eyebrow, .service-title, .counter-num, .counter-label,
.consult-eyebrow, .consult-title, .consult-desc, .consult-promise-text, .consult-cta-num, .consult-cta-desc, .consult-info,
.nd-section-title, .nd-tag, .nd-hero-title, .nd-hero-sub,
.nd-feat-title, .nd-feat-desc, .nd-feat-num,
.gmag-cat-num, .gmag-cat-name, .gmag-cat-en,
.nd-ba-badge, .nd-ba-headtxt, .nd-ba-caption, .nd-thumb-tag,
.nd-spec-label, .nd-spec-value,
.nd-consult-eyebrow, .nd-consult-headline, .nd-consult-sub, .nd-cta-num, .nd-cta-desc,
.history-headline, .history-era, .history-period, .history-year,
.calc-title,
.dp-feature-num, .dp-feature-title, .dp-feature-desc,
.skill-tag {
  font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-style: normal !important;
}

/* 폰트 굵기/자간 - 고딕에 맞춰 재조정 */
.nd-feat-num, .gmag-cat-num, .counter-num, .mc-num, .nd-cta-num, .consult-cta-num,
.dp-feature-num, .profile-career, .nd-ba-badge, .nd-tag, .nd-label, .stats-tag,
.media-eyebrow, .service-eyebrow, .consult-eyebrow, .history-era,
.hero-hook-pc-small, .hm-badge {
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
}

/* 큰 헤딩 자간 조정 (고딕에 맞게 좁게) */
.nd-section-title, .nd-hero-title, .media-title, .service-title, 
.consult-title, .about-section h2, .review-section h2, .zigzag-header h2,
.sub-page-title, .calc-title, .profile-name {
  letter-spacing: -0.3px !important;
  font-weight: 800 !important;
}

/* 카드 배경 - 깨끗한 화이트 */
.about-box, .review-card, .profile-card, .category-card,
.nd-section, .sub-page-container, .calculator-box, .consult-box,
.history-block, .nd-proc-list, .nd-material-box, .nd-price-box,
.nd-spec-row {
  background: #FFFFFF !important;
  border-color: #E5E5E5 !important;
}

/* ─── 강조 텍스트: 그린으로 ─── */
.hero-hook-pc-highlight, .hm-mint,
.about-section h2 .highlight,
.zigzag-header h2 strong,
.stats-text-col h2 strong,
.media-title strong,
.service-title strong,
.consult-title strong,
.nd-section-title strong {
  background: linear-gradient(135deg, #2E7D32 0%, #4CAF50 50%, #6B9A3A 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* 다크 배경의 강조 - 밝은 그린 */
.nd-hero-title strong,
.nd-dark .nd-section-title strong,
.service-section strong {
  background: linear-gradient(135deg, #8BC456 0%, #B8E082 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* ─── 다크 섹션 - 어두운 갈색 (블랙 X) ─── */
.service-section, .nd-dark, .stats-section, .site-footer,
.media-block .nd-consult-panel, .nd-consult-panel {
  background: 
    radial-gradient(ellipse at top, rgba(76,175,80,0.10), transparent 50%),
    linear-gradient(160deg, #1A1A1A 0%, #2A2A2A 100%) !important;
  color: #FFFFFF !important;
}

/* 모바일 메뉴 다크 → 어두운 갈색 */
#mobile-overlay-menu, .mobile-menu {
  background: #1A1A1A !important;
}

/* ─── 갈색황토 그라데이션 CTA ─── */
.estimate-cta, .nd-price-cta, .estimate-cta-btn,
.nd-consult-cta, .consult-cta, .history-era,
.mobile-menu-call, .after-badge, .after-chip,
.nd-thumb-tag.after, .nd-ba-arrow, .nd-ba-vs {
  background: linear-gradient(135deg, #1B5E20 0%, #4CAF50 50%, #66BB6A 100%) !important;
  color: #FFFFFF !important;
}

/* CTA 호버 - 그린으로 전환 */
.estimate-cta-btn:hover, .nd-price-cta:hover,
.nd-consult-cta:hover, .consult-cta:hover, .nav-phone:hover {
  background: linear-gradient(135deg, #2E7D32, #4CAF50) !important;
  color: #FFFFFF !important;
}

/* ─── 단색 갈색황토 사용처 ─── */
.consult-promise-icon,
.review-pagination .swiper-pagination-bullet-active,
.profile-role-badge {
  background: #4CAF50 !important;
  color: #FFFFFF !important;
}

/* 헤더 SNS 호버 - 그린 */
.header-sns-btn:hover {
  background: linear-gradient(135deg, #2E7D32, #4CAF50) !important;
}

/* ─── 라벨/부제 텍스트 - 갈색황토 ─── */
.nd-label, .service-eyebrow, .media-eyebrow, .consult-eyebrow,
.nd-tag, .stats-tag, .hero-hook-pc-small, .hm-badge,
.about-section h2::before, .review-section h2::before, .zigzag-header h2::before {
  color: #2E7D32 !important;
}

/* 다크 배경 라벨 - 밝은 황토 */
.nd-dark .nd-label, .service-section .service-eyebrow,
.service-section .counter-label, .nd-hero-stats .dp-stat span {
  color: #C5E1A5 !important;
}

/* ─── 큰 숫자 카운터 - 그린 강조 ─── */
.counter-num, .mc-num, .nd-feat-num, .gmag-cat-num,
.dp-feature-num, .nd-cta-num, .consult-cta-num {
  background: linear-gradient(135deg, #1B5E20, #4CAF50) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* 다크 배경 카운터 - 밝은 그린 */
.service-section .counter-num,
.nd-hero-stats .dp-stat strong {
  background: linear-gradient(135deg, #8BC456, #B8E082) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* ─── 보더 통일 ─── */
.consult-info, .nd-price-meta, .nd-proc-row,
.history-block, .nd-spec-icon, .nd-meta-icon,
.consult-promise, .skill-tag, .nav-phone,
.nd-material-box, .calculator-box::before,
.sub-page-container::before {
  border-color: #E5E5E5 !important;
}

/* 강조 보더 (CTA, 메인 강조) - 갈색황토 */
.nd-material-box, .nav-phone, .nd-hero,
.consult-box {
  border-color: #4CAF50 !important;
}

/* 다크 배경 보더 - 옅은 갈색황토 */
.nd-dark, .service-section, .stats-section, .site-footer {
  border-color: rgba(102,187,106,0.25) !important;
}

/* 페이드 라인 - 갈색황토 */
.service-deco-line, .media-deco-line, .section-divider,
.about-section h2::after, .review-section h2::after,
.zigzag-header h2::after, .sub-page-title::after,
.consult-divider, .media-divider-line {
  background: linear-gradient(90deg, transparent, #4CAF50 50%, transparent) !important;
}

/* ─── 그린 액센트 포인트 ─── */
.nd-feat-item::before,
.nd-spec-row::before,
.review-card::before,
.profile-card::before,
.category-card .card-body::before,
.about-box::before {
  background: linear-gradient(to bottom, #2E7D32, #4CAF50, #6B9A3A) !important;
}

/* 카드 호버 - 그린 보더 */
.category-card:hover, .review-card:hover,
.profile-card:hover, .nd-feat-item:hover,
.about-box:hover, .nd-spec-row:hover {
  border-color: #4CAF50 !important;
}

/* 화살표 아이콘 - 그린 */
.card-arrow em, .media-review-link svg,
.nd-feat-arrow, .review-nav-btn svg {
  color: #4CAF50 !important;
}

/* 사이드바 active - 갈색황토 */
.sidebar a::before {
  background: linear-gradient(to bottom, #1B5E20, #4CAF50) !important;
}
.sidebar a.active, .sidebar a:hover {
  color: #1B5E20 !important;
}

/* 한자 표시 클래스가 있어도 노출 안 되게 (예방) */
.hanja-mark { display: none !important; }

/* 가독성 - 본문 텍스트 크기 살짝 증가 (블랙 텍스트 대신 큰 텍스트) */
.review-card .review-text, .nd-feat-desc, 
.nd-proc-desc, .about-box p,
.profile-desc, .media-desc {
  font-size: 15px !important;
  line-height: 1.75 !important;
  color: #1A1A1A;
}

/* 헤딩 크게 (블랙 강조 대신 크기로) */
.nd-section-title, .media-title, .service-title, .consult-title,
.about-section h2, .review-section h2, .zigzag-header h2 {
  font-size: clamp(28px, 3.8vw, 42px) !important;
  font-weight: 800 !important;
  color: #1A1A1A !important;
}

/* 후기 인용구 장식 - 그린 톤 */
.review-card .review-body::before,
.review-card::before {
  color: rgba(76,175,80,0.15);
}
.history-headline::before {
  color: rgba(76,175,80,0.18);
}

/* 푸터 텍스트 */
.site-footer, .site-footer * {
  color: #E5E5E5 !important;
}
.site-footer .footer-copy, .site-footer .footer-tagline {
  color: #66BB6A !important;
}

/* =====================================================
   v23 — 밝은 톤 재조정 (밝은 그린 통합 + 흰 배경 + 다크에 밝은 텍스트)
   ===================================================== */

/* ─── 1. 배경 순백 / 본문 텍스트 다크 갈색은 좀 더 부드럽게 ─── */
body, html {
  background-color: #FFFFFF !important;
  background-image: none !important;
}

/* 메인 본문 텍스트 - 너무 어두운 갈색을 회색-차콜로 (살짝 부드럽게) */
body, .review-card .review-text, .nd-feat-desc, 
.nd-proc-desc, .about-box p, .profile-desc, .media-desc,
.history-list li, .history-headline, .nd-hero-sub,
.consult-desc, .review-author, p, span, div, li {
  color: #2A2A2A;
}

/* ─── 2. 강조 텍스트: 밝고 채도 높은 그린으로 ─── */
.hero-hook-pc-highlight, .hm-mint,
.about-section h2 .highlight,
.zigzag-header h2 strong,
.stats-text-col h2 strong,
.media-title strong,
.service-title strong,
.consult-title strong,
.nd-section-title strong {
  background: linear-gradient(135deg, #4CAF50 0%, #66BB6A 50%, #81C784 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  display: inline-block !important;
  /* 잘림 방지 */
  padding-right: 0.15em !important;
  padding-bottom: 0.08em !important;
  line-height: 1.35 !important;
  letter-spacing: -0.2px !important;
}

/* 다크 배경에서는 더 밝고 채도 강한 그린 */
.nd-hero-title strong,
.nd-dark .nd-section-title strong,
.service-section strong,
.media-block .nd-consult-panel strong,
.nd-consult-panel strong,
.media-title strong {
  background: linear-gradient(135deg, #8BC34A 0%, #AED581 50%, #C5E1A5 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* ─── 3. 메인 후킹 문구 줄바꿈 정리 (긴 문장 깔끔하게) ─── */
.hero-hook-pc-small {
  font-size: 15px !important;
  letter-spacing: 4px !important;
  color: #4CAF50 !important;
  margin-bottom: 18px !important;
  font-weight: 700 !important;
}
.hero-hook-pc-big {
  font-size: clamp(28px, 4vw, 42px) !important;
  line-height: 1.45 !important;
  letter-spacing: -0.5px !important;
  color: #1C1C1C !important;
  margin-bottom: 6px !important;
  font-weight: 800 !important;
}
.hero-hook-pc-highlight {
  font-size: clamp(38px, 5.5vw, 58px) !important;
  letter-spacing: -1px !important;
  line-height: 1.3 !important;
  font-weight: 900 !important;
  margin-bottom: 28px !important;
}
.hero-hook-pc-accent { display: none !important; }
.hero-hook-pc-sub {
  font-size: 15px !important;
  line-height: 1.85 !important;
  letter-spacing: 0 !important;
  color: #4A4A4A !important;
  font-weight: 400 !important;
  word-break: keep-all !important;
}

/* 모바일 후킹 정리 */
.hm-badge {
  font-size: 11px !important;
  letter-spacing: 3px !important;
  color: #4CAF50 !important;
  font-weight: 700 !important;
}
.hm-big {
  font-size: 22px !important;
  line-height: 1.4 !important;
  font-weight: 800 !important;
  letter-spacing: -0.3px !important;
}
.hm-mint {
  font-size: 30px !important;
  line-height: 1.3 !important;
  font-weight: 900 !important;
  letter-spacing: -0.5px !important;
}
.hm-sub {
  font-size: 13px !important;
  line-height: 1.7 !important;
  color: #4A4A4A !important;
  word-break: keep-all !important;
}
.hm-cta {
  font-size: 14px !important;
  line-height: 1.6 !important;
  font-weight: 600 !important;
}

/* ─── 4. about-section 메인 후킹 (비싼 교체 대신…) 줄바꿈 깔끔하게 ─── */
.about-section h2 {
  font-size: clamp(20px, 2.6vw, 32px) !important;
  line-height: 1.6 !important;
  font-weight: 800 !important;
  letter-spacing: -0.3px !important;
  word-break: keep-all !important;
  text-align: left !important;
  max-width: 100%;
}
@media (max-width: 900px) {
  .about-section h2 {
    font-size: 18px !important;
    line-height: 1.65 !important;
    text-align: center !important;
  }
}
@media (max-width: 600px) {
  .about-section h2 {
    font-size: 16px !important;
    line-height: 1.7 !important;
  }
}

/* ─── 5. 무료 방문 상담 CTA (estimate-cta) - 그린 통합 ─── */
.estimate-cta {
  background: 
    radial-gradient(ellipse at top right, rgba(139,195,74,0.15), transparent 50%),
    linear-gradient(135deg, #2E7D32 0%, #43A047 50%, #66BB6A 100%) !important;
  border: 1px solid #81C784 !important;
  color: #FFFFFF !important;
}
.estimate-cta::before {
  background: linear-gradient(90deg, transparent, #C8E6C9 50%, transparent) !important;
}
.estimate-cta-text strong {
  color: #FFFFFF !important;
  font-weight: 800 !important;
}
.estimate-cta-text span {
  color: rgba(255,255,255,0.92) !important;
}
.estimate-cta-btn {
  background: #FFFFFF !important;
  color: #2E7D32 !important;
  font-weight: 800 !important;
  border: none !important;
}
.estimate-cta-btn:hover {
  background: #1C1C1C !important;
  color: #81C784 !important;
  transform: translateY(-2px);
}

/* ─── 6. 견적 안내 패널 - 그린 톤으로 통합 ─── */
.nd-consult-panel {
  background: 
    radial-gradient(ellipse at top right, rgba(139,195,74,0.18), transparent 55%),
    linear-gradient(150deg, #1B5E20 0%, #2E7D32 100%) !important;
  border: 1px solid #66BB6A !important;
  color: #FFFFFF !important;
}
.nd-consult-panel::after {
  border-color: rgba(200,230,201,0.25) !important;
}
.nd-consult-deco { color: #AED581 !important; }
.nd-consult-eyebrow {
  color: #C5E1A5 !important;
  font-weight: 700 !important;
}
.nd-consult-headline {
  color: #FFFFFF !important;
  font-weight: 800 !important;
}
.nd-consult-sub {
  color: rgba(255,255,255,0.85) !important;
}
.nd-consult-cta {
  background: #FFFFFF !important;
  color: #1B5E20 !important;
  box-shadow: 0 6px 20px rgba(0,0,0,0.2) !important;
}
.nd-consult-cta:hover {
  background: #1C1C1C !important;
  color: #81C784 !important;
}
.nd-cta-ico {
  background: #4CAF50 !important;
}
.nd-cta-ico svg { color: #FFFFFF !important; }
.nd-cta-num {
  color: #1B5E20 !important;
  font-weight: 800 !important;
}
.nd-consult-cta:hover .nd-cta-num { color: #81C784 !important; }
.nd-cta-desc {
  color: rgba(28,28,28,0.7) !important;
  font-weight: 700 !important;
}
.nd-consult-cta:hover .nd-cta-desc { color: rgba(129,199,132,0.85) !important; }

/* ─── 7. 메인 후기 GIF 블록 CTA 링크 - 그린으로 ─── */
.media-review-link {
  border: 1px solid #4CAF50 !important;
  color: #2E7D32 !important;
  font-weight: 700 !important;
}
.media-review-link:hover {
  background: linear-gradient(135deg, #2E7D32, #4CAF50) !important;
  color: #FFFFFF !important;
}

/* ─── 8. 다크 섹션 (service, before-after) - 텍스트 무조건 밝게 ─── */
.service-section, .nd-dark, .stats-section {
  background: 
    radial-gradient(ellipse at top, rgba(76,175,80,0.12), transparent 50%),
    linear-gradient(160deg, #1A1A1A 0%, #2C2C2C 100%) !important;
  color: #FFFFFF !important;
}
.service-section *, .nd-dark *, .stats-section * {
  color: inherit;
}

.service-section .service-title,
.nd-dark .nd-section-title,
.media-block .media-title,
.nd-consult-panel * {
  color: #FFFFFF !important;
}
.service-section .service-desc,
.nd-dark .nd-hero-sub,
.nd-ba-caption,
.nd-ba-headtxt {
  color: rgba(255,255,255,0.92) !important;
}
.service-section .service-eyebrow,
.nd-dark .nd-label,
.service-section .counter-label {
  color: #AED581 !important;
}
.nd-hero-stats .dp-stat span,
.nd-hero-stats .dp-stat strong {
  color: #FFFFFF !important;
}

/* ─── 9. 상세페이지 히어로 - 이미지 배경 ─── */
.nd-hero {
  position: relative;
  min-height: 520px !important;
  overflow: hidden;
  background: #1C1C1C;
  border: 1px solid #4CAF50 !important;
}
.nd-hero-bg {
  position: absolute !important;
  inset: 0;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  filter: brightness(0.55) saturate(0.95);
  transition: transform 8s ease-out;
}
.nd-hero:hover .nd-hero-bg { transform: scale(1.06); }
.nd-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, 
    rgba(0,0,0,0.35) 0%, 
    rgba(0,0,0,0.55) 60%,
    rgba(0,0,0,0.85) 100%) !important;
}
.nd-hero-inner {
  position: relative;
  z-index: 2;
  color: #FFFFFF !important;
}
.nd-hero-title {
  color: #FFFFFF !important;
  text-shadow: 0 2px 14px rgba(0,0,0,0.5);
}
.nd-hero-sub {
  color: rgba(255,255,255,0.95) !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.4);
}
.nd-tag {
  background: rgba(76,175,80,0.25) !important;
  border: 1px solid #81C784 !important;
  color: #C5E1A5 !important;
  backdrop-filter: blur(8px);
  font-weight: 700 !important;
}
.nd-hero::after {
  border-color: rgba(200,230,201,0.3) !important;
}

/* 카테고리별 히어로 배경 이미지 - JS의 background-image inline style 활용 */
/* JS에서 이미 thumbImage를 배경으로 적용함 - filter만 살짝 조정 */

/* ─── 10. zigzag '필요성' 잘림 해결 ─── */
.zigzag-header h2 {
  font-size: clamp(24px, 3.2vw, 36px) !important;
  line-height: 1.5 !important;
  padding: 8px 4px !important;
  font-weight: 800 !important;
  letter-spacing: -0.3px !important;
  word-break: keep-all !important;
  overflow: visible !important;
  display: inline-block;
  max-width: 100%;
}
.zigzag-header h2 strong {
  display: inline-block !important;
  padding: 0 6px 4px 2px !important;
  line-height: 1.4 !important;
  overflow: visible !important;
}
.zigzag-header {
  text-align: center;
  padding: 0 16px;
  overflow: visible !important;
}

/* ─── 11. 다크 섹션 그라데이션 강조 텍스트 모두 채도 강한 밝은 그린 ─── */
.nd-dark .nd-section-title,
.service-section .service-title,
.nd-consult-panel .nd-consult-headline {
  text-shadow: 0 1px 8px rgba(0,0,0,0.3);
}

/* ─── 12. 메인 CTA 그라데이션 통일 - 그린 ─── */
.history-era,
.mobile-menu-call,
.after-badge, .after-chip,
.nd-thumb-tag.after, .nd-ba-arrow, .nd-ba-vs,
.nd-price-cta {
  background: linear-gradient(135deg, #2E7D32 0%, #43A047 50%, #66BB6A 100%) !important;
  color: #FFFFFF !important;
  border-color: #81C784 !important;
}
.nd-price-cta .cta-phone-num,
.nd-price-cta .cta-desc {
  color: #FFFFFF !important;
}
.nd-price-cta .cta-phone-ico {
  background: #FFFFFF !important;
}
.nd-price-cta .cta-phone-ico svg path,
.nd-price-cta .cta-phone-ico svg { color: #2E7D32 !important; stroke: #2E7D32 !important; }

/* ─── 13. 단색 그린 사용처 통합 ─── */
.consult-promise-icon,
.review-pagination .swiper-pagination-bullet-active,
.profile-role-badge {
  background: linear-gradient(135deg, #2E7D32, #4CAF50) !important;
  color: #FFFFFF !important;
}

/* ─── 14. 헤더 SNS 호버 - 채도 강한 그린 ─── */
.header-sns-btn:hover {
  background: linear-gradient(135deg, #2E7D32, #4CAF50) !important;
  border-color: #4CAF50 !important;
}

/* ─── 15. nav 메뉴 hover 색상 ─── */
.main-menu a:hover,
.sub-nav-menu a:hover,
.mob-menu-item:hover .mob-menu-label,
.nav-phone {
  color: #2E7D32 !important;
}
.nav-phone {
  border-color: #4CAF50 !important;
  background: linear-gradient(135deg, #F1F8E9, #FFFFFF) !important;
}
.nav-phone:hover {
  background: linear-gradient(135deg, #2E7D32, #4CAF50) !important;
  color: #FFFFFF !important;
}

/* ─── 16. 라벨/부제 그린으로 ─── */
.nd-label, .service-eyebrow, .media-eyebrow, .consult-eyebrow,
.about-section h2::before, .review-section h2::before, .zigzag-header h2::before {
  color: #2E7D32 !important;
  font-weight: 700 !important;
  letter-spacing: 4px !important;
}

/* ─── 17. 큰 숫자 - 채도 높은 그린 ─── */
.counter-num, .mc-num, .nd-feat-num, .gmag-cat-num,
.dp-feature-num, .nd-cta-num, .consult-cta-num {
  background: linear-gradient(135deg, #2E7D32, #4CAF50, #66BB6A) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  font-weight: 800 !important;
}

/* 다크 배경 카운터 - 더 밝게 */
.service-section .counter-num,
.nd-hero-stats .dp-stat strong {
  background: linear-gradient(135deg, #AED581, #C5E1A5, #FFFFFF) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* ─── 18. 페이드 라인 모두 그린 ─── */
.service-deco-line, .media-deco-line, .section-divider,
.about-section h2::after, .review-section h2::after,
.zigzag-header h2::after, .sub-page-title::after,
.consult-divider, .media-divider-line,
.nd-section-title::after, .nd-section::before {
  background: linear-gradient(90deg, transparent, #4CAF50 50%, transparent) !important;
}

/* ─── 19. 카드 좌측 라인 ─── */
.nd-feat-item::before, .nd-spec-row::before,
.review-card::before, .profile-card::before,
.category-card .card-body::before, .about-box::before {
  background: linear-gradient(to bottom, #2E7D32, #4CAF50, #66BB6A) !important;
}

/* ─── 20. 카드 호버 - 그린 보더 ─── */
.category-card:hover, .review-card:hover,
.profile-card:hover, .nd-feat-item:hover,
.about-box:hover, .nd-spec-row:hover {
  border-color: #4CAF50 !important;
}

/* ─── 21. 화살표 아이콘 모두 그린 ─── */
.card-arrow em, .media-review-link svg,
.nd-feat-arrow, .review-nav-btn svg,
.history-list li::before {
  color: #4CAF50 !important;
}

/* ─── 22. 사이드바 active - 그린 ─── */
.sidebar a::before {
  background: linear-gradient(to bottom, #2E7D32, #4CAF50) !important;
}
.sidebar a.active, .sidebar a:hover {
  color: #2E7D32 !important;
  background: #F1F8E9 !important;
}

/* ─── 23. 푸터 - 다크 배경에 밝은 텍스트 ─── */
.site-footer {
  background: 
    radial-gradient(ellipse at top, rgba(76,175,80,0.10), transparent 50%),
    linear-gradient(180deg, #1A1A1A 0%, #0F0F0F 100%) !important;
}
.site-footer, .site-footer p, .site-footer span, 
.site-footer div, .site-footer a {
  color: #E0E0E0 !important;
}
.site-footer .footer-copy, .site-footer .footer-tagline {
  color: #AED581 !important;
}

/* ─── 24. 모바일 메뉴 다크 배경 - 그린 액센트 ─── */
#mobile-overlay-menu, .mobile-menu {
  background: #1C1C1C !important;
}
#mobile-overlay-menu *, .mobile-menu * {
  color: #FFFFFF;
}
.mob-menu-num, .mobile-menu-nav .num {
  color: #66BB6A !important;
}
.mobile-menu-logo-en, .mobile-menu-nav .en {
  color: #AED581 !important;
}
.mobile-menu-call {
  background: linear-gradient(135deg, #2E7D32, #4CAF50) !important;
  color: #FFFFFF !important;
}

/* ─── 25. 퀵메뉴 그린 ─── */
.quick-btn.youtube, .quick-btn.blog, .quick-btn.call,
.quick-toggle-btn, .floating-home-btn {
  background: linear-gradient(135deg, #2E7D32, #4CAF50) !important;
  border-color: #66BB6A !important;
  color: #FFFFFF !important;
}
.quick-btn:hover, .quick-toggle-btn:hover, .floating-home-btn:hover {
  background: linear-gradient(135deg, #1B5E20, #2E7D32) !important;
}

/* ─── 26. 보더 통일 (밝은 톤) ─── */
.consult-info, .nd-price-meta, .nd-proc-row,
.history-block, .nd-spec-icon, .nd-meta-icon,
.consult-promise, .skill-tag {
  border-color: #E0E0E0 !important;
}

/* ─── 27. zigzag 섹션 배경 - 흰색 ─── */
.zigzag-section {
  background: 
    radial-gradient(ellipse at top, rgba(76,175,80,0.06), transparent 50%),
    #FFFFFF !important;
}

/* ─── 28. 모든 sub-page-container 흰 배경 ─── */
.sub-page-container, .calculator-box, .consult-box {
  background: #FFFFFF !important;
}

/* ─── 29. 다크 섹션의 라벨 부분 (정기관리 등) 밝게 ─── */
.nd-hero-stats .dp-stat {
  background: rgba(76,175,80,0.15) !important;
  border-color: rgba(129,199,132,0.4) !important;
}

/* 카테고리 카드의 부제 - 그린 */
.card-subtitle {
  color: #2E7D32 !important;
}
.card-arrow {
  color: #4A4A4A;
}
.card-arrow em { color: #4CAF50 !important; }
.category-card:hover .card-arrow {
  color: #2E7D32 !important;
}

/* 카운터 라벨 다크 배경 */
.service-section .counter-label,
.media-block .mc-label {
  color: rgba(255,255,255,0.75) !important;
}
.media-block .mc-label { color: #4A4A4A !important; }

/* about-section 등 라이트 배경에서는 카운터 라벨 어둡게 */
.media-counters .mc-label {
  color: #4A4A4A !important;
}


/* =====================================================
   v24 — 텍스트 가독성 + 배경 톤 + 메인 히어로 톤 정리
   ===================================================== */

/* ─── 1. 헤더 배경 살구색 → 순백 ─── */
.top-navbar,
.sub-header,
.detail-header {
  background: #FFFFFF !important;
  border-bottom: 1px solid #E5E5E5 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.top-navbar.scrolled,
.sub-header.scrolled {
  background: #FFFFFF !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06) !important;
}

/* 헤더 내부 메뉴 텍스트 - 진한 차콜 */
.main-menu a, .sub-nav-menu a,
.logo-text-fallback {
  color: #1A1A1A !important;
  font-weight: 700 !important;
}
.main-menu a::after, .sub-nav-menu a::after {
  background: #2E7D32 !important;
}

/* ─── 2. 흰 배경 텍스트는 진한 검정-차콜 ─── */
body, html {
  background-color: #FFFFFF !important;
  background-image: none !important;
  color: #1A1A1A !important;
}

/* 본문 텍스트 모두 진한 검정 톤 (가독성 최우선) */
p, span, div, li, td, label, a {
  color: #1A1A1A;
}

/* 본문 설명 텍스트 - 살짝 흐린 차콜 */
.review-card .review-text,
.nd-feat-desc, .nd-proc-desc,
.about-box p, .profile-desc, .media-desc,
.history-list li, .nd-hero-sub,
.consult-desc, .hero-hook-pc-sub, .hm-sub,
.zz-content p,
.dp-feature-desc {
  color: #2A2A2A !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
}

/* ─── 3. 헤딩 텍스트 크게 + 진한 검정 ─── */
h1, h2, h3, h4, h5, h6,
.nd-section-title, .media-title, .service-title, .consult-title,
.about-section h2, .review-section h2, .zigzag-header h2,
.sub-page-title, .calc-title {
  color: #1A1A1A !important;
  font-weight: 800 !important;
}

/* 큰 헤딩 사이즈 ↑ */
.nd-section-title, .media-title, .service-title,
.consult-title, .review-section h2, .zigzag-header h2 {
  font-size: clamp(32px, 4vw, 48px) !important;
  line-height: 1.4 !important;
}

.about-section h2 {
  font-size: clamp(24px, 3vw, 36px) !important;
  line-height: 1.6 !important;
  color: #1A1A1A !important;
}

.sub-page-title {
  font-size: clamp(28px, 3.5vw, 40px) !important;
  font-weight: 800 !important;
}

/* ─── 4. 메인 후킹 (당신의 공간에) - 흰색 + 그린만 ─── */
.hero-hook-pc-small, .hm-badge {
  color: #66BB6A !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: 4px !important;
  background: rgba(76,175,80,0.15) !important;
  border: 1px solid rgba(129,199,132,0.4) !important;
  padding: 8px 20px !important;
  border-radius: 50px !important;
  display: inline-block !important;
  margin-bottom: 24px !important;
}

.hero-hook-pc-big, .hm-big {
  color: #FFFFFF !important;
  font-weight: 800 !important;
  font-size: clamp(36px, 5vw, 56px) !important;
  text-shadow: 0 2px 16px rgba(0,0,0,0.5);
  margin-bottom: 8px !important;
  letter-spacing: -0.5px !important;
}

.hero-hook-pc-highlight, .hm-mint {
  background: linear-gradient(135deg, #8BC34A 0%, #AED581 50%, #FFFFFF 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  font-size: clamp(44px, 6vw, 68px) !important;
  font-weight: 900 !important;
  letter-spacing: -1px !important;
  display: inline-block !important;
  padding: 0 4px 8px !important;
  line-height: 1.3 !important;
  margin-bottom: 32px !important;
  text-shadow: 0 2px 20px rgba(0,0,0,0.3);
}

.hero-hook-pc-accent {
  display: none !important;
}

.hero-hook-pc-sub, .hm-sub {
  color: #FFFFFF !important;
  font-size: 17px !important;
  line-height: 1.85 !important;
  font-weight: 400 !important;
  text-shadow: 0 1px 10px rgba(0,0,0,0.5) !important;
  background: rgba(0,0,0,0.25);
  padding: 16px 24px;
  border-radius: 12px;
  backdrop-filter: blur(4px);
  display: inline-block;
  max-width: 720px;
  word-break: keep-all;
}

.hm-cta {
  color: #FFFFFF !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.5) !important;
}

/* 메인 hero 배경 어둡게 조정 (텍스트 가독성) */
.hero-overlay,
.hero::before {
  background: linear-gradient(180deg, 
    rgba(0,0,0,0.45) 0%, 
    rgba(0,0,0,0.55) 50%, 
    rgba(0,0,0,0.75) 100%) !important;
}

/* ─── 5. about-section (비싼 교체 대신…) — 흰 배경에 검정 텍스트 ─── */
.about-section {
  background: #FFFFFF !important;
}
.about-section h2 {
  color: #1A1A1A !important;
  font-weight: 800 !important;
}
.about-section h2 .highlight {
  background: linear-gradient(135deg, #1B5E20 0%, #2E7D32 50%, #4CAF50 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  font-weight: 900 !important;
  padding: 0 4px;
}

/* reason 카드 - 검정 텍스트 */
.about-box {
  background: #FFFFFF !important;
  border: 1px solid #E5E5E5 !important;
}
.about-box h4 {
  color: #2E7D32 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 3px !important;
}
.about-box p, .about-box strong {
  color: #1A1A1A !important;
}
.about-box strong {
  font-size: 18px !important;
  font-weight: 800 !important;
  display: block;
  margin-top: 6px;
}

/* OUR PROMISE 등 부제 - 그린 진하게 + 크게 */
.about-section h2::before {
  color: #2E7D32 !important;
  font-size: 14px !important;
  letter-spacing: 6px !important;
  font-weight: 700 !important;
}
.review-section h2::before,
.zigzag-header h2::before {
  color: #2E7D32 !important;
  font-size: 14px !important;
  letter-spacing: 6px !important;
  font-weight: 700 !important;
}

/* ─── 6. zigzag 섹션 — 흰 배경 + 검정 텍스트 ─── */
.zigzag-section {
  background: #FFFFFF !important;
}
.zigzag-header h2 {
  color: #1A1A1A !important;
  font-weight: 800 !important;
  font-size: clamp(28px, 4vw, 44px) !important;
  line-height: 1.5 !important;
  padding: 12px 8px !important;
  overflow: visible !important;
}
.zigzag-header h2 strong {
  background: linear-gradient(135deg, #1B5E20, #2E7D32, #4CAF50) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  display: inline-block !important;
  padding: 0 8px 6px 4px !important;
  line-height: 1.45 !important;
  font-weight: 900 !important;
  overflow: visible !important;
}
.zz-content h3 {
  color: #1A1A1A !important;
  font-size: 20px !important;
  font-weight: 800 !important;
}
.zz-content p {
  color: #2A2A2A !important;
  font-size: 16px !important;
}
.zz-badge {
  background: #E8F5E9 !important;
  color: #2E7D32 !important;
  border: 1px solid #81C784 !important;
  font-weight: 700 !important;
}
.zz-label {
  color: #1A1A1A !important;
  font-weight: 700 !important;
}

/* ─── 7. GIF 블록 (CUSTOMER CARE, TESTIMONIALS) — 흰 배경 검정 텍스트 ─── */
.media-block {
  background: #FFFFFF !important;
}
.media-eyebrow {
  color: #2E7D32 !important;
  font-size: 14px !important;
  letter-spacing: 5px !important;
  font-weight: 700 !important;
}
.media-title {
  color: #1A1A1A !important;
  font-weight: 800 !important;
  font-size: clamp(32px, 4vw, 48px) !important;
}
.media-title strong {
  background: linear-gradient(135deg, #1B5E20, #2E7D32, #4CAF50) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  font-weight: 900 !important;
}
.media-desc {
  color: #2A2A2A !important;
  font-size: 16px !important;
  line-height: 1.85 !important;
}
.mc-num {
  font-size: clamp(36px, 5vw, 52px) !important;
  font-weight: 900 !important;
}
.mc-label {
  color: #2A2A2A !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}

/* ─── 8. 후기 카드 ─── */
.review-section {
  background: #FFFFFF !important;
}
.review-section h2 {
  color: #1A1A1A !important;
  font-weight: 800 !important;
}
.review-card {
  background: #FFFFFF !important;
  border: 1px solid #E5E5E5 !important;
}
.review-card .review-text {
  color: #1A1A1A !important;
  font-size: 15px !important;
  font-weight: 500 !important;
}
.review-card .review-author {
  color: #2E7D32 !important;
  font-weight: 700 !important;
}

/* ─── 9. 다크 섹션 (service-section, nd-dark) - 흰 + 그린 텍스트만 ─── */
.service-section,
.nd-dark, .nd-ba-section {
  background: 
    radial-gradient(ellipse at top, rgba(76,175,80,0.15), transparent 50%),
    linear-gradient(160deg, #1A1A1A 0%, #2A2A2A 100%) !important;
}
.service-section *, 
.nd-dark *, .nd-ba-section * {
  color: #FFFFFF;
}
.service-section .service-title,
.nd-dark .nd-section-title,
.nd-ba-section .nd-section-title {
  color: #FFFFFF !important;
  font-size: clamp(32px, 4.5vw, 52px) !important;
  font-weight: 800 !important;
}
.service-section .service-title strong,
.nd-dark .nd-section-title strong,
.nd-ba-section .nd-section-title strong {
  background: linear-gradient(135deg, #8BC34A, #AED581, #FFFFFF) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  font-weight: 900 !important;
}
.service-section .service-eyebrow,
.nd-dark .nd-label {
  color: #AED581 !important;
  font-size: 14px !important;
  letter-spacing: 5px !important;
  font-weight: 700 !important;
}
.service-section .service-desc,
.nd-ba-headtxt, .nd-ba-caption {
  color: #FFFFFF !important;
  font-size: 16px !important;
}
.service-section .counter-label {
  color: rgba(255,255,255,0.85) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}
.service-section .counter-num {
  background: linear-gradient(135deg, #AED581, #C5E1A5, #FFFFFF) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  font-size: clamp(40px, 5.5vw, 56px) !important;
}

/* ─── 10. 견적 패널 (nd-consult-panel) — 그린 + 흰 텍스트 ─── */
.nd-consult-panel {
  background: 
    radial-gradient(ellipse at top right, rgba(174,213,129,0.2), transparent 55%),
    linear-gradient(150deg, #1B5E20 0%, #2E7D32 100%) !important;
  border: 1px solid #66BB6A !important;
}
.nd-consult-panel * {
  color: #FFFFFF;
}
.nd-consult-eyebrow {
  color: #C5E1A5 !important;
  font-size: 13px !important;
  letter-spacing: 5px !important;
  font-weight: 700 !important;
}
.nd-consult-headline {
  color: #FFFFFF !important;
  font-size: clamp(26px, 3.5vw, 36px) !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
}
.nd-consult-sub {
  color: rgba(255,255,255,0.92) !important;
  font-size: 15px !important;
  line-height: 1.8 !important;
}
.nd-consult-cta {
  background: #FFFFFF !important;
}
.nd-consult-cta .nd-cta-num {
  color: #1B5E20 !important;
  font-size: 22px !important;
  font-weight: 800 !important;
}
.nd-consult-cta .nd-cta-desc {
  color: #4A4A4A !important;
  font-weight: 700 !important;
  font-size: 13px !important;
}
.nd-cta-ico {
  background: #4CAF50 !important;
}

/* ─── 11. estimate-cta (무료 방문 상담) ─── */
.estimate-cta {
  background: 
    radial-gradient(ellipse at top right, rgba(174,213,129,0.18), transparent 50%),
    linear-gradient(135deg, #1B5E20 0%, #2E7D32 50%, #43A047 100%) !important;
  border: 1px solid #81C784 !important;
}
.estimate-cta * {
  color: #FFFFFF;
}
.estimate-cta-text strong {
  color: #FFFFFF !important;
  font-size: 18px !important;
  font-weight: 800 !important;
}
.estimate-cta-text span {
  color: rgba(255,255,255,0.92) !important;
  font-size: 14px !important;
}
.estimate-cta-btn {
  background: #FFFFFF !important;
  color: #1B5E20 !important;
  font-weight: 800 !important;
  border: none !important;
  font-size: 15px !important;
}
.estimate-cta-btn:hover {
  background: #1A1A1A !important;
  color: #AED581 !important;
}

/* ─── 12. 챗봇/전화상담 버튼 - 그린 통합 ─── */
.chatbot-toggle, .cb-toggle,
.quick-btn.youtube, .quick-btn.blog, .quick-btn.call,
.quick-toggle-btn, .floating-home-btn {
  background: linear-gradient(135deg, #2E7D32, #4CAF50) !important;
  border: 1px solid #66BB6A !important;
  color: #FFFFFF !important;
}
.quick-btn:hover, .floating-home-btn:hover {
  background: linear-gradient(135deg, #1B5E20, #2E7D32) !important;
}

/* ─── 13. 카테고리 카드 부제 (Premium Residence 등) ─── */
.card-subtitle {
  color: #2E7D32 !important;
  font-weight: 700 !important;
  font-size: 13px !important;
}
.category-card h3 {
  color: #1A1A1A !important;
  font-size: 22px !important;
  font-weight: 800 !important;
}
.card-arrow {
  color: #4A4A4A !important;
  font-weight: 600 !important;
}
.card-arrow em {
  color: #4CAF50 !important;
  font-size: 16px !important;
}
.category-card:hover .card-arrow {
  color: #2E7D32 !important;
}

/* ─── 14. CONSULT_INFO 등 - 흰 배경에 검정 ─── */
.consult-info, .consult-info * {
  color: #1A1A1A !important;
}
.consult-info-item em {
  color: #2E7D32 !important;
  font-weight: 700 !important;
}

/* ─── 15. 헤더 SNS 버튼 ─── */
.header-sns-btn {
  background: #FFFFFF !important;
  border: 1px solid #4CAF50 !important;
  color: #2E7D32 !important;
}
.header-sns-btn:hover {
  background: linear-gradient(135deg, #2E7D32, #4CAF50) !important;
  color: #FFFFFF !important;
}
.nav-phone {
  background: #FFFFFF !important;
  border: 1px solid #4CAF50 !important;
  color: #2E7D32 !important;
  font-weight: 700 !important;
}
.nav-phone:hover {
  background: linear-gradient(135deg, #2E7D32, #4CAF50) !important;
  color: #FFFFFF !important;
}

/* ─── 16. 사이드바 (상세페이지) ─── */
.sidebar {
  background: #FFFFFF !important;
}
.sidebar a {
  color: #1A1A1A !important;
  font-weight: 600 !important;
  font-size: 15px !important;
}
.sidebar a.active, .sidebar a:hover {
  color: #2E7D32 !important;
  background: #E8F5E9 !important;
  font-weight: 800 !important;
}

/* ─── 17. 자재 안내 박스 ─── */
.nd-material-box {
  background: #FFFFFF !important;
  border: 1px solid #4CAF50 !important;
}
.nd-material-text strong {
  color: #1A1A1A !important;
  font-size: 17px !important;
  font-weight: 800 !important;
}
.nd-material-text p {
  color: #2A2A2A !important;
  font-size: 14px !important;
}
.nd-spec-row {
  background: #FFFFFF !important;
  border-color: #E5E5E5 !important;
}
.nd-spec-label {
  color: #2E7D32 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}
.nd-spec-value {
  color: #1A1A1A !important;
  font-size: 16px !important;
  font-weight: 800 !important;
}

/* ─── 18. 시공 프로세스 섹션 (nd-gallery-section) ─── */
.nd-gallery-section, .nd-process-section,
.nd-consult-section {
  background: #FFFFFF !important;
}
.nd-section-title {
  color: #1A1A1A !important;
}

/* ─── 19. 카운터/숫자 강조 - 채도 강한 그린 ─── */
.counter-num, .mc-num, .nd-feat-num,
.gmag-cat-num, .dp-feature-num {
  background: linear-gradient(135deg, #1B5E20, #2E7D32, #4CAF50) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  font-weight: 900 !important;
}

/* ─── 20. 다크 배경 라벨 - 큰 글씨 + 밝게 ─── */
.nd-hero-stats .dp-stat {
  background: rgba(76,175,80,0.18) !important;
  border: 1px solid rgba(129,199,132,0.5) !important;
}
.nd-hero-stats .dp-stat strong {
  color: #FFFFFF !important;
  background: none !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.4);
}
.nd-hero-stats .dp-stat span {
  color: rgba(255,255,255,0.85) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

/* ─── 21. 푸터 ─── */
.site-footer {
  background: linear-gradient(180deg, #1A1A1A 0%, #0F0F0F 100%) !important;
}
.site-footer, .site-footer * {
  color: #E5E5E5 !important;
}
.site-footer a:hover { color: #AED581 !important; }
.site-footer .footer-copy, .site-footer .footer-tagline {
  color: #AED581 !important;
}

/* ─── 22. consult-box (estimate.html 메인) - 흰 배경 ─── */
.consult-box {
  background: #FFFFFF !important;
}
.consult-title {
  color: #1A1A1A !important;
  font-size: clamp(32px, 4vw, 44px) !important;
  font-weight: 800 !important;
}
.consult-title strong {
  background: linear-gradient(135deg, #1B5E20, #2E7D32, #4CAF50) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  font-weight: 900 !important;
}
.consult-desc {
  color: #2A2A2A !important;
  font-size: 16px !important;
}
.consult-eyebrow {
  color: #2E7D32 !important;
  font-weight: 700 !important;
}
.consult-promise-text {
  color: #1A1A1A !important;
  font-weight: 700 !important;
  font-size: 15px !important;
}

/* consult-cta는 다크에 흰 텍스트 */
.consult-cta {
  background: linear-gradient(135deg, #1B5E20 0%, #2E7D32 100%) !important;
}
.consult-cta * {
  color: #FFFFFF;
}
.consult-cta-num {
  color: #FFFFFF !important;
  font-size: 24px !important;
  font-weight: 800 !important;
}
.consult-cta-desc {
  color: rgba(255,255,255,0.85) !important;
}
.consult-cta-icon {
  background: #FFFFFF !important;
}
.consult-cta-icon svg {
  color: #2E7D32 !important;
}

/* ─── 23. 사이드 챗봇/전화상담 버튼 (이미지 7번) ─── */
[class*="chatbot"], [class*="cb-toggle"], 
[class*="chat-toggle"], [id*="chatbot"],
.cb-btn-wrap, .floating-chat,
.chatbot-trigger {
  background: linear-gradient(135deg, #2E7D32, #4CAF50) !important;
  color: #FFFFFF !important;
  border-color: #66BB6A !important;
}

/* ─── 24. 메뉴 작은 화면 패딩 정리 ─── */
@media (max-width: 768px) {
  .nd-section-title, .media-title, .service-title,
  .review-section h2, .zigzag-header h2 {
    font-size: 26px !important;
    line-height: 1.45 !important;
  }
  .about-section h2 {
    font-size: 20px !important;
    line-height: 1.7 !important;
  }
  .hero-hook-pc-big, .hm-big {
    font-size: 26px !important;
  }
  .hero-hook-pc-highlight, .hm-mint {
    font-size: 32px !important;
  }
  .review-card .review-text,
  .nd-feat-desc, .nd-proc-desc,
  .about-box p, .profile-desc, .media-desc {
    font-size: 14px !important;
  }
  .about-box strong {
    font-size: 16px !important;
  }
}

/* =====================================================
   v25 — 메인 히어로 후킹 정리 (여백↓ + 그라데이션 X + 진한 그린)
   ===================================================== */

/* PC 후킹 */
.hero-hook-pc {
  padding: 0 !important;
  gap: 0 !important;
}

.hero-hook-pc-small {
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 3px !important;
  color: #FFFFFF !important;
  background: rgba(46,125,50,0.85) !important;
  border: 1px solid #4CAF50 !important;
  padding: 6px 18px !important;
  border-radius: 50px !important;
  display: inline-block !important;
  margin-bottom: 14px !important;
  text-shadow: none !important;
}

.hero-hook-pc-big {
  font-size: clamp(28px, 4vw, 42px) !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  letter-spacing: -0.5px !important;
  line-height: 1.3 !important;
  margin: 0 0 6px 0 !important;
  text-shadow: 0 2px 12px rgba(0,0,0,0.6);
  background: none !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

.hero-hook-pc-highlight {
  font-size: clamp(36px, 5.5vw, 56px) !important;
  font-weight: 900 !important;
  letter-spacing: -1px !important;
  line-height: 1.25 !important;
  margin: 0 0 18px 0 !important;
  padding: 0 !important;
  /* 그라데이션 없이 진한 채도 그린 단색 */
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #4CAF50 !important;
  color: #4CAF50 !important;
  text-shadow: 0 2px 16px rgba(0,0,0,0.5), 0 0 30px rgba(76,175,80,0.4);
}

.hero-hook-pc-accent { display: none !important; }

.hero-hook-pc-sub {
  font-size: 15px !important;
  line-height: 1.7 !important;
  font-weight: 500 !important;
  color: #FFFFFF !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.7) !important;
  background: none !important;
  padding: 0 !important;
  backdrop-filter: none !important;
  margin: 0 !important;
  max-width: 640px;
  word-break: keep-all;
  display: block !important;
  border-radius: 0 !important;
}

/* 모바일 후킹 */
.hero-hook-mobile {
  padding: 0 !important;
  gap: 0 !important;
}
.hm-badge {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 2.5px !important;
  color: #FFFFFF !important;
  background: rgba(46,125,50,0.85) !important;
  border: 1px solid #4CAF50 !important;
  padding: 5px 14px !important;
  border-radius: 50px !important;
  display: inline-block !important;
  margin-bottom: 12px !important;
}
.hm-big {
  font-size: 24px !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  line-height: 1.3 !important;
  margin: 0 0 4px 0 !important;
  letter-spacing: -0.5px !important;
  background: none !important;
  -webkit-text-fill-color: #FFFFFF !important;
  text-shadow: 0 2px 10px rgba(0,0,0,0.6);
}
.hm-mint {
  font-size: 30px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  margin: 0 0 14px 0 !important;
  padding: 0 !important;
  background: none !important;
  -webkit-text-fill-color: #4CAF50 !important;
  color: #4CAF50 !important;
  letter-spacing: -0.8px !important;
  text-shadow: 0 2px 14px rgba(0,0,0,0.5), 0 0 24px rgba(76,175,80,0.4);
}
.hm-divider {
  width: 40px !important;
  height: 1px !important;
  background: rgba(255,255,255,0.4) !important;
  margin: 0 0 14px 0 !important;
}
.hm-sub {
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: #FFFFFF !important;
  font-weight: 500 !important;
  background: none !important;
  padding: 0 !important;
  margin: 0 0 8px 0 !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.7) !important;
  word-break: keep-all;
}
.hm-cta {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: rgba(255,255,255,0.95) !important;
  line-height: 1.5 !important;
  background: none !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.6) !important;
  margin: 0 !important;
}

/* ─── 일반 강조 텍스트 그라데이션도 제거 (단색 진한 그린) ─── */
.about-section h2 .highlight,
.zigzag-header h2 strong,
.media-title strong,
.service-title strong,
.consult-title strong,
.nd-section-title strong {
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #2E7D32 !important;
  color: #2E7D32 !important;
  font-weight: 900 !important;
}

/* 다크 배경의 강조 - 단색 밝은 그린 */
.nd-hero-title strong,
.nd-dark .nd-section-title strong,
.service-section strong,
.nd-ba-section .nd-section-title strong {
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
  font-weight: 900 !important;
}

/* 카운터/숫자 - 단색 진한 그린 */
.counter-num, .mc-num, .nd-feat-num,
.gmag-cat-num, .dp-feature-num,
.nd-cta-num, .consult-cta-num {
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #2E7D32 !important;
  color: #2E7D32 !important;
  font-weight: 900 !important;
}

/* 다크 배경 카운터 - 밝은 그린 단색 */
.service-section .counter-num {
  background: none !important;
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
}

/* =====================================================
   v26 — 전면 정리 (사용자 요청사항)
   1. 황토 글씨 모두 흰색으로
   2. 그린은 채도 강한 연두 (#8BC34A 계열)
   3. 그라데이션 모두 제거 - 단색만
   4. 챗봇 - 흰 배경 + 그린 액센트로 복원
   5. 메인 히어로 - 텍스트 크게, 배경 어둡게 X
   6. 고객관리/후기 부제(CUSTOMER CARE, TESTIMONIALS) 그린으로 보이게
   ===================================================== */

/* ─── 1. 메인 히어로 - 원본 톤, 텍스트 크게 ─── */
.hero-overlay, .hero::before {
  background: linear-gradient(180deg, 
    rgba(0,0,0,0.25) 0%, 
    rgba(0,0,0,0.35) 60%, 
    rgba(0,0,0,0.5) 100%) !important;
}

/* PC 후킹 - 텍스트 크게 */
.hero-hook-pc-small {
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 3px !important;
  color: #FFFFFF !important;
  background: rgba(76,175,80,0.85) !important;
  border: 1px solid #66BB6A !important;
  padding: 8px 22px !important;
  border-radius: 50px !important;
  display: inline-block !important;
  margin-bottom: 20px !important;
  text-shadow: none !important;
}
.hero-hook-pc-big {
  font-size: clamp(40px, 5.5vw, 64px) !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  letter-spacing: -0.5px !important;
  line-height: 1.25 !important;
  margin: 0 0 10px 0 !important;
  text-shadow: 0 3px 16px rgba(0,0,0,0.6);
  background: none !important;
  -webkit-text-fill-color: #FFFFFF !important;
}
.hero-hook-pc-highlight {
  font-size: clamp(52px, 7.5vw, 84px) !important;
  font-weight: 900 !important;
  letter-spacing: -1.2px !important;
  line-height: 1.2 !important;
  margin: 0 0 28px 0 !important;
  padding: 0 !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
  text-shadow: 0 3px 20px rgba(0,0,0,0.5), 0 0 40px rgba(139,195,74,0.5);
  display: inline-block !important;
}
.hero-hook-pc-accent { display: none !important; }
.hero-hook-pc-sub {
  font-size: 17px !important;
  line-height: 1.75 !important;
  font-weight: 500 !important;
  color: #FFFFFF !important;
  text-shadow: 0 2px 10px rgba(0,0,0,0.7) !important;
  background: none !important;
  padding: 0 !important;
  backdrop-filter: none !important;
  margin: 0 !important;
  max-width: 700px;
  word-break: keep-all;
  display: block !important;
  border-radius: 0 !important;
}

/* 모바일 후킹 */
.hm-badge {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 2.5px !important;
  color: #FFFFFF !important;
  background: rgba(76,175,80,0.85) !important;
  border: 1px solid #66BB6A !important;
  padding: 6px 16px !important;
  border-radius: 50px !important;
  margin-bottom: 14px !important;
}
.hm-big {
  font-size: 30px !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  line-height: 1.25 !important;
  margin: 0 0 6px 0 !important;
  letter-spacing: -0.5px !important;
  background: none !important;
  -webkit-text-fill-color: #FFFFFF !important;
  text-shadow: 0 2px 10px rgba(0,0,0,0.6);
}
.hm-mint {
  font-size: 38px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  margin: 0 0 18px 0 !important;
  padding: 0 !important;
  background: none !important;
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
  letter-spacing: -1px !important;
  text-shadow: 0 2px 14px rgba(0,0,0,0.5), 0 0 24px rgba(139,195,74,0.5);
}
.hm-divider {
  width: 50px !important;
  height: 1px !important;
  background: rgba(255,255,255,0.4) !important;
  margin: 0 0 16px 0 !important;
}
.hm-sub {
  font-size: 14px !important;
  line-height: 1.65 !important;
  color: #FFFFFF !important;
  font-weight: 500 !important;
  background: none !important;
  padding: 0 !important;
  margin: 0 0 8px 0 !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.7) !important;
}
.hm-cta {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: rgba(255,255,255,0.95) !important;
  line-height: 1.5 !important;
  background: none !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.6) !important;
  margin: 0 !important;
}

/* ─── 2. 챗봇 - 흰 배경 + 그린 액센트 복원 ─── */
/* 사이드 토글 버튼: 흰 배경 + 그린 보더 + 그린 텍스트 (이미지처럼) */
.chatbot-toggle, .cb-toggle, [class*="chat-toggle"],
.quick-btn.youtube, .quick-btn.blog, .quick-btn.call {
  background: #FFFFFF !important;
  border: 1.5px solid #4CAF50 !important;
  color: #2E7D32 !important;
}
.chatbot-toggle:hover, .cb-toggle:hover,
.quick-btn:hover {
  background: #4CAF50 !important;
  color: #FFFFFF !important;
}
/* 챗봇 내부 텍스트 모두 흰색 → 검정/그린으로 복원 */
.chatbot-toggle span, .chatbot-toggle .text,
.quick-btn span, .quick-btn .text {
  color: inherit !important;
}

/* 챗봇 모달 - 흰 배경 ─── */
.chatbot-window, .cb-window, .cb-modal,
[class*="chatbot-modal"], [class*="chatbot-container"],
[class*="cb-container"] {
  background: #FFFFFF !important;
  color: #1A1A1A !important;
}
.chatbot-header, .cb-header {
  background: #FFFFFF !important;
  color: #1A1A1A !important;
  border-bottom: 1px solid #E5E5E5 !important;
}
.chatbot-header *, .cb-header * {
  color: #1A1A1A !important;
}
.chatbot-header h3, .cb-header h3,
.chatbot-title, .cb-title {
  color: #1A1A1A !important;
  font-weight: 800 !important;
}
.chatbot-status, .cb-status,
.chatbot-subtitle, .cb-subtitle {
  color: #4CAF50 !important;
}
.chatbot-body, .cb-body, .cb-messages {
  background: #F8FAF7 !important;
  color: #1A1A1A !important;
}
.cb-msg, .chatbot-msg, .cb-bubble {
  background: #FFFFFF !important;
  color: #1A1A1A !important;
  border: 1px solid #E5E5E5 !important;
}
.cb-option-btn, .chatbot-option, .cb-quick {
  background: #FFFFFF !important;
  border: 1px solid #4CAF50 !important;
  color: #2E7D32 !important;
  font-weight: 600 !important;
}
.cb-option-btn:hover, .chatbot-option:hover, .cb-quick:hover {
  background: #4CAF50 !important;
  color: #FFFFFF !important;
}
.cb-action-btn, .chatbot-action {
  background: #FFFFFF !important;
  border: 1px solid #4CAF50 !important;
  color: #2E7D32 !important;
}
.cb-action-btn:hover, .chatbot-action:hover {
  background: #4CAF50 !important;
  color: #FFFFFF !important;
}
/* 챗봇 close 버튼 */
.cb-close, .chatbot-close {
  background: transparent !important;
  color: #1A1A1A !important;
}

/* ─── 3. 메인 부제 (CUSTOMER CARE, TESTIMONIALS) - 그린 진하게 보이게 ─── */
.media-eyebrow,
.service-eyebrow,
.nd-label,
.consult-eyebrow,
.nd-consult-eyebrow {
  color: #2E7D32 !important;
  font-size: 13px !important;
  letter-spacing: 5px !important;
  font-weight: 800 !important;
  background: none !important;
  -webkit-text-fill-color: #2E7D32 !important;
  text-shadow: none !important;
}

/* 다크 배경의 부제는 밝은 그린 */
.nd-dark .nd-label,
.nd-ba-section .nd-label,
.service-section .service-eyebrow,
.nd-consult-panel .nd-consult-eyebrow,
.estimate-cta .estimate-cta-text strong + span,
.media-block .nd-consult-panel * {
  color: #C5E1A5 !important;
  -webkit-text-fill-color: #C5E1A5 !important;
}

/* ─── 4. 모든 강조 텍스트 그라데이션 제거 - 단색 그린 ─── */
.about-section h2 .highlight,
.zigzag-header h2 strong,
.media-title strong,
.service-title strong,
.consult-title strong,
.nd-section-title strong {
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #2E7D32 !important;
  color: #2E7D32 !important;
  font-weight: 900 !important;
}

/* 다크 배경의 강조 - 단색 밝은 그린 */
.nd-hero-title strong,
.nd-dark .nd-section-title strong,
.service-section strong,
.nd-ba-section .nd-section-title strong {
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
  font-weight: 900 !important;
}

/* 카운터/숫자 - 단색 진한 그린 */
.counter-num, .mc-num, .nd-feat-num,
.gmag-cat-num, .dp-feature-num,
.nd-cta-num, .consult-cta-num {
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #2E7D32 !important;
  color: #2E7D32 !important;
  font-weight: 900 !important;
}
.service-section .counter-num {
  background: none !important;
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
}

/* ─── 5. CTA 단색 그린 (그라데이션 제거) ─── */
.estimate-cta {
  background: #2E7D32 !important;
  border: 1px solid #4CAF50 !important;
}
.estimate-cta::before { display: none !important; }
.nd-consult-panel {
  background: #2E7D32 !important;
  border: 1px solid #66BB6A !important;
}
.nd-consult-panel::after {
  border-color: rgba(255,255,255,0.18) !important;
}
.estimate-cta-btn {
  background: #FFFFFF !important;
  color: #2E7D32 !important;
}
.estimate-cta-btn:hover {
  background: #1A1A1A !important;
  color: #8BC34A !important;
}

/* nd-price-cta - 단색 그린 */
.nd-price-cta,
.history-era,
.mobile-menu-call,
.after-badge, .after-chip,
.nd-thumb-tag.after, .nd-ba-arrow, .nd-ba-vs {
  background: #2E7D32 !important;
  color: #FFFFFF !important;
  border: 1px solid #4CAF50 !important;
}

/* nd-consult-cta - 흰 배경 그린 텍스트 */
.nd-consult-cta {
  background: #FFFFFF !important;
  border: 1px solid #4CAF50 !important;
}
.nd-consult-cta * { color: #1A1A1A; }
.nd-consult-cta .nd-cta-num {
  color: #2E7D32 !important;
  font-size: 22px !important;
  font-weight: 800 !important;
}
.nd-consult-cta:hover {
  background: #1A1A1A !important;
}
.nd-consult-cta:hover .nd-cta-num {
  color: #8BC34A !important;
}

/* ─── 6. 페이드 라인 단색 그린 ─── */
.service-deco-line, .media-deco-line, .section-divider,
.about-section h2::after, .review-section h2::after,
.zigzag-header h2::after, .sub-page-title::after,
.consult-divider, .media-divider-line,
.nd-section-title::after, .nd-section::before {
  background: #4CAF50 !important;
  opacity: 0.3;
}

/* ─── 7. 카드 좌측 라인 단색 그린 ─── */
.nd-feat-item::before, .nd-spec-row::before,
.review-card::before, .profile-card::before,
.category-card .card-body::before, .about-box::before {
  background: #4CAF50 !important;
}

/* ─── 8. 헤더 단색 ─── */
.top-navbar, .sub-header, .detail-header {
  background: #FFFFFF !important;
  border-bottom: 1px solid #E5E5E5 !important;
}
.header-sns-btn {
  background: #FFFFFF !important;
  border: 1.5px solid #4CAF50 !important;
  color: #2E7D32 !important;
}
.header-sns-btn:hover {
  background: #4CAF50 !important;
  color: #FFFFFF !important;
}
.nav-phone {
  background: #FFFFFF !important;
  border: 1.5px solid #4CAF50 !important;
  color: #2E7D32 !important;
}
.nav-phone:hover {
  background: #4CAF50 !important;
  color: #FFFFFF !important;
}

/* ─── 9. 모든 흰 배경 텍스트 검정 보장 ─── */
body, p, span, div, li, label {
  color: #1A1A1A;
}
.about-section h2, .review-section h2, .zigzag-header h2,
.media-title, .service-title, .consult-title, .nd-section-title,
.sub-page-title, .category-card h3 {
  color: #1A1A1A !important;
}

/* ─── 10. 다크 배경 텍스트 흰색 보장 ─── */
.service-section, .service-section *,
.nd-dark, .nd-dark *, .nd-ba-section, .nd-ba-section *,
.nd-consult-panel, .nd-consult-panel *,
.site-footer, .site-footer *,
.estimate-cta, .estimate-cta *,
#mobile-overlay-menu, #mobile-overlay-menu * {
  color: #FFFFFF;
}

/* 다크 배경 안의 그린 강조는 밝은 그린 */
.service-section strong, .nd-dark strong, .nd-ba-section strong,
.nd-consult-panel strong, .estimate-cta strong {
  color: #8BC34A !important;
  -webkit-text-fill-color: #8BC34A !important;
}

/* ─── 11. 카테고리 카드 부제 ─── */
.card-subtitle {
  color: #2E7D32 !important;
  font-weight: 700 !important;
}

/* ─── 12. 사이드바 ─── */
.sidebar a.active, .sidebar a:hover {
  background: #E8F5E9 !important;
  color: #2E7D32 !important;
}
.sidebar a::before {
  background: #4CAF50 !important;
}


/* =====================================================
   v27 — 실제 클래스 기반 강제 적용 (최우선 우선순위)
   ===================================================== */

/* ─── 1. 챗봇 토글 버튼 (#chatbot-open-btn, .quick-btn.chatbot-btn) ─── */
#chatbot-open-btn,
.quick-btn.chatbot-btn,
.quick-btn.youtube,
.quick-btn.blog,
.quick-btn.call {
  background: #FFFFFF !important;
  background-image: none !important;
  border: 2px solid #4CAF50 !important;
  color: #2E7D32 !important;
  box-shadow: 0 4px 14px rgba(76,175,80,0.18) !important;
}
#chatbot-open-btn:hover,
.quick-btn.chatbot-btn:hover,
.quick-btn.youtube:hover,
.quick-btn.blog:hover,
.quick-btn.call:hover {
  background: #4CAF50 !important;
  background-image: none !important;
  color: #FFFFFF !important;
}
#chatbot-open-btn .text,
.quick-btn.chatbot-btn .text,
.quick-btn .text,
.quick-btn span {
  color: inherit !important;
}
#chatbot-open-btn svg,
.quick-btn svg,
.quick-btn .qicon {
  color: inherit !important;
  fill: currentColor !important;
}
#chatbot-open-btn:hover svg path,
.quick-btn:hover svg path,
.quick-btn:hover .qicon {
  fill: #FFFFFF !important;
  color: #FFFFFF !important;
}

/* ─── 2. 챗봇 팝업 모달 (#chatbot-popup) - 흰 배경 ─── */
#chatbot-popup {
  background: #FFFFFF !important;
  background-image: none !important;
  color: #1A1A1A !important;
}
#chatbot-popup * {
  color: #1A1A1A;
}

/* 헤더 - 흰 배경, 검정 텍스트, 그린 액센트 */
#chatbot-header {
  background: #FFFFFF !important;
  background-image: none !important;
  border-bottom: 1px solid #E5E5E5 !important;
  color: #1A1A1A !important;
}
#chatbot-header * {
  color: #1A1A1A !important;
}
#chatbot-header h3,
#chatbot-header .chatbot-title,
#chatbot-header strong {
  color: #1A1A1A !important;
  font-weight: 800 !important;
}
#chatbot-header .chatbot-status,
#chatbot-header .chatbot-subtitle,
#chatbot-header small,
#chatbot-header em {
  color: #4CAF50 !important;
  font-weight: 600 !important;
}
#chatbot-close-btn {
  background: #F0F0F0 !important;
  color: #1A1A1A !important;
  border: 1px solid #E5E5E5 !important;
}
#chatbot-close-btn:hover {
  background: #4CAF50 !important;
  color: #FFFFFF !important;
}

/* 챗봇 메시지 영역 */
#chatbot-messages {
  background: #F9F9F9 !important;
  background-image: none !important;
}
.cb-bubble {
  background: #FFFFFF !important;
  background-image: none !important;
  color: #1A1A1A !important;
  border: 1px solid #E5E5E5 !important;
}
.cb-bubble.bot {
  background: #FFFFFF !important;
  color: #1A1A1A !important;
}
.cb-bubble.user {
  background: #4CAF50 !important;
  color: #FFFFFF !important;
  border-color: #4CAF50 !important;
}
.cb-time {
  color: #888888 !important;
}
.cb-msg-avatar {
  background: #E8F5E9 !important;
  color: #2E7D32 !important;
}

/* 옵션 버튼 */
#chatbot-options .cb-opt-btn,
.cb-opt-btn {
  background: #FFFFFF !important;
  background-image: none !important;
  border: 1.5px solid #4CAF50 !important;
  color: #2E7D32 !important;
  font-weight: 600 !important;
}
.cb-opt-btn:hover {
  background: #4CAF50 !important;
  color: #FFFFFF !important;
}

/* 푸터 버튼 (새 문의하기, 전화 연결, 카톡상담) */
#chatbot-footer {
  background: #FFFFFF !important;
  background-image: none !important;
  border-top: 1px solid #E5E5E5 !important;
}
#chatbot-footer * {
  color: inherit;
}
.cb-cta-btn,
#chatbot-restart-btn,
#chatbot-call-shortcut,
#chatbot-kakao-shortcut {
  background: #FFFFFF !important;
  background-image: none !important;
  border: 1.5px solid #4CAF50 !important;
  color: #2E7D32 !important;
  font-weight: 700 !important;
}
.cb-cta-btn:hover,
#chatbot-restart-btn:hover,
#chatbot-call-shortcut:hover,
#chatbot-kakao-shortcut:hover {
  background: #4CAF50 !important;
  color: #FFFFFF !important;
}
.cb-cta-btn svg,
#chatbot-restart-btn svg,
#chatbot-call-shortcut svg,
#chatbot-kakao-shortcut svg {
  color: inherit !important;
}

/* ─── 3. 메인 후킹 텍스트 크게 (구체적 클래스) ─── */
.hero-hook-pc .hero-hook-pc-small {
  font-size: 16px !important;
  padding: 8px 22px !important;
  margin-bottom: 22px !important;
}
.hero-hook-pc .hero-hook-pc-big {
  font-size: clamp(44px, 6vw, 68px) !important;
  margin-bottom: 12px !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}
.hero-hook-pc .hero-hook-pc-highlight {
  font-size: clamp(56px, 8vw, 88px) !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
  margin-bottom: 30px !important;
}
.hero-hook-pc .hero-hook-pc-sub {
  font-size: 18px !important;
  background: none !important;
  padding: 0 !important;
  backdrop-filter: none !important;
  color: #FFFFFF !important;
  max-width: 720px !important;
}

.hero-hook-mobile .hm-big {
  font-size: 32px !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}
.hero-hook-mobile .hm-mint {
  font-size: 40px !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
}

/* ─── 4. 상세페이지 히어로 텍스트 크게 + 가독성 ─── */
.nd-hero .nd-hero-title {
  font-size: clamp(32px, 5vw, 52px) !important;
  color: #FFFFFF !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
}
.nd-hero .nd-hero-title strong {
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
  font-weight: 900 !important;
  font-size: 1em !important;
}
.nd-hero .nd-hero-sub {
  font-size: 17px !important;
  color: #FFFFFF !important;
  font-weight: 500 !important;
  line-height: 1.7 !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.6) !important;
  opacity: 1 !important;
}
.nd-hero .nd-tag {
  background: rgba(76,175,80,0.85) !important;
  border: 1px solid #66BB6A !important;
  color: #FFFFFF !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  padding: 7px 18px !important;
}

/* 상세 히어로 배경 어두움 조정 (이미지 잘 보이게) */
.nd-hero .nd-hero-bg {
  filter: brightness(0.75) saturate(1) !important;
}
.nd-hero .nd-hero-overlay {
  background: linear-gradient(180deg, 
    rgba(0,0,0,0.25) 0%, 
    rgba(0,0,0,0.4) 60%, 
    rgba(0,0,0,0.7) 100%) !important;
}

/* nd-hero-stats 카드 */
.nd-hero-stats .dp-stat {
  background: rgba(76,175,80,0.85) !important;
  border: 1px solid #66BB6A !important;
}
.nd-hero-stats .dp-stat strong {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  background: none !important;
}
.nd-hero-stats .dp-stat span {
  color: rgba(255,255,255,0.9) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

/* ─── 5. 메인 GIF 블록 부제 (CUSTOMER CARE / TESTIMONIALS) ─── */
.media-block .media-eyebrow,
.media-part .media-eyebrow {
  color: #2E7D32 !important;
  -webkit-text-fill-color: #2E7D32 !important;
  background: none !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: 5px !important;
  display: block !important;
  margin-bottom: 16px !important;
}
.media-block .media-title,
.media-part .media-title {
  color: #1A1A1A !important;
  font-size: clamp(32px, 4.5vw, 48px) !important;
  font-weight: 800 !important;
}
.media-block .media-title strong,
.media-part .media-title strong {
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  color: #2E7D32 !important;
  -webkit-text-fill-color: #2E7D32 !important;
  font-weight: 900 !important;
}
.media-block .media-desc,
.media-part .media-desc {
  color: #1A1A1A !important;
  font-size: 16px !important;
  line-height: 1.85 !important;
}

/* ─── 6. 부제 텍스트 (FREE CONSULTATION, OUR PROMISE, WHY MOHAIR 등) ─── */
.nd-label,
.consult-eyebrow,
.service-eyebrow,
.about-section h2::before,
.review-section h2::before,
.zigzag-header h2::before {
  color: #2E7D32 !important;
  -webkit-text-fill-color: #2E7D32 !important;
  background: none !important;
  font-weight: 800 !important;
}

/* 다크 배경 부제 - 밝은 그린 */
.nd-dark .nd-label,
.nd-ba-section .nd-label,
.service-section .service-eyebrow,
.nd-consult-panel .nd-consult-eyebrow {
  color: #C5E1A5 !important;
  -webkit-text-fill-color: #C5E1A5 !important;
}

/* ─── 7. 그라데이션 잔존 일괄 제거 ─── */
[class*="gradient"],
.estimate-cta,
.nd-consult-panel,
.nd-price-cta,
.after-badge, .after-chip,
.nd-ba-arrow, .nd-ba-vs,
.history-era,
.mobile-menu-call,
.nd-thumb-tag.after {
  background-image: none !important;
}


/* =====================================================
   v28 — 정확한 수정 (사용자 지적 사항)
   ===================================================== */

/* ─── 1. 챗봇 푸터 배경 박스 제거 - 옛 다크 셀렉터 영향 차단 ─── */
#chatbot-footer,
#chatbot-popup #chatbot-footer {
  background: #FFFFFF !important;
  background-image: none !important;
  background-color: #FFFFFF !important;
  border-top: 1px solid #E5E5E5 !important;
  padding: 12px 14px !important;
}
#chatbot-footer *,
#chatbot-popup #chatbot-footer * {
  background-image: none !important;
}
.chatbot-footer-row {
  background: transparent !important;
  background-image: none !important;
}

/* 챗봇 옵션 영역 (견적이/서비스가/시공 과정이 궁금합니다) */
#chatbot-options,
#chatbot-popup #chatbot-options {
  background: #FFFFFF !important;
  background-image: none !important;
  background-color: #FFFFFF !important;
}

/* 챗봇 팝업 전체 컨테이너 */
#chatbot-popup,
#chatbot-popup .chatbot-body {
  background: #FFFFFF !important;
  background-image: none !important;
  background-color: #FFFFFF !important;
}

/* 챗봇 메시지 영역 */
#chatbot-messages,
#chatbot-popup #chatbot-messages {
  background: #FAFAFA !important;
  background-image: none !important;
}

/* ─── 2. 챗봇 토글 (챗봇상담/전화상담) - 원래대로 그린 배경 + 흰 텍스트 ─── */
#chatbot-open-btn,
.quick-btn.chatbot-btn,
.quick-btn.youtube,
.quick-btn.blog,
.quick-btn.call {
  background: #4CAF50 !important;
  background-image: none !important;
  border: 1px solid #66BB6A !important;
  color: #FFFFFF !important;
  box-shadow: 0 4px 14px rgba(76,175,80,0.3) !important;
}
#chatbot-open-btn:hover,
.quick-btn.chatbot-btn:hover,
.quick-btn.youtube:hover,
.quick-btn.blog:hover,
.quick-btn.call:hover {
  background: #2E7D32 !important;
  background-image: none !important;
  color: #FFFFFF !important;
}
#chatbot-open-btn .text,
.quick-btn .text,
.quick-btn span {
  color: #FFFFFF !important;
}
#chatbot-open-btn svg,
.quick-btn svg,
.quick-btn .qicon {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
}
.quick-btn .qicon-n {
  color: #FFFFFF !important;
}

/* 챗봇 토글 토글 버튼 (퀵메뉴 열기) */
.quick-toggle-btn,
#quick-toggle-btn {
  background: #4CAF50 !important;
  background-image: none !important;
  border: 1px solid #66BB6A !important;
  color: #FFFFFF !important;
}
.quick-toggle-btn:hover,
#quick-toggle-btn:hover {
  background: #2E7D32 !important;
  background-image: none !important;
}
.quick-toggle-btn svg line {
  stroke: #FFFFFF !important;
}

/* 플로팅 홈 버튼도 그린 */
.floating-home-btn {
  background: #4CAF50 !important;
  background-image: none !important;
  border: 1px solid #66BB6A !important;
  color: #FFFFFF !important;
}
.floating-home-btn:hover {
  background: #2E7D32 !important;
  background-image: none !important;
}

/* ─── 3. 상세 히어로 - 검정 배경 + 그린 보더 (이미지 배경 X) ─── */
.nd-hero {
  background: #1A1A1A !important;
  background-image: none !important;
  border: 2px solid #4CAF50 !important;
  min-height: 420px !important;
}
.nd-hero::after {
  border: 1px solid rgba(76,175,80,0.3) !important;
}
/* 배경 이미지 div 자체를 숨김 (이미지 배경 안 씀) */
.nd-hero .nd-hero-bg {
  display: none !important;
}
/* 오버레이도 단색 검정으로 */
.nd-hero .nd-hero-overlay {
  background: #1A1A1A !important;
  background-image: none !important;
}

/* 상세 히어로 텍스트 */
.nd-hero .nd-tag {
  background: rgba(76,175,80,0.25) !important;
  border: 1px solid #66BB6A !important;
  color: #8BC34A !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
}
.nd-hero .nd-hero-title {
  color: #FFFFFF !important;
  font-size: clamp(32px, 5vw, 52px) !important;
  font-weight: 800 !important;
  text-shadow: none !important;
}
.nd-hero .nd-hero-title strong {
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
  font-weight: 900 !important;
}
.nd-hero .nd-hero-sub {
  color: #FFFFFF !important;
  font-size: 17px !important;
  opacity: 0.95 !important;
  text-shadow: none !important;
  background: none !important;
  font-weight: 400 !important;
}

/* 상세 히어로 stats 카드 */
.nd-hero-stats .dp-stat {
  background: rgba(76,175,80,0.18) !important;
  background-image: none !important;
  border: 1px solid #66BB6A !important;
}
.nd-hero-stats .dp-stat strong {
  background: none !important;
  background-image: none !important;
  -webkit-text-fill-color: #FFFFFF !important;
  color: #FFFFFF !important;
  font-size: 22px !important;
  font-weight: 800 !important;
}
.nd-hero-stats .dp-stat span {
  color: rgba(255,255,255,0.85) !important;
  font-size: 12px !important;
}

/* ─── 4. 옛 그라데이션 황토 잔존 제거 (var(--gold-*)으로 황토색 같이 보이는 그라데이션) ─── */
/* gold 변수는 이미 그린이지만 그라데이션 자체가 황토처럼 보일 수 있음 - 단색으로 */
.history-headline::before,
.about-section h2::after,
.review-section h2::after,
.zigzag-header h2::after,
.sub-page-title::after {
  background: #4CAF50 !important;
  background-image: none !important;
  opacity: 0.4 !important;
}

/* 옛 골드 그라데이션 → 단색 그린 */
[style*="linear-gradient(135deg, var(--gold-shine)"],
[style*="linear-gradient(135deg,var(--gold-shine)"] {
  background: #4CAF50 !important;
}

/* 강조 텍스트 그라데이션 잔존 모두 단색 그린 */
.hero-hook-pc-highlight,
.hm-mint,
.about-section h2 .highlight,
.zigzag-header h2 strong,
.media-title strong,
.service-title strong,
.consult-title strong,
.nd-section-title strong,
.consult-promise-text strong,
.history-headline strong {
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  font-weight: 900 !important;
}

/* 흰 배경 강조 → 진한 그린 단색 */
.about-section h2 .highlight,
.zigzag-header h2 strong,
.media-title strong,
.service-title strong,
.consult-title strong,
.nd-section-title strong,
.history-headline strong,
.consult-promise-text strong {
  -webkit-text-fill-color: #2E7D32 !important;
  color: #2E7D32 !important;
}

/* 메인 히어로(다크) 강조 → 밝은 그린 단색 */
.hero-hook-pc-highlight,
.hm-mint {
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
}

/* 다크 배경 강조 → 밝은 그린 */
.nd-hero-title strong,
.nd-dark .nd-section-title strong,
.service-section .service-title strong,
.nd-ba-section .nd-section-title strong,
.nd-consult-panel strong,
.estimate-cta strong {
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
}

/* ─── 5. 모든 카운터/숫자 그라데이션 단색으로 ─── */
.counter-num, .mc-num, .nd-feat-num,
.gmag-cat-num, .dp-feature-num,
.nd-cta-num, .consult-cta-num,
[class*="-num"] {
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
}
.counter-num, .mc-num, .nd-feat-num,
.gmag-cat-num, .dp-feature-num {
  -webkit-text-fill-color: #2E7D32 !important;
  color: #2E7D32 !important;
  font-weight: 900 !important;
}

/* 다크 배경 숫자 → 밝은 그린 */
.service-section .counter-num,
.nd-dark .counter-num,
.nd-consult-panel .nd-cta-num {
  -webkit-text-fill-color: #8BC34A !important;
  color: #8BC34A !important;
}

/* ─── 6. 라벨/부제 모두 진한 그린 단색 보장 ─── */
.media-eyebrow, .service-eyebrow,
.consult-eyebrow, .nd-label {
  background: none !important;
  -webkit-text-fill-color: #2E7D32 !important;
  color: #2E7D32 !important;
  font-weight: 800 !important;
  letter-spacing: 5px !important;
}

/* 다크 배경 라벨 → 밝은 연두 */
.nd-dark .nd-label,
.nd-ba-section .nd-label,
.service-section .service-eyebrow,
.nd-consult-panel .nd-consult-eyebrow {
  -webkit-text-fill-color: #C5E1A5 !important;
  color: #C5E1A5 !important;
}

/* ─── 7. nd-consult-cta (견적 안내 CTA 카드) 흰 배경 + 그린 텍스트 ─── */
.nd-consult-cta {
  background: #FFFFFF !important;
  background-image: none !important;
  border: 1px solid #4CAF50 !important;
}
.nd-consult-cta .nd-cta-ico {
  background: #4CAF50 !important;
  background-image: none !important;
}
.nd-consult-cta .nd-cta-ico svg {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
}
.nd-consult-cta .nd-cta-num {
  color: #2E7D32 !important;
  -webkit-text-fill-color: #2E7D32 !important;
  font-weight: 800 !important;
}
.nd-consult-cta .nd-cta-desc {
  color: #4A4A4A !important;
  font-weight: 700 !important;
}


/* =====================================================
   v29 — 메인 히어로 황토 박스 제거 + 상세 히어로 이미지 복원
   ===================================================== */

/* ─── 1. 메인 히어로 - 배지/박스 배경 완전 그린 불투명 ─── */
/* PC */
.hero-hook-pc-small {
  background: #4CAF50 !important;
  background-image: none !important;
  background-color: #4CAF50 !important;
  color: #FFFFFF !important;
  border: 1px solid #66BB6A !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 3px !important;
  padding: 8px 22px !important;
  border-radius: 50px !important;
  display: inline-block !important;
  margin-bottom: 22px !important;
}
.hero-hook-pc-big {
  background: transparent !important;
  background-image: none !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-size: clamp(40px, 5.5vw, 60px) !important;
  font-weight: 800 !important;
  margin-bottom: 8px !important;
  text-shadow: 0 2px 16px rgba(0,0,0,0.6);
  padding: 0 !important;
  border: none !important;
}
.hero-hook-pc-highlight {
  background: transparent !important;
  background-image: none !important;
  background-color: transparent !important;
  color: #8BC34A !important;
  -webkit-text-fill-color: #8BC34A !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  font-size: clamp(52px, 7.5vw, 80px) !important;
  font-weight: 900 !important;
  margin-bottom: 28px !important;
  padding: 0 !important;
  border: none !important;
  text-shadow: 0 3px 20px rgba(0,0,0,0.5), 0 0 40px rgba(139,195,74,0.5);
}
.hero-hook-pc-accent {
  display: none !important;
}
.hero-hook-pc-sub {
  background: transparent !important;
  background-image: none !important;
  background-color: transparent !important;
  color: #FFFFFF !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  padding: 0 !important;
  border: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-radius: 0 !important;
  text-shadow: 0 2px 10px rgba(0,0,0,0.7) !important;
  margin: 0 !important;
  max-width: 720px !important;
  display: block !important;
}

/* 모바일 */
.hm-badge {
  background: #4CAF50 !important;
  background-image: none !important;
  background-color: #4CAF50 !important;
  color: #FFFFFF !important;
  border: 1px solid #66BB6A !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 2.5px !important;
  padding: 6px 16px !important;
  border-radius: 50px !important;
  display: inline-block !important;
  margin-bottom: 14px !important;
}
.hm-big {
  background: transparent !important;
  background-image: none !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-size: 28px !important;
  font-weight: 800 !important;
  text-shadow: 0 2px 10px rgba(0,0,0,0.6);
  padding: 0 !important;
}
.hm-mint {
  background: transparent !important;
  background-image: none !important;
  color: #8BC34A !important;
  -webkit-text-fill-color: #8BC34A !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  font-size: 36px !important;
  font-weight: 900 !important;
  padding: 0 !important;
  text-shadow: 0 2px 14px rgba(0,0,0,0.5), 0 0 24px rgba(139,195,74,0.5);
}
.hm-divider {
  background: rgba(255,255,255,0.4) !important;
  background-image: none !important;
}
.hm-sub {
  background: transparent !important;
  background-image: none !important;
  color: #FFFFFF !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.7) !important;
  margin: 0 0 8px 0 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}
.hm-cta {
  background: transparent !important;
  background-image: none !important;
  color: rgba(255,255,255,0.95) !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  backdrop-filter: none !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.7) !important;
  margin: 0 !important;
  font-size: 14px !important;
}

/* 메인 히어로 자체 배경 그라디언트 어둡기 조정 (이미지 잘 보이게) */
.hero-overlay,
.hero::before,
#hero-bg-container::after {
  background: linear-gradient(180deg, 
    rgba(0,0,0,0.2) 0%, 
    rgba(0,0,0,0.3) 60%, 
    rgba(0,0,0,0.5) 100%) !important;
}

/* ─── 2. 상세 히어로 - 이미지 배경 복원 + 적당히 어둡게 ─── */
.nd-hero {
  background: #1A1A1A !important;
  background-image: none !important;
  border: 2px solid #4CAF50 !important;
  min-height: 480px !important;
  position: relative !important;
  overflow: hidden !important;
}
.nd-hero::after {
  border: 1px solid rgba(76,175,80,0.3) !important;
}
/* 배경 이미지 div 다시 표시 */
.nd-hero .nd-hero-bg {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  filter: brightness(0.7) saturate(1) !important;
  z-index: 1 !important;
}
/* 오버레이 - 텍스트 가독성 위해 그라데이션 */
.nd-hero .nd-hero-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, 
    rgba(0,0,0,0.3) 0%, 
    rgba(0,0,0,0.45) 60%, 
    rgba(0,0,0,0.75) 100%) !important;
  background-image: linear-gradient(180deg, 
    rgba(0,0,0,0.3) 0%, 
    rgba(0,0,0,0.45) 60%, 
    rgba(0,0,0,0.75) 100%) !important;
  z-index: 2 !important;
}
.nd-hero .nd-hero-inner {
  position: relative !important;
  z-index: 3 !important;
}


/* =====================================================
   v30 — 메인 히어로: HTML 내장 스타일과 충돌 제거 + 무료상담 텍스트 흰색
   ===================================================== */

/* ─── 1. 메인 히어로 PC - 박스/배경/보더 모두 제거 (HTML 내장 스타일 존중) ─── */
/* small/big/sub: 평범한 텍스트 (배경 없음) - 외부 추가 스타일 무효화 */
.hero-hook-pc-small {
  background: transparent !important;
  background-image: none !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  display: inline !important;
  margin-bottom: 4px !important;
  /* 색상/폰트는 HTML 내장 스타일 사용 (color: rgba(255,255,255,0.95)) */
}
.hero-hook-pc-big {
  background: transparent !important;
  background-image: none !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
}
.hero-hook-pc-highlight {
  background: transparent !important;
  background-image: none !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  -webkit-text-fill-color: #66BB6A !important;
  color: #66BB6A !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
}
/* accent("을 맞추다") - HTML 내장 그린 배지 유지 (배경 검정 반투명 + 그린 테두리) */
.hero-hook-pc-accent {
  /* HTML 내장 스타일 그대로 사용 - 추가 override X */
  display: inline-block !important;
}
.hero-hook-pc-sub {
  background: transparent !important;
  background-image: none !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  /* 색상/폰트는 HTML 내장 사용 (color: rgba(255,255,255,0.95)) */
}

/* ─── 2. 모바일 히어로 - 동일하게 박스 제거 ─── */
.hm-badge {
  /* HTML 내장 스타일 사용 - 추가 override X */
}
.hm-big {
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  padding: 0 !important;
}
.hm-mint {
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  padding: 0 !important;
  -webkit-text-fill-color: #66BB6A !important;
  color: #66BB6A !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
}
.hm-sub, .hm-cta {
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* ─── 3. estimate-cta 무료 방문 상담 텍스트 모두 흰색 강제 ─── */
.estimate-cta,
.estimate-cta * {
  color: #FFFFFF !important;
}
.estimate-cta .estimate-cta-text strong {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-weight: 800 !important;
}
.estimate-cta .estimate-cta-text span,
.estimate-cta .estimate-cta-text p {
  color: rgba(255,255,255,0.95) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.95) !important;
}
.estimate-cta-btn {
  background: #FFFFFF !important;
  background-image: none !important;
  color: #2E7D32 !important;
  -webkit-text-fill-color: #2E7D32 !important;
  font-weight: 800 !important;
  border: none !important;
}
.estimate-cta-btn:hover {
  background: #1A1A1A !important;
  color: #8BC34A !important;
  -webkit-text-fill-color: #8BC34A !important;
}

/* nd-consult-panel 안의 텍스트도 모두 흰색 */
.nd-consult-panel,
.nd-consult-panel * {
  color: #FFFFFF;
}
.nd-consult-panel .nd-consult-eyebrow {
  color: #C5E1A5 !important;
  -webkit-text-fill-color: #C5E1A5 !important;
}
.nd-consult-panel .nd-consult-headline {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}
.nd-consult-panel .nd-consult-sub {
  color: rgba(255,255,255,0.92) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.92) !important;
}


/* =====================================================
   v31 — 최종 리셋: 메인 히어로 모든 누적 스타일 무효화 + 깨끗하게 재정의
   ===================================================== */

/* 외부 CSS에서 hero-hook 관련 모든 박스/배경/보더 강제 제거 */
.hero-hook-pc-small,
.hero-hook-pc-big,
.hero-hook-pc-highlight,
.hero-hook-pc-accent,
.hero-hook-pc-sub,
.hm-badge,
.hm-big,
.hm-mint,
.hm-sub,
.hm-cta {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  -webkit-text-fill-color: initial !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  text-decoration: none !important;
}

/* HTML 내장 스타일이 다시 작동하도록 - 색상/폰트만 명시 (스타일 다시 적용) */
.hero-hook-pc-small {
  color: #FFFFFF !important;
  font-size: clamp(15px, 1.4vw, 20px) !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
  margin-bottom: 12px !important;
  text-shadow: 0 2px 10px rgba(0,0,0,0.6) !important;
  display: block !important;
}
.hero-hook-pc-big {
  color: #FFFFFF !important;
  font-size: clamp(40px, 5.5vw, 80px) !important;
  font-weight: 900 !important;
  letter-spacing: -2px !important;
  line-height: 1.1 !important;
  margin-bottom: 4px !important;
  text-shadow: 0 3px 14px rgba(0,0,0,0.55) !important;
  display: block !important;
}
.hero-hook-pc-highlight {
  color: #66BB6A !important;
  font-size: clamp(48px, 6.5vw, 96px) !important;
  font-weight: 900 !important;
  letter-spacing: -2px !important;
  line-height: 1.1 !important;
  text-shadow: 0 3px 16px rgba(0,0,0,0.5), 0 0 30px rgba(102,187,106,0.4) !important;
  margin-bottom: 24px !important;
  display: inline-block !important;
}
.hero-hook-pc-accent {
  display: none !important;
}
.hero-hook-pc-sub {
  color: rgba(255,255,255,0.95) !important;
  font-size: clamp(15px, 1.5vw, 19px) !important;
  font-weight: 500 !important;
  line-height: 1.7 !important;
  letter-spacing: -0.3px !important;
  text-shadow: 0 2px 10px rgba(0,0,0,0.65) !important;
  display: block !important;
  max-width: 720px !important;
  margin-top: 8px !important;
}

/* 모바일 */
.hm-badge {
  display: inline-block !important;
  color: #FFFFFF !important;
  background: rgba(76,175,80,0.85) !important;
  border: 1px solid #66BB6A !important;
  padding: 6px 16px !important;
  border-radius: 50px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
  margin-bottom: 14px !important;
}
.hm-big {
  color: #FFFFFF !important;
  font-size: 28px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-shadow: 0 2px 10px rgba(0,0,0,0.6) !important;
  display: block !important;
  margin-bottom: 6px !important;
}
.hm-mint {
  color: #66BB6A !important;
  font-size: 36px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  text-shadow: 0 2px 14px rgba(0,0,0,0.5), 0 0 24px rgba(102,187,106,0.4) !important;
  display: block !important;
  margin-bottom: 16px !important;
}
.hm-divider {
  display: block !important;
  width: 50px !important;
  height: 1px !important;
  background: rgba(255,255,255,0.4) !important;
  margin: 0 0 16px 0 !important;
}
.hm-sub {
  color: #FFFFFF !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.7 !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.7) !important;
  display: block !important;
  margin-bottom: 8px !important;
}
.hm-cta {
  color: rgba(255,255,255,0.95) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.65) !important;
  display: block !important;
}


/* =====================================================
   v32 — 최종 진단 후 수정
   1. accent("을 맞추다.") 표시 복원
   2. 텍스트 그림자 줄여 회색 음영 제거
   3. 줄바꿈 정리
   ===================================================== */

/* hero-hook-pc 컨테이너 - 줄바꿈 강제 (작아진 PC 화면에서 단어 잘림 방지) */
.hero-hook-pc {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  width: 100% !important;
  max-width: none !important;
}

/* "— The Art of Perfect Windows" - 평범한 흰 텍스트 */
.hero-hook-pc-small {
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  padding: 0 !important;
  color: #FFFFFF !important;
  font-size: clamp(13px, 1.3vw, 18px) !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
  margin: 0 0 12px 0 !important;
  text-shadow: 0 1px 3px rgba(0,0,0,0.4) !important;
  display: block !important;
  white-space: nowrap !important;
}

/* "당신의 공간에" - 큰 흰 텍스트 */
.hero-hook-pc-big {
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  padding: 0 !important;
  color: #FFFFFF !important;
  font-size: clamp(36px, 5vw, 72px) !important;
  font-weight: 900 !important;
  letter-spacing: -1.5px !important;
  line-height: 1.15 !important;
  margin: 0 0 4px 0 !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5) !important;
  display: block !important;
  white-space: nowrap !important;
}

/* "완벽한 창" - 그린 강조 + "을 맞추다." 와 같은 줄에 보이도록 inline */
.hero-hook-pc-highlight {
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  padding: 0 !important;
  color: #66BB6A !important;
  -webkit-text-fill-color: #66BB6A !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  font-size: clamp(44px, 6vw, 88px) !important;
  font-weight: 900 !important;
  letter-spacing: -1.5px !important;
  line-height: 1.15 !important;
  margin: 0 !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.4), 0 0 20px rgba(102,187,106,0.3) !important;
  display: inline !important;
}

/* "을 맞추다." - 표시 복원! 흰색 + 같은 라인에 */
.hero-hook-pc-accent {
  display: inline !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  padding: 0 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-size: clamp(44px, 6vw, 88px) !important;
  font-weight: 900 !important;
  letter-spacing: -1.5px !important;
  line-height: 1.15 !important;
  margin: 0 0 0 0 !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5) !important;
}

/* highlight + accent 줄바꿈 처리 - 시각적으로 한 줄로 */
.hero-hook-pc-highlight + .hero-hook-pc-accent {
  margin-left: 0.1em !important;
}

/* sub 텍스트 - 흰색 + 적당한 크기 */
.hero-hook-pc-sub {
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  color: rgba(255,255,255,0.95) !important;
  font-size: clamp(14px, 1.3vw, 18px) !important;
  font-weight: 500 !important;
  line-height: 1.7 !important;
  letter-spacing: -0.3px !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.5) !important;
  display: block !important;
  margin: 28px 0 0 0 !important;
  max-width: 720px !important;
}

