/*
Theme Name: KSENS Astra Child v2
Theme URI: https://ksens.example.org
Description: 응급간호학회(KSENS) 홈페이지를 위한 Astra 자식 테마. 네이비 브랜드 컬러, 드롭다운 메뉴, 학회소개/임원진/연혁/학술지 레이아웃을 포함합니다.
Author: KSENS
Template: astra
Version: 1.5.0
Text Domain: ksens-astra-child-v2
*/

/* =========================================================
   0. 브랜드 컬러 변수 (첨부 디자인 시안 기준)
========================================================= */
:root {
    --ksens-primary: #0f2453;      /* 메인 네이비 */
    --ksens-primary-hover: #081430;
    --ksens-accent: #e61919;       /* 로고 포인트 레드 */
    --ksens-orcid: #A6CE39;
}
/* 0) 100vw 사용 시 스크롤바 폭으로 인한 미세한 가로 밀림/잘림 방지 */
html, body {
  overflow-x: hidden;
}
/* =========================================================
   1. 상단 로고 바 (학회 영문/국문 로고 조합)
   -> 워드프레스 커스텀 로고 대신, 사이트 제목 위치에 아래 마크업을 사용
      (header.php 오버라이드 또는 커스텀 HTML 위젯에 사용)
========================================================= */
.ksens-logo { display: flex; align-items: center; text-decoration: none; }
/* KSENS 공식 로고 규정 문서(국문 가로형 기본형) 기준으로 정확히 재현:
   - "KSENS" : Pretendard ExtraBold, 17pt, 검정(#000000) - 색상 강조 없음 (E만 빨간색으로 넣었던 이전 버전은 규정 위반이었음, 수정함)
   - "|" 구분선 : Pretendard ExtraLight, 15pt, 검정(#000000)
   - "응급간호학회" : Pretendard ExtraBold, 13pt, 검정(#000000)
   Pretendard 폰트가 서버에 없을 경우를 대비해 유사한 굵은 산세리프체를 대체 폰트로 지정 */
/* 로고 규정 (rogo-gyujeong 문서, 1-1 국문 가로형 기본형) 정확 반영:
   - "KS"+"NS": Pretendard ExtraBold, 17pt, Italic, 자간 20%, 장평 90%, 네이비 #061E58
   - "E"(가운데 글자만): 위와 동일하나 색상만 레드 #E90301
   - "|" 구분선: Pretendard ExtraLight, 15pt, Normal, 장평 90%, 네이비 #061E58
   - "응급간호학회": Pretendard SemiBold, 13pt, Normal, 자간 10%, 장평 90%, 네이비 #061E58
   포인트 크기는 화면 표시용으로 비율을 유지해 확대 적용 (17pt : 13pt : 15pt 비율 유지) */
