@charset "utf-8";
/* schedule - 시장일정 (PC 리디자인)
   기존 JSP 마크업(.calendar_box / .tbl_cal_list / .cal_viewbox)을 그대로 두고
   CSS 만으로 다른 서브페이지(걸어온길·비전·인사말)와 같은 재질로 맞춘다. */

.sch_page{--ink:#0f2740; --pt:#1a5fb4; --pt2:#2ba7ac; --line:rgba(18,37,61,.1);}

/* ── 배경 : 다른 서브페이지와 동일 재질 ─────────── */
.sch_page.sub_content{background:linear-gradient(180deg,#fbfcfe 0%,#f4f7fb 55%,#f7fafb 100%); padding:2rem 0 12rem;}
.sch_page .bg_dot{opacity:.3; background-image:radial-gradient(rgba(18,37,61,.09) 1.2px,transparent 1.2px); background-size:26px 26px;}
.sch_page .sp_aur{position:absolute; border-radius:50%; pointer-events:none; filter:blur(11rem); opacity:.55; z-index:0;}
.sch_page .sp_aur.a1{width:62rem; height:62rem; left:-18rem; top:-16rem; background:radial-gradient(circle,rgba(43,167,172,.22),transparent 70%);}
.sch_page .sp_aur.a2{width:70rem; height:70rem; right:-22rem; top:14%; background:radial-gradient(circle,rgba(26,95,180,.16),transparent 70%);}
.sch_page .sp_aur.a3{width:64rem; height:64rem; left:6%; bottom:-16rem; background:radial-gradient(circle,rgba(43,167,172,.16),transparent 70%);}
.sch_page .sub_in{position:relative; z-index:2;}

/* ── 상단 유틸 ───────────────────────── */
.sch_page .head_util{display:flex; gap:.8rem;}
.sch_page .util_btn{display:grid; place-items:center; width:4.6rem; height:4.6rem; border-radius:50%; color:#1c3a5e;
	background:rgba(255,255,255,.55); border:1px solid rgba(255,255,255,.9);
	backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); transition:background .25s,transform .25s,color .25s;}
.sch_page .util_btn:hover{background:#fff; color:var(--pt); transform:translateY(-2px);}
.sch_page .util_btn svg{width:2rem; height:2rem; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}

.sch_page .content_box{position:relative; z-index:2;}
.calendar_box{position:relative;}

/* ══ 1. 연·월 컨트롤 ══════════════════════ */
/* 이전 · 연월 · 다음 을 한 덩어리로 중앙 정렬 — 우측 상단 유틸 버튼과 겹쳐 보이지 않게 한다 */
.cal_ctrlbox{position:relative; z-index:30; display:flex; align-items:center; justify-content:center; gap:1.6rem;
	padding:.6rem 0 2.8rem;}
.cal_ctrlbox .cal_year{order:2; display:flex; align-items:center; gap:1.6rem; min-width:26rem; justify-content:center;}
.cal_ctrlbox .cal_btn_pre{order:1;}
.cal_ctrlbox .cal_btn_next{order:3;}

.cal_year .btn_year,
.cal_year .btn_month{position:relative; display:inline-block;}
/* 연·월 모두 같은 형태의 셀렉터 : 텍스트 + 캐럿(글자 크기에 비례) */
.cal_year .btn_year > a,
.cal_year .btn_month > a{display:inline-flex; align-items:center; gap:1.2rem; position:relative;
	font-family:'YuhanKimberlyPureunSup',"Pretendard Variable",sans-serif; letter-spacing:-.05em; line-height:1;
	padding:.4rem .2rem; transition:color .25s;}
.cal_year .btn_year > a{font-size:2.6rem; font-weight:700; color:#8496a9;}
.cal_year .btn_month > a{font-size:4.4rem; font-weight:700; color:var(--ink);}
.cal_year .btn_year > a:hover,
.cal_year .btn_month > a:hover{color:var(--pt);}
.cal_year .btn_year > a::before,
.cal_year .btn_month > a::before{content:''; position:absolute; left:.2rem; right:.2rem; bottom:-.2rem; height:2px;
	border-radius:1px; background:currentColor; opacity:0; transform:scaleX(.4); transform-origin:left center;
	transition:opacity .25s,transform .25s;}
.cal_year .btn_year > a:hover::before,
.cal_year .btn_month > a:hover::before{opacity:.3; transform:scaleX(1);}
/* 캐럿 : 회전 사각형의 시각 중심이 아래로 쏠리므로 -.06em 만큼 올려 광학 정렬한다 */
.cal_year .btn_year > a::after,
.cal_year .btn_month > a::after{content:''; flex:0 0 auto; width:.7rem; height:.7rem;
	border-right:2px solid currentColor; border-bottom:2px solid currentColor;
	transform:translateY(-.2rem) rotate(45deg); opacity:.6; transition:opacity .25s;}
.cal_year .btn_year > a:hover::after,
.cal_year .btn_month > a:hover::after{opacity:.85;}

/* 연·월 선택 패널 : 버튼과 연결된 말풍선형 피커.
   달력을 크게 가리지 않도록 낮고 넓은 격자로 펼친다 */
.cal_year .cale_deps{position:absolute; left:50%; transform:translateX(calc(-50% + .95rem)); top:calc(100% + 1.2rem); z-index:20;
	padding:1.4rem 1.2rem 1.2rem; list-style:none; border-radius:1.6rem;
	background:#fff; border:1px solid rgba(18,37,61,.08);
	box-shadow:0 2.6rem 5.4rem -1.8rem rgba(15,39,64,.45), 0 .2rem .8rem rgba(15,39,64,.05);}
/* 버튼을 가리키는 꼭지 */
.cal_year .cale_deps::after{content:''; position:absolute; left:calc(50% - .95rem); top:-.65rem; width:1.2rem; height:1.2rem;
	transform:translateX(-50%) rotate(45deg); background:#fff;
	border-left:1px solid rgba(18,37,61,.08); border-top:1px solid rgba(18,37,61,.08); border-radius:.2rem 0 0 0;}
/* 패널 캡션 */
.cal_year .cale_deps::before{display:block; margin:0 0 1rem; text-align:center;
	font-family:"Pretendard Variable","Pretendard",sans-serif; font-size:1.15rem; font-weight:700;
	letter-spacing:.16em; color:#9aabbd;}
.cal_year .btn_year .cale_deps::before{content:"YEAR";}
.cal_year .btn_month .cale_deps::before{content:"MONTH";}

/* li 사이 공백문자 폭 때문에 마지막 칸이 다음 줄로 밀리지 않도록 font-size:0 으로 제거한다 */
.cal_year .btn_year .cale_deps{width:24rem; font-size:0;}
.cal_year .btn_year .cale_deps li{display:inline-block; width:33.333%; vertical-align:top; padding:.2rem;}
.cal_year .btn_month .cale_deps{width:28rem; font-size:0;}
.cal_year .btn_month .cale_deps li{display:inline-block; width:25%; vertical-align:top; padding:.2rem;}

.cal_year .cale_deps a{display:flex; align-items:center; justify-content:center; height:4rem; border-radius:1rem;
	white-space:nowrap; font-family:"Pretendard Variable","Pretendard",sans-serif;
	font-size:1.5rem; font-weight:600; letter-spacing:-.02em; color:#4a5b70;
	font-variant-numeric:tabular-nums; transition:background .2s,color .2s,box-shadow .2s;}
.cal_year .cale_deps a:hover{background:rgba(26,95,180,.08); color:var(--pt);}
.cal_year .cale_deps a.on{background:linear-gradient(180deg,#2a72c8,var(--pt)); color:#fff;
	box-shadow:0 .9rem 1.8rem -.9rem rgba(26,95,180,.95);}
.cal_year #searchForm{display:none;}

/* 이전·다음 : 양 끝에 떨어뜨려 놓는 원형 버튼 — 글리프는 삼각형 */
.cal_btnset{display:block;}
.cal_btnset button{display:grid; place-items:center; width:4.8rem; height:4.8rem; border-radius:50%; cursor:pointer;
	border:1px solid rgba(18,37,61,.12); background:#fff;
	box-shadow:0 .6rem 1.6rem -.8rem rgba(15,39,64,.35);
	transition:background .25s,border-color .25s,transform .25s,box-shadow .25s;}
.cal_btnset button::after{content:''; width:0; height:0; border-top:.62rem solid transparent; border-bottom:.62rem solid transparent;}
.cal_btn_pre button::after{margin-right:.2rem; border-right:.9rem solid #35496a;}
.cal_btn_next button::after{margin-left:.2rem; border-left:.9rem solid #35496a;}
.cal_btnset button:hover{background:var(--pt); border-color:var(--pt); transform:translateY(-2px);
	box-shadow:0 1.4rem 2.8rem -1.2rem rgba(26,95,180,.7);}
.cal_btn_pre button:hover::after{border-right-color:#fff;}
.cal_btn_next button:hover::after{border-left-color:#fff;}
.screen_out{position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap;}

/* ══ 2. 달력 ════════════════════════════ */
.cal_cont{position:relative; padding:1.6rem 2rem 2rem; border-radius:2rem;
	background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,255,255,.6));
	border:1px solid rgba(255,255,255,.9);
	backdrop-filter:blur(20px) saturate(150%); -webkit-backdrop-filter:blur(20px) saturate(150%);
	box-shadow:0 3.2rem 7rem -3rem rgba(15,39,64,.3), 0 .2rem 1rem rgba(15,39,64,.04);}

.tbl_cal_list{width:100%; table-layout:fixed; border-collapse:collapse;}
.tbl_cal_list caption{position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0);}
.tbl_cal_list .blind_ck{position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0);}

/* 요일 머리글 : 셀과 같은 라운드를 가진 옥색 밴드 — 그리드의 머리로 읽힌다 */
.tbl_cal_list thead th{padding:1.1rem 0; background: #00209e;  color: #ffffff;
	font-family:"Pretendard Variable","Pretendard",sans-serif; font-size:1.5rem; font-weight:700; letter-spacing:.02em;}
.tbl_cal_list thead th:first-child{border-radius:1rem 0 0 1rem;}
.tbl_cal_list thead th:last-child{border-radius:0 1rem 1rem 0;}
.tbl_cal_list thead th:first-child{color: #ffa4b5; border-radius:1rem 0 0 1rem;}
.tbl_cal_list thead th:last-child{color: #36c1ff; border-radius:0 1rem 1rem 0;}

.tbl_cal_list td{height:12.8rem; padding:.4rem .3rem; vertical-align:top; border-bottom:1px solid rgba(18,37,61,.07);}
.tbl_cal_list tbody tr:first-child td{padding-top:1.2rem;}
.tbl_cal_list tbody tr:last-child td{border-bottom:0;}

.tbl_cal_list .day,
.tbl_cal_list .no_day{display:flex; flex-direction:column; width:100%; height:100%;
	padding:1.2rem .9rem 1rem; border-radius:1.2rem; border:1px solid transparent;}
.tbl_cal_list .day{transition:background .22s,border-color .22s,box-shadow .22s,transform .22s;}
/* 날짜 숫자와 일정 목록 사이 간격 (오늘 배지일 때도 동일하게 유지) */
/* 날짜 숫자와 일정 텍스트가 같은 왼쪽 마진선을 공유하도록 맞춘다 */
.tbl_cal_list .day > b,
.tbl_cal_list .no_day > b{display:block; flex:0 0 auto; margin-bottom:.9rem; padding-left:.9rem;
	font-family:"Pretendard Variable","Pretendard",sans-serif; font-size:1.6rem; font-weight:600;
	line-height:2.2rem; letter-spacing:-.03em;  color: #002047; font-variant-numeric:tabular-nums;}
.tbl_cal_list .day.sun > b,
.tbl_cal_list .day.holiday > b{color:#c9425a;}
.tbl_cal_list .day.sat > b{color:#2b6fd0;}
.tbl_cal_list .day:hover{background:#fff;     border-color: #4e9ae6; transform:translateY(-2px);
	box-shadow:0 1.8rem 3.6rem -2rem rgba(15,39,64,.4);     border: 2px solid #4e9ae6;}
/* 오늘 : 브랜드 블루 원형 배지 */
.tbl_cal_list .day.today > b{display:flex; align-items:center; justify-content:center; box-sizing:border-box;
	width:2.6rem; height:2.6rem; padding:0; margin-left:.5rem;
	border-radius:50%; line-height:1; color:#fff; font-weight:700;
	background:linear-gradient(140deg,#54cdd4,#1a5fb4);
	box-shadow:0 .8rem 1.6rem -.8rem rgba(26,95,180,.85);}
.tbl_cal_list .day.is_on{background:#fff; border-color:rgba(26,95,180,.35); box-shadow:0 1.8rem 3.6rem -2rem rgba(15,39,64,.4);}

.tbl_cal_list .no_day > b{font-weight:500; color:#c3ccd8;}

/* 일정 행 : 텍스트 왼줘이 날짜 숫자와 같은 라인에 오도록 안쪽 여백을 맞춘다 */
.day_schedule_box{overflow:hidden; flex:1 1 auto; min-height:0;}
.day_schedule_box ul{display:flex; flex-direction:column; gap:.4rem; list-style:none; margin:0; padding:0;}
.day_schedule_box li{overflow:hidden; padding:.55rem .9rem; border-radius:.8rem;
	 font-size:1.45rem; font-weight:600; letter-spacing:-.035em; line-height:1.45;
	    color: #011f44; white-space:nowrap; text-overflow:ellipsis;}
.day:hover .day_schedule_box li{background:rgba(26,95,180,.12);}

/* ══ 3. 선택일 상세 ══════════════════════ */
.cal_viewbox:empty{display:none;}
.cal_viewbox{margin-top:5.6rem;}
.cal_view_tit{display:flex; align-items:baseline; gap:1.6rem; padding-bottom:1.8rem; border-bottom:2px solid rgba(18,37,61,.14);}
.cal_view_tit h3{display:flex; align-items:center; margin:0;
	font-family:'YuhanKimberlyPureunSup',"Pretendard Variable",sans-serif;
	font-size:3rem; font-weight:700; line-height:1.3; letter-spacing:-.05em; color:var(--ink);
	word-break:keep-all; text-wrap:pretty;}

.cal_viewlist{list-style:none; margin:0; padding:0; display:flex; flex-direction:column;}
.cal_viewlist li{border-bottom:1px solid rgba(18,37,61,.09);}
.cal_viewinner{display:grid; grid-template-columns:minmax(0,9rem) minmax(0,1fr); gap:0 3.2rem; align-items:start;
	padding:2.8rem 1.2rem; transition:background .22s;}
.cal_viewlist li:hover .cal_viewinner{background:rgba(255,255,255,.7);}

.cal_state{padding-top:.3rem;}
.cal_state span{display:inline-flex; align-items:center; gap:.6rem; height:3rem; padding:0 1.2rem; border-radius:1.5rem;
	font-size:1.4rem; font-weight:700; letter-spacing:-.02em;}
.cal_state.ought span{background:rgba(43,167,172,.12); color:#12757a;}
.cal_state.compl span{background:rgba(18,37,61,.07); color:#77879a;}
.cal_state span::before{content:''; width:.6rem; height:.6rem; border-radius:50%; background:currentColor;}

.cal_viewinner .tit{display:block; font-size:2.2rem; font-weight:700; letter-spacing:-.045em; line-height:1.4;
	color:var(--ink); word-break:keep-all; text-wrap:pretty;}
.cal_viewinner p{display:flex; gap:.8rem 2.8rem; margin-top:1.2rem; font-size:0;}
.cal_viewinner .item{font-size:1.6rem; font-weight:500; letter-spacing:-.03em; color:#8494a6; word-break:keep-all;
white-space:nowrap; display:inline-block;}
.cal_viewinner .item b{margin-left:.4rem; font-weight:600; color:#33455c;}
.cal_viewinner .item b.time{font-family:"Pretendard Variable","Pretendard",sans-serif; color:var(--pt); font-variant-numeric:tabular-nums;}

.cal_viewinner.no_schedule{grid-template-columns:1fr; padding:6rem 0; text-align:center;}
.cal_viewinner.no_schedule .tit{font-size:1.8rem; font-weight:500; color:#9aabbd;}

/* 월 전환 : 표 본문이 진행 방향으로 스르륵 밀리며 바뀐다 */
@keyframes cal_slide_next{from{opacity:0; transform:translateX(3.2rem);} to{opacity:1; transform:none;}}
@keyframes cal_slide_prev{from{opacity:0; transform:translateX(-3.2rem);} to{opacity:1; transform:none;}}
.tbl_cal_list tbody.is_next{animation:cal_slide_next .42s cubic-bezier(.22,1,.32,1) both;}
.tbl_cal_list tbody.is_prev{animation:cal_slide_prev .42s cubic-bezier(.22,1,.32,1) both;}
@media (prefers-reduced-motion:reduce){
	.tbl_cal_list tbody.is_next,
	.tbl_cal_list tbody.is_prev{animation:none;}
}

/* ── 진입 애니메이션 ───────────────────── */
@keyframes sch_up{from{opacity:0; transform:translateY(2.4rem); filter:blur(.4rem);} to{opacity:1; transform:none; filter:none;}}
.sch_page .cal_ctrlbox,
.sch_page .cal_cont{animation:sch_up .9s cubic-bezier(.16,1,.3,1) both;}
.sch_page .cal_ctrlbox{animation-delay:.05s;}
.sch_page .cal_cont{animation-delay:.16s;}
.cal_viewbox .cal_view_tit,
.cal_viewbox .cal_viewlist li{animation:sch_up .7s cubic-bezier(.16,1,.3,1) both;}
.cal_viewbox .cal_viewlist li:nth-child(1){animation-delay:.06s;}
.cal_viewbox .cal_viewlist li:nth-child(2){animation-delay:.12s;}
.cal_viewbox .cal_viewlist li:nth-child(3){animation-delay:.18s;}
.cal_viewbox .cal_viewlist li:nth-child(4){animation-delay:.24s;}
.cal_viewbox .cal_viewlist li:nth-child(n+5){animation-delay:.3s;}
@media (prefers-reduced-motion:reduce){
	.sch_page .cal_ctrlbox,
	.sch_page .cal_cont,
	.cal_viewbox .cal_view_tit,
	.cal_viewbox .cal_viewlist li{animation:none;}
}

/* ── 접근성 : 키보드 포커스 링 (마우스 클릭에는 뜨지 않는다) ───────── */
.sch_page a:focus-visible,
.sch_page button:focus-visible{outline:3px solid #1a5fb4; outline-offset:3px; border-radius:.6rem;}
.tbl_cal_list .day:focus-visible{outline-offset:-2px;}

/* ── 반응형 ─ 기준점 : 1440 / 1280 / 1024 / 768 / 480 / 380 ─────────
   본문 텍스트는 어느 폭에서도 1.6rem(16px) 아래로 내려가지 않게 하고,
   보조 라벨(요일·배지)만 1.4rem까지 허용한다. 터치 대상은 44px 이상 유지. */
@media (max-width:1440px){
	.tbl_cal_list td{height:12.8rem;}
	.cal_year .btn_month > a{font-size:4rem;}
}
@media (max-width:1280px){
	.sch_page.sub_content{padding-bottom:10rem;}
	.cal_cont{padding:1.4rem 1.6rem 1.6rem;}
	.tbl_cal_list td{height:12rem; padding:.35rem .25rem;}
	.tbl_cal_list .day,
	.tbl_cal_list .no_day{padding:1.1rem .8rem .9rem;}
	.tbl_cal_list .day > b,
	.tbl_cal_list .no_day > b{margin-bottom:.8rem; padding-left:.8rem; font-size:1.7rem;}
	.tbl_cal_list .day.today > b{width:2.5rem; height:2.5rem; padding:0; line-height:1; margin-left:.4rem;}
	.cal_year .btn_month > a{font-size:3.6rem;}
	.cal_year .btn_year > a{font-size:2.2rem;}
	.day_schedule_box li{padding:.5rem .8rem; font-size:1.4rem;}
	.cal_view_tit h3{font-size:2.8rem;}
	.cal_viewinner .tit{font-size:2rem;}
	.cal_viewinner .item{font-size:1.6rem;}
}

/* ══ 태블릿 ═══════════════════════════ */
@media (max-width:1024px){
	.sch_page.sub_content{padding-bottom:9rem;}
	.sch_page .sp_aur{filter:blur(8rem); opacity:.45;}

	.cal_ctrlbox{gap:1.4rem; padding-bottom:2.2rem;}
	.cal_ctrlbox .cal_year{min-width:22rem; gap:1.2rem;}
	.cal_year .btn_month > a{font-size:3.2rem;}
	.cal_year .btn_year > a{font-size:2rem;}
	.cal_btnset button{width:4.6rem; height:4.6rem;}

	.cal_cont{padding:1.2rem; border-radius:1.6rem;}
	.tbl_cal_list thead th{padding:1rem 0; font-size:1.5rem;}
	.tbl_cal_list td{height:11.2rem;}
	.tbl_cal_list .day,
	.tbl_cal_list .no_day{padding:1rem .7rem .8rem; border-radius:1rem;}
	.tbl_cal_list .day > b,
	.tbl_cal_list .no_day > b{padding-left:.6rem; font-size:1.7rem; line-height:2.2rem;}
	.tbl_cal_list .day.today > b{width:2.4rem; height:2.4rem; padding:0; line-height:1; margin-left:.2rem;}
	.day_schedule_box ul{gap:.35rem;}
	.day_schedule_box li{padding:.45rem .7rem; font-size:1.4rem; border-radius:.6rem;}

	.cal_viewbox{margin-top:4.4rem;}
	.cal_view_tit h3{font-size:2.6rem;}
	.cal_viewinner{grid-template-columns:minmax(0,8rem) minmax(0,1fr); gap:0 2.2rem; padding:2.4rem .6rem;}
	.cal_viewinner .tit{font-size:2rem;}
	.cal_viewinner .item{font-size:1.6rem;}
}

/* ══ 모바일 ═══════════════════════════
   좁은 폭에서는 일정 제목을 넣을 자리가 없다 → 달력을 "날짜 선택기"로 성격을 바꾼다.
   · 날짜는 원형 탭 타깃(4.4rem)으로 키우고
   · 일정 있는 날은 셀에 옅은 색을 깔아 스캔되게 하고, 건수는 숫자 아래 점으로
   · 오늘 = 링, 선택 = 채운 원 으로 구분
   · 실제 일정 내용은 달력 아래 상세 목록에서 읽는다 */
@media (max-width:768px){
	.cal_ctrlbox{gap:1.2rem; padding-bottom:1.8rem;}
	.cal_ctrlbox .cal_year{min-width:0; gap:1rem;}
	.cal_year .btn_month > a{font-size:2.8rem;}
	.cal_year .btn_year > a{font-size:1.8rem;}
	.cal_year .btn_year > a::after,
	.cal_year .btn_month > a::after{width:.6rem; height:.6rem;}
	.cal_btnset button{width:4.4rem; height:4.4rem;}
	.cal_year .btn_year .cale_deps{width:24rem;}
	.cal_year .btn_month .cale_deps{width:27rem;}
	.cal_year .btn_month .cale_deps li{width:33.333%;}
	.cal_year .cale_deps a{min-height:4.4rem; display:flex; align-items:center; justify-content:center;
		padding:.6rem .4rem; font-size:1.6rem;}

	.cal_cont{padding:1.4rem .8rem 1rem; border-radius:1.8rem;}
	.tbl_cal_list thead th{padding:1.2rem 0 1.3rem; font-size:1.4rem;}
	.tbl_cal_list td{height:auto; padding:.2rem .25rem; border-bottom:0;}
	.tbl_cal_list .day,
	.tbl_cal_list .no_day{position:relative; align-items:center; justify-content:flex-start; gap:.4rem;
		min-height:6.6rem; padding:.7rem .2rem .8rem; border-radius:1.2rem;}

	/* 일정 있는 날 : 셀 전체에 옅은 브랜드 톤 */
	.tbl_cal_list .day:has(.day_schedule_box li){background:rgba(26,95,180,.06);}

	/* 날짜 숫자 = 원형 탭 타깃 */
	.tbl_cal_list .day > b,
	.tbl_cal_list .no_day > b{display:flex; align-items:center; justify-content:center; flex:0 0 auto;
		width:3.4rem; height:3.4rem; max-width:100%; margin:0; padding:0; border-radius:50%;
		font-size:1.7rem; line-height:1; letter-spacing:-.04em;}
	.tbl_cal_list .day.today > b{box-sizing:border-box; width:3.4rem; height:3.4rem; padding:0; border-radius:50%; line-height:1; margin:0; color:var(--pt);
		background:none; box-shadow:inset 0 0 0 1px var(--pt);}
	.tbl_cal_list .day.is_on{background:none; border-color:transparent; box-shadow:none;}
	.tbl_cal_list .day.is_on > b{box-sizing:border-box; padding:0; border-radius:50%; line-height:1;
		color:#fff; background:linear-gradient(140deg,#54cdd4,#1a5fb4);
		box-shadow:0 .8rem 1.8rem -.8rem rgba(26,95,180,.9);}
	.tbl_cal_list .day:hover{transform:none; box-shadow:none; background:rgba(26,95,180,.06);}
	.tbl_cal_list .day:hover:not(:has(.day_schedule_box li)){background:none;}

	/* 건수 표시 : 숫자 바로 아래 점 (최대 3개 노출) */
	.day_schedule_box{position:static; flex:0 0 auto; width:100%; min-height:.6rem;}
	.day_schedule_box ul{flex-direction:row; flex-wrap:wrap; justify-content:center; align-content:flex-start;
		gap:.4rem; padding:0 .6rem; box-sizing:border-box;}
	.day_schedule_box li{flex:0 0 auto; overflow:hidden; width:.6rem; height:.6rem; padding:0; border-radius:50%;
		background:var(--pt2); text-indent:-999rem; white-space:nowrap;}
	.day.is_on .day_schedule_box li{background:var(--pt);}
	.day:hover .day_schedule_box li{background:var(--pt2);}

	.cal_viewbox{margin-top:3.6rem;}
	.cal_view_tit{padding-bottom:1.4rem;}
	.cal_view_tit h3{font-size:2.2rem;}
	.cal_viewinner{grid-template-columns:minmax(0,1fr); gap:1rem 0; padding:2.2rem .4rem;}
	.cal_state{padding-top:0;}
	.cal_state span{height:2.8rem; padding:0 1.1rem; font-size:1.4rem;}
	.cal_viewinner .tit{font-size:1.9rem;}
	.cal_viewinner p{flex-direction:column; gap:.7rem; margin-top:1.1rem;}
	.cal_viewinner .item{font-size:1.6rem;}
	.cal_viewinner.no_schedule{padding:4.4rem 0;}
	.cal_viewinner.no_schedule .tit{font-size:1.7rem;}
}
@media (max-width:480px){
	.cal_year .btn_month > a{font-size:2.6rem;}
	.cal_year .btn_year > a{font-size:1.7rem;}
	.cal_year .btn_year > a,
	.cal_year .btn_month > a{gap:1rem; padding:.3rem .2rem;}
	.cal_year .btn_year > a::after,
	.cal_year .btn_month > a::after{width:.55rem; height:.55rem; border-width:1.6px;
		transform:translateY(-.15rem) rotate(45deg);}
	/* 소형 화면 : 패널을 버튼이 아닌 컨트롤바 기준으로 중앙 정렬해
	   화면 밖으로 잘려나가지 않게 한다 */
	.cal_ctrlbox .cal_year{position:relative;}
	.cal_year .btn_year,
	.cal_year .btn_month{position:static;}
	.cal_year .cale_deps{left:50%; right:auto; transform:translateX(-50%);
		top:calc(100% + 1.8rem); box-sizing:border-box; padding:1.2rem 1rem 1rem;}
	.cal_year .btn_year .cale_deps,
	.cal_year .btn_month .cale_deps{width:min(28rem, calc(100vw - 3.2rem));}
	.cal_year .cale_deps::after{display:none;}
	.cal_year .btn_year .cale_deps li{width:33.333%;}
	.cal_year .btn_month .cale_deps li{width:33.333%;}
	.cal_year .cale_deps a{min-height:4.2rem; height:auto; font-size:1.5rem; border-radius:.9rem;}

	.cal_cont{padding:1.2rem .5rem .8rem; border-radius:1.6rem;}
	.tbl_cal_list thead th{padding:1rem 0 1.1rem; font-size:1.35rem;}
	.tbl_cal_list .day,
	.tbl_cal_list .no_day{min-height:5.8rem; gap:.35rem; padding:.6rem .2rem .7rem; border-radius:1rem;}
	.tbl_cal_list .day > b,
	.tbl_cal_list .no_day > b,
	.tbl_cal_list .day.today > b{width:3.2rem; height:3.2rem; padding:0; font-size:1.6rem;}
	.day_schedule_box li{width:.55rem; height:.55rem;}

	.cal_view_tit h3{font-size:2.1rem;}
	.cal_viewinner .tit{font-size:1.8rem;}
	.cal_viewinner .item{font-size:1.6rem;}
}
@media (max-width:380px){
	.cal_year .btn_month > a{font-size:2.4rem;}
	.cal_year .btn_year > a{font-size:1.65rem;}
	.cal_year .cale_deps{top:calc(100% + 1.5rem);}
	.tbl_cal_list thead th{font-size:1.3rem;}
	.tbl_cal_list td{padding:.15rem .1rem;}
	.tbl_cal_list .day,
	.tbl_cal_list .no_day{min-height:5.2rem; gap:.3rem; padding:.5rem .1rem .6rem; border-radius:.9rem;}
	.tbl_cal_list .day > b,
	.tbl_cal_list .no_day > b,
	.tbl_cal_list .day.today > b{width:2.8rem; height:2.8rem; padding:0; font-size:1.5rem;}
	.day_schedule_box ul{gap:.3rem; padding:0 .2rem;}
	.day_schedule_box li{width:.5rem; height:.5rem;}
	.cal_view_tit h3{font-size:1.95rem;}
	.cal_viewinner .tit{font-size:1.75rem;}
}
/* 초소형(~340px) : 셀 폭이 40px 이하로 줄어드는 구간 */
@media (max-width:340px){
	.cal_year .btn_month > a{font-size:2.2rem;}
	.cal_year .btn_year > a{font-size:1.55rem;}
	.cal_year .cale_deps{top:calc(100% + 1.5rem); padding:1rem .8rem .8rem;}
	.cal_year .btn_year > a::after,
	.cal_year .btn_month > a::after{width:.5rem; height:.5rem;}
	.cal_year .btn_year .cale_deps,
	.cal_year .btn_month .cale_deps{width:calc(100vw - 2.4rem);}
	.cal_year .cale_deps a{min-height:4rem; font-size:1.45rem;}
	.cal_ctrlbox{gap:.8rem;}
	.cal_btnset button{width:4rem; height:4rem;}
	.tbl_cal_list thead th{font-size:1.2rem;}
	.tbl_cal_list td{padding:.1rem .05rem;}
	.tbl_cal_list .day,
	.tbl_cal_list .no_day{min-height:4.8rem; gap:.25rem; padding:.4rem 0 .5rem;}
	.tbl_cal_list .day > b,
	.tbl_cal_list .no_day > b,
	.tbl_cal_list .day.today > b{width:2.5rem; height:2.5rem; font-size:1.4rem;}
	.day_schedule_box ul{gap:.25rem; padding:0 .1rem;}
	.day_schedule_box li{width:.45rem; height:.45rem;}
}
