.h1-stemap{
	font-size:20px;
	text-align:left;
}


/*레이아웃 */
.tech-portfolio-section {
  width: 100%;
}

.tech-portfolio-body {
  display: flex;
  align-items: center;
  gap: 70px;
}

/* 왼쪽 이미지 영역 */
.tech-visual {
  position: relative;
  flex: 0 0 45%;
  min-height: 520px;
}

.tech-visual-item {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s ease;
}

.tech-visual-item.is-active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.tech-visual-item img {
  max-width: 100%;
  max-height: 520px;
  width: auto;
  height: auto;
  display: block;
}

/* 오른쪽 리스트 영역 */
.tech-list {
  flex: 1;
  border-top: 1px solid rgba(255, 255, 255, 0.4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}

/* 리스트 아이템 */
.tech-list-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 90px;
  padding: 0 26px;
  color: #ffffff;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  overflow: hidden;
  box-sizing: border-box;
  transition: color 0.3s ease;
}

.tech-list-item:last-child {
  border-bottom: none;
}

/* 진한 블루 오버레이 */
.tech-list-item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(8, 36, 78, 0.85); /* 진한 블루 */
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 0;
}

.tech-list-item:hover::before,
.tech-list-item.is-active::before {
  opacity: 1;
}

/* 텍스트와 화살표 */
.tech-list-text,
.tech-list-arrow {
  position: relative;
  z-index: 1;
}

.tech-list-text {
  font-size: 26px;
  font-weight: 500;
  line-height: 1.4;
  color: #ffffff;
}

.tech-list-arrow {
  font-size: 40px;
  line-height: 1;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.95);
  transition: transform 0.3s ease;
}

/* 화살표 애니메이션 */
.tech-list-item:hover .tech-list-arrow,
.tech-list-item.is-active .tech-list-arrow {
  transform: translateX(6px);
}

/* =========================
   반응형 설정
   ========================= */

/* 태블릿 */
@media (max-width: 1024px) {
  .tech-portfolio-body {
    gap: 40px;
  }

  .tech-visual {
    flex: 0 0 45%;
    min-height: 420px;
  }

  .tech-visual-item img {
    max-height: 420px;
  }

  .tech-list-item {
    min-height: 75px;
    padding: 0 22px;
  }

  .tech-list-text {
    font-size: 22px;
  }

  .tech-list-arrow {
    font-size: 32px;
  }
}

/* 모바일 */
@media (max-width: 767px) {
  .tech-portfolio-body {
    flex-direction: column;
    gap: 30px;
  }

  .tech-visual {
    width: 100%;
    min-height: 280px;
  }

  .tech-visual-item img {
    max-height: 280px;
  }

  .tech-list {
    width: 100%;
  }

  .tech-list-item {
    min-height: 65px;
    padding: 0 18px;
  }

  .tech-list-text {
    font-size: 18px;
  }

  .tech-list-arrow {
    font-size: 24px;
  }
}

/* 리센트포스트 - 제목 *//* ===============================
   Recent Posts - Title & Excerpt
   제목 1줄 / 내용 2줄 / 마진 축소
================================= */

/* 제목: 한 줄만 표시 */
.news-recent-posts .blog-recent .title {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;

  font-size: 17px;        /* 필요 시 조정 */
  line-height: 1.4;
  margin: 6px 0 4px 0;    /* 위/아래 마진 축소 */
  padding: 0;
  word-break: keep-all;
}

/* 내용: 두 줄만 표시 */
.news-recent-posts .blog-recent .excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;  /* 내용 2줄 */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;

  font-size: 12px;        /* 필요 시 조정 */
  line-height: 1.6;
  max-height: calc(1.6em * 2);
  margin: 0 0 6px 0;      /* 아래 마진 축소 */
  padding: 0;
  word-break: keep-all;
}

/* 날짜와 제목 사이 간격 축소 */
.news-recent-posts .blog-recent .post-header .meta {
  margin-bottom: 4px;
  font-size: 12px;
}

/* 텍스트 영역 전체의 여백 축소 */
.news-recent-posts .blog-recent .article-content-wrap {
  padding: 12px 14px;     /* 상하 패딩 축소 */
}

