@charset "utf-8";

:root{
    --campus-navy:#17345f;
    --campus-teal:#177377;
    --campus-line:#dfe5eb;
    --campus-dark:#263746;
    --campus-blue:#4b8cc2;
}

.campus-page{
    font-family: 'Pretendard-Regular', sans-serif;
    max-width:1580px;
    margin:50px auto;
    padding:60px 24px 50px;
    box-sizing:border-box;
}

.campus-section__header{
    margin-bottom:22px;
    text-align:center;
}

.campus-section__header h1{
    margin:0;
    font-size:clamp(2rem, 3.2vw, 3rem);
    line-height:1.28;
    letter-spacing:-0.07em;
    font-weight:400;
    color:#111;
    word-break:keep-all;
}

.campus-grid{
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:24px;
}

.panel{
    position:relative;
    background:#fff;
    overflow:hidden;
    box-sizing:border-box;
}

.panel a{
    text-decoration:none;
}

.panel__link,
.panel__box-link{
    display:block;
    color:inherit;
}

.panel--small,
.panel--gallery,
.panel--newcomer,
.panel--notice{
    min-height:320px;
}

.panel__plus{
    position:absolute;
    right:0;
    top:0;
    z-index:3;
    display:flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    border:0;
    background:rgba(255,255,255,.18);
    color:#fff;
    font-size:2rem;
    line-height:1;
    text-decoration:none;
    transition:all .2s ease;
}

.panel__plus:hover{
    background:rgba(255,255,255,.3);
}

.panel__thumb{
    position:relative;
    min-height:440px;
}

