/*
Theme Name: Yonsei Valentine Blog
Theme URI: https://yonseivalentine.com
Author: Yonsei Valentine Dental Clinic
Description: 연세발렌타인치과교정과치과의원 아산점 전용 블로그 테마. 연세꿈꾸는치과 블로그 레이아웃 구조 참조. Noto Sans KR 단일 폰트. SEO/GEO/AEO 최적화. 의료법 제56조 준수.
Version: 2.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: Private
Text Domain: yvb
Tags: blog, dental, medical, korean, seo, aeo, geo
*/

/* =============================================
   CSS VARIABLES
   ============================================= */
:root {
  --mocha:        #6B5F50;
  --mocha-dk:     #534A3D;
  --mocha-lt:     #8A7A68;
  --ivory:        #FAF7F2;
  --ivory-dk:     #F0EBE1;
  --ivory-mid:    #E4DCCE;
  --crimson:      #8B1A3A;
  --crimson-dk:   #6E1430;
  --crimson-pale: #FDF2F5;
  --gold:         #C8A84B;
  --gold-dk:      #A8882B;
  --txt:          #2C2820;
  --txt-mid:      #6B5F50;
  --txt-muted:    #998870;
  --border:       #E0D8CC;
  --border-lt:    #EDE7DE;
  --white:        #FFFFFF;
  --shadow-xs: 0 1px 3px rgba(107,95,80,.07);
  --shadow-sm: 0 2px 8px rgba(107,95,80,.10);
  --shadow-md: 0 4px 18px rgba(107,95,80,.13);
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 50px;
  --transition: .22s ease;
  --container: 1280px;
  --sidebar-w: 320px;
  --header-h: 52px;
}

/* =============================================
   RESET & BASE — Noto Sans KR (꿈꾸는치과 동일)
   ============================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body {
  font-family: 'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
  background: var(--ivory);
  color: var(--txt);
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { cursor: pointer; font-family: inherit; border: none; background: none; }
address { font-style: normal; }

.screen-reader-text { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.skip-link { position: absolute; top: -100%; left: 1rem; background: var(--crimson); color: #fff; padding: .5rem 1rem; border-radius: 0 0 var(--radius-md) var(--radius-md); z-index: 9999; transition: top .2s; }
.skip-link:focus { top: 0; }

/* =============================================
   LAYOUT
   ============================================= */
.site-container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 1.375rem; }

/* =============================================
   HEADER — 모카 단일 바 (꿈꾸는치과 구조)
   ============================================= */
