/*
  변리사수험커뮤니티 디자인 리뉴얼 CSS v2
  - 광범위한 셀렉터 제거 → 에디터/댓글창 깨짐 방지
  - lsh- 전용 클래스, 헤더, 로그인 등 특정 영역만 안전하게 타겟
*/

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700;900&display=swap');

:root {
  --pr:       #8b1a1a;
  --pr-dark:  #5f0000;
  --pr-light: #b22222;
  --gold:     #c8960c;
  --gold-lt:  #f0c040;
  --g50:  #fafafa;
  --g100: #f4f4f4;
  --g200: #e8e8e8;
  --g300: #d0d0d0;
  --g500: #888;
  --g700: #444;
  --g900: #1a1a1a;
  --sh-lg: 0 8px 32px rgba(0,0,0,.15);
  --rad: 6px;
  --rad-lg: 12px;
  --ease: 0.2s ease;
}

/* 전역 폰트 */
body { font-family: 'Noto Sans KR', 'Nanum Gothic', sans-serif; }
a { transition: color var(--ease); }
a:hover { color: var(--pr); text-decoration: none; }

/* ===== 헤더 탑바 ===== */
.header .lsh-topbar { background: var(--pr-dark) !important; }
.header .lsh-topbar a,
.header .lsh-topbar span { color: rgba(255,255,255,.75) !important; font-size: 11px !important; }
.header .lsh-topbar a:hover { color: var(--gold-lt) !important; }

