/* ═══════════════════════════════════════════════════════════════
   하루쉼 — 색상 레이어 (am.css)

   ★이 파일은 **색만** 바꾼다. 레이아웃·골격은 건드리지 않는다.
     골격(3층 헤더 · 좌측 사이드바 2단 · 5열 푸터)은 kt.css 가 정한 그대로 쓴다.
     사용자 지시(2026-07-30): "뼈대는 원본과 똑같이, 색은 하루쉼로."

   왜 색만 바꿔도 되는가:
     CSS·레이아웃 유사성은 구글의 중복 콘텐츠 신호가 아니다(중복 판정은 본문 텍스트 기준).
     사이트 구분은 URL 체계와 본문으로 이미 확보했다 → 골격을 공유해도 문제되지 않는다.

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

   ★이전 판(19KB)은 헤더를 1층으로 바꾸고 사이드바를 없애는 등 골격까지 덮었다.
     그 판은 백업에 있다: /root/backup_anmaking/theme_before_skeleton_*.tgz
   ═══════════════════════════════════════════════════════════════ */

/* ── 1. 팔레트 변수 재정의 ──────────────────────────────────────
   kt.css 는 var(--kt-primary) 를 57곳, --kt-ink 를 54곳에서 쓴다.
   여기서 값만 갈아끼우면 컴포넌트 대부분이 자동으로 하루쉼 색이 된다. */
:root {
  /* ★뼈대(마사지하우스)는 **딥와인 + 앤티크골드 + 다크그린 메뉴바**다.
       색만 옮겨 놓으면 같은 사이트로 읽힌다 — 하루쉼은 **포레스트(hue 140) + 흙빛 앰버**로
       계열 자체를 바꾸고, 헤더 명암도 뒤집는다(마사지하우스: 어두운 메뉴바 / 하루쉼: 밝은 메뉴바).
     대비는 전부 WCAG AA(4.5:1) 이상으로 잡았다. */
  --kt-primary:   #2d7b47;   /* 본문 링크·강조 — 포레스트 (흰 배경 대비 5.2:1) */
  --kt-primary-d: #1f5c33;
  --kt-accent:    #c2701f;   /* 보조 강조 — 흙빛 앰버 (4.7:1) */
  --kt-ink:       #17251c;
  --kt-ink2:      #37473c;
  --kt-mute:      #79877e;
  --kt-line:      #dfe8e1;
  --kt-soft:      #f2f7f3;

  /* 브랜드 토큰 — ★변수 **이름**은 유지한다(kt.css 가 이 이름으로 참조한다). 값만 바꾼다. */
  --am-navy:      #123527;   /* 딥 포레스트 */
  --am-navy-2:    #0b241a;
  --am-navy-3:    #1d4530;
  --am-gold:      #c2701f;   /* 흙빛 앰버 */
  --am-gold-2:    #dd9142;
  --am-gold-soft: #f6ecdf;
  --am-line:      #dfe8e1;   /* ★원본에 정의가 없어 .am-doc-date 의 상단선이 안 보였다 */
  --am-sage:      #e9f2ec;
  --am-sage-2:    #d6e7db;
}

