/***** 공통 코드 *****/

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  /* font-family: Roboto, sans-serif; */
  font-family: 'Roboto', 'Noto Sans KR', sans-serif;
  line-height: 1.6;
}

.container {
  /* margin: auto; */
  /* overflow: hidden; */
  display: flex;
  align-items: center;
}

.hr {
  display: block !important;
}

header {
  width: 100%;
  background: #fff;
  color: #333;
  box-sizing: border-box;
  padding: 0px 40px;
  height: 100px;
  border-bottom: #bbb 1px solid;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  z-index: 100;
  transition: all 0.3s ease;
}

header a {
  color: #333;
  text-decoration: none;
  text-transform: uppercase;
  font-size: 18px;
}

header a:hover {
  color: #285DCD;
}

header ul {
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: row;
  align-items: center;
}

header li {
  display: inline;
  padding: 0 30px;
}



/* 햄버거 메뉴 버튼 */
.mobile-menu-btn {
  display: none;
  /* 기본적으로는 숨김 */
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
  z-index: 1001;
}

.main-nav {
  background: #fff;
  position: absolute;
  display: flex;
  left: 0;
  right: 0;
  margin: 0 auto;
}

.nav-container {
  /* max-width: 1200px; */
  margin: 0 auto;
  position: relative;
}

.nav-menu {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

.nav-item {
  position: relative;
  /* min-width: 175px; */
}

.nav-link {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 15px;
  height: 98px;
  width: 100%;
  color: #333;
  text-decoration: none;
  font-size: 18px;
  font-weight: 500;
  text-align: center;
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  /* 초기 너비는 0 */
  height: 3px;
  background-color: #285DCD;
  transition: width 0.3s ease;
  /* 너비 변화에 대한 전환 효과 */
}

.nav-item:hover .nav-link::after {
  width: 100%;
  /* 호버 시 전체 너비로 확장 */
}

.mobile-icon {
  display: none;
}

/* 헤더 오른쪽 */
.nav-right {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
  z-index: 1;
}

.nav-right-mobile {
  display: none;
}

.nav-right-item {
  color: #333;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 300;
}

.all-menu:hover,
.language-menu:hover {
  text-decoration: underline;
  color: #333;
}


.search-menu {
  padding: 0 8px;
  border-left: 1px solid #333;
  border-right: 1px solid #333;
}

.nav-right-item>svg {
  fill: #333;
}


/* 로그아웃 버튼 */
.logout-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  height: 40px;
  width: 100%;
  background-color: #4b7bf5;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  margin-left: 20px;
}

/* 드롭다운 메뉴 */
.dropdown-menu {
  position: absolute;
  display: flex;
  flex-direction: column;
  top: 100%;
  left: 0;
  width: 200px;
  background: #fff;
  list-style: none;
  padding: 10px;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  /* transform: translateY(10px); */
  transition: all 0.3s ease;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  z-index: 1000;
}

.dropdown-menu li a {
  width: 180px;
  display: block;
  padding: 10px;
  color: #333;
  font-weight: 500;
  text-decoration: none;
  font-size: 18px;
  transition: all 0.2s ease;
  text-align: left;
}

/* 호버 효과 */
.nav-item:hover .nav-link {
  color: #285DCD;
  background: #f8f8f8;
}

.nav-item:hover .dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.dropdown-menu li a:hover {
  color: #145BD4;
  background: #f5f5f5;
  padding-left: 15px;
}

/* 활성화된 메뉴 스타일 */
.nav-item.active .nav-link {
  color: #285DCD;
}

/* fourthPage일 때 색상 변경 */
body[data-current-section="fourthPage"] #menu li a {
  color: #333 !important;
}

body[data-current-section="fourthPage"] .nav-link {
  color: #333 !important;
}

body[data-current-section="fourthPage"] .nav-right-item {
  color: #333 !important;
}

body[data-current-section="fourthPage"] .logo-text {
  color: #333 !important;
}

body[data-current-section="fourthPage"] header.is-main .nav-right-item>svg {
  fill: #333 !important;
}



.logo {
  display: flex;
  align-items: center;
  flex-direction: row;
  width: 150px;
  z-index: 1;
}

.logo a {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  font-size: 28px;
  font-weight: bold;
  color: #333;
}

.logo img {
  width: 100%;
  height: auto;
  display: block;
}

.logo .logo-text {
  margin-left: 16px;
}


.container__footer-info {
  display: flex;
  flex-direction: row;
  gap: 40px;
}

