@charset "utf-8";
/* ============================================================
 * plan_swipe.css — 기획전 상세(plan_view2) 이동 위계 전용 스타일. 창B.
 *   스니펫 = include/comm/planSwipeComm.jsp / 데이터 = 공개 ajax(무재시작).
 *   위계: 위 지도 1개 + 아래 다음 1개.
 *     · 모바일 = 상단 한 줄 위치바 + 바텀시트 지도 + 이어보기 카드 + 전체보기 링크 (2026-07-24)
 *     · PC     = 상단 한 줄 위치바 + 드롭다운 지도 + 좌우 화살표 + 이어보기 카드 + 전체보기 링크 (2026-07-24)
 *   이모지 0 / 인라인 스타일 0.
 * ============================================================ */

/* ---- 안내 툴팁(딥그린 pill, 세션당 1회) ---- */
.plswTip{
	position:fixed; left:50%; bottom:80px;
	transform:translateX(-50%) translateY(10px); z-index:9000;
	max-width:88%; padding:12px 22px; border-radius:999px;
	background:#3D6041; color:#fff;
	font-family:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
	font-size:14px; font-weight:700; letter-spacing:-.01em; line-height:1.4;
	white-space:nowrap; box-shadow:0 6px 20px rgba(0,0,0,.28);
	opacity:0; visibility:hidden;
	transition:opacity .3s ease, transform .3s ease, visibility .3s ease;
	pointer-events:none;
}
.plswTip.show{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }

/* ---- 드래그 추종·슬라이드 전환(래퍼 .event_view_wrap 에 JS가 상태 클래스 토글) ---- */
.plsw-wrap{ will-change:transform, opacity; }
.plsw-drag{ transition:none !important; }
.plsw-exit{ transition:transform .2s ease-out, opacity .2s ease-out; }
.plsw-reset{ transition:transform .18s ease-out, opacity .18s ease-out; }
.plsw-in{ transition:transform .22s ease-out, opacity .22s ease-out; will-change:transform, opacity; }
@media (prefers-reduced-motion: reduce){
	.plswTip, .plsw-exit, .plsw-reset, .plsw-in{ transition:none; }
}

