/* ===========================================================
   massagehouse — premium (dark) theme
   그누보드6 basic 셸 위에 덮어쓰는 다크·프리미엄 디자인 시스템
   =========================================================== */
:root{
  --bg:#141010; --bg-2:#1B1513; --surface:#221A16; --surface-2:#2A211B;
  --line:#3A2E25; --gold:#C9A24B; --gold-hi:#E7C878;
  --ink:#EFE7DA; --ink-mut:#A99A87; --ink-dim:#7C6E60; --green:#5FB98C;
  --sans:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard","Noto Sans KR",system-ui,sans-serif;
  --serif:"Georgia","Times New Roman",serif;
  --wrap:1180px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.5;font-size:15px;
  background-image:
    radial-gradient(1000px 460px at 82% -6%,rgba(201,162,75,.13),transparent 60%),
    radial-gradient(640px 320px at -5% 4%,rgba(201,162,75,.06),transparent 60%);
  background-attachment:fixed;
}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.pm-wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.blind{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.label{text-transform:uppercase;letter-spacing:.22em;font-size:11px;color:var(--ink-dim);font-weight:600}

/* ---- 그누보드 기본 셸 무력화/오버라이드 ---- */
#hd{background:transparent;border:0;margin:0;padding:0}
#tnb,#skip_to_container,#hd_h1{display:none}
#wrapper{max-width:none;margin:0;padding:0;background:transparent;display:block}
#container{max-width:var(--wrap);margin:0 auto;padding:24px 20px 60px;width:auto;float:none;background:transparent;border:0;min-height:40vh}
#container_title{margin:0}
#aside{display:none}
hr{display:none}
#ft{margin:0;padding:0;background:transparent}
#top_btn{background:var(--surface);color:var(--gold);border:1px solid var(--line)}
#darkmode-toggle-switch{display:none}

/* =================== 프로모바 =================== */
.pm-promo{background:linear-gradient(90deg,#241a12,#2c2013,#241a12);color:var(--gold-hi);
  text-align:center;font-size:13px;font-weight:600;padding:9px;letter-spacing:.02em}
.pm-promo b{color:#fff}

/* =================== 헤더 =================== */
.pm-header{position:sticky;top:0;z-index:100;background:rgba(20,16,16,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.pm-hrow{display:flex;align-items:center;gap:26px;padding:15px 20px;max-width:var(--wrap);margin:0 auto}
.pm-logo{font-family:var(--serif);font-size:23px;letter-spacing:.02em;font-weight:600;white-space:nowrap;color:var(--ink)}
.pm-logo .h{color:var(--gold)}
.pm-nav{display:flex;gap:22px;font-size:15px}
.pm-nav > a,.pm-nav > .has-sub > a{color:var(--ink-mut);padding:6px 0;position:relative;display:inline-block}
.pm-nav > a:hover,.pm-nav .has-sub:hover > a{color:var(--ink)}
.pm-nav > a.on::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--gold)}
/* 드롭다운 (마사지 종류) */
.has-sub{position:relative}
.has-sub .sub{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(6px);
  background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:8px;min-width:172px;
  opacity:0;visibility:hidden;transition:opacity .16s ease,transform .16s ease;
  box-shadow:0 24px 48px -20px rgba(0,0,0,.7);z-index:120}
.has-sub:hover .sub{opacity:1;visibility:visible;transform:translateX(-50%) translateY(4px)}
.has-sub .sub a{display:block;padding:9px 13px;border-radius:8px;color:var(--ink-mut);font-size:14px;white-space:nowrap}
.has-sub .sub a:hover{background:var(--surface-2);color:var(--gold-hi)}
.pm-head-cta{margin-left:auto;display:flex;align-items:center;gap:10px}
.pm-pill{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:9px 15px;font-size:13.5px;font-weight:700;white-space:nowrap;cursor:pointer;border:0}
.pm-pill.tel{background:var(--gold);color:#221a10}
.pm-pill.kko{background:var(--surface-2);color:var(--gold-hi);border:1px solid var(--line)}
.pm-pill.ghost{background:transparent;color:var(--ink-mut);font-weight:600;padding:9px 4px}
.pm-pill.lg{padding:14px 24px;font-size:16px}
.dotgreen{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(95,185,140,.18)}
.pm-burger{display:none;margin-left:auto;font-size:22px;color:var(--ink);background:none;border:0;cursor:pointer}

/* =================== 히어로 =================== */
.pm-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.pm-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(760px 360px at 78% 24%,rgba(201,162,75,.17),transparent 62%);pointer-events:none}
.pm-hero .inner{position:relative;max-width:660px;padding:64px 20px 54px;margin:0 auto;width:100%;max-width:var(--wrap)}
.pm-hero .inner > *{max-width:660px}
.pm-hero .label{margin-bottom:16px}
.pm-hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(30px,5.2vw,54px);line-height:1.08;margin:0;text-wrap:balance}
.pm-hero h1 em{font-style:italic;color:var(--gold)}
.pm-hero p{color:var(--ink-mut);font-size:16px;margin:18px 0 28px;max-width:44ch}
.pm-cta-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pm-trust{display:flex;gap:30px;margin-top:38px;flex-wrap:wrap}
.pm-trust .t b{display:block;font-family:var(--serif);font-size:26px;color:var(--gold-hi)}
.pm-trust .t span{font-size:12px;color:var(--ink-dim);letter-spacing:.03em}

/* =================== 지역 칩 =================== */
.pm-section{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.pm-chips{display:flex;gap:9px;overflow-x:auto;padding:24px 0 6px;scrollbar-width:none}
.pm-chips::-webkit-scrollbar{display:none}
.pm-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink-mut);border-radius:999px;padding:8px 16px;font-size:13.5px;white-space:nowrap;cursor:pointer;flex:0 0 auto}
.pm-chip.on{background:var(--gold);color:#221a10;border-color:var(--gold);font-weight:700}

.pm-sec-head{display:flex;align-items:flex-end;justify-content:space-between;padding:28px 0 16px}
.pm-sec-head h2{margin:0;font-size:21px;font-weight:700;color:var(--ink)}
.pm-sec-head .more{font-size:13px;color:var(--gold-hi)}
.pm-eyebrow{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:14px}

/* =================== 카드 그리드 =================== */
.pm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding-bottom:14px}
.pm-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;display:block}
.pm-card:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:0 24px 40px -26px rgba(201,162,75,.5)}
.pm-thumb{position:relative;aspect-ratio:4/3;background:linear-gradient(150deg,#2c2119,#20191a 70%);display:flex;align-items:center;justify-content:center;overflow:hidden}
.pm-thumb img{width:100%;height:100%;object-fit:cover}
.pm-thumb .mono{font-family:var(--serif);font-size:36px;color:rgba(201,162,75,.28);letter-spacing:.05em}
.badge24{position:absolute;top:10px;left:10px;background:rgba(20,14,12,.72);border:1px solid var(--line);color:var(--gold-hi);font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px}
.pm-cbody{padding:14px 15px 16px}
.pm-creg{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700}
.pm-cname{font-size:16px;font-weight:700;margin:5px 0 7px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-stars{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-mut)}
.pm-stars b{color:var(--gold-hi)}
.pm-course{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}
.pm-course span{font-size:11.5px;color:var(--ink-mut);border:1px solid var(--line);border-radius:6px;padding:3px 7px;font-variant-numeric:tabular-nums}
.pm-cfoot{display:flex;align-items:center;justify-content:space-between;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}
.pm-price{font-size:13px;color:var(--ink-dim)}
.pm-price b{font-family:var(--serif);font-size:19px;color:var(--ink);font-variant-numeric:tabular-nums}
.pm-mini-tel{font-size:12.5px;font-weight:700;color:var(--gold-hi)}
.pm-empty{grid-column:1/-1;text-align:center;color:var(--ink-dim);padding:48px 0;border:1px dashed var(--line);border-radius:14px;background:var(--surface)}

/* =================== 마사지 종류 (SEO 랜딩) =================== */
.pm-types{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;padding-bottom:14px}
.pm-type{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px 18px;text-align:center;transition:border-color .18s,transform .18s}
.pm-type:hover{border-color:var(--gold);transform:translateY(-3px)}
.pm-type .ico{font-size:26px;margin-bottom:10px}
.pm-type b{display:block;font-size:15px;color:var(--ink);margin-bottom:4px}
.pm-type span{font-size:12px;color:var(--ink-dim)}

/* =================== 블로그 =================== */
.pm-blog{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-bottom:14px}
.pm-post{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px 20px 18px;transition:border-color .18s,transform .18s}
.pm-post:hover{border-color:var(--gold);transform:translateY(-3px)}
.pm-post .pt-cat{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700}
.pm-post h3{margin:8px 0 8px;font-size:16px;color:var(--ink);line-height:1.4}
.pm-post p{margin:0;color:var(--ink-mut);font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pm-post .pt-date{margin-top:12px;font-size:12px;color:var(--ink-dim)}

/* =================== 푸터 =================== */
.pm-footer{border-top:1px solid var(--line);padding:40px 0 46px;color:var(--ink-dim);font-size:13px;margin-top:20px}
.pm-footer .pm-logo{font-size:19px;margin-bottom:12px}
.pm-footer .frow{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:14px}
.pm-footer .frow a{color:var(--ink-mut)}
.pm-footer .frow a:hover{color:var(--gold-hi)}

/* =================== 플로팅 + 모바일 탭바 =================== */
.pm-fab{position:fixed;right:22px;bottom:22px;z-index:90;width:56px;height:56px;border-radius:50%;background:var(--gold);color:#221a10;display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:0 14px 30px -8px rgba(201,162,75,.6)}
.pm-tabbar{display:none}

/* =================== 모바일 드로어 =================== */
.pm-drawer{position:fixed;inset:0;z-index:200;background:rgba(10,7,6,.62);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .2s}
.pm-drawer.open{opacity:1;visibility:visible}
.pm-drawer .panel{position:absolute;top:0;right:0;bottom:0;width:78%;max-width:330px;background:var(--bg-2);border-left:1px solid var(--line);padding:22px;transform:translateX(100%);transition:transform .24s ease;display:flex;flex-direction:column;gap:2px;overflow-y:auto}
.pm-drawer.open .panel{transform:none}
.pm-drawer .panel > a,.pm-drawer .panel > .dgroup > b{padding:13px 6px;border-bottom:1px solid var(--line);font-size:16px;color:var(--ink);display:block}
.pm-drawer .dgroup > b{color:var(--gold-hi);font-size:13px;letter-spacing:.04em;border-bottom:0;padding-bottom:4px}
.pm-drawer .dgroup a{display:block;padding:9px 14px;color:var(--ink-mut);font-size:14px}
.pm-drawer .xrow{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.pm-drawer .x{font-size:26px;background:none;border:0;color:var(--ink);cursor:pointer}

/* =================== 게시판 목록(list) 다크 카드 래퍼 =================== */
.pm-list-head{padding:26px 0 4px}
.pm-list-head h2{margin:0;font-size:22px}
.pm-list-head .sub{color:var(--ink-mut);font-size:13px;margin-top:4px}

/* =================== 반응형 =================== */
@media (max-width:1000px){ .pm-types{grid-template-columns:repeat(5,1fr)} .pm-blog{grid-template-columns:1fr 1fr} }
@media (max-width:900px){
  .pm-grid{grid-template-columns:repeat(2,1fr)}
  .pm-nav,.pm-head-cta{display:none}
  .pm-burger{display:block}
  .pm-hrow{gap:14px}
  .pm-types{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  body{padding-bottom:64px}
  .pm-hero .inner{padding:44px 20px 40px}
  .pm-fab{bottom:78px;width:50px;height:50px;font-size:21px}
  .pm-blog{grid-template-columns:1fr}
  .pm-tabbar{display:grid;position:fixed;left:0;right:0;bottom:0;z-index:95;height:62px;grid-template-columns:repeat(4,1fr);background:#100c0b;border-top:1px solid var(--line)}
  .pm-tabbar a{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;font-size:10.5px;color:var(--ink-dim)}
  .pm-tabbar a .ti{font-size:18px}
  .pm-tabbar a.on{color:var(--gold)}
  .pm-trust{gap:22px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}

/* ===========================================================
   내장 다크 테마(color-theme=dark) 변수를 골드 팔레트로 조화
   premium.css 가 default.css 뒤에 로드되어 동일 특이도에서 우선
   =========================================================== */
:root[color-theme='dark']{
  --primaryColor:#C9A24B;
  --bodyBg:transparent;
  --contBg:#221A16;
  --inputBg:#2A211B;
  --inputBgGray:#2A211B;
  --border:1px solid #3A2E25;
  --fontColor:#EFE7DA;
  --btnColor:#EFE7DA;
  --tdColor:#A99A87;
  --bovColor:#A99A87;
  --bovTitColor:#EFE7DA;
  --bovHover:#2A211B;
  --menuBg:#221A16;
  --boNoticeBg:#241a12;
  --priThBg:#2A211B;
  --pgBg:#221A16;
  --evenTdBg:#1B1513;
}
/* default.css 하드코딩 밝은 배경 → 다크로 교정 (게시판 표) */
:root[color-theme='dark'] .tbl_head01 thead th,
:root[color-theme='dark'] .tbl_head02 thead th{background:#2A211B;color:var(--gold-hi);border-color:var(--line)}
:root[color-theme='dark'] .tbl_head01 tfoot th,:root[color-theme='dark'] .tbl_head01 tfoot td,
:root[color-theme='dark'] .tbl_head02 tfoot th,:root[color-theme='dark'] .tbl_head02 tfoot td,
:root[color-theme='dark'] .tbl_head02 tbody th,:root[color-theme='dark'] .tbl_head02 td,
:root[color-theme='dark'] table th{background:var(--surface);color:var(--ink-mut);border-color:var(--line)}
:root[color-theme='dark'] .td_group a{background:#243019;color:var(--ink)}
:root[color-theme='dark'] .td_board a{background:#2a2320;color:var(--ink)}
/* 게시판 본문/글쓰기 영역 링크·텍스트 가독 */
#container a{color:var(--gold-hi)}
#container h1,#container h2,#container h3{color:var(--ink)}
#bo_v_con,#bo_v_con *{color:var(--ink)!important;background:transparent!important}

/* ===========================================================
   게시판 목록(카드) · 페이지네이션 · 글보기/댓글 프리미엄 오버라이드
   board_common/board_skin_basic(body 로드)를 이기려 !important 사용
   =========================================================== */
/* 아티클 카드 (블로그/후기/이벤트) */
.pm-articles{display:flex;flex-direction:column;gap:12px}
.pm-article{display:block;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px 22px;transition:border-color .16s,transform .16s}
.pm-article:hover{border-color:var(--gold);transform:translateY(-2px)}
.pm-a-cat{display:inline-block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:8px}
.pm-article h3{margin:0 0 10px;font-size:17px;color:var(--ink);line-height:1.4}
.pm-a-meta{display:flex;gap:7px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-dim)}
.pm-list-head{padding:8px 0 4px}
.pm-list-head h2{margin:2px 0 0;font-size:24px;color:var(--ink)}
.pm-list-head .sub{color:var(--ink-mut);font-size:13px;margin-top:6px}
.pm-list-foot{display:flex;justify-content:flex-end;padding:20px 0 0}

/* 페이지네이션 */
.pm-paging{display:flex;justify-content:center;padding:34px 0 8px}
.pm-paging .pagination{display:flex;gap:6px;flex-wrap:wrap}
.pm-paging .pagination a,.pm-paging .pagination strong{min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink-mut);font-size:14px;text-decoration:none;padding:0 6px}
.pm-paging .pagination a:hover{border-color:var(--gold);color:var(--gold-hi)}
.pm-paging .pagination .current{background:var(--gold);color:#221a10;border-color:var(--gold);font-weight:700}

/* ---------- 글보기(read_post) 다크·엘레강스 강제 ---------- */
:root[color-theme='dark'] #container .bo_view,
:root[color-theme='dark'] #container .bo_view .view_buttons,
:root[color-theme='dark'] #container #view_move,
:root[color-theme='dark'] #container #bo_basic_comment{background:transparent !important}
#container .bo_view{max-width:820px;margin:0 auto;color:var(--ink)}
#container #view_subject{font-size:26px !important;color:var(--ink) !important;line-height:1.3;margin:6px 0 18px !important}
#container #view_subject .subject_cate,#container .subject_cate{display:inline-block;font-size:12px;letter-spacing:.06em;color:var(--gold) !important;background:#2a211b !important;border:1px solid var(--line);padding:3px 10px;border-radius:999px;margin-right:8px;vertical-align:middle}
#container #view_header{color:var(--ink-dim) !important;border-bottom:1px solid var(--line) !important;padding-bottom:16px !important}
#container #view_header *{color:var(--ink-mut) !important}
#container #view_article,#container #article_contents{color:var(--ink) !important;font-size:16px;line-height:1.85;padding:26px 0 40px !important}
#container #article_contents *{color:var(--ink) !important;background:transparent !important}
#container #article_contents img{border-radius:10px}
#container .view_buttons .btn,#container .btn_b01,#container a.btn{background:var(--surface-2) !important;border:1px solid var(--line) !important;color:var(--ink-mut) !important;border-radius:8px !important}
#container #view_move a{border:1px solid var(--line) !important;border-radius:10px !important;background:var(--surface) !important;color:var(--ink) !important;margin-bottom:8px}
#container #view_move .prev,#container #view_move .next{background:var(--surface) !important;color:var(--ink) !important}
#container #view_move a:hover{border-color:var(--gold) !important}
#container #view_move .subject{color:var(--ink) !important}#container #view_move .date{color:var(--ink-dim) !important}
/* 댓글 */
#container #bo_basic_comment{border-top:1px solid var(--line);margin-top:20px;padding-top:24px}
#container #bo_basic_comment *{color:var(--ink)}
#container .cmt_contents,#container .comment_wrap,#container .cmt_list li,#container .cmt_paging{background:transparent !important;border-color:var(--line) !important}
#container .cmt_list li{border-bottom:1px solid var(--line) !important;padding:14px 0}
/* 폼(댓글/글쓰기) 입력요소 다크 */
#container input[type=text],#container input[type=password],#container input[type=email],#container textarea,#container select{
  background:var(--surface-2) !important;border:1px solid var(--line) !important;color:var(--ink) !important;border-radius:8px}
#container input::placeholder,#container textarea::placeholder{color:var(--ink-dim)}
#container .btn_submit,#container button[type=submit]{background:var(--gold) !important;color:#221a10 !important;border:0 !important;border-radius:999px !important;font-weight:700}
/* 콘텐츠 페이지(bbs/content) */
#container #bo_content,#container .content_wrap{color:var(--ink)}
#container #bo_content *,#container .content_wrap *{background:transparent !important}

/* =================== 블로그 갤러리 형식 =================== */
.pm-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pm-gcard{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:block;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.pm-gcard:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:0 24px 40px -26px rgba(201,162,75,.5)}
.pm-gthumb{position:relative;aspect-ratio:16/10;background:linear-gradient(150deg,#2c2119,#20191a 70%);
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.pm-gthumb img{width:100%;height:100%;object-fit:cover}
.pm-gthumb .mono{font-family:var(--serif);font-size:40px;color:rgba(201,162,75,.28);letter-spacing:.05em}
.pm-gcat{position:absolute;top:12px;left:12px;background:rgba(20,14,12,.72);border:1px solid var(--line);
  color:var(--gold-hi);font-size:11px;font-weight:700;letter-spacing:.06em;padding:4px 10px;border-radius:999px}
.pm-gbody{padding:16px 18px 18px}
.pm-gbody h3{margin:0 0 8px;font-size:16.5px;color:var(--ink);line-height:1.42;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pm-gbody p{margin:0;color:var(--ink-mut);font-size:13px;line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pm-gmeta{display:flex;justify-content:space-between;gap:8px;margin-top:14px;padding-top:12px;
  border-top:1px solid var(--line);font-size:12px;color:var(--ink-dim)}
@media (max-width:900px){.pm-gallery{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.pm-gallery{grid-template-columns:1fr}}
