/*
 Theme Name: PawTailPet Child
 Theme URI: https://pawtailpet.com
 Description: GeneratePress Child Theme for PawTailPet
 Author: PawTailPet
 Template: generatepress
 Version: 1.0
*/

/* ================================================
   CSS 변수 — 색상 변경은 여기서만 하면 됩니다
   ================================================ */
:root {
  --pt-main:    #FF8C42;   /* 메인 오렌지 (강아지) */
  --pt-main-dk: #E06A1A;   /* 메인 다크 */
  --pt-main-lt: #FFF0E6;   /* 메인 연한 배경 */
  --pt-main-bd: #FFB980;   /* 메인 보더 */

  --pt-sub:     #6C63FF;   /* 서브 보라 (고양이) */
  --pt-sub-dk:  #4B44CC;   /* 서브 다크 */
  --pt-sub-lt:  #EEEEFF;   /* 서브 연한 배경 */
  --pt-sub-bd:  #B0AAFF;   /* 서브 보더 */

  --pt-point:   #FFD166;   /* 포인트 노랑 */
  --pt-green:   #06D6A0;   /* 포인트 민트 */
  --pt-pink:    #FF6B9D;   /* 포인트 핑크 */

  --pt-bg:      #FFF9F5;   /* 전체 배경 크림 */
  --pt-white:   #FFFFFF;
  --pt-text:    #2D2D2D;   /* 본문 텍스트 */
  --pt-text-lt: #666666;   /* 보조 텍스트 */
  --pt-border:  #FFE4CC;   /* 기본 보더 */
  --pt-gray-lt: #F7F7F7;   /* 연한 회색 배경 */

  --pt-radius:  16px;      /* 기본 둥근 모서리 */
  --pt-radius-sm: 10px;
  --pt-radius-lg: 24px;

  --pt-shadow:  0 4px 20px rgba(255, 140, 66, 0.12);
  --pt-shadow-hover: 0 8px 32px rgba(255, 140, 66, 0.22);
}

/* ================================================
   기본 래퍼
   ================================================ */
.pt-wrap {
  max-width: 780px;
  margin: 0 auto;
  font-family: 'Noto Sans KR', sans-serif;
  color: var(--pt-text);
  line-height: 1.9;
  padding: 24px 0 80px;
}

/* ================================================
   헤딩
   ================================================ */
.pt-wrap h2 {
  font-size: 21px;
  font-weight: 800;
  color: var(--pt-text);
  margin: 38px 0 14px;
  padding-left: 14px;
  border-left: 5px solid var(--pt-main);
  line-height: 1.5;
}

.pt-wrap h3 {
  font-size: 16px;
  font-weight: 700;
  color: var(--pt-main-dk);
  margin: 22px 0 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.pt-wrap p {
  font-size: 15.5px;
  color: #444;
  margin-bottom: 14px;
  line-height: 1.9;
}

/* ================================================
   메타
   ================================================ */
.pt-meta {
  font-size: 13px;
  color: #aaa;
  margin-bottom: 24px;
  display: flex;
  gap: 14px;
  align-items: center;
}

.pt-meta span {
  display: flex;
  align-items: center;
  gap: 4px;
}

/* ================================================
   강아지/고양이 테마 구분
   ================================================ */
.dog-theme h2 { border-left-color: var(--pt-main); }
.cat-theme h2 { border-left-color: var(--pt-sub); }
.cat-theme h3 { color: var(--pt-sub-dk); }
.cat-theme .pt-highlight { background: var(--pt-sub-lt); border-color: var(--pt-sub-bd); }
.cat-theme .pt-tip { border-left-color: var(--pt-sub); }
.cat-theme .pt-badge { background: var(--pt-sub); }

/* ================================================
   하이라이트 박스
   ================================================ */
.pt-highlight {
  background: var(--pt-main-lt);
  border: 1.5px solid var(--pt-main-bd);
  border-radius: var(--pt-radius);
  padding: 20px 24px;
  margin: 20px 0;
}

.pt-highlight .hl-icon {
  font-size: 28px;
  margin-bottom: 8px;
  display: block;
}

.pt-highlight .hl-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--pt-main-dk);
  margin-bottom: 6px;
}

.pt-highlight .hl-desc {
  font-size: 14px;
  color: #555;
  line-height: 1.8;
  margin: 0;
}