/* ---- 다음 기획전 = 대형 이어보기 카드(모바일·PC 공통) ---- */
.plsw-other{ margin:8px 12px 30px; }
.plsw-other[hidden]{ display:none; }
.plsw-hero-wrap:empty{ display:none; }
.plsw-hero{ display:flex; gap:14px; align-items:center; padding:12px; margin:0 0 12px;
	background:#f4f7f2; border:1px solid #dbe6d7; border-radius:16px; text-decoration:none; color:inherit; }
.plsw-hero-th{ flex:0 0 auto; width:98px; height:98px; border-radius:12px; overflow:hidden; background:#e8ece5; border:1px solid #dfe6da; }
.plsw-hero-th img{ width:100%; height:100%; object-fit:cover; display:block; }
.plsw-hero-th.noimg{ display:none; }
.plsw-hero-meta{ min-width:0; display:flex; flex-direction:column; gap:5px; }
.plsw-hero-meta .ey{ font-size:12.5px; font-weight:800; color:#3d6041; letter-spacing:-.01em; }
.plsw-hero-meta .nm{ font-size:16px; font-weight:800; color:#1d271e; line-height:1.32; letter-spacing:-.01em;
	display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.plsw-hero-meta .dt{ font-size:12px; color:#8a8f88; font-family:'Roboto','Pretendard',sans-serif; }

/* "이번 주 전체 기획전 보기" 링크(모바일=시트 / PC=드롭다운) — 기본 off, 각 미디어에서 on */
.plsw-morelink{ display:none; }

/* ============ 모바일 위계 (max-width:1024px) ============ */
.plsw-locbar{ display:none; }
.plsw-sheet{ position:fixed; inset:0; z-index:100; }
.plsw-sheet[hidden]{ display:none; }
.plsw-noscroll{ overflow:hidden !important; }
@media (min-width:1025px){ .plsw-sheet{ display:none !important; } }  /* 시트 = 모바일 전용 */

@media (max-width:1024px){
	/* 한 줄 위치바 (본문 최상단, 높이 46px, 글자 14px+) */
	.plsw-locbar{ display:flex; align-items:center; gap:10px; min-height:46px; box-sizing:border-box;
		margin:0; padding:8px 14px; background:#fffdf8; border-bottom:1px solid #e6e0d4; }
	.plsw-locbar .pos{ flex:0 0 auto; font-size:14px; font-weight:800; color:#3d6041;
		font-family:'Roboto','Pretendard',sans-serif; font-variant-numeric:tabular-nums; }
	.plsw-locbar .pos b{ font-size:15px; }
	.plsw-locbar .div{ flex:0 0 auto; width:1px; height:16px; background:#d8d8d8; }
	.plsw-locbar .cur{ flex:1 1 auto; min-width:0; font-size:14px; font-weight:700; color:#1d271e;
		line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; letter-spacing:-.01em; }
	.plsw-locbar .all{ flex:0 0 auto; display:inline-flex; align-items:center; gap:4px; font-size:13px; font-weight:800;
		color:#fff; background:#3d6041; border:0; border-radius:999px; padding:9px 14px; cursor:pointer; min-height:36px; }
	.plsw-locbar .all .cv{ font-size:10px; }

	/* 전체보기 링크(이어보기 카드 아래) */
	.plsw-morelink{ display:flex; align-items:center; justify-content:center; gap:6px; margin:4px 0 0; padding:14px;
		font-size:14px; font-weight:700; color:#3d6041; background:#f4f7f2; border:1px solid #dbe6d7; border-radius:12px;
		cursor:pointer; width:100%; box-sizing:border-box; }
	.plsw-morelink .cv{ font-size:10px; }
}

/* ---- 바텀시트 지도(모바일) — 하단메뉴(z12)·팝업(z110) 사이 z100 ---- */
.plsw-sheet-dim{ position:absolute; inset:0; background:rgba(29,39,30,.45); opacity:0; transition:opacity .25s ease; }
.plsw-sheet.open .plsw-sheet-dim{ opacity:1; }
.plsw-sheet-panel{ position:absolute; left:0; right:0; bottom:0; max-height:78vh; display:flex; flex-direction:column;
	background:#fff; border-radius:18px 18px 0 0; box-shadow:0 -8px 28px rgba(0,0,0,.22);
	transform:translateY(100%); transition:transform .28s cubic-bezier(.22,.61,.36,1); }
.plsw-sheet.open .plsw-sheet-panel{ transform:translateY(0); }
.plsw-sheet-grab{ flex:0 0 auto; width:44px; height:5px; border-radius:3px; background:#d8d8d8; margin:10px auto 4px; touch-action:none; }
.plsw-sheet-tt{ flex:0 0 auto; font-size:16px; font-weight:800; color:#1d271e; padding:8px 18px 12px; letter-spacing:-.01em; }
.plsw-sheet-tt .cnt{ font-size:13px; font-weight:700; color:#3d6041; }
.plsw-sheet-list{ flex:1 1 auto; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:0 12px calc(16px + env(safe-area-inset-bottom)); }
.plsw-sitem{ display:flex; align-items:center; gap:12px; padding:11px 10px; border-radius:14px; text-decoration:none; color:inherit; }
.plsw-sitem + .plsw-sitem{ border-top:1px solid #f0eee7; }
.plsw-sitem .th{ flex:0 0 auto; width:44px; height:44px; border-radius:10px; overflow:hidden; background:#eef1ea; border:1px solid #e2e6dd; }
.plsw-sitem .th img{ width:100%; height:100%; object-fit:cover; display:block; }
.plsw-sitem .th.noimg{ display:none; }
.plsw-sitem .meta{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:2px; }
.plsw-sitem .meta .nm{ font-size:14.5px; font-weight:700; color:#1d271e; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.plsw-sitem .meta .dt{ font-size:12px; color:#8a8f88; font-family:'Roboto','Pretendard',sans-serif; }
.plsw-sitem .badge{ flex:0 0 auto; font-size:11.5px; font-weight:800; padding:4px 10px; border-radius:999px; white-space:nowrap; }
.plsw-sitem .badge.cur{ background:#3d6041; color:#fff; }
.plsw-sitem .badge.next{ background:#eaf3e7; color:#3d6041; }
.plsw-sitem.on{ background:#f1f7ef; }

/* ============ PC 위계 (min-width:1025px) ============ */
.plsw-pcbar{ display:none; }
.plsw-fab{ display:none; }
@media (min-width:1025px){
	.plsw-other{ max-width:1200px; margin:24px auto 44px; padding:0 12px; }

	/* 한 줄 위치바 (본문 최상단, 히어로 위) */
	.plsw-pcbar{ display:block; max-width:1200px; margin:16px auto 0; padding:0 12px; position:relative; }
	.plsw-pcbar-inner{ position:relative; display:flex; align-items:center; gap:14px;
		background:#fffdf8; border:1px solid #e2ddcf; border-radius:12px; padding:12px 16px; }
	.plsw-pcbar .pos{ flex:0 0 auto; font-size:15px; font-weight:800; color:#3d6041;
		font-family:'Roboto','Pretendard',sans-serif; font-variant-numeric:tabular-nums; }
	.plsw-pcbar .div{ flex:0 0 auto; width:1px; height:18px; background:#d8d8d8; }
	.plsw-pcbar .cur{ flex:1 1 auto; min-width:0; font-size:15px; font-weight:700; color:#1d271e;
		line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; letter-spacing:-.01em; }
	.plsw-pcbar .all{ flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; cursor:pointer;
		font-size:14.5px; font-weight:800; color:#3d6041; background:#fff; border:1.5px solid #3d6041; border-radius:999px; padding:9px 16px; }
	.plsw-pcbar .all .cv{ font-size:11px; transition:transform .18s ease; }
	.plsw-pcbar.open .plsw-pcbar-inner{ border-radius:12px 12px 0 0; }
	.plsw-pcbar.open .all{ background:#3d6041; color:#fff; }
	.plsw-pcbar.open .all .cv{ transform:rotate(180deg); }

	/* 드롭다운 지도 패널(위치바 바로 아래로 펼침, 라운드 하단만) */
	.plsw-pcmap{ position:absolute; top:100%; left:12px; right:12px; z-index:50; margin-top:-1px;
		background:#fff; border:1px solid #e2ddcf; border-top:0; border-radius:0 0 14px 14px;
		box-shadow:0 16px 34px rgba(29,39,30,.16); padding:18px; max-height:72vh; overflow-y:auto;
		display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:16px; }
	.plsw-pcmap[hidden]{ display:none; }
	.plsw-pcmi{ display:block; text-decoration:none; color:inherit; }
	.plsw-pcmi .th{ position:relative; width:100%; aspect-ratio:1/1; border-radius:12px; overflow:hidden;
		background:#f4f2ec; border:1px solid #e8e4da; }
	.plsw-pcmi .th img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease; }
	.plsw-pcmi .th.noimg{ display:none; }
	.plsw-pcmi .badge{ position:absolute; top:8px; left:8px; font-size:11.5px; font-weight:800; padding:4px 10px; border-radius:999px; }
	.plsw-pcmi .badge.cur{ background:#3d6041; color:#fff; }
	.plsw-pcmi .badge.next{ background:#f2b737; color:#3d271e; }
	.plsw-pcmi .nm{ font-size:14.5px; font-weight:800; color:#1d271e; line-height:1.32; margin:9px 2px 3px;
		display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
	.plsw-pcmi .dt{ font-size:12.5px; color:#8a8f88; margin:0 2px; font-family:'Roboto','Pretendard',sans-serif; }
	.plsw-pcmi.on .th{ border-color:#3d6041; box-shadow:0 0 0 2px #3d6041; }
	.plsw-pcmi.on .nm{ color:#3d6041; }
	a.plsw-pcmi:hover .th img{ transform:scale(1.04); }
	a.plsw-pcmi:hover .nm{ text-decoration:underline; }

	/* 전체보기 링크 PC */
	.plsw-morelink{ display:inline-flex; align-items:center; justify-content:center; gap:7px; margin:2px 0 0; padding:12px 20px;
		font-size:14px; font-weight:700; color:#3d6041; background:#f4f7f2; border:1px solid #dbe6d7; border-radius:12px; cursor:pointer; }
	.plsw-morelink .cv{ font-size:10px; }

	/* B. 이어보기 카드 PC 확대 */
	.plsw-hero{ padding:16px; margin-bottom:14px; }
	.plsw-hero-th{ width:150px; height:150px; }
	.plsw-hero-meta .ey{ font-size:13.5px; }
	.plsw-hero-meta .nm{ font-size:19px; }
	.plsw-hero-meta .dt{ font-size:13px; }

	/* C. PC 좌우 플로팅 화살표(무접촉) */
	.plsw-fab{ display:grid; place-items:center; position:fixed; top:50%; transform:translateY(-50%); z-index:40;
		width:44px; height:44px; border-radius:50%; background:#3d6041; color:#fff; border:0; cursor:pointer;
		box-shadow:0 4px 14px rgba(29,39,30,.30); transition:background .15s ease; }
	.plsw-fab[hidden]{ display:none; }
	.plsw-fab.prev{ left:18px; }
	.plsw-fab.next{ right:18px; }
	.plsw-fab .chev{ font-size:26px; line-height:1; margin-top:-2px; }
	.plsw-fab .tip{ position:absolute; top:50%; transform:translateY(-50%); white-space:nowrap; max-width:230px;
		overflow:hidden; text-overflow:ellipsis; background:#1d271e; color:#fff; font-size:13px; font-style:normal;
		font-weight:600; padding:6px 11px; border-radius:8px; opacity:0; pointer-events:none; transition:opacity .15s ease; box-shadow:0 3px 10px rgba(0,0,0,.2); }
	.plsw-fab.prev .tip{ left:54px; }
	.plsw-fab.next .tip{ right:54px; }
	.plsw-fab:hover{ background:#2f5233; }
	.plsw-fab:hover .tip{ opacity:1; }
}
