﻿@font-face {
    font-family: 'notoserifkr-medium';
    src: url('fonts/notoserifkr-medium.otf') format('opentype');
}

.notoserifkr { font-family: 'notoserifkr-medium'; }
.no-padding { padding-right: 0; padding-left: 0; }
.no-margin { margin-right: 0; margin-left: 0; }

/* common */
#main-slider { position: relative; }
.nav-tabs { border-bottom: none; }
.plus { position: absolute; top: 0; right: 0; }
.plus:hover { opacity: 0.8; transition: 0.3s all ease; }
.slider .move-btn { top: 50% !important; }
.slider .slider-wrapper .slide p { width: 100%; }
.slider .slider-wrapper .slide img { width: 100%; }
.box { display: inline-block; position: relative; opacity: 0; top: 50px; }

:root { --gap: 30px; --width1: 30%; --width2: 6; }
.black { color: #000; }
.white { color: #fff; }
a { color: inherit; text-decoration: none; }

.slider .slider-dots { display: inline-flex; justify-content: center; gap: 10px; }
.slider .slider-dots .each-dot { width: 20px !important; height: 20px !important; background-color: #fff !important; transition: 0.3s all ease; }
.slider .slider-dots .each-dot.active { width: 40px !important; height: 20px !important; background-color: #000 !important; transition: 0.3s all ease; border-radius: 15px !important; }

/* =========================================
   Main 1 (welcome)
   ========================================= */
/* =========================================
   Main 1 (welcome) - 박스 겹침 및 깨짐 완벽 해결
   ========================================= */
#main1 { background-color: #F7F7F8; background-image: url('../images/2_welcome_bg.jpg'); background-size: cover; background-repeat: no-repeat; background-position: center; }
#main1 .main1M { display: flex; flex-direction: row; justify-content: space-between; width: 100%; align-items: center; padding: 70px 0 65px; }
#main1 .main1M .main1R { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 15px; }
#main1 .main1M .main1R .main1RBOX { 
    position: relative; 
    width: 170px; 
    height: 170px; /* 패딩 대신 명확한 높이 지정으로 아이콘/글자 충돌 방지 */
    padding: 0; 
    background-color: #fff; 
    border-radius: 12px; 
    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); 
    box-sizing: border-box; 
}
#main1 .main1M .main1R .main1RBOX:hover { transform: translateY(-8px); box-shadow: 0 15px 35px rgba(0,0,0,0.08); }
#main1 .main1M .main1R .main1RBOX:hover:before { background-color: rgba(255,255,255,.8); }
#main1 .main1M .main1R .main1RBOX .main1IMG { 
    display: inline-block; 
    position: absolute; 
    left: 50%; 
    top: 35%; 
    width: 55px; /* 이미지 영역 고정 */
    height: 55px; 
    transform: translate(-50%, -50%); 
}
#main1 .main1M .main1R .main1RBOX .main1IMG .on,
#main1 .main1M .main1R .main1RBOX .main1IMG .off { 
    position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; 
    transform: translate(-50%, -50%); 
    background-repeat: no-repeat; 
    background-size: contain; /* cover에서 contain으로 변경하여 잘림 방지 */
    background-position: center; 
}
#main1 .main1M .main1R .main1RBOX h1 { 
    font-size: 17px; 
    margin: 0; 
    position: absolute; 
    width: 100%; 
    text-align: center; 
    left: 0; 
    top: 75%; 
    transform: translateY(-50%); 
    word-break: keep-all; /* 한글 텍스트 이상하게 줄바꿈 되는 현상 방지 */
    font-weight: bold; 
}

#main1 .main1M .main1L { }
#main1 .main1M .main1L hr { margin: 0; width: 30%; border-color: #000; }
#main1 .main1M .main1L h1 { margin: 45px 0 30px; font-size: 36px; }
#main1 .main1M .main1L h5 { margin: 0 0 20px; font-size: 20px; line-height: 1.5; color: #888888; }
#main1 .main1M .main1L a { padding: 25px 100px; display: inline-block; background-color: #022958; }
#main1 .main1M .main1L a:hover h2 { color: #022958; }
#main1 .main1M .main1L a:hover:before { background-color: #fff; }
#main1 .main1M .main1L a h2 { margin: 0; position: absolute; transform: translate(-50%, -50%); font-size: 20px; color: #fff; width: 100%; text-align: center; }

/* =========================================
   Main 2 (Worship, Praise, Choir)
   ========================================= */
