/* ═══════════════════════════════════════════════════════════════
   봄뜰 — 색상 레이어 (am.css)

   ★이 파일은 색만 바꾸지 않는다. 배색 전략 자체가 원본(마사지하우스: 밝은 배경 +
     웜 와인/골드 강조)과 **반대**다 — 사용자 지시(2026-08-29 batch5): "hue 만 바꾸고
     나머지를 그대로 두면 원본과 같은 사이트로 보인다. 배정된 전략(이 사이트는 **다크**)에
     맞춰 채도·명도·배경톤·강조색을 원본과 반대로 잡아라."
       원본: 흰 배경 카드 + 딥와인/다크골드 강조, 밝은 화면 톤 전체
       봄뜰: **어두운 배경**(카드·헤더까지 전부) + 스프링그린(hue 135) 강조 +
             반대색 앰버 포인트, 명도를 낮춘 전체 톤
     골격(3층 헤더·좌측 사이드바 2단·5열 푸터)은 kt.css 그대로 쓴다 — 구분은
     URL 체계와 본문으로 이미 확보된다(CSS 유사성은 중복 콘텐츠 신호가 아니다).

   로드 순서: kt.css(골격+컴포넌트) → am.css(팔레트). head.php 에서 10 → 11.
   ═══════════════════════════════════════════════════════════════ */

/* ── 1. 팔레트 변수 재정의 (kt.css 의 루트 변수를 그대로 덮는다) ─────
   kt.css 는 var(--kt-primary) 를 다수 곳에서, var(--kt-ink)·--kt-line·--kt-soft 를
   그보다 더 많은 곳에서 쓴다. 여기서 값만 갈아끼우면 컴포넌트 대부분이 자동으로 바뀐다. */
:root {
  /* 스프링그린(hue 135) — 원본 딥와인 계열과 색상환 반대쪽, 채도는 원본보다 낮춰
     어두운 배경에서 눈부시지 않게 */
  --kt-primary:   #4caf6e;   /* 본문 링크·강조 — 스프링그린 (다크 배경 대비 6.8:1) */
  --kt-primary-d: #3a8a56;
  --kt-accent:    #e0a458;   /* 보조 강조 — 웜 앰버(그린의 보색 방향, 원본의 '어두운 배경 위 밝은 점'과 반대로
                                 '밝은 배경 위 어두운 점'이던 원본 배치를 뒤집어 배경이 어두운 만큼 더 밝게 튄다) */
  --kt-ink:       #e9f3ec;   /* 본문 텍스트 — 원본(어두운 잉크 on 밝은 배경)과 반대로 밝은 잉크 on 어두운 배경 */
  --kt-ink2:      #bdd0c4;
  --kt-mute:      #85988e;
  --kt-line:      #29392f;
  --kt-soft:      #16241c;

  /* 봄뜰 브랜드 토큰(내부용 — kt.css 는 이 이름을 참조하지 않는다) */
  --bt-bg:        #0d1712;   /* 페이지 배경 — 짙은 상록수 그늘 */
  --bt-bg-2:      #081009;
  --bt-surface:   #16241c;   /* 카드 배경(원본의 흰 카드를 대체) */
  --bt-surface-2: #1e2f26;
  --bt-amber:     #e0a458;
  --bt-amber-2:   #f0c583;
}

/* ── 2. 배경 톤 자체를 뒤집는다 ──────────────────────────────────
   kt.css 는 배경을 변수가 아니라 리터럴 #fff/#f3f5f9 로 박아 뒀다. 강조색만 바꾸면
   "흰 배경에 초록 글씨"인 원본 그대로가 되므로, 카드·헤더 배경까지 전부 다시 덮는다. */
body { background: var(--bt-bg); }

.kt-utilbar,
.kt-logorow,
.kt-toggle a,
.kt-panel,
.kt-sum,
.kt-shop,
.kt-tabs,
.kt-detail .kt-block,
.kt-form,
.kt-form input, .kt-form select, .kt-form textarea,
.kt-frow input, .kt-frow select, .kt-frow textarea,
#bo_gall .gall_box,
.kt-relcard,
.kt-relshopcard,
.kt-relchip,
.kt-toc,
.kt-carereg,
.kt-riwrap,
.kt-rifaq-i,
.kt-magcard,
.kt-rvdone,
.kt-btn.ghost,
.kt-notice-box,
.kt-infobox,
.kt-reportbar {
  background: var(--bt-surface) !important;
  border-color: var(--kt-line) !important;
}
.kt-toggle { background: var(--bt-bg-2); }
.kt-hubgrid a:hover, .kt-hubgrid a.on { background: var(--bt-surface-2) !important; }
#bo_gall #bo_cate_ul a:hover { background: var(--bt-surface-2) !important; }