body { background: #f4f8f5; }

/* ── 2. kt.css 가 파란색을 하드코딩한 자리만 새 팔레트로 ───────────
   변수를 안 쓰는 규칙들이다. 색 속성만 덮고 나머지 선언은 그대로 상속받는다. */

/* ── 메뉴바 ───────────────────────────────────────────────────
   ★명암을 **뒤집는다**. 뼈대(마사지하우스)는 어두운 초록 바 + 금색 밑줄인데,
     같은 배치에 색만 갈면 한눈에 같은 사이트로 읽힌다. 하루쉼은 밝은 세이지 바에
     포레스트 글자 — 구조는 그대로지만 첫인상이 완전히 갈린다.
   대비: #e9f2ec 위 #17251c = 14.6:1 (AAA). */
.kt-menubar {
  background: linear-gradient(180deg, var(--am-sage) 0%, var(--am-sage-2) 100%);
  border-bottom: 2px solid var(--kt-primary);
  border-top: 1px solid #cfe0d5;
}
.kt-menubar a { color: #21402e; }
.kt-menubar a:after { background: linear-gradient(90deg, var(--kt-primary), var(--am-gold)); }
.kt-menubar a:hover { color: var(--kt-primary-d); background: rgba(45,123,71,.09); }
.kt-menubar a.on   { color: var(--kt-primary-d); }

/* 헤더 전화·CTA */
.kt-hdtel-ico { background: linear-gradient(135deg, var(--kt-primary), #3f9a5c); }
.kt-hdbtn     { background: linear-gradient(135deg, var(--am-navy-3), var(--am-navy-2)); }
.kt-logo span + span { color: var(--kt-primary); }

/* ── 사이드 위젯 헤더 ─────────────────────────────────────────
   ★kt.css 는 헤더 색을 --w1(밝은쪽)/--w2(어두운쪽)로, 그림자를 --wsh(rgb 3값)로 받는다.
     세 변수를 규격대로 덮어야 색이 바뀐다. */
.kt-widget         { --w1: #3f9a5c; --w2: #1f5c33; --wsh: 31, 92, 51; }    /* 지역별 = 포레스트 */
.kt-widget.w-theme { --w1: #d08a34; --w2: #9a5615; --wsh: 154, 86, 21; }   /* 프로그램 = 앰버 */
.kt-widget.w-talk  { --w1: #4d7f6a; --w2: #27503f; --wsh: 39, 80, 63; }    /* 소식 = 세이지딥 */

/* 홈 히어로 */
.kt-hero-main   { background: linear-gradient(135deg, #1d4530 0%, #0b241a 100%); }
.kt-hero-main p { color: #bcd6c5; }
.kt-hero-chips a:hover { background: rgba(255,255,255,.19); }

/* 버튼·칩의 활성 상태 */
.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(--kt-primary), #3f9a5c); }
#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: #a9d3ba; }
.kt-hubgrid a:hover, .kt-hubgrid a.on { border-color: var(--kt-primary); color: var(--kt-primary-d); background: #eef7f1; }
.kt-sectitle:before { background: linear-gradient(180deg, var(--kt-primary), var(--am-gold)); }

/* ── 프로그램 칩 아이콘 ────────────────────────────────────────
   ★뼈대는 폰트어썸 글리프(fa-th-large 등)를 돌려 썼다. 하루쉼은 프로그램마다
     **따로 그린 픽토그램**을 쓴다 — 모양·색·타일 형태를 전부 새로 잡았다
     (사용자 지적 2026-08-15: "아이콘 모양·색상 다르게 해야지").
   ★파일만 바꾸면 화면은 안 바뀐다 — nginx 가 svg 를 180일 캐시한다. `?v=` 필수. */
.kt-themegrid a { display: inline-flex; align-items: center; gap: 7px; }
.hs-tico {
  flex: 0 0 auto; width: 22px; height: 22px; display: inline-block;
  background-repeat: no-repeat; background-position: center; background-size: 22px 22px;
}
.hs-tico-swedish { background-image: url("/img/icon/hs-swedish.svg?v=hs1"); }
.hs-tico-aroma { background-image: url("/img/icon/hs-aroma.svg?v=hs1"); }
.hs-tico-thai { background-image: url("/img/icon/hs-thai.svg?v=hs1"); }
.hs-tico-dry { background-image: url("/img/icon/hs-dry.svg?v=hs1"); }
.hs-tico-sports { background-image: url("/img/icon/hs-sports.svg?v=hs1"); }
.hs-tico-lomi { background-image: url("/img/icon/hs-lomi.svg?v=hs1"); }
.hs-tico-foot { background-image: url("/img/icon/hs-foot.svg?v=hs1"); }
.hs-tico-spa { background-image: url("/img/icon/hs-spa.svg?v=hs1"); }
.hs-tico-esthetic { background-image: url("/img/icon/hs-esthetic.svg?v=hs1"); }
.hs-tico-gamsung { background-image: url("/img/icon/hs-gamsung.svg?v=hs1"); }
.hs-tico-lymph { background-image: url("/img/icon/hs-lymph.svg?v=hs1"); }
.hs-tico-oneshop { background-image: url("/img/icon/hs-oneshop.svg?v=hs1"); }
.hs-tico-couple { background-image: url("/img/icon/hs-couple.svg?v=hs1"); }
.hs-tico-waxing { background-image: url("/img/icon/hs-waxing.svg?v=hs1"); }
.hs-tico-women { background-image: url("/img/icon/hs-women.svg?v=hs1"); }
.hs-tico-24h { background-image: url("/img/icon/hs-24h.svg?v=hs1"); }
.hs-tico-homecare { background-image: url("/img/icon/hs-homecare.svg?v=hs1"); }

/* ── 매거진 카드 ──────────────────────────────────────────────
   원본은 카테고리 칩이 브랜드 블루, 새글 뱃지가 빨강이었다. 둘 다 하루쉼 팔레트 밖이라
   카드 하단 메타와 함께 "분위기를 깬다"는 지적을 받은 자리다. */
#bo_gall .bo_cate_link {
  color: #8a4a0c; background: rgba(224,123,31,.10); font-weight: 700;
}
#bo_gall .gall_box:hover .bo_cate_link { background: rgba(224,123,31,.16); }

/* 새글 표시 — 빨간 알약은 매거진 톤에 과하다. 제목 옆 작은 골드 점으로 낮춘다. */
#bo_gall .new_icon {
  margin-left: 6px; padding: 0; width: 6px; height: 6px; border-radius: 50%;
  background: var(--am-gold); color: transparent; font-size: 0; vertical-align: middle;
  box-shadow: 0 0 0 3px rgba(224,123,31,.16);
}

/* 카테고리 필터 활성 칩 */
#bo_gall #bo_cate_ul a.bo_cate_on {
  background: linear-gradient(135deg, #a85f10, #8a4a0c);
  box-shadow: 0 6px 14px -6px rgba(138,74,12,.6);
}
#bo_gall #bo_cate_ul a:hover { border-color: #e3cba9; background: #fdf8f2; }

/* ── 매거진 하단 '함께 보면 좋은 매장' — 칩 → 사진 카드 ──────── */
.kt-relshopg {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 10px 0 18px;
}
.kt-relshopcard {
  display: block; border: 1px solid var(--kt-line); border-radius: 12px; overflow: hidden;
  background: #fff; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.kt-relshopcard:hover {
  transform: translateY(-2px); border-color: #e3cba9;
  box-shadow: 0 14px 26px -18px rgba(138, 74, 12, .55);
}
.kt-relshopthumb { position: relative; display: block; aspect-ratio: 1/1; overflow: hidden; background: var(--kt-soft); }
.kt-relshopthumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kt-relshopthumb .kt-noimg { position: absolute; inset: 0; display: flex; align-items: center;
  justify-content: center; font-style: normal; font-size: 22px; font-weight: 800; color: #fff; }
.kt-relshopb { display: block; padding: 10px 11px 12px; }
.kt-relshopb b { display: block; font-size: 14px; font-weight: 700; letter-spacing: -.02em;
  color: var(--kt-ink); line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.kt-relshopb em { display: block; margin-top: 3px; font-style: normal; font-size: 12px; color: var(--kt-mute); }
@media (max-width: 640px) {
  .kt-relshopg { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .kt-relshopb { padding: 8px 8px 10px; }
  .kt-relshopb b { font-size: 12.5px; }
  .kt-relshopb em { font-size: 11px; }
}

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

/* 관련글 섹션 제목 밑줄 */
.kt-postrel h3 { border-bottom-color: #ece3d6; }

/* 가격 요약 패널 */
.kt-sum-price       { background: var(--am-navy); }
.kt-sum-price > span { color: var(--am-gold-2); }
/* ── 정보 문서(약관·소개·정책) 타이포 ──
   ★한 줄 길이를 46rem 으로 묶는다. 전폭으로 뽑으면 한 줄에 한글 70자가 넘어가 읽히지 않는다. */
.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(--am-navy);
  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(--am-gold);
  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(--am-gold);
}
.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(--am-navy); 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(--am-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 은 사진 여러 장 전제(2fr 1fr)라, 1장이면 메인이 2/3 칸에 갇힌다.
   높이 고정(320px)까지 겹치면 박스가 1.5:1 이 되어 1.875:1 이미지의 좌우가 잘린다.
   1장일 때만 한 칸으로 펴고 이미지와 같은 종횡비를 준다 → 어떤 폭에서도 잘림 0. */
.kt-gal.one { grid-template-columns: 1fr; }
.kt-gal.one .kt-gal-main img { height: auto; aspect-ratio: 1200 / 640; }

/* ── 정보 미확인(제휴종료) 매장 고지 ─────────────────────────────
   ★수천 페이지에 동일하게 들어가는 문구라 본문이 아니라 이 고정 영역에서 렌더한다.
   본문(sh_intro)에는 업소마다 유일한 값(도로명·지번·층·역명)만 남긴다. */
.kt-unverified{
  max-width:46rem;            /* ★본문 가로폭 규칙(한 줄 40~45자) */
  margin:18px 0 4px; padding:14px 16px;
  border:1px solid #e6d9bf; border-left:3px solid #a85f10; border-radius:8px;
  background:#fdf9f1; color:#5b4a2c; font-size:.94rem; line-height:1.75;
}
.kt-unverified b{ color:#7a5410; font-weight:700 }
.kt-unverified a{ color:#a85f10; text-decoration:underline }
@media (max-width:640px){ .kt-unverified{ margin:14px 0 2px; font-size:.9rem } }

/* ── 동적 SVG 썸네일 ──────────────────────────────────────────
   ★사진 미등록 업소의 폴백. 카드 이미지와 완전히 같은 규격으로 채운다. */
.kt-thumbsvg { width: 100%; height: 100%; object-fit: cover; display: block; }
.kt-magnoimg { background: linear-gradient(135deg, var(--am-sage-2), var(--am-sage)); }
/* 사이드 위젯 링크에 픽토그램을 넣으면 kt.css 의 grid 셀에서 글자가 밀린다 — flex 로 정렬 */
.kt-linkgrid a { display: inline-flex; align-items: center; gap: 5px; }
.kt-linkgrid .hs-tico { width: 17px; height: 17px; background-size: 17px 17px; }
.kt-themegrid a em { margin-left: 3px; }

/* ══ 롱테일 내부링크 블록 (lib/kt.longtail.php · 2026-08-18) ══════════════
   ★앵커가 '강남구 역삼동 출장마사지'처럼 길다 — 칩(kt-hubgrid)에 넣으면 글자가
     넘치거나 두 줄로 깨진다. 그래서 전용 그리드를 둔다.
   ★모바일 2열(사용자 상시 규칙). 데스크톱은 3열이 줄바꿈 없이 가장 안정적이다. */
.hs-lt { margin: 26px 0 6px; }
.hs-lt-note { margin: -4px 0 12px; font-size: 13px; color: #6b7683; line-height: 1.6; }
.hs-ltgrid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; }
@media (max-width: 900px) { .hs-ltgrid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; } }
.hs-ltgrid a {
  display: flex; align-items: center; gap: 6px;
  min-height: 46px; padding: 9px 13px;
  border: 1px solid #e3e8ee; border-radius: 10px; background: #fff;
  color: #39424f; font-size: 13.5px; line-height: 1.45; text-decoration: none;
  word-break: keep-all;
}
.hs-ltgrid a:hover { border-color: var(--kt-primary); color: var(--kt-primary); background: #f6faff; }
.hs-ltgrid a em { font-style: normal; margin-left: auto; font-size: 11.5px; font-weight: 700; color: var(--kt-primary); }
@media (max-width: 520px) { .hs-ltgrid a { font-size: 12.5px; padding: 8px 11px; min-height: 44px; } }