/* 헤더 전체 */
.header { background: #fff !important; border-bottom: none !important; box-shadow: 0 2px 10px rgba(0,0,0,.08) !important; }
.header .navbar-collapse.lsh-pc-logo { background: #fff !important; border-top: 3px solid var(--pr) !important; border-bottom: 1px solid var(--g200) !important; }
.header .navbar-collapse.lsh-pc-nav-wrapper { background: #fff !important; border-top: none !important; }
#lsh-pc-menu { background: #fff !important; }
#lsh-pc-menu ul li a { font-weight: 700 !important; color: var(--g700) !important; font-size: 14px !important; transition: color var(--ease) !important; }
#lsh-pc-menu ul li a:hover { color: var(--pr) !important; }

/* 검색 */
#sch_stx, #sch_stx_m { border: 1px solid var(--g300) !important; }
#sch_stx:focus, #sch_stx_m:focus { border-color: var(--pr) !important; outline: none !important; }
#sch_submit, #sch_submit_m { background: var(--pr) !important; color: #fff !important; border: none !important; }
#sch_submit:hover, #sch_submit_m:hover { background: var(--pr-dark) !important; }
.span-search .fa { color: var(--pr) !important; }

/* ===== 메인 슬라이더 ===== */
.swiper-container .swiper-slide { background: linear-gradient(135deg, var(--pr-dark) 0%, var(--pr) 65%, #a83232 100%) !important; }
.swiper-container .swiper-slide .slide-txt-wrap p.txt-main-title { font-size: 40px !important; font-weight: 900 !important; letter-spacing: 0.03em !important; }
.swiper-container .swiper-slide .slide-txt-wrap p.txt-sub-title { color: var(--gold-lt) !important; }
.swiper-container .swiper-more-btn { border: 1.5px solid var(--gold) !important; color: var(--gold-lt) !important; border-radius: var(--rad) !important; transition: background var(--ease), color var(--ease) !important; }
.swiper-container .swiper-more-btn:hover { background: var(--gold) !important; color: #111 !important; }
.swiper-container .swiper-pagination-bullet { background: rgba(255,255,255,.4) !important; opacity: 1 !important; }
.swiper-container .swiper-pagination-bullet-active { background: #fff !important; }

/* ===== 메인 섹션 제목 ===== */
.section-block.bg-gray { background: #efefef !important; }
.block-title { font-size: 24px !important; font-weight: 900 !important; letter-spacing: -0.02em; }
.block-subtitle { font-size: 13px !important; color: var(--g500) !important; }

/* ===== 게시판 목록 (lsh-board-list-wrap 스코프) ===== */
.lsh-board-list-wrap .table > thead > tr > th {
  background: var(--g100) !important;
  color: var(--g700) !important;
  border-top: 2px solid var(--pr) !important;
  border-bottom: 1px solid var(--g300) !important;
  font-weight: 700 !important;
}
.lsh-board-list-wrap .table > tbody > tr:hover > td { background: rgba(139,26,26,.04) !important; }
.lsh-board-list-wrap .table > tbody > tr > td a { color: var(--g900) !important; transition: color var(--ease); }
.lsh-board-list-wrap .table > tbody > tr > td a:hover { color: var(--pr) !important; }
.lsh-board-list-wrap .pagination > li > a,
.lsh-board-list-wrap .pagination > li > span { color: var(--g700) !important; border-color: var(--g200) !important; border-radius: var(--rad) !important; margin: 0 2px !important; transition: all var(--ease) !important; }
.lsh-board-list-wrap .pagination > .active > a,
.lsh-board-list-wrap .pagination > li > a:hover { background: var(--pr) !important; border-color: var(--pr) !important; color: #fff !important; }

/* ===== 게시글 뷰 (lsh-board-view-wrap 스코프) ===== */
.lsh-board-view-wrap .lsh-board-view-subject { font-size: 1.35em !important; font-weight: 800 !important; color: var(--g900) !important; }
.lsh-board-view-wrap .btn-default { border-color: var(--g200) !important; color: var(--g700) !important; border-radius: var(--rad) !important; transition: all var(--ease) !important; }
.lsh-board-view-wrap .btn-default:hover { background: var(--g100) !important; }
.lsh-board-view-wrap .btn-success { background: var(--pr) !important; border-color: var(--pr-dark) !important; border-radius: var(--rad) !important; }
.lsh-board-view-wrap .btn-success:hover { background: var(--pr-dark) !important; }

/* ===== 로그인 페이지 (#login_page 스코프) ===== */
#login_page { background: var(--g100); padding: 48px 0 !important; }
.lsh-login-box1 { background: #fff !important; border: none !important; border-radius: var(--rad-lg) !important; box-shadow: var(--sh-lg) !important; padding: 36px 32px !important; position: relative; overflow: hidden; }
.lsh-login-box1::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--pr), var(--gold)); }
.reg-header h2 { font-size: 20px !important; font-weight: 900 !important; color: var(--g900) !important; margin: 4px 0 20px !important; }
.lsh-login-note { font-size: 12px !important; color: var(--g500) !important; margin-bottom: 5px !important; }
.lsh-login-note strong { color: var(--pr) !important; }
#login_page .input-group-addon { background: var(--g100) !important; border-color: var(--g200) !important; color: var(--pr) !important; }
#login_page .frm_input { border-color: var(--g200) !important; height: 40px !important; font-size: 14px !important; background: #fff !important; color: var(--g900) !important; transition: border-color var(--ease) !important; }
#login_page .frm_input:focus { border-color: var(--pr) !important; box-shadow: 0 0 0 3px rgba(139,26,26,.1) !important; outline: none !important; }
#login_page .btn-login { background: linear-gradient(135deg, var(--pr) 0%, var(--pr-dark) 100%) !important; color: #fff !important; border: none !important; border-radius: var(--rad) !important; font-size: 15px !important; font-weight: 700 !important; padding: 10px 28px !important; box-shadow: 0 4px 12px rgba(139,26,26,.25) !important; transition: all var(--ease) !important; }
#login_page .btn-login:hover { box-shadow: 0 6px 18px rgba(139,26,26,.35) !important; transform: translateY(-1px) !important; }
#login_page .checkbox label { font-size: 13px !important; color: var(--g500) !important; }
.lsh-login-box2 { background: var(--g50) !important; border: 1px solid var(--g200) !important; border-radius: var(--rad) !important; padding: 18px 20px !important; }
.lsh-login-box2 h3 { font-size: 13px !important; font-weight: 700 !important; color: var(--g700) !important; }
.lsh-login-box2 p { font-size: 12px !important; color: var(--g500) !important; line-height: 1.8 !important; }
.lsh-login-box2-btn a { color: var(--pr) !important; font-size: 12px !important; font-weight: 600 !important; }
.lsh-btn-gomain { background: var(--pr) !important; color: #fff !important; border-radius: var(--rad) !important; padding: 10px 24px !important; font-weight: 700 !important; display: inline-block !important; transition: background var(--ease) !important; }
.lsh-btn-gomain:hover { background: var(--pr-dark) !important; color: #fff !important; }
.btn_confirm { text-align: center !important; margin-bottom: 40px !important; }

/* ===== 회원가입 (#fregister 스코프만) ===== */
.btn-mb.regi { background: var(--pr) !important; border-radius: var(--rad) !important; }
.btn-mb.find { background: var(--g700) !important; border-radius: var(--rad) !important; }
#fregister input[type="submit"],
#fregister button[type="submit"] { background: linear-gradient(135deg, var(--pr) 0%, var(--pr-dark) 100%) !important; color: #fff !important; border: none !important; border-radius: var(--rad) !important; padding: 11px 40px !important; font-size: 15px !important; font-weight: 700 !important; box-shadow: 0 4px 12px rgba(139,26,26,.25) !important; cursor: pointer !important; transition: all var(--ease) !important; }
#fregister input[type="submit"]:hover { transform: translateY(-1px) !important; }

/* ===== 푸터 ===== */
footer, .footer, #footer { background: var(--g900) !important; border-top: 3px solid var(--pr) !important; padding: 24px 0 !important; }
footer p, .footer p, #footer p { color: var(--g500) !important; font-size: 12px !important; }
footer a, .footer a, #footer a { color: var(--g300) !important; }
footer a:hover, .footer a:hover, #footer a:hover { color: var(--gold-lt) !important; }

/* ===== 공통 ===== */
.fa-heart, .fa-heart-o { color: var(--pr) !important; }

/* ===== 반응형 ===== */
@media (max-width: 767px) {
  .header .lsh-topbar { padding: 4px 0 !important; }
  #login_page { padding: 24px 0 !important; }
  .lsh-login-box1 { border-radius: var(--rad) !important; padding: 24px 16px !important; }
  .swiper-container .swiper-slide .slide-txt-wrap p.txt-main-title { font-size: 26px !important; letter-spacing: 0.01em !important; }
}

/* ===== 페이드인 ===== */
.wrapper { animation: jhj-fade .3s ease both; }
@keyframes jhj-fade { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
::selection { background: rgba(139,26,26,.15); }