.pt-highlight ul {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pt-highlight ul li {
  font-size: 14px;
  color: #444;
  padding-left: 24px;
  position: relative;
  line-height: 1.75;
}

.pt-highlight ul li::before {
  content: '🐾';
  position: absolute;
  left: 0;
  font-size: 13px;
  top: 1px;
}

/* ================================================
   팁 박스 (귀여운 말풍선 스타일)
   ================================================ */
.pt-tip {
  background: var(--pt-white);
  border-left: 5px solid var(--pt-main);
  border-radius: 0 var(--pt-radius) var(--pt-radius) 0;
  padding: 16px 20px;
  margin: 20px 0;
  font-size: 14px;
  color: #444;
  line-height: 1.8;
  box-shadow: var(--pt-shadow);
}

.pt-tip .tip-icon {
  font-size: 22px;
  margin-right: 6px;
}

.pt-tip strong { color: var(--pt-main-dk); }

/* ================================================
   경고 박스
   ================================================ */
.pt-warn {
  background: #FFF8E1;
  border: 1.5px solid #FFD54F;
  border-radius: var(--pt-radius);
  padding: 16px 20px;
  margin: 20px 0;
  font-size: 14px;
  color: #5D4037;
  line-height: 1.8;
}

.pt-warn strong { color: #E65100; }

/* ================================================
   위험 박스
   ================================================ */
.pt-danger {
  background: #FFF0F0;
  border: 1.5px solid #FFAB9F;
  border-radius: var(--pt-radius);
  padding: 16px 20px;
  margin: 20px 0;
  font-size: 14px;
  color: #B71C1C;
  line-height: 1.8;
}

.pt-danger strong { color: #B71C1C; }

/* ================================================
   카드 그리드
   ================================================ */
.pt-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 22px 0;
}

.pt-card-grid.col3 { grid-template-columns: 1fr 1fr 1fr; }

.pt-card {
  background: var(--pt-white);
  border: 2px solid var(--pt-border);
  border-radius: var(--pt-radius);
  padding: 22px 18px;
  text-align: center;
  transition: all .25s;
  cursor: default;
}

.pt-card:hover {
  border-color: var(--pt-main);
  box-shadow: var(--pt-shadow-hover);
  transform: translateY(-3px);
}

.pt-card .card-icon {
  font-size: 38px;
  margin-bottom: 10px;
  display: block;
  line-height: 1;
}

.pt-card .card-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--pt-text);
  margin-bottom: 6px;
}

.pt-card .card-desc {
  font-size: 13px;
  color: var(--pt-text-lt);
  line-height: 1.7;
}

.pt-card .card-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  background: var(--pt-main);
  color: #fff;
  padding: 3px 10px;
  border-radius: 99px;
  margin-bottom: 10px;
}

/* ================================================
   테이블
   ================================================ */
.pt-table-wrap {
  overflow-x: auto;
  margin: 20px 0;
}

.pt-table-wrap table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 14px;
  border: 1.5px solid var(--pt-border);
  border-radius: var(--pt-radius);
  overflow: hidden;
}

.pt-table-wrap th {
  background: var(--pt-main);
  color: #fff;
  padding: 12px 10px;
  text-align: center;
  font-weight: 700;
  border-right: 1px solid var(--pt-main-dk);
}

.pt-table-wrap td {
  padding: 11px 10px;
  text-align: center;
  border-bottom: 1px solid var(--pt-border);
  border-right: 1px solid var(--pt-border);
  color: #444;
}

.pt-table-wrap tr:last-child td { border-bottom: none; }
.pt-table-wrap td:last-child,
.pt-table-wrap th:last-child { border-right: none; }
.pt-table-wrap tr:nth-child(even) td { background: var(--pt-main-lt); }
.pt-table-wrap td.hl { font-weight: 800; color: var(--pt-main-dk); }
.pt-table-wrap td.good { color: #2e7d32; font-weight: 700; }
.pt-table-wrap td.bad { color: #b71c1c; font-weight: 700; }

/* ================================================
   FAQ 토글
   ================================================ */
.pt-faq {
  border: 1.5px solid var(--pt-border);
  border-radius: var(--pt-radius);
  overflow: hidden;
  margin-bottom: 10px;
  transition: border-color .2s;
}

.pt-faq.open { border-color: var(--pt-main); }

.pt-faq-q {
  padding: 16px 20px;
  font-size: 15px;
  font-weight: 700;
  color: var(--pt-text);
  cursor: pointer;
  background: var(--pt-main-lt);
  display: flex;
  justify-content: space-between;
  align-items: center;
  user-select: none;
  gap: 10px;
}

.pt-faq-q:hover { background: var(--pt-border); }

.pt-faq-icon {
  font-size: 22px;
  transition: transform .2s;
  flex-shrink: 0;
  color: var(--pt-main);
}

.pt-faq.open .pt-faq-icon { transform: rotate(45deg); }

.pt-faq-a {
  display: none;
  padding: 16px 20px;
  font-size: 14.5px;
  color: #555;
  line-height: 1.8;
  border-top: 1px solid var(--pt-border);
  background: var(--pt-white);
}

.pt-faq.open .pt-faq-a { display: block; }

/* ================================================
   단계 (Steps)
   ================================================ */
.pt-steps {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 20px 0;
}

.pt-step {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 18px 20px;
  background: var(--pt-white);
  border-radius: var(--pt-radius);
  border: 1.5px solid var(--pt-border);
  transition: border-color .2s;
}

.pt-step:hover { border-color: var(--pt-main); }

.pt-step-num {
  width: 36px;
  height: 36px;
  min-width: 36px;
  background: var(--pt-main);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 900;
  flex-shrink: 0;
}

.pt-step-icon {
  font-size: 32px;
  flex-shrink: 0;
  margin-top: 2px;
}

.pt-step-body .sb-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--pt-text);
  margin-bottom: 5px;
}

