@charset "utf-8";
/* 2026 리뉴얼 공통 머리말·꼬리말 + 메인
   디자인팀 메인 퍼블리싱(2026-09-28, sian.geumdo.net/project/iact_2026_ 의 common·header·main.css)을 옮긴 것.
   - 퍼블리싱의 전역 초기화(*, a, ul, img, button)는 새 틀 안에만 건다 — 서브 본문·이용관리(/equip)의 옛 화면에 번지지 않게.
   - 옛 공용 CSS(bootstrap.css, default.css: a:link 검정, .badge, .notice-box 등)와 겹치는 곳은 이 파일에서 되돌린다.
   - 퍼블리싱에서 고친 것은 "퍼블리싱 수정" 주석. 서브 화면 모양은 css/sub_renewal.css */

:root{
  /* 퍼블리싱 색·글꼴 */
  --primary:#00539f; --primary-blue:#0979dd; --primary-dark:#003f7a; --primary-light:#3b7fc4;
  --sub:#f0f7ff; --ink:#1c2733; --muted:#646f7d; --line:#e4eaf1; --white:#fff; --bg:#fff; --card-bg:#fff; --accent-blue:#487fff;
  --font-pretendard:'Pretendard',-apple-system,BlinkMacSystemFont,'Malgun Gothic',sans-serif;
  --font-paperlogy:'Paperlogy','Noto Sans KR',sans-serif;
  /* 서브(sub_renewal.css)·팝업(pop_renewal.css)·이용관리(equip_renewal.css)가 쓰는 이름 — 퍼블리싱 값에 맞춤 */
  --mr-blue:var(--primary); --mr-blue-d:var(--primary-dark); --mr-accent:var(--accent-blue); --mr-quick:var(--primary-blue);
  --mr-sky:var(--sub); --mr-line:#e5e5e5; --mr-text:#222; --mr-sub:#666; --mr-field:#cfd8e3;
  --mr-font:"Noto Sans KR",-apple-system,BlinkMacSystemFont,"Malgun Gothic","맑은 고딕",sans-serif;
  --mr-font-pt:var(--font-pretendard);
  --mr-font-pl:var(--font-paperlogy);
}
/* 퍼블리싱의 다크 모드 색(prefers-color-scheme)은 옮기지 않았다 — 서브 본문·게시판·이용관리가 밝은 바탕 전용이라 섞이면 글자가 안 보임 */

/* ── 바탕 ─────────────────────────────────────────────── */
/* 글꼴: 새 틀과 기존 본문 모두 Noto Sans KR. 기존 CSS 의 요소 지정(h1~h6,p,td,input… 나눔고딕·돋움)만 덮고,
   클래스로 지정한 글꼴(FontAwesome·Glyphicons 등)은 그대로 이기도록 요소 수준 우선순위로 둔다 */