/* 카드 내부 불필요한 여백 제거 */
.news-recent-posts .blog-recent .post-header {
  margin-bottom: 4px;
}



/* =====================================================
   PROJECT REFERENCE - TEXT SYNC FINAL
===================================================== */

/* 왼쪽 텍스트 영역 */
.project-text-sync {
  position: relative !important;
  min-height: 500px !important;
  padding-top: 0px !important;
}

.project-text-sync > .project-text-item {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity 0.4s ease !important;
}

.project-text-sync > .project-text-item.is-active {
  position: relative !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

/* ===== 간격 조정 최종본 ===== */
.project-subtitle {
  margin: 0 0 30px 0 !important;
}

.project-kicker {
  margin: 0 0 0px 0 !important;
}

.project-title {
  margin: 0 0 50px 0 !important;
}

.project-desc {
  line-height: 1.7 !important;
  margin: 0 0 50px 0 !important;
}

.project-more-btn {
  margin-top: 10px !important;
}

.project-subtitle {
  font-size: 17px !important;
  line-height: 1.4 !important;
  font-weight: 500 !important;
  color: #2f2f2f !important;
  margin: 0 0 0 0
  letter-spacing: -0.01em !important;
}

.project-kicker {
  font-size: 24px !important;
  line-height: 1 !important;
  font-weight: 500 !important;
  color: #333333 !important;
  margin: 0 0 0 0
  letter-spacing: -0.03em !important;
  word-break: keep-all !important;
}

.project-title {
  font-size: 42px !important;
  line-height: 0 !important;
  font-weight: 700 !important;
  color: #333333 !important;
  margin: 0 0 0 0
  letter-spacing: -0.04em !important;
  word-break: keep-all !important;
}


.project-desc {
  font-size: 19px !important;
  line-height: 1.7 !important;
  font-weight: 500 !important;
  color: #2f2f2f !important;
  margin: 0 0 0 0
  letter-spacing: -0.02em !important;
  word-break: keep-all !important;
}

.project-more-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 220px !important;
  height: 72px !important;
  padding: 0 34px !important;
  background: #3f617b !important;
  color: #ffffff !important;
  text-decoration: none !important;
  font-size: 22px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  border-radius: 0 !important;
  transition: background 0.3s ease !important;
}

.project-more-btn:hover {
  background: #2f4e65 !important;
  color: #ffffff !important;
}

/* =====================================================
   IMAGE GALLERY INDICATOR FINAL TUNE
===================================================== */

/* 화살표 숨김 */
.custom-gallery-bar .flex-direction-nav,
.custom-gallery-bar .flex-direction-nav li,
.custom-gallery-bar .flex-direction-nav a,
#custom-gallery-bar .flex-direction-nav,
#custom-gallery-bar .flex-direction-nav li,
#custom-gallery-bar .flex-direction-nav a {
  display: none !important;
}

/* 인디케이터 영역 */
.custom-gallery-bar .flex-control-nav,
.custom-gallery-bar .wpb_gallery_slides .flex-control-nav,
.custom-gallery-bar .flexslider .flex-control-nav,
#custom-gallery-bar .flex-control-nav,
#custom-gallery-bar .wpb_gallery_slides .flex-control-nav,
#custom-gallery-bar .flexslider .flex-control-nav {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 8px !important;
  width: 100% !important;
  margin: 22px 0 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
  position: relative !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* 비활성 바 */
.custom-gallery-bar .flex-control-nav li,
#custom-gallery-bar .flex-control-nav li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.custom-gallery-bar .flex-control-nav li a,
#custom-gallery-bar .flex-control-nav li a {
  display: block !important;
  width: 56px !important;
  height: 4px !important;
  background: #d8d8d8 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  transition: width 0.3s ease, background-color 0.3s ease !important;

  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  text-indent: -9999px !important;
  text-shadow: none !important;
  overflow: hidden !important;
  white-space: nowrap !important;
}

/* 활성 바 */
.custom-gallery-bar .flex-control-nav li a.flex-active,
#custom-gallery-bar .flex-control-nav li a.flex-active {
  width: 290px !important;
  background: #666666 !important;
}

