﻿/* ============================================================
   수산교회 Hero Slider CSS — 구파발 원본 방식 이식 v2.0
============================================================ */

:root {
    --color-primary: #0b1d33;
    --color-point:   #4a7db9;
    --transition:    0.3s ease;
}

/* 슬라이더 래퍼 */
#main-slider {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #111;
}

/* ✅ 핵심: 구파발과 동일하게 vw 단위로 높이 통일 */
.dimode-slider .slider-wrapper > .slide {
    position: relative;
    overflow: hidden;
    height: 42vw !important;
    max-height: 1080px;
}
.dimode-slider .slider-wrapper {
    height: 42vw !important;
    max-height: 1080px;
}

/* 이미지 cover 채움 */
.dimode-slider .slider-wrapper > .slide .each-img {
    margin: 0 !important;
    padding: 0 !important;
    height: 100% !important;
	
}
.dimode-slider .slider-wrapper > .slide .each-img img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    -o-object-fit: cover;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* 하단 그라데이션 (dot 가독성) */
.dimode-slider .slider-wrapper > .slide:after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 38%;
    background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.40) 100%);
    background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.40) 100%);
    pointer-events: none;
    z-index: 1;
}
.dimode-slider .slider-wrapper > .slide:before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0);
    pointer-events: none;
    z-index: 1;
}

/* ✅ 핵심: 구파발과 동일하게 vw 단위로 iframe 크기 지정 */
.dimode-slider .gpb-herovid {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    overflow: hidden;
    z-index: 0;
    pointer-events: none;
    background: #000;
}
.dimode-slider .gpb-herovid iframe {
    position: absolute;
    top: 50%; left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    width: 100vw;
    height: 56.25vw;  /* 16:9 비율 */
    min-width: 100%;
    min-height: 100%;
    border: 0;
}

/* 캡션 오버레이 */
.dimode-slider .gpb-herocap {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 2;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    pointer-events: none;
}
.dimode-slider .slide.has-cap:before {
    background: -webkit-linear-gradient(left, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.15) 45%, rgba(0,0,0,0) 70%);
    background: linear-gradient(to right, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.15) 45%, rgba(0,0,0,0) 70%);
    z-index: 1;
}
.dimode-slider .slide.has-cap.gpb-cap-center:before,
.dimode-slider .slide.has-cap.gpb-cap-right:before {
    background: rgba(0,0,0,0.32);
}
/* 유튜브 슬라이드 캡션 없을 때 dim 제거 */
.dimode-slider .slide.has-vid:not(.has-cap):before {
    background: transparent;
}

.gpb-herocap--center { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; text-align: center; }
.gpb-herocap--left   { -webkit-box-pack: start;  -ms-flex-pack: start;  justify-content: flex-start; }
.gpb-herocap--right  { -webkit-box-pack: end;    -ms-flex-pack: end;    justify-content: flex-end; }