.ksens-logo .en-part { font-family: 'Pretendard', 'Pretendard Variable', Arial, Helvetica, sans-serif; font-size: 30px; font-weight: 800; font-style: italic; color: #061E58; letter-spacing: 0.5px; transform: scaleX(0.9); display: inline-block; }
.ksens-logo .en-part .red-e { color: #E90301; font-style: italic; font-weight: 800; }
.ksens-logo .divider { font-family: 'Pretendard', 'Pretendard Variable', Arial, sans-serif; font-size: 26px; color: #061E58; margin: 0 10px; font-weight: 200; font-style: normal; transform: scaleX(0.9); display: inline-block; }
.ksens-logo .kr-part { font-family: 'Pretendard', 'Pretendard Variable', 'Malgun Gothic','맑은 고딕', sans-serif; font-size: 22px; font-weight: 600; color: #061E58; letter-spacing: 0.2px; font-style: normal; transform: scaleX(0.9); display: inline-block; }

/* =========================================================
   1-1. 상단 큰 바 (로고 + 로그인/회원가입) : 흰 배경
        functions.php 의 ksens_render_top_bar() 가 <body> 직후에 출력하는 마크업
        원본 시안의 .top-bar 와 완전히 동일한 구조
========================================================= */
.ksens-top-bar { background-color: #f8f9fa; border-bottom: 1px solid #e0e0e0; }
.ksens-top-bar-inner { display: flex; justify-content: space-between; align-items: center; padding: 15px 50px; max-width: 1400px; margin: 0 auto; }

/* 로그인/회원가입/마이페이지/관리자 유틸리티 링크 (흰 바 오른쪽) */
.ast-header-utility-menu { display: flex; align-items: center; }
.ast-header-utility-menu ul { display: flex; gap: 15px; list-style: none; margin: 0; padding: 0; font-size: 13px; align-items: center; }
.ast-header-utility-menu a { color: #333; text-decoration: none; }
.ast-header-utility-menu a:hover { color: var(--ksens-primary); }
.btn-orcid { background-color: var(--ksens-orcid); color: #fff !important; padding: 5px 12px; border-radius: 4px; font-weight: bold; }

/* Astra 기본 헤더의 사이트 제목/로고/커스텀 로고 자리는 중복되므로 숨김
   (로고는 이제 .ksens-top-bar 안의 .ksens-logo 로만 표시)
   실제 라이브 사이트 조사 결과, 워드프레스 커스터마이저에 등록된 "사용자 정의 로고"
   이미지(.custom-logo, .site-logo-img)가 이 규칙보다 우선 적용되는 경우가 있어
   각 하위 요소도 명시적으로 한 번 더 숨겨 확실하게 처리합니다 */
.site-branding,
.ast-site-identity,
.site-header-primary-section-left .site-branding,
.site-logo-img,
.custom-logo-link,
.custom-logo,
.ast-site-title-wrap,
.site-title { display: none !important; }

/* Astra 기본 푸터 줄 ("저작권 © ... | 제공처: 아스트라 워드프레스 테마" 문구) 숨김
   우리가 만든 .ksens-footer 가 이미 저작권 문구를 포함하고 있으므로 Astra 기본 문구는 불필요
   (실제 라이브 사이트 조사 결과, 이 테마 버전은 .ast-small-footer 가 아니라 Footer Builder 방식인
    .site-below-footer-wrap > .ast-footer-copyright 구조를 사용하는 것으로 확인되어 정확한 선택자로 교체) */
.ast-small-footer,
.footer-sml-layout-1,
#footer-widget-area + .ast-small-footer,
.site-below-footer-wrap,
.ast-footer-copyright { display: none !important; }

/* =========================================================
   2. Astra 메인 메뉴(드롭다운 포함)를 네이비 톤으로 재도색
   -> 이 섹션 전체를 PC 화면(922px 이상) 전용으로 한정합니다.
========================================================= */
@media (min-width: 922px) {
  .main-header-bar,
  .ast-primary-header-bar { background-color: var(--ksens-primary) !important; border-bottom: none !important; }

  /* 메뉴 전체를 중앙 정렬 */
  .ast-primary-header-bar .site-header-primary-section-left { display: none !important; }
  .ast-primary-header-bar .ast-builder-grid-row-has-sides { justify-content: center !important; }
  .ast-primary-header-bar .ast-container,
  .ast-primary-header-bar .site-header-primary-section-right { width: 100% !important; max-width: 100% !important; flex: 1 1 100% !important; justify-content: center !important; }
  .ast-primary-header-bar .main-header-bar-navigation,
  .ast-primary-header-bar .main-navigation,
  .main-header-bar-navigation .main-header-menu { justify-content: center !important; width: 100%; display: flex !important; }

  /* 메뉴바 높이 46px로 축소 */
  .ast-primary-header-bar .site-primary-header-wrap { min-height: 46px !important; }
  .main-header-bar,
  .ast-primary-header-bar { height: 46px !important; min-height: 46px !important; }

  .main-header-bar-navigation { height: 46px !important; }

  .main-header-bar-navigation ul.main-header-menu,
  .main-header-bar-navigation ul.main-header-menu > li.menu-item,
  .main-header-bar-navigation ul.main-header-menu > li.menu-item > a.menu-link { height: 46px !important; }

  /* 메뉴 항목 간격과 색상 */
  .main-header-menu > .menu-item > a,
  .ast-primary-header-bar .main-header-menu > .menu-item > a { color: #fff !important; font-weight: 600; padding: 12px 32px !important; line-height: 1.4 !important; }
  .main-header-menu > .menu-item:hover > a,
  .main-header-menu > .current-menu-item > a { background-color: var(--ksens-primary-hover) !important; color: #fff !important; }
  .main-header-menu .sub-menu { background-color: #fff !important; border: 1px solid #ddd !important; min-width: 210px; }
  .main-header-menu .sub-menu .menu-item a { color: #333 !important; padding: 12px 20px !important; font-size: 14px !important; font-weight: 400 !important; }
  .main-header-menu .sub-menu .menu-item a:hover { background-color: #f8f9fa !important; color: var(--ksens-primary) !important; font-weight: bold; }

  /* 드롭다운 화살표 숨김 (PC는 hover로만 드롭다운 열림) */
  .main-header-menu .dropdown-menu-toggle,
  .main-header-menu .ast-header-navigation-arrow,
  .main-header-menu .menu-item > .sub-arrow,
  .main-header-menu button.ast-mobile-menu-trigger-child-menu { display: none !important; }
}

/* =========================================================
   2-1. 모바일 상단 고정 바(로고 + 햄버거 아이콘)를
        다시 네이비 톤 + 46px 낮은 높이로 되돌림

   중요: 이 규칙은 .main-header-bar, .ast-primary-header-bar
        (상단 가로 바 자체)에만 적용되며,
        .main-header-menu, .sub-menu 등 오프캔버스 펼침 메뉴
        내부 요소는 전혀 건드리지 않습니다.
        따라서 방금 해결된 "하위메뉴 아코디언 정상 작동"에는
        영향을 주지 않습니다.

   적용 위치: style.css의 "2. Astra 메인 메뉴" 섹션
        (PC 전용 @media (min-width: 922px) 블록) 바로 다음에
        아래 블록을 새로 추가해 주세요.
========================================================= */
@media (max-width: 921px) {
  .main-header-bar,
  .ast-primary-header-bar {
    background-color: var(--ksens-primary) !important;
    border-bottom: none !important;
  }

  .ast-primary-header-bar .site-primary-header-wrap {
    min-height: 46px !important;
  }

  .main-header-bar,
  .ast-primary-header-bar {
    height: 46px !important;
    min-height: 46px !important;
  }
}

/* =========================================================
   3. 히어로 슬라이더 영역 (홈페이지 상단 배너, Slick Slider 등과 함께 사용)
========================================================= */
.ksens-hero-slider {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  max-width: 100vw;
  height: 400px;
  overflow: hidden;
  background-color: #2c3e50;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
}
.ksens-hero-slider .ksens-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease-in-out; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; color: #fff; background-size: cover; background-position: center; }
.ksens-hero-slider .ksens-slide.is-active { opacity: 1; }
.ksens-hero-slider .ksens-slide::before { content: ''; position: absolute; inset: 0; background: rgba(15, 36, 83, .6); z-index: 1; }
.ksens-hero-slider .ksens-slide-content { position: relative; z-index: 2; padding: 0 20px; }
.ksens-hero-slider .ksens-slide-content h2 { font-size: 36px; margin-bottom: 10px; color: #fff; }
.ksens-hero-slider .ksens-slide-content p { font-size: 18px; color: #fff; }

/* =========================================================
   4. 검색 바
========================================================= */
.ksens-search-section {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  max-width: 100vw;
  background-color: #f1f5f9;
  padding: 30px 20px;
  text-align: center;
  border-bottom: 1px solid #e2e8f0;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
}
.ksens-search-section .ksens-search-box { max-width: 800px; margin-left: auto; margin-right: auto; }
.ksens-search-box { max-width: 800px; margin: 0 auto; display: flex; gap: 10px; align-items: stretch; }
.ksens-search-box select, .ksens-search-box input, .ksens-search-box button { padding: 12px; font-size: 15px; border: 1px solid #cbd5e1; border-radius: 4px; height: 46px; box-sizing: border-box; }
.ksens-search-box select { width: auto; min-width: 170px; padding: 0 28px 0 14px; line-height: normal; -webkit-appearance: menulist; appearance: menulist; }
.ksens-search-box input { flex: 1; }
.ksens-search-box button { background-color: var(--ksens-primary); color: #fff; border: none; cursor: pointer; width: 100px; font-weight: bold; }

/* =========================================================
   5. 홈 하단 2단 콘텐츠 (공지사항 + 학회 일정 달력)
========================================================= */
.ksens-home-content, .ksens-home-grid { max-width: 1200px; margin: 40px auto; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding: 0 20px; }
/* 홈 화면의 맨 마지막 섹션(공지사항/학회일정)이라, 바로 아래 푸터(네이비)와 너무 붙어 보이지 않도록
   하단 여백을 별도로 더 크게 확보 */
.ksens-home-grid { margin-bottom: 100px; }
.ksens-section-title, .ksens-home-col-title { font-size: 20px; color: var(--ksens-primary); border-bottom: 2px solid var(--ksens-primary); padding-bottom: 16px; margin-bottom: 20px; display: flex; justify-content: space-between; align-items: flex-end; }
.ksens-section-title a, .ksens-home-col-title a { font-size: 13px; color: #666; font-weight: normal; }
.ksens-notice-list, .ksens-home-notice-list { list-style: none; padding: 0; margin: 0; }
.ksens-notice-list li, .ksens-home-notice-list li { padding: 12px 0; border-bottom: 1px dashed #ddd; display: flex; justify-content: space-between; font-size: 14px; gap: 10px; }
.ksens-notice-list li a:hover { text-decoration: underline; color: var(--ksens-primary); }
.ksens-home-notice-list li a,
.ksens-home-notice-list li a:link,
.ksens-home-notice-list li a:visited {
    color: #333 !important;
    text-decoration: none !important;
}
.ksens-home-notice-list li a:hover {
    color: var(--ksens-primary) !important;
    text-decoration: none !important;
}
.ksens-home-notice-list li.is-empty { color: #888; justify-content: flex-start; }
.ksens-home-notice-date { color: #888; font-size: 13px; white-space: nowrap; }
.ksens-calendar-mini { max-width: 100%; }
.ksens-notice-date { color: #888; font-size: 13px; }

/* =========================================================
   6. 서브페이지 공통 레이아웃 (사이드바 + 콘텐츠)
========================================================= */
.ksens-subpage { display: flex; max-width: 1200px; margin: 40px auto; padding: 0 20px; min-height: 500px; gap: 40px; }
.ksens-sidebar { width: 220px; flex-shrink: 0; }
.ksens-sidebar h2 { background-color: var(--ksens-primary); color: #fff; padding: 20px 15px; margin: 0; font-size: 18px; text-align: center; }
.ksens-sidebar ul { list-style: none; padding: 0; margin: 0; border: 1px solid #ddd; border-top: none; }
.ksens-sidebar li {
    height: 46px;
    min-height: 46px;
    max-height: 46px;
    overflow: hidden;
    border-bottom: 1px solid #eee;
    box-sizing: border-box;
}
.ksens-sidebar a {
    display: flex;
    align-items: center;
    height: 46px;
    min-height: 46px;
    max-height: 46px;
    padding: 0 20px;
    color: #555;
    font-size: 14px;
    transition: .2s;
    box-sizing: border-box;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ksens-sidebar a:hover, .ksens-sidebar a.active-menu { background-color: #f8f9fa; color: var(--ksens-primary); font-weight: bold; padding-left: 25px; border-left: 3px solid var(--ksens-primary); }
.ksens-subpage-content { flex-grow: 1; }
.ksens-page-title { font-size: 28px; color: #222; margin-top: 0; margin-bottom: 30px; padding-bottom: 15px; border-bottom: 2px solid #222; }

/* =========================================================
   7. 학회소개: 미션/비전 카드
========================================================= */
.ksens-vision-box { background: #f8f9fa; padding: 30px; border-radius: 8px; text-align: center; margin-bottom: 30px; border: 1px solid #e9ecef; }
.ksens-vision-box h3 { color: var(--ksens-primary); margin-top: 0; font-size: 22px; }
.ksens-core-values { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; margin-top: 30px; }
.ksens-value-card { background: #fff; border: 1px solid #ddd; padding: 20px; text-align: center; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,.05); }
.ksens-value-card h4 { color: var(--ksens-primary); margin: 0 0 10px; font-size: 18px; }

/* =========================================================
   8. 인사말
========================================================= */
.ksens-greeting-wrap { display: flex; gap: 30px; align-items: flex-start; }
.ksens-president-img { width: 250px; height: 320px; background-color: #ddd; border-radius: 8px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: #777; font-size: 14px; object-fit: cover; }
.ksens-greeting-text p { margin-bottom: 15px; font-size: 16px; line-height: 1.8; color: #444; }
.ksens-signature { margin-top: 40px; font-size: 18px; font-weight: bold; text-align: right; }

/* =========================================================
   9. 연혁 타임라인
========================================================= */
.ksens-history-timeline { border-left: 3px solid var(--ksens-primary); padding-left: 30px; margin-left: 20px; position: relative; }
.ksens-history-item { margin-bottom: 40px; position: relative; }
.ksens-history-item::before { content: ''; position: absolute; left: -38.5px; top: 0; width: 14px; height: 14px; background: #fff; border: 3px solid var(--ksens-primary); border-radius: 50%; }
.ksens-history-year { font-size: 24px; font-weight: bold; color: var(--ksens-primary); margin-bottom: 10px; line-height: 1; }
.ksens-history-desc { font-size: 16px; color: #333; margin: 0; }

/* =========================================================
   10. 임원진 조직도
========================================================= */
.ksens-org-chart { margin-top: 30px; display: flex; flex-direction: column; align-items: center; }
.ksens-org-card { background: #fff; border: 2px solid var(--ksens-primary); border-radius: 6px; width: 180px; padding: 15px; text-align: center; box-shadow: 0 4px 6px rgba(0,0,0,.05); }
.ksens-org-role { font-size: 14px; font-weight: bold; color: var(--ksens-primary); margin-bottom: 5px; }
.ksens-org-name { font-size: 16px; color: #333; }
.ksens-org-connector { width: 2px; height: 35px; background-color: var(--ksens-primary); margin: 0 auto; }
.ksens-org-top-tier { display: grid; grid-template-columns: 1fr auto 1fr; width: 100%; max-width: 900px; }
.ksens-org-center-tier { display: flex; flex-direction: column; align-items: center; }
.ksens-org-right-tier { display: flex; flex-direction: column; align-items: flex-start; padding-left: 40px; gap: 35px; }
.ksens-org-directors { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; justify-items: center; width: 100%; max-width: 750px; margin: 0 auto; }

/* =========================================================
   10-1. 학회일정 달력 (page-schedule / [ksens_schedule_calendar])
========================================================= */
.ksens-calendar-wrap { border: 1px solid #ddd; border-radius: 8px; overflow: hidden; max-width: 500px; margin: 0 auto; }
.ksens-calendar-header { background-color: #f8f9fa; padding: 15px; text-align: center; font-weight: bold; border-bottom: 1px solid #ddd; display: flex; align-items: center; justify-content: space-between; }
.ksens-calendar-header span { flex: 1; }
.ksens-cal-nav { color: var(--ksens-primary); font-weight: bold; padding: 4px 12px; border-radius: 4px; }
.ksens-cal-nav:hover { background-color: #eef2f5; }
.ksens-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; }
.ksens-cal-day-name { background-color: #eef2f5; padding: 10px 0; font-size: 13px; color: #555; }
.ksens-cal-day-name.is-sun { color: #e74c3c; }
.ksens-cal-day-name.is-sat { color: var(--ksens-primary); }
.ksens-cal-day { padding: 15px 0; border-bottom: 1px solid #eee; border-right: 1px solid #eee; font-size: 14px; }
.ksens-cal-day.is-empty { background-color: #fafafa; }
.ksens-cal-day.is-sun { color: #e74c3c; }
.ksens-cal-day.is-sat { color: var(--ksens-primary); }
.ksens-has-event { background-color: var(--ksens-primary); color: #fff !important; font-weight: bold; border-radius: 50%; width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; margin: 0 auto; cursor: pointer; text-decoration: none; }
.ksens-schedule-list { max-width: 700px; margin: 30px auto 0; }
.ksens-schedule-list-title { font-size: 18px; color: var(--ksens-primary); border-bottom: 2px solid var(--ksens-primary); padding-bottom: 10px; margin-bottom: 15px; }
.ksens-schedule-item { padding: 18px; border: 1px solid #ddd; margin-bottom: 15px; border-radius: 8px; border-left: 5px solid var(--ksens-primary); background: #fff; }
.ksens-schedule-date { color: var(--ksens-primary); font-weight: bold; font-size: 14px; margin-bottom: 6px; }
.ksens-schedule-title { font-size: 17px; font-weight: bold; color: #222; margin-bottom: 6px; }
.ksens-schedule-desc { font-size: 14px; color: #555; line-height: 1.6; }

/* =========================================================
   11. 공통 게시판 테이블 (bbPress/Members 게시판을 이 스타일로 감싸기)
========================================================= */
.ksens-board-table { width: 100%; border-collapse: collapse; margin-top: 20px; text-align: center; font-size: 14px; }
.ksens-board-table th { background-color: #f8f9fa; border-top: 2px solid var(--ksens-primary); border-bottom: 1px solid #ddd; padding: 15px 10px; font-weight: bold; }
.ksens-board-table td { padding: 12px 10px; border-bottom: 1px solid #eee; }
.ksens-board-table .txt-left { text-align: left; }
.ksens-board-table .txt-left a:hover { color: var(--ksens-primary); text-decoration: underline; }
.ksens-board-write-btn { padding: 10px 24px; font-size: 14px; font-weight: bold; border-radius: 6px; background-color: var(--ksens-primary); color: #fff; border: none; cursor: pointer; }
.ksens-board-write-btn:hover { background-color: var(--ksens-primary-hover); }

/* =========================================================
   12. 로그인 / 회원가입 폼 (Members/User Registration 플러그인 폼을 이 클래스로 감싸기)
========================================================= */
.ksens-auth-container { max-width: 450px; margin: 60px auto; padding: 40px; background: #fff; border-radius: 12px; box-shadow: 0 10px 25px rgba(0,0,0,.05); border: 1px solid #eaeaea; }
.ksens-auth-title { text-align: center; color: var(--ksens-primary); font-size: 26px; margin-bottom: 30px; font-weight: 800; letter-spacing: -.5px; }
.ksens-auth-container .form-row input,
.ksens-auth-container .form-row select { width: 100%; padding: 14px; border: 1px solid #cbd5e1; border-radius: 6px; font-size: 14px; }
.ksens-auth-container button[type="submit"],
.ksens-auth-container input[type="submit"] { width: 100%; padding: 15px; background-color: var(--ksens-primary); color: #fff; border: none; border-radius: 6px; font-size: 16px; font-weight: bold; cursor: pointer; margin-top: 10px; }
.ksens-auth-container button[type="submit"]:hover,
.ksens-auth-container input[type="submit"]:hover { background-color: var(--ksens-primary-hover); }

/* =========================================================
   13. 마이페이지 대시보드 카드 (역할별)
========================================================= */
.ksens-dashboard-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 25px 0; }
.ksens-dash-card { background: #fff; border: 1px solid #dbe3ef; border-radius: 10px; padding: 20px; box-shadow: 0 3px 10px rgba(15,36,83,.05); }
.ksens-dash-card h4 { margin: 0 0 8px; color: var(--ksens-primary); font-size: 14px; }
.ksens-dash-value { font-size: 28px; font-weight: 800; color: #172b4d; }
.ksens-dash-sub { font-size: 12px; color: #64748b; }
.ksens-permission-note { padding: 12px 14px; background: #f8fafc; border-left: 4px solid var(--ksens-primary); font-size: 13px; color: #475569; margin: 15px 0; }

/* =========================================================
   14. 푸터
========================================================= */
.ksens-footer { background-color: var(--ksens-primary-hover); color: #bbb; padding: 40px 20px; text-align: center; }
.ksens-footer-content { max-width: 1200px; margin: 0 auto; text-align: left; }
.ksens-footer-logo { font-size: 26px; margin-bottom: 10px; display: inline-flex; align-items: center; }
/* 네이비 배경(역상) 버전 - 규정의 "3-3 역상(네이비 배경)" 항목과 동일한 원리로 흰색 사용, 스타일(이탤릭/자간)은 기본형과 동일하게 유지 */
.ksens-footer-logo .en-part { font-family: 'Pretendard', 'Pretendard Variable', Arial, sans-serif; font-weight: 800; font-style: italic; color: #fff; letter-spacing: 0.5px; transform: scaleX(0.9); display: inline-block; }
.ksens-footer-logo .en-part .red-e { color: #E90301; font-style: italic; font-weight: 800; }
.ksens-footer-info p { margin: 5px 0; font-size: 13px; }

/* =========================================================
   15. 반응형
========================================================= */
@media (max-width: 900px) {
    .ksens-dashboard-grid { grid-template-columns: repeat(2, 1fr); }
    .ksens-home-content, .ksens-home-grid { grid-template-columns: 1fr; }
    .ksens-subpage { flex-direction: column; }
    .ksens-sidebar { width: 100%; }
}
@media (max-width: 640px) {
    .ksens-top-bar-inner { flex-direction: column; gap: 8px; padding: 12px 20px; }
    .ksens-logo .en-part { font-size: 27px; }
    .ksens-logo .kr-part { font-size: 20px; }
    .ksens-dashboard-grid { grid-template-columns: 1fr; }
    .ksens-hero-slider { height: 300px; }
    .ksens-hero-slider .ksens-slide-content h2 { font-size: 26px; }
    .ksens-search-box { flex-direction: column; }
    .ksens-search-box select, .ksens-search-box input, .ksens-search-box button { width: 100%; }
    .ksens-org-directors { grid-template-columns: 1fr; }
    .ksens-greeting-wrap { flex-direction: column; }
    .ksens-president-img { width: 100%; height: 260px; }
}

/* =========================================================
   16. 마이페이지 ([ksens_my_page] 숏코드)
========================================================= */
.ksens-mypage-guest { text-align: center; padding: 60px 20px; }
.ksens-mypage { max-width: 800px; margin: 0 auto; padding: 40px 20px; }
.ksens-mypage-profile { background: #f8f9fa; border: 1px solid #e5e7eb; border-radius: 8px; padding: 30px; margin-bottom: 30px; }
.ksens-mypage-profile h2 { margin-top: 0; color: var(--ksens-primary); }
.ksens-mypage-table { width: 100%; border-collapse: collapse; margin: 15px 0; }
.ksens-mypage-table th, .ksens-mypage-table td { text-align: left; padding: 8px 0; border-bottom: 1px solid #e5e7eb; }
.ksens-mypage-table th { width: 100px; color: #666; font-weight: 600; }
.ksens-btn { display: inline-block; background: var(--ksens-primary); color: #fff !important; padding: 10px 20px; border-radius: 4px; text-decoration: none; font-weight: 600; margin-right: 10px; margin-top: 10px; }
.ksens-btn:hover { background: var(--ksens-primary-hover); }
.ksens-btn-outline { background: #fff; color: var(--ksens-primary) !important; border: 1px solid var(--ksens-primary); }
.ksens-mypage-posts h3 { color: var(--ksens-primary); border-bottom: 2px solid var(--ksens-primary); padding-bottom: 10px; }
.ksens-mypage-post-list { list-style: none; margin: 0; padding: 0; }
.ksens-mypage-post-list li { padding: 12px 0; border-bottom: 1px solid #eee; display: flex; justify-content: space-between; align-items: center; }
.ksens-mypage-post-list a { color: #1a1a1a; text-decoration: none; font-weight: 500; }
.ksens-mypage-post-list a:hover { color: var(--ksens-primary); }
.ksens-mypage-post-date { color: #999; font-size: 13px; }
.ksens-mypage-post-status { color: #e61919; font-size: 12px; margin-left: 8px; }

/* =========================================================
   17. 학회일정 아카이브 페이지 (archive-ksens_schedule.php)
========================================================= */
.ksens-schedule-archive-article { display: block; padding: 30px 0 60px; }
.ksens-schedule-archive-article .entry-header { display: block; margin-bottom: 25px; }
.ksens-schedule-archive-article .entry-title { display: block; clear: both; float: none; }
.ksens-schedule-archive-article .entry-content { display: block; clear: both; }

/* ============================================
   Ultimate Member 색상 → KSENS 네이비/레드로 통일
   네이비 #061E58 / 레드 #E90301
   ============================================ */

/* 로그인/회원가입 폼 제출 버튼 */
.um .um-button,
.um button.um-button,
.um input.um-button,
.um .um-login-form button[type="submit"],
.um .um-register-form button[type="submit"] {
  background-color: #061E58 !important;
  border-color: #061E58 !important;
  color: #fff !important;
}
.um .um-button:hover,
.um button.um-button:hover,
.um input.um-button:hover {
  background-color: #E90301 !important;
  border-color: #E90301 !important;
}

/* 입력창 포커스 시 강조색 */
.um .um-field input:focus,
.um .um-field textarea:focus,
.um .um-field select:focus {
  border-color: #061E58 !important;
  box-shadow: 0 0 0 3px rgba(6,30,88,0.1) !important;
}

/* 링크(비밀번호 찾기, 회원가입 유도 링크 등) */
.um a,
.um-login a,
.um-password a,
.um-account-link {
  color: #061E58 !important;
}
.um a:hover {
  color: #E90301 !important;
}

/* 탭/메뉴 활성 상태 (계정 페이지 좌측 탭 등) */
.um-account-nav li.active a,
.um-account-nav li a:hover,
.um-profile-nav li.active a,
.um-profile-nav li a:hover {
  color: #061E58 !important;
  border-color: #061E58 !important;
}

/* 프로필/계정 페이지 상단 강조 바 */
.um-account-name,
.um-profile-name a {
  color: #061E58 !important;
}

/* 알림/성공 메시지 박스 (기본 파란색 계열 → 네이비) */
.um-notice,
.um-notice.success {
  border-color: #061E58 !important;
}
.um-notice a { color: #061E58 !important; }

/* 체크박스/라디오 선택 시 강조색 */
.um-field input[type="checkbox"]:checked,
.um-field input[type="radio"]:checked {
  accent-color: #061E58;
}

/* 프로그레스바(회원가입 단계 등) */
.um-form .um-progress-bar,
.um .um-multi-step-progress .active {
  background-color: #061E58 !important;
}

/* 소셜 로그인/아이콘 버튼 hover (있는 경우) */
.um-social-login-icon:hover {
  border-color: #061E58 !important;
}

/* =========================================================
   KSENS 사이드바 디자인 (최종 통합본)
   학회소개 / 학술지 / 학술대회 / 학회소식 / 자료실 공통
   ========================================================= */

/* ---------------------------------------------------------
   1. 사이드바 폭 및 기본 여백
   --------------------------------------------------------- */
.widget-area {
    width: 220px;
    flex-shrink: 0;
}

#secondary .widget_nav_menu {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}


/* ---------------------------------------------------------
   2. 사이드바 제목
   --------------------------------------------------------- */
#secondary .widget_nav_menu .widget-title {
    margin: 0 !important;
    padding: 0 16px !important;

    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    width: auto !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background-color: var(--ksens-primary, #17365d);
    color: #ffffff;

    font-size: 19px !important;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.4px;

    box-sizing: border-box !important;
    overflow: hidden !important;
}


/* ---------------------------------------------------------
   3. 메뉴 전체 (왼쪽 회색 테두리만 유지, 오른쪽은 4번에서 처리)
   --------------------------------------------------------- */
#secondary .widget_nav_menu ul.menu {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;

    list-style: none;

    border: 1px solid #dddddd;
    border-top: none;
    box-shadow: none !important;

    box-sizing: border-box !important;
}


/* ---------------------------------------------------------
   4. 각 메뉴 항목
   높이 46px 고정 + 왼쪽 1px만큼 밀어서 강조선 위치를
   타이틀 좌측과 정확히 맞춤 (오른쪽 회색 테두리는 항상 보존됨)
   --------------------------------------------------------- */
#secondary .widget_nav_menu ul.menu li.menu-item {
    margin: 0 !important;
    margin-left: -1px !important;
    padding: 0 !important;

    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    width: 100% !important;
    overflow: hidden !important;

    display: flex;
    align-items: stretch;

    border-bottom: 1px solid #eeeeee;

    box-sizing: border-box !important;
}

#secondary .widget_nav_menu ul.menu li.menu-item:last-child {
    border-bottom: none;
}


/* ---------------------------------------------------------
   5. 메뉴 링크
   한 줄 고정 표시, 넘치면 말줄임(...) 처리
   --------------------------------------------------------- */
#secondary .widget_nav_menu ul.menu li.menu-item a.menu-link {
    display: flex !important;
    align-items: center !important;

    width: 100% !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;

    margin: 0 !important;
    padding: 0 16px !important;

    box-sizing: border-box !important;

    color: #444444;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.3;

    text-decoration: none;
    text-align: left;

    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;

    border-left: 4px solid transparent;

    transition:
        background-color 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease;
}


/* ---------------------------------------------------------
   6. 마우스를 올렸을 때
   --------------------------------------------------------- */
#secondary .widget_nav_menu ul.menu li.menu-item a.menu-link:hover {
    background-color: #f3f6fa;
    color: var(--ksens-primary, #17365d);
    font-weight: 600;
    border-left-color: var(--ksens-primary, #17365d);
}


/* ---------------------------------------------------------
   7. 현재 페이지 (활성 메뉴)
   --------------------------------------------------------- */
#secondary .widget_nav_menu ul.menu li.menu-item.current-menu-item a.menu-link,
#secondary .widget_nav_menu ul.menu li.menu-item.current_page_item a.menu-link {
    background-color: #eef3f8;
    color: var(--ksens-primary, #17365d);
    font-weight: 700;
    border-left: 4px solid var(--ksens-primary, #17365d);
}

#secondary .widget_nav_menu ul.menu li.menu-item.current-menu-item a.menu-link:hover,
#secondary .widget_nav_menu ul.menu li.menu-item.current_page_item a.menu-link:hover {
    background-color: #eef3f8;
    color: var(--ksens-primary, #17365d);
}

/* =========================================================
   8. 검색 결과 페이지 디자인
========================================================= */
.ksens-search-page-wrap { max-width: 1000px; margin: 60px auto 100px; padding: 0 20px; }
.ksens-search-page-title { font-size: 24px; color: #111; border-bottom: 3px solid var(--ksens-primary); padding-bottom: 18px; margin-bottom: 10px; display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.ksens-search-page-title strong { color: var(--ksens-primary); }
.ksens-search-scope-badge { font-size: 13px; color: #fff; background: var(--ksens-primary); border-radius: 20px; padding: 4px 14px; font-weight: normal; }
.ksens-search-count { color: #888; font-size: 14px; margin: 0 0 30px; }

.ksens-search-result-list { display: flex; flex-direction: column; gap: 16px; }
.ksens-search-result-item {
    display: block;
    padding: 20px 24px;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.ksens-search-result-item:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
    border-color: var(--ksens-primary);
}
.ksens-search-result-top { display: flex; justify-content: space-between; margin-bottom: 8px; }
.ksens-search-result-board { font-size: 12px; color: var(--ksens-primary); font-weight: 600; background: rgba(0,0,0,0.04); padding: 3px 10px; border-radius: 4px; }
.ksens-search-result-date { font-size: 13px; color: #999; }
.ksens-search-result-title { font-size: 17px; color: #111; font-weight: 600; margin-bottom: 8px; }
.ksens-search-result-excerpt { font-size: 14px; color: #666; line-height: 1.6; }

.ksens-search-empty { text-align: center; padding: 100px 0; color: #888; font-size: 15px; line-height: 1.8; }