/* =========================================================
   신승건의 서재 - Additional CSS (링크 밑줄 정책 정리 버전)
   목표
   1) 포스트/아카이브 제목: 밑줄 없음
   2) 사이트 타이틀: 밑줄 없음
   3) 푸터(사이트 정보/저작권 영역): 밑줄 없음
   4) 포스트/페이지 본문 링크: 밑줄 유지

   추가 목표
   A) 헤더는 fixed 유지
   B) 포스트 커버(nv-post-cover)는 흰 띠 없이 시작
   C) 홈페이지는 헤더 아래 여백을 조금만 남기되 모바일에서 더 줄임
   ========================================================= */


/* ===== 0. 기본 원칙: 본문 링크는 밑줄 유지 ===== */
/* 본문(글/페이지 내용)에서만 밑줄을 강제 */
.single-post .entry-content a,
.page .entry-content a,
.single-post .entry-content a:hover,
.page .entry-content a:hover,
.single-post .entry-content a:focus,
.page .entry-content a:focus {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
/* NOTE: :visited에서 text-decoration 변경은 브라우저 보안 정책상 무시되므로 제거 */


/* ===== 1. 헤더 영역(사이트 타이틀 포함): 밑줄 제거 ===== */
header.header a,
.site-title a,
.site-branding a {
  text-decoration: none !important;
}


/* ===== 2. 포스트/목록 제목 링크: 밑줄 제거 ===== */
.entry-title a,
.nv-post-title a,
.nv-post-title-wrap a,
.blog .nv-title a,
.archive .nv-title a {
  text-decoration: none !important;
}


/* ===== 3. 푸터 사이트 정보 영역: 밑줄 제거 (링크는 유지하되 밑줄만 제거) ===== */
/* Neve/WordPress.com에서 흔히 쓰는 푸터 선택자들을 함께 커버 */
footer a,
.footer a,
.site-footer a,
.nv-footer a,
.nv-footer-content a,
.footer-bottom a,
.nv-footer-bottom a,
.site-info a {
  text-decoration: none !important;
}


/* ===== 본문 정렬 ===== */
.type-post p {
  text-align: justify;
}

/* 모바일 가독성 보정 */
@media (max-width: 768px) {
  .type-post p {
    text-align: left;
  }
}


/* ===== 태그 클라우드에서 특정 태그 제외 ===== */
.tag-link-61156,
.tag-link-581363990,
.tag-link-581373648,
.tag-link-581373650,
.tag-link-581373652,
.tag-link-581373654,
.tag-link-581373656,
.tag-link-581373658,
.tag-link-581373660,
.tag-link-581373662,
.tag-link-581373664,
.tag-link-581373666,
.tag-link-581373668,
.tag-link-581373670,
.tag-link-581373672,
.tag-link-581373674,
.tag-link-581373676 {
  display: none !important;
}


/* ===== 불필요 요소 숨김 ===== */
.likebtn-mlw-no-items,
.nv-page-title h1,
#scroll-to-top {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}


/* ===== Pagination 중앙 정렬 ===== */
ul.page-numbers {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding-left: 0;
  list-style: none;
  margin: 2em auto;
  row-gap: 8px;
}


/* =========================================================
   헤더 고정 + 상단 간격 정책
   1) 헤더는 fixed
   2) 기본(body padding-top)은 헤더 높이만큼만 준다
   3) 포스트(single-post)는 body padding-top을 0으로 만들고
      nv-post-cover에 padding-top을 줘서 흰 띠 없이 시작한다
   4) 홈/아카이브는 헤더 아래 여백을 유지하되 모바일에서 더 줄인다
   ========================================================= */

/* ===== Neve 헤더 fixed ===== */
header.header {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1100;
  background-color: #ffffff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

/* 기본 상단 보정 */
body {
  padding-top: 72px;
}

@media (max-width: 768px) {
  body {
    padding-top: 56px;
  }
}

/* (1) 홈페이지 헤더와 최상단 콘텐츠 간격 줄이기 */
/* 데스크톱: 약간만 */
.blog .nv-index-posts,
.archive .nv-index-posts {
  margin-top: 6px !important;
}

/* 모바일: 현재의 대략 절반 수준 목표 */
@media (max-width: 768px) {
  .blog .nv-index-posts,
  .archive .nv-index-posts {
    margin-top: 3px !important;
  }
}

/* (2) 포스트는 흰 띠 방지: body padding 제거 후 cover에 padding 부여 */
body.single-post {
  padding-top: 0;
}

body.single-post .nv-post-cover {
  margin-top: 0 !important;
  padding-top: 72px;
}

@media (max-width: 768px) {
  body.single-post .nv-post-cover {
    padding-top: 88px;
  }
}

/* 수정: + (인접 형제) → 일반 하위 선택자로 변경 (.neve-main이 형제가 아닐 수 있음) */
body.single-post .neve-main {
  margin-top: 0 !important;
}


/* ===== 플로팅 버튼 컨테이너 ===== */
#floating-buttons-container {
  position: fixed;
  bottom: 20px;
  left: 0;
  right: 0;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  z-index: 1200;
}


/* ===== 플로팅 버튼 기본 스타일 ===== */
.floating-button {
  position: relative;
  background: linear-gradient(135deg, #404248, #6a5acd);
  background-size: 200% 200%;
  background-position: 0% 50%;
  color: #fff;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 7px 20px;
  gap: 5px;
  box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.3);
  font-weight: bold;
  font-size: 16px;
  overflow: hidden;
  transition: background-position 0.8s ease, transform 0.2s ease-in-out;
}


/* ===== 광선 효과 ===== */
.floating-button::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -75%;
  width: 200%;
  height: 200%;
  background: linear-gradient(
    120deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.2) 40%,
    rgba(255, 255, 255, 0.6) 50%,
    rgba(255, 255, 255, 0.2) 60%,
    rgba(255, 255, 255, 0) 100%
  );
  transform: rotate(25deg);
  pointer-events: none;
  opacity: 0;
}

