/* ===== 에이지벤처스 일액형방수제 — 디자인 토큰 (standard tier / utility mood) =====
   컬러: 메가본드 공식 브랜드 블루 #0047BB(Pantone 2728C, 형제사이트 ta.megabondworld.com CSS 주석 근거) 기반.
   베이지·브라운 톤(구 #A07850)은 전형적인 AI 배색이라는 피드백에 따라 전면 폐기하고 쿨톤 네이비+블루로 교체. */
:root {
  --dp-primary:     #10192B;
  --dp-primary-2:   #1C2C48;
  --dp-primary-3:   #24365A;
  --dp-primary-d:   #0A1120;

  --dp-accent:      #0047BB;
  --dp-accent-soft: #7FA8E8;

  --dp-bg-soft:     #F5F6F8;
  --dp-bg-warm:     #ECEFF3;
  --dp-bg-dark:     var(--dp-primary);

  --dp-border:      #D6DAE2;
  --dp-border-soft: #E5E8ED;

  --dp-text:        #1A1A1A;
  --dp-text-sub:    #4A4D55;
  --dp-text-muted:  #6B6F78;

  --dp-font-heading: "SUIT", "Pretendard", sans-serif;
  --dp-font-body:    "Pretendard", "SUIT", sans-serif;

  --dp-fs-display: clamp(2.6rem, 6vw, 4.4rem);
  --dp-fs-h1:      clamp(2.1rem, 4.8vw, 3.2rem);
  --dp-fs-h2:      clamp(1.75rem, 3.6vw, 2.4rem);
  --dp-fs-h3:      clamp(1.18rem, 2vw, 1.4rem);
  --dp-fs-lede:    clamp(1.05rem, 1.6vw, 1.15rem);
  --dp-fs-body:     19px;

  --dp-max-w:      1200px;
  --dp-max-w-wide: 1360px;
  --dp-max-w-text: 780px;
  --dp-gutter:     clamp(20px, 4vw, 40px);
  --dp-sec-pad:    clamp(64px, 10vw, 112px);

  --dp-radius:     0px;
  --dp-shadow-sm:  0 2px 8px rgba(16,25,43,.06);
  --dp-shadow-md:  0 12px 32px rgba(16,25,43,.10);
  --dp-shadow-lg:  0 24px 60px rgba(16,25,43,.16);
  --dp-ease:       cubic-bezier(.22,1,.36,1);
  --dp-dur-fast:   .18s;
  --dp-dur:        .32s;
  --dp-dur-slow:   .6s;

  --dp-space-1: 4px;  --dp-space-2: 8px;  --dp-space-3: 12px; --dp-space-4: 16px;
  --dp-space-5: 24px; --dp-space-6: 32px; --dp-space-7: 48px; --dp-space-8: 64px;
  --dp-space-9: 96px; --dp-space-10: 128px;
}

/* ===== Reset ===== */
*, *::before, *::after { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: hidden; }
* { min-width: 0; }
img, video, table, pre, svg { max-width: 100%; }
body {
  margin: 0;
  font-family: var(--dp-font-body);
  font-size: var(--dp-fs-body);
  line-height: 1.85;
  color: var(--dp-text);
  background: var(--dp-bg-soft);
}
h1, h2, h3, h4 { font-family: var(--dp-font-heading); font-weight: 800; line-height: 1.25; margin: 0; text-wrap: balance; }
.dp-cta, .dp-eyebrow, .dp-service-card__situation { text-wrap: balance; }
p { margin: 0 0 var(--dp-space-4); }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
body, p, h1, h2, h3, h4, h5, h6, li, td, th, a, span, div, button, summary {
  word-break: keep-all; overflow-wrap: break-word;
}
img { display: block; }
button { font: inherit; background: none; border: none; cursor: pointer; }