/* 리터럴 회색 텍스트 → 다크 배경에서 읽히는 톤으로 */
.kt-toggle a,
.kt-crumb a,
.kt-foot-feed a,
.kt-relshopb em,
.kt-btn.ghost { color: var(--kt-ink2) !important; }

/* 폼 입력 텍스트·플레이스홀더 */
.kt-form input, .kt-form select, .kt-form textarea,
.kt-frow input, .kt-frow select, .kt-frow textarea { color: var(--kt-ink) !important; }

/* 경고·오류 박스는 원본의 파스텔 배경이 다크 화면에서 튀는 얼룩이 된다 — 톤을 낮춘다 */
.kt-infobox.warn, .kt-reportbar.warn, .kt-formerr-top, .kt-rverr {
  background: #2a1414 !important; border-color: #4a2323 !important; color: #f0b4b4 !important;
}
.kt-infobox.t-event { background: #2a2213 !important; border-color: #4a3d20 !important; }
.kt-frow.bad input, .kt-frow.bad select, .kt-frow.bad textarea { background: #2a1414 !important; }

/* ── 3. 메뉴바 ── 원본은 다크그린(코리아테라피 계승) → 봄뜰은 더 짙은 그린-블랙 + 앰버 라인으로
   원본과 헷갈리지 않게 명도를 한 단 더 낮추고 경계선을 앰버(원본은 골드)로 다르게 잡는다. */
.kt-menubar {
  background: linear-gradient(180deg, #10201a 0%, #060d09 100%);
  border-bottom: 3px solid var(--bt-amber);
}
.kt-menubar a { color: #d8e6dc; }
.kt-menubar a:after { background: linear-gradient(90deg, var(--bt-amber), var(--bt-amber-2)); }
.kt-menubar a:hover { color: #fff3de; }
.kt-menubar a.on   { color: #fff; }

/* 헤더 전화·CTA */
.kt-hdtel-ico { background: linear-gradient(135deg, var(--bt-amber), var(--bt-amber-2)); }
.kt-hdbtn     { background: linear-gradient(135deg, var(--kt-primary-d), #245e3e); }
.kt-hdtel-txt strong, .kt-hdtel-txt em { color: var(--kt-ink); }

/* ── 사이드 위젯 헤더 ───────────────────────────────────────── */
.kt-widget         { --w1: #4caf6e; --w2: #2f7a4a; --wsh: 47, 122, 74; }   /* 지역별 = 스프링그린 */
.kt-widget.w-theme { --w1: #c98a3d; --w2: #8a5e28; --wsh: 138, 94, 40; }   /* 테마별 = 다크 앰버 */
.kt-widget.w-talk  { --w1: #4a3b37; --w2: #241a18; --wsh: 36, 26, 24; }    /* 커뮤니티 = 웜 차콜(원본 유지) */

/* 홈 히어로 */
.kt-hero-main   { background: linear-gradient(135deg, var(--bt-bg-2) 0%, #142019 100%); }
.kt-hero-main p { color: #b9d1c2; }

/* 버튼·칩의 활성 상태 */
.kt-btn-primary,
.kt-chip input:checked + span,
.kt-regchips a.on,
#bo_gall #bo_cate_ul a.bo_cate_on,
#bo_v .bo_v_cate { background: linear-gradient(135deg, var(--bt-amber), var(--bt-amber-2)); }
#bo_gall .bo_cate_link { color: var(--kt-primary); }

/* 호버 시 드러나는 테두리 — 골드 계열 → 그린 계열 */
.kt-shop:hover,
.kt-course:hover,
.kt-faq details[open],
.kt-relcard:hover,
.kt-btn-ghost:hover,
.kt-chip span:hover,
.kt-regchips a:hover,
.kt-chiprow label:hover { border-color: var(--kt-primary) !important; }

/* ── 매거진 카드 ── */
#bo_gall .bo_cate_link {
  color: #f0c583; background: rgba(224,164,88,.14); font-weight: 700;
}
#bo_gall .gall_box:hover .bo_cate_link { background: rgba(224,164,88,.22); }

/* 새글 표시 */
#bo_gall .new_icon {
  margin-left: 6px; padding: 0; width: 6px; height: 6px; border-radius: 50%;
  background: var(--bt-amber); color: transparent; font-size: 0; vertical-align: middle;
  box-shadow: 0 0 0 3px rgba(224,164,88,.18);
}

/* 카테고리 필터 활성 칩 */
#bo_gall #bo_cate_ul a.bo_cate_on {
  background: linear-gradient(135deg, #c98a3d, #8a5e28);
  box-shadow: 0 6px 14px -6px rgba(138,94,40,.6);
}

/* ── 매거진 하단 '함께 보면 좋은 매장' ── */
.kt-relshopthumb { background: var(--bt-surface-2); }
.kt-relshopthumb .kt-noimg { color: #fff; }
.kt-relshopb b { color: var(--kt-ink); }

/* 본문 인용 */
#bo_v_con blockquote { border-left-color: var(--bt-amber-2); }

/* 관련글 섹션 제목 밑줄 */
.kt-postrel h3 { border-bottom-color: var(--kt-line); }

/* 가격 요약 패널 */
.kt-sum-price       { background: var(--bt-bg-2) !important; }
.kt-sum-price > span { color: var(--bt-amber-2); }

/* ── 정보 문서(약관·소개·정책) 타이포 ── */
.kt-main .ctt_txt, .kt-main #bo_v_con, .am-doc { max-width: 46rem; }
.kt-main .ctt_txt p, .kt-main #bo_v_con p { line-height: 1.9; }

.am-doc { font-size: 15px; line-height: 1.9; color: var(--kt-ink2); padding-bottom: 8px; }
.am-doc h2 {
  margin: 0 0 18px; padding-bottom: 12px; border-bottom: 2px solid var(--kt-primary);
  font-size: 23px; font-weight: 800; letter-spacing: -.04em; color: var(--kt-ink);
}
.am-doc h3 {
  margin: 30px 0 10px; padding-left: 11px; border-left: 3px solid var(--bt-amber);
  font-size: 16.5px; font-weight: 800; letter-spacing: -.03em; color: var(--kt-ink);
}
.am-doc p { margin: 0 0 12px; }
.am-doc ul, .am-doc ol { margin: 0 0 14px; padding-left: 2px; list-style: none; }
.am-doc ol { counter-reset: amdoc; }
.am-doc li { position: relative; padding-left: 17px; margin-bottom: 7px; }
.am-doc ul > li:before {
  content: ''; position: absolute; left: 2px; top: 12px;
  width: 5px; height: 5px; border-radius: 50%; background: var(--bt-amber);
}
.am-doc ol > li { counter-increment: amdoc; padding-left: 24px; }
.am-doc ol > li:before {
  content: counter(amdoc); position: absolute; left: 0; top: 3px;
  width: 18px; height: 18px; border-radius: 2px; background: var(--kt-primary-d); color: #fff;
  font-size: 11px; font-weight: 800; text-align: center; line-height: 18px;
}
.am-doc b { color: var(--kt-ink); font-weight: 700; }
.am-doc a { color: var(--kt-primary); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.am-doc-date {
  margin-top: 26px; padding-top: 14px; border-top: 1px solid var(--kt-line);
  font-size: 13px; color: var(--kt-mute);
}
@media (max-width: 640px) {
  .am-doc { font-size: 14.5px; }
  .am-doc h2 { font-size: 20px; }
  .am-doc h3 { font-size: 15.5px; }
}

/* ── 상세 히어로: 사진 1장일 때 잘림 방지 ── */
.kt-gal.one { grid-template-columns: 1fr; }
.kt-gal.one .kt-gal-main img { height: auto; aspect-ratio: 1200 / 640; }

/* ── 정보 미확인(제휴종료) 매장 고지 ── */
.kt-unverified{
  max-width:46rem;
  margin:18px 0 4px; padding:14px 16px;
  border:1px solid #4a3d20; border-left:3px solid var(--bt-amber); border-radius:8px;
  background:#1c1810; color:#e8d8b4; font-size:.94rem; line-height:1.75;
}
.kt-unverified b{ color:var(--bt-amber-2); font-weight:700 }
.kt-unverified a{ color:var(--bt-amber-2); text-decoration:underline }
@media (max-width:640px){ .kt-unverified{ margin:14px 0 2px; font-size:.9rem } }

/* ── 4. 2차 소탕 — kt.css 곳곳의 리터럴 흰 배경(위 그룹 셀렉터에 안 걸린 나머지) ──
   ★전수 grep 으로 찾은 잔여 #fff/파스텔 배경. 강조색만 바꾸고 이런 카드들을 그대로 두면
   "군데군데만 초록"인 어중간한 화면이 되어 다크 전략이 무색해진다. */
.kt-widget,
.kt-linkgrid a,
.kt-hubgrid a,
.kt-course,
.kt-infobox,
.kt-reportbar,
.kt-foot-feed a,
.kt-faq details,
.kt-chip span,
#bo_gall #bo_cate_ul a,
.kt-postrel ul.kt-relshop li a,
.kt-regchips a,
.kt-btn-ghost {
  background: var(--bt-surface) !important; border-color: var(--kt-line) !important;
}
.kt-course, .kt-faq details { background: linear-gradient(135deg, var(--bt-surface), var(--bt-surface-2)) !important; }
.kt-linkgrid a, .kt-hubgrid a { color: var(--kt-ink2) !important; }
.kt-chip span, #bo_gall #bo_cate_ul a, .kt-postrel ul.kt-relshop li a, .kt-regchips a,
.kt-btn-ghost { color: var(--kt-ink2) !important; }
.kt-form input[type=text], .kt-form input[type=tel], .kt-form select, .kt-form textarea,
.kt-rvform textarea, .kt-rvform input[type=text] {
  background: var(--bt-surface) !important; border-color: var(--kt-line) !important; color: var(--kt-ink) !important;
}
.kt-btn.ghost { background: var(--bt-surface) !important; }
.kt-infobox.warn, .kt-reportbar.warn, .kt-formerr-top, .kt-rverr,
.kt-frow.bad input, .kt-frow.bad select, .kt-frow.bad textarea {
  background: #2a1414 !important; border-color: #4a2323 !important;
}
.kt-infobox.t-event { background: #2a2213 !important; border-color: #4a3d20 !important; }
.kt-infobox h4 { color: var(--kt-primary) !important; }

/* ── 업소 상세 하단 고정 CTA(id=ds-callbar) — 사이트 전체 공통 규약(§14-1) ──
   ★모바일 전용. 페이지당 정확히 1개(출장=tel: 링크, 로드샵="제휴 준비중" 링크 아님).
   원본의 .kt-cta(문자예약+전화예약 2버튼) 플로팅 바를 대체한다 — 2개가 동시에 뜨면
   검사가 떨군다(finalize_site.py --v2). */
#ds-callbar{
  position:fixed; left:0; right:0; bottom:0; z-index:60;
  display:flex; align-items:center; justify-content:center; height:52px;
  font-weight:800; font-size:16px; letter-spacing:-.02em;
  background:linear-gradient(135deg, var(--kt-primary), var(--kt-primary-d));
  color:#fff; box-shadow:0 -6px 20px rgba(0,0,0,.35);
}
#ds-callbar.is-pending{ background:var(--bt-surface-2); color:var(--kt-mute); }
@media (min-width:768px){ #ds-callbar{ display:none; } }
.kt-detail{ padding-bottom:52px; }

/* ── 표(<table>) — 매거진 본문의 비교표가 다크 배경에서도 읽히게 ── */
#bo_v_con table, .am-doc table { width: 100%; border-collapse: collapse; margin: 14px 0 20px;
  background: var(--bt-surface); border: 1px solid var(--kt-line); }
#bo_v_con th, .am-doc th { background: var(--bt-surface-2); color: var(--kt-ink);
  font-weight: 800; padding: 10px 12px; border: 1px solid var(--kt-line); text-align: left; }
#bo_v_con td, .am-doc td { padding: 9px 12px; border: 1px solid var(--kt-line); color: var(--kt-ink2); }
