/* ========== 공통 폰트 & 기본 설정 ========== */
.cp-notice, .cp-h2, .cp-text, .cp-summary-box,
.cp-table, .cp-faq, .cp-cta-link, .cp-footer {
  font-family: 'Apple SD Gothic Neo', sans-serif;
}

/* ========== 1. 파트너스 고지 ========== */
.cp-notice {
  color: #5a7f9e;
  text-align: center;
  font-weight: 600;
  font-size: 13px;
  padding: 10px 20px;
  border: 1px solid #a8cce0;
  border-radius: 20px;
  background: #f0f7fc;
  margin-bottom: 30px;
  letter-spacing: 0.3px;
}

/* ========== 2. 제목 스타일 (h2) ========== */
.cp-h2 {
  font-size: 1.5em;
  color: #1e3a5f;
  border-left: 4px solid #3b82c4;
  padding-left: 14px;
  margin: 40px 0 18px 0;
  font-weight: 700;
  letter-spacing: -0.3px;
}

.cp-h2-2 {
  border-left: none;
  padding-left: 0;
  border-bottom: 2px solid #3b82c4;
  padding-bottom: 10px;
}

.cp-h2-5 {
  border-left: none;
  padding-left: 0;
  border-top: 1px solid #a8cce0;
  border-bottom: 1px solid #a8cce0;
  padding: 12px 0;
  text-align: center;
}

.cp-h2-7 {
  border-left: none;
  padding-left: 0;
  color: #2563a0;
  border: 1px solid #a8cce0;
  border-radius: 20px;
  padding: 10px 24px;
  text-align: center;
}

.cp-h2-8 {
  border-left: none;
  padding-left: 0;
}