.floating-button.shine::before {
  animation: shineEffect 1.2s ease-in-out 1 forwards;
  opacity: 1;
}

@keyframes shineEffect {
  0% { transform: translateX(-100%) rotate(25deg); }
  100% { transform: translateX(100%) rotate(25deg); }
}


/* ===== 호버 효과 ===== */
.floating-button:hover {
  background-position: 100% 50%;
  transform: translateY(-3px);
}


/* ===== 아이콘 및 텍스트 ===== */
.floating-button i {
  font-size: 18px;
  margin-right: 4px;
}

.floating-button span {
  font-size: 16px;
  font-weight: bold;
}


/* ===== 반응형 ===== */
@media (max-width: 768px) {
  .floating-button {
    padding: 6px 9px;
    font-size: 15px;
  }

  .floating-button i {
    font-size: 16px;
  }
}

.mail-icon-wrapper {
  position: relative;
  display: inline-block;
}


/* ===== 사이트 타이틀·태그라인 간격 ===== */
.site-branding {
  margin-bottom: 0 !important;
}

.site-title {
  margin-bottom: 2px !important;
  line-height: 1.2 !important;
}

.site-description {
  margin-top: 0 !important;
  line-height: 1.2 !important;
}


/* ===== 상담 카테고리 메타 정보 숨김 ===== */
.single-post.category-consults .nv-meta-list,
.single-post.category-consults-en .nv-meta-list {
  display: none !important;
}


/* ===== 댓글 제목 숨김 ===== */
.comment-reply-title {
  display: none !important;
}


/* ===== 메타 정보 정렬 ===== */
ul.nv-meta-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}

ul.nv-meta-list a {
  color: inherit;
  text-decoration: none;
}

/* Visitor-comments block: spacing + divider */
#other-post-comments.opc-root{
  margin-top: 32px;
}

#other-post-comments.opc-root::before{
  content: "";
  display: block;
  height: 2px;
  background: var(--nv-border-color, #111);
  margin: 0 0 22px 0;
}

#other-post-comments.opc-root .nv-comments-title-wrap{
  margin: 0 0 6px 0;
}

/* ===== Logo vertical fine adjustment ===== */
.site-logo img {
    position: relative;
    top: -1px;
}

.site-title {
    position: relative;
    top: 1px;
}