/* ===== 상태 · 접근성 ===== */
:where(a, button, [role="button"], summary, input, textarea, select):focus-visible {
  outline: 2px solid var(--dp-accent);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important; animation-iteration-count: 1 !important;
    transition-duration: .01ms !important; scroll-behavior: auto !important;
  }
  .dp-reveal { opacity: 1 !important; transform: none !important; }
}

/* ===== 레이아웃 유틸 ===== */
.container { max-width: var(--dp-max-w); margin: 0 auto; padding: 0 var(--dp-gutter); }
.container--wide { max-width: var(--dp-max-w-wide); }
.dp-section { padding: var(--dp-sec-pad) var(--dp-gutter); }
.dp-section--soft { background: var(--dp-bg-warm); }
.dp-section--dark { background: var(--dp-bg-dark); color: #fff; }
.dp-section--dark .dp-text-sub, .dp-section--dark .dp-eyebrow { color: var(--dp-accent-soft); }
/* 정렬 일관성: 본문 섹션 헤드는 히어로와 같은 좌측정렬이 기본, 중앙정렬은 --center로 명시적으로만 사용(형제사이트 section__head 관례) */
.dp-section-head { max-width: var(--dp-max-w-text); margin: 0 0 var(--dp-space-7); text-align: left; }
.dp-section-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.dp-eyebrow { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--dp-accent); margin-bottom: var(--dp-space-2); }
.dp-section-head h2 { font-size: var(--dp-fs-h2); margin-bottom: var(--dp-space-3); }
.dp-section-head p { color: var(--dp-text-sub); }