#main2 { }
#main2 .main2M { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 30px; padding: 90px 0 80px; }
#main2 .main2M .main2SDM { padding: 30px; overflow: hidden; height: 500px; position: relative; background-repeat: no-repeat; background-position: center; background-size: cover; }
#main2 .main2M .sermonSDM { background-color: #225CAC; }
#main2 .main2M .PraiseSDM { background-color: #2E7AB0; }
#main2 .main2M .EventSDM { background-color: #1F95B7; }
#main2 .main2M .main2SDM .main2T { padding-bottom: 25px; position: relative; }
#main2 .main2M .main2SDM .main2T::before { content: url('../images/3_btn01_more.png'); position: absolute; right: 0; top: 0; }
#main2 .main2M .main2SDM .main2T h1 { margin: 0; color: #000; font-size: 30px; display: inline-flex; align-items: baseline; flex-direction: row; gap: 10px; }
#main2 .main2M .main2SDM:hover .main2T h1 { color: #364ba4; }
#main2 .main2M .main2SDM .main2T h1 span { color: rgba(0, 0, 0, 0.5); font-size: 24px; }
#main2 .main2M .main2SDM .main2SD { overflow: hidden; }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide a { text-decoration: none; color: #000; }
#main2 .main2M .main2SDM:hover .main2SD .contentSlideWrapper .contentSlide a { color: #364ba4; }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2IMG { position: relative; height: 0; padding-bottom: 56.25%; background-repeat: no-repeat; background-position: center; background-size: cover; }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2IMG::before { content: url('../images/3_btn_play_off.png'); position: absolute; right: 5%; bottom: 5%; }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper:hover .contentSlide .main2IMG::before { content: url('../images/3_btn_play_on.png'); transition: 0.3s all ease; }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2BOX { padding-top: 50px; }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2BOX img { margin-top: 25px; transition: transform 0.3s ease; }
#main2 .main2M .main2SDM:hover .main2SD .contentSlideWrapper .contentSlide .main2BOX img { transform: translateX(5px); }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2BOX .main2HF { padding: 10px 30px; display: inline-block; position: relative; margin-top: 10px; transition: transform 0.3s ease; }
#main2 .main2M .main2SDM .PraiseSD .contentSlideWrapper .contentSlide .main2BOX .main2HF { margin-top: 50px; }
#main2 .main2M .main2SDM:hover .main2SD .contentSlideWrapper .contentSlide .main2BOX .main2HF { transform: translateX(8px); }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2BOX .main2HF .on,
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2BOX .main2HF .off { position: absolute; width: 100%; height: 100%; top: 0; right: 0; background-repeat: no-repeat; background-position: center; transition: 0.3s all ease; }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2BOX .main2HF .on { opacity: 0; }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2BOX .main2HF .off { opacity: 1; }
#main2 .main2M .main2SDM:hover .main2SD .contentSlideWrapper .contentSlide .main2BOX .main2HF .on { opacity: 1; transition: 0.3s all ease; }
#main2 .main2M .main2SDM:hover .main2SD .contentSlideWrapper .contentSlide .main2BOX .main2HF .off { opacity: 0; transition: 0.3s all ease; }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2BOX h1 { font-size: 25px; margin: 0; font-weight: bold; padding-bottom: 25px; word-break: keep-all; }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2BOX h2 { font-size: 18px; margin: 0; padding-bottom: 10px; }
#main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2BOX h5 { font-size: 20px; margin: 0; }
#main2 .main2M .main2SDM .main2PNBT { display: inline-block; position: absolute; bottom: 0; right: 0; }
#main2 .main2M .main2SDM .main2PNBT .main2P:before { top: 50%; transform: translate(0, -50%); content: ""; width: 2%; height: 15px; position: absolute; right: 0; background-color: #000; }
#main2 .main2M .main2SDM .main2PNBT .main2P,
#main2 .main2M .main2SDM .main2PNBT .main2N { padding: 25px; display: inline-block; position: relative; float: left; background-color: #fff; }
#main2 .main2M .main2SDM .main2PNBT .main2P img,
#main2 .main2M .main2SDM .main2PNBT .main2N img { position: absolute; transform: translate(-50%, -50%); }
#main2 .main2M .main2SDM .main2PAG { display: inline-flex; gap: 10px; position: absolute; bottom: 5%; left: 10%; }
#main2 .main2M .main2SDM .main2PAG .swiper-pagination-bullet { background-color: rgba(255,255,255,.9); }
#main2 .main2M .main2SDM .main2PAG .swiper-pagination-bullet-active { background-color: rgba(255,255,255,1); }