body,:where(.mr_wrap) :is(h1,h2,h3,h4,h5,h6,p,td,th,li,dt,dd,input,button,select,textarea,label,pre){font-family:var(--mr-font);}
body{background:#fff;}
.mr_wrap{position:relative; isolation:isolate; color:var(--ink); font-size:16px; line-height:1.5; background:#fff; word-break:keep-all;}
.mr_wrap.mr_is_main{overflow-x:clip;}   /* 머리말 워터마크가 오른쪽 밖으로 나가도 쪽이 옆으로 밀리지 않게 */

/* 새 틀 초기화 (퍼블리싱 common.css 의 *, ul, a, img, button) — :where 로 우선순위 0: 아래 퍼블리싱 규칙이 이긴다 */
:where(.utility-bar,.site-header,.site-footer,.mr_is_main main,.quick-menu,.top-btn,.cal-tooltip,.cal-day-popup,.sr_visual,.sr_tabs,.sr_title,.sr_side),
:where(.utility-bar,.site-header,.site-footer,.mr_is_main main,.quick-menu,.top-btn,.cal-tooltip,.cal-day-popup,.sr_visual,.sr_tabs,.sr_title,.sr_side) *{box-sizing:border-box;}
:where(.utility-bar,.site-header,.site-footer,.mr_is_main main,.quick-menu,.cal-tooltip,.cal-day-popup,.sr_visual,.sr_tabs,.sr_title,.sr_side) :where(ul,ol){list-style:none; margin:0; padding:0;}
:where(.utility-bar,.site-header,.site-footer,.mr_is_main main,.quick-menu,.cal-tooltip,.cal-day-popup,.sr_visual,.sr_tabs,.sr_title,.sr_side) :where(h1,h2,h3,h4,p){margin:0; padding:0;}
:where(.site-header,.site-footer,.mr_is_main main,.quick-menu) img{max-width:100%; display:block;}
:where(.utility-bar,.site-header,.site-footer,.mr_is_main main,.quick-menu,.top-btn,.cal-tooltip,.cal-day-popup) button{font-family:inherit; cursor:pointer; border:none; background:none; padding:0; margin:0; color:inherit;}
/* 링크 색: 기존 default.css 의 a:link{color:#000} 과 우선순위가 같게(0,1,1) 두고 뒤에 와서 이긴다 */
:where(.utility-bar,.site-header,.site-footer,.mr_is_main main,.quick-menu,.cal-tooltip,.cal-day-popup,.sr_visual,.sr_tabs,.sr_title,.sr_side) a:is(:link,:visited,:hover,:focus,:active){color:inherit; text-decoration:none;}
:is(.site-header,.site-footer,.mr_is_main main,.sr_visual,.sr_tabs,.sr_title,.sr_side) :is(p,span,strong,a,h1,h2,h3){word-break:keep-all; overflow-wrap:break-word;}

/* 콘텐츠 폭: 퍼블리싱 .wrap (1400, 좌우 24). 서브·이용관리의 .mr_inner 도 같은 폭으로 맞춘다 */
.wrap,.mr_inner{position:relative; max-width:1400px; margin:0 auto; padding:0 24px; box-sizing:border-box;}

/* 본문 바로가기 (키보드 사용자) */
.mr_skip{position:absolute; left:8px; top:-60px; z-index:2000; padding:10px 16px; border-radius:0 0 8px 8px; background:var(--ink); color:#fff !important; font-size:14px; font-weight:600;}
.mr_skip:focus{top:0;}
/* 키보드 초점 표시 (퍼블리싱에 없음) */
:is(.utility-bar,.site-header,.site-footer,.mr_is_main main,.quick-menu,.top-btn,.cal-day-popup) :is(a,button):focus-visible{outline:2px solid var(--accent-blue); outline-offset:2px;}

/* 자동 넘김 멈춤·재생 단추 (자동으로 움직이는 콘텐츠는 멈출 수 있어야 함 — 웹 접근성. 퍼블리싱에 없음) */
.auto-toggle{position:absolute; z-index:120; display:flex; align-items:center; justify-content:center; width:30px; height:30px; border:1px solid rgba(0,0,0,.08) !important; border-radius:50%; background:rgba(255,255,255,.92) !important; color:var(--ink) !important; box-shadow:0 4px 12px rgba(10,40,80,.12); transition:.2s;}
.auto-toggle:hover{background:var(--primary) !important; color:#fff !important;}
.auto-toggle .ic-play,.auto-toggle[aria-pressed="true"] .ic-pause{display:none;}
.auto-toggle[aria-pressed="true"] .ic-play{display:block;}

/* ── 상단 회원 메뉴 (퍼블리싱 header.css) ─────────────── */
.utility-bar{background:var(--primary); color:#cfe0f4;}
.utility-bar .wrap{display:flex; justify-content:space-between; align-items:center; gap:20px; height:55px; font-size:13px;}
.utility-bar .wrap .util-sns{display: none;}
.utility-bar a{transition:opacity .2s; color:#fff !important; font-family:var(--font-paperlogy); font-weight:500;}
.utility-bar a:hover{color:#cfe0f4 !important;}
.util-links{display:flex; gap:20px; margin-left:auto;}
.util-sns{font-weight:400 !important; opacity:.85;}   /* SNS 채널 안내: 퍼블리싱에 없음, 기존 기능이라 왼쪽에 작게 */

/* ── 머리말 ───────────────────────────────────────────── */
.site-header{position:relative; border-bottom:1px solid var(--line); z-index:1000; overflow:visible; background:none;}
.header-inner{display:flex; align-items:center; justify-content:space-between; height:92px;}
.logo-wrap{margin:0; padding:0; font-size:0; line-height:0;}
.logo-mark{display:flex; align-items:center; gap:10px;}
.logo-mark img{width:330px; height:auto;}
nav.gnb{height:100%; display:flex; align-items:center;}   /* 퍼블리싱 수정: 오타(}d)로 PC 에 뜬 닫기 단추가 메뉴를 24px 밀어 내렸다 → 로고와 세로 가운데 */
.mobile-auth{display:none;}
.mobile-close{display:none;}
nav.gnb > ul{display:flex; height:60%;}
nav.gnb > ul > li{position:relative; display:flex; align-items:center; font-family:var(--font-paperlogy);}
nav.gnb > ul > li > a{display:flex; align-items:center; height:100%; padding:0 30px; font-size:16px; font-weight:600; color:var(--ink) !important; position:relative;}
nav.gnb > ul > li > a::after{content:""; position:absolute; left:30px; right:30px; bottom:calc(-100% / 3 - 1px); z-index:1; height:3px; background:var(--primary); transform:scaleX(0); transform-origin:center; transition:transform .25s ease;}   /* 밑줄은 헤더 아래 선 위에, 2차 메뉴보다 위로 */
nav.gnb > ul > li:hover > a,nav.gnb > ul > li.on > a{color:var(--primary) !important;}
nav.gnb > ul > li:hover > a::after,nav.gnb > ul > li.on > a::after{transform:scaleX(1);}   /* li.on: 지금 보는 메뉴 (퍼블리싱에 없음) */
.submenu{position:absolute; top:calc(100% * 4 / 3); left:50%; transform:translate(-50%,-8px); min-width:180px; background:var(--card-bg); border:1px solid var(--line); border-radius:10px; box-shadow:0 16px 32px rgba(10,30,60,.12); padding:10px 0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .2s ease, transform .2s ease; font-family:var(--mr-font);}   /* 하위 메뉴는 헤더 아래 선 바로 아래에서 */
@media (min-width:1101px){  
  nav.gnb > ul > li:is(:hover,.submenu-open,:has(:focus-visible)) .submenu{opacity:1; visibility:visible; transform:translate(-50%,0); pointer-events:auto;}
  .submenu::before{content:""; position:absolute; left:0; right:0; bottom:100%; height:26px;}   /* 메뉴 글자 ~ 하위 메뉴 사이 빈 곳에서도 열린 채로 */
  /* 다른 메뉴가 열리면 나머지는 사라지는 효과 없이 바로 닫는다 (두 하위 메뉴가 겹쳐 잔상처럼 보이던 것) */
  nav.gnb > ul:has(> li.submenu-open) > li:not(.submenu-open) .submenu{transition:none;}
  /* 퍼블리싱 수정: 맨 오른쪽(알림마당) 하위 메뉴가 화면 오른쪽 밖으로 나가 쪽이 옆으로 8px 밀렸다 → 오른쪽 끝을 메뉴에 맞춤 */
  nav.gnb > ul > li:last-child .submenu{left:auto; right:0; transform:translate(0,-8px);}
  nav.gnb > ul > li:last-child:is(:hover,.submenu-open,:has(:focus-visible)) .submenu{transform:translate(0,0);}
}

@media (min-width:1440px){   /* 오른쪽 여유가 있는 화면 : 알림마당 2차 메뉴도 다른 메뉴처럼 가운데 */
  nav.gnb > ul > li:last-child .submenu{left:50%; right:auto; transform:translate(-50%,-8px);}
  nav.gnb > ul > li:last-child:is(:hover,.submenu-open,:has(:focus-visible)) .submenu{transform:translate(-50%,0);}
}


.submenu li{border-bottom:1px solid var(--line);}
.submenu li:last-child{border-bottom:none;}
.submenu li a{display:block; padding:10px 22px; font-size:14px; color:var(--muted) !important; white-space:nowrap; transition:.15s; font-weight:600;}
.submenu li a:hover{color:var(--primary) !important; background:var(--sub);}
.menu-toggle{display:none; flex-direction:column; justify-content:center; gap:5px; width:30px; height:30px; cursor:pointer;}
.menu-toggle span{display:block; height:2px; width:100%; background:var(--ink); border-radius:2px; transition:transform .25s ease, opacity .2s ease;}
.menu-toggle span:nth-child(2){width:70%;}
.menu-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle.active span:nth-child(2){opacity:0;}
.menu-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.nav-overlay{display:none; position:fixed; inset:0; background:rgba(10,20,30,.45); z-index:90;}
.nav-overlay.show{display:block;}
/* 머리말에서 비주얼로 번지는 워터마크 (메인만) */
.header-mark{position:absolute; /*right:calc((100% - 1200px) / 2 - 100px); top:110px; transform:rotate(-22deg);*/ 
right:calc((100% - 1200px) / 2 - 180px);  top:60px; transform: rotate(-27deg); opacity:.07;  pointer-events:none; user-select:none; white-space:nowrap; z-index:0; margin:0;}
.header-mark .mark_img{width:600px; height:auto; max-width:none;}

/* ── Swiper 기본 (퍼블리싱 common.css 에 넣어 두었던 것 그대로. 스크립트는 js/swiper/swiper-bundle.min.js 11.0.5) ── */
.swiper{margin-left:auto; margin-right:auto; position:relative; overflow:hidden; list-style:none; padding:0; z-index:1;}
.swiper-vertical>.swiper-wrapper{flex-direction:column;}
.swiper-wrapper{position:relative; width:100%; height:100%; z-index:1; display:flex; transition-property:transform; box-sizing:content-box;}
.swiper-slide{flex-shrink:0; width:100%; height:100%; position:relative; transition-property:transform;}
.swiper-slide-invisible-blank{visibility:hidden;}
.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out;}
.swiper-fade .swiper-slide{pointer-events:none; transition-property:opacity;}
.swiper-fade .swiper-slide .swiper-slide{pointer-events:none;}
.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto;}
.swiper-notification{position:absolute; left:0; top:0; pointer-events:none; opacity:0; z-index:-1000;}   /* 화면 읽기 안내 (a11y 모듈) */

/* ── 메인 비주얼 : 슬라이드 하나 = 문구 + 사진 (웹 접근성 — 문구와 사진이 함께 바뀌고 화면 낭독기는 지금 슬라이드만 읽음) ── */
/*.hero-section{position:relative; padding:44px 0 70px;}
.hero-section .wrap{position:relative;}
.hero-blind{position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap;}  
.hero-swiper{position:relative; overflow:visible; z-index:99;}  
.hero-swiper .swiper-slide{height:auto;}
.hero-top{margin-bottom:20px; padding-right:120px;}  
.hero-title{margin:0; font-family:var(--font-paperlogy); font-size:36px; font-weight:800; line-height:1.35; letter-spacing:-.01em; color:var(--ink);}
.hero-sub{margin-top:8px !important; font-size:17px; color:var(--muted); font-family:var(--font-paperlogy); font-weight:400;}
.hero-photo{position:relative; height:640px; border-radius:16px; overflow:hidden; background:linear-gradient(135deg,#0c3d68,#1c6fb0 55%,#3f92d6); box-shadow:0 20px 50px rgba(10,40,80,.14);}
.hero-photo img{display:block; width:100%; height:100%; max-width:none; object-fit:cover;}
.hero-photo::before{content:""; position:absolute; inset:0; background:radial-gradient(circle at 15% 25%, rgba(255,255,255,.14), transparent 40%), radial-gradient(circle at 85% 75%, rgba(255,255,255,.10), transparent 45%); pointer-events:none;}
.hero-photo .slide-num{position:absolute; left:32px; bottom:28px; color:#fff; font-size:clamp(12px,3vw,13px); font-weight:600; opacity:.9; letter-spacing:.05em; text-shadow:0 2px 5px rgba(0,0,0,.5);}
.hero-nav{position:absolute; right:24px; bottom:660px; z-index:120; display:flex; flex-direction:column; align-items:flex-end; gap:0;}
.hero-count{display:flex; align-items:center; gap:6px; margin:0 30px 0 0; font-family:var(--font-paperlogy); font-size:clamp(13px,1.2vw,17px); font-weight:800; color:var(--muted);}
.hero-count b{color:var(--primary); font-size:clamp(16px,1.6vw,22px);}
.hero-arrow{display:flex; align-items:center; padding:4px !important; transition:transform .2s ease;}
.hero-arrow img{width:auto; height:auto;}
.hero-arrow:hover{transform:translateX(4px);}
.hero-toggle{right:48px; bottom:22px;}*/

/* =========================================================
   메인 비주얼 (.mvisual) — 슬라이드마다 배경 사진 + 그 위 문구
   - 기존 hero-* · wrap · auto-toggle 과 겹치지 않는 이름만 씀
   - 사진은 슬라이드마다 .mvisual-bg01 ~ (아래 "슬라이드 사진")
   - 반응형 기준은 main_renewal.css 와 같음 (785 · 768)
   ========================================================= */
.mvisual{position:relative; padding:100px 0 70px;}
.mvisual-inner{position:relative; max-width:1400px; margin:0 auto; padding:0 24px; box-sizing:border-box;}
.mvisual-blind{position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap;}   /* 화면에는 안 보이고 화면 낭독기만 읽는 페이지 제목 */

/* 슬라이드 상자 : 그림자는 상자 자신에 (Swiper 기본 overflow:hidden 에 안 잘림), 바탕색은 사진이 페이드로 바뀌는 사이에 비치는 색 */
.mvisual-swiper{border-radius:16px; background:#0c3d68; box-shadow:0 20px 50px rgba(10,40,80,.14);}
.mvisual-photo{position:relative; display:flex; flex-direction:column; justify-content:flex-end; height:640px; padding:0 clamp(24px,5vw,80px) 84px; box-sizing:border-box; border-radius:16px; overflow:hidden; background:#0c3d68 center / cover no-repeat;}   /* 문구는 사진 왼쪽 아래 (사진 이름 위) */
.mvisual-photo::before{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(4,24,48,.65) 0%, rgba(4,24,48,.3) 50%, rgba(4,24,48,0) 80%), linear-gradient(90deg, rgba(4,24,48,.3) 0%, rgba(4,24,48,0) 60%); pointer-events:none;}   /* 흰 글자가 읽히게 왼쪽 아래를 어둡게 */

/* 슬라이드 사진 : 슬라이드를 늘리면 .mvisual-bg05 처럼 이어 붙임 */
.mvisual-photo.mvisual-bg01{background-image:url('/img/main_renewal/hero_00.jpg');}
.mvisual-photo.mvisual-bg02{background-image:url('/img/main_renewal/hero_01.jpg');}
.mvisual-photo.mvisual-bg03{background-image:url('/img/main_renewal/hero_02.jpg');}
.mvisual-photo.mvisual-bg04{background-image:url('/img/main_renewal/hero_03.jpg');}

/* 문구 */
.mvisual-text{position:relative; max-width:640px; word-break:keep-all;}
.mvisual-title{margin:0; font-family:var(--font-paperlogy); font-size:clamp(22px,2.6vw,44px); font-weight:800; line-height:1.35; letter-spacing:-.01em; color:#fff;}
.mvisual-desc{margin:16px 0 0; font-family:var(--font-paperlogy); font-size:clamp(15px,1.15vw,18px); font-weight:400; line-height:1.6; color:#fff; word-break:keep-all;}
.mvisual-place{position:absolute; left:clamp(24px,5vw,80px); bottom:28px; font-size:13px; font-weight:600; letter-spacing:.05em; color:#fff; opacity:.9; text-shadow:0 2px 5px rgba(0,0,0,.5);}

/* 조작 단추 (슬라이드 밖, 사진 오른쪽 아래에 겹침) : 멈춤이 HTML 에서 먼저 → 화면에선 오른쪽 끝 */
.mvisual-ctrl{position:absolute; right:48px; bottom:22px; z-index:2; display:flex; flex-direction:row-reverse; align-items:center; gap:10px;}
.mvisual-nav{display:flex; align-items:center; gap:8px; height:30px; padding:0 10px 0 14px; border-radius:999px; background:rgba(255,255,255,.92); box-shadow:0 4px 12px rgba(10,40,80,.12);}
.mvisual-count{display:flex; align-items:center; gap:6px; margin:0; font-family:var(--font-paperlogy); font-size:13px; font-weight:800; color:var(--muted);}
.mvisual-count b{font-size:16px; color:var(--primary);}
.mvisual-next{display:flex; align-items:center; margin:0; padding:4px; border:0; background:none; cursor:pointer; transition:transform .2s ease;}
.mvisual-next img{display:block; width:48px; height:auto;}
.mvisual-next:hover{transform:translateX(4px);}
.mvisual-toggle{display:flex; align-items:center; justify-content:center; width:30px; height:30px; margin:0; padding:0; border:1px solid rgba(0,0,0,.08); border-radius:50%; background:rgba(255,255,255,.92); color:#1c2733; box-shadow:0 4px 12px rgba(10,40,80,.12); cursor:pointer; transition:background-color .2s, color .2s;}
.mvisual-toggle:hover{background:var(--primary); color:#fff;}
.mvisual-toggle .mvisual-ic-play,.mvisual-toggle[aria-pressed="true"] .mvisual-ic-pause{display:none;}
.mvisual-toggle[aria-pressed="true"] .mvisual-ic-play{display:block;}
.mvisual-next:focus-visible,.mvisual-toggle:focus-visible{outline:2px solid #fff; outline-offset:2px; box-shadow:0 0 0 4px var(--primary);}

@media (max-width:1100px){
	.mvisual{padding: 50px 0 70px;}
	}
/* 휴대폰 : 문구는 사진 아래쪽(이름 위), 설명 문장 · 다음 화살표는 숨김 */
@media (max-width:785px){
    .mvisual-photo{padding-bottom:64px;}

  .mvisual-title{font-size:21px;}
  .mvisual-desc{display:none;}
  .mvisual-ctrl{right:38px; bottom:14px;}
  .mvisual-nav{padding:0 12px;}
  .mvisual-next{display:none;}
}
@media (max-width:768px){
  .mvisual-photo{height:440px;}
}



/* ── Quick Menu ───────────────────────────────────────── */
/* 퍼블리싱 수정: 퍼블리싱은 right:12% 라 1950px 이하에서 본문과 겹쳐 숨겼다. 콘텐츠(1400) 오른쪽 바깥 16px 에 두고,
   그 자리가 있는 화면(1720px 이상)에서만 보인다. 스크롤을 따라오다 새소식·달력 아래 선에서 멈춘다(js) */
.quick-menu{width:120px; height:640px; display:none; flex-direction:column; background:#fff; border-radius:10px; text-align:center; color:#474d5a; box-shadow:0 3px 6px 3px rgb(0 0 0 / 10%); position:fixed; z-index:9998; right:calc((100vw - 1400px) / 2 - 136px); top:343px; overflow:hidden;}
.quick-menu-title{flex:0 0 auto; display:block; background:var(--primary-blue); color:#fff; text-align:center; font-size:14px; font-weight:700; padding:12px 0;}
.quick-menu-item{flex:1 1 auto; display:flex; align-items:center; gap:8px; padding:8px 9px; border-bottom:1px solid var(--line); font-size:13px; font-weight:600; line-height:1.4; text-align:left; color:var(--ink) !important; transition:.2s;}
.quick-menu-item:last-of-type{border-bottom:none;}
.quick-menu-item .qm-icon{flex:none; width:30px; height:30px; border-radius:50%; background:#f0f0f0; color:var(--primary); display:flex; align-items:center; justify-content:center; transition:.2s;}
.quick_icon{width:16px; height:16px; transition:filter .3s ease;}
.quick-menu-item:hover{color:var(--primary) !important;}
.quick-menu-item:hover .qm-icon{background:var(--primary-blue);}
.quick-menu-item:hover .quick_icon{filter:brightness(0) invert(1);}
/* 전화 문의 (장비이용 · 장소대관) : 테두리 배지 + 큰 번호, 연한 파랑 바탕 */
.quick-menu-call{flex:0 0 auto; display:flex; flex-direction:column; margin:0; padding:12px 10px; border-top:1px solid var(--line); background:#f7faff; text-align:left;}
.quick-menu-call > div + div{margin-top:10px; padding-top:10px; border-top:1px dashed #cfdced;}
.quick-menu-call dt {  display: inline-block;  padding: 2px 9px;  border: 1px solid transparent;  border-radius: 999px;  color: #fff;  font-size: 12px;  font-weight: 700;  line-height: 1.4;}

/* 장비이용 문의 : 남색 (흰 글자 대비 7.7:1) */
.quick-menu-call dt.call-equip {  background: var(--primary);}
/* 장소대관 문의 : 청록 (흰 글자 대비 5.5:1) */
.quick-menu-call dt.call-rent {   background: #1e7e3b;}

.quick-menu-call dd{margin:5px 0 0; font-size:15px; font-weight:800; line-height:1.3; color:var(--ink); letter-spacing:-.02em; white-space:nowrap;}
.quick-menu-top{flex:0 0 auto; display:flex !important; align-items:center; justify-content:center; gap:4px; width:100%; padding:12px 0 !important; font-size:13px; font-weight:700; color:var(--muted) !important; border-top:1px solid var(--line) !important; background:var(--sub) !important;}
.quick-menu-top:hover{color:var(--primary) !important;}
@media (min-width:1720px){ 
	.quick-menu{display:flex;}
}

/* ── 섹션 제목 ────────────────────────────────────────── */
.section-head{text-align:center; margin-bottom:60px;}
.eyebrow{display:block; color:var(--accent-blue); font-weight:700; font-size:clamp(14px,3vw,18px); letter-spacing:0.05em; font-family: var(--font-paperlogy);}
.eyebrow-line{display:block; width:46px; height:3px; background:var(--accent-blue); border-radius:2px; margin:14px auto 0;}
.section-head h2{font-family:var(--font-paperlogy); font-size:clamp(25px,3vw,40px); font-weight:700; margin-top:16px !important; color:var(--ink); line-height:1.5;}
.section-head p{font-size: clamp(15px, 3vw, 20px); color:var(--muted); font-family:var(--font-pretendard); font-weight: 500;}

/* ── 접수 중인 사업 공고 ─────────────────────────────── */
.biz-section{padding:30px 0 100px 0}
.biz-slider-wrap{position:relative;}
.biz-swiper{overflow:hidden;}
.biz-swiper .swiper-slide{height:auto;}
.biz-card{display:block; background:var(--card-bg); border-radius:14px; overflow:hidden; transition:box-shadow .25s, transform .25s;}
.biz-card:is(:hover,:focus-visible){/*box-shadow:0 24px 40px rgba(10,40,80,.14); transform:translateY(-4px);*/}
.biz-thumb{position:relative; aspect-ratio:3/4; border-radius:14px; background:#111417; overflow:hidden; border:1px solid #eee;}

/* 퍼블리싱 수정: 포스터가 맨 위에서 시작해 머리띠(44px)가 포스터 제목을 가렸다 → 머리띠 아래에서 시작 */
.biz-thumb > p{position:absolute; left:0; right:0; top:44px; bottom:0; overflow:hidden;}
.biz-thumb img{width:101%; max-width:none;}
.biz-thumb .biz-noimg{display:flex; align-items:center; justify-content:center; padding:24px; background:var(--sub); text-align:center;}
.biz-noimg span{font-family:var(--font-pretendard); font-size:18px; font-weight:700; line-height:1.5; color:var(--primary);}
.biz-thumb .badge{position:absolute; top:0; left:0; right:0; height:44px; min-width:0; padding:0 12px; background:var(--primary); border-radius:0; z-index:2; display:flex; align-items:center; justify-content:center; gap:10px; line-height:1.2; white-space:nowrap; vertical-align:top; transition:opacity .25s ease;}   /* bootstrap .badge 되돌림 */
.biz-card:is(:hover,:focus-visible) .biz-thumb .badge{opacity:0;}
.biz-thumb .badge span{background:#fff; color:var(--primary); font-size:12px; font-weight:700; padding:5px 12px; border-radius:20px;}
.biz-thumb .badge em{color:#fff; font-size:clamp(12px,3vw,14px); font-weight:600; font-style:normal;}
.biz-overlay{position:absolute; inset:0; background:rgba(0,45,90,.85); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; opacity:0; transition:opacity .3s ease; z-index:3;}
.biz-card:is(:hover,:focus-visible) .biz-overlay{opacity:1;}
.biz-overlay .circle-wrap{position:relative; width:64px; height:64px; display:flex; align-items:center; justify-content:center; transform:scale(.8); transition:transform .3s ease;}
.biz-card:is(:hover,:focus-visible) .biz-overlay .circle-wrap{transform:scale(1);}
.biz-overlay .circle-outer{position:absolute; inset:0; border-radius:50%; background:rgba(72,127,255,.55);}
.biz-overlay .circle-inner{position:relative; width:44px; height:44px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center;}
.biz-overlay .circle-inner svg{width:18px; height:18px; transform:rotate(-20deg);}
.biz-overlay > span:last-child{color:#fff; font-size:clamp(12px,3vw,14px); font-weight:600; letter-spacing:.02em;}
.biz-body{padding:20px 18px 22px;}

/* 퍼블리싱 수정: 3줄 자르기에 높이 60px 이라 셋째 줄 윗부분이 비쳤다 → 두 줄, 높이도 두 줄 */
.biz-body h3{font-family:var(--font-pretendard); font-size:clamp(15px,1.6vw,18px); font-weight:800; line-height:1.5; color:var(--ink); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; height:3em;}
.biz-body p{margin-top:6px !important; font-size:clamp(13px,1.6vw,15px); color:var(--primary); font-family:var(--font-pretendard); font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.biz-nav{position:absolute; top:0; left:0; right:0; height:100px; display:flex; align-items:center; justify-content:space-between; pointer-events:none; z-index:10;}
.biz-nav button{pointer-events:auto; width:44px; height:44px; border-radius:50%; background:var(--card-bg) !important; border:1px solid var(--line) !important; box-shadow:0 8px 20px rgba(10,40,80,.16); display:flex; align-items:center; justify-content:center; color:var(--primary) !important; transition:.2s;}
.biz-nav .prev{margin-left:-22px;}
.biz-nav .next{margin-right:-22px;}
.biz-nav button:hover{background:var(--primary) !important; color:#fff !important; border-color:var(--primary) !important;}
.biz-nav button.swiper-button-disabled{opacity:.35; cursor:default;}
.biz-slider-wrap.is-static .biz-nav,.biz-slider-wrap.is-static .biz-toggle{display:none;}   /* 카드가 한 화면에 다 들어가면 넘김 없음 */
.biz-toggle{left:50%; bottom:-52px; margin-left:-15px;}   /* 카드 아래 여백 안 (구역 높이는 퍼블리싱 그대로) */
/* 접수 중인 공고가 없을 때 : 공고 카드가 있을 때와 같은 크기(가로 = 카드 줄 전체, 세로 = 카드 한 장)로 자리 잡고 가운데에 안내, 링크는 둘째 줄
   카드 수 : 649px 이하 1장 · 650px 이상 2장 · 1224px 이상 4장 (js 의 Swiper 설정과 같음) — 높이 = 포스터(3:4) + 글 상자(위아래 여백 48 + 제목 두 줄 + 기관명 한 줄) */
.biz-section .wrap:has(> .biz-empty){container-type:inline-size;}

.biz-empty{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; margin:0; padding:24px; border:2px dashed #cfdced;text-align:center; color:#66717f;   /* 옅은 파랑 바탕 위 대비 4.5:1 이상 (--muted #6b7684 는 4.498:1) */  font-size:clamp(14px, 13.39px + 0.163vw, 16px); 
font-weight:600;border-radius:15px;background:rgba(9,121,221,.02); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); 
min-height:calc((100vw - 48px) * 4 / 3 + 48px + 3 * clamp(15px,1.6vw,18px) + 1.5 * clamp(13px,1.6vw,15px)); 
min-height:calc(100cqw * 4 / 3 + 48px + 3 * clamp(15px,1.6vw,18px) + 1.5 * clamp(13px,1.6vw,15px));  }  

.biz-empty a{margin:0; color:var(--primary) !important; text-decoration:underline !important;}
@media (min-width:650px){
.biz-empty{min-height:calc(min(100vw - 48px, 1352px) / 2 * 4 / 3 + 48px + 3 * clamp(15px,1.6vw,18px) + 1.5 * clamp(13px,1.6vw,15px)); min-height:calc((100cqw - 22px) / 2 * 4 / 3 + 48px + 3 * clamp(15px,1.6vw,18px) + 1.5 * clamp(13px,1.6vw,15px));} 
}
@media (min-width:1224px)
{ 
.biz-empty{min-height:calc((min(100vw - 48px, 1352px) - 78px) / 3 + 48px + 3 * clamp(15px,1.6vw,18px) + 1.5 * clamp(13px,1.6vw,15px)); min-height:calc((100cqw - 78px) / 3 + 48px + 3 * clamp(15px,1.6vw,18px) + 1.5 * clamp(13px,1.6vw,15px));}
}

/* ── 새소식 · 달력 ────────────────────────────────────── */
.news-section{position:relative; padding:120px 0; background:var(--sub); overflow:hidden;}
.news-section .deco{position:absolute; border-radius:50%;}
.news-section .deco.d1{width:800px; height:800px; left:-15%; bottom:-35%; background:rgba(212,227,244,1);}
.news-section .deco.d2{width:260px; height:260px; right:6%; bottom:-100px; background:rgba(0,83,159,.05);}
.news-section .deco.d3{width:400px; height:400px; right:14%; top:-100px; background:rgba(0,83,159,.04);}
.news-section .wrap{position:relative; z-index:2;}
.news-left_w{display:flex; justify-content:space-between; /*margin-top:120px;*/ align-items:center;}
.news-col-left .section-head{text-align:left; margin-bottom:0;}
.news-col-left .eyebrow-line{margin:14px 0;}
.plus-link{display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--primary) !important; margin-right:20px;}
.plus-link .plus{display:inline-block; width:16px; height:16px; text-align:center; line-height:16px; transition:transform .25s ease;}
.plus-link:hover .plus{transform:rotate(270deg);}
.news-grid{display:flex; gap:28px;}
.news-col-left{flex:1.15; min-width:0; display:flex; flex-direction:column; gap:50px;}
.news-col-right{flex:1; min-width:0; display:flex;}

/* 옛 default.css 의 .notice-box(가운데 정렬·높이 190px·테두리)를 되돌린다 */
.news-section .notice-box{flex:1; height:auto; padding:0; border:0; text-align:left; background:var(--card-bg); border-radius:16px; box-shadow:0 16px 40px rgba(10,40,80,.08); overflow:hidden; display:flex; flex-direction:column;}
.notice-tabs{display:flex; align-items:center; gap:12px; background:var(--primary); padding:20px 40px;}
.notice-tabs .tab-icon{display:flex; align-items:center; color:#fff; opacity:.85; margin-right:4px;}
.svg_icon{width:24px; height:24px;}
.notice-tabs .tab-sep{color:rgba(255,255,255,.75); font-size:14px;}
.notice-tabs button{padding:0; color:rgba(255,255,255,.75) !important; font-size:clamp(12px,3vw,15px); font-weight:500; transition:.2s;}
.notice-tabs button.active,.notice-tabs button:hover{color:#fff !important; font-weight:700; font-size:clamp(14px,2.8vw,16px);}
.notice-list{flex:1; padding:0; display:flex; flex-direction:column;}
.notice-panel{flex:1; display:flex; flex-direction:column;}
.notice-panel[hidden]{display:none;}
.notice-item{flex:1; display:flex; align-items:center; gap:16px; padding:16px 40px; position:relative; transition:.2s; color:var(--ink) !important;}
.notice-item::after{content:""; position:absolute; left:40px; right:40px; bottom:0; border-bottom:2px dotted #d5dbe2;}
.notice-item:last-child::after{display:none;}
.notice-date{display:flex; flex-direction:column; align-items:center; justify-content:center; flex-shrink:0; min-width:70px; padding:15px 4px; color:var(--muted); line-height:1.1; background:var(--sub); border-radius:10px;}
.notice-date .dd{font-size:clamp(18px,3vw,20px); font-weight:800; color:var(--ink);}
.notice-date .ym{font-size:clamp(12px,3vw,13px); margin-top:2px; color:#000;}
.notice-content{flex:1; display:flex; flex-direction:column; gap:6px; min-width:0;}
.notice-line1{display:flex; align-items:center; gap:8px;}
.notice-tag{font-size:12px; font-weight:700; color:#fff; background:var(--primary); padding:4px 9px; border-radius:20px; white-space:nowrap;}
.notice-new{width:22px; height:22px; flex-shrink:0; font-size:12px; font-weight:700; color:#fff; background:#ff0000; border-radius:50%; display:flex; align-items:center; justify-content:center; padding:0;}
.notice-title{max-width:95%; font-size:clamp(12px,3vw,14.5px); font-weight:700; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:color .2s;}
.notice-plus{width:30px; height:30px; border-radius:50%; border:1px solid var(--line); color:var(--muted); display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0; opacity:0; transform:translateX(-8px); transition:.25s;}
.notice-item:is(:hover,:focus-visible) .notice-title{color:var(--primary);}
.notice-item:is(:hover,:focus-visible) .notice-plus{opacity:1; transform:translateX(0); background:var(--primary); color:#fff; border-color:var(--primary);}
.notice-empty{flex:1; display:flex; align-items:center; justify-content:center; padding:40px; color:var(--muted); font-size:14px;}

/* 달력 */
.cal-box{flex:1; width:100%; background:var(--card-bg); border-radius:16px; box-shadow:0 16px 40px rgba(10,40,80,.08); padding:26px 24px; display:flex; flex-direction:column; overflow-x:hidden;}
.cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px;}
.cal-head .title{display:flex; align-items:center; gap:10px;     font-size: clamp(14px, 1.4vw, 20px); font-weight:700; font-family:var(--font-pretendard);}
.cal-today-btn{font-size:12px; font-weight:600; color:var(--primary) !important; background:var(--sub) !important; border:1px solid rgba(0,83,159,.2) !important; border-radius:20px; padding:4px 12px !important; transition:.2s;}
.cal-today-btn:hover{background:var(--primary) !important; color:#fff !important; border-color:var(--primary) !important;}
.cal-nav{display:flex; gap:6px;}
.cal-nav button{width:30px; height:30px; border-radius:50%; border:1px solid var(--line) !important; color:var(--muted) !important; display:flex; align-items:center; justify-content:center; transition:.2s;}
.cal-nav button:hover{background:var(--primary) !important; border-color:var(--primary) !important; color:#fff !important;}
.cal-grid{display:flex; flex-wrap:wrap; width:100%; border:1px solid var(--line); border-radius:8px; overflow:hidden;}
.cal-box.is-loading .cal-grid{opacity:.5;}
.cal-dow{width:14.2857%; font-size:12px; color:var(--muted); font-weight:600; text-align:center; padding:10px 0; background:var(--sub); border-right:1px solid var(--line); border-bottom:1px solid var(--line);}
.cal-dow:first-child{color:#c62828;}
.cal-dow:nth-child(7){border-right:none; color:var(--primary);}
.cal-days{display:contents;}
.cal-day{width:14.2857%; aspect-ratio:1/1; text-align:left; font-size:13px; position:relative; color:var(--ink); border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:6px 5px 4px; overflow:hidden;}
.cal-day:nth-child(7n){border-right:none;}
.cal-day:nth-last-child(-n+7){border-bottom:none;}
.cal-day.muted{background:#f6f7f9;}
.cal-day-head{display:flex; align-items:center; justify-content:space-between;}
.cal-day:nth-child(7n+1) .num{color:#c62828;}
.cal-day:nth-child(7n) .num{color:var(--primary);}
.cal-day.muted .num{visibility:hidden;}
.cal-day .num{display:inline-block; font-weight:600; font-size:12px; line-height:18px; padding:0; color:var(--ink);}
.cal-day:not(.muted) .num{cursor:pointer;}
.cal-day:not(.muted) .num:hover{text-decoration:underline;}
.cal-day .more-count{font-size:12px; font-weight:700; color:var(--primary);}
.cal-day.today .num{display:flex; align-items:center; justify-content:center; width:20px; height:20px; background:var(--primary); color:#fff !important; border-radius:50%; font-weight:700; font-size:12px;}
.cal-day .event-rows{margin-top:2px; display:flex; flex-direction:column; gap:2px; min-width:0;}
.cal-day .event-row{display:flex; align-items:center; gap:4px; height:16px; padding:2px 4px; border-radius:3px; font-size:clamp(8px,3vw,9.5px); line-height:1.3; color:var(--ink) !important; white-space:nowrap; overflow:hidden; cursor:pointer;}
.cal-day .event-row.range-mid,.cal-day .event-row.range-end{gap:0;}
.cal-day .event-row.is-gap{visibility:hidden; pointer-events:none;}   /* 여러 날 일정 막대가 칸마다 같은 줄에 오도록 비워 둔 줄 (퍼블리싱에 없음) */
.cal-day .event-row i{width:5px; height:5px; border-radius:50%; flex-shrink:0;}
.cal-day .event-row span{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.cal-day .event-row.hl{box-shadow:inset 0 0 0 1px currentColor;}
.cal-empty-note{margin-top:8px; font-size:12px; color:var(--muted); text-align:center;}

/* 달력 막대 메모 (제목·일정·사업기관·장소) */
.cal-tooltip{position:fixed; z-index:9999; width:360px; max-width:calc(100vw - 16px); background:var(--card-bg); border:1px solid var(--line); border-radius:12px; box-shadow:0 16px 34px rgba(10,40,80,.18); padding:14px 16px; opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .18s ease, transform .18s ease; pointer-events:none; font-family:var(--mr-font); color:var(--ink); word-break:keep-all;}
.cal-tooltip.show{opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0);}
.cal-tooltip .ct-event{display:block; color:inherit !important; cursor:pointer; border-radius:8px; padding:6px 8px; margin:0 -8px; transition:background .15s;}
.cal-tooltip .ct-event:hover{background:var(--sub);}
.cal-tooltip .ct-event:hover .ct-title{color:var(--primary);}
.cal-tooltip .ct-title{font-size:13.5px; font-weight:700; color:var(--ink); margin-bottom:8px; line-height:1.4; transition:color .15s;}
.cal-tooltip .ct-row{display:flex; gap:8px; font-size:12.5px; color:var(--muted); margin-top:4px;}
.cal-tooltip .ct-row b{flex-shrink:0; width:58px; color:var(--primary); font-weight:600;}

/* 날짜를 누르면 달력 칸을 덮는 그날 일정 창 */
.cal-day-popup{position:fixed; z-index:310; background:var(--card-bg); border:none; border-radius:18px; box-shadow:0 24px 54px rgba(10,40,80,.28); padding:0; opacity:0; visibility:hidden; transform:translateY(-8px) scale(.98); transition:opacity .2s ease, transform .2s ease; pointer-events:none; overflow:hidden; display:flex; flex-direction:column; font-family:var(--mr-font); color:var(--ink); word-break:keep-all;}
.cal-day-popup.show{opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0) scale(1);}
.cal-day-popup .cdp-head{flex-shrink:0; display:flex; align-items:center; position:relative; padding:14px 14px 14px 20px; background:linear-gradient(135deg,var(--primary),#0a6bb8);}
.cal-day-popup .cdp-nav-row{flex:1; display:flex; align-items:center; justify-content:center; gap:10px;}
.cal-day-popup .cdp-day-nav{width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; background:rgba(255,255,255,.14); flex-shrink:0; transition:.15s;}
.cal-day-popup .cdp-day-nav:hover{background:rgba(255,255,255,.3);}
.cal-day-popup .cdp-date{font-size:14.5px; font-weight:700; color:#fff; display:flex; align-items:center; gap:8px; justify-content:center; white-space:nowrap;}
.cal-day-popup .cdp-date::before{content:""; width:7px; height:7px; border-radius:50%; background:#fff; opacity:.85; flex-shrink:0;}
.cal-day-popup .cdp-today-btn{position:absolute; left:14px; top:50%; transform:translateY(-50%); font-size:11px; font-weight:700; color:#fff; background:rgba(255,255,255,.16); border:none; border-radius:20px; padding:5px 10px; flex-shrink:0; transition:.15s; white-space:nowrap;}
.cal-day-popup .cdp-today-btn:hover{background:rgba(255,255,255,.32);}
.cal-day-popup .cdp-close{position:absolute; right:14px; top:50%; transform:translateY(-50%); width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; background:rgba(255,255,255,.16); flex-shrink:0; transition:.15s;}
.cal-day-popup .cdp-close:hover{background:rgba(255,255,255,.32); transform:translateY(-50%) rotate(90deg);}
.cal-day-popup .cdp-slide-wrap{transition:transform .22s ease, opacity .22s ease; flex:1; display:flex; flex-direction:column; min-height:0;}
.cal-day-popup .cdp-slide-wrap.slide-out-left,.cal-day-popup .cdp-slide-wrap.slide-in-left{transform:translateX(-28px); opacity:0;}
.cal-day-popup .cdp-slide-wrap.slide-out-right,.cal-day-popup .cdp-slide-wrap.slide-in-right{transform:translateX(28px); opacity:0;}
.cal-day-popup .cdp-body{padding:14px 16px; overflow-y:auto; flex:1;}
.cal-day-popup .ct-event{display:block; color:inherit !important; cursor:pointer; border-radius:10px; padding:12px 14px; margin-bottom:8px; background:var(--sub); border-left:3px solid var(--ev-color, var(--primary)); transition:background .15s, transform .15s;}
.cal-day-popup .ct-event:last-child{margin-bottom:0;}
.cal-day-popup .ct-event:hover{background:#e8f1fb; transform:translateX(2px);}
.cal-day-popup .ct-event:hover .ct-title{color:var(--primary);}
.cal-day-popup .ct-title{font-size:13.5px; font-weight:700; color:var(--ink); margin-bottom:9px; line-height:1.45; transition:color .15s;}
.cal-day-popup .ct-row{display:flex; align-items:flex-start; gap:8px; font-size:12px; color:var(--muted); margin-top:5px;}
.cal-day-popup .ct-row .ct-icon{flex-shrink:0; width:15px; height:15px; margin-top:1px; color:var(--primary); opacity:.75;}
.cal-day-popup .ct-row span{line-height:1.4;}
.cal-day-popup .cdp-empty{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; font-size:13px; color:var(--muted); padding:20px;}
.cal-day-popup .cdp-empty svg{opacity:.4;}
.cal-day-popup .cdp-foot{flex-shrink:0; display:flex; justify-content:center; padding:10px; border-top:1px solid var(--line); font-size:13px; font-weight:600;}   /* 퍼블리싱에 없음: 주요일정 화면의 그날 목록으로 */
.cal-day-popup .cdp-foot a{color:var(--primary) !important;}
.cal-day-popup .cdp-foot a:hover{text-decoration:underline !important;}
.cal-day-popup-overlay{position:fixed; inset:0; z-index:305; background:rgba(10,20,30,.32); backdrop-filter:blur(1px); opacity:0; visibility:hidden; transition:opacity .2s ease;}
.cal-day-popup-overlay.show{opacity:1; visibility:visible;}

/* 주요일정 목록 */
.schedule-list{margin-top:auto; padding-top:22px;}
.schedule-list .sched-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:12px;}
.schedule-list .sched-title{font-size:14px; font-weight:700; display:flex; align-items:center; gap:8px; color:var(--ink);     font-size: clamp(14px, 1.4vw, 20px);}
.sched-links{display:flex; align-items:center; gap:10px;}
.sched-links .plus-link{margin-right:0;}
.sched-write{padding:3px 12px; border-radius:12px; background:var(--primary); color:#fff !important; font-size:12px; font-weight:600;}
.sched-box{background:var(--sub); border-radius:10px; padding:4px 8px 4px 16px; height:138px; overflow-y:auto; overflow-x:hidden; scrollbar-width:thin; scrollbar-color:#b9c2cc transparent;}
.sched-box.is-empty{display:flex; align-items:center; justify-content:center;}
.sched-box::-webkit-scrollbar{width:6px;}
.sched-box::-webkit-scrollbar-track{background:transparent;}
.sched-box::-webkit-scrollbar-thumb{background:#b9c2cc; border-radius:6px;}
.sched-box::-webkit-scrollbar-thumb:hover{background:#94a0ac;}
.sched-item{display:flex; align-items:center; gap:10px; padding:0; width:100%; height:46px; font-size:13px; color:var(--muted) !important; border-bottom:1px dotted #c2cad3; flex-shrink:0; transition:background .15s;}
.sched-item:hover{background:rgba(0,83,159,.05);}
.sched-item:hover b{color:var(--primary);}
.sched-item:last-child{border-bottom:none;}
.sched-item i{width:7px; height:7px; border-radius:50%; flex-shrink:0;}
.sched-item span{flex:1; min-width:0; max-width:90%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis;}
.sched-item b{color:var(--ink); font-weight:600; margin-right:4px;}
.sched-item em{margin-right:4px; padding:1px 6px; border-radius:8px; background:#fdecea; color:#b3261e; font-size:12px; font-weight:700; font-style:normal;}   /* 중요일정 */
.sched-empty{font-size:13px; color:var(--muted); text-align:center;}
.sched-empty a{color:var(--primary) !important; text-decoration:underline !important;}

/* ── 패밀리사이트 로고 (관리자 > 배너관리) ────────────── */
/* 퍼블리싱 수정: 같은 묶음 3개를 -50% 만큼 움직여 한 바퀴마다 반 묶음씩 튀었다 → 화면을 채울 만큼 늘린 묶음 2벌을 -50% (js) */
.logo-slider{position:relative; width:100%; overflow:hidden; background:#fff; padding: 10px 0;}
.logo-track{display:flex; width:max-content;}
.logo-track.is-run{animation:logoMove var(--logo-dur, 40s) linear infinite;}
.logo-group{display:flex; align-items:center; gap:70px; padding-right:70px; flex-shrink:0;}
.logo-group > :is(a,.logo-item){display:flex; align-items:center; justify-content:center; width:160px; height:70px; flex-shrink:0;}
.logo-group img{display:block; max-width:200px; max-height:60px; width:auto; height:auto; object-fit:contain;}
.logo-group a:is(:hover,:focus-visible) img{opacity:.75;}
.logo-slider:is(:hover,:focus-within,.is-paused) .logo-track{animation-play-state:paused;}
.logo-slider.is-focus .logo-track.is-run{animation:none;}   /* 키보드로 로고에 들어왔을 때 (main_renewal.js) */
.logo-toggle{right:12px; top:50%; margin-top:-15px;}
@keyframes logoMove{from{transform:translateX(0);} to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){
  .logo-track.is-run{animation:none;}
  .logo-slider{overflow-x:auto;}
  .logo-toggle{display:none;}
}

/* ── 꼬리말 ───────────────────────────────────────────── */
.site-footer{background:var(--primary); color:#c7d8ec; padding:44px 0 30px;}
.footer-org{color:#fff; font-family:var(--font-paperlogy); font-weight:600; font-size:clamp(14px,1.4vw,16px); margin-bottom:12px;}
.footer-info{font-size:clamp(12px,1vw,14px); line-height:1.9; display:flex; flex-wrap:wrap; column-gap:18px;}   /* 퍼블리싱 수정: 항목 사이 간격이 없어 "…3456팩스번호" 로 붙어 보였다 */
.footer-info p{white-space:nowrap; word-break:keep-all;}
.footer-info .add{width:100%;}
.footer-links{display:flex; font-size:clamp(12px,1.4vw,14px); flex-wrap:wrap; gap:15px;}
.footer-links a{color:#fff !important;}
.footer-links a:first-child{font-weight:600;}
.footer-links a:hover{text-decoration:underline !important;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; margin-top:26px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); font-size:12px; opacity:.7;}
.top-btn{position:fixed; right:28px; bottom:28px; width:48px; height:48px; border-radius:50%; background:var(--primary) !important; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 12px 28px rgba(0,60,120,.3); z-index:80; opacity:0; visibility:hidden; transform:translateY(10px); transition:.3s;}
.top-btn.show{opacity:1; visibility:visible; transform:translateY(0);}
.top-btn:hover{background:var(--primary-dark) !important;}

/* ── 반응형 (퍼블리싱 구간 그대로: 1100 머리말 / 1024 / 785 / 768 / 480) ── */
@media (max-width:1100px){
  .site-header{background:var(--bg);}
  .header-mark,.utility-bar{display:none;}
  .logo-mark{width:200px;}
  .logo-mark img{width:100%;}
  .menu-toggle{display:flex;}
  .sr_visual{padding-top:0 !important}
  .mr_inner {padding:0 !important}
  .sr_visual_box{border-radius:0 !important}
  nav.gnb{display:block; position:fixed; top:0; right:-100%; width:300px; max-width:82%; height:100vh; height:100dvh; background:var(--card-bg); box-shadow:-14px 0 34px rgba(0,0,0,.18); z-index:100; padding:0 0 30px; overflow-y:auto; transition:right .3s ease, visibility .3s; visibility:hidden;}
  nav.gnb.open{right:0; visibility:visible;}
  .mobile-close{display:flex; align-items:center; justify-content:center; position:absolute; top:16px; right:16px; width:36px; height:36px; border-radius:50%; background:var(--sub) !important; color:var(--ink); z-index:2;}
  .mobile-close svg path{stroke:var(--ink);}
  .mobile-close:hover{background:var(--line) !important;}
  .mobile-auth{display:flex; gap:12px; padding:64px 20px 20px; border-bottom:1px solid var(--line);}   /* 위 64px: 닫기 단추 자리 */
  .mobile-auth a{flex:1; text-align:center; font-size:14px; font-weight:600; color:var(--muted) !important; border:1px solid var(--line); border-radius:10px; padding:15px;}
  .mobile-auth a:hover{color:var(--primary) !important; border-color:var(--primary);}
  .mobile-auth.is-member{display:grid; grid-template-columns:1fr 1fr; gap:8px;}   /* 로그인하면 항목이 많아 두 칸씩 */
  .mobile-auth.is-member a{padding:11px 6px; font-size:13px; line-height:1.3; display:flex; align-items:center; justify-content:center;}
  nav.gnb > ul{display:block; height:auto;}
  nav.gnb > ul > li{display:block; border-bottom:1px solid var(--line);}
  nav.gnb > ul > li > a{height:auto; padding:16px 26px; justify-content:space-between; color:var(--ink) !important;}
  nav.gnb > ul > li > a::after{content:"⌄"; position:static; left:auto; right:auto; bottom:auto; height:auto; width:auto; background:none; color:var(--muted); font-size:14px; transform:none; transition:transform .25s ease;}
  nav.gnb > ul > li:not(:has(.submenu)) > a::after{content:"›";}   /* 하위 메뉴 없는 항목(채용관리)은 바로 이동 표시 */
  nav.gnb > ul > li.open > a::after{transform:rotate(180deg); color:var(--primary);}
  nav.gnb > ul > li:hover > a::after{transform:none;}
  nav.gnb > ul > li.open:hover > a::after{transform:rotate(180deg);}
  nav.gnb > ul > li .submenu{position:static !important; transform:none !important; opacity:1 !important; visibility:visible !important; pointer-events:auto !important; width:100%; border:none; border-radius:0; box-shadow:none; background:var(--sub); max-height:0; overflow:hidden; padding:0; transition:max-height .3s ease;}
  nav.gnb > ul > li.open .submenu{max-height:400px !important;}
  nav.gnb > ul > li:not(.open) .submenu a{visibility:hidden;}   /* 접힌 하위 메뉴는 키보드 이동에서도 뺀다 */
  .submenu li a{padding:12px 40px; font-size:13.5px; color:var(--muted) !important;}
  .submenu li a:hover{color:var(--primary) !important; background:rgba(0,83,159,.06);}
}
@media (max-width:1024px){
  .biz-section{padding:50px 0 100px;}
  .news-section{padding:100px 0;}
  .news-left_w{margin-top:0;}
  .news-grid{flex-direction:column;}
  .news-col-left,.news-col-right{flex:none; width:100%;}
  .footer-bottom{flex-wrap:wrap;}
  .footer-bottom .footer-links{order:1; margin-bottom:20px;}
  .footer-bottom span{order:2;}
}
@media (max-width:785px){
   .hero-sub{display:none;}
  .hero-title{font-size:21px;}
  .hero-top{padding-right:0;}
  .hero-arrow{display:none !important;}
  .hero-nav{right:40px; bottom:596px;}   /* 숫자는 사진 오른쪽 위 안쪽 */
  .hero-count{margin:0; padding:2px 12px; border-radius:999px; background:rgba(255,255,255,.92); box-shadow:0 4px 12px rgba(10,40,80,.12);}
  .hero-toggle{right:38px; bottom:14px;}
  .section-head p{font-size:12px;}
  .news-col-left{gap:0;}
  .news-left_w{margin-bottom:24px;}
  .notice-title{font-size:13px; max-width:90%;}
  .notice-item{padding:16px 20px; gap:10px;}
  .notice-item::after{left:20px; right:20px;}
  .notice-date{padding:15px 0; min-width:55px;}
  .notice-plus{display:none;}
  .notice-tag{font-size:12px;}   /* 12px 미만 글자 줄이기(9/29 측정) */
  .cal-box{padding:20px 14px;}
  .cal-day{padding:4px 3px 3px; cursor:pointer;}   /* 휴대폰: 칸 어디를 눌러도 그날 일정 */
  .cal-day .num{font-size:12px;}
  .cal-day .event-rows{flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:center; gap:3px; pointer-events:none;}
  .cal-day .event-row{width:auto; height:auto; padding:0; justify-content:center; background:none !important;}
  .cal-day .event-row.is-gap{display:none;}
  .cal-day .event-row span{display:none;}
  .cal-day .event-row.range-mid,.cal-day .event-row.range-end{display:none;}
  .cal-day .event-row i{width:5px; height:5px;}
  .footer-info p{width:100%;}
  .footer-bottom span{font-size:12px;}   /* 퍼블리싱 9px → 12px (읽기 어려움) */
  .top-btn{right:16px; bottom:16px; width:44px; height:44px;}
}
@media (max-width:768px){
  .header-inner{height:70px;}
  .hero-photo{height:440px;}
  .hero-nav{bottom:396px;}
  .biz-nav .prev{margin-left:0;}
  .biz-nav .next{margin-right:0;}
}
@media (max-width:480px){
  .notice-date .dd{font-size:17px;}
  .notice-tabs{padding:20px;}
}

/* ── 서브 화면과 같이 쓰는 것 ─────────────────────────── */
/* 게시판 목록의 새 글 표시 (inc/skin/board/*) */
.mr_new{display:inline-block; width:20px; height:20px; line-height:20px; border-radius:50%; background:#f00; color:#fff; font-size:12px; font-weight:700; font-style:normal; text-align:center; letter-spacing:0;}

/* 달력 일정 메모 레이어 (js-sch-tip: 주요일정 화면) */
.sch_tip{position:absolute; z-index:1000; width:max-content; max-width:340px; padding:12px 14px; background:#fff; border:1px solid #b4c1d1; border-radius:8px; box-shadow:0 0 0 3px rgba(255,255,255,.95), 0 12px 28px rgba(20,60,120,.22); /* 진한 회색 선 + 흰 테: 파란 막대·연한 배경 어디서든 경계가 보이게 */ font-family:var(--mr-font); font-size:13px; line-height:1.6; color:var(--mr-text); pointer-events:none; word-break:keep-all;}
.sch_tip dl{display:grid; grid-template-columns:auto 1fr; gap:3px 12px; margin:0;}
.sch_tip dt{margin:0; color:var(--mr-sub); font-weight:400; white-space:nowrap;}
.sch_tip dd{margin:0;}
.sch_tip dt:first-of-type,.sch_tip dd:first-of-type{padding-bottom:6px; margin-bottom:3px; border-bottom:1px solid var(--mr-line); font-weight:700; color:var(--mr-text);}

/* 달력 "+N" 을 누르면 뜨는 그날 일정 창 (주요일정 화면, js/main_renewal.js) */
.cal_daypop{position:absolute; z-index:1001; width:320px; max-width:calc(100vw - 16px); box-sizing:border-box; padding:0; border:1px solid #dbe4ef; border-radius:14px; background:#fff; box-shadow:0 16px 36px rgba(0,40,90,.2); font-family:var(--mr-font); letter-spacing:-.02em; color:var(--mr-text); overflow:hidden;}
.cal_daypop[hidden]{display:none;}
.cal_daypop:focus{outline:0;}
.cal_daypop_head{display:flex; align-items:center; gap:8px; padding:14px 12px 12px 18px; border-bottom:1px solid #e8eef5; background:#f5f9ff;}
.cal_daypop_head strong{font-size:16px; font-weight:700; color:#111;}
.cal_daypop_head span{font-size:13px; color:var(--mr-sub);}
.cal_daypop_head span b{color:var(--mr-blue);}
.cal_daypop_close{margin-left:auto; width:30px; height:30px; padding:0; border:0; border-radius:50%; background:transparent; color:#777; font-size:15px; cursor:pointer;}
.cal_daypop_close:hover,.cal_daypop_close:focus-visible{background:#e3ecf7; color:#111; outline:0;}
.cal_daypop_list{max-height:300px; margin:0; padding:6px; overflow:auto; list-style:none;}
.cal_daypop_list a{position:relative; display:block; padding:9px 10px 9px 26px; border-radius:8px; color:inherit !important; text-decoration:none;}
.cal_daypop_list a:before{content:""; position:absolute; left:10px; top:16px; width:8px; height:8px; border-radius:50%; background:var(--ev,#00539f);}   /* 기관 색 */
.cal_daypop_list .is-notice strong:before{content:"중요"; margin-right:5px; padding:0 5px; border-radius:8px; background:#fdecea; color:#b3261e; font-size:12px; font-weight:700;}
.cal_daypop_list a:hover,.cal_daypop_list a:focus-visible{background:#eef4fc; outline:0;}
.cal_daypop_list strong{display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; font-size:14px; font-weight:500; line-height:1.45; color:#111; word-break:keep-all;}
.cal_daypop_list a:hover strong{color:var(--mr-blue);}
.cal_daypop_list span{display:block; margin-top:2px; font-size:12px; color:#888;}
.cal_daypop_more{display:flex; align-items:center; justify-content:center; gap:6px; height:42px; border-top:1px solid #e8eef5; font-size:13px; font-weight:500; color:var(--mr-blue) !important; text-decoration:none;}
.cal_daypop_more:hover{background:#f5f9ff;}

/* ── 팝업레이어 (관리자 > 팝업레이어관리) ───────────────────────────
   2026 리뉴얼: 새 창(window.open) 대신 화면 안 레이어로 띄운다. newwin.inc.php 와 짝이다.
   넓은 화면에서는 관리자에 적어 둔 위치·가로폭을 그대로 쓰고, 좁은 화면에서는 가운데에 쌓는다. */
#hd_pop{position:relative; z-index:900; width:100%; max-width:1200px; height:0; margin:0 auto;}
#hd_pop h2{position:absolute; width:1px; height:1px; overflow:hidden; font-size:0; line-height:0;}

/* 머리말(135px)을 가리지 않도록 그만큼 내려서 띄운다 */
.hd_pops{position:absolute; top:calc(var(--nw-top,10px) + 140px); left:var(--nw-left,10px);
  width:var(--nw-width,400px); max-width:calc(100vw - 32px);
  border:1px solid var(--mr-line,#e5e5e5); border-radius:8px; background:#fff;
  box-shadow:0 12px 32px rgba(0,0,0,.18); overflow:hidden;}
.hd_pops_con{max-height:72vh; overflow:auto;}
.hd_pops_con :is(img,iframe,video){display:block; max-width:100%; height:auto;}
.hd_pops_con p{margin:0;}
#hd_pop .hd_pops_con a[style]{margin:0 auto;}
.hd_pops_footer{display:flex; justify-content:flex-end; gap:6px; padding:8px 10px; border-top:1px solid #eee; background:#f7f8fa;}
.hd_pops_footer button{height:32px; padding:0 12px; border:1px solid #d5dce6; border-radius:5px; background:#fff;
  font-family:inherit; font-size:13px; color:#4a5568; cursor:pointer;}
.hd_pops_footer button:hover{border-color:var(--mr-blue,#00539f); color:var(--mr-blue,#00539f);}
.hd_pops_footer .hd_pops_close{border-color:var(--mr-blue,#00539f); background:var(--mr-blue,#00539f); color:#fff; font-weight:600;}
.hd_pops_footer .hd_pops_close:hover{border-color:var(--mr-blue-d,#003e78); background:var(--mr-blue-d,#003e78); color:#fff;}
/* 접속기기 */
.hd_pops_mobile{display:none;}
@media (max-width:820px){
  /* 좁은 화면: 위치값을 무시하고 화면 가운데에 차례로 쌓는다 
  #hd_pop{max-width:none; height:auto; padding:0 16px;}
  .hd_pops{position:relative; top:auto; left:auto; width:100%; max-width:none; margin:0 auto 12px;}
  .hd_pops_con{max-height:60vh;}
*/
  .hd_pops_pc{display:none;}       /* 접속기기(관리자 팝업레이어 설정): 좁은 화면은 PC 전용을 숨기고 휴대폰 전용을 보임 — 위 주석에 같이 묶여 꺼져 있었음 */
  .hd_pops_mobile{display:block;}
  div#hd_pop{height:0; padding:0;}
  #hd_pop .hd_pops{position:absolute; top:84px; left:16px; right:16px; box-sizing:border-box; width:auto; max-width:var(--nw-width, 400px); margin:0 auto;}
  /* 관리자에서 넣은 고정 크기(640×640)를 풀고 이미지 원래 비율로 */
  #hd_pop .hd_pops_con a[style]{width:auto !important; max-width:100%; height:auto !important;}
  #hd_pop .hd_pops_con a[style] > img{position:static !important; display:block; width:auto !important; max-width:100%; height:auto !important; max-height:60vh; margin:0 auto;}
}