/* ===== 헤더 ===== */
.site-header {
  display: flex; align-items: center; justify-content: space-between; gap: var(--dp-space-4);
  padding: var(--dp-space-4) var(--dp-gutter);
  background: #fff; border-bottom: 1px solid var(--dp-border-soft);
  position: sticky; top: 0; z-index: 50;
}
.hdr-logo { display: flex; align-items: center; gap: 8px; min-width: 0; }
.hdr-logo__icon { flex-shrink: 0; }
.hdr-logo__text { display: flex; flex-direction: column; min-width: 0; }
.hdr-logo__name { font-family: var(--dp-font-heading); font-size: 1.05rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hdr-logo__tagline { font-size: .72rem; letter-spacing: .04em; color: var(--dp-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 480px) { .hdr-logo__tagline { display: none; } }
.hdr-nav__cta {
  display: inline-block; padding: 10px 20px; background: var(--dp-primary); color: #fff;
  font-weight: 700; font-size: .92rem; border-radius: var(--dp-radius);
  transition: background var(--dp-dur-fast) var(--dp-ease);
}
@media (hover: hover) and (pointer: fine) { .hdr-nav__cta:hover { background: var(--dp-accent); } }

/* ===== 브랜드 모티프: coat-mark(2겹 도포 스트라이프) — 방수 시공의 1차/2차 도포를 그대로 아이콘화 ===== */
.dp-coat-mark { display: inline-block; width: 15px; height: 10px; flex: none; margin-right: 8px; vertical-align: middle; background: linear-gradient(to bottom, var(--dp-accent) 0 50%, var(--dp-primary-2) 50% 100%); }
.dp-hero::before, .dp-closer::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; z-index: 3;
  background: linear-gradient(90deg, var(--dp-accent) 0 50%, var(--dp-primary-2) 50% 100%);
}

/* ===== Hero ===== */
.dp-hero { position: relative; min-height: 78vh; display: flex; flex-direction: column; overflow: hidden; color: #fff; background: var(--dp-primary); }
.dp-hero__bg { position: absolute; inset: 0; z-index: 0; }
.dp-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; display: block; }
.dp-hero__bg-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(98deg, rgba(16,25,43,.88) 0%, rgba(16,25,43,.62) 30%, rgba(0,71,187,.35) 62%, rgba(0,71,187,.12) 100%);
  z-index: 1;
}
.dp-hero--r .dp-hero__bg-overlay {
  background: linear-gradient(262deg, rgba(16,25,43,.88) 0%, rgba(16,25,43,.62) 30%, rgba(0,71,187,.32) 62%, rgba(0,71,187,.1) 100%);
}
.dp-hero--r .dp-hero__inner { margin-left: auto; text-align: right; }
.dp-hero--r .dp-hero__copy { margin-left: auto; }
.dp-hero--r .dp-hero__sub { margin-left: auto; }
@media (max-width: 768px) {
  .dp-hero--r .dp-hero__inner, .dp-hero--r .dp-hero__copy, .dp-hero--r .dp-hero__sub { text-align: left; margin-left: 0; }
}
.dp-hero__inner { position: relative; z-index: 2; flex: 1; display: flex; align-items: center; padding: var(--dp-space-9) var(--dp-gutter); max-width: var(--dp-max-w); margin: 0 auto; width: 100%; }
.dp-hero__copy { max-width: 620px; }
.dp-hero__back { color: rgba(255,255,255,.7); font-size: .85rem; display: inline-block; margin-bottom: 24px; transition: color var(--dp-dur-fast) var(--dp-ease); }
@media (hover: hover) and (pointer: fine) { .dp-hero__back:hover { color: #fff; } }
.dp-hero__title { font-size: var(--dp-fs-display); font-weight: 800; margin-bottom: var(--dp-space-4); clip-path: inset(0 0 0 0); animation: dpClipReveal .9s var(--dp-ease) .05s both; }
@keyframes dpClipReveal { from { clip-path: inset(0 0 100% 0); opacity: 0; } to { clip-path: inset(0 0 0% 0); opacity: 1; } }
.dp-hero__title em { font-style: normal; color: var(--dp-accent-soft); position: relative; }
.dp-hero__title em::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 3px; background: var(--dp-accent);
  transform: scaleX(0); transform-origin: left; animation: dpUnderline 1.1s var(--dp-ease) .3s forwards;
}
@keyframes dpUnderline { to { transform: scaleX(1); } }
.dp-hero__sub { font-size: var(--dp-fs-lede); color: rgba(255,255,255,.85); margin-bottom: var(--dp-space-6); max-width: 52ch; }

/* fact-band — 히어로 하단 전체너비 바(실제 사실만 나열, 허위 통계 금지) */
.dp-fact-band { position: relative; z-index: 2; background: rgba(10,17,32,.72); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-top: 1px solid rgba(255,255,255,.14); }
.dp-fact-band__in { max-width: var(--dp-max-w); margin: 0 auto; padding: 0 var(--dp-gutter); display: flex; flex-wrap: wrap; }
.dp-fact-band__item { padding: 16px 26px 16px 0; margin-right: 26px; border-right: 1px solid rgba(255,255,255,.16); }
.dp-fact-band__item:last-child { border-right: 0; margin-right: 0; }
.dp-fact-band__label { display: block; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.55); margin-bottom: 4px; font-weight: 700; }
.dp-fact-band__value { display: block; font-size: 15.5px; font-weight: 700; color: #fff; letter-spacing: -.01em; }
@media (max-width: 768px) { .dp-fact-band__in { padding: 14px var(--dp-gutter); } .dp-fact-band__item { padding: 8px 18px 8px 0; margin-right: 18px; } }
@media (max-width: 560px) { .dp-fact-band__item { flex: 1 1 calc(50% - 18px); border-right: 0; padding-bottom: 12px; } }

/* ===== CTA 버튼 ===== */
.dp-cta-group { display: flex; gap: var(--dp-space-3); flex-wrap: wrap; align-items: stretch; }
/* 같은 그룹 안 버튼은 텍스트 길이와 무관하게 동일 너비로 정렬(버튼폭 제각각 문제 해결) */
.dp-cta-group .dp-cta { flex: 1 1 0; max-width: 320px; }
.dp-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 14px 28px;
  min-width: 200px; flex: 0 1 auto;
  border-radius: var(--dp-radius); font-weight: 700; font-size: 1rem; border: 2px solid transparent;
  transition: transform var(--dp-dur-fast) var(--dp-ease), background var(--dp-dur-fast) var(--dp-ease);
  position: relative;
}
@media (max-width: 480px) { .dp-cta { min-width: 0; width: 100%; } }
.dp-cta--gold { background: var(--dp-accent); color: #10192B; }
.dp-cta--outline { border-color: rgba(255,255,255,.6); color: #fff; }
.dp-cta--photo { background: #fff; color: var(--dp-primary); border-color: #fff; }
.dp-cta--outline-dark { border-color: var(--dp-primary); color: var(--dp-primary); }
.dp-cta__price { font-size: .82rem; font-weight: 800; background: rgba(16,25,43,.12); padding: 2px 8px; border-radius: var(--dp-radius); }
/* dp-cta-group은 항상 어두운 배경(.dp-hero 또는 .dp-closer) 안에서만 사용한다 */
@media (hover: hover) and (pointer: fine) {
  .dp-cta:hover { transform: translateY(-2px); }
  .dp-cta--gold:hover { background: #1B57D6; }
  .dp-cta--photo:hover { background: var(--dp-accent); color: #fff; border-color: var(--dp-accent); }
}
.dp-cta:active { transform: translateY(1px); }
.dp-cta-micro { font-size: .85rem; color: rgba(255,255,255,.7); margin-top: var(--dp-space-3); }

/* ===== 카드형 그리드 공통 ===== */
.dp-card {
  background: #fff; border: 1px solid var(--dp-border-soft); border-radius: var(--dp-radius);
  padding: var(--dp-space-5); position: relative; overflow: hidden;
  transition: transform var(--dp-dur) var(--dp-ease), box-shadow var(--dp-dur) var(--dp-ease);
}
.dp-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--dp-accent) 0 50%, var(--dp-primary-2) 50% 100%); }
@media (hover: hover) and (pointer: fine) {
  .dp-card:hover { transform: translateY(-4px); box-shadow: var(--dp-shadow-md); }
}

/* 비교 행(idxrow) — "언제 뭘 쓰나" 상황→제품 매칭 리스트 */
.dp-idxrow__row { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: var(--dp-space-4); padding: var(--dp-space-4) 0; border-bottom: 1px solid var(--dp-border-soft); }
.dp-idxrow__row:last-child { border-bottom: 0; }
.dp-idxrow__num { font-family: var(--dp-font-heading); font-weight: 800; font-size: 1.1rem; color: var(--dp-accent); }
.dp-idxrow__situation { font-weight: 700; }
.dp-idxrow__situation small { display: block; font-weight: 400; color: var(--dp-text-muted); font-size: .85rem; margin-top: 2px; }
.dp-idxrow__product { font-weight: 700; color: var(--dp-primary); font-size: .92rem; white-space: nowrap; }
.dp-idxrow__product a { color: var(--dp-accent); }
@media (max-width: 640px) { .dp-idxrow__row { grid-template-columns: 32px 1fr; } .dp-idxrow__product { grid-column: 2; } }

/* 경쟁우위 카드(edge) */
.dp-edge-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--dp-space-5); }
.dp-edge-grid .dp-card { text-align: left; }
.dp-edge__num { font-family: var(--dp-font-heading); font-size: 1.6rem; font-weight: 800; color: var(--dp-accent); display: block; margin-bottom: var(--dp-space-2); }