.gpb-herocap__inner  { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 30px; color: #fff; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; }
.gpb-herocap__verse  { display: block; font-size: 20px; font-weight: 500; letter-spacing: 0.16em; color: var(--color-point); margin: 0 0 12px;  color: #fff; }
.gpb-herocap__title  { font-size: clamp(32px, 4.5vw, 60px);line-height: 1.38; font-weight: 700; margin: 0 0 18px; max-width: 760px; text-shadow: 0 2px 14px rgba(0,0,0,0.35); word-break: keep-all; color: #fff; }
.gpb-herocap__desc   { max-width: 800px; margin: 0 0 22px; color: #fff; font-size: clamp(13px, 1.2vw, 16px); line-height: 1.7; word-break: keep-all; opacity: 0.92;  white-space: pre-line; }
.gpb-herocap__btn    { pointer-events: auto; display: inline-block; padding: 10px 22px; font-size: 13px; font-weight: 600; color: #fff; border: 1.5px solid rgba(255,255,255,0.85); border-radius: 4px; text-decoration: none; -webkit-transition: var(--transition); transition: var(--transition); }
.gpb-herocap__btn:hover { background: #fff; color: var(--color-primary); }
.gpb-herocap--center .gpb-herocap__inner { text-align: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
.gpb-herocap--right  .gpb-herocap__inner { text-align: right;  -webkit-box-align: end;    -ms-flex-align: end;    align-items: flex-end; }

/* 화살표 — 구파발 방식 (아이콘만, 배경 없음) */
.dimode-slider .move-btn {
    position: absolute;
    top: 50%;
    z-index: 5;
    -webkit-box-sizing: border-box; box-sizing: border-box;
    width: 54px !important; height: 54px !important;
    margin-top: -27px;
    padding: 0 !important;
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center;
    -webkit-box-align: center; -ms-flex-align: center; align-items: center;
    color: #fff;
    font-size: 34px;
    line-height: 1;
    background: transparent;
    border: 0;
    border-radius: 0;
    cursor: pointer;
    text-shadow: 0 1px 6px rgba(0,0,0,0.45);
    -webkit-transition: var(--transition); transition: var(--transition);
    -webkit-appearance: none; appearance: none;
}
.dimode-slider .move-btn:hover { color: var(--color-point); }
.dimode-slider .prev-btn { left: 30px; right: auto; }
.dimode-slider .next-btn { right: 30px; left: auto; }

/* dot 페이지네이션 */
.main-slider .slider-dots {
    position: absolute !important;
    bottom: 20px !important;
    left: 50% !important;
    -webkit-transform: translateX(-50%) !important;
    transform: translateX(-50%) !important;
    z-index: 6;
    display: -webkit-box; display: -ms-flexbox; display: flex;
    gap: 8px;
    list-style: none; margin: 0; padding: 0;
}
#main-slider .each-dot {
    width: 10px; height: 10px;
    border-radius: 50%;
    background: rgba(255,255,255,0.45);
    cursor: pointer; border: none;
    display: inline-block;
    -webkit-box-sizing: content-box; box-sizing: content-box;
    -webkit-transition: background 0.3s, -webkit-transform 0.3s;
    transition: background 0.3s, transform 0.3s;
}
#main-slider .each-dot.active {
    background: var(--color-point);
    -webkit-transform: scale(1.35); transform: scale(1.35);
}

/* 스크롤 유도 버튼 — 구파발 방식 */
.dimode-slider .gpb-hero-scroll {
    position: absolute;
    left: 50%; bottom: 64px;
    z-index: 6;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    -webkit-box-sizing: border-box; box-sizing: border-box;
    width: 46px; height: 46px;
    padding: 0;
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center;
    -webkit-box-align: center; -ms-flex-align: center; align-items: center;
    color: #fff; font-size: 24px;
    background: transparent; border: 0;
    cursor: pointer; -webkit-appearance: none; appearance: none;
    opacity: 0.9;
    -webkit-animation: gpbHeroDown 1.8s infinite;
    animation: gpbHeroDown 1.8s infinite;
}
.dimode-slider .gpb-hero-scroll:hover { color: var(--color-point); opacity: 1; }
@-webkit-keyframes gpbHeroDown {
    0%,100% { -webkit-transform: translateX(-50%) translateY(0); }
    50%      { -webkit-transform: translateX(-50%) translateY(9px); }
}
@keyframes gpbHeroDown {
    0%,100% { transform: translateX(-50%) translateY(0); }
    50%      { transform: translateX(-50%) translateY(9px); }
}

/* 반응형 */
@media (max-width: 767px) {
    .dimode-slider .slider-wrapper > .slide,
    .dimode-slider .slider-wrapper { height: 56vw !important; }
    .dimode-slider .move-btn { width: 40px !important; height: 40px !important; margin-top: -20px; font-size: 26px; }
    .dimode-slider .prev-btn { left: 12px; }
    .dimode-slider .next-btn { right: 12px; }
    .dimode-slider .gpb-hero-scroll { bottom: 46px; width: 38px; height: 38px; font-size: 20px; }
}