/* =========================================
   Main 3 (안내 / Flexbox 적용하여 탈주 방지)
   ========================================= */
#main3 { background-image: url('../images/004_info_bg.png'); background-size: cover; background-repeat: no-repeat; background-position: center; padding: 0 0 70px; }
#main3 .main3M { }
#main3 .main3M .main3T { padding: 80px 0 90px; }
#main3 .main3M .main3T h1 { margin: 0; text-align: center; font-size: 36px; padding-bottom: 30px; color: #fff; }
#main3 .main3M .main3T h2 { margin: 0; text-align: center; font-size: 20px; color: #000; line-height: 1.5; color: #fff; }
#main3 .main3M .main3B { 
    display: flex; 
    flex-wrap: wrap; 
    justify-content: center; 
    gap: 30px; 
    width: 100%; 
}
#main3 .main3M .main3B .main3BOX { 
    display: flex; 
    flex-direction: column; 
    justify-content: flex-end; 
    align-items: center; 
    width: calc(33.333% - 20px); 
    height: 350px; 
    padding-bottom: 50px; 
    position: relative; 
    background-color: #fff; 
    background-repeat: no-repeat; 
    background-position: center; 
    background-size: cover; 
    border-radius: 12px; 
    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); 
    box-sizing: border-box; 
	text-decoration:none;
}
#main3 .main3M .main3B .main3BOX:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0,0,0,0.12); }
#main3 .main3M .main3B .main3BOX .main3BT { position: relative; width: 100%; text-align: center; color: #022958; }
#main3 .main3M .main3B .main3BOX .main3BT img { padding-bottom: 20px; }
#main3 .main3M .main3B .main3BOX .main3BT h1 { margin: 0; font-size: 25px; text-align: center; color: #252525; padding-bottom: 15px; font-weight: bold; }
#main3 .main3M .main3B .main3BOX .main3BT h5 { font-size: 16px; margin: 0; line-height: 1.5; text-align: center; padding-bottom: 75px; color: rgba(0, 0, 0, .8); }

/* =========================================
   Main 4 (Quick)
   ========================================= */
#main4 { background-image: url('../images/5_quick_bg.jpg'); background-size: cover; background-repeat: no-repeat; background-position: center; padding: 75px 0 60px; }
#main4 .main4M { display: inline-flex; justify-content: center; align-items: center; width: 100%; gap: 30px; }
#main4 .main4M a { padding: 35px 100px; border: 1px solid #fff; }
#main4 .main4M a .on { opacity: 0; }
#main4 .main4M a .off { opacity: 1; }
#main4 .main4M a:hover .on { opacity: 1; transition: 0.3s all ease; }
#main4 .main4M a:hover .off { opacity: 0; transition: 0.3s all ease; }
#main4 .main4M a:hover:before { background-color: #74AFBD; }
#main4 .main4M a .on,
#main4 .main4M a .off { position: absolute; transform: translate(-50%, -50%); color: #fff; margin: 0; display: inline-flex; align-items: center; justify-content: center; gap: 5px; width: 100%; }
#main4 .main4M a .on span,
#main4 .main4M a .off span { font-size: 20px; }

/* =========================================
   Main 5 (Gallery)
   ========================================= */