/* ===== 레이아웃 유틸(인라인 style 대체) ===== */
.dp-split-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--dp-space-7); align-items: center; }
.dp-split-grid--mb { margin-bottom: var(--dp-space-7); }
.dp-text-center { text-align: center; }
@media (max-width: 768px) { .dp-split-grid { grid-template-columns: 1fr; } }

/* ===== Closer(하단 상담 유도 밴드) — 실사진 배경 + 블러카드, 전면 컬러 오버레이 금지 ===== */
.dp-closer { position: relative; overflow: hidden; background-color: var(--dp-primary); text-align: center; padding: clamp(64px, 9vw, 120px) 0; }
.dp-closer__media { position: absolute; inset: 0; z-index: 0; }
.dp-closer__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.dp-closer__scrim { position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(10,17,32,.35) 0%, rgba(10,17,32,.55) 100%); }
.dp-closer__card { position: relative; z-index: 1; max-width: 560px; margin: 0 auto; padding: clamp(32px,4.5vw,52px) clamp(24px,4vw,44px); background: rgba(10,17,32,.62); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.14); }
.dp-closer__card h2 { color: #fff; }
.dp-closer__sub { color: rgba(255,255,255,.82); max-width: 46ch; margin: var(--dp-space-3) auto var(--dp-space-6); }
@media (max-width: 768px) {
  .dp-closer { padding: 0 0 clamp(40px,8vw,56px); }
  .dp-closer__media { position: relative; inset: auto; height: 200px; }
  .dp-closer__scrim { display: none; }
  .dp-closer__card { max-width: none; margin: 0 var(--dp-gutter); background: var(--dp-primary); backdrop-filter: none; -webkit-backdrop-filter: none; border: 0; padding: var(--dp-space-6) var(--dp-space-5); }
}

/* 공정 카드(템플릿A) */
.dp-process { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--dp-space-5); }
.dp-process__step .dp-process__num { font-family: var(--dp-font-heading); font-size: 1.6rem; color: var(--dp-accent); font-weight: 800; }
.dp-process__step h3 { font-size: var(--dp-fs-h3); margin: var(--dp-space-2) 0; }
.dp-process__step p { color: var(--dp-text-sub); font-size: .95rem; }