.pt-step-body .sb-desc {
  font-size: 13.5px;
  color: #555;
  line-height: 1.75;
}

/* ================================================
   연관 글 박스
   ================================================ */
.pt-hub {
  background: var(--pt-white);
  border-radius: var(--pt-radius-lg);
  border: 2px solid var(--pt-border);
  padding: 24px;
  margin: 40px 0;
}

.pt-hub-title {
  font-size: 16px;
  font-weight: 800;
  color: var(--pt-text);
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.pt-hub-title::before {
  content: '🐾';
  font-size: 20px;
}

.pt-hub-links {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pt-hub-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: var(--pt-main-lt);
  border-radius: var(--pt-radius-sm);
  text-decoration: none;
  color: var(--pt-text);
  font-size: 14px;
  font-weight: 700;
  border: 1.5px solid var(--pt-border);
  transition: all .2s;
}

.pt-hub-link:hover {
  background: var(--pt-border);
  border-color: var(--pt-main);
  transform: translateX(4px);
}

.pt-hub-link .hl-icon { font-size: 24px; flex-shrink: 0; }
.pt-hub-link .hl-text { flex: 1; }
.pt-hub-link .hl-arr { color: var(--pt-main); font-size: 18px; }

/* ================================================
   어필리에이트 박스 (쿠팡파트너스)
   ================================================ */
.pt-aff-box {
  background: linear-gradient(135deg, var(--pt-main-lt), #fff);
  border-radius: var(--pt-radius-lg);
  border: 2px solid var(--pt-main-bd);
  padding: 24px;
  margin: 32px 0;
}

.pt-aff-title {
  font-size: 16px;
  font-weight: 800;
  color: var(--pt-text);
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.pt-aff-links {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pt-aff-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: var(--pt-white);
  border-radius: var(--pt-radius-sm);
  text-decoration: none;
  color: var(--pt-main-dk);
  font-size: 14px;
  font-weight: 700;
  border: 1.5px solid var(--pt-main-bd);
  transition: all .2s;
}

.pt-aff-link:hover {
  background: var(--pt-main-lt);
  box-shadow: var(--pt-shadow);
}

.pt-aff-link .al-icon { font-size: 26px; flex-shrink: 0; }
.pt-aff-link .al-text { flex: 1; }
.pt-aff-link .al-text small {
  display: block;
  font-size: 12px;
  color: #888;
  font-weight: 400;
  margin-top: 2px;
}

.pt-aff-link .al-btn {
  background: var(--pt-main);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 99px;
  flex-shrink: 0;
  white-space: nowrap;
  margin-left: auto;
}

/* ================================================
   배지
   ================================================ */
.pt-badge {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 700;
  background: var(--pt-main);
  color: #fff;
  padding: 3px 11px;
  border-radius: 99px;
  margin-bottom: 8px;
}

.pt-badge.cat { background: var(--pt-sub); }
.pt-badge.green { background: var(--pt-green); }
.pt-badge.pink { background: var(--pt-pink); }
.pt-badge.yellow { background: var(--pt-point); color: #333; }

/* ================================================
   이미지 자리 표시자
   ================================================ */
.pt-img-placeholder {
  margin: 26px 0;
  text-align: center;
  background: var(--pt-gray-lt);
  border: 2px dashed var(--pt-main-bd);
  border-radius: var(--pt-radius);
  padding: 16px;
}

.pt-img-placeholder img {
  max-width: 100%;
  border-radius: var(--pt-radius-sm);
  display: block;
  margin: 0 auto;
}

.pt-img-placeholder .img-caption {
  font-size: 13px;
  color: #aaa;
  margin-top: 8px;
}

/* ================================================
   반려동물 프로필 카드
   ================================================ */
.pt-pet-profile {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  background: var(--pt-white);
  border-radius: var(--pt-radius-lg);
  border: 2px solid var(--pt-border);
  padding: 22px;
  margin: 22px 0;
}

.pt-pet-avatar {
  font-size: 56px;
  flex-shrink: 0;
  line-height: 1;
}

.pt-pet-info .pi-name {
  font-size: 18px;
  font-weight: 900;
  color: var(--pt-text);
  margin-bottom: 4px;
}

.pt-pet-info .pi-breed {
  font-size: 13px;
  color: var(--pt-main);
  font-weight: 700;
  margin-bottom: 10px;
}

.pt-pet-info .pi-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.pt-pet-info .pi-tag {
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 99px;
  background: var(--pt-main-lt);
  color: var(--pt-main-dk);
  font-weight: 600;
  border: 1px solid var(--pt-main-bd);
}

/* ================================================
   체크리스트
   ================================================ */
.pt-checklist {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 20px 0;
}

.pt-check-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: var(--pt-white);
  border-radius: var(--pt-radius-sm);
  border: 1.5px solid var(--pt-border);
  font-size: 14.5px;
  color: var(--pt-text);
  line-height: 1.7;
}

.pt-check-item .ci-icon {
  font-size: 22px;
  flex-shrink: 0;
  margin-top: 1px;
}

/* ================================================
   비교 그리드 (강아지 vs 고양이 등)
   ================================================ */
.pt-vs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 22px 0;
}

.pt-vs-card {
  border-radius: var(--pt-radius);
  padding: 20px;
  border: 2px solid;
}

.pt-vs-card.dog {
  background: var(--pt-main-lt);
  border-color: var(--pt-main-bd);
}

.pt-vs-card.cat {
  background: var(--pt-sub-lt);
  border-color: var(--pt-sub-bd);
}

.pt-vs-card .vc-title {
  font-size: 16px;
  font-weight: 900;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.pt-vs-card.dog .vc-title { color: var(--pt-main-dk); }
.pt-vs-card.cat .vc-title { color: var(--pt-sub-dk); }

.pt-vs-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pt-vs-card ul li {
  font-size: 13.5px;
  color: #444;
  padding-left: 20px;
  position: relative;
  line-height: 1.65;
}

.pt-vs-card.dog ul li::before { content: '🐶'; position: absolute; left: 0; font-size: 12px; }
.pt-vs-card.cat ul li::before { content: '🐱'; position: absolute; left: 0; font-size: 12px; }

/* ================================================
   사이트 전체 — 배경색·헤더·메뉴
   ================================================ */
body { background: var(--pt-bg); }

.site-header {
  border-bottom: 2px solid var(--pt-border) !important;
  background: var(--pt-white) !important;
}

.site-title a {
  font-size: 20px !important;
  font-weight: 900 !important;
  color: var(--pt-main-dk) !important;
  text-decoration: none !important;
}

.site-title a:hover { color: var(--pt-main) !important; }

.main-navigation .menu-item a {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--pt-text) !important;
  padding: 5px 14px !important;
  border-radius: 99px !important;
  transition: all .2s !important;
}

.main-navigation .menu-item a:hover {
  background: var(--pt-main-lt) !important;
  color: var(--pt-main-dk) !important;
}

.main-navigation .current-menu-item > a {
  background: var(--pt-main-lt) !important;
  color: var(--pt-main-dk) !important;
}

/* ================================================
   본문 영역
   ================================================ */
.single .inside-article,
.archive .inside-article {
  max-width: 860px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.single .entry-title {
  font-size: 24px !important;
  font-weight: 900 !important;
  line-height: 1.5 !important;
  color: var(--pt-text) !important;
}

.archive .page-header { display: none !important; }

.archive article,
.category article {
  border-radius: var(--pt-radius-lg) !important;
  overflow: hidden !important;
  transition: transform .2s, box-shadow .2s !important;
}

.archive article:hover,
.category article:hover {
  transform: translateY(-4px) !important;
  box-shadow: var(--pt-shadow-hover) !important;
}

/* ================================================
   모바일 반응형
   ================================================ */
@media (max-width: 600px) {
  .pt-wrap { padding: 0 14px 60px; }
  .pt-card-grid { grid-template-columns: 1fr; }
  .pt-card-grid.col3 { grid-template-columns: 1fr; }
  .pt-vs-grid { grid-template-columns: 1fr; }
  .pt-pet-profile { flex-direction: column; align-items: center; text-align: center; }
  .pt-pet-info .pi-tags { justify-content: center; }
  .single .entry-title { font-size: 20px !important; }
}