#main5 { overflow: hidden; }
#main5 .main5T { text-align: center; }
#main5 .main5T h1 { margin: 0; font-size: 36px; font-weight: bold; letter-spacing: .5px; text-align: center; padding: 60px 0 75px; }
#main5 .main5M { }
#main5 .main5M .main5SD { padding: 0 0 90px; }
#main5 .main5M .main5SD .contentSlide { transition: all 0.4s ease; }
#main5 .main5M .main5SD .contentSlide a { height: 240px; width: 100%; display: inline-block; position: relative; overflow: hidden; border-radius: 12px; }
#main5 .main5M .main5SD .contentSlide:hover { transform: translateY(-5px); }
#main5 .main5M .main5SD .contentSlide:hover a { box-shadow: 4.5px 6.6px 21px 0 rgba(0, 0, 0, 0.26); transition: all 1s; }
#main5 .main5M .main5SD .contentSlide a .galleryIMG { position: absolute; background-size: cover; background-position: center; background-repeat: no-repeat; width: 100%; height: 100%; }
#main5 .main5M .main5SD .contentSlide:hover a .galleryIMG { transform: scale(1.05); transition: transform 0.6s cubic-bezier(0.25, 0.8, 0.25, 1); }
#main5 .main5M .main5SD .contentSlide a .galleryT { width: 100%; height: 100%; position: absolute; display: inline-flex; color: #fff; flex-direction: column; justify-content: center; align-items: center; gap: 10px; z-index: 1; /*background-color: rgba(0,0,0,.5);*/ opacity: 0; transition: 0.3s all ease; }
#main5 .main5M .main5SD .contentSlide a .galleryT:hover { opacity: 1; transition: 0.3s all ease; box-shadow: 4.5px 6.6px 21px 0 rgba(0, 0, 0, 0.26); }
#main5 .main5M .main5SD .contentSlide a .galleryT h1 { margin: 0; font-size: 28px; line-height: 1.5; width: 95%; overflow: hidden; white-space: normal; word-wrap: break-word; display: -webkit-box; word-break: keep-all; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
#main5 .main5M .main5SD .contentSlide a .galleryT h5 { margin: 0; font-size: 20px; line-height: 1.5; }
#main5 .main5M .main5BTN { display: inline-flex; width: 100%; align-items: center; justify-content: space-between; padding: 0 0 90px; }
#main5 .main5M .main5BTN .swiper-pagination-bullet { width: 12px; height: 12px; margin: 5px; transition: 0.3s all ease; background-color: #C1C2C4; opacity: 1; }
#main5 .main5M .main5BTN .swiper-pagination-bullet:hover { background-color: #be3b31; transition: 0.3s all ease; opacity: 1; }
#main5 .main5M .main5BTN .swiper-pagination-bullet-active { width: 12px; height: 12px; margin: 5px; background-color: #be3b31; transition: 0.3s all ease; opacity: 1; }
#main5 .main5M .main5BTN .main5PTN,
#main5 .main5M .main5BTN .main5NTN { width: 205px; height: 30px; display: inline-block; position: relative; outline: none; }
#main5 .main5M .main5BTN .main5PTN .on,
#main5 .main5M .main5BTN .main5NTN .on { position: absolute; background-repeat: no-repeat; background-size: contain; background-position: center; width: 100%; height: 100%; }
#main5 .main5M .main5BTN .main5PTN .off,
#main5 .main5M .main5BTN .main5NTN .off { position: absolute; background-repeat: no-repeat; background-size: contain; background-position: center; width: 100%; height: 100%; }
#main5 .main5M .main5BTN .main5PTN:hover { transform: translateX(-5px); transition: all 0.3s ease; }
#main5 .main5M .main5BTN .main5NTN:hover { transform: translateX(5px); transition: all 0.3s ease; }

.view-more {
    display: inline-block;
    text-decoration: none;
    overflow: hidden;
    vertical-align: middle;
    background: transparent;
    overflow: hidden;
    -webkit-transition: 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    position: relative;
    z-index: 1;
    font-weight: 100;
}

.view-more2 {
    display: inline-block;
    text-decoration: none;
    overflow: hidden;
    vertical-align: middle;
    background: transparent;
    overflow: hidden;
    -webkit-transition: 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    position: relative;
    z-index: 1;
    font-weight: 100;
}

.view-more:hover:before {
    -webkit-transform: translateX(0) skewX(-17.62deg);-ms-transform: translateX(0) skewX(-17.62deg);
    transform: translateX(0) skewX(-17.62deg);-webkit-transform-origin: left top;
    -ms-transform-origin: left top;transform-origin: left top;
}

.view-more:before {
    z-index: -1;content: "";display: block;width: 135%;height: 105%;position: absolute;left: 0;top: 0;
    -webkit-transform-origin: right top;-ms-transform-origin: right top;transform-origin: right top;-webkit-transform: translateX(-101%) skewX(-17.62deg);
    -ms-transform: translateX(-101%) skewX(-17.62deg);transform: translateX(-101%) skewX(-17.62deg);-webkit-transition: -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);transition: transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);transition: transform 1s cubic-bezier(0.165, 0.84, 0.44, 1),  -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-backface-visibility: hidden;backface-visibility: hidden;
}

a:hover .view-more2:before {
    -webkit-transform: translateX(0) skewX(-17.62deg);-ms-transform: translateX(0) skewX(-17.62deg);
    transform: translateX(0) skewX(-17.62deg);-webkit-transform-origin: left top;
    -ms-transform-origin: left top;transform-origin: left top;
}

a .view-more2:before {
    z-index: -1;content: "";display: block;width: 135%;height: 105%;position: absolute;left: 0;top: 0;
    -webkit-transform-origin: right top;-ms-transform-origin: right top;transform-origin: right top;-webkit-transform: translateX(-101%) skewX(-17.62deg);
    -ms-transform: translateX(-101%) skewX(-17.62deg);transform: translateX(-101%) skewX(-17.62deg);-webkit-transition: -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);transition: transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);transition: transform 1s cubic-bezier(0.165, 0.84, 0.44, 1),  -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-backface-visibility: hidden;backface-visibility: hidden;
}