.panel__thumb--sermon{
    background:
        linear-gradient(180deg, rgba(255,255,255,0.06), rgba(0,0,0,0.2)),
        linear-gradient(135deg, #2873c8 0%, #19458a 100%);
    background-size:cover;
    background-position:center center;
}

.panel__thumb-copy{
    position:absolute;
    inset:38px 40px;
    color:#fff;
}

.panel__thumb-copy p,
.panel__thumb-copy span,
.panel__thumb-copy strong,
.panel__thumb-copy em{
    display:block;
}

.panel__thumb-copy p{
    margin:0 0 58px;
    font-size:30px;
}

.panel__thumb-copy span{
    margin-bottom:26px;
    font-size:22px;
}

.panel__thumb-copy strong{
    margin-bottom:26px;
    font-size:36px;
    line-height:1.28;
    letter-spacing:-0.08em;
    font-weight:500;
    word-break:keep-all;
}

.panel__thumb-copy em{
    font-style:normal;
    font-size:clamp(1.1rem, 1.5vw, 1.7rem);
    line-height:1.6;
    word-break:keep-all;
}

.panel__play{
    position:absolute;
    right: 15px;
    bottom:45px;
    width:74px;
    height:74px;
    transform:translateX(-50%);
    border:5px solid rgba(255,255,255,0.82);
    border-radius:50%;
}

.panel__play::before{
    content:"";
    position:absolute;
    left:29px;
    top:22px;
    width:0;
    height:0;
    border-top:12px solid transparent;
    border-bottom:12px solid transparent;
    border-left:18px solid rgba(255,255,255,0.82);
}

.panel--weekly,
.panel--study{
    padding:34px 26px 28px;
    color:#fff;
}

.panel--weekly{
    background:var(--campus-navy);
}

.panel--study{
    background:var(--campus-teal);
}

.panel--weekly h2,
.panel--study h2,
.panel--newcomer h2,
.panel--notice h2{
    margin:0 0 44px;
    font-size:30px;
    line-height:1.2;
    font-weight:400;
    color:#fff;
}

.panel--weekly p,
.panel--study p{
    margin:0 0 18px;
    font-size:clamp(1.15rem, 1vw, 1.6rem);
    line-height:1.45;
    color:#fff;
    word-break:keep-all;
}

.panel__icon{
    position:absolute;
    right:26px;
    bottom:22px;
    width:88px;
    height:112px;
    border:5px solid rgba(255,255,255,0.52);
    border-radius:10px;
}

.panel__icon::before,
.panel__icon::after{
    content:"";
    position:absolute;
}

.panel__icon--paper::before{
    left:18px;
    top:22px;
    width:28px;
    height:36px;
    border:5px solid rgba(255,255,255,0.52);
}

.panel__icon--paper::after{
    right:14px;
    top:28px;
    width:22px;
    height:6px;
    background:rgba(255,255,255,0.52);
    box-shadow:0 18px 0 rgba(255,255,255,0.52), 0 36px 0 rgba(255,255,255,0.52);
}

.panel__mini-thumb{
    aspect-ratio:1.65;
    margin-bottom:14px;
    background:
        radial-gradient(circle at 62% 36%, rgba(255,255,255,0.22) 0 12%, transparent 13%),
        linear-gradient(135deg, #6d1830 0%, #7964a3 100%);
    background-size:cover;
    background-position:center center;
}

.panel__caption{
    margin-bottom:18px;
    font-size:clamp(1.1rem, 1.3vw, 1.45rem);
    text-align:center;
    color:#fff;
    word-break:keep-all;
}

.panel__dots{
    display:flex;
    justify-content:center;
    gap:12px;
}

.panel__dots span{
    width:14px;
    height:14px;
    border-radius:50%;
    background:rgba(255,255,255,0.45);
}

.panel__dots .is-active{
    background:rgba(255,255,255,0.95);
}

.panel--gallery{
    grid-column:1 / 2;
    padding:34px 26px 22px;
    border:1px solid var(--campus-line);
}

.panel--gallery h2{
    margin:0 0 28px;
    font-size:30px;
    font-weight:400;
    color:#111;
}

.gallery-strip{
    display:grid;
    grid-template-columns:40px 1fr 40px;
    align-items:center;
    gap:14px;
}

.gallery-arrow{
    border:0;
    background:transparent;
    color:#9f9f9f;
    font-size:3rem;
    cursor:pointer;
    line-height:1;
    padding:0;
}

.gallery-strip__items{
    display:flex;
    gap:18px;
    overflow:hidden;
    scroll-behavior:smooth;
}

.gallery-strip__items article{
    flex:0 0 calc((100% - 36px) / 3);
    min-width:0;
}

.gallery-strip__items a{
    display:block;
    color:inherit;
    text-decoration:none;
}

.gallery-strip__thumb{
    position:relative;
    aspect-ratio:1;
    margin-bottom:12px;
    overflow:hidden;
    background:linear-gradient(135deg, #d7b384 0%, #6e5437 100%);
}

.gallery-strip__thumb img{
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.gallery-strip__items p,
.gallery-strip__items span{
    display:block;
    margin:0;
    text-align:center;
    line-height:1.5;
    word-break:keep-all;
}

.gallery-strip__items p{
    color:#666;
    font-size:14px;
}

.gallery-strip__items span{
    color:#44525d;
    font-size:15px;
}

.panel--newcomer{
    padding:34px 26px 22px;
    background:var(--campus-dark);
    color:#fff;
}

.newcomer-card{
    text-align:center;
}

.newcomer-card__photo{
    width:120px;
    aspect-ratio:.82;
    margin:0 auto 14px;
    background:linear-gradient(180deg, #f2d8bf 0%, #b88d71 100%);
    background-size:cover;
    background-position:center center;
    border-radius:6px;
}

.newcomer-card__name,
.newcomer-card__date,
.newcomer-card__desc{
    margin:0 0 8px;
    font-size:clamp(1.05rem, 1.2vw, 1.35rem);
    color:#fff;
    word-break:keep-all;
}

.panel--notice{
    padding:34px 26px 22px;
    background:var(--campus-blue);
    color:#fff;
}

.notice-list{
    list-style:none;
    margin:0;
    padding:0;
}

.notice-list li{
    padding:14px 0;
    border-bottom:1px solid rgba(255,255,255,0.72);
    font-size:clamp(1.05rem, 1.2vw, 1.35rem);
    line-height:1.45;
}

.notice-list li:last-child{
    border-bottom:0;
}

.notice-list a{
    color:#fff;
    text-decoration:none;
    display:block;
}

.notice-list a:hover{
    opacity:.9;
}

@media (max-width:1180px){
    .campus-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .panel--sermon,
    .panel--gallery{
        grid-column:1 / -1;
    }
}

@media (max-width:760px){
    .campus-page{
        padding:18px 16px 34px;
    }

    .campus-grid{
        grid-template-columns:1fr;
        gap:16px;
    }

    .panel--sermon,
    .panel--gallery{
        grid-column:auto;
    }

    .panel__thumb{
        min-height:360px;
    }

    .panel__thumb-copy{
        inset:24px 18px;
    }

    .panel__thumb-copy p{
        margin-bottom:34px;
    }

    .panel--small,
    .panel--gallery,
    .panel--newcomer,
    .panel--notice{
        min-height:auto;
    }

    .gallery-strip{
        grid-template-columns:32px 1fr 32px;
        gap:8px;
    }

    .gallery-strip__items{
        gap:12px;
    }

    .gallery-strip__items article{
        flex:0 0 100%;
    }

    .gallery-arrow{
        font-size:2.2rem;
    }
}