/* 비교표(템플릿B) */
.dp-compare { width: 100%; border-collapse: collapse; background: #fff; }
.dp-compare th, .dp-compare td { border: 1px solid var(--dp-border); padding: var(--dp-space-4); text-align: left; font-size: .95rem; }
.dp-compare th { background: var(--dp-primary); color: #fff; font-family: var(--dp-font-heading); }
.dp-compare tr:nth-child(even) td { background: var(--dp-bg-warm); }

/* 진단/체크리스트(템플릿C) */
.dp-diagnosis { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--dp-space-5); }
.dp-diagnosis__card h3 { font-size: var(--dp-fs-h3); margin-bottom: var(--dp-space-2); color: var(--dp-accent); }
.dp-checklist li { display: flex; gap: var(--dp-space-3); padding: var(--dp-space-3) 0; border-bottom: 1px solid var(--dp-border-soft); }
.dp-checklist li::before { content: '✓'; color: var(--dp-accent); font-weight: 800; flex-shrink: 0; }

/* 인증/신뢰 뱃지(템플릿D) */
.dp-trust__list { display: flex; flex-wrap: wrap; gap: var(--dp-space-4); justify-content: center; }
.dp-trust__item { background: #fff; border: 1px solid var(--dp-border); padding: var(--dp-space-4) var(--dp-space-5); border-radius: var(--dp-radius); font-weight: 700; font-size: .95rem; }
.dp-section--dark .dp-trust__item { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.2); color: #fff; }

/* 스펙 스탯(템플릿E — 제품 실측 수치 전용) */
.dp-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--dp-space-5); text-align: center; }
.dp-stat-grid dt { font-size: .82rem; color: var(--dp-text-muted); margin-bottom: var(--dp-space-2); }
.dp-stat-grid dd { font-family: var(--dp-font-heading); font-size: 2rem; font-weight: 800; color: var(--dp-primary); margin: 0; }
.dp-section--dark .dp-stat-grid dd { color: var(--dp-accent-soft); }