/* 브레드크럼 */
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  justify-content: right;
  margin: 1rem 0;
  list-style: none;
  border-radius: 0.25rem;
  font-size: 14px;
}

.breadcrumb-item+.breadcrumb-item {
  padding-left: 0.5rem;
}

.breadcrumb-item+.breadcrumb-item::before {
  display: inline-block;
  padding-right: 0.5rem;
  color: #6c757d;
  content: '/';
}

.breadcrumb-item a {
  color: #007bff;
  text-decoration: none;
}

.breadcrumb-item a:hover {
  text-decoration: underline;
}

.breadcrumb-item.active {
  color: #6c757d;
}

.container__footer-text {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

hr {
  margin: 25px 0;
  color: #e9e6e6;
}

footer {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 100%;
}

.footer-bottom-left {
  display: flex;
  flex-direction: column;
}

.logo-footer {
  display: flex;
  flex-direction: column;
  align-items: flex-start;

  img {
    width: 130px;
  }

  a,
  a:visited,
  a:hover {
    width: auto;
    display: flex;
    justify-content: center;
    flex-direction: row;
    align-items: center;
    font-size: 24px;
    font-weight: bold;
    color: #fff;
    text-decoration: none;
  }

  .logo-text {
    margin-left: 16px;
  }
}

.footer-text {
  color: #757575;
  font-size: 14px;
  font-weight: 400;
  padding: 5px;
  line-height: 1.8;
}

.footer-top {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #414141;
}

.footer-top a {
  color: #fff;
  font-size: 16px;
  font-weight: 300;
  line-height: 40px;
}

.footer-top span {
  font-size: 16px;
  color: #757575;
  margin: 0 12px;
}

.footer-bottom {
  background: #282828;
  color: #757575;
  width: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
}

.footer-inner {
  width: 100%;
  max-width: 1340px;
  margin: 0 auto;
  padding: 20px;
  display: flex;
}

.footer-inner-top {
  align-items: flex-end;
  justify-content: space-between;
}

.footer-inner-bottom {
  align-items: flex-start;
  justify-content: space-between;
  padding-top: 30px;
  padding-bottom: 60px;
}

/* 메인 페이지 전용 스타일 */
header.is-main {
  position: fixed;
  background: transparent;
}

header.is-main .nav-link {
  color: white;
}

header.is-main .nav-link:hover {
  color: #145BD4;
  font-weight: 500;
}

header.is-main .logo-text {
  color: white;
}

header.is-main .main-nav {
  background: transparent;
  /* position: relative; */
  position: absolute;
  display: flex;
  left: 0;
  right: 0;
  margin: 0 auto;
}


header.is-main .nav-right-item {
  color: #fff;
}


header.is-main .nav-right-item>svg {
  fill: #fff;
}

header.is-main .all-menu:hover,
header.is-main .language-menu:hover {
  color: #fff;
}

header.is-main .search-menu {
  border-left: 1px solid #fff;
  border-right: 1px solid #fff;
}

/* 스크롤 시 스타일 */
header.is-main .header-scrolled {
  background: rgba(0, 0, 0, 0.8);
}

/* JavaScript로 클래스 추가하는 방식 */
header.nav-hover {
  background-color: #ffffff;
}

header.nav-hover .nav-link,
header.nav-hover .nav-right-item,
header.nav-hover .logo-text {
  color: #333;
}

header.nav-hover .search-menu {
  border-left: 1px solid #333;
  border-right: 1px solid #333;
}

header.nav-hover .nav-right-item>svg {
  fill: #333;
}


/* 햄버거 메뉴 애니메이션 */
.mobile-menu-btn.active .bar:nth-child(2) {
  opacity: 0;
}

.mobile-menu-btn.active .bar:nth-child(1) {
  background: #333;
  transform: rotate(45deg) translate(6px, 6px);
}

.mobile-menu-btn.active .bar:nth-child(3) {
  background: #333;
  transform: rotate(-45deg) translate(6px, -6px);
}

/* 애니메이션 */

.fade-up {
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 1s ease-out,
    transform 1s ease-out;
}

/* 애니메이션 실행 클래스 */
.fade-up.active {
  opacity: 1;
  transform: translateY(0);
}

/* 딜레이를 주고 싶은 경우 */
.delay-1 {
  transition-delay: 0.2s;
}

.delay-2 {
  transition-delay: 0.4s;
}

.delay-3 {
  transition-delay: 0.6s;
}

.delay-4 {
  transition-delay: 0.8s;
}

/*글쓰기*/
.wrapper__bo_w {
  width: 100%;
  padding: 100px 15%;
}

.title__bo_w {
  font-size: 32px;
  margin-bottom: 60px;
}

/* 게시판에 콘텐츠 없을 때 */
.no_content {
  font-size: 24px;
  text-align: center;
  padding: 80px;
  cursor: auto;
}

.gallery-checkbox {
  margin: 10px;
  height: 20px;
  width: 20px;
}

/* 어드민 글쓰기 버튼*/
.btn_admin_write {
  background-color: #4b7bf5;
  border-radius: 4px;
  border-style: none;
  padding: 4px 20px;
}

.btn_admin_write i {
  color: white;
}

.btn_admin_write span {
  color: white;
  margin-left: 12px;
  font-size: 12px;
  font-weight: 400;
}

/* 어드민 게시글 선택 삭제 버튼 */
.btn_admin_delete {
  background-color: #545454;
  border-radius: 4px;
  border-style: none;
  padding: 12px 20px;
  color: white;
  font-size: 16px;
  font-size: 12px;
}

.btn_admin_delete i {
  color: white;
}

/* faq 게시글 선택 삭제 버튼 */
.btn_faq_delete {
  background-color: #545454;
  border-radius: 4px;
  border-style: none;
  padding: 12px 20px;
  color: white;
  font-size: 12px;
  margin-bottom: 20px;
}

/* 포트폴리오 수정 */
.wrapper__faq-list {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.edit-btn {
  width: 70px;
  height: 40px;
  background-color: #4b7bf5;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.3s;
}

.wrapper__question-content {
  display: flex;
  flex-direction: row;
  width: 100%;
  gap: 10px;
  align-items: center;
}

.wrapper__gallery-admin {
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 100%;
  justify-content: space-between;
}

.edit-btn-gallery {
  height: 30px;
  margin-right: 10px;
}

@media screen and (max-width: 1580px) {


  header li {
    padding: 0 10px;
  }

  header.is-main {
    position: absolute !important;
  }

}

/* 공통 모바일 메뉴 스타일 (태블릿 & 모바일) */
@media (max-width: 1279px) {



  .nav-link::after {
    display: none;
  }

  header #branding,
  header nav,
  header nav li {
    float: none;
    text-align: center;
    width: 100%;
  }

  header li {
    display: inline;
    padding: 0;
  }

  header {
    padding-bottom: 20px;
  }

  .nav-menu {
    flex-direction: column;
  }

  .nav-container {
    width: 100%;
  }

  .mobile-menu-btn {
    display: block;
    /* 모바일에서만 보이게 */
  }

  header.is-main .mobile-menu-btn {
    position: absolute;
    right: 20px;
  }

  header {
    padding: 0px 20px;
    height: 60px;
    justify-content: space-between;
  }

  header.is-main .main-nav,
  .main-nav {
    visibility: hidden;
    position: fixed;
    top: 0;
    right: 0;
    width: 50%;
    height: 100vh;
    background: white;
    padding: 80px 20px 20px;
    transition: 0.1s ease-in-out;
    overflow-y: auto;
    box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow-y: auto;
    left: initial !important;
  }

  header.is-main .nav-link,
  .nav-link {
    color: #333;
    text-shadow: none;
    display: flex;
    justify-content: space-between;
    flex-direction: row;
    height: auto;
    font-weight: 400;
  }

  header.is-main .main-nav.active,
  .main-nav.active {
    visibility: visible;
    position: fixed;
    background: #fff;
    right: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    margin: 0;
    left: initial !important;
  }

  /* header.is-main .logo-text {
    color: #333;
  } */

  .search-menu {
    border-right: 1px solid #333 !important;
    border-left: 1px solid #333 !important;
  }

  .main-menu {
    width: 100%;
    flex-direction: column;
  }

  .nav-item {
    width: 100%;
    margin: 0;
    border-bottom: 1px solid #eee;
  }


  .nav-link {
    width: 100%;
    display: block;
    padding: 15px 20px;
    text-shadow: none;
    text-align: left;
    display: flex;
    justify-content: space-between;
    font-family: 'Roboto' !important;
    color: #333;
    text-decoration: none;
  }

  .dropdown-menu li a {
    font-size: 16px;
    font-weight: 400;
  }

  .mobile-icon {
    display: block;
  }

  .nav-right {
    display: none;
  }

  .nav-right-mobile {
    display: flex;
    padding: 16px 0;
  }

  header.is-main .nav-right-item,
  .nav-right-mobile>.nav-right-item {
    color: #333;
    margin-right: 10px;
  }

  header.is-main .nav-right-item>svg {
    fill: #333;
  }

  header.is-main .mobile-menu-btn .bar {
    display: block;
    width: 25px;
    height: 3px;
    margin: 5px auto;
    background-color: #fff;
    transition: all 0.3s ease-in-out;
  }

  .mobile-menu-btn .bar {
    display: block;
    width: 25px;
    height: 3px;
    margin: 5px auto;
    background-color: #333;
    transition: all 0.3s ease-in-out;
  }

  .dropdown-menu {
    position: static;
    width: 100%;
    box-shadow: none;
    display: none;
    padding-left: 20px;
  }

  .nav-item.active .dropdown-menu {
    display: block;
  }

  /* 메뉴 오픈 시 스크롤 방지 */
  body.menu-open {
    overflow: hidden;
    position: fixed;
    /* 추가 */
    width: 100%;
    /* 추가 */
    height: 100%;
    /* 추가 */
  }

  .dropdown-menu {
    position: static;
    width: 100%;
    transform: none;
    box-shadow: none;
    padding-left: 20px;
  }

  .dropdown-menu li a {
    width: 100%;
  }

  .nav-item:hover .dropdown-menu {
    display: block;
  }

  header.nav-hover {
    background-color: transparent;
  }

  header.nav-hover .logo-text {
    color: #fff;
  }

  .mobile-menu-btn.active .bar {
    background: #0066cc;
  }

  /* footer */

  .footer-inner {
    padding: 20px 20px;
  }

  .footer-inner-bottom {
    padding-top: 30px;
    padding-bottom: 60px;
  }

  .footer-top a {
    padding: 0 8px;
  }

  .footer-top span {
    margin: 0;
  }
}



/* 모바일 전용 스타일 */
@media (max-width: 768px) {
  .mobile-menu-btn.active .logo-text {
    color: #333;
  }

  header.is-main .main-nav,
  .main-nav {
    width: 100%
  }

  .policy-container {
    padding: 0 15px;
  }

  .policy-section {
    padding: 25px;
  }

  .policy-section h1 {
    font-size: 24px;
  }

  .policy-article h2 {
    font-size: 18px;
  }

  .policy-article p,
  .policy-article li {
    font-size: 15px;
  }

  .policy-footer {
    padding: 15px;
    font-size: 13px;
  }

  .footer-inner {
    padding: 15px 20px;
  }

  .footer-text {
    font-size: 13px;
    line-height: 1.6;
    text-align: center;
    font-weight: 400;
  }

  .container__footer-text {
    flex-direction: column;
  }

  .footer-inner-top a {
    font-size: 14px;
  }

  .footer-inner-bottom {
    flex-direction: column;
    align-items: center;
    padding-top: 25px;
    padding-bottom: 30px;
  }

  .footer-top a {
    line-height: 14px;
    padding: 0 4px;
    font-size: 13px;
  }

  .logo-footer {
    margin-top: 20px;
  }

  .container__footer-info {
    flex-direction: column;
    align-items: center;
    gap: 4px;
  }

}




/* 개인정보 약관 */
.main__policy {
  background: #f5f5f5;
  padding: 40px 0;
}

.policy-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.policy-section {
  background: #fff;
  border-radius: 10px;
  padding: 40px;
  margin-bottom: 40px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.policy-section h1 {
  font-size: 28px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 30px;
  padding-bottom: 15px;
  border-bottom: 2px solid #eee;
}

.policy-article {
  margin-bottom: 30px;
}

.policy-article h2 {
  font-size: 20px;
  font-weight: 600;
  color: #333;
  margin: 30px 0 15px;
}

.policy-article p {
  font-size: 16px;
  line-height: 1.8;
  color: #666;
  margin-bottom: 10px;
  word-break: keep-all;
}

.policy-article ul {
  padding-left: 20px;
  margin-bottom: 20px;
}

.policy-article li {
  margin-bottom: 8px;
  font-size: 16px;
  line-height: 1.8;
  color: #666;
}

.table-container {
  overflow-x: auto;
  margin: 20px 0;
}

.policy-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
}

.policy-th,
.policy-td {
  padding: 12px 15px;
  text-align: left;
  border: 1px solid #ddd;
}

.policy-th {
  background-color: #f8f9fa;
  font-weight: 600;
  color: #333;
}

.policy-td {
  color: #666;
}

.policy-footer {
  margin-top: 40px;
  padding: 20px;
  color: #888;
  font-size: 14px;
  line-height: 1.6;
}

.policy-footer p {
  margin-bottom: 5px;
}