/* =========================================
   반응형 미디어 쿼리 (Responsive Media Queries)
   ========================================= */

@media (min-width: 1410px) {
    .container { width: 1410px; }
}

/* 1. PC 및 랩탑 (1499px 이하) */
@media (max-width: 1499px) {
    #main1 .main1M .main1R .main1RBOX { padding: 60px; }
    #main2 .main2M .main2SDM { height: 380px; }
    #main3 .main3M .main3B .main3BOX { height: 320px; padding-bottom: 40px; }
}

/* 2. 태블릿 가로 및 작은 랩탑 (1199px 이하) */
@media (max-width: 1199px) {
#main1 .main1M { flex-direction: column; align-items: center; text-align: center; }
    #main1 .main1M .main1L { margin-bottom: 40px; }
    #main1 .main1M .main1L hr { margin: 0 auto; width: 50px; }
    #main1 .main1M .main1R { justify-content: center; width: 100%; max-width: 500px; }
    #main1 .main1M .main1R .main1RBOX { width: calc(50% - 15px); height: 180px; } /* 태블릿 2칸씩 */
    
    #main2 .main2M { grid-template-columns: 1fr 1fr; gap: 20px; }
    #main2 .main2M .sermonSDM { grid-column: 1 / 3; } 
    
    #main3 .main3M .main3B .main3BOX { height: 320px; padding-bottom: 40px; width: calc(33.333% - 20px); }
}

/* 3. 태블릿 세로 (992px 이하) */
@media (max-width: 992px) {
    #mainSlider { padding-top: 70px; }

    #main3 .main3M .main3B { flex-direction: column; align-items: center; gap: 20px; }
    #main3 .main3M .main3B .main3BOX { width: 100%; max-width: 500px; height: 260px; padding-bottom: 30px; background-size: cover; }
    
    #main4 .main4M { flex-direction: column; gap: 10px; }
    #main4 .main4M a { width: 100%; text-align: center; padding: 25px 0; }
}

/* 4. 모바일 (767px 이하) */
@media (max-width: 767px) {
.row { margin: 0; }
    #main1 .main1M { padding: 40px 0; }
    #main1 .main1M .main1L h1 { font-size: 28px; margin: 20px 0; }
    #main1 .main1M .main1L h5 { font-size: 16px; }
    
    /* 모바일에서도 2칸씩 꽉 차게 렌더링 */
    #main1 .main1M .main1R .main1RBOX { width: calc(50% - 10px); height: 150px; } 
    #main1 .main1M .main1R .main1RBOX h1 { font-size: 14.5px; } /* 모바일에서 글자가 넘치지 않도록 축소 */
    
    #main2 .main2M { grid-template-columns: 1fr; gap: 20px; padding: 40px 0; }
    #main2 .main2M .sermonSDM { grid-column: auto; }
    #main2 .main2M .main2SDM { height: auto; padding: 20px; border-radius: 12px; }
    #main2 .main2M .main2SDM .main2T h1 { font-size: 22px; padding-bottom: 10px; }
    
    #main3 .main3M .main3T { padding: 40px 0 30px; }
    #main3 .main3M .main3T h1 { font-size: 24px; padding-bottom: 10px; }
    #main3 .main3M .main3T h2 { font-size: 15px; }
    #main3 .main3M .main3B .main3BOX { height: 200px; padding-bottom: 25px; border-radius: 8px;}
    #main3 .main3M .main3B .main3BOX .main3BT img { width: 45px; padding-bottom: 15px; }
    #main3 .main3M .main3B .main3BOX .main3BT h1 { font-size: 20px; }
    
    #main5 .main5T h1 { padding: 40px 0; font-size: 32px; }
    #main5 .main5M .main5SD { padding: 0 0 30px; }
}

/* 5. 소형 모바일 (340px 이하) */
@media (max-width: 340px) {
    #main1 .main1M .main1L h1 { font-size: 24px; }
    #main1 .main1M .main1L h5 { font-size: 14px; }
    #main2 .main2M .main2SDM .main2T h1 { font-size: 18px; }
    #main2 .main2M .main2SDM .main2SD .contentSlideWrapper .contentSlide .main2BOX h1 { font-size: 18px; }
    #main3 .main3M .main3T h1 { font-size: 20px; }
    #main5 .main5T h1 { font-size: 28px; }
}