@charset "utf-8";

/* gt_schedule_week3
   CSS 를 고치면 --gtsw3-ver 와 gtsw3.lib.php 의 GTSW3_CSS_VER 를 함께 올린다
   색·크기는 모듈별 [스타일 설정] 이 루트에 --gtsw3-* 변수로 내려보낸다. 비어 있으면 아래 기본값 */

.gtsw3 { --gtsw3-ver: 8; position: relative; margin-bottom: 20px; overflow: hidden; background: #fff; container-type: inline-size; container-name: gtsw3; }
.gtsw3.is_loading .gtsw3_body { opacity: .5; transition: opacity .2s; }

/* 화면에는 숨기고 검색엔진·스크린리더에는 보인다 */
.gtsw3 .gtsw3_sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.gtsw3 a:focus-visible,
.gtsw3 button:focus-visible { outline: none; box-shadow: 0 0 0 2px #fff, 0 0 0 4px #FF5A5A; }

/* ===== 제목 줄 — [빈칸 | 주간 날짜 | 버튼] 세 칸 격자. 버튼 칸은 최소 버튼 폭을 지켜 겹치지 않는다 ===== */
.gtsw3 .gtsw3_title { display: grid !important; grid-template-columns: minmax(0, 1fr) auto minmax(max-content, 1fr); align-items: center; column-gap: 12px; margin: 0; padding: 0 20px; background: #FFF; border: 0; font-size: inherit; line-height: 1.2 !important; text-align: center; color: inherit; }
.gtsw3 .gtsw3_week { grid-column: 2; display: inline-flex; align-items: center; justify-content: center; min-width: 0; }
.gtsw3 .gtsw3_nav { display: inline-flex; align-items: center; text-decoration: none; }
.gtsw3 .gtsw3_mbtn { display: inline-flex; align-items: center; justify-content: center; line-height: 1; color: var(--gtsw3-arrow, #000); padding: 5px; border: 1px solid var(--gtsw3-arrow-bd, #DDD); border-radius: 20px; transition: color .2s, border-color .2s; }
.gtsw3 .gtsw3_mbtn:hover { color: var(--gtsw3-on-c1, #FF5A5A); border-color: var(--gtsw3-on-c1, #FF5A5A); }
.gtsw3 .gtsw3_mbtn svg { display: block; width: 24px; height: 24px; fill: currentColor; }
.gtsw3 .gtsw3_mbtn_prev { margin-right: 10px; }
.gtsw3 .gtsw3_mbtn_next { margin-left: 10px; }
.gtsw3 .gtsw3_period { display: block; padding: 4px 0; font-size: var(--gtsw3-title-size, 56px); font-weight: var(--gtsw3-title-weight, inherit); font-family: 'font-R', sans-serif !important; letter-spacing: var(--gtsw3-title-ls, -1px); line-height: 1.15; white-space: nowrap; background: linear-gradient(to right, var(--gtsw3-title-c1, #FF5A5A), var(--gtsw3-title-c2, #7928ca)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

.gtsw3 .gtsw3_more { grid-column: 3; justify-self: end; display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 6px; position: static; line-height: 1; }
.gtsw3 .gtsw3_title .gtsw3_morebtn { display: inline-flex; align-items: center; height: 30px; margin: 0 !important; padding: 0 12px; border: 1px solid var(--gtsw3-btn-bd, #DDD) !important; border-radius: 15px; background: var(--gtsw3-btn-bg, #fff) !important; color: var(--gtsw3-btn-text, #FF5A5A) !important; font-size: var(--gtsw3-btn-size, 13px) !important; font-weight: bold; line-height: 1 !important; white-space: nowrap; text-decoration: none; transition: border-color .2s; }
.gtsw3 .gtsw3_title .gtsw3_morebtn:hover { border-color: var(--gtsw3-btn-hover, #FF5A5A) !important; }
.gtsw3 .gtsw3_title .gtsw3_morebtn[hidden] { display: none !important; }
/* 지금 보고 있는 주가 이번 주이면 '이번주' 버튼을 채워서 표시 (월간 '이번달' 과 같은 모양) */
.gtsw3 .gtsw3_title .gtsw3_nowbtn.is_on { border-color: transparent !important; background: linear-gradient(135deg, var(--gtsw3-on-c1, #FF5A5A), var(--gtsw3-on-c2, #7928ca)) !important; color: #fff !important; }

/* 버튼을 날짜 아래 가운데로 — 설정에서 고르거나, 위젯 폭이 좁으면 저절로 */
.gtsw3.btnpos_below .gtsw3_title { grid-template-columns: minmax(0, 1fr); }
.gtsw3.btnpos_below .gtsw3_week,
.gtsw3.btnpos_below .gtsw3_more { grid-column: 1; justify-self: center; }
.gtsw3.btnpos_below .gtsw3_more { margin-top: 10px; justify-content: center; }
@container gtsw3 (max-width: 760px) {
    .gtsw3 .gtsw3_title { grid-template-columns: minmax(0, 1fr); }
    .gtsw3 .gtsw3_week,
    .gtsw3 .gtsw3_more { grid-column: 1; justify-self: center; }
    .gtsw3 .gtsw3_more { margin-top: 10px; justify-content: center; }
}

.gtsw3 .gtsw3_body { position: relative; padding-top: 20px; }

/* ===== 요일 탭 공통 =====
   .gtsw3_tabs   위아래 라인을 맡는다 (line_dotted / line_solid / line_none)
   .gtsw3_tabbar 탭을 한 줄로 늘어놓는다 (알약형에서는 회색 바) */
.gtsw3 .gtsw3_tabs { margin-bottom: 24px; }
.gtsw3 .gtsw3_tabbar { display: flex; gap: 8px; border-radius: 12px; background: var(--gtsw3-tab-bg, transparent); }
.gtsw3 .gtsw3_tab { flex: 1 1 0; min-width: 0; position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; margin: 0; padding: 10px 0 9px; font: inherit; line-height: 1.2; color: var(--gtsw3-tab-text, #222); background: #fff; border: 1px solid #E6E6E6; border-radius: 12px; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: background .2s, border-color .2s, color .2s, box-shadow .2s; }
.gtsw3 .gtsw3_tab_w { font-size: 13px; color: var(--gtsw3-tab-w, #888); }
.gtsw3 .gtsw3_tab_d { font-size: var(--gtsw3-tab-size, 22px); font-family: 'font-R', sans-serif; }
.gtsw3 .gtsw3_tab_n { position: absolute; top: -7px; right: -5px; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--gtsw3-cnt-bg, #FF5A5A); color: var(--gtsw3-cnt-text, #fff); font-size: 11px; line-height: 20px; font-weight: bold; box-sizing: border-box; }
.gtsw3 .gtsw3_tab_m { display: block; max-width: 92%; font-size: 11px; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gtsw3 .gtsw3_tab_m.is_lunar { color: #888; }
.gtsw3 .gtsw3_tab.is_sat .gtsw3_tab_d { color: #00A3FF; }
.gtsw3 .gtsw3_tab.is_sun .gtsw3_tab_d,
.gtsw3 .gtsw3_tab.is_off .gtsw3_tab_d { color: #F00; }   /* 토요일 공휴일은 빨강 */
.gtsw3 .gtsw3_tab.is_today .gtsw3_tab_w { color: var(--gtsw3-on-c1, #FF5A5A); font-weight: bold; }
.gtsw3 .gtsw3_tab.is_empty .gtsw3_tab_n { display: none; }
.gtsw3 .gtsw3_tab.is_empty .gtsw3_tab_d { opacity: .4; }

/* 위아래 라인 */
.gtsw3.line_dotted .gtsw3_tabs { border-top: 2px dotted #CCC; border-bottom: 2px dotted #CCC; padding: 14px 0; }
.gtsw3.line_solid  .gtsw3_tabs { border-top: 1px solid #E2E2E2; border-bottom: 1px solid #E2E2E2; padding: 14px 0; }

/* C. pill — 회색 바 안의 알약 (기본) */
.gtsw3.tab_pill .gtsw3_tabbar { gap: 4px; padding: 6px; background: var(--gtsw3-tab-bg, #F3F3F6); border-radius: 999px; }
.gtsw3.tab_pill .gtsw3_tab { flex-direction: row; justify-content: center; align-items: baseline; gap: 6px; padding: 10px 0; border: 0; border-radius: 999px; background: none; }
.gtsw3.tab_pill .gtsw3_tab:hover { background: rgba(0,0,0,.04); }
.gtsw3.tab_pill .gtsw3_tab_d { font-size: var(--gtsw3-tab-size, 20px); }
.gtsw3.tab_pill .gtsw3_tab_m { display: none; }
.gtsw3.tab_pill .gtsw3_tab_n { position: static; min-width: 18px; height: 18px; line-height: 18px; padding: 0 5px; font-size: 10px; align-self: center; }
.gtsw3.tab_pill .gtsw3_tabbar .gtsw3_tab.is_on { background: linear-gradient(135deg, var(--gtsw3-on-c1, #FF5A5A), var(--gtsw3-on-c2, #7928ca)); box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.gtsw3.tab_pill .gtsw3_tabbar .gtsw3_tab.is_on .gtsw3_tab_w,
.gtsw3.tab_pill .gtsw3_tabbar .gtsw3_tab.is_on .gtsw3_tab_d { color: var(--gtsw3-on-text, #fff); opacity: 1; }
.gtsw3.tab_pill .gtsw3_tabbar .gtsw3_tab.is_on .gtsw3_tab_n { background: var(--gtsw3-on-text, #fff); color: var(--gtsw3-on-c1, #FF5A5A); }

/* A. line — 라인 사이 글자형 */
.gtsw3.tab_line .gtsw3_tabbar { gap: 0; }
.gtsw3.tab_line .gtsw3_tab { border: 0; border-radius: 0; background: none; padding: 8px 0 10px; }
.gtsw3.tab_line .gtsw3_tab + .gtsw3_tab::before { content: ''; position: absolute; left: 0; top: 18%; bottom: 18%; width: 1px; background: #EEE; }
.gtsw3.tab_line .gtsw3_tab_d { font-size: var(--gtsw3-tab-size, 26px); }
.gtsw3.tab_line .gtsw3_tab_n { position: static; min-width: 0; height: auto; padding: 0; background: none; color: var(--gtsw3-cnt-bg, #FF5A5A); line-height: 1.3; font-weight: normal; }
.gtsw3.tab_line .gtsw3_tab_n::after { content: '건'; }
.gtsw3.tab_line .gtsw3_tabbar .gtsw3_tab.is_on .gtsw3_tab_d { background: linear-gradient(to right, var(--gtsw3-on-c1, #FF5A5A), var(--gtsw3-on-c2, #7928ca)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; font-weight: bold; opacity: 1; }
.gtsw3.tab_line .gtsw3_tab.is_on::after { content: ''; position: absolute; left: 22%; right: 22%; bottom: -16px; height: 3px; border-radius: 3px; background: linear-gradient(to right, var(--gtsw3-on-c1, #FF5A5A), var(--gtsw3-on-c2, #7928ca)); }
.gtsw3.tab_line.line_none .gtsw3_tab.is_on::after { bottom: -2px; }

/* B. box — 상자형 */
.gtsw3.tab_box .gtsw3_tabbar { background: none; }
.gtsw3.tab_box .gtsw3_tab { background: var(--gtsw3-tab-bg, #fff); }
.gtsw3.tab_box .gtsw3_tab:hover { border-color: var(--gtsw3-on-c1, #FF5A5A); }
.gtsw3.tab_box .gtsw3_tab.is_today { border-color: var(--gtsw3-on-c1, #FF5A5A); }
.gtsw3.tab_box .gtsw3_tabbar .gtsw3_tab.is_on { background: linear-gradient(135deg, var(--gtsw3-on-c1, #FF5A5A), var(--gtsw3-on-c2, #7928ca)); border-color: transparent; }
.gtsw3.tab_box .gtsw3_tabbar .gtsw3_tab.is_on .gtsw3_tab_w,
.gtsw3.tab_box .gtsw3_tabbar .gtsw3_tab.is_on .gtsw3_tab_d,
.gtsw3.tab_box .gtsw3_tabbar .gtsw3_tab.is_on .gtsw3_tab_m { color: var(--gtsw3-on-text, #fff) !important; opacity: 1; }
.gtsw3.tab_box .gtsw3_tabbar .gtsw3_tab.is_on .gtsw3_tab_n { background: var(--gtsw3-on-text, #fff); color: var(--gtsw3-on-c1, #FF5A5A); }

/* D. circle — 동그라미형 */
.gtsw3.tab_circle .gtsw3_tab { border: 0; background: none; padding: 4px 0; gap: 4px; }
.gtsw3.tab_circle .gtsw3_tab_d { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; font-size: var(--gtsw3-tab-size, 21px); border: 2px solid transparent; box-sizing: border-box; transition: background-color .2s; }
.gtsw3.tab_circle .gtsw3_tab:hover .gtsw3_tab_d { background-color: rgba(0,0,0,.05); }
.gtsw3.tab_circle .gtsw3_tab.is_today .gtsw3_tab_d { border-color: var(--gtsw3-on-c1, #FF5A5A); }
.gtsw3.tab_circle .gtsw3_tabbar .gtsw3_tab.is_on .gtsw3_tab_d { background: linear-gradient(135deg, var(--gtsw3-on-c1, #FF5A5A), var(--gtsw3-on-c2, #7928ca)); color: var(--gtsw3-on-text, #fff); border-color: transparent; opacity: 1; }
.gtsw3.tab_circle .gtsw3_tab_n { position: static; min-width: 0; height: auto; padding: 0; background: none; color: var(--gtsw3-cnt-bg, #FF5A5A); line-height: 1.2; }
.gtsw3.tab_circle .gtsw3_tab_n::before { content: ''; display: inline-block; width: 5px; height: 5px; margin: 0 3px 1px 0; border-radius: 50%; background: currentColor; vertical-align: middle; }

/* E. under — 밑줄형 */
.gtsw3.tab_under .gtsw3_tabbar { gap: 0; }
.gtsw3.tab_under .gtsw3_tab { flex-direction: row; justify-content: center; align-items: baseline; flex-wrap: wrap; gap: 0 6px; border: 0; border-radius: 0; background: none; padding: 12px 0 14px; }
.gtsw3.tab_under .gtsw3_tab_d { font-size: var(--gtsw3-tab-size, 22px); }
.gtsw3.tab_under .gtsw3_tab_m { flex-basis: 100%; text-align: center; margin: 0 auto; }
.gtsw3.tab_under .gtsw3_tab_n { position: static; min-width: 0; height: auto; padding: 0; background: none; color: var(--gtsw3-cnt-bg, #FF5A5A); font-size: 12px; line-height: 1; align-self: flex-start; }
.gtsw3.tab_under .gtsw3_tab::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: #E5E5E5; }
.gtsw3.tab_under .gtsw3_tab.is_on::after { height: 3px; background: linear-gradient(to right, var(--gtsw3-on-c1, #FF5A5A), var(--gtsw3-on-c2, #7928ca)); }
.gtsw3.tab_under .gtsw3_tabbar .gtsw3_tab.is_on .gtsw3_tab_w,
.gtsw3.tab_under .gtsw3_tabbar .gtsw3_tab.is_on .gtsw3_tab_d { font-weight: bold; opacity: 1; }
.gtsw3.tab_under .gtsw3_tabbar .gtsw3_tab:not(.is_on) .gtsw3_tab_w { opacity: .7; }
.gtsw3.tab_under.line_dotted .gtsw3_tabs,
.gtsw3.tab_under.line_solid .gtsw3_tabs { padding-bottom: 0; border-bottom: 0; }

/* 끝에서 더 끌 때 보이는 안내 */
.gtsw3 .gtsw3_pull { position: absolute; top: 110px; z-index: 3; padding: 8px 14px; border-radius: 20px; background: rgba(0,0,0,.72); color: #fff; font-size: 13px; line-height: 1; opacity: 0; pointer-events: none; transition: opacity .15s; }
.gtsw3 .gtsw3_pull.is_prev { left: 10px; }
.gtsw3 .gtsw3_pull.is_next { right: 10px; }
.gtsw3.is_pull_prev .gtsw3_pull.is_prev,
.gtsw3.is_pull_next .gtsw3_pull.is_next { opacity: 1; }

/* ===== 슬라이더 — 테마 mobile.css 가 1360 이하에서 거는 좌우 패딩을 되돌리고 여백은 아래에서 직접 준다 ===== */
.gtsw3 .gtsw3_sw.swiper-container { width: 100%; overflow: hidden; position: relative; padding-left: 0 !important; padding-right: 0 !important; }
.gtsw3 .gtsw3_sw .swiper-slide { width: 100%; height: auto !important; }
.gtsw3 .gtsw3_day { margin-bottom: 30px !important; display: flex; flex-direction: column; align-items: flex-start; height: auto !important; }

/* 일정 카드 — 한 줄 카드 수(--gtsw3-c)와 간격(--gtsw3-g)은 [스타일 설정] 값, 비면 배치별 기본값 */
.gtsw3 { --gtsw3-c: var(--gtsw3-cols-pc, 4); --gtsw3-g: var(--gtsw3-card-gap, 20px); }
.gtsw3.layout_days { --gtsw3-c: var(--gtsw3-cols-pc, 8); --gtsw3-g: var(--gtsw3-card-gap, 12px); }
.gtsw3 .gtsw3_list { width: 100%; display: flex; flex-wrap: wrap; gap: var(--gtsw3-g); justify-content: flex-start; align-items: stretch; }
.gtsw3 .gtsw3_item { flex: 0 0 calc((100% - (var(--gtsw3-c) - 1) * var(--gtsw3-g)) / var(--gtsw3-c)); min-width: 0; margin: 0; position: relative; --gtsw3-fg: #fff; --gtsw3-sub: rgba(255,255,255,.85); --gtsw3-chip: rgba(0,0,0,.28); }
.gtsw3 .gtsw3_item.is_light { --gtsw3-fg: #222; --gtsw3-sub: #555; --gtsw3-chip: rgba(0,0,0,.08); }
.gtsw3 .gtsw3_box { padding: 8px; border-radius: var(--gtsw3-card-radius, 10px); color: var(--gtsw3-fg, #fff); display: flex; flex-direction: column; align-items: flex-start; gap: 8px; height: 100%; border: 1px solid #EEE; box-sizing: border-box; transition: transform .2s, box-shadow .2s; }
.gtsw3 .gtsw3_box:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,.12); }
.gtsw3 .gtsw3_thumb { width: 100%; height: auto; overflow: hidden; border-radius: var(--gtsw3-img-radius, calc(var(--gtsw3-card-radius, 10px) * .8)); flex-shrink: 0; }
/* 이미지 비율 — img_def 는 배치 기본(탭: 원본, 목록: 정사각형) */
.gtsw3.img_square .gtsw3_thumb,
.gtsw3.layout_days.img_def .gtsw3_thumb { aspect-ratio: 1 / 1; }
.gtsw3.img_poster .gtsw3_thumb { aspect-ratio: 3 / 4; }
.gtsw3.img_square .gtsw3_thumb img,
.gtsw3.img_poster .gtsw3_thumb img,
.gtsw3.layout_days.img_def .gtsw3_thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.gtsw3 .gtsw3_thumb img { display: block; width: 100%; max-width: 100%; height: auto; object-position: top; }
.gtsw3 .gtsw3_badge { display: inline-block; padding: 3px 8px; border-radius: 10px; background: var(--gtsw3-chip, rgba(0,0,0,.28)); color: var(--gtsw3-fg, #fff); font-size: 11px; line-height: 1.3; font-weight: bold; }
.gtsw3 .gtsw3_badge.is_end { background: #E8202A; color: #fff; }
.gtsw3 .gtsw3_badge.is_start { background: #1F8B4C; color: #fff; }
.gtsw3 .gtsw3_tit { flex: 1; width: 100%; line-height: 1.3; word-break: break-word; text-align: left; font-size: var(--gtsw3-card-size, 13px); font-weight: bold; min-height: 34px; color: var(--gtsw3-fg, #fff); }
.gtsw3 .gtsw3_place { display: flex; align-items: center; gap: 3px; width: 100%; padding-bottom: 4px; font-size: 12px; line-height: 1.3; color: var(--gtsw3-sub, rgba(255,255,255,.85)); word-break: break-word; }
.gtsw3 .gtsw3_place svg { flex-shrink: 0; fill: currentColor; }
.gtsw3 .gtsw3_none { color: #999; font-style: italic; padding: 30px 10px; text-align: center; width: 100%; background: #FAFAFA; border-radius: 10px; }

/* 관리자 추천 (PICK, BEST, 추천, 후원) */
.gtsw3 .gtsw3_pick { position: absolute; right: 0; top: 0; z-index: 1; width: 60px; height: 60px; line-height: 55px; border-radius: 0; border-top: 5px solid #000; text-align: center; }
.gtsw3 .gtsw3_item.is_pickline { border-radius: 10px; border: 2px dashed #AA20FF; }

/* ===== 배치: 요일별 목록 (예전 주간캘린더) ===== */
.gtsw3 .gtsw3_days { padding-top: 10px; }
.gtsw3 .gtsw3_dayrow { margin-bottom: 34px; }
.gtsw3 .gtsw3_dayh { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0 0 18px; padding: 0 0 14px; border-bottom: 1px dotted #C8C8C8; font-size: var(--gtsw3-day-size, 28px); font-weight: normal; font-family: 'font-R', sans-serif; line-height: 1.2; color: #333; }
.gtsw3 .gtsw3_dayh_ic { flex: 0 0 auto; width: .78em; height: .78em; margin-right: 2px; fill: var(--gtsw3-on-c1, #FF5A5A); }
.gtsw3 .gtsw3_dayrow.is_sun .gtsw3_dayh time,
.gtsw3 .gtsw3_dayrow.is_off .gtsw3_dayh time { color: #E8202A; }
.gtsw3 .gtsw3_dayrow.is_sat .gtsw3_dayh time { color: #0A7CC4; }
.gtsw3 .gtsw3_dayh_today { font-size: 14px; font-weight: 600; font-family: inherit; color: var(--gtsw3-on-c1, #FF5A5A); }
.gtsw3 .gtsw3_dayh_mk { font-size: 14px; }
.gtsw3 .gtsw3_dayh_n { margin-left: auto; color: #999; font-size: 14px; }
.gtsw3 .gtsw3_dayrow.is_today .gtsw3_dayh { border-bottom-style: solid; border-bottom-color: var(--gtsw3-on-c1, #FF5A5A); }
.gtsw3.layout_days .gtsw3_box { padding: 7px; gap: 7px; border: 0; }
.gtsw3.layout_days .gtsw3_tit { min-height: 0; letter-spacing: -.5px; }
.gtsw3.layout_days .gtsw3_badge { font-size: 10px; padding: 2px 6px; }
.gtsw3.layout_days .gtsw3_none { padding: 16px 10px; font-size: 13px; }
@media all and (max-width:500px) {
    .gtsw3 .gtsw3_dayh { font-size: calc(var(--gtsw3-day-size, 28px) * .7); gap: 4px 8px; padding-bottom: 10px; margin-bottom: 12px; }
    .gtsw3 .gtsw3_dayrow { margin-bottom: 24px; }
    .gtsw3.layout_days .gtsw3_box { padding: 5px; gap: 5px; }
    .gtsw3.layout_days .gtsw3_tit { font-size: calc(var(--gtsw3-card-size, 13px) * .9); }
    .gtsw3.layout_days .gtsw3_place { font-size: 11px; }
    .gtsw3.layout_days .gtsw3_pick { width: 34px; height: 34px; line-height: 30px; font-size: 10px; border-top-width: 3px; }
}

@media (prefers-reduced-motion: reduce) {
    .gtsw3 .gtsw3_box, .gtsw3 .gtsw3_tab { transition: none; }
    .gtsw3 .gtsw3_box:hover { transform: none; }
}

/* ===== 반응형 ===== */
@media all and (max-width:1360px) {
    .gtsw3 .gtsw3_tabs,
    .gtsw3 .gtsw3_day,
    .gtsw3 .gtsw3_days { margin-left: 20px; margin-right: 20px; }
    .gtsw3 .gtsw3_day { width: auto; align-self: stretch; }
}
@media all and (max-width:1280px) {
    .gtsw3 { --gtsw3-c: var(--gtsw3-cols-lt, 3); }
    .gtsw3.layout_days { --gtsw3-c: var(--gtsw3-cols-lt, 6); }
}
@media all and (max-width:1024px) {
    .gtsw3 .gtsw3_period { font-size: min(var(--gtsw3-title-size, 56px), 50px); }
    .gtsw3 .gtsw3_pick { width: 50px; height: 50px; line-height: 45px; }
    .gtsw3 { --gtsw3-c: var(--gtsw3-cols-tb, 3); }
    .gtsw3.layout_days { --gtsw3-c: var(--gtsw3-cols-tb, 4); }
}
@media all and (max-width:640px) {
    .gtsw3 .gtsw3_period { font-size: min(var(--gtsw3-title-size, 56px), 42px); }
    .gtsw3 .gtsw3_title { padding: 0 !important; }
    .gtsw3 .gtsw3_tit { letter-spacing: -0.5px; }
}
@media all and (max-width:500px) {
    .gtsw3 .gtsw3_period { font-size: var(--gtsw3-title-size-mo, 28px); }
    .gtsw3 .gtsw3_mbtn { padding: 3px; }
    .gtsw3 .gtsw3_mbtn svg { width: 20px; height: 20px; }
    .gtsw3 .gtsw3_mbtn_prev { margin-right: 4px; }
    .gtsw3 .gtsw3_mbtn_next { margin-left: 4px; }

    .gtsw3 .gtsw3_tabs,
    .gtsw3 .gtsw3_day,
    .gtsw3 .gtsw3_days { margin-left: 16px; margin-right: 16px; }
    .gtsw3 .gtsw3_tabs { margin-bottom: 16px; }
    .gtsw3 .gtsw3_tabbar { gap: 4px; }
    .gtsw3 .gtsw3_tab { padding: 8px 0 7px; border-radius: 10px; }
    .gtsw3 .gtsw3_tab_w { font-size: 11px; }
    .gtsw3 .gtsw3_tabbar .gtsw3_tab .gtsw3_tab_d { font-size: var(--gtsw3-tab-size-mo, 17px); }
    .gtsw3 .gtsw3_tab_n { top: -6px; right: -3px; min-width: 16px; height: 16px; padding: 0 4px; font-size: 10px; line-height: 16px; }
    .gtsw3 .gtsw3_tab_m { font-size: 10px; }
    .gtsw3.line_dotted .gtsw3_tabs,
    .gtsw3.line_solid .gtsw3_tabs { padding: 10px 0; }

    .gtsw3.tab_pill .gtsw3_tabbar { padding: 4px; gap: 2px; }
    .gtsw3.tab_pill .gtsw3_tab { flex-direction: column; align-items: center; gap: 1px; padding: 7px 0; }
    .gtsw3.tab_pill .gtsw3_tab_n { display: none; }
    .gtsw3.tab_line .gtsw3_tab.is_on::after { bottom: -12px; left: 15%; right: 15%; }
    .gtsw3.tab_circle .gtsw3_tabbar { gap: 0; }
    .gtsw3.tab_circle .gtsw3_tab_d { width: 36px; height: 36px; }
    .gtsw3.tab_under .gtsw3_tab { flex-direction: column; align-items: center; gap: 1px; padding: 8px 0 10px; }
    .gtsw3.tab_under .gtsw3_tab_n { align-self: center; font-size: 10px; }

    .gtsw3 { --gtsw3-c: var(--gtsw3-cols-mo, 2); --gtsw3-g: var(--gtsw3-card-gap, 12px); }
    .gtsw3.layout_days { --gtsw3-c: var(--gtsw3-cols-mo, 3); --gtsw3-g: var(--gtsw3-card-gap, 8px); }
    .gtsw3 .gtsw3_pick { width: 44px; height: 44px; line-height: 40px; font-size: 12px; border-top-width: 4px; }
    .gtsw3 .gtsw3_pull { top: 80px; font-size: 12px; }
}

/* ===== 이번 주 일정 한눈에 보기 — 월간(gt_schedule_month3)과 같은 디자인 ===== */
/* 테마가 p·ol·li·a 에 거는 여백·정렬을 이기도록 여기서 모두 다시 정한다 */
.gtsw3 .gtsw3_all { margin-top: 36px; border-radius: 20px; background: var(--gtsw3-all-bg, #ECECF0); }
.gtsw3 .gtsw3_all > summary { position: relative; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 22px 72px 22px 26px; cursor: pointer; list-style: none; user-select: none; }
.gtsw3 .gtsw3_all > summary::-webkit-details-marker { display: none; }
.gtsw3 .gtsw3_all > summary::before { content: ''; position: absolute; right: 22px; top: 50%; width: 34px; height: 34px; margin-top: -17px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(16,16,24,.08); }
.gtsw3 .gtsw3_all > summary::after { content: ''; position: absolute; right: 35px; top: 50%; width: 7px; height: 7px; margin-top: -6px; border-right: 1.5px solid #555; border-bottom: 1.5px solid #555; transform: rotate(45deg); transition: transform .2s, margin .2s; }
.gtsw3 .gtsw3_all[open] > summary::after { margin-top: -2px; transform: rotate(-135deg); }
.gtsw3 .gtsw3_all_h { font-size: 19px; font-weight: 700; letter-spacing: -.4px; color: #16161d; }
.gtsw3 .gtsw3_all_cnt { font-size: 19px; font-weight: 700; color: var(--gtsw3-on-c1, #FF5A5A); }
.gtsw3 .gtsw3_all_hint { flex-basis: 100%; color: #8a8a95; font-size: 13px; }
.gtsw3 .gtsw3_all_in { padding: 0 26px 26px; }
.gtsw3 .gtsw3_all .gtsw3_lead { margin: 0 0 22px !important; padding: 0 !important; color: #6b6b76; font-size: 13px; line-height: 1.6; text-align: left; }
.gtsw3 .gtsw3_all_gh { display: flex; align-items: center; gap: 8px; margin: 28px 0 12px; padding: 0; font-size: 13px; font-weight: 600; color: #4a4a55; letter-spacing: -.1px; }
.gtsw3 .gtsw3_all_gh:first-of-type { margin-top: 0; }
.gtsw3 .gtsw3_all_gh b { font-weight: 600; color: #9a9aa5; }
.gtsw3 .gtsw3_all_gh::after { content: ''; flex: 1; height: 1px; background: rgba(16,16,24,.08); }
.gtsw3 .gtsw3_all_list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.gtsw3 .gtsw3_all_item { margin: 0 !important; padding: 0 !important; list-style: none; }
.gtsw3 .gtsw3_all_item > a { display: flex; align-items: center; gap: 16px; height: 100%; padding: 12px 18px 12px 12px; border-radius: 14px; background: #fff; color: #16161d; text-decoration: none; transition: box-shadow .2s ease; }
.gtsw3 .gtsw3_all_item > a:hover { box-shadow: 0 1px 2px rgba(16,16,24,.05), 0 10px 24px -10px rgba(16,16,24,.22); }
.gtsw3 .gtsw3_all_img { flex: 0 0 64px; width: 64px; height: 64px; overflow: hidden; border-radius: 10px; background: var(--gtsw3-ic, #888); }
.gtsw3 .gtsw3_all_img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.gtsw3 .gtsw3_all_img i { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #fff; font-style: normal; font-size: 22px; font-weight: 700; }
.gtsw3 .gtsw3_all_date { flex: 0 0 44px; display: flex; flex-direction: column; align-items: flex-start; padding-right: 14px; border-right: 1px solid #ededf0; line-height: 1.1; }
.gtsw3 .gtsw3_all_date small { order: 2; margin-top: 3px; font-size: 11px; color: #9a9aa5; }
.gtsw3 .gtsw3_all_date strong { order: 1; font-size: 18px; font-weight: 700; letter-spacing: -.5px; color: #16161d; font-variant-numeric: tabular-nums; }
.gtsw3 .gtsw3_all_date em { display: none; }
.gtsw3 .gtsw3_all_txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.gtsw3 .gtsw3_all_t { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 15px; font-weight: 600; line-height: 1.4; letter-spacing: -.3px; text-align: left; word-break: break-all; }
.gtsw3 .gtsw3_all_meta { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0; font-size: 12.5px; color: #8a8a95; line-height: 1.35; }
.gtsw3 .gtsw3_all_meta > span + span::before { content: ''; display: inline-block; width: 3px; height: 3px; margin: 0 8px 2px; border-radius: 50%; background: #c5c5cc; vertical-align: middle; }
.gtsw3 .gtsw3_all_st { display: inline-flex; align-items: center; gap: 5px; font-weight: 600; color: #1F8B4C; }
.gtsw3 .gtsw3_all_st::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.gtsw3 .gtsw3_all_item.is_soon .gtsw3_all_st { color: #2F6FE0; }
.gtsw3 .gtsw3_all_item.is_last .gtsw3_all_st { color: #E8202A; }
.gtsw3 .gtsw3_all_item.is_end .gtsw3_all_st { color: #9a9aa5; }
.gtsw3 .gtsw3_all_item.is_end .gtsw3_all_t { color: #6b6b76; }
.gtsw3 .gtsw3_all_r { font-variant-numeric: tabular-nums; }
.gtsw3 .gtsw3_all_p { min-width: 0; }
.gtsw3 .gtsw3_all_p svg { display: none; }

/* ===== 「한눈에 보기」 목록 — 어두운 배경 ===== */
.gtsw3.all_dark .gtsw3_all { background: var(--gtsw3-all-bg, #17171C); }
.gtsw3.all_dark .gtsw3_all_h { color: #F2F2F5; }
.gtsw3.all_dark .gtsw3_all_hint,
.gtsw3.all_dark .gtsw3_all .gtsw3_lead { color: #8A8A95; }
.gtsw3.all_dark .gtsw3_all > summary::before { background: #2A2A32; box-shadow: none; }
.gtsw3.all_dark .gtsw3_all > summary::after { border-color: #C8C8D0; }
.gtsw3.all_dark .gtsw3_all_gh { color: #C8C8D0; }
.gtsw3.all_dark .gtsw3_all_gh b { color: #6B6B76; }
.gtsw3.all_dark .gtsw3_all_gh::after { background: rgba(255,255,255,.08); }
/* 카드는 밝게 선택할 때처럼 흰색 그대로 — 어두운 배경 위에서 더 돋보인다 */
.gtsw3.all_dark .gtsw3_all_item > a:hover { box-shadow: 0 12px 28px -10px rgba(0,0,0,.7); }
@container gtsw3 (max-width: 900px) {
    .gtsw3 .gtsw3_all_list { grid-template-columns: minmax(0, 1fr); }
}
@container gtsw3 (max-width: 500px) {
    .gtsw3 .gtsw3_all { border-radius: 12px; }
    .gtsw3 .gtsw3_all > summary { padding: 18px 60px 18px 18px; }
    .gtsw3 .gtsw3_all > summary::before { right: 14px; }
    .gtsw3 .gtsw3_all > summary::after { right: 27px; }
    .gtsw3 .gtsw3_all_h { font-size: 16px; }
    .gtsw3 .gtsw3_all_h,
    .gtsw3 .gtsw3_all_cnt { font-size: 17px; }
    .gtsw3 .gtsw3_all_in { padding: 0 12px 14px; }
    .gtsw3 .gtsw3_all_list { gap: 8px; }
    .gtsw3 .gtsw3_all_item > a { gap: 12px; padding: 10px 12px 10px 10px; }
    .gtsw3 .gtsw3_all_date { flex-basis: 38px; padding-right: 10px; }
    .gtsw3 .gtsw3_all_date strong { font-size: 16px; }
    .gtsw3 .gtsw3_all_img { flex-basis: 50px; width: 50px; height: 50px; }
    .gtsw3 .gtsw3_all_t { font-size: 14px; }
}
/* 달력 본문과 같은 좌우 여백 · 상단 고정 메뉴에 가리지 않게 */
.gtsw3 .gtsw3_all { scroll-margin-top: 100px; }
@media all and (max-width:1360px) { .gtsw3 .gtsw3_all { margin-left: 20px; margin-right: 20px; } }
@media all and (max-width:500px)  { .gtsw3 .gtsw3_all { margin-left: 16px; margin-right: 16px; } }

/* '한눈에 보기' 바로가기 버튼 — 다른 버튼과 구분되는 색 */
.gtsw3 .gtsw3_title .gtsw3_jumpbtn { gap: 5px; border-color: transparent !important; background: var(--gtsw3-jump-bg, #222230) !important; color: var(--gtsw3-jump-text, #fff) !important; }
.gtsw3 .gtsw3_title .gtsw3_jumpbtn:hover { opacity: .88; }
.gtsw3 .gtsw3_title .gtsw3_jumpbtn svg { flex-shrink: 0; fill: currentColor; }
