@charset "utf-8";

/* ===== 04.수련회.캠프(목록) — Figma 1016:767 (teal) ===== */
.cp-wrap {display:flex; flex-direction:column; min-height:100%; background:var(--snow);}

/* 헤더 */
.cp-head {position:sticky; top:0; z-index:20; background:var(--card);}
.cp-bar {display:flex; align-items:center; gap:14px; padding:17px 22px; border-bottom:1.92px solid var(--line);}
.cp-back {flex:0 0 auto; display:flex; align-items:center; justify-content:center; width:58px; height:58px;}
.cp-back img {width:32px; height:32px;}
.cp-search {flex:1; display:flex; align-items:center; gap:16px; height:74px; padding:0 28px; background:var(--snow); border:1.92px solid var(--line); border-radius:42px;}
.cp-search img {width:31px; height:31px;}
.cp-search input {flex:1; min-width:0; border:0; background:transparent; font-size:25px; color:var(--ink);}
.cp-search input::placeholder {color:#6B7280;}

/* 필터 (좌우 스크롤, 조건이 많아 넘칠 때 좌우 화살표로 스크롤) */
.cp-filterswrap {position:relative; border-bottom:1.92px solid var(--line);}
.cp-filters {display:flex; flex-wrap:nowrap; gap:11.52px; padding:15px 27px 21px; overflow-x:auto; scrollbar-width:none;}
.cp-filters::-webkit-scrollbar {display:none;}
.cp-filterarrow {position:absolute; top:0; bottom:0; width:44px; z-index:5; display:flex; align-items:center; justify-content:center; border:0; cursor:pointer; padding:0;}
.cp-filterarrow img {width:15px; height:15px;}
.cp-filterarrow.prev {left:0; background:linear-gradient(to right, var(--card) 55%, transparent);}
.cp-filterarrow.next {right:0; background:linear-gradient(to left, var(--card) 55%, transparent);}
.cp-dd {position:relative; flex:0 0 auto;}
.cp-fil {flex:0 0 auto; display:flex; align-items:center; gap:6px; padding:11px 23px; border:1.92px solid var(--line); border-radius:38px; background:var(--card); color:#475569; font-size:21px; font-weight:500; white-space:nowrap;}
.cp-fil .lbl {white-space:nowrap; font-size:inherit;}
.cp-fil img {width:21px; height:21px; transition:transform .2s ease;}
.cp-dd.open .cp-fil img {transform:rotate(180deg);}
.cp-fil.on {border-color:var(--teal-2); color:var(--teal); background:var(--mint); font-weight:700;}
.cp-fil-region::before {content:''; flex:0 0 auto; width:21px; height:21px; background:url('/asset/images/meet-place/mp-pin.svg') center/contain no-repeat;}
.cp-toggle {cursor:pointer;}

.cp-dd-menu {position:absolute; top:64px; left:0; z-index:30; min-width:220px; max-height:0; overflow:hidden; opacity:0; background:var(--card); border-radius:16px; box-shadow:0 18px 44px rgba(15,23,42,.18); transition:opacity .15s ease;}
.cp-dd.open .cp-dd-menu {max-height:420px; overflow-y:auto; opacity:1; padding:10px; border:1.92px solid var(--line);}
.cp-dd-menu li {padding:16px 20px; border-radius:10px; font-size:22px; color:var(--body); cursor:pointer; white-space:nowrap;}
.cp-dd-menu li.on {background:var(--mint); color:var(--teal); font-weight:700;}

/* 브레드크럼 */
.cp-crumb {display:flex; align-items:center; gap:11px; padding:15px 27px 13px; border-bottom:1.92px solid var(--line); font-size:23px; font-weight:700; color:#6B7280;}
.cp-crumb img {width:25px; height:25px;}

/* 탭 (게시판 종류가 늘어나면 좌우 화살표로 스크롤) */
.cp-tabswrap {position:relative;}
.cp-tabs {display:flex; gap:0; padding:0 27px; overflow-x:auto; scrollbar-width:none; border-bottom:3.84px solid var(--line);}
.cp-tabs::-webkit-scrollbar {display:none;}
.cp-tab {flex:0 0 auto; position:relative; padding:21px 23px; background:none; color:#94A3B8; font-size:23px; font-weight:500; white-space:nowrap;}
.cp-tab.on {color:var(--teal); font-weight:700;}
.cp-tab.on::after {content:''; position:absolute; left:0; right:0; bottom:-3.84px; height:3.84px; border-radius:3px 3px 0 0; background:var(--teal);}
.cp-tabarrow {position:absolute; top:0; bottom:3.84px; width:46px; z-index:5; display:flex; align-items:center; justify-content:center; border:0; cursor:pointer; padding:0;}
.cp-tabarrow img {width:16px; height:16px;}
.cp-tabarrow.prev {left:0; background:linear-gradient(to right, var(--card) 55%, transparent);}
.cp-tabarrow.next {right:0; background:linear-gradient(to left, var(--card) 55%, transparent);}

/* ===== 추천 캠프 (포스터 카드) ===== */
.cp-rec {padding:24px 22px 8px;}
.cp-rec-head {display:flex; align-items:center; gap:14px; margin-bottom:20px;}
.cp-rec-head .bar {width:8px; height:34px; border-radius:4px; background:var(--teal);}
.cp-rec-head h2 {font-size:32px; font-weight:700; color:var(--ink);}
.cp-more {margin-left:auto; font-size:21px; color:var(--sub);}
.cp-grid {display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:19px;}
.cp-rec-card {display:flex; flex-direction:column; padding:1.92px; background:var(--card); border:1.92px solid var(--line); border-radius:19px; overflow:hidden; box-shadow:0 1.92px 11.52px rgba(15,23,42,.06);}
.cp-rec-thumb {position:relative; height:250px; border-radius:17px 17px 0 0; overflow:hidden; background:linear-gradient(160deg, #0F172A, #1E3A5F);}
.cp-rec-img {position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.cp-rec-tag {position:absolute; top:12px; left:12px; z-index:3; padding:4px 14px; border-radius:38px; background:rgba(13,148,136,.85); color:#fff; font-size:17px; font-weight:700;}
.cp-rec-heart {position:absolute; top:12px; right:12px; z-index:4; display:flex; align-items:center; justify-content:center; width:50px; height:50px; border-radius:25px; background:rgba(255,255,255,.85);}
.cp-rec-heart img {width:25px; height:25px;}
.cp-rec-info {display:flex; flex-direction:column; gap:4px; padding:15px 17px 19px;}
.cp-rec-date {font-size:19px; font-weight:600; color:var(--teal);}
.cp-rec-title {font-size:23px; font-weight:700; color:var(--ink); line-height:30px; height:60px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;}
.cp-rec-loc {display:flex; align-items:center; gap:6px; padding-top:4px; font-size:19px; color:var(--sub);}
.cp-rec-loc img {width:19px; height:19px;}
.cp-rec-stats {display:flex; align-items:center; gap:12px; font-size:19px; color:var(--sub);}
.cp-rec-stats span {display:flex; align-items:center; gap:6px;}
.cp-rec-stats img {width:19px; height:19px;}

/* AD 배너 (이미지 슬롯) */
.cp-ad {position:relative; display:block; margin:19px 0; height:162px; border:1.92px solid var(--line); border-radius:19px; overflow:hidden;}
.cp-ad-img {width:100%; height:100%; object-fit:cover; display:block;}
.cp-ad-badge {position:absolute; top:18px; right:18px; padding:3px 12px; border-radius:8px; background:rgba(0,0,0,.4); color:rgba(255,255,255,.85); font-size:18px; font-weight:600;}

/* ===== 전체 캠프 ===== */
.cp-body {flex:1; padding:16px 22px 170px;}
.cp-lhead {display:flex; align-items:baseline; justify-content:space-between; margin-bottom:20px;}
.cp-lhead .l {font-size:30px; font-weight:700; color:var(--ink);}
.cp-lhead .l b {color:var(--teal);}
.cp-lhead .c {font-size:22px; color:var(--sub);}
.cp-listwrap {display:flex; flex-direction:column; gap:18px;}
.cp-item {display:flex; gap:19px; align-items:flex-start; padding:23px 25px; background:var(--card); border:1.92px solid var(--line); border-radius:19px; box-shadow:0 1.92px 5.76px rgba(15,23,42,.06);}
.cp-thumb {flex:0 0 138px; width:138px; height:138px; border-radius:15px; overflow:hidden;}
.cp-thumb-img {width:100%; height:100%; object-fit:cover; display:block;}
.cp-ibody {flex:1; min-width:0; display:flex; flex-direction:column; gap:6px;}
.cp-tags {display:flex; flex-wrap:wrap; gap:10px; align-items:center;}
.cp-tag {padding:4px 16px; border-radius:38px; font-size:19px; font-weight:600; background:var(--mint); color:var(--teal);}
.cp-tag.t-new {background:#FEF2F2; color:#DC2626;}
.cp-tag.k-retreat {color:#0F766E;}
.cp-tag.k-mission {background:#F8FAFC; color:#5B21B6;}
.cp-tag.k-gospel {color:#14532D;}
.cp-tag.k-concert {color:#DC2626;}
.cp-tag.k-bible {color:#1D4ED8;}
.cp-dday {padding:4px 16px; border-radius:38px; font-size:19px; font-weight:600; background:#FEF3C7; color:#92400E;}
.churchro.dark-mode .cp-dday {background:#3A2E1A; color:#FCD34D;}
.cp-ititle {font-size:25px; font-weight:600; color:var(--ink); line-height:1.35; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;}
.cp-iloc {display:flex; align-items:center; gap:6px; font-size:21px; color:var(--sub);}
.cp-iloc img {width:21px; height:21px;}
.cp-irow {display:flex; align-items:center; justify-content:space-between; margin-top:2px;}
.cp-date {font-size:21px; font-weight:600; color:var(--teal);}
.cp-time {font-size:19px; color:var(--sub);}
.cp-bm {flex:0 0 auto; display:flex; align-items:center; justify-content:center; width:44px; align-self:stretch;}
.cp-bm img {width:29px; height:29px;}

/* 페이지네이션 */
.cp-page {display:flex; align-items:center; justify-content:center; gap:8px; padding:38px 0 6px;}
.cp-page .pg {display:flex; align-items:center; justify-content:center; min-width:62px; height:62px; padding:0 16px; border:1.85px solid var(--line); border-radius:14px; background:var(--card); color:var(--body); font-size:22px; font-weight:500;}
.cp-page .pg.on {background:var(--teal); border-color:var(--teal); color:#fff; font-weight:700;}
.cp-page .pg img {width:24px; height:24px;}
.cp-page .dots {padding:0 5px; color:var(--sub); font-size:24px;}

/* FAB */
.cp-write {position:fixed; right:27px; bottom:135px; z-index:35; display:flex; align-items:center; justify-content:center; width:92px; height:92px; border-radius:50%; background:#1E3A5F; box-shadow:0 8px 16px rgba(30,58,95,.4);}
.cp-write img {width:42px; height:42px;}

/* 하단 탭바 */
.cp-nav {position:fixed; left:50%; bottom:0; transform:translateX(-50%); z-index:40; width:720px; max-width:100%; display:flex; align-items:center; justify-content:space-between; padding:20px 40px; background:var(--card); border-top:1.85px solid var(--line);}
.cp-nav .tab {display:flex; flex-direction:column; align-items:center; gap:5.8px; color:var(--sub); font-size:19.2px;}
.cp-nav .tab img {width:42px; height:42px;}
.cp-nav .tab.on {color:var(--teal);}
.cp-nav .tab-fab {position:relative; align-self:stretch; width:96px;}
.cp-nav .tab-fab .fab {position:absolute; left:50%; top:0; transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; width:96px; height:96px; border-radius:50%; background:linear-gradient(135deg, #0D9488, #1E3A5F); border:5px solid var(--card); box-shadow:0 10px 24px rgba(13,148,136,0.4);}
.cp-nav .tab-fab .fab img {width:48px; height:48px;}

@media (hover:hover) and (pointer:fine) {
	.cp-item:hover, .cp-rec-card:hover {background:var(--snow);}
}

/* ===================== 04.수련회.캠프(상세) ===================== */
.cpd-wrap {display:flex; flex-direction:column; min-height:100%; background:var(--snow);}
.cpd-photo {position:relative; height:422px; background:linear-gradient(160deg, #0F172A, #1E3A5F); overflow:hidden;}
.cpd-photo-img {position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.cpd-photo-top {position:absolute; left:0; right:0; top:0; display:flex; align-items:center; justify-content:space-between; padding:23px 27px;}
.cpd-gacts {display:flex; gap:11.5px;}
.cpd-gbtn {display:flex; align-items:center; justify-content:center; width:69px; height:69px; border-radius:19px; background:rgba(0,0,0,.4);}
.cpd-gbtn img {width:38px; height:38px;}
.cpd-gall {position:absolute; left:23px; bottom:18px; display:flex; align-items:center; gap:8px; padding:8px 19px; border-radius:38px; background:rgba(0,0,0,.55); color:#fff; font-size:21px; font-weight:700;}
.cpd-gall img {width:23px; height:23px;}
.cpd-gcount {position:absolute; right:25px; bottom:19px; padding:6px 19px; border-radius:38px; background:rgba(0,0,0,.55); color:#fff; font-size:21px; font-weight:600;}
.cpd-garrow {position:absolute; top:50%; transform:translateY(-50%); display:flex; align-items:center; justify-content:center; width:54px; height:54px; border-radius:27px; background:rgba(255,255,255,.8);}
.cpd-garrow img {width:27px; height:27px;}
.cpd-garrow.l {left:19px;} .cpd-garrow.r {right:19px;}

.cpd-titlesec {display:flex; flex-direction:column; gap:14px; padding:27px 27px 21px; background:var(--card); border-bottom:1.92px solid var(--line);}
.cpd-tags {display:flex; gap:11.5px;}
.cpd-tag {padding:6px 17px; border-radius:38px; font-size:21px; font-weight:600; background:var(--mint); color:var(--teal);}
.cpd-tag.t-open {background:#ECFDF5; color:#059669;}
.cpd-tag.t-dday {background:#FEF3C7; color:#92400E;}
.cpd-title {font-size:32px; font-weight:700; color:var(--ink); line-height:45px;}
.cpd-num {display:flex; align-items:center; gap:11.5px; padding:11px 19px; border-radius:11.5px; background:var(--snow);}
.cpd-num .k {font-size:21px; color:var(--sub);}
.cpd-num .v {font-size:22px; font-weight:700; color:#6B7280;}
.cpd-copy {display:flex; align-items:center; gap:5.76px; margin-left:auto; color:var(--teal); font-size:21px;}
.cpd-copy img {width:23px; height:23px;}

/* D-day 배너 */
.cpd-dday {display:flex; align-items:center; justify-content:space-between; gap:18px; padding:26px 27px; background:linear-gradient(120deg, #0F766E, #1E3A5F); color:#fff;}
.cpd-dday-info {display:flex; flex-direction:column; gap:4px;}
.cpd-dday-info .lab {font-size:19px; color:rgba(255,255,255,.8);}
.cpd-dday-info .big {font-size:38px; font-weight:800; line-height:1.1;}
.cpd-dday-info .date {font-size:20px; color:rgba(255,255,255,.9);}
.cpd-dday-btn {flex:0 0 auto; display:flex; align-items:center; padding:18px 26px; border-radius:14px; background:#fff; color:var(--teal); font-size:23px; font-weight:700;}

/* 4열 통계 */
.cpd-stat {display:grid; grid-template-columns:repeat(4, 1fr); padding:23px 20px 25px; background:var(--card); border-bottom:1.92px solid var(--line);}
.cpd-scol {display:flex; flex-direction:column; align-items:center; gap:6px; padding:8px 0;}
.cpd-scol.bd {border-left:1.92px solid var(--line);}
.cpd-scol .k {font-size:19px; color:var(--sub);}
.cpd-scol .v {font-size:22px; font-weight:700; color:var(--ink); text-align:center;}
.cpd-scol .v.teal {color:var(--teal);}

.cpd-acts {display:flex; gap:11.5px; padding:15px 27px 21px; background:var(--card); border-bottom:1.92px solid var(--line);}
.cpd-act {flex:1; display:flex; align-items:center; justify-content:center; gap:9.6px; padding:17px 13px; border:1.92px solid var(--line); border-radius:15px; background:var(--card); color:#6B7280; font-size:21px; font-weight:600;}
.cpd-act img {width:27px; height:27px;}
.cpd-act.heart.on {background:var(--mint); border-color:#EF4444; color:#EF4444;}

.cpd-body {flex:1; padding-bottom:290px;}
.cpd-table {margin:24px 27px 0; border:1.92px solid var(--line); border-radius:19px; overflow:hidden;}
.cpd-trow {display:flex; border-bottom:1.92px solid var(--line);}
.cpd-trow:last-child {border-bottom:0;}
.cpd-tk {flex:0 0 auto; min-width:115px; display:flex; align-items:center; padding:17px 22px; background:var(--mint); color:#2563EB; font-size:21px; font-weight:700;}
.cpd-tv {flex:1; padding:17px 23px; font-size:23px; color:var(--ink); line-height:34px; word-break:break-all;}
.cpd-tv.teal {color:var(--teal); font-weight:700;}
.cpd-tv.link {color:var(--teal); font-weight:400;}

.cpd-sech {display:flex; align-items:center; gap:11.5px; padding:27px 27px 15px;}
.cpd-sech img {width:28px; height:28px;}
.cpd-sech h2 {font-size:25px; font-weight:700; color:var(--ink);}

/* 강사 소개 */
.cpd-speakers {display:flex; gap:12px; padding:0 27px;}
.cpd-speaker {flex:1; display:flex; flex-direction:column; align-items:center; gap:8px; padding:22px 12px; background:var(--snow); border:1.92px solid var(--line); border-radius:16px;}
.cpd-avatar {display:flex; align-items:center; justify-content:center; width:72px; height:72px; border-radius:50%; background:linear-gradient(135deg, #0D9488, #1E3A5F); color:#fff; font-size:30px; font-weight:700;}
.cpd-sp-name {font-size:22px; font-weight:700; color:var(--ink); text-align:center;}
.cpd-sp-org {font-size:19px; color:var(--sub); text-align:center;}

/* 일정표 (네이비 헤더 · 행 교차 · 주요세션 teal) */
.cpd-sched-wrap {margin:0 27px; overflow:hidden; border:1.92px solid var(--line); border-radius:16px;}
.cpd-sched {width:100%; border-collapse:collapse; font-size:21px; table-layout:fixed;}
.cpd-sched th, .cpd-sched td {padding:15px 10px; text-align:center;}
.cpd-sched thead th {background:#1E3A5F; color:rgba(255,255,255,.9); font-weight:700;}
.cpd-sched th.time {width:110px;}
.cpd-sched tbody tr {border-top:1.92px solid var(--line);}
.cpd-sched tbody tr:nth-child(even) {background:var(--snow);}
.cpd-sched tbody th.time {color:var(--sub); font-weight:600;}
.cpd-sched tbody td {color:var(--ink);}
.cpd-sched tbody td.hl {color:var(--teal); font-weight:600;}

/* 참여 안내 */
.cpd-notice {padding:0 27px;}
.cpd-notice li {display:flex; align-items:center; gap:11.5px; padding:9px 0; border-bottom:1.92px solid var(--line); font-size:23px; color:#6B7280;}
.cpd-notice li:last-child {border-bottom:0;}
.cpd-notice li img {flex:0 0 auto; width:27px; height:27px;}

.cpd-video {margin:8px 20px 0; height:383px; border-radius:14px; overflow:hidden; background:#000;}
.cpd-video iframe {width:100%; height:100%; border:0; display:block;}

.cpd-map {position:relative; margin:0 27px; height:280px; border:1.92px solid var(--line); border-radius:19px; overflow:hidden; background:#E8F4F8;}
.cpd-map iframe {width:100%; height:100%; border:0; display:block;}
.cpd-mapopen {position:absolute; z-index:2; right:30px; bottom:16px; display:flex; align-items:center; gap:7.68px; padding:10px 19px; border-radius:38px; background:#1B2E4B; color:#fff; font-size:19px; font-weight:700;}
.cpd-mapopen img {width:21px; height:21px;}
.cpd-mapaddr {margin:14px 27px 0; font-size:21px; color:var(--sub);}

.cpd-contact {margin:24px 27px 0; padding:25px; background:var(--snow); border:1.92px solid var(--line); border-radius:19px;}
.cpd-crow {display:flex; align-items:center; gap:15px; padding:8px 0;}
.cpd-crow.bd {border-top:1.92px solid var(--line); padding-top:17px;}
.cpd-ck {flex:0 0 auto; min-width:80px; font-size:21px; font-weight:600; color:var(--sub);}
.cpd-cv {flex:1; min-width:0; font-size:23px; color:var(--ink);}
.cpd-cbtn {flex:0 0 auto; display:flex; align-items:center; gap:7.68px; padding:10px 19px; border-radius:11.5px; background:var(--mint); color:var(--teal); font-size:21px; font-weight:700;}
.cpd-cbtn img {width:23px; height:23px;}
.cpd-report {display:flex; align-items:center; justify-content:center; gap:9.6px; width:calc(100% - 54px); margin:16px 27px 0; padding:17px; border:1.92px solid var(--line); border-radius:15px; background:var(--card); color:var(--sub); font-size:21px;}
.cpd-report img {width:25px; height:25px;}

.cpd-bottom {position:fixed; left:50%; bottom:0; transform:translateX(-50%); z-index:40; width:720px; max-width:100%;}
.cpd-actionbar {display:flex; align-items:center; gap:13px; padding:22px 27px 18px; background:var(--card); border-top:1.92px solid var(--line);}
.cpd-bar-email {display:flex; flex-direction:column; align-items:center; gap:4px;}
.cpd-bar-email .ic {display:flex; align-items:center; justify-content:center; width:80px; height:80px; border:1.92px solid var(--line); border-radius:19px; background:var(--card);}
.cpd-bar-email .ic img {width:32px; height:32px;}
.cpd-bar-email .lb {font-size:17px; color:var(--sub);}
.cpd-bar-chat {flex:1; display:flex; align-items:center; justify-content:center; gap:10px; padding:23px; border-radius:19px; background:#1B2E4B; color:#fff; font-size:24px; font-weight:700;}
.cpd-bar-chat img {width:30px; height:30px;}
.cpd-bar-apply {flex:1.4; display:flex; align-items:center; justify-content:center; padding:23px; border-radius:19px; background:var(--teal); color:#fff; font-size:25px; font-weight:700;}

.cpd-nav, .cw-nav, .cwd-nav {display:flex; align-items:center; justify-content:space-between; padding:18px 40px; background:var(--card); border-top:1.85px solid var(--line);}
.cpd-nav .tab, .cw-nav .tab, .cwd-nav .tab {display:flex; flex-direction:column; align-items:center; gap:5.8px; color:var(--sub); font-size:19.2px;}
.cpd-nav .tab img, .cw-nav .tab img, .cwd-nav .tab img {width:42px; height:42px;}
.cpd-nav .tab.on, .cw-nav .tab.on, .cwd-nav .tab.on {color:var(--teal);}
.cpd-nav .tab-fab, .cw-nav .tab-fab, .cwd-nav .tab-fab {position:relative; align-self:stretch; width:96px;}
.cpd-nav .tab-fab .fab, .cw-nav .tab-fab .fab, .cwd-nav .tab-fab .fab {position:absolute; left:50%; top:0; transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; width:96px; height:96px; border-radius:50%; background:linear-gradient(135deg, #0D9488, #1E3A5F); border:5px solid var(--card); box-shadow:0 10px 24px rgba(13,148,136,0.4);}
.cpd-nav .tab-fab .fab img, .cw-nav .tab-fab .fab img, .cwd-nav .tab-fab .fab img {width:48px; height:48px;}

/* ===================== 04.수련회.캠프(등록) ===================== */
.cw-wrap {display:flex; flex-direction:column; min-height:100%; background:var(--snow);}
.cw-temp {flex:0 0 auto; padding:9px 18px; font-size:22px; font-weight:600; color:var(--teal);}
.cw-body {flex:1; display:flex; flex-direction:column; gap:21px; padding:21px 27px 170px;}
.cw-card {display:flex; flex-direction:column; gap:15px; padding:29px; background:var(--card); border:1.92px solid var(--line); border-radius:19px;}
.cw-sech {display:flex; align-items:center; gap:9px;}
.cw-sech img {width:27px; height:27px;}
.cw-sech b {font-size:25px; font-weight:700; color:var(--ink);}
.cw-sech i {color:#EF4444; font-size:25px; font-weight:700; font-style:normal;}
.cw-sech small {font-size:20px; color:var(--sub);}
.cw-input {width:100%; padding:20px 28px; background:var(--snow); border:1.92px solid var(--line); border-radius:14px; font-size:24px; color:var(--ink); font-family:inherit;}
.cw-input::placeholder {color:var(--sub);}
.cw-select {width:100%; appearance:none; -webkit-appearance:none; padding:20px 60px 20px 28px; background:var(--snow) url('/asset/images/common/chevron.svg') no-repeat; background-position:right 22px center; background-size:27px 27px; border:1.92px solid var(--line); border-radius:14px; font-size:24px; color:var(--ink); font-family:inherit;}
.cw-select.sm {padding:18px 44px 18px 18px; background-position:right 12px center; background-size:25px 25px; font-size:23px;}
.cw-field {display:flex; flex-direction:column; gap:11px;}
.cw-field > span {font-size:23px; font-weight:500; color:#6B7280;}
.cw-count {text-align:right; font-size:20px; color:var(--sub);}
/* 캠프유형 칩 (3열 세로) */
.cw-tgrid {display:grid; grid-template-columns:repeat(3, 1fr); gap:13px;}
.cw-tchip {display:flex; flex-direction:column; align-items:center; gap:7.68px; padding:21px 8px; border:1.92px solid var(--line); border-radius:19px; background:var(--snow); color:#475569; font-size:21px; font-weight:600;}
.cw-tchip img {width:35px; height:35px;}
.cw-tchip.on {border-color:var(--teal-2); background:var(--mint); color:var(--teal);}
/* 대상 칩 (2열 가로) */
.cw-fgrid {display:grid; grid-template-columns:repeat(2, 1fr); gap:11.5px;}
.cw-fchip {display:flex; align-items:center; gap:13px; padding:17px 21px; border:1.92px solid var(--line); border-radius:15px; background:var(--snow); color:#475569; font-size:21px; font-weight:600;}
.cw-fchip img {width:27px; height:27px;}
.cw-fchip.on {border-color:var(--teal-2); background:var(--mint); color:var(--teal);}
/* 기간 박/일 */
.cw-nights {display:flex; align-items:center; justify-content:center; padding:16px; border-radius:14px; background:var(--mint); color:var(--teal); font-size:24px; font-weight:700;}
/* 주소 */
.cw-row {display:flex; gap:12px;}
.cw-row .cw-input {flex:1;}

.cw-map {height:200px; border:1.92px solid var(--line); border-radius:14px; overflow:hidden;}
.cw-map iframe {width:100%; height:100%; border:0; display:block;}
.cw-grid2 {display:grid; grid-template-columns:repeat(2, 1fr); gap:12px;}
.cw-inwrap {position:relative; display:flex; align-items:center;}
.cw-inwrap input {width:100%; padding:20px 70px 20px 28px; background:var(--snow); border:1.92px solid var(--line); border-radius:14px; font-size:24px; color:var(--ink); font-family:inherit;}
.cw-inwrap input::placeholder {color:var(--sub);}
.cw-inwrap em {position:absolute; right:24px; font-size:22px; font-style:normal; color:var(--sub);}
.cw-inwrap .pre {position:absolute; left:20px; width:31px; height:31px; z-index:1;}
.cw-inwrap .pre + input {padding-left:64px;}
.cw-note {display:flex; align-items:center; gap:11px; padding:16px 20px; background:#EFF6FF; border-radius:14px; font-size:21px; color:#2563EB;}
.churchro.dark-mode .cw-note {background:#1B2B45;}
.cw-note img {flex:0 0 auto; width:25px; height:25px;}
.cw-textarea {width:100%; min-height:330px; padding:27px 28px; background:var(--snow); border:1.92px solid var(--line); border-radius:14px; font-size:24px; line-height:36px; color:var(--ink); resize:vertical; font-family:inherit;}
.cw-textarea::placeholder {color:var(--sub);}
.cw-vpreview {height:340px; border-radius:14px; overflow:hidden; background:#1A1A2E;}
.cw-vpreview iframe {width:100%; height:100%; border:0; display:block;}
.cw-vpreview .ph {display:flex; align-items:center; justify-content:center; gap:12px; width:100%; height:100%; color:#94A3B8; font-size:22px;}
.cw-vpreview .play {display:flex; align-items:center; justify-content:center; width:54px; height:54px; border-radius:50%; background:rgba(255,255,255,.15); color:#fff; font-size:24px; padding-left:4px;}
.cw-photos {display:flex; flex-wrap:wrap; gap:15px;}
.cw-photo-item {position:relative; width:130px; height:130px; border-radius:14px; overflow:hidden;}
.cw-photo-item .cover {width:100%; height:100%; object-fit:cover; display:block;}
.cw-photo-x {position:absolute; top:6px; right:6px; display:flex; align-items:center; justify-content:center; width:35px; height:35px; border-radius:50%; background:rgba(15,23,42,.6); color:#fff; font-size:28px; line-height:1;}
.cw-photo-add {display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; width:130px; height:130px; border:2px dashed var(--mute); border-radius:14px; background:var(--snow); color:var(--sub); font-size:22px;}
.cw-photo-add img {width:38px; height:38px;}
.cw-photo-count {font-size:23px; color:var(--body);}
.cw-note2 {font-size:21px; color:var(--sub);}
.cw-phone {display:grid; grid-template-columns:1fr 1.3fr 1.3fr; gap:12px; align-items:center;}
.cw-submit {display:flex; align-items:center; justify-content:center; margin-top:4px; padding:28px; background:#1B2E4B; border-radius:19px; color:#fff; font-size:27px; font-weight:700;}

/* ===================== 04.수련회.캠프(등록완료) ===================== */
.cwd-wrap {display:flex; flex-direction:column; min-height:100%; background:var(--snow);}
.cwd-body {flex:1; display:flex; flex-direction:column; align-items:center; padding:77px 46px 46px;}
.cwd-circle {display:flex; align-items:center; justify-content:center; width:192px; height:192px; margin-bottom:46px; border:5.76px solid #A7F3D0; border-radius:50%; background:var(--mint);}
.cwd-circle img {width:92px; height:92px;}
.cwd-title {font-size:42px; font-weight:700; color:var(--ink); text-align:center; margin-bottom:15px;}
.cwd-sub {font-size:25px; color:#6B7280; text-align:center; line-height:40px; margin-bottom:46px;}
.cwd-card {width:100%; padding:29px 33px; background:var(--snow); border:1.92px solid var(--line); border-radius:19px; margin-bottom:46px;}
.cwd-card-h {display:flex; align-items:center; gap:9.6px; margin-bottom:23px;}
.cwd-card-h img {width:25px; height:25px;}
.cwd-card-h b {font-size:23px; font-weight:700; color:#6B7280;}
.cwd-proc {display:flex; align-items:center; gap:15px; padding:8px 0; font-size:23px; color:#6B7280;}
.cwd-proc img {flex:0 0 auto; width:25px; height:25px;}
.cwd-proc.avg span {font-size:23px; font-weight:600; color:var(--teal);}
.cwd-btns {display:flex; flex-direction:column; gap:15px; width:100%; margin-bottom:31px;}
.cwd-btns .cwd-btn {display:flex; align-items:center; justify-content:center; border-radius:19px; text-align:center;}
.cwd-btns .cwd-btn.primary {padding:27px; background:#1B2E4B; color:#fff; font-size:27px; font-weight:700;}
.cwd-btns .cwd-btn:not(.primary) {padding:25px; background:var(--card); border:1.92px solid var(--line); color:#6B7280; font-size:25px; font-weight:600;}
.cwd-notice {display:flex; align-items:center; gap:13px; width:100%; padding:21px 27px; background:var(--cream); border:1.92px solid #FED7AA; border-radius:15px;}
.cwd-notice img {flex:0 0 auto; width:25px; height:25px;}
.cwd-notice p {font-size:21px; color:#92400E; line-height:32px;}

/* a:link 덮어쓰기 */
.cpd-wrap a.cpd-cbtn {color:var(--teal);}
.cpd-wrap a.cpd-mapopen, .cpd-wrap a.cpd-bar-chat, .cpd-wrap a.cpd-bar-apply {color:#fff;}
.cpd-wrap a.cpd-dday-btn {color:var(--teal);}
.cpd-wrap a.cpd-tv.link {color:var(--teal);}
.cw-wrap a.cw-submit {color:#fff;}
.cwd-btns a.cwd-btn.primary {color:#fff;}
.cwd-btns a.cwd-btn:not(.primary) {color:#6B7280;}

/* 필터 드롭다운이 스크롤 컨테이너에 잘리지 않도록 — 열렸을 때만 overflow 해제 */
.cp-filters:has(.cp-dd.open){overflow:visible;}