.site-header {
  background: var(--mocha-dk);
  height: var(--header-h);
  display: flex; align-items: center;
  justify-content: space-between;
  padding: 0 1.375rem;
  position: sticky; top: 0; z-index: 100;
  box-shadow: var(--shadow-sm);
}
.site-branding { display: flex; align-items: center; gap: .6rem; }
.header-icon {
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--crimson);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; overflow: hidden;
}
.header-icon svg { width: 16px; height: 16px; fill: #fff; }
.header-icon img { width: 32px; height: 32px; object-fit: cover; border-radius: 50%; }
.header-site-name { color: #fff; font-size: 13px; font-weight: 700; line-height: 1.2; }
.header-site-sub { color: rgba(255,255,255,.42); font-size: 8px; letter-spacing: 1px; text-transform: uppercase; display: block; margin-top: 1px; }

/* Navigation */
.primary-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-width: 0;
}
.primary-menu {
  display: flex;
  height: var(--header-h);
  align-items: center;
}
.primary-menu .menu-item > a {
  color: rgba(255,255,255,.82);
  font-size: 13px; font-weight: 600;
  padding: 0 .85rem; height: var(--header-h);
  display: flex; align-items: center; white-space: nowrap;
  transition: color var(--transition);
}
.primary-menu .menu-item > a:hover,
.primary-menu .menu-item.current-menu-item > a,
.primary-menu .menu-item.current-cat > a { color: #fff; }
.primary-menu .menu-item.menu-highlight > a {
  background: var(--crimson); color: #fff; font-weight: 700;
  border-radius: var(--radius-pill); height: 28px; margin-left: .4rem; padding: 0 .9rem;
}
.primary-menu .menu-item.menu-highlight { display: none; }

/* Search */
.header-search {
  display: flex; align-items: center;
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--radius-sm); height: 30px; overflow: hidden;
}
.header-search { display: none; }
.header-search input[type="search"] {
  background: none; border: none; outline: none;
  color: #fff; font-size: 13px; font-weight: 400;
  padding: 0 .65rem; width: 120px; font-family: inherit;
}
.header-search input::placeholder { color: rgba(255,255,255,.4); }
.header-search button {
  background: var(--gold); border: none; color: #fff;
  padding: 0 .6rem; height: 30px; font-size: 13px;
  display: flex; align-items: center; cursor: pointer;
}

/* Mobile */
.nav-toggle {
  display: none; border: 1px solid rgba(255,255,255,.3);
  border-radius: var(--radius-sm); color: #fff;
  padding: .3rem .5rem; font-size: .9rem; line-height: 1;
}
@media (max-width: 880px) {
  .primary-nav {
    display: none; position: absolute; top: var(--header-h);
    left: 0; right: 0; background: var(--mocha-dk);
    height: auto; box-shadow: var(--shadow-md); z-index: 99;
  }
  .primary-nav.is-open { display: block; }
  .primary-menu { flex-direction: column; align-items: stretch; height: auto; }
  .primary-menu .menu-item > a { height: auto; padding: .75rem 1.375rem; border-bottom: 1px solid rgba(255,255,255,.08); width: 100%; }
  .primary-menu .menu-item.menu-highlight > a { border-radius: 0; height: auto; margin: 0; }
  .nav-toggle { display: flex; }
  .header-search { display: none; }
}

/* =============================================
   HERO — #FAF7F2 아이보리
   ============================================= */
.site-hero {
  background: var(--ivory);
  padding: 2.5rem 1.375rem 2.2rem;
  display: flex; flex-direction: column; align-items: center;
  position: relative; overflow: hidden;
  border-bottom: 3px solid var(--crimson);
  text-align: center;
}
.site-hero::before {
  content: ''; position: absolute; right: -50px; top: -50px;
  width: 260px; height: 260px; border-radius: 50%;
  background: rgba(139,26,58,.04); pointer-events: none;
}
.hero-watermark {
  position: absolute; right: 290px; bottom: -14px;
  font-size: 5.5rem; font-weight: 900;
  color: rgba(107,95,80,.044); line-height: 1;
  pointer-events: none; user-select: none; white-space: nowrap;
}
.hero-content { position: relative; z-index: 2; width: 100%; max-width: 700px; display: flex; flex-direction: column; align-items: center; }
.hero-eyebrow {
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--crimson); color: #fff;
  font-size: 10px; font-weight: 700;
  padding: .25rem .8rem; border-radius: var(--radius-pill);
  margin-bottom: .8rem; letter-spacing: .3px;
  align-self: center;
}
.hero-title { font-size: 28px; font-weight: 900; color: var(--txt); line-height: 1.45; margin-bottom: .55rem; }
.hero-title em { color: var(--crimson); font-style: normal; }
.hero-desc { font-size: 13.5px; font-weight: 400; color: var(--txt-muted); line-height: 1.95; margin-bottom: 1.1rem; }
.hero-desc strong { color: var(--crimson-dk); font-weight: 700; }
.hero-actions { display: flex; gap: .55rem; flex-wrap: wrap; margin-bottom: 1rem; justify-content: center; }
.btn {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .6rem 1.1rem; border-radius: var(--radius-sm);
  font-size: 13px; font-weight: 700;
  transition: all var(--transition); border: none; cursor: pointer; font-family: inherit;
}
.btn-crimson { background: var(--crimson); color: #fff; }
.btn-crimson:hover { background: var(--crimson-dk); }
.btn-mocha-o { background: none; border: 1.5px solid var(--mocha); color: var(--mocha); }
.btn-mocha-o:hover { background: var(--mocha); color: #fff; }
.hero-chips { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; }
.chip { font-size: 10px; font-weight: 600; padding: .22rem .7rem; border-radius: var(--radius-pill); border: 1px solid; }
.chip-red { background: var(--crimson-pale); border-color: rgba(139,26,58,.22); color: var(--crimson-dk); }
.chip-mocha { background: var(--ivory-dk); border-color: var(--border); color: var(--txt-mid); }

/* LATEST POSTS 위젯 */
.hero-latest {
  display: none;
}
.hlw-head { background: var(--mocha-dk); padding: .6rem .85rem; font-size: 9px; color: rgba(255,255,255,.7); letter-spacing: 1.5px; font-weight: 800; text-transform: uppercase; }
.hlw-list { padding: .4rem; }
.hlw-item { display: grid; grid-template-columns: 44px 1fr; gap: .55rem; align-items: center; padding: .5rem .35rem; border-bottom: 1px solid var(--border-lt); text-decoration: none; transition: background var(--transition); }
.hlw-item:last-child { border-bottom: none; }
.hlw-item:hover { background: var(--ivory-dk); border-radius: var(--radius-sm); }
.hlw-thumb { width: 44px; height: 44px; border-radius: var(--radius-sm); background: var(--ivory-dk); overflow: hidden; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; }
.hlw-thumb img { width: 100%; height: 100%; object-fit: cover; }
.hlw-cat { font-size: 9px; font-weight: 700; color: var(--crimson); margin-bottom: 2px; }
.hlw-title { font-size: 11px; font-weight: 500; color: var(--txt); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hlw-date { font-size: 9.5px; font-weight: 400; color: var(--txt-muted); margin-top: 2px; }

@media (max-width: 768px) {
  .hero-watermark { display: none; }
}

/* =============================================
   PROFESSOR BANNER
   ============================================= */
.prof-banner {
  background: linear-gradient(135deg, #5C4E38 0%, #7A6545 40%, #6B5840 70%, #564530 100%);
  padding: 1.25rem 1.375rem;
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: .65rem; text-align: center;
  border-top: 2px solid rgba(200,168,75,.35);
  border-bottom: 2px solid rgba(200,168,75,.18);
}
.pb-left { display: flex; flex-direction: column; align-items: center; gap: .45rem; width: 100%; text-align: center; }
.pb-icon { width: 46px; height: 46px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.pb-icon svg { width: 44px; height: 44px; }
.pb-title { font-size: 13px; font-weight: 800; color: #fff; line-height: 1.45; margin-bottom: .22rem; }
.pb-title em { color: var(--gold); font-style: normal; }
.pb-desc { font-size: 10.5px; font-weight: 400; color: rgba(255,255,255,.7); line-height: 1.72; }
.pb-stats { display: flex; gap: 1px; justify-content: center; }
.pb-stat { background: rgba(0,0,0,.18); border: 1px solid rgba(200,168,75,.25); padding: .7rem 1.2rem; text-align: center; min-width: 88px; }
.pb-stat:first-child { border-radius: var(--radius-sm) 0 0 var(--radius-sm); border-right: none; }
.pb-stat:last-child  { border-radius: 0 var(--radius-sm) var(--radius-sm) 0; }
.pb-stat-num { font-size: 20px; font-weight: 900; color: var(--gold); line-height: 1; margin-bottom: .2rem; }
.pb-stat-num sup { font-size: 11px; }
.pb-stat-label { font-size: 9px; font-weight: 500; color: rgba(255,255,255,.62); white-space: nowrap; }
@media (max-width: 640px) { .pb-stats { display: none; } }

/* =============================================
   AEO INFO BAR — 핵심 정보 구조화
   ============================================= */
.info-bar {
  background: var(--ivory-dk); border-bottom: 1px solid var(--border);
  padding: .55rem 1.375rem;
  display: flex; align-items: center; gap: 1.1rem; flex-wrap: wrap;
}
.info-item { display: flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 500; color: var(--txt-mid); }
.info-item em { color: var(--crimson); font-weight: 700; font-style: normal; }
.info-sep { color: var(--border); }

/* =============================================
   CATEGORY TABS
   ============================================= */
.cat-tabs { background: var(--white); border-bottom: 1px solid var(--border); position: sticky; top: var(--header-h); z-index: 90; }
.cat-tabs-inner { max-width: var(--container); margin: 0 auto; padding: 0 1.375rem; display: flex; overflow-x: auto; scrollbar-width: none; }
.cat-tabs-inner::-webkit-scrollbar { display: none; }
.cat-tab { display: inline-flex; align-items: center; gap: .35rem; padding: .72rem .95rem; font-size: 12px; font-weight: 600; color: var(--txt-muted); border-bottom: 2.5px solid transparent; white-space: nowrap; text-decoration: none; transition: all var(--transition); }
.cat-tab:hover { color: var(--crimson); }
.cat-tab.active, .cat-tab.current-cat { color: var(--crimson); border-bottom-color: var(--crimson); font-weight: 800; }
.cat-count { background: var(--ivory-dk); color: var(--txt-muted); font-size: 9px; font-weight: 600; padding: 1px 5px; border-radius: var(--radius-pill); }
.cat-tab.active .cat-count, .cat-tab.current-cat .cat-count { background: var(--crimson); color: #fff; }

/* =============================================
   MAIN LAYOUT
   ============================================= */
.site-main-layout {
  max-width: var(--container); margin: 0 auto;
  padding: 1.1rem 1.375rem 2.5rem;
  display: grid; grid-template-columns: 1fr var(--sidebar-w);
  gap: 1.25rem; align-items: start;
}
@media (max-width: 900px) { .site-main-layout { grid-template-columns: 1fr; } .site-sidebar { order: 2; } }

/* =============================================
   POST GRID — 2컬럼 (꿈꾸는치과 참조)
   ============================================= */
.posts-section { margin-bottom: 1.25rem; }
.posts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
@media (max-width: 560px) { .posts-grid { grid-template-columns: 1fr; } }

.post-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-xs); transition: box-shadow var(--transition), transform var(--transition); }
.post-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.post-thumb { position: relative; background: var(--ivory-dk); height: 150px; overflow: hidden; display: flex; align-items: center; justify-content: center; font-size: 2.5rem; }
.post-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.post-card:hover .post-thumb img { transform: scale(1.04); }
.post-thumb-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 2.5rem; }
.post-cat-badge { position: absolute; top: 8px; left: 8px; color: #fff; font-size: 9px; font-weight: 700; padding: 2px 8px; border-radius: var(--radius-pill); }
.badge-crimson { background: var(--crimson); }     /* 심미교정 */
.badge-mocha   { background: var(--mocha); }        /* 간단교정 */
.badge-purple  { background: #6B4D8A; }             /* 턱성장교정 */
.badge-teal    { background: #2A7B8A; }             /* 치아맹출 */
.badge-gold    { background: var(--gold-dk); }      /* 저작기능 */
.badge-dark    { background: #3A2E24; }             /* 고난도교정 */

.post-body { padding: .8rem .9rem; }
.post-cat-label { font-size: 10px; font-weight: 700; color: var(--crimson); margin-bottom: .3rem; }
.post-title { font-size: 14px; font-weight: 800; line-height: 1.5; margin-bottom: .35rem; color: var(--txt); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.post-title a { color: inherit; }
.post-title a:hover { color: var(--crimson); }
.post-excerpt { font-size: 11px; font-weight: 400; color: var(--txt-muted); line-height: 1.65; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: .55rem; }
.post-footer { display: flex; justify-content: space-between; align-items: center; padding-top: .5rem; border-top: 1px solid var(--border-lt); }
.post-meta { color: var(--txt-muted); font-size: 10px; font-weight: 400; }
.post-read-btn { color: var(--crimson); font-size: 10.5px; font-weight: 700; background: var(--crimson-pale); padding: .2rem .6rem; border-radius: var(--radius-pill); }

/* Category Section Header */
.cat-section-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .7rem; padding-bottom: .55rem; border-bottom: 2px solid var(--border); }
.cat-section-title { font-size: 16px; font-weight: 900; color: var(--txt); display: flex; align-items: center; gap: .4rem; }
.cat-section-more { color: var(--crimson); font-size: 11px; font-weight: 700; }

/* Pagination */
.pagination { display: flex; justify-content: center; gap: .35rem; margin-top: 1rem; }
.page-btn { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: 12px; font-weight: 600; background: var(--white); color: var(--txt-mid); transition: all var(--transition); }
.page-btn:hover { border-color: var(--crimson); color: var(--crimson); }
.page-btn.current { background: var(--crimson); color: #fff; border-color: var(--crimson); }

/* =============================================
   AEO FAQ 섹션 — 포스트 목록 하단
   FAQ Schema JSON-LD는 wp_head에 비표시 삽입
   ============================================= */
.aeo-faq-wrap {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--radius-lg); overflow: hidden;
  margin-top: 1.4rem; box-shadow: var(--shadow-xs);
}
.aeo-faq-head {
  background: var(--mocha-dk); padding: .9rem 1.25rem;
  display: flex; align-items: center; gap: .65rem;
}
.aeo-faq-head-icon {
  width: 34px; height: 34px; border-radius: 50%;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25);
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem; flex-shrink: 0;
}
.aeo-faq-head-title { color: #fff; font-size: 14px; font-weight: 800; line-height: 1.3; }
.aeo-faq-head-sub { color: rgba(255,255,255,.58); font-size: 10px; font-weight: 400; margin-top: 1px; }
.aeo-faq-body { padding: 0 1.25rem; }
.aeo-faq-item { border-bottom: 1px solid var(--border-lt); }
.aeo-faq-item:last-child { border-bottom: none; }
.aeo-faq-q { display: flex; justify-content: space-between; align-items: flex-start; padding: .9rem 0; cursor: pointer; gap: .65rem; }
.aeo-faq-q-icon {
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--crimson); color: #fff;
  font-size: 11px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; margin-top: 1px;
}
.aeo-faq-q-text { font-size: 13.5px; font-weight: 700; color: var(--txt); line-height: 1.5; flex: 1; }
.aeo-faq-toggle { color: var(--mocha); font-size: 1.1rem; font-weight: 300; flex-shrink: 0; margin-top: 2px; transition: transform var(--transition); }
.aeo-faq-item.open .aeo-faq-toggle { transform: rotate(45deg); }
.aeo-faq-a { font-size: 12.5px; font-weight: 400; color: var(--txt-mid); line-height: 1.85; padding: 0 0 .9rem 2.15rem; display: none; }
.aeo-faq-item.open .aeo-faq-a { display: block; }
.aeo-faq-note {
  background: var(--ivory-dk); padding: .6rem 1.25rem;
  font-size: 10px; font-weight: 400; color: var(--txt-muted);
  display: flex; align-items: center; gap: .4rem;
  border-top: 1px solid var(--border);
}
.aeo-faq-note em { color: var(--mocha); font-style: normal; font-weight: 600; }

/* =============================================
   SINGLE POST
   ============================================= */
.entry-wrap { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 1.75rem; box-shadow: var(--shadow-xs); }
.entry-cats { display: flex; gap: .35rem; margin-bottom: .6rem; flex-wrap: wrap; }
.entry-title { font-size: 1.55rem; font-weight: 900; line-height: 1.5; margin-bottom: .6rem; }
.entry-meta { display: flex; gap: .65rem; align-items: center; font-size: 12px; font-weight: 400; color: var(--txt-muted); flex-wrap: wrap; padding-bottom: .65rem; border-bottom: 2px solid var(--border); margin-bottom: 1.5rem; }
.entry-meta-author { color: var(--crimson); font-weight: 700; }
.entry-featured-img { border-radius: var(--radius-md); overflow: hidden; margin-bottom: 1.75rem; }
.entry-content { line-height: 1.85; font-size: 15px; }
.entry-content h2 { font-size: 1.2rem; font-weight: 900; margin: 2rem 0 .7rem; padding-bottom: .45rem; border-bottom: 2px solid var(--border); }
.entry-content h3 { font-size: 1rem; font-weight: 800; margin: 1.5rem 0 .45rem; color: var(--mocha); }
.entry-content p { margin-bottom: 1rem; font-weight: 400; }
.entry-content em { color: var(--crimson); font-style: normal; font-weight: 700; }
.entry-content ul { margin: 0 0 1rem 1.1rem; list-style: disc; }
.entry-content ol { margin: 0 0 1rem 1.1rem; list-style: decimal; }
.entry-content li { margin-bottom: .3rem; }
.entry-content blockquote { border-left: 4px solid var(--crimson); margin: 1.5rem 0; padding: .85rem 1rem; background: var(--crimson-pale); border-radius: 0 var(--radius-md) var(--radius-md) 0; color: var(--txt-mid); }
.entry-content table { width: 100%; border-collapse: collapse; margin-bottom: 1.1rem; font-size: 13.5px; }
.entry-content th { background: var(--mocha); color: #fff; padding: .45rem .8rem; text-align: left; font-weight: 700; }
.entry-content td { padding: .45rem .8rem; border-bottom: 1px solid var(--border-lt); }
.entry-content tr:nth-child(even) td { background: var(--ivory-dk); }
.medical-notice { background: var(--ivory-dk); border: 1px solid var(--border); border-left: 4px solid var(--mocha-lt); border-radius: 0 var(--radius-md) var(--radius-md) 0; padding: .8rem .95rem; margin: 2rem 0 0; font-size: 11px; font-weight: 400; color: var(--txt-muted); line-height: 1.8; }

/* Related Posts */
.related-posts-title { font-size: .95rem; font-weight: 900; margin-bottom: .85rem; padding-bottom: .45rem; border-bottom: 2px solid var(--border); }
.related-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }

/* =============================================
   SIDEBAR
   ============================================= */
.site-sidebar { display: flex; flex-direction: column; gap: .9rem; }
.widget { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-xs); }
.widget-head { padding: .62rem .85rem; }
.widget-head.crimson { background: var(--crimson); }
.widget-head.mocha   { background: var(--mocha); }
.widget-title    { color: #fff; font-size: 12px; font-weight: 700; }
.widget-subtitle { color: rgba(255,255,255,.6); font-size: 9.5px; font-weight: 400; margin-top: 1px; }
.widget-body { padding: .85rem; }

/* Appointment */
.appt-phone { display: flex; align-items: center; justify-content: center; gap: .4rem; background: var(--mocha-dk); color: #fff; font-size: 15px; font-weight: 900; padding: .7rem; border-radius: var(--radius-sm); margin-bottom: .55rem; }
.appt-note { font-size: 10.5px; font-weight: 400; color: var(--txt-muted); text-align: center; margin-bottom: .7rem; line-height: 1.6; }
.hours-list { display: flex; flex-direction: column; gap: .3rem; }
.hour-row { display: flex; justify-content: space-between; align-items: center; font-size: 11px; padding: .35rem .55rem; border-radius: var(--radius-sm); background: var(--ivory-dk); }
.hour-row.night { background: var(--crimson-pale); border-left: 3px solid var(--crimson); }
.hour-row.closed { opacity: .5; }
.hour-day { color: var(--txt-mid); font-weight: 600; }
.hour-time { color: var(--txt); font-weight: 700; }
.night-tag { background: var(--crimson); color: #fff; font-size: 8px; font-weight: 700; padding: 1px 4px; border-radius: 7px; margin-left: 3px; }
.lunch-note { font-size: 10px; font-weight: 400; color: var(--txt-muted); margin-top: .45rem; padding: .32rem .55rem; background: var(--ivory-dk); border-left: 2px solid var(--mocha-lt); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; line-height: 1.65; }
.cta-btn { display: flex; align-items: center; justify-content: center; gap: .35rem; width: 100%; padding: .65rem; border-radius: var(--radius-sm); font-size: 12px; font-weight: 700; border: none; cursor: pointer; margin-top: .45rem; font-family: inherit; transition: filter var(--transition); }
.cta-btn:hover { filter: brightness(.92); }
.cta-naver { background: #03C75A; color: #fff; }
.cta-call  { background: var(--crimson); color: #fff; }

/* Doctor */
.doctor-profile { display: flex; align-items: center; gap: .6rem; margin-bottom: .7rem; padding-bottom: .7rem; border-bottom: 1px solid var(--border-lt); }
.doctor-avatar { width: 46px; height: 46px; border-radius: 50%; background: var(--ivory-dk); border: 2px solid var(--crimson); overflow: hidden; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; }
.doctor-avatar img { width: 100%; height: 100%; object-fit: cover; }
.doctor-name { font-weight: 800; font-size: 13px; color: var(--txt); }
.doctor-spec { font-size: 9.5px; font-weight: 600; color: var(--crimson); margin-top: 1px; }
.prof-highlight { background: var(--crimson-pale); border: 1px solid rgba(139,26,58,.14); border-radius: var(--radius-md); padding: .55rem .7rem; margin-bottom: .65rem; }
.ph-label { font-size: 9px; font-weight: 800; color: var(--crimson); letter-spacing: .4px; margin-bottom: 3px; }
.ph-text { font-size: 11px; font-weight: 800; color: var(--txt); line-height: 1.55; }
.ph-text em { color: var(--crimson); font-style: normal; }
.career-list { display: flex; flex-direction: column; gap: .25rem; }
.career-item { display: flex; gap: .3rem; font-size: 10.5px; font-weight: 400; color: var(--txt-mid); }
.career-dot { color: var(--crimson); font-size: 8px; margin-top: 3px; flex-shrink: 0; }

/* Location */
.loc-address { font-size: 11px; font-weight: 400; color: var(--txt-mid); line-height: 1.75; margin-bottom: .6rem; }
.map-placeholder { background: var(--ivory-dk); border-radius: var(--radius-md); height: 90px; display: flex; align-items: center; justify-content: center; font-size: 11px; color: var(--txt-muted); border: 1px solid var(--border); }

/* Sidebar FAQ */
.sb-faq-item { border-bottom: 1px solid var(--border-lt); }
.sb-faq-item:last-child { border-bottom: none; }
.sb-faq-q { display: flex; justify-content: space-between; align-items: center; padding: .62rem 0; font-size: 11.5px; font-weight: 600; color: var(--txt); cursor: pointer; }
.sb-faq-icon { color: var(--crimson); font-size: 14px; margin-left: .35rem; flex-shrink: 0; transition: transform var(--transition); }
.sb-faq-item.open .sb-faq-icon { transform: rotate(45deg); }
.sb-faq-a { font-size: 10.5px; font-weight: 400; color: var(--txt-muted); line-height: 1.75; padding: 0 0 .6rem; display: none; }
.sb-faq-item.open .sb-faq-a { display: block; }

/* Tags */
.tag-cloud { display: flex; flex-wrap: wrap; gap: .35rem; }
.tag-item { font-size: 10.5px; font-weight: 500; padding: .22rem .65rem; border-radius: var(--radius-pill); background: var(--ivory-dk); border: 1px solid var(--border); color: var(--txt-mid); transition: all var(--transition); }
.tag-item:hover { background: var(--crimson-pale); border-color: rgba(139,26,58,.28); color: var(--crimson); }

/* Recent Posts */
.recent-post { padding: .42rem 0; border-bottom: 1px solid var(--border-lt); }
.recent-post:last-child { border-bottom: none; }
.recent-post-title { font-size: 11px; font-weight: 500; color: var(--txt); line-height: 1.45; margin-bottom: 2px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.recent-post-title a { color: inherit; }
.recent-post-title a:hover { color: var(--crimson); }
.recent-post-date { font-size: 9.5px; font-weight: 400; color: var(--txt-muted); }

/* =============================================
   FOOTER — 3컬럼 다크 (꿈꾸는치과 참조)
   ============================================= */
.site-footer { background: var(--mocha-dk); }
.footer-main { max-width: var(--container); margin: 0 auto; padding: 1.5rem 1.375rem; display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 1.25rem; }
@media (max-width: 680px) { .footer-main { grid-template-columns: 1fr; } }
.footer-brand-name { color: #fff; font-size: 14px; font-weight: 800; margin-bottom: .4rem; display: flex; align-items: center; gap: .4rem; }
.footer-brand-icon { width: 18px; height: 18px; border-radius: 50%; background: var(--crimson); display: flex; align-items: center; justify-content: center; font-size: .55rem; flex-shrink: 0; }
.footer-info { font-size: 10px; font-weight: 400; color: rgba(255,255,255,.48); line-height: 1.9; }
.footer-copy { font-size: 9.5px; font-weight: 400; color: rgba(255,255,255,.28); margin-top: .5rem; }
.footer-col-title { color: rgba(255,255,255,.68); font-size: 11px; font-weight: 700; margin-bottom: .6rem; padding-bottom: .4rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.footer-links { display: flex; flex-direction: column; gap: .35rem; }
.footer-links a { color: rgba(255,255,255,.44); font-size: 10.5px; font-weight: 400; transition: color var(--transition); }
.footer-links a:hover { color: rgba(255,255,255,.75); }
.footer-contact { display: flex; flex-direction: column; gap: .45rem; }
.footer-contact-item { display: flex; align-items: flex-start; gap: .35rem; font-size: 10.5px; font-weight: 400; color: rgba(255,255,255,.5); }
.footer-contact-item em { color: var(--gold); flex-shrink: 0; }
.footer-divider { border: none; border-top: 1px solid rgba(255,255,255,.1); max-width: var(--container); margin: 0 auto; }
.footer-legal { background: rgba(0,0,0,.22); text-align: center; padding: .6rem 1.375rem; font-size: 10px; font-weight: 400; color: rgba(255,255,255,.32); line-height: 1.85; }

/* =============================================
   DESKTOP ENHANCEMENTS
   ============================================= */
@media (min-width: 1100px) {
  .site-header {
    padding: 0 2.5rem;
    gap: 2rem;
  }

  .site-branding {
    min-width: 280px;
  }

  .header-site-name {
    font-size: 14px;
  }

  .header-site-sub {
    font-size: 9px;
  }

  .primary-menu {
    gap: .15rem;
  }

  .primary-menu .menu-item > a {
    padding: 0 1rem;
  }

  .header-search input[type="search"] {
    width: 210px;
  }

  .site-hero {
    padding: 1.35rem 2.5rem 1.25rem;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 3.5rem;
    text-align: left;
    min-height: 280px;
  }

  .hero-content {
    flex: 1 1 620px;
    max-width: 680px;
    align-items: flex-start;
  }

  .hero-eyebrow {
    align-self: flex-start;
    margin-bottom: .7rem;
  }

  .hero-title {
    font-size: 32px;
    line-height: 1.22;
    margin-bottom: .6rem;
  }

  .hero-desc {
    font-size: 14px;
    max-width: 560px;
    line-height: 1.8;
    margin-bottom: 1rem;
  }

  .hero-actions,
  .hero-chips {
    justify-content: flex-start;
  }

  .hero-actions {
    margin-bottom: .85rem;
  }

  .hero-chips {
    gap: .5rem;
    max-width: 560px;
  }

  .chip {
    font-size: 10.5px;
    padding: .3rem .75rem;
  }

  .hero-latest {
    display: block;
    width: min(420px, 34vw);
    min-width: 360px;
    background: rgba(255,255,255,.94);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    position: relative;
    z-index: 2;
    align-self: center;
  }

  .hlw-head {
    padding: .85rem 1rem;
    font-size: 10px;
  }

  .hlw-list {
    padding: .75rem;
  }

  .hlw-item {
    grid-template-columns: 58px 1fr;
    gap: .8rem;
    padding: .8rem .45rem;
  }

  .hlw-thumb {
    width: 58px;
    height: 58px;
  }

  .hlw-cat {
    font-size: 10px;
    margin-bottom: .2rem;
  }

  .hlw-title {
    font-size: 12px;
    line-height: 1.45;
  }

  .hlw-date {
    font-size: 10px;
    margin-top: .3rem;
  }

  .prof-banner {
    padding: 1.15rem 2.5rem;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    text-align: left;
    gap: 2.5rem;
  }

  .pb-left {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 1.1rem;
    width: min(100%, 920px);
    flex: 0 1 auto;
    text-align: left;
  }

  .pb-left > div:last-child {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .pb-title {
    font-size: 15px;
    margin-bottom: .35rem;
  }

  .pb-desc {
    font-size: 11px;
    line-height: 1.7;
    max-width: 760px;
  }

  .pb-stat {
    padding: .85rem 1.45rem;
    min-width: 112px;
  }

  .pb-stats {
    flex: 0 0 auto;
    justify-content: flex-start;
  }

  .info-bar {
    justify-content: center;
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .site-main-layout {
    grid-template-columns: minmax(0, 1fr) var(--sidebar-w);
    gap: 2rem;
    padding: 1.2rem 2rem 3.5rem;
  }

  .posts-grid {
    grid-template-columns: 1fr;
  }

  .posts-section {
    margin-bottom: 1.6rem;
  }

  .posts-grid {
    gap: 1.2rem;
  }

  .post-thumb {
    height: 190px;
  }

  .post-body {
    padding: 1rem 1rem .95rem;
  }

  .post-title {
    font-size: 15px;
  }

  .post-excerpt {
    font-size: 12px;
  }

  .site-sidebar {
    position: sticky;
    top: calc(var(--header-h) + 2rem);
  }

  .footer-main {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

@media (min-width: 1440px) {
  .hero-watermark {
    right: 360px;
    font-size: 6.5rem;
  }
}