.cp-h2-8-inner {
  background: linear-gradient(180deg, transparent 60%, #b8ddf0 60%);
  padding: 2px 4px;
}

/* ========== 본문 텍스트 ========== */
.cp-text {
  line-height: 2;
  margin: 14px 0;
  color: #2e4a5e;
  font-size: 16px;
  word-break: keep-all;
}

.cp-text b {
  color: #2563a0;
  font-weight: 700;
}

/* ========== 하이라이트 ========== */
.cp-highlight {
  background: linear-gradient(180deg, transparent 55%, #b8ddf0 55%);
  padding: 2px 4px;
  font-weight: 600;
}

.cp-highlight-green {
  background: linear-gradient(180deg, transparent 55%, #b8e8d0 55%);
  padding: 2px 4px;
  font-weight: 600;
}

/* ========== 요약 박스 (TL;DR) ========== */
.cp-summary-box {
  background: linear-gradient(135deg, #f5faff 0%, #e6f2fc 100%);
  border: 1px solid #b8d4e8;
  border-radius: 16px;
  padding: 22px 26px;
  margin: 28px 0;
  box-shadow: 0 2px 12px rgba(59, 130, 196, 0.06);
}

.cp-summary-title {
  font-size: 1.15em;
  font-weight: 700;
  color: #2563a0;
  margin-bottom: 10px;
}

.cp-summary-content {
  color: #3a6080;
  font-size: 15px;
  line-height: 1.8;
}

.cp-summary-box .cp-list {
  margin-top: 12px;
  padding-left: 20px;
}

.cp-summary-box .cp-list li {
  color: #3a6080;
  font-size: 14px;
  line-height: 1.7;
  margin-bottom: 6px;
}

/* ========== 이미지 컨테이너 ========== */
.cp-image-box {
  text-align: center;
  margin: 28px 0;
}

.cp-product-img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  border-radius: 14px;
}

/* ========== 스펙 테이블 ========== */
.cp-table-wrap {
  overflow-x: auto;
  margin: 22px 0;
}

.cp-table {
  width: 100%;
  border-collapse: collapse;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(30, 80, 140, 0.05);
}

.cp-table th {
  background: linear-gradient(135deg, #3b82c4 0%, #2563a0 100%);
  color: #fff;
  padding: 13px 16px;
  text-align: left;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.3px;
}

.cp-table td {
  padding: 12px 16px;
  border-bottom: 1px solid #dce8f0;
  background: #fafcfe;
  font-size: 14px;
  color: #2e4a5e;
}

.cp-table tr:hover td {
  background-color: #eef5fb;
}

/* ========== FAQ (SEO schema.org) ========== */
.cp-faq {
  margin: 28px 0;
}

.cp-faq-item {
  background: #fafcfe;
  border: 1px solid #c0d8e8;
  border-radius: 12px;
  margin-bottom: 10px;
  overflow: hidden;
  transition: box-shadow 0.2s;
}

.cp-faq-item:hover {
  box-shadow: 0 2px 10px rgba(30, 80, 140, 0.08);
}

.cp-faq-q {
  background: linear-gradient(135deg, #eaf3fb 0%, #dde df7 100%);
  padding: 14px 20px;
  font-weight: 700;
  color: #2563a0;
  font-size: 15px;
  border-bottom: 1px solid #c0d8e8;
}

.cp-faq-a {
  padding: 14px 20px;
  color: #3a6080;
  font-size: 14px;
  line-height: 1.9;
  background: #fafcfe;
}

/* ========== CTA 버튼 ========== */
.cp-cta {
  display: flex;
  justify-content: center;
  margin: 28px 0;
}

.cp-cta-link,
.cp-cta-link:link,
.cp-cta-link:visited {
  display: inline-block;
  text-decoration: none;
  color: #fff !important;
  background: linear-gradient(135deg, #0077b6 0%, #005f99 100%);
  border: none;
  font-weight: 700;
  font-size: 1.15em;
  padding: 16px 40px;
  border-radius: 50px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  box-shadow: 0 3px 12px rgba(0, 119, 182, 0.3);
  letter-spacing: 0.5px;
}

.cp-cta-link:hover,
.cp-cta-link:active {
  transform: scale(1.03);
}

/* ========== 리스트 ========== */
.cp-list {
  padding-left: 22px;
  margin: 14px 0;
}

.cp-list li {
  margin-bottom: 8px;
  line-height: 1.8;
  font-size: 15px;
  color: #2e4a5e;
}

/* ========== 푸터 ========== */
.cp-footer {
  margin-top: 45px;
  padding: 22px;
  background: #f0f7fc;
  border: 1px solid #c0d8e8;
  border-radius: 14px;
  text-align: center;
  color: #8aacca;
  font-size: 12px;
  line-height: 1.8;
}

.cp-footer p {
  margin: 5px 0;
}

/* ========== 반응형 ========== */
@media (max-width: 768px) {
  .cp-cta-link {
    padding: 14px 28px;
    font-size: 1.05em;
  }

  .cp-h2 {
    font-size: 1.3em;
  }

  .cp-summary-box {
    padding: 18px 20px;
  }
}

/* CTA 버튼 호버: 흰색 반투명 오버레이 */
.cp-cta-link::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0);
  border-radius: 50px;
  transition: background 0.3s ease;
  pointer-events: none;
}

.cp-cta-link:hover::after,
.cp-cta-link:active::after {
  background: rgba(255, 255, 255, 0.25);
}

/* ========== WordPress 추가: figure 래퍼 ========== */
.cp-figure {
  margin: 28px 0;
  text-align: center;
}
.cp-figure figcaption {
  font-size: .85em;
  color: #6b7a8a;
  margin-top: 6px;
}

/* ========== WordPress 추가: 목차·관련 글·지도 ========== */
.cp-toc { background:#f4f9fc; border:1px solid #d6e9f5; border-radius:14px; padding:16px 22px; margin:24px 0; }
.cp-toc-title { font-weight:700; margin:0 0 8px; }
.cp-toc ol { margin:0; padding-left:1.2em; }
.cp-toc li { margin:4px 0; }
.cp-map { margin:20px 0; border-radius:14px; overflow:hidden; }
.cp-map iframe { display:block; width:100%; height:320px; border:0; }
.cp-related { border-top:2px solid #d6e9f5; margin-top:36px; padding-top:16px; }
.cp-related-title { font-weight:700; margin:0 0 8px; }
.cp-totop { text-align:right; font-size:.9em; }
.cp-cta { text-align:center; margin:24px 0; }
