/* 공통 대시보드 위젯 스타일 — 이미지·슬라이더·이미지 링크(core common.*) + brd 보드 위젯 공개 모양
 * 인트라넷 대시보드(dashboard.html/edit.html)와 홈페이지 메인(www main.html)이 함께 로드 (2026-11-05 dash-public.css 에서 분리).
 * 클래스명 www-* 은 이동 전 이름 유지. */
.www-widget { height: 100%; }
.www-page-block img { max-width: 100%; height: auto; }
.www-page-block p { margin: 0; }
/* 슬라이더 */
.www-slider { position: relative; height: 100%; overflow: hidden; }
.www-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .6s; }
.www-slide.active { opacity: 1; }
.www-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.www-slide-caption { position: absolute; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.5); color: #fff; padding: 6px 10px; font-size: 13px; }
/* 썸네일 스트립 */
.www-thumb-strip { display: flex; gap: 8px; overflow-x: auto; height: 100%; align-items: center; padding: 4px; }
.www-thumb { flex: 0 0 auto; width: 110px; }
.www-thumb img { width: 110px; height: 70px; object-fit: cover; border: 1px solid #e3e3e3; display: block; }
.www-thumb-title { display: block; font-size: 11px; color: #666; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* 최신글 */
.www-board-recent { padding: 6px 10px; overflow: hidden; }
.www-board-recent-head { text-align: right; font-size: 12px; }
.www-board-recent-more { color: #888; }
.www-board-recent-list { list-style: none; margin: 0; padding: 0; }
.www-board-recent-list li { display: flex; align-items: center; gap: 8px; padding: 3px 0; border-bottom: 1px dotted #e3e3e3; font-size: 13px; }
.www-board-recent-list li a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #444; }
.www-board-recent-list li .d { color: #999; font-size: 12px; white-space: nowrap; }

/* ---------- 이미지 위젯 공통 (fit) ---------- */
.www-img-box { width: 100%; height: 100%; display: flex; align-items: flex-start; justify-content: center; overflow: hidden; }
.www-img-box a { display: block; width: 100%; height: 100%; }
.www-img-box img { width: 100%; height: 100%; display: block; }
/* fit: contain=원본비율 유지 / fill=채우기(비율 무시) / width=가로 맞춤(아래 잘림·남음) / height=세로 맞춤(좌우 잘림·남음) / cover=덮기(비율 유지, 잘림) */
.fit-contain img { width: 100%; height: 100%; object-fit: contain; object-position: top center; }
.fit-fill img    { width: 100%; height: 100%; object-fit: fill; }
.fit-cover img   { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.fit-width img   { width: 100%; height: auto; max-height: none; object-fit: unset; display: block; }
.fit-height      { display: flex; justify-content: center; align-items: flex-start; overflow: hidden; }
.fit-height img  { height: 100%; width: auto; max-width: none; object-fit: unset; display: block; }
.www-slide.fit-height { display: block; }
.www-slide.fit-height img { position: absolute; left: 50%; top: 0; transform: translateX(-50%); }
.www-slide.fit-width img { position: absolute; left: 0; top: 0; }
/* 슬라이드 문구 오버레이 */
.www-slide-text { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); padding: 0 8%; pointer-events: none; }
.www-slide-text h2 { font-size: 44px; font-weight: 800; margin: 0 0 8px; letter-spacing: -1px; text-shadow: 0 1px 3px rgba(0,0,0,.25); }
.www-slide-text p { font-size: 16px; margin: 0; text-shadow: 0 1px 2px rgba(0,0,0,.25); }
.www-slide-text.text-light { color: #fff; }
.www-slide-text.text-dark { color: #444; text-shadow: none; }
.www-slide-text.align-left { text-align: left; } .www-slide-text.align-center { text-align: center; } .www-slide-text.align-right { text-align: right; }
.www-slider-dots { position: absolute; bottom: 8px; left: 0; right: 0; text-align: center; z-index: 2; }
.www-slider-dots span { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.6); margin: 0 3px; cursor: pointer; }
.www-slider-dots span.active { background: #c9302c; }
/* 이미지 링크 묶음 — 헤더(자연 높이) + 아이콘 그리드(남은 높이를 행 수로 분할, 아이콘은 셀 높이에 맞춤), 페이지 초과분은 슬라이드 */
.www-image-links { display: flex; flex-direction: column; height: 100%; }
.www-image-links-header { flex: 0 0 auto; }
.www-image-links-header img { width: 100%; height: auto; display: block; }
.www-image-links-pages { flex: 1 1 auto; min-height: 0; position: relative; }
.www-image-links-grid { display: grid; width: 100%; height: 100%; }
.www-image-links-grid.www-slide { position: absolute; inset: 0; }
.www-image-links-item { min-width: 0; min-height: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.www-image-links-item a { display: block; width: 100%; height: 100%; }
.www-image-links-item img { width: 100%; height: 100%; display: block; }
.www-image-links-item.fit-contain img { object-fit: contain; object-position: center; }
.www-image-links-item.fit-width img { height: auto; }
.www-image-links-item.fit-height img { width: auto; max-width: none; }
@media (max-width: 767px) { .www-slide-text h2 { font-size: 26px; } .www-slide-text p { font-size: 13px; } }