/* 가상요소 제거 */
.custom-gallery-bar .flex-control-nav li a:before,
.custom-gallery-bar .flex-control-nav li a:after,
#custom-gallery-bar .flex-control-nav li a:before,
#custom-gallery-bar .flex-control-nav li a:after {
  display: none !important;
  content: none !important;
}

/* 갤러리 하단 잘림 방지 */
.custom-gallery-bar .wpb_gallery,
.custom-gallery-bar .wpb_wrapper,
.custom-gallery-bar .wpb_gallery_slides,
.custom-gallery-bar .flexslider,
#custom-gallery-bar .wpb_gallery,
#custom-gallery-bar .wpb_wrapper,
#custom-gallery-bar .wpb_gallery_slides,
#custom-gallery-bar .flexslider {
  overflow: visible !important;
}

.custom-gallery-bar .wpb_gallery_slides,
.custom-gallery-bar .flexslider,
#custom-gallery-bar .wpb_gallery_slides,
#custom-gallery-bar .flexslider {
  margin-bottom: 0 !important;
}

/* =====================================================
   RESPONSIVE
===================================================== */
@media (max-width: 1440px) {
  .project-text-sync {
    min-height: 560px !important;
  }

  .project-kicker {
    font-size: 28px !important;
  }

  .project-title {
    font-size: 54px !important;
  }

  .project-desc {
    font-size: 18px !important;
  }

  .project-more-btn {
    min-width: 190px !important;
    height: 64px !important;
    font-size: 20px !important;
  }

  .custom-gallery-bar .flex-control-nav li a.flex-active,
  #custom-gallery-bar .flex-control-nav li a.flex-active {
    width: 220px !important;
  }
}

@media (max-width: 991px) {
  .project-text-sync {
    min-height: 420px !important;
    padding-top: 0 !important;
  }

  .project-subtitle {
    font-size: 15px !important;
    margin-bottom: 32px !important;
  }

  .project-kicker {
    font-size: 24px !important;
    margin-bottom: 18px !important;
  }

  .project-title {
    font-size: 40px !important;
    margin-bottom: 28px !important;
  }

  .project-desc {
    font-size: 16px !important;
    margin-bottom: 42px !important;
  }

  .project-more-btn {
    min-width: 150px !important;
    height: 54px !important;
    font-size: 17px !important;
    padding: 0 24px !important;
  }

  .custom-gallery-bar .flex-control-nav,
  #custom-gallery-bar .flex-control-nav {
    gap: 6px !important;
    margin-top: 16px !important;
  }

  .custom-gallery-bar .flex-control-nav li a,
  #custom-gallery-bar .flex-control-nav li a {
    width: 36px !important;
    height: 4px !important;
  }

  .custom-gallery-bar .flex-control-nav li a.flex-active,
  #custom-gallery-bar .flex-control-nav li a.flex-active {
    width: 140px !important;
  }
}

@media (max-width: 767px) {
  .project-text-sync {
    min-height: auto !important;
  }

  .project-text-sync > .project-text-item {
    display: none !important;
    position: relative !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  .project-text-sync > .project-text-item.is-active {
    display: block !important;
  }

  .project-subtitle {
    font-size: 14px !important;
    margin-bottom: 20px !important;
  }

  .project-kicker {
    font-size: 20px !important;
    margin-bottom: 14px !important;
  }

  .project-title {
    font-size: 32px !important;
    line-height: 1.25 !important;
    margin-bottom: 20px !important;
  }

  .project-desc {
    font-size: 15px !important;
    line-height: 1.65 !important;
    margin-bottom: 28px !important;
  }

  .project-more-btn {
    min-width: 128px !important;
    height: 46px !important;
    font-size: 15px !important;
    padding: 0 18px !important;
  }

  .custom-gallery-bar .flex-control-nav,
  #custom-gallery-bar .flex-control-nav {
    gap: 4px !important;
    margin-top: 12px !important;
  }

  .custom-gallery-bar .flex-control-nav li a,
  #custom-gallery-bar .flex-control-nav li a {
    width: 24px !important;
    height: 3px !important;
  }

  .custom-gallery-bar .flex-control-nav li a.flex-active,
  #custom-gallery-bar .flex-control-nav li a.flex-active {
    width: 72px !important;
  }
}