/* 타임라인 */
.dp-timeline { display: flex; flex-direction: column; gap: var(--dp-space-6); }
.dp-timeline__item { display: grid; grid-template-columns: 60px 1fr; gap: var(--dp-space-4); }
.dp-timeline__dot { width: 44px; height: 44px; border-radius: 50%; background: var(--dp-accent); color: #10192B; display: flex; align-items: center; justify-content: center; font-weight: 800; font-family: var(--dp-font-heading); }

/* ===== 이미지 컨테이너(가로형만) ===== */
.img-wrap, .dp-related__img { aspect-ratio: 16/9; overflow: hidden; display: block; border-radius: var(--dp-radius); background: var(--dp-bg-warm); }
.img-wrap img, .img-wrap svg, .dp-related__img img, .dp-related__img svg { width: 100%; height: 100%; object-fit: cover; display: block; }
.card__img-wrap { aspect-ratio: 4/3; overflow: hidden; border-radius: var(--dp-radius); background: var(--dp-bg-warm); }
.card__img-wrap svg { width: 100%; height: 100%; object-fit: cover; }
/* 제품 누끼컷(투명/백색 배경)은 잘라내면 제품 일부가 잘려 보이므로 cover가 아닌 contain으로 전체 노출 */
.card__img-wrap img { width: 100%; height: 100%; object-fit: contain; object-position: center; display: block; padding: var(--dp-space-4); box-sizing: border-box; }

/* ===== FAQ 아코디언 — Q/A 웨이트·크기 위계로 정보 구조를 시각화 ===== */
.dp-faq__list { max-width: var(--dp-max-w-text); margin: 0 auto; display: flex; flex-direction: column; gap: var(--dp-space-3); }
.dp-faq__item { background: #fff; border: 1px solid var(--dp-border-soft); border-radius: var(--dp-radius); padding: var(--dp-space-4) var(--dp-space-5); }
.dp-faq__q {
  cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: flex-start; gap: var(--dp-space-3);
}
.dp-faq__q::-webkit-details-marker { display: none; }
.dp-faq__q-badge {
  flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--dp-primary); color: var(--dp-accent-soft);
  font-family: var(--dp-font-heading); font-weight: 800; font-size: .82rem; display: flex; align-items: center; justify-content: center;
}
.dp-faq__q-text { flex: 1; font-weight: 800; font-size: 1.08rem; line-height: 1.4; padding-top: 2px; }
.dp-faq__q::after { content: '+'; flex: none; font-size: 1.4rem; font-weight: 400; color: var(--dp-accent); transition: transform var(--dp-dur) var(--dp-ease); }
.dp-faq__item[open] .dp-faq__q::after { transform: rotate(45deg); }
.dp-faq__a { padding-top: var(--dp-space-3); padding-left: calc(26px + var(--dp-space-3)); }
.dp-faq__a-badge { display: none; }
.dp-faq__a p { margin: 0; font-weight: 400; font-size: .95rem; line-height: 1.75; color: var(--dp-text-sub); }

/* ===== 관련 서비스 ===== */
.dp-related__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--dp-space-4); }
.dp-related__grid > li { height: 100%; }
.dp-related__card { display: flex; flex-direction: column; height: 100%; }
.dp-related__title { display: block; margin-top: var(--dp-space-2); font-weight: 700; font-size: .92rem; }

/* ===== 메인 이동 버튼 ===== */
.dp-back-main { text-align: center; padding: var(--dp-space-6) 0; }
.dp-back-main a { color: var(--dp-text-muted); font-size: .9rem; border-bottom: 1px solid var(--dp-border); padding-bottom: 2px; }

