@charset "utf-8";
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css');

/* Reset */
* {margin: 0; padding: 0; line-height: 1.4em; -webkit-overflow-scrolling: touch; box-sizing: border-box; -webkit-hyphens: auto; hyphens: auto; letter-spacing: -0.05em; vertical-align: middle; font-family: inherit; color: inherit; font-weight: inherit;}
html, body {height: 100%; font-family: 'Pretendard', sans-serif;}
body {color: #333; -webkit-text-size-adjust: none; word-break: keep-all; word-wrap: break-word;}
legend, caption, figcaption {display: none;}
ul,ol {list-style-image: none; list-style-position: outside; list-style-type: none; border: 0px;}
img,fieldset, frameset, frameborder, frame {border: 0;}
a, img, span, b, input, select, em, textarea, label, strong {vertical-align: middle; outline-style: none; color: inherit; font-family: inherit;}
a {color: inherit; text-decoration: none; cursor: pointer; color: inherit; font-family: inherit;}
a:hover {text-decoration: none;}
i, em {font-style: normal;}
textarea {resize: none;}
button {border: none; background: none; outline: none; cursor: pointer;}
input[type="text"],input[type="password"], textarea {-webkit-appearance: none; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; border-radius: 0;}
select {border-radius: 0; background: #fff;}
label {cursor: pointer;}

/* Responsive Font */
@media screen and (max-width: 1200px) {
  html {font-size: 16px;}
}

@media screen and (max-width: 768px) {
  html {font-size: 15px;}
}

@media screen and (max-width: 540px) {
  html {font-size: 14px;}
}

@media screen and (max-width: 420px) {
  html {font-size: 13px;}
}

img {max-width: 100%;}

@media all and (min-width: 1201px) {
  .pc-hidden {display: none !important;}
}

@media all and (max-width: 1200px) {
  .mobile-hidden {display: none !important;}
}

/* Layout */
.wrap,
#wrap {width: 100%; margin: 0 auto;}
.wrapper {width: 1200px; margin: 0 auto;}

.header {position: fixed; top: 0; left: 0; width: 100%; height: 65px; background: #fff; z-index: 20; box-sizing: border-box; border-bottom: none;}
.header:after {content: ""; position: absolute; top: calc(100% + 1px); left: 0; width: 100%; height: 1px; background: #ddd; display: block;}
.header .wrapper {position: relative; text-align: center; display: flex; align-items: center; height: 100%;}
.header .logo {line-height: 1;}
.header .logo a {font-size: 22px; font-weight: bold; vertical-align: top;}
.header .logo a * {vertical-align: baseline;}
.header .logo img {height: 44px; position: relative; top: 4px;}

@media all and (max-width: 1200px) {
  .header:after {left: 15px; width: calc(100% - 30px);}
  .header {padding: 8px 0; height: 50px; border-bottom: none;}
  .header .logo {height: 30px; position: relative; padding-right: 0; text-align: left; float: none; font-size: 18px;}
  .header .logo img {height: 20px;}
  .wrapper {width: 100%; padding: 0 15px;}
  #wrap,
  .wrap {padding-top: 50px;}
}

#content {overflow: hidden; padding-bottom: 70px;}

@media all and (max-width: 1200px) {
  #content {padding-bottom: 50px;}
  #content .sub-content {box-sizing: border-box;}
}

.container {width: 1200px; max-width: 100%; margin: 0 auto; padding: 45px 0 30px 0; display: flex; flex-wrap: wrap;}
.container #content {flex: 1;}

@media all and (max-width: 1200px) {
  .container {padding: 1.5rem 0 1.8rem;}
}

.lnb-menu ~ #content .sub-content .content-title {margin-top: 0;}
.lnb-menu ~ #content .sub-content.wrapper {width: auto;}
.content-title {position: relative; margin-bottom: 50px; margin-top: 95px; text-align: center; border-top: 2px solid #242b3f;}
.content-title h2 {display: inline-block; line-height: 36px; font-size: 25px; border-bottom: 2px solid #242b3f; padding: 20px 0; font-family: 'Gowun Batang', serif; font-weight: 700; letter-spacing: -0.02em;}
.content-title .breadcrumb {position: absolute; top: 15px; right: 0; line-height: 36px;}
.content-title .breadcrumb ul {overflow: hidden;}
.content-title .breadcrumb ul li {float: left; font-size: 14px; color: #999;}
.content-title .breadcrumb ul li img {vertical-align: middle;}
.content-title h2.gal-title {display: block; text-align: center; border-bottom: none; padding-bottom: 0;}
.content-title h2.gal-title .gal-name {display: inline-block; padding-bottom: 10px; border-bottom: 2px solid #242b3f;}
.content-title h2.gal-title .gal-rep {display: block; margin-top: 10px;}
.content-title h2 .gal-rep {font-size: 16px; font-weight: 400; color: #888;}

@media all and (max-width: 1200px) {
  .content-title {display: block; margin-bottom: 35px; margin-top: 30px; padding-top: 10px;}
  .content-title h2 {line-height: 27px; font-size: 1.6rem; border-bottom: 2px solid #242b3f; padding-bottom: 15px;}
}

.sub-page-body h2 {font-size: 25px; line-height: 120%; margin-bottom: 20px; color: #242b3f;}
.sub-page-body .theme-2 {font-size: 18px; line-height: 1.6em;}
.sub-page-body.content-box {background: #f5f6f8; border-radius: 12px; padding: 50px 40px;}
@media all and (max-width:768px) {
  .sub-page-body.content-box {padding: 30px 20px; border-radius: 8px;}
}

.lnb-menu ~ #content .content-title h2 {margin-top: 0;}

/* LNB 좌측 서브 메뉴 */
.sub-layout {display: flex; gap: 50px; padding-top: 40px;}
.sub-layout-content {flex: 1; min-width: 0;}
.sub-layout-content .content-title {margin-top: 0;}

.lnb-menu {width: 220px; min-width: 220px; flex-shrink: 0;}
.lnb-title {font-size: 20px; font-weight: 700; color: #242b3f; padding: 16px 0; margin: 0 0 4px; border-bottom: 2px solid #242b3f;}
.lnb-list {list-style: none; margin: 0; padding: 24px 0 0; border-top: 2px solid #242b3f;}
.lnb-item {border-bottom: 1px solid #e8e8e8;}
.lnb-link {display: flex; align-items: center; justify-content: space-between; padding: 13px 12px; font-size: 15px; font-weight: 500; color: #555; text-decoration: none; transition: all 0.2s;}
.lnb-link:hover {color: #242b3f; background: #f8f8f8;}
.lnb-link.active {color: #fff; font-weight: 700; background: #0097e1; border-radius: 4px;}
.lnb-link.on {color: #fff; font-weight: 700; background: #0097e1; border-radius: 4px;}
.lnb-arrow {display: inline-block; width: 8px; height: 8px; border-right: 2px solid #999; border-bottom: 2px solid #999; transform: rotate(45deg); transition: transform 0.2s; cursor: pointer; flex-shrink: 0; margin-left: 8px;}
.lnb-item.open > .lnb-link .lnb-arrow {transform: rotate(-135deg);}
.lnb-sub {list-style: none; margin: 0; padding: 0 0 8px; display: none;}
.lnb-item.open > .lnb-sub {display: block;}
.lnb-sub-link {display: flex; align-items: center; padding: 13px 12px; font-size: 15px; color: #888; text-decoration: none; transition: all 0.2s; border-radius: 4px;}
.lnb-sub-link::before {content: '–'; display: inline-block; width: 14px; margin-right: 6px; color: #ccc; font-size: 12px; flex-shrink: 0;}
.lnb-sub-link.active::before {color: #fff;}
.lnb-sub-link:hover {color: #242b3f; background: #f8f8f8;}
.lnb-sub-link.active {color: #fff; font-weight: 600; background: #58b530;}

/* 빌드 출력 구조 호환: lnb-depth3 가 <li> 바깥, 부모 <ul>의 형제로 찍힘 */
.lnb-menu > ul {list-style: none; margin: 0; padding: 24px 0 0; border-top: 2px solid #242b3f;}
.lnb-menu > ul > li {border-bottom: 1px solid #e8e8e8;}
.lnb-menu > ul > li > a {display: flex; align-items: center; justify-content: space-between; padding: 13px 12px; font-size: 15px; font-weight: 500; color: #555; text-decoration: none; transition: all 0.2s;}
.lnb-menu > ul > li > a:hover {color: #242b3f; background: #f8f8f8;}
.lnb-menu > ul > li > a.on {color: #fff; font-weight: 700; background: #0097e1; border-radius: 4px;}
.lnb-menu > ul > ul.lnb-depth3 {list-style: none; margin: 0; padding: 4px 0 10px; display: none;}
.lnb-menu > ul > li.open + ul.lnb-depth3 {display: block;}
.lnb-menu > ul > ul.lnb-depth3 > li {border: none;}
.lnb-menu > ul > ul.lnb-depth3 > li > a {display: flex; align-items: center; gap: 6px; padding: 10px 14px; font-size: 14px; color: #888; text-decoration: none; transition: all 0.2s; border-radius: 4px;}
.lnb-menu > ul > ul.lnb-depth3 > li > a svg {flex-shrink: 0; stroke: #ccc; transition: stroke 0.2s;}
.lnb-menu > ul > ul.lnb-depth3 > li > a:hover {color: #242b3f; background: #f8f8f8;}
.lnb-menu > ul > ul.lnb-depth3 > li > a:hover svg {stroke: #242b3f;}
.lnb-menu > ul > ul.lnb-depth3 > li > a.on {color: #fff; font-weight: 600; background: #58b530;}
.lnb-menu > ul > ul.lnb-depth3 > li > a.on svg {stroke: #fff;}

@media all and (max-width: 1200px) {
  .sub-layout {flex-direction: column; gap: 0; padding-top: 0;}
  .lnb-menu {display: none;}
}

/* 서브 히어로 */
.sub-hero {margin-top: 100px; padding-top: 0; padding-bottom: 0;}
.sub-hero-inner {display: flex; align-items: center; justify-content: space-between; padding: 30px 36px; border: 1px solid #e0e0e0; border-radius: 8px; background: linear-gradient(135deg, #f8f9fb 0%, #eef1f6 40%, #e8ecf3 100%); position: relative; overflow: hidden;}
.sub-hero-left {display: flex; flex-direction: column; gap: 4px;}
.sub-hero-title {font-size: 26px; font-weight: 800; color: #242b3f; margin: 0; white-space: nowrap;}
.sub-hero-desc {font-size: 13px; color: #888; margin: 0; letter-spacing: 0.04em; text-transform: uppercase;}
.sub-hero-right {display: flex; align-items: center; gap: 14px;}
/* 1차 메뉴별 아이콘 — sub-hero[data-parent] slug 에 따라 background-image 분기. 미매칭 slug 는 hero-icon-1 fallback */
.sub-hero-icon {width: 66px; height: 66px; flex-shrink: 0; margin-left: 20px; background-size: contain; background-position: center; background-repeat: no-repeat; background-image: url('/public/images/hero-icon-1.png'); animation: subHeroSlideIn 0.6s 0.2s ease both;}
.sub-hero[data-parent="welcome-group"]      .sub-hero-icon {background-image: url('/public/images/hero-icon-1.png');}
.sub-hero[data-parent="about"]              .sub-hero-icon {background-image: url('/public/images/hero-icon-2.png');}
.sub-hero[data-parent="worship-training"]   .sub-hero-icon {background-image: url('/public/images/hero-icon-3.png');}
.sub-hero[data-parent="next-gen"]           .sub-hero-icon {background-image: url('/public/images/hero-icon-4.png');}
.sub-hero[data-parent="praise-service"]     .sub-hero-icon {background-image: url('/public/images/hero-icon-5.png');}
.sub-hero[data-parent="mission-fellowship"] .sub-hero-icon {background-image: url('/public/images/hero-icon-6.png');}

@keyframes subHeroSlideIn {
  from {opacity: 0; transform: translateX(20px);}
  to {opacity: 1; transform: translateX(0);}
}
.sub-hero-summary {font-size: 15px; color: #888; margin: 0; text-align: right; line-height: 1.8;}

@media all and (max-width: 1200px) {
  .sub-hero {margin-top: 25px;}
  .sub-hero-inner {flex-direction: column; align-items: flex-start; gap: 8px; padding: 20px 0;}
  .sub-hero-title {font-size: 22px;}
  .sub-hero-desc {font-size: 12px;}
  .sub-hero-summary {text-align: left; font-size: 14px;}
  .sub-hero-inner {padding: 20px 24px; border-radius: 6px;}
  .sub-hero-right {gap: 10px;}
  .sub-hero-icon {width: 42px; height: 42px; margin-left: 0;}
}

.sub-location {position: absolute; top: 15px; right: 0; display: flex; align-items: center; gap: 6px; font-size: 13px; color: #999;}
.sub-location svg {width: 14px; height: 14px;}
.sub-location .loc-home {width: 16px; height: 16px;}
.sub-location .loc-parent, .sub-location .loc-current {color: #666; text-decoration: none;}
.sub-location .loc-current {color: #242b3f; font-weight: 600;}
@media all and (max-width: 1200px) {
  .sub-location {display: none;}
}

.header + .sub-visual-wrap {min-height: 35px; margin-top: 45px;}
.container > .sub-visual-wrap {margin-bottom: 40px;}
.sub-visual-wrap {position: relative; z-index: 0; display: flex; justify-content: center; align-items: center; width: calc(100% + 40px); margin-left: -20px; min-height: 200px; text-align: left; background: #58b530 url("/public/images/2_pattern_4.jpg") no-repeat 50% 50%; background-size: cover; flex-direction: column; color: #fff;}
.sub-visual-wrap.small {min-height: 35px;}
.sub-visual-wrap h2 {font-size: 47px;}
.sub-visual-wrap .breadcrumbs {margin-top: 15px; font-size: 14px; display: flex; flex-direction: row; align-items: center; color: #adafb3;}
.sub-visual-wrap .breadcrumbs .current:before {content: '/'; display: inline; margin-right: 5px; margin-left: 5px; font-size: 11px; line-height: 1;}
.sub-visual-wrap.type2 {width: 1200px; margin-left: auto; margin-right: auto;}

@media all and (max-width: 1200px) {
  .sub-visual-wrap {display: none;}
  .sub-visual-wrap {min-height: 10rem;}
  .sub-visual-wrap h2 {font-size: 2.5rem;}
  .sub-visual-wrap .breadcrumbs {font-size: 0.8rem;}
  .sub-visual-wrap .breadcrumbs .current:before {font-size: 0.6rem;}
  .header + .sub-visual-wrap {height: 0; margin-top: 0;}
}

/* Main */
.main-key-slider {position: relative; max-width: 1200px; margin: 115px auto 0; overflow: hidden; border-radius: 16px;}
.main-key-slider img {width: 100%;}
/* 메인 설교 섹션 */
.main-sermon-section {max-width: 1200px; margin: 40px auto 0; display: flex; gap: 0; border-radius: 16px; overflow: hidden; background: url("/public/images/main-sermon.jpg") center/cover no-repeat;}
.main-sermon-left {flex: 1; position: relative; min-height: 280px; display: flex; flex-direction: column; padding: 32px;}
.main-sermon-left::before {content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.4);}
.main-sermon-left * {position: relative; z-index: 1;}
.main-sermon-date {font-size: 14px; color: rgba(255,255,255,0.7); margin: 0 0 16px;}
.main-sermon-date-wrap {display: flex; flex-direction: column; align-self: flex-start; margin-bottom: auto; position: relative; z-index: 1;}
.main-sermon-btn {padding: 10px 0; font-size: 16px; font-weight: 600; color: #fff; background: linear-gradient(135deg, rgba(88,181,48,0.7), rgba(58,140,30,0.7)); border-radius: 20px; text-decoration: none; transition: background 0.2s; text-align: center; margin-top: 8px;}
.main-sermon-btn:hover {background: linear-gradient(135deg, rgba(88,181,48,0.9), rgba(58,140,30,0.9));}
.main-sermon-title {font-size: 24px; font-weight: 700; color: #fff; margin: 0 0 8px; line-height: 1.4;}
.main-sermon-pastor {font-size: 14px; color: rgba(255,255,255,0.8); margin: 0 0 4px;}
.main-sermon-sub {font-size: 13px; color: rgba(255,255,255,0.6); margin: 0;}
.main-sermon-right {flex: 1; background: rgba(0,0,0,0.4); display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 12px;}
.main-sermon-card {background: #fff; margin: 8px; border-radius: 10px; padding: 20px; display: flex; flex-direction: column; justify-content: space-between; text-decoration: none; transition: box-shadow 0.2s;}
.main-sermon-card:hover {box-shadow: 0 4px 12px rgba(0,0,0,0.15);}
.main-sermon-card-top {display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px;}
.main-sermon-card h4 {font-size: 16px; font-weight: 700; color: #242b3f; margin: 0;}
.main-sermon-card .view-btn {width: 36px; height: 36px; border-radius: 50%; background: rgba(88,181,48,0.6); color: #fff; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; text-decoration: none;}
.main-sermon-card p {font-size: 13px; color: #888; margin: 0; line-height: 1.6;}

@media all and (max-width: 768px) {
  .main-sermon-section {flex-direction: column; border-radius: 12px; margin: 24px 16px 0;}
  .main-sermon-right {width: 100%; grid-template-columns: 1fr 1fr;}
  .main-sermon-left {min-height: 220px; padding: 24px;}
  .main-sermon-title {font-size: 20px;}
}
@media all and (max-width: 480px) {
  .main-sermon-right {grid-template-columns: 1fr;}
  .main-sermon-card {margin: 6px 8px;}
}

@media all and (max-width: 768px) {
  .main-key-slider {margin-top: 25px; padding-top: 0; margin-left: 16px; margin-right: 16px; border-radius: 12px;}
  .hero-text-slide, .hero-worship-slide, .hero-training-slide {aspect-ratio: 4/3;}
  .hero-worship-single {width: 90%; margin-left: auto; margin-right: auto; text-align: center;}
  .hero-worship-single .hero-worship-table {grid-template-columns: 1fr;}
}
@media all and (max-width: 480px) {
  .hero-text-slide, .hero-worship-slide, .hero-training-slide {aspect-ratio: auto; min-height: 320px; padding: 40px 20px;}
}
.hero-text-slide {position: relative; width: 100%; aspect-ratio: 1280/500; background: url("/public/images/hero-1.jpg") center/cover no-repeat; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: #fff;}
.hero-text-slide::before {content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.2);}
.hero-text-icon {width: 56px; height: auto; margin-bottom: 12px; opacity: 0.9; position: relative; z-index: 1;}
.hero-text-label {display: inline-block; font-size: 14px; color: #fff; background: rgba(255,255,255,0.2); border: 1px solid rgba(255,255,255,0.4); padding: 6px 20px; border-radius: 4px; letter-spacing: 2px; margin-bottom: 24px; position: relative; z-index: 1;}
.hero-text-title {font-family: 'Gowun Batang', serif; font-size: 44px; font-weight: 400; letter-spacing: 4px; margin: 0 0 12px; position: relative; z-index: 1; color: #fff; -webkit-text-stroke: 1px rgba(255,255,255,0.8); text-shadow: 0 0 20px rgba(255,255,255,0.6), 0 0 40px rgba(255,255,255,0.3), 0 2px 12px rgba(0,0,0,0.3);}
.hero-text-verse {font-size: 22px; font-weight: 600; margin: 0; opacity: 0.9; text-shadow: 0 1px 8px rgba(0,0,0,0.2); position: relative; z-index: 1;}
@media all and (max-width: 768px) {
  .hero-text-title {font-size: 28px; letter-spacing: 2px;}
  .hero-text-verse {font-size: 16px;}
  .hero-text-label {font-size: 12px; padding: 4px 14px;}
  .hero-text-icon {width: 40px;}
}
@media all and (max-width: 480px) {
  .hero-text-title {font-size: 22px;}
  .hero-text-verse {font-size: 14px;}
}

/* 히어로 2번 - 예배시간 */
.hero-worship-slide {position: relative; width: 100%; aspect-ratio: 1280/500; background: url("/public/images/hero-2.jpg") center/cover no-repeat; display: flex; align-items: center; justify-content: flex-start;}
.hero-worship-slide::before {content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.25);}
.hero-worship-inner {position: relative; z-index: 1; text-align: left; color: #fff; width: 56%; max-width: 500px; margin-left: 8%;}
.hero-worship-title {font-family: 'Gowun Batang', serif; font-size: 40px; font-weight: 700; margin: 0 0 28px; letter-spacing: 6px; text-shadow: 0 2px 10px rgba(0,0,0,0.3);}
.hero-worship-table {display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid rgba(255,255,255,0.25); border-radius: 8px; overflow: hidden; backdrop-filter: blur(4px); background: rgba(255,255,255,0.08);}
.hero-worship-col {padding: 16px 20px;}
.hero-worship-col + .hero-worship-col {border-left: 1px solid rgba(255,255,255,0.2);}
.hero-worship-row {display: flex; padding: 2px 0; font-size: 15px; color: rgba(255,255,255,0.92);}
.hero-worship-row span:first-child {font-weight: 600; flex: 1;}
.hero-worship-row span:last-child {flex-shrink: 0; text-align: right; min-width: 130px;}
@media all and (max-width: 768px) {
  .hero-worship-title {font-size: 28px; letter-spacing: 3px; margin-bottom: 18px;}
  .hero-worship-row {font-size: 13px; padding: 3px 0;}
  .hero-worship-col {padding: 12px 14px;}
  .hero-worship-inner {width: 90%; margin-left: auto; margin-right: auto; text-align: center;}
}
@media all and (max-width: 480px) {
  .hero-worship-title {font-size: 22px;}
  .hero-worship-table {grid-template-columns: 1fr;}
  .hero-worship-col + .hero-worship-col {border-left: none; border-top: 1px solid rgba(255,255,255,0.2);}
}

/* 히어로 3번 - 양육과정 */
.hero-training-slide {position: relative; width: 100%; aspect-ratio: 1280/500; background: url("/public/images/hero-3.jpg") center/cover no-repeat; display: flex; align-items: center; justify-content: flex-end;}
.hero-training-slide::before {content: ''; position: absolute; inset: 0; background: rgba(255,255,255,0.3);}
.hero-training-inner {position: relative; z-index: 1; margin-right: 8%; text-align: center;}
.hero-training-title {font-family: 'Nanum Pen Script', cursive; font-size: 50px; font-weight: 400; color: #3a3a3a; margin: 0 0 24px; letter-spacing: 3px;}
.hero-training-box {display: inline-block; background: rgba(160,195,185,0.3); border-radius: 10px; padding: 24px 56px; text-align: center; margin-left: auto;}
.hero-training-box .training-period {font-size: 15px; color: #555; margin: 0 0 10px; font-weight: 600;}
.hero-training-box .training-subject {font-size: 22px; font-weight: 700; color: #2c2c2c; margin: 0 0 12px;}
.hero-training-box .training-time {font-size: 15px; color: #58b530; font-weight: 600; margin: 0 0 4px;}
.hero-training-box .training-label {font-size: 13px; color: #888; margin: 0;}
@media all and (max-width: 768px) {
  .hero-training-title {font-size: 36px;}
  .hero-training-inner {text-align: center; margin-right: auto; margin-left: auto;}
  .hero-training-box {padding: 18px 28px;}
  .hero-training-box .training-subject {font-size: 18px;}
}
@media all and (max-width: 480px) {
  .hero-training-title {font-size: 30px;}
  .hero-training-box .training-subject {font-size: 16px;}
  .hero-training-box .training-period, .hero-training-box .training-time {font-size: 13px;}
}

#content .major-content {overflow: hidden; margin-top: 75px; display: flex; flex-wrap: wrap;}
#content .major-content .board {flex: 1; overflow: hidden;}
#content .major-content .board ~ .board {margin-left: 45px;}
#content .major-content .board.event-day {margin-right: 0;}
#content .major-content .board h2 {position: relative; font-size: 2rem; color: #242b3f; font-weight: 700; margin-bottom: 30px; padding-bottom: 5px; border-bottom: 2px solid #242b3f;}
#content .major-content .board h2 span {color: #999; position: absolute; top: 50%; right: 0; transform: translateY(-50%); -webkit-transform: translateY(-50%);}
#content .major-content .board h2 span i {float: left;}
#content .major-content .board .title,
#content .major-content .board .tit {font-size: 20px; margin: 25px 0 15px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
#content .major-content .board .desc,
#content .major-content .board .desc a {color: #555; font-size: 18px; line-height: 1.8; text-align: justify;}
#content .major-content .board .desc {overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; word-wrap: break-word; line-height: 1.5em; height: 7.8em;}
#content .major-content .list-wrap-slide {position: relative;}

@media all and (max-width: 1200px) {
  #content .major-content {margin-top: 3.5rem;}
  #content .major-content .board.event-day {flex: initial; clear: both; width: 100% !important; margin-left: 0 !important; margin-top: 1.875em; width: 100%;}
  #content .major-content .board ~ .board {margin-left: 2.813rem;}
  #content .major-content .board {margin-right: 0; box-sizing: border-box;}
  #content .major-content .board h2 {font-size: 1.5rem; margin-bottom: 1.875rem; padding-bottom: 0.313rem;}
  #content .major-content .board .title {font-size: 18px; margin: 1.563rem 0 0.938rem;}
  #content .major-content .board .desc,
  #content .major-content .board .desc a {font-size: 16px;}
  #content .major-content .board img {width: 100%;}
  #content .major-content .board.mobile-hidden {display: none;}
}

@media all and (max-width: 1023px) and (min-width: 481px) {
  #content .major-content .list-wrap-slide .swiper-pagging {position: relative; bottom: 0 !important; margin-top: 0.938em;}
  #content .major-content .list-wrap-slide .swiper-pagging .swiper-pagination-bullet {border-color: #58b530;}
}

@media all and (max-width: 480px) {
  #content .major-content {display: block; margin-top: 2rem;}
  #content .major-content .board {width: 100%; margin-left: 0 !important;}
  #content .major-content .board:nth-child(2) {padding-left: 0; margin-top: 1.875em;}
}

.list-wrap-slide {overflow: hidden; position: relative;}
.list-wrap-slide img {width: 100%;}

#content .complex-content {overflow: hidden; margin-top: 75px;}
#content .complex-content > ul, #content .complex-content p {width: 370px; float: left; margin-right: 45px; border-bottom: 1px solid #242b3f;}
#content .complex-content > ul:last-child {margin-right: 0;}
#content .complex-content p {width: 370px; margin-right: 0; border: 0;}
#content .complex-content > ul >li {display: flex; height: 150px; border-top: 1px solid #242b3f; align-items: center;}
#content .complex-content > ul >li a {display: block;}
#content .complex-content > ul >li dl {display: table; table-layout: fixed; width: 100%;}
#content .complex-content > ul >li dl dt, #content .complex-content ul li dl dd {display: table-cell; vertical-align: middle;}
#content .complex-content > ul >li dl dt {width: 100px;}
#content .complex-content > ul >li dl dd {padding-left: 25px;}
#content .complex-content > ul >li dl dd span {display: block;}
#content .complex-content > ul >li dl dd span.subject {font-size: 18px; color: #222; margin-bottom: 10px; letter-spacing: -1px; line-height: 1.6;}
#content .complex-content > ul >li dl dd span.sns {font-size: 16px; color: #666; letter-spacing: -1px; font-weight: bold; margin-top: -3px; margin-bottom: 5px}
#content .complex-content > ul >li dl dd span.name {font-size: 16px; color: #999; letter-spacing: -1px;}
#content .complex-content > ul >li dl dd .list li {font-size: 1.3rem; padding-left: 10px; position: relative; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
#content .complex-content > ul >li dl dd .list li ~ li {margin-top: 5px;}
#content .complex-content > ul >li dl dd .list li:before {content: ''; display: block; width: 3px; height: 3px; border-radius: 100%; background: #333; position: absolute; top: 8px; left: 0;}
#content .complex-content.list > ul {width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 0 45px; border-bottom: none; padding-top: 1px;}
#content .complex-content.list > ul > li {border-bottom: 1px solid #242b3f; margin-top: -1px;}

@media all and (max-width: 1200px) {
  #content .complex-content {margin: 50px 0;}
  #content .complex-content > ul {width: calc(50% - 20px); margin-right: 0;}
  #content .complex-content > ul ~ ul {margin-left: 40px;}
  #content .complex-content .banner {margin-top: 20px;}
  #content .complex-content .banner img {width: 100%; height: auto}
  #content .complex-content > ul >li {height: 130px;}
  #content .complex-content > ul >li dl dt {width: 90px;}
  #content .complex-content > ul >li dl dd {padding-left: 23px;}
  #content .complex-content > ul >li dl dd span.subject {font-size: 16px; margin-bottom: 9px; letter-spacing: -1px;}
  #content .complex-content > ul >li dl dd span.name {font-size: 14px; letter-spacing: -1px;}
  #content .complex-content > ul >li dl dd span.sns {font-size: 14px; letter-spacing: -1px; margin-top: -3px; margin-bottom: 5px}
  #content .complex-content > ul >li dl dd .list li {padding-left: 9px; font-size: 0.875rem;}
  #content .complex-content > ul >li dl dd .list li ~ li {margin-top: 5px;}
  #content .complex-content > ul >li dl dd .list li:before {width: 3px; height: 3px; top: 7px;}

  .banner {text-align: center; width: 100% !important;}
}

@media all and (max-width: 768px) {
  #content .complex-content > ul {width: 100%; margin-left: 0 !important;}
}

.category-menu {overflow:hidden;border-radius:16px;}
.category-menu li {float:left;width:25%;text-align:center;padding:30px 0;}
.category-menu li span {display:block;}
.category-menu li span.icon {height:60px;display:flex;align-items:center;justify-content:center;padding-bottom:20px;}
.category-menu li span.icon svg {max-width:60px;max-height:60px;}
.category-menu li span.ico {padding-bottom:30px;}
.category-menu li span.title,
.category-menu li span.tit {padding-bottom:20px;font-size:28px;color:#fff;}
.category-menu li span.desc {padding-bottom:30px;font-size:16px;color:#fff;line-height:1.6;}
.category-menu li span.more {display:block;width:45px;height:45px;border-radius:100%;border:4px solid #fff;margin:0 auto;background:url("data:image/svg+xml,%3Csvg width='41' height='41' viewBox='0 0 41 41' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M18.6568 0.355686C19.6836 -0.127853 21.1513 0.0939489 21.9037 0.84631C22.7901 1.73274 22.7674 1.51525 22.821 9.62173L22.8707 17.1425L30.4007 17.1796C35.5686 17.2049 38.0681 17.2741 38.3689 17.4002C38.9327 17.6366 39.6872 18.3924 39.92 18.9543C40.4697 20.2806 39.8372 21.8103 38.4157 22.5925C37.7886 22.9376 37.706 22.9409 30.3375 22.9168L22.8931 22.8923L22.9175 30.2506C22.9312 34.2976 22.8849 37.7823 22.8146 37.9942C22.4891 38.9781 21.3973 39.8949 20.3591 40.0563C19.5886 40.1762 18.6188 39.8339 18.017 39.23C17.1291 38.3391 17.1151 38.2018 17.0888 30.1986L17.0648 22.8644L9.82964 22.822C5.85014 22.7987 2.40814 22.717 2.18059 22.6407C1.58865 22.4421 0.894245 21.8591 0.572736 21.2908C0.231923 20.688 0.139424 19.5182 0.381201 18.8671C0.605538 18.2632 1.35952 17.4818 1.95396 17.237C2.25331 17.1137 4.70646 17.0665 9.7539 17.0869L17.1174 17.1166L17.0971 9.67633C17.0789 2.99771 17.1048 2.18015 17.3489 1.69103C17.6764 1.03476 18.0715 0.63131 18.6568 0.355686Z' fill='white'/%3E%3C/svg%3E%0A") no-repeat 50% 50%;background-size:auto 60%;}
.category-menu li:nth-child(1) {background:linear-gradient(135deg, rgba(88,181,48,0.85), rgba(58,140,30,0.85));}
.category-menu li:nth-child(2) {background:linear-gradient(135deg, rgba(36,43,63,0.85), rgba(58,69,96,0.85));}
.category-menu li:nth-child(3) {background:linear-gradient(135deg, rgba(61,105,137,0.85), rgba(42,77,110,0.85));}
.category-menu li:nth-child(4) {background:linear-gradient(135deg, rgba(81,90,97,0.85), rgba(58,66,72,0.85));}
@media all and (max-width:1024px) {
  .category-menu li {width:50%;}
  .category-menu li span.tit {font-size:1.5rem;}
  .category-menu li span.desc {font-size:0.8rem;}
}

@media all and (max-width:500px) {
  .category-menu li {width:100%;}
}

/* Templates - 갤러리 상세 */
.gal-detail {max-width: 900px; margin: 0 auto;}

.gal-section {margin-top: 32px;}
.gal-section:first-child {margin-top: 0;}

.gal-heading {font-size: 20px; font-weight: 700; color: #242b3f; padding-bottom: 10px; margin-bottom: 14px; border-bottom: 2px solid #58b530; display: inline-block;}

.gal-section p {font-size: 18px; line-height: 1.8; color: #555;}
.gal-section p + p {margin-top: 10px;}

.gal-images {display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 40px;}
.gal-images img {width: 100%; border-radius: 12px; display: block;}
.gal-images img:only-child {grid-column: 1 / -1;}
.gal-images img:nth-child(3) {grid-column: 1 / -1;}

.gal-detail .btn-area {margin-top: 40px; width: 1200px; max-width: 100vw; margin-left: 50%; transform: translateX(-50%);}

@media screen and (max-width: 768px) {
  .gal-heading {font-size: 18px;}
  .gal-section p {font-size: 16px;}
  .gal-images {grid-template-columns: 1fr; gap: 12px; margin-top: 30px;}
  .gal-images img:nth-child(3) {grid-column: auto;}
  .gal-section {margin-top: 24px;}
}

@media screen and (max-width: 480px) {
  .gal-heading {font-size: 17px;}
  .gal-section p {font-size: 15px;}
  .gal-detail .btn-area {margin-top: 30px;}
}

/* Board - 목록 */
.list-type {clear: both; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 30px;}
.list-type:after {content: ""; display: block; clear: both;}
.list-type li .img {position: relative; width: 100%; height:220px;display:flex;justify-content:center;align-items:center; overflow: hidden; background-position: 50% 50%; background-size: cover; background-repeat: no-repeat; border-radius: 8px;}
.list-type li .img a {display: block;width:100%; height: 100%;display:flex;justify-content:center;align-items:center; overflow: hidden;}
.list-type li .img img {width: 100%;height:100%; object-fit: cover;}
.list-type li .text {margin-top: 15px;}
.list-type li .text > a > .tit {display: block; font-size: 18px; color: #242b3f; font-weight: 600; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; line-height: 1.4;}
.list-type li .text > a > .txt {display: block; margin-top: 12px; font-size: 16px; color: #555; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; word-wrap: break-word; line-height: 1.6; word-break: break-all;}
.list-type li .text .sale {display: block;}
.list-type li .text .sale:after {content: ""; display: block; clear: both;}
.list-type li .text .sale > .tit {float: left; color: #ff3b3b; font-weight: bold; font-size: 24px;}
.list-type li .text .sale > .account {float: right; font-size: 24px; color: #222222;}
.list-type li .info {margin-top: 15px; display: flex; flex-direction: row; align-items: center; font-size: 14px;}
.list-type li .info .right {margin-left: auto;}
.list-type li .info .favorite i {display: inline-block; width: 15px; height: 15px; margin-right: 5px; background: url("data: image/svg+xml,%3Csvg width='34' height='30' viewBox='0 0 34 30' fill='none' xmlns='http: //www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_1_7301)'%3E%3Cpath d='M31.0725 3.09937C27.2647 -0.649401 21.0659 -0.649401 17.2581 3.09937L17.1204 3.23712L16.6776 2.80419C12.8698 -0.934741 6.68088 -0.934741 2.87307 2.81403C1.02329 4.6343 0 7.05476 0 9.6425C0 12.2204 1.02329 14.6409 2.87307 16.471L16.2644 29.6556C16.5005 29.8819 16.8055 30.0098 17.1302 30.0098C17.4549 30.0098 17.7599 29.8819 17.9961 29.6556L31.0922 16.7661C32.942 14.9459 33.9652 12.5156 33.9652 9.93768C33.9652 7.35978 32.942 4.92948 31.0922 3.10921L31.0725 3.09937ZM31.4857 9.92784C31.4857 11.8465 30.7281 13.6471 29.3506 15.0049L17.1204 27.0482L4.59495 14.7097C3.21745 13.3519 2.45982 11.5513 2.45982 9.63266C2.45982 7.714 3.21745 5.91341 4.59495 4.55558C5.97245 3.19776 7.8124 2.44998 9.77042 2.44998C11.7284 2.44998 13.5684 3.19776 14.9459 4.55558L16.2447 5.83469C16.717 6.30698 17.4943 6.30698 17.9665 5.83469L18.9702 4.84092C21.8236 2.02689 26.4775 2.02689 29.3309 4.84092C30.7084 6.19875 31.4661 7.99934 31.4661 9.918L31.4857 9.92784Z' fill='%231F2125'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_1_7301'%3E%3Crect width='33.9456' height='30' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A") no-repeat 0 0; background-size: 100% 100%;}
.list-type li .info .user img {width: 25px; height: 25px; overflow: hidden; border-radius: 100%;}
.list-type li.mask .img:after {content: ''; display: flex; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5);}
.list-type li.ready .img:after {content: '비공개'; align-items: center; justify-content: center; color: #fff; font-size: 25px; font-family: 'Pretendard', sans-serif; font-weight: 700;}
@media screen and (max-width: 1024px) {
  .list-type {gap: 20px; box-sizing: border-box; max-width: 100%;}
  .list-type li .img {height:180px;}
  .list-type li .img img {width: 100%;}
  .list-type li .text {margin-top: 10px;}
  .list-type li .text > a > .tit {font-size: 1.4rem; text-align: center;}
  .list-type li .text > a > .txt {margin-top: 10px; font-size: 0.875rem;}
  .list-type li .text .sale > .tit {font-size: 1.375rem;}
  .list-type li .text .sale > .account {padding-top: 6px; font-size: 0.938rem;}
}

@media screen and (max-width: 768px) {
  .list-type {grid-template-columns: repeat(3, 1fr) !important;}
}

@media screen and (max-width: 540px) {
  .list-type {grid-template-columns: repeat(2, 1fr) !important;}
}

@media screen and (max-width: 420px) {
  .list-type {grid-template-columns: repeat(1, 1fr) !important;}
  .list-type li .img {height:auto;}
}

/* Board - 버튼 */
.btn-area {padding-top: 20px; text-align: center; display: flex; align-items: center; max-width: 1200px; margin-left: auto; margin-right: auto;}
.btn-area [class*=btn-type] ~ [class*=btn-type] {margin-left: 5px;}
.btn-area .right {margin-left: auto;}
.btn-area.line {margin-top: 30px; padding-top: 20px; border-top: 1px solid #e4e4e4;}
.btn-type {display: inline-flex; cursor: pointer; height: 38px; line-height: 38px; padding: 0 20px; text-align: center; font-size: 1.3rem; border-radius: 2px; vertical-align: middle; align-items: center;}
.btn-type i:first-child {margin-right: 5px;}
.btn-type.btn-yellow {border: 1px solid #f2d42a; color: #6a6a6a; background: #ffdf2c;}
.btn-type.btn-white {border: 1px solid #d8d8d8; color: #6a6a6a; background: #fff;}

@media screen and (max-width: 1200px) {
  .btn-type {font-size: 1rem;}
}

/* Etc */
.swiper-pagination {display: flex; align-items: center; justify-content: center; bottom: 20px !important;}
.swiper-pagination .swiper-pagination-bullet {border: 2px solid #fff; text-indent: -9999px; display: block; width: 12px; height: 12px; margin: 0 5px; border-radius: 12px; opacity: 1; background: transparent !important;}
.swiper-pagination .swiper-pagination-bullet-active {border: 2px solid #58b530; background: #58b530 !important;}

.ico-up {display: inline-block; width: 10px; height: 12px; background: url("data:image/svg+xml,%3Csvg width='38' height='45' viewBox='0 0 38 45' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19.4932 4.83901L4 20.1535L7.07997 23.1057L17.3465 12.9575V45H21.6398V12.9575L31.9064 23.1057L34.9863 20.1535L19.4932 4.83901Z' fill='%23333333'/%3E%3Cpath d='M0 0H38V5H0V0Z' fill='%23333333'/%3E%3C/svg%3E") no-repeat 0 0; background-size: auto 100%;}

.align-left {text-align: left !important;}
.align-center {text-align: center !important;}
.align-right {text-align: right !important;}

.margin-top50 {margin-top: 50px !important;}

/* Program (프로그램) */
.pgm-card {display: flex; gap: 40px; align-items: flex-start;}
.pgm-card + .pgm-card {margin-top: 60px; padding-top: 60px; border-top: 1px solid #f0f0f0;}
.pgm-card.pgm-reverse {flex-direction: row-reverse;}

.pgm-img {flex: 0 0 45%; overflow: hidden; border-radius: 12px;}
.pgm-img img {width: 100%; display: block; border-radius: 12px;}

.pgm-body {flex: 1; min-width: 0;}

.pgm-num {display: inline-block; font-size: 40px; font-weight: 800; color: #e8e8e8; line-height: 1; letter-spacing: -0.02em; margin-bottom: 8px;}

.pgm-title {font-size: 22px; font-weight: 700; color: #242b3f; margin-bottom: 8px;}

.pgm-subtitle {font-size: 18px; font-weight: 500; color: #58b530; margin-bottom: 12px; line-height: 1.4;}

.pgm-date {font-size: 14px; color: #999; margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid #f0f0f0;}

.pgm-text {font-size: 18px; line-height: 1.7; color: #555;}
.pgm-text p + p {margin-top: 12px;}

@media screen and (max-width: 1024px) {
  .pgm-card {gap: 30px;}
  .pgm-img {flex: 0 0 40%;}
  .pgm-title {font-size: 20px;}
  .pgm-subtitle {font-size: 17px;}
  .pgm-text {font-size: 16px;}
}

@media screen and (max-width: 768px) {
  .pgm-card,
  .pgm-card.pgm-reverse {flex-direction: column; gap: 20px;}
  .pgm-card + .pgm-card {margin-top: 40px; padding-top: 40px;}
  .pgm-img {flex: none; width: 100%;}
  .pgm-num {font-size: 32px;}
  .pgm-title {font-size: 19px;}
  .pgm-subtitle {font-size: 16px;}
  .pgm-text {font-size: 16px;}
}

@media screen and (max-width: 480px) {
  .pgm-card + .pgm-card {margin-top: 30px; padding-top: 30px;}
  .pgm-title {font-size: 17px;}
  .pgm-subtitle {font-size: 15px;}
  .pgm-text {font-size: 15px;}
  .pgm-date {font-size: 13px;}
}

/* Business (사업소개) */
.biz-section {margin-top: 40px;}
.biz-section:first-child {margin-top: 0;}

.biz-heading {font-size: 22px; font-weight: 700; color: #242b3f; padding-bottom: 12px; border-bottom: 1px solid #ddd; margin-bottom: 16px;}

.biz-text {font-size: 18px; line-height: 1.7; color: #555;}

.biz-list {list-style: none; padding: 0; margin: 0;}
.biz-list li {position: relative; font-size: 18px; line-height: 1.7; color: #555; padding-left: 20px;}
.biz-list li:before {content: ''; position: absolute; top: 12px; left: 0; width: 6px; height: 6px; border-radius: 50%; background: #58b530;}

.biz-table-wrap {margin-top: 16px; overflow-x: auto; -webkit-overflow-scrolling: touch;}
.biz-table {width: 100%; border-collapse: collapse; min-width: 400px;}
.biz-table th {padding: 12px 16px; background: #242b3f; color: #fff; font-size: 15px; font-weight: 500; text-align: left; white-space: nowrap;}
.biz-table td {padding: 12px 16px; border-bottom: 1px solid #e8e8e8; font-size: 15px; color: #555; line-height: 1.5;}
.biz-table tbody tr:hover {background: #f9f9f9;}
.biz-table th:first-child,
.biz-table td:first-child {width: 30%; white-space: nowrap;}

.biz-track-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 24px;}
.biz-track-card {background: #f7f8fa; border-radius: 12px; padding: 28px 24px; text-align: center; border: 1px solid #e8e8e8; transition: box-shadow 0.2s;}
.biz-track-card:hover {box-shadow: 0 4px 16px rgba(0,0,0,0.08);}
.biz-track-card h4 {font-size: 18px; font-weight: 700; color: #242b3f; margin-bottom: 16px;}
.biz-track-card h4 span {display: block; font-size: 14px; font-weight: 400; color: #999; margin-top: 4px;}
.biz-track-card ul {list-style: none; padding: 0; margin: 0;}
.biz-track-card li {font-size: 15px; color: #555; line-height: 2; position: relative;}
.biz-track-card li + li {border-top: 1px solid #e8e8e8;}

.biz-detail-list {list-style: none; padding: 0; margin: 24px 0 0;}
.biz-detail-list li {font-size: 16px; line-height: 1.7; color: #555; padding: 10px 0; border-bottom: 1px solid #f0f0f0;}
.biz-detail-list li:last-child {border-bottom: none;}
.biz-detail-list li strong {display: inline-block; color: #242b3f; font-weight: 600; margin-right: 8px; min-width: 100px;}

@media screen and (max-width: 768px) {
  .biz-heading {font-size: 19px;}
  .biz-text {font-size: 16px;}
  .biz-list li {font-size: 16px;}
  .biz-track-grid {grid-template-columns: 1fr; gap: 12px;}
  .biz-track-card {padding: 20px 16px;}
  .biz-detail-list li {font-size: 15px;}
  .biz-detail-list li strong {display: block; margin-bottom: 4px; min-width: auto;}
  .biz-table th,
  .biz-table td {font-size: 14px; padding: 10px 12px;}
}

@media screen and (max-width: 480px) {
  .biz-heading {font-size: 17px;}
  .biz-text {font-size: 15px;}
  .biz-list li {font-size: 15px;}
  .biz-detail-list li {font-size: 14px;}
}

/* 부서 소개 테이블 */
.dept-table {width: 100%; border-collapse: collapse; margin-top: 16px; font-size: 15px;}
.dept-table th, .dept-table td {padding: 14px 18px; border: 1px solid #e5e5e5; text-align: left; line-height: 1.6;}
.dept-table th {background: #f4f6f8; font-weight: 600; color: #242b3f; white-space: nowrap;}
.dept-table td {color: #555;}
/* 선교사 프로필 카드 */
.mission-heading {text-align: center; font-size: 20px; font-weight: 700; color: #242b3f; margin: 0 0 12px;}
.mission-tags-top {display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-bottom: 20px;}
.mission-card {display: flex; gap: 24px; align-items: stretch;}
.mission-card-img {flex: 1; min-width: 0; border-radius: 10px; overflow: hidden;}
.mission-card-img img {width: 100%; height: 100%; object-fit: cover; display: block;}
.mission-card-body {flex: 1; min-width: 0; display: flex;}
.mission-card-body .dept-table {width: 100%; flex: 1; margin: 0;}
@media all and (max-width: 768px) {
  .mission-card {flex-direction: column; gap: 16px;}
}

/* 사역 탭 뱃지 */
.mission-tags {display: flex; flex-wrap: wrap; gap: 6px;}
.mission-tag {display: inline-block; padding: 5px 14px; font-size: 13px; color: #58b530; background: #f0f8ec; border: 1px solid #d4ecc8; border-radius: 20px; line-height: 1.4;}

.dept-table.compact th, .dept-table.compact td {padding: 8px 14px; font-size: 14px;}
.dept-table.compact th {width: 80px;}
@media all and (max-width: 480px) {
  .dept-table th, .dept-table td {padding: 10px 12px; font-size: 14px;}
  .dept-table.compact th, .dept-table.compact td {padding: 6px 10px; font-size: 13px;}
}

/* 부서 사진 갤러리 */
.dept-gallery {display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 28px;}
.dept-gallery img {width: 100%; height: auto; border-radius: 8px; display: block; cursor: pointer; transition: opacity 0.2s;}
.dept-gallery img:hover {opacity: 0.85;}
@media all and (max-width: 768px) {
  .dept-gallery {grid-template-columns: repeat(2, 1fr);}
}
@media all and (max-width: 480px) {
  .dept-gallery {grid-template-columns: 1fr; gap: 10px;}
}

/* 이미지 모달 라이트박스 */
.img-modal-overlay {display: none; position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,0.9); align-items: center; justify-content: center; flex-direction: column;}
.img-modal-overlay.active {display: flex;}
.img-modal-close {position: absolute; top: 16px; right: 24px; font-size: 36px; color: #fff; cursor: pointer; z-index: 10; line-height: 1; opacity: 0.8; transition: opacity 0.2s;}
.img-modal-close:hover {opacity: 1;}
.img-modal-main {flex: 1; display: flex; align-items: center; justify-content: center; width: 100%; min-height: 0; padding: 20px; position: relative;}
.img-modal-main img {max-width: 100%; max-height: calc(100vh - 160px); object-fit: contain; border-radius: 6px; user-select: none;}
.img-modal-prev, .img-modal-next {position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border: none; background: rgba(255,255,255,0.15); color: #fff; font-size: 24px; border-radius: 50%; cursor: pointer; transition: background 0.2s; display: flex; align-items: center; justify-content: center;}
.img-modal-prev {left: 16px;}
.img-modal-next {right: 16px;}
.img-modal-prev:hover, .img-modal-next:hover {background: rgba(255,255,255,0.3);}
.img-modal-thumbs {display: flex; gap: 8px; justify-content: center; padding: 16px 20px; overflow-x: auto; flex-shrink: 0;}
.img-modal-thumbs img {width: 72px; height: 54px; object-fit: cover; border-radius: 6px; cursor: pointer; opacity: 0.5; transition: opacity 0.2s; border: 2px solid transparent; flex-shrink: 0;}
.img-modal-thumbs img:hover {opacity: 0.8;}
.img-modal-thumbs img.active {opacity: 1; border-color: #58b530;}
@media all and (max-width: 480px) {
  .img-modal-thumbs img {width: 56px; height: 42px;}
  .img-modal-prev, .img-modal-next {width: 36px; height: 36px; font-size: 18px;}
}

/* 오시는 길 - 카카오맵 약도 폰트 오버라이드 */
.root_daum_roughmap_landing {font-family: 'Pretendard', sans-serif !important;}
.root_daum_roughmap_landing .cont {font-size: 18px !important;}
.root_daum_roughmap_landing .section .tit {font-size: 18px !important; font-weight: 700 !important;}
.root_daum_roughmap_landing .section .title {font-size: 18px !important; font-weight: 700 !important;}
.root_daum_roughmap_landing .section .address .txt {font-size: 18px !important;}
.root_daum_roughmap_landing .section .phone .txt {font-size: 18px !important;}
.root_daum_roughmap_landing .section .wrap_list {font-size: 17px !important;}
.root_daum_roughmap_landing .section .wrap_list a {font-size: 17px !important;}
.root_daum_roughmap_landing .section .wrap_list li {font-size: 17px !important;}
.root_daum_roughmap_landing .section .txt_item {font-size: 17px !important;}

/* 헤더 네비게이션 + 햄버거 메뉴 (gnb 방식) */
.header-inner {width: 1200px; height: 100%; display: flex; align-items: center; justify-content: center; margin: 0 auto; position: relative;}
.header-logo {position: absolute; left: 0; top: 50%; transform: translateY(-50%); z-index: 2; display: flex; align-items: center; gap: 10px;}
.header-logo img {height: auto; width: auto; max-height: 40px;}
.gnb {position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 3;}
.gnb ul {display: flex; gap: 0; list-style: none; margin: 0; padding: 0;}
.gnb li {position: relative;}
.gnb li > a {display: block; padding: 0 16px; line-height: 65px; font-size: 1.083rem; font-weight: 500; color: #242b3f; letter-spacing: -0.02em; white-space: nowrap; text-decoration: none; transition: color 0.2s;}
.gnb li > a:hover {color: #0097e1;}
.gnb-menu li.on > a {color: #0097e1;}
.header-right {position: absolute; right: 0; top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 12px; z-index: 2;}
.profile {display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: none; border: none; cursor: pointer; border-radius: 50%; transition: all 0.2s;}
.profile svg {stroke: #242b3f; transition: stroke 0.2s;}
.profile:hover svg {stroke: #0097e1;}
.hamburger {display: none; flex-direction: column; gap: 5px; padding: 8px; z-index: 1200; background: none; border: none; cursor: pointer;}
.hamburger span {width: 24px; height: 2px; background: #242b3f; border-radius: 2px; transition: all 0.3s;}
.hamburger:hover span {background: #0097e1;}
.hamburger.active span:nth-child(1) {transform: rotate(45deg) translate(5px, 5px);}
.hamburger.active span:nth-child(2) {opacity: 0;}
.hamburger.active span:nth-child(3) {transform: rotate(-45deg) translate(5px, -5px);}
.gnb-brand {display: none;}
.gnb-close {display: none;}
.gnb-copyright {display: none;}
.gnb-toggle {display: none !important;}
.mega-menu {position: fixed; top: 65px; left: 0; width: 100vw; background: linear-gradient(to bottom, #0097e1 0%, #58b530 100%); opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s; z-index: 100; padding: 24px 0;}
.header:hover .mega-menu {opacity: 1; visibility: visible;}
.mega-menu-inner {display: flex; flex-direction: row; justify-content: center; gap: 0; max-width: 1200px; margin: 0 auto; width: 100%;}
.mega-col {flex: 1; padding: 0; text-align: center; border-right: 1px solid rgba(255,255,255,0.15); display: flex; flex-direction: column;}
.mega-col:last-child {border-right: none;}
.mega-col-title {font-size: 0.92rem; font-weight: 700; color: #fff; padding: 0 20px 10px; margin-bottom: 6px; border-bottom: 2px solid rgba(255,255,255,0.3);}
.gnb-sub {list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column;}
.gnb-sub li a {display: block; padding: 4px 20px; font-size: 0.88rem; font-weight: 500; color: rgba(255,255,255,0.9); white-space: nowrap; transition: all 0.2s; line-height: 1.35;}
.gnb-sub li a:hover {color: #fff; background: rgba(255,255,255,0.12);}

/* 빌드 출력 구조: 1차 <li> 안 .gnb-sub 는 mega-menu 와 중복되므로 숨김 */
.gnb-menu > li > .gnb-sub {display: none !important;}
.mobile-nav {position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: #0097e1; display: flex; flex-direction: column; opacity: 0; pointer-events: none; transition: opacity 0.4s ease; z-index: 1100; overflow-y: auto;}
.mobile-nav.open {opacity: 1; pointer-events: auto;}
.mobile-nav-close {position: absolute; top: 20px; right: 20px; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.15); border: none; border-radius: 50%; cursor: pointer; transition: background 0.2s; z-index: 1;}
.mobile-nav-close:hover {background: rgba(255,255,255,0.25);}
.mobile-nav-close svg {width: 24px; height: 24px; stroke: #fff; stroke-width: 2;}
.mobile-nav-hero {padding: 25px 28px 40px; flex-shrink: 0;}
.mobile-nav-hero-title {font-size: 3.2rem; font-weight: 800; color: #fff; line-height: 1.3; letter-spacing: -0.02em; margin-bottom: 8px;}
.mobile-nav-hero-sub {font-size: 1.6rem; font-weight: 400; color: rgba(255,255,255,0.7);}
.mobile-nav-links {display: flex; flex-direction: column; padding: 12px 0; flex: 1;}
.mobile-nav-item {border-bottom: 1px solid rgba(255,255,255,0.12); position: relative; display: flex; flex-wrap: wrap; align-items: center;}
.mobile-nav-item:first-child {border-top: 1px solid rgba(255,255,255,0.12);}
.mobile-nav-link {flex: 1; display: flex; align-items: center; padding: 20px 28px; font-size: 2.3rem; font-weight: 600; color: rgba(255,255,255,0.85); text-decoration: none; transition: all 0.2s;}
.mobile-nav-link:hover {color: #fff; background: rgba(255,255,255,0.05);}
.mobile-nav-toggle {display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; background: rgba(255,255,255,0.1); border: none; border-radius: 8px; font-size: 1.6rem; color: rgba(255,255,255,0.6); cursor: pointer; margin-right: 20px; transition: all 0.2s; flex-shrink: 0;}
.mobile-nav-toggle:hover {background: rgba(255,255,255,0.2); color: #fff;}
.mobile-nav-sub {width: 100%; max-height: 0; overflow: hidden; transition: max-height 0.3s ease; padding: 0 28px;}
.mobile-nav-sub.is-open {max-height: 500px; padding-bottom: 16px;}
.mobile-nav-sub a {display: block; padding: 12px 16px; font-size: 2.4rem; color: rgba(255,255,255,0.65); text-decoration: none; border-radius: 6px; transition: all 0.2s;}
.mobile-nav-sub a:hover {color: #fff; background: rgba(255,255,255,0.08);}
.mobile-nav-footer {padding: 20px 28px 32px; flex-shrink: 0;}
.mobile-nav-footer span {font-size: 0.85rem; color: rgba(255,255,255,0.35);}

@media screen and (max-width: 768px) {
  .header-inner {width: 100%; padding: 0 16px;}
  .gnb {display: none;}
  .mega-menu {display: none;}
  .hamburger {display: flex;}
}

/* 환영합니다 페이지 */
.welcome-greeting {display: flex; gap: 40px; align-items: stretch;}
.welcome-photo {flex-shrink: 0; width: 240px; border-radius: 10px; overflow: hidden;}
.welcome-photo img {width: 100%; height: 100%; object-fit: cover; display: block;}
.welcome-intro {flex: 1; min-width: 0; position: relative; padding-bottom: 50px;}
.welcome-intro .welcome-sign {position: absolute; bottom: 0; left: 0; text-align: left; font-family: 'Stylish', cursive; font-size: 22px; color: #242b3f; margin: 0;}
.welcome-intro .welcome-lead {font-size: 22px; font-weight: 800; color: #242b3f; margin: 0 0 20px; line-height: 1.5;}
.welcome-intro p {font-size: 16px; line-height: 1.9; color: #555; margin: 0 0 14px;}
.welcome-video-section {margin-top: 40px; position: relative; border-radius: 12px; overflow: hidden; min-height: 700px;}
.welcome-video-section::before {content: ''; position: absolute; inset: 0; background: url("/public/images/welcome-bg.jpg") center/cover no-repeat; animation: welcomeZoom 20s ease-in-out infinite alternate;}
.welcome-video-section::after {content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.5);}
@keyframes welcomeZoom {0% {transform: scale(1);} 100% {transform: scale(1.15);}}
.welcome-video-content {position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 60px; text-align: center;}
.welcome-video-content p {font-size: 17px; line-height: 2; color: #fff; margin: 0; opacity: 0; transform: translateY(20px); transition: opacity 0.8s, transform 0.8s;}
.welcome-video-content p.visible {opacity: 1; transform: translateY(0);}
.welcome-video-content p + p {margin-top: 20px;}
.welcome-video-content strong {color: #fff;}
.welcome-video-content .welcome-closing {font-style: italic; color: rgba(255,255,255,0.85);}

@media all and (max-width: 768px) {
  .welcome-greeting {flex-direction: column; gap: 24px; align-items: center;}
  .welcome-photo {height: 280px; width: 240px;}
  .welcome-intro .welcome-lead {font-size: 19px; text-align: center;}
  .welcome-intro p {font-size: 15px;}
  .welcome-video-content {padding: 24px 20px;}
  .welcome-video-content p {font-size: 14px;}
}

/* 등록 안내 페이지 */
.new-family-intro {text-align: center; margin-bottom: 50px;}
.new-family-intro img {height: 40px;}
.new-family-subtitle {font-size: 28px; font-weight: 800; color: #242b3f; margin-top: 16px;}

.step-process {display: flex; gap: 20px; margin-bottom: 50px;}
.step-card {flex: 1; text-align: center; background: #f8f9fb; border-radius: 12px; padding: 0 16px 24px; position: relative; padding-top: 50px;}
.step-badge {width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 22px; font-weight: 800; position: absolute; top: -20px; left: 50%; margin-left: -30px; box-shadow: 0 4px 12px rgba(0,0,0,0.15);}
.step-badge::after {content: attr(data-num);}
.step-icon {font-size: 28px; margin: 20px 0 12px; line-height: 1;}
.step-title {font-size: 15px; font-weight: 700; color: #242b3f; margin: 0 0 8px;}
.step-desc {font-size: 13px; color: #888; line-height: 1.7; margin: 0;}

.new-family-info {max-width: 50%; margin: 0 auto; text-align: center;}
.new-family-lead {font-size: 18px; line-height: 1.9; color: #444; font-weight: 500;}
.new-family-lead strong {color: #242b3f; font-weight: 500;}

@media all and (max-width: 768px) {
  .step-process {flex-direction: column; gap: 40px;}
  .step-card {padding-top: 50px;}
  .new-family-lead {font-size: 16px;}
}

/* 준비중 */
.page-preparing {text-align: center; padding: 80px 0; font-size: 18px; color: #999;}
.preparing-notice {text-align: center; padding: 80px 20px; border: 1px solid #e8e8e8; border-radius: 12px; background: #f9fafb;}
.preparing-icon {margin-bottom: 20px;}
.preparing-title {font-size: 22px; font-weight: 700; color: #242b3f; margin: 0 0 14px;}
.preparing-desc {font-size: 15px; color: #888; line-height: 1.8; margin: 0;}

/* 설교 페이지 */
.sermon-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;}
.sermon-card {display: block; text-decoration: none; background: #f8f9fb; border: 1px solid #e8e8e8; border-radius: 10px; overflow: hidden; transition: all 0.25s;}
.sermon-card:hover {border-color: rgba(88,181,48,0.6); box-shadow: 0 4px 16px rgba(0,151,225,0.12); transform: translateY(-3px);}
.sermon-card-inner {padding: 30px 24px; text-align: center;}
.sermon-card-title {font-size: 18px; font-weight: 700; color: #242b3f; margin: 0 0 12px;}
.sermon-card-desc {font-size: 14px; color: #888; line-height: 1.7; margin: 0 0 20px; min-height: 40px;}
.sermon-card-btn {display: inline-block; padding: 8px 28px; font-size: 13px; font-weight: 600; color: #fff; background: rgba(88,181,48,0.6); border-radius: 20px; transition: background 0.2s;}
.sermon-card:hover .sermon-card-btn {background: rgba(0,123,184,0.6);}
.sermon-card-live {background: linear-gradient(135deg, #fef3f3, #fff5f5); border-color: #e8d0d0;}
.sermon-card-live:hover {border-color: rgba(221,68,68,0.6); box-shadow: 0 4px 16px rgba(220,68,68,0.12);}
.sermon-card-live .sermon-card-btn {background: rgba(221,68,68,0.6);}
.sermon-card-live:hover .sermon-card-btn {background: rgba(187,51,51,0.6);}

@media all and (max-width: 768px) {
  .sermon-grid {grid-template-columns: repeat(2, 1fr); gap: 12px;}
  .sermon-card-inner {padding: 20px 16px;}
  .sermon-card-title {font-size: 16px;}
}
@media all and (max-width: 480px) {
  .sermon-grid {grid-template-columns: 1fr;}
}

/* 설교 목록 페이지 */
.sermon-list-grid {display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;}
.sermon-list-card {display: block; text-decoration: none; background: #fff; border: 1px solid #e8e8e8; border-radius: 10px; overflow: hidden; transition: all 0.25s;}
.sermon-list-card:hover {border-color: rgba(88,181,48,0.6); box-shadow: 0 4px 16px rgba(88,181,48,0.12); transform: translateY(-3px);}
.sermon-list-thumb {overflow: hidden; aspect-ratio: 1/1;}
.sermon-list-thumb img {width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s;}
.sermon-list-thumb.no-img {display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f5f5;color:#bbb;}
.sermon-list-thumb.no-img::before {content:'';display:block;width:48px;height:48px;margin-bottom:10px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='none' stroke='%23ccc' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2' ry='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='M21 15l-5-5L5 21'/%3E%3C/svg%3E") no-repeat center/contain;}
.sermon-list-thumb.no-img::after {content:'이미지 준비 중';font-size:13px;color:#bbb;}
.sermon-list-card:hover .sermon-list-thumb img {transform: scale(1.05);}
.sermon-list-info {padding: 16px 18px;}
.sermon-list-title {font-size: 15px; font-weight: 600; color: #242b3f; margin: 0 0 6px; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
.sermon-list-verse {font-size: 13px; color: #888;}

@media all and (max-width: 768px) {
  .sermon-list-grid {grid-template-columns: repeat(2, 1fr); gap: 16px;}
}
@media all and (max-width: 480px) {
  .sermon-list-grid {grid-template-columns: 1fr;}
}

.paging {display: flex; justify-content: center; align-items: center; gap: 4px; margin-top: 40px;}
.paging-btn {min-width: 36px; height: 36px; padding: 0 8px; border: 1px solid #ddd; border-radius: 6px; background: #fff; font-size: 14px; color: #555; cursor: pointer; transition: all 0.2s;}
.paging-btn:hover {border-color: rgba(88,181,48,0.6); color: rgba(88,181,48,0.6);}
.paging-btn.active {background: rgba(88,181,48,0.6); border-color: rgba(88,181,48,0.6); color: #fff; font-weight: 700;}
.paging-dots {font-size: 14px; color: #999; padding: 0 4px;}

/* 설교 영상 */
.sermon-video-wrap {margin-bottom: 32px;}
.sermon-video-header {margin-bottom: 16px; text-align: center;}
.sermon-video-title {font-size: 22px; font-weight: 800; color: #242b3f; margin: 0 0 10px; line-height: 1.4;}
.sermon-video-info {display: flex; align-items: center; justify-content: center; gap: 14px; font-size: 15px; color: #666;}
.sermon-video-pastor {font-weight: 600; color: #58b530;}
.sermon-video-date {color: #999;}
.sermon-video-ratio {position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: 10px; background: #000;}
.sermon-video-ratio iframe {position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
@media all and (max-width: 768px) {
  .sermon-video-title {font-size: 18px;}
  .sermon-video-info {font-size: 14px;}
}

/* 설교 목록 카드 (썸네일 없음) */
.sermon-noimg-grid {display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px;}
.sermon-noimg-card {display: flex; align-items: center; justify-content: space-between; gap: 16px; text-decoration: none; background: #fff; border: 1px solid #e5e5e5; border-radius: 8px; padding: 24px 22px; transition: all 0.25s;}
.sermon-noimg-card:hover {border-color: rgba(88,181,48,0.6); box-shadow: 0 4px 16px rgba(88,181,48,0.10); transform: translateY(-2px);}
.sermon-noimg-title {font-size: 16px; font-weight: 700; color: #242b3f; margin: 0 0 10px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;}
.sermon-noimg-meta {display: flex; align-items: center; gap: 12px; font-size: 13px; color: #999;}
.sermon-noimg-meta span {white-space: nowrap;}
.sermon-noimg-total {font-size: 14px; color: #666; margin-bottom: 20px;}
.sermon-noimg-total strong {color: #58b530; font-weight: 700;}
.sermon-noimg-body {flex: 1; min-width: 0;}
.sermon-noimg-yt {width: 32px; height: 23px; flex-shrink: 0; opacity: 0.7; transition: opacity 0.2s;}
.sermon-noimg-card:hover .sermon-noimg-yt {opacity: 1;}

@media all and (max-width: 768px) {
  .sermon-noimg-grid {grid-template-columns: 1fr; gap: 14px;}
  .sermon-noimg-card {padding: 18px 16px;}
  .sermon-noimg-title {font-size: 15px;}
}

/* 오시는 길 페이지 */
.location-map {margin-bottom: 30px; border-radius: 8px; overflow: hidden; border: 1px solid #ddd;}
.root_daum_roughmap_landing {width: 100%;}
.location-info {background: #f8f9fb; border-radius: 8px; padding: 28px 32px;}
.location-info-item {display: flex; align-items: center; padding: 10px 0; border-bottom: 1px solid #eee;}
.location-info-item:last-child {border-bottom: none;}
.location-label {display: inline-block; width: 50px; font-size: 15px; font-weight: 700; color: #242b3f; flex-shrink: 0;}
.location-value {font-size: 15px; color: #555;}

@media all and (max-width: 768px) {
  .location-info {padding: 20px 20px;}
  .location-label {font-size: 14px;}
  .location-value {font-size: 14px;}
  .root_daum_roughmap_landing .cont {font-size: 14px !important;}
  .root_daum_roughmap_landing .section .tit {font-size: 14px !important;}
  .root_daum_roughmap_landing .section .title {font-size: 14px !important;}
  .root_daum_roughmap_landing .section .address .txt {font-size: 14px !important;}
  .root_daum_roughmap_landing .section .phone .txt {font-size: 14px !important;}
  .root_daum_roughmap_landing .section .wrap_list {font-size: 13px !important;}
  .root_daum_roughmap_landing .section .wrap_list a {font-size: 13px !important;}
  .root_daum_roughmap_landing .section .wrap_list li {font-size: 13px !important;}
  .root_daum_roughmap_landing .section .txt_item {font-size: 13px !important;}
}

/* 예배 시간 페이지 */
.worship-section-title {font-size: 20px; font-weight: 700; color: #242b3f; margin: 40px 0 20px; padding-bottom: 12px; border-bottom: 2px solid #242b3f;}
.worship-section-title:first-child {margin-top: 0;}
.worship-table-wrap {overflow-x: auto; margin-bottom: 10px;}
.worship-table {width: 100%; border-collapse: collapse;}
.worship-table thead th {background: rgba(88,181,48,0.5); color: #fff; font-size: 14px; font-weight: 600; padding: 14px 16px; text-align: center;}
.worship-table tbody td {padding: 14px 16px; font-size: 15px; color: #444; border-bottom: 1px solid #eee; text-align: center;}
.worship-table tbody tr:hover {background: #f8f9fb;}
.worship-name {font-weight: 600; color: #242b3f; white-space: nowrap;}
.worship-note {font-size: 13px; color: #888;}

@media all and (max-width: 768px) {
  .worship-table thead th, .worship-table tbody td {padding: 10px 8px; font-size: 14px;}
}

/* 섬기는 분들 페이지 */
.staff-section-title {font-size: 20px; font-weight: 700; color: #242b3f; margin: 40px 0 20px; padding-bottom: 12px; border-bottom: 2px solid #242b3f;}
.staff-section-title:first-child {margin-top: 0;}

.staff-grid {display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; margin-bottom: 10px;}
.staff-grid-2, .staff-grid-3 {display: flex; gap: 20px; margin-bottom: 10px;}
.staff-grid-2 .staff-card, .staff-grid-3 .staff-card {width: 214px; flex-shrink: 0;}
.staff-grid-2 .staff-card .staff-photo img, .staff-grid-3 .staff-card .staff-photo img {width: 214px; height: 265px;}
.staff-grid-4 {grid-template-columns: repeat(2, 1fr); gap: 30px;}
.staff-grid-4 .staff-card {border-radius: 12px;}
.staff-grid-4 .staff-photo img {height: auto; aspect-ratio: auto; object-fit: cover;}
.staff-grid-6 {display: flex; flex-wrap: wrap; gap: 20px;}
.staff-grid-6 .staff-card {width: 214px; flex-shrink: 0;}
.staff-grid-6 .staff-card .staff-photo img {width: 214px; height: 265px;}
.staff-card {text-align: center; background: #f8f9fb; border-radius: 8px; overflow: hidden;}
.staff-photo {overflow: hidden;}
.staff-photo img {width: 100%; height: 200px; object-fit: cover; object-position: top; display: block;}
.staff-info {padding: 16px 12px;}
.staff-name {display: block; font-size: 18px; font-weight: 700; color: #242b3f; margin-bottom: 6px;}
.staff-role {display: block; font-size: 13px; color: #58b530; font-weight: 600; margin-bottom: 4px;}
.staff-desc {display: block; font-size: 12px; color: #888; line-height: 1.5;}

.staff-list-simple {display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-bottom: 10px;}
.staff-list-item {display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid #eee;}
.staff-list-item strong {font-size: 18px; color: #242b3f; white-space: nowrap;}
.staff-list-item span {font-size: 13px; color: #888;}

@media all and (max-width: 1024px) {
  .staff-grid {grid-template-columns: repeat(3, 1fr);}
  .staff-grid-6 {grid-template-columns: repeat(3, 1fr);}
  .staff-list-simple {grid-template-columns: repeat(2, 1fr);}
}
@media all and (max-width: 768px) {
  .staff-grid {grid-template-columns: repeat(2, 1fr);}
  .staff-grid-4 {grid-template-columns: 1fr;}
  .staff-grid-6 {grid-template-columns: repeat(2, 1fr);}
  .staff-list-simple {grid-template-columns: 1fr;}
}

/* 연혁 페이지 */
.history-tabs {display: flex; gap: 0; margin-bottom: 40px; border-bottom: 2px solid #242b3f;}
.history-tab {flex: 1; padding: 14px 0; font-size: 15px; font-weight: 600; color: #888; background: #f5f5f5; border: 1px solid #ddd; border-bottom: none; cursor: pointer; transition: all 0.2s;}
.history-tab:first-child {border-radius: 6px 0 0 0;}
.history-tab:last-child {border-radius: 0 6px 0 0;}
.history-tab.active {background: #242b3f; color: #fff; border-color: #242b3f;}
.history-tab:hover:not(.active) {background: #eee;}

.history-timeline {position: relative; padding-left: 20px; border-left: 2px solid #ddd;}
.history-year-group {margin-bottom: 32px; position: relative;}
.history-year-group:last-child {margin-bottom: 0;}
.history-year {font-size: 22px; font-weight: 800; color: #242b3f; margin-bottom: 12px; position: relative;}
.history-year::before {content: ''; position: absolute; left: -27px; top: 8px; width: 12px; height: 12px; border-radius: 50%; background: #58b530; border: 2px solid #fff; box-shadow: 0 0 0 2px #58b530;}
.history-items {padding-left: 10px;}
.history-item {font-size: 15px; color: #555; line-height: 1.8; padding: 4px 0;}
.history-date {display: inline-block; min-width: 55px; font-weight: 600; color: #242b3f; margin-right: 8px;}

@media all and (max-width: 768px) {
  .history-tab {font-size: 14px; padding: 12px 0;}
  .history-year {font-size: 20px;}
  .history-item {font-size: 14px;}
}

/* 교회 비전 페이지 */
.vision-section {margin-bottom: 60px; text-align: center;}
.vision-section:last-child {margin-bottom: 0;}
.vision-heading {font-size: 28px; font-weight: 800; color: #242b3f; margin: 0 0 24px; letter-spacing: 2px;}
.vision-quote-box {background: rgba(88,181,48,0.08); border: 1px solid rgba(88,181,48,0.2); border-radius: 8px; padding: 32px 40px; margin-bottom: 36px; max-width: 500px; margin-left: auto; margin-right: auto;}
.vision-quote {font-size: 18px; line-height: 1.9; color: #333; margin: 0 0 12px; font-style: italic;}
.vision-verse {font-size: 15px; font-weight: 700; color: #58b530; margin: 0;}
.vision-infographic {margin-top: 10px;}
.vision-infographic img {max-width: 100%; height: auto;}

@media all and (max-width: 768px) {
  .vision-heading {font-size: 24px;}
  .vision-quote-box {padding: 20px 24px;}
  .vision-quote {font-size: 15px;}
}

/* 교육 안내 페이지 */
.edu-intro {margin-bottom: 40px;}
.edu-intro p {font-size: 16px; line-height: 1.9; color: #555; margin: 0 0 16px;}
.edu-intro strong {color: #242b3f; font-weight: 600;}
.edu-info-box {margin-bottom: 36px; padding: 28px 32px; background: #f8f9fb; border-radius: 8px; border-left: 3px solid #58b530;}
.edu-heading {font-size: 18px; font-weight: 700; color: #242b3f; margin: 0 0 16px;}
.edu-detail-list {list-style: none; margin: 0; padding: 0;}
.edu-detail-list li {font-size: 15px; color: #555; line-height: 1.8;}
.edu-detail-list li strong {display: inline-block; width: 50px; color: #242b3f; font-weight: 600; margin-right: 8px;}
.edu-curriculum {display: grid; grid-template-columns: 1fr 1fr; gap: 0;}
.edu-week {display: flex; align-items: center; padding: 12px 0; border-bottom: 1px solid #eee;}
.edu-week-num {display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 26px; background: #58b530; color: #fff; font-size: 13px; font-weight: 700; border-radius: 4px; margin-right: 12px; flex-shrink: 0;}
.edu-week-title {font-size: 15px; color: #444;}

@media all and (max-width: 768px) {
  .edu-info-box {padding: 20px 20px;}
  .edu-curriculum {grid-template-columns: 1fr;}
}

/* 통합 반응형 푸터 */
.footer {background: #242b3f; color: #ccc; font-size: 15px; line-height: 1.6; margin-top: 60px;}
.footer-inner {max-width: 1200px; margin: 0 auto; padding: 40px 30px 30px;}

.footer-top {display: flex; justify-content: space-between; align-items: center; padding-bottom: 24px; border-bottom: 1px solid rgba(255,255,255,0.15);}
.footer-nav ul {display: flex; gap: 28px; list-style: none; margin: 0; padding: 0;}
.footer-nav ul li a {color: #fff; font-size: 15px; font-weight: 500; text-decoration: none; transition: color 0.2s;}
.footer-nav ul li a:hover {color: #0097e1;}
.footer-sns {display: flex; gap: 12px; align-items: center;}
.footer-sns a {display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.1); transition: background 0.2s;}
.footer-sns a:hover {background: rgba(255,255,255,0.25);}
.footer-sns a img {height: 20px; width: auto;}

.footer-body {display: flex; justify-content: space-between; gap: 40px; padding: 28px 0; border-bottom: 1px solid rgba(255,255,255,0.08);}
.footer-info {flex: 1;}
.footer-logo {font-size: 18px; font-weight: 700; color: #fff; margin: 0 0 14px;}
.footer-addr p {font-size: 14px; color: #999; line-height: 1.8; margin: 0;}
.footer-highlight {color: #ccc; font-weight: 700; text-decoration: none;}
.footer-highlight:hover {color: #fff;}

.footer-contact {flex-shrink: 0; text-align: right;}
.footer-hours {font-size: 18px; font-weight: 700; color: #bbb; margin: 0 0 14px; padding-bottom: 0; border-bottom: none;}
.footer-tel {font-size: 20px; font-weight: 700; color: #58b530; margin: 0; letter-spacing: 1px;}
.footer-fax {font-size: 15px; color: #bbb; margin: 4px 0 0;}
.footer-email {font-size: 14px; color: #999; margin: 2px 0 0;}

.footer-bottom {padding-top: 20px; text-align: center;}
.footer-copyright {font-size: 13px; color: #999; margin: 0; padding-left: 0;}

@media screen and (max-width: 1024px) {
  .footer-inner {padding: 32px 24px 24px;}
  .footer-body {flex-direction: column; gap: 24px;}
  .footer-contact {text-align: left;}
}

@media screen and (max-width: 768px) {
  .footer {margin-top: 40px;}
  .footer-inner {padding: 28px 20px 20px;}
  .footer-top {flex-direction: column; gap: 16px; align-items: flex-start;}
  .footer-nav ul {flex-wrap: wrap; gap: 16px;}
  .footer-logo {font-size: 16px;}
  .footer-tel {font-size: 18px;}
}

@media screen and (max-width: 480px) {
  .footer-inner {padding: 24px 16px 16px;}
  .footer-nav ul {gap: 12px;}
  .footer-nav ul li a {font-size: 14px;}
  .footer-addr p {font-size: 13px;}
  .footer-tel {font-size: 17px;}
  .footer-fax {font-size: 14px;}
}

/* 콘텐츠 등록 준비 중 placeholder (빌드 자동 주입) */
.sub-empty-content {display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;}
.sub-empty-content svg {width:64px;height:64px;stroke:#ccc;margin-bottom:20px;}
.sub-empty-content h3 {font-size:1.15rem;font-weight:700;color:#333;margin-bottom:8px;}
.sub-empty-content p {font-size:0.88rem;color:#999;line-height:1.7;}