/* ===== 서비스 그리드(메인) — 6개(서비스5+상담CTA1) 고정이라 3열x2줄로 고아 없이 정렬 ===== */
.dp-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--dp-space-5); }
.dp-service-grid > li { height: 100%; }
.dp-service-card { display: flex; flex-direction: column; height: 100%; }
.dp-service-card__more { margin-top: auto; padding-top: var(--dp-space-3); }
.dp-service-card__num { font-family: var(--dp-font-heading); color: var(--dp-accent); font-weight: 800; font-size: 1.1rem; }
.dp-service-card__situation { display: block; font-size: .8rem; color: var(--dp-text-muted); margin: var(--dp-space-2) 0 var(--dp-space-1); }
.dp-service-card h3 { font-size: 1.1rem; margin-bottom: var(--dp-space-2); }
.dp-service-card p { font-size: .92rem; color: var(--dp-text-sub); margin-bottom: var(--dp-space-2); }
.dp-service-card__more { font-size: .85rem; color: var(--dp-accent); font-weight: 700; }
.dp-service-card--cta { background: var(--dp-primary); color: #fff; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.dp-service-card--cta p { color: rgba(255,255,255,.78); }
.dp-service-card--cta .dp-service-card__more { color: var(--dp-accent-soft); }

/* ===== 제품 카드 ===== */
.dp-product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--dp-space-5); }
.dp-product-card { text-align: center; }
.dp-product-card h3 { font-size: 1.05rem; margin: var(--dp-space-3) 0 var(--dp-space-1); }
.dp-product-card .dp-price { font-family: var(--dp-font-heading); font-size: 1.3rem; font-weight: 800; color: var(--dp-primary); margin-bottom: var(--dp-space-3); }
.dp-product-card__buy { width: 100%; justify-content: center; }

/* ===== Floating CTA ===== */
.dp-float-cta {
  position: fixed; right: 20px; bottom: 20px; z-index: 60;
  width: 60px; height: 60px; border-radius: var(--dp-radius);
  background: var(--dp-primary-3); color: var(--dp-accent-soft);
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--dp-shadow-lg); border-left: 3px solid var(--dp-accent);
}
.dp-float-cta::after {
  content: ''; position: absolute; inset: -6px; border: 1.5px solid rgba(0,71,187,.55); pointer-events: none;
  animation: dpPulseRing 2.6s infinite;
}
@keyframes dpPulseRing { 0% { transform: scale(1); opacity: .8; } 70%, 100% { transform: scale(1.45); opacity: 0; } }
.dp-float-cta__icon { width: 26px; height: 26px; }
@media (max-width: 768px) { .dp-float-cta { right: 14px; bottom: 14px; width: 52px; height: 52px; } }

/* ===== 상담 페이지(/contact/) ===== */
.dp-404 { text-align: center; padding: 80px 20px; min-height: 50vh; }
.dp-404__code { font-size: 4rem; font-weight: 700; opacity: .15; line-height: 1; margin: 0; }
.dp-section--pt-lg { padding-top: var(--dp-space-8); }
.dp-contact-h1 { font-size: var(--dp-fs-h1); }
.dp-contact-sms-lead { font-size: 1.1rem; font-weight: 700; margin: 0; }
.dp-contact-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--dp-space-5); }
.jgo-contact-card { background: #fff; border: 1px solid var(--dp-border); padding: var(--dp-space-7) var(--dp-space-5); min-height: 300px; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; gap: var(--dp-space-3); }
.contact-phone__num {
  font-size: clamp(2.4rem, 7vw, 4rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.1;
  white-space: nowrap; word-break: keep-all; font-family: var(--dp-font-heading); color: var(--dp-primary);
}
@media (max-width: 480px) { .contact-phone__num { font-size: clamp(2rem, 9vw, 2.8rem); } }
.dp-ops-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--dp-space-4); }
.dp-ops-grid__item { background: #fff; border: 1px solid var(--dp-border-soft); padding: var(--dp-space-4); text-align: center; }
.dp-ops-grid__item dt { font-size: .8rem; color: var(--dp-text-muted); }
.dp-ops-grid__item dd { font-weight: 700; margin: var(--dp-space-1) 0 0; }

/* ===== 스크롤 리빌 ===== */
.dp-reveal { opacity: 0; transform: translateY(24px); transition: opacity var(--dp-dur-slow) var(--dp-ease), transform var(--dp-dur-slow) var(--dp-ease); }
.dp-reveal.is-visible { opacity: 1; transform: none; }
.dp-stagger.is-visible > * { animation: dpFadeUp .6s var(--dp-ease) both; }
.dp-stagger.is-visible > *:nth-child(2) { animation-delay: .08s; }
.dp-stagger.is-visible > *:nth-child(3) { animation-delay: .16s; }
.dp-stagger.is-visible > *:nth-child(4) { animation-delay: .24s; }
@keyframes dpFadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* ===== 푸터 ===== */
.site-footer { background: var(--dp-primary); color: rgba(255,255,255,.85); padding: var(--dp-space-7) var(--dp-gutter) var(--dp-space-5); text-align: center; }
.ftr-biz { font-size: .88rem; line-height: 1.7; margin-bottom: var(--dp-space-4); }
.ftr-links { display: flex; gap: var(--dp-space-4); justify-content: center; margin-bottom: var(--dp-space-4); }
.ftr-links a { font-weight: 700; }
.ft-modified { font-size: 13px; color: rgba(255,255,255,.4); margin: 0; }

/* ===== 모바일 1열 강제 ===== */
@media (max-width: 768px) {
  .dp-process, .dp-diagnosis, .dp-service-grid, .dp-product-grid, .dp-related__grid, .dp-stat-grid, .dp-contact-cards, .dp-ops-grid, .dp-edge-grid {
    grid-template-columns: 1fr !important; flex-direction: column;
  }
  .dp-hero { min-height: 58vh; }
  .dp-hero__inner { align-items: flex-end; padding-top: var(--dp-space-6); padding-bottom: var(--dp-space-6); }
  .dp-hero__bg-overlay { background: linear-gradient(0deg, rgba(16,25,43,.92) 0%, rgba(16,25,43,.68) 45%, rgba(16,25,43,.2) 100%) !important; }
  .site-header { padding: var(--dp-space-3) var(--dp-gutter); }
}
@media (max-width: 1024px) and (min-width: 769px) {
  /* dp-service-grid(6개, 3열)·dp-related__grid(5개, 5열)는 고아 방지를 위해 데스크톱 열수를 그대로 유지 */
  .dp-product-grid { grid-template-columns: repeat(2, 1fr); } /* 4개 → 2x2, 3열이면 고아 1개 발생하던 것 수정 */
  .dp-process, .dp-diagnosis, .dp-stat-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ===== 비용/절차 표 (AEO — 표·목록 인용용) ===== */
.dp-product-table table {
  width: 100%; border-collapse: collapse; margin-top: var(--dp-space-6);
  font-size: .95rem; word-break: keep-all;
}
.dp-product-table caption { text-align: left; margin-bottom: var(--dp-space-3); color: var(--dp-text-muted); }
.dp-product-table th, .dp-product-table td {
  padding: var(--dp-space-3) var(--dp-space-4); text-align: left;
  border-bottom: 1px solid var(--dp-border-soft); border-radius: 0;
}
.dp-product-table thead th {
  background: var(--dp-bg-warm); font-weight: 700; color: var(--dp-text);
  border-bottom: 2px solid var(--dp-border);
}
.dp-product-table tbody tr:hover { background: var(--dp-bg-soft); }
.dp-product-table__cell { display: flex; align-items: center; gap: var(--dp-space-3); }
.dp-product-table__thumb { width: 44px; height: 44px; flex: none; background: var(--dp-bg-warm); border: 1px solid var(--dp-border-soft); padding: 4px; box-sizing: border-box; }
.dp-product-table__thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
@media (max-width: 640px) {
  .dp-product-table { overflow-x: auto; }
  .dp-product-table table { min-width: 480px; }
}
