@charset "utf-8";

/* ===== 메인페이지 투명 헤더 (기본 상태) ===== */
.page-main .header { position: absolute; top: 0; left: 0; width: 100%; background: transparent; }
.page-main .header-wrap { border-bottom: 1px solid #ffffff5e; }
.page-main .main-visual { position: relative; padding-top: 60px; background-image:url("/static/_assets/images/ydct-bg.png");background-size:cover; background-position-x: center;}

/* 로고: 화이트 */
.page-main .header-wrap .logo img { content: url("/static/_assets/images/logo-y-w.svg"); }

/* GNB·유틸·햄버거: 흰색 */
.page-main .header-wrap .gnb > li > a { color: #fff; }
.page-main .header-wrap .login-area a,
.page-main .header-wrap .myp-area .myp-btn span { color: #fff; }
.page-main .header-sites a { color: rgba(255,255,255,0.8); }
.page-main .site-mgnb .sm-btn .bar { background-color: #fff; }

/* ===== GNB 호버 시 (gnb-active가 header에 붙음) ===== */
.page-main .header.gnb-active .header-wrap { background: #fff; }
.page-main .header.gnb-active .header-wrap .logo img { content: url("/static/_assets/images/logo-y.png"); }
.page-main .header.gnb-active .header-wrap .gnb > li > a { color: #333; }
.page-main .header.gnb-active .header-wrap .login-area a,
.page-main .header.gnb-active .header-wrap .myp-area .myp-btn span { color: #333; }
.page-main .header.gnb-active .header-sites a { color: #333; }
.page-main .header.gnb-active .site-mgnb .sm-btn .bar { background-color: #363636; }

/* ===== YDCT 텍스트 (이미지, 나중에 교체) ===== */
.page-main .main-visual::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80%;
  height: 120px;
  background: url(/static/_assets/images/main-ydct.svg) center no-repeat;
  background-size: contain;
  pointer-events: none;
}

@media (min-width: 1280px) {
  .page-main .main-visual { padding-top: 108px; }
  .page-main .main-visual::after {
    left: auto;
    right: 0;
    transform: none;
    width: 500px;
    height: 200px;
    background-position: right bottom;
  }
}

/* ===== main-visual 레이아웃 ===== */
.main-visual .inner{padding:20px 15px 80px; display:flex; flex-direction:column; gap:20px;}

/* --- 퀵버튼 --- */
.main-quick{order:-1;}  /* 모바일: DOM은 먼저지만 명시적으로 */
.quick-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, 1fr); gap:8px;}
/* .quick-list li a{display:flex; flex-direction:column; align-items:center; justify-content:center; position:relative; padding:12px 8px; border:1px solid rgba(0,0,0,0.12); border-radius:12px; text-decoration:none; color:#333; text-align:center; transition:background-color 0.2s;} */
.quick-list li{display:flex;}
.quick-list li a{display:flex; flex-direction:column; align-items:center; justify-content:center; position:relative; padding:12px 8px; border-radius:50px; text-decoration:none; color:#333; text-align:center; background:#fff; transition:background-color 0.2s; width:100%; box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.25); height:50px;}
.quick-list li a:hover{background-color:rgba(255,255,255,0.5);}
.quick-arrow{position:absolute; top: 12px; right: 10px; font-size: 14px; color:#999; display:none;}
.quick-icon{display:none; width:36px; height:36px; margin-bottom:6px;}
.quick-icon img{width:100%; height:100%; object-fit:contain;}
.quick-text{font-size:13px; font-weight:600; line-height:1.3;}

/* --- 프로모션 두 스와이퍼 구조 --- */
.promo-poster-wrap{position:relative; z-index:1; width:100%; min-width:0; padding:0 30px;}
.promo-poster-wrap img{width:100%; height:auto; display:block;}
.mv-poster-swiper{overflow:hidden; width:100%; filter: drop-shadow(0px 0px 15px rgba(0, 0, 0, 0.2));}
.promo-info-wrap{position:relative; z-index:1; width:100%; min-width:0;}
.mv-info-swiper{overflow:hidden; width:100%;}
.promo-info{padding:16px 30px 0;}
.promo-category{display:inline-block; font-size:13px; color:#666; margin-bottom:4px;}
.promo-title{font-size:clamp(18px, 3vw, 36px); font-weight:bold; color:#111; margin:0 0 12px; line-height:1.4;}
.promo-detail{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px;}
.promo-detail li{font-size:14px; color:#444; line-height:1.5;}



.main-slide-wrap {position:relative; display:flex; flex-direction:column;}
.main-slide-wrap::before{content:''; position:absolute; top:30%; left:0; right:0; bottom:0; background:rgba(255,255,255,0.45); backdrop-filter:blur(10px); border-radius:20px; z-index:0; pointer-events:none; box-shadow: 0px 4px 26px rgba(0, 0, 0, 0.11);}
.main-slide-wrap .promo-controls{position:relative; z-index:1;}
/* .main-slide-wrap .main-custom-pagination{bottom:16px; left:0; width:100%; padding:0; font-size:14px; position:absolute; z-index:5; color:#000; text-align:center;} */
.promo-controls{display:flex; align-items:center; justify-content:center; gap:5px; padding:12px 0 16px;}
.main-slide-wrap .main-custom-pagination{position:relative; bottom:auto; left:auto; width:auto; padding:0; font-size:14px; z-index:5; color:#000;}
.main-slide-wrap .main-custom-pagination .swiper-pagination-bullets{display:inline-block;}
.main-slide-wrap .main-custom-pagination .swiper-pagination-bullet{width:12px;height:12px;background: transparent;border:2px solid #000; opacity: 1;margin: 0 7px; cursor: pointer;}
.main-slide-wrap .main-custom-pagination .swiper-pagination-bullet-active{background:#000 !important;}
.main-slide-wrap .main-custom-pagination .swiper-button-play-pause{line-height:14px;}
.main-slide-wrap .main-custom-pagination .swiper-button-play-pause i{font-size:24px;color:#000;line-height:14px;position:relative;top:4px;}
.main-slide-wrap { position: relative; }
.main-slide-wrap  .mobile-btn { display: block; position: absolute; top: 35%; width: 100%; z-index: 10; }
.main-slide-wrap  .mobile-prev-btn { position: absolute; left: 20px; transform: translateX(-100%); }
.main-slide-wrap  .mobile-next-btn { position: absolute; right: 20px; transform: translateX(100%); }
/* .main-slide-wrap .main-btn button{position:absolute;top:50%;transform:translateY(-100%);z-index:9;color:#b3b3b3;background:#fff;width:45px;height:45px;border-radius:50%;text-align:center;line-height:39px;font-size: 20px;} */
/* .main-slide-wrap .main-btn button{position:absolute;top:50%;transform:translateY(-50%);z-index:9;color:#b3b3b3;background:#fff;width:45px;height:45px;border-radius:50%;text-align:center;line-height:39px;font-size:20px; box-shadow:0 2px 8px rgba(0,0,0,0.1);}
.main-slide-wrap .main-btn button.swiper-button-disabled{opacity:0.5;}
.main-slide-wrap .main-prev-btn i{margin-left: -3px;}
.main-slide-wrap .main-next-btn i{margin-right: -3px;}
.main-slide-wrap .main-btn .main-prev-btn{left:10px;}
.main-slide-wrap .main-btn .main-next-btn{right:10px;} */
.main-slide-wrap .main-btn{display:flex; gap:3px;}
.main-slide-wrap .main-btn button{position:relative; top:auto; left:auto; right:auto; transform:none; z-index:5; color:#000; background:none; width:auto; height:auto; border-radius:0; text-align:center; line-height:1; font-size:20px; box-shadow:none;}
.main-slide-wrap .main-btn button.swiper-button-disabled{opacity:0.5;}
.main-slide-wrap .main-btn button i{font-weight: bold;}

.title_area{position: relative;width: 100%;text-align:center;}
.title_area h2{font-weight: bold; font-size: 20px;}
.title_area:hover:after{animation: float 1250ms ease-in-out infinite;} */


@keyframes float {
    0% {
      transform: translateY(0);
    }
    50% {
      transform: translateY(-10px);
    }
    100% {
      transform: translateY(0);
    }
  }

  /* 애니메이션 키프레임 정의 */
@keyframes dot_scale {
    0%, 100% {
        /* 시작과 끝: 원래 위치 */
        transform: translateY(0);
    }
    50% {
        /* 중간: 위로 10px 이동 */
        transform: translateY(-10px);
    }
}

/* 점들을 감싸는 컨테이너 */
.deco {
    display: block;
    position: absolute;
    top: 0;
    left: 7px;
    width: 53px;
    height: 100%;
}

/* 모든 점의 공통 스타일 */
.deco .dot {
    display: block;
    position: absolute;
    border-radius: 100%;
    width: 6px;
    height: 6px;
    background-color: #9da7ff;
    bottom: 29px;
    left: 21px;
    animation-delay: 250ms;
    animation: dot_scale 1250ms infinite ease-in-out;
}

.movie-more-link{display:inline-block;background-color:#fff;color:#B3B3B3;border: 1px solid #B3B3B3; width:28px;height:28px;border-radius:50%;text-align:center;line-height:29px;position: relative; top: -1px;transition: background-color 300ms ease-in-out;margin-left: 20px;}
.movie-more-link:hover{background-color:var(--color-primary);color:#fff;border: 1px solid var(--color-primary);}

.main-lecture .title_area:after{width: 23px; height: 23px; background: url(/static/_assets/images/slate_icon.svg) no-repeat; top: 2px; left: 20px; background-size: contain;}
.main-weekly .title_area:after{width: 23px; height: 21px; background: url(/static/_assets/images/calendar_icon.svg) no-repeat; top: 3px; left: 22px; background-size: contain;}
.main-notice .title_area:after{width: 23px; height: 23px; background: url(/static/_assets/images/announcement_icon.svg) no-repeat; top: 5px; left: 20px; background-size: contain;}
.main-rental .title_area:after{width: 23px; height: 23px; background: url(/static/_assets/images/camera_icon.svg) no-repeat; top: 3px; left: 20px; background-size: contain;}

.main-movie .tab-list{display:inline-block;box-sizing:border-box;}
.main-movie .tab-list:after{width: 33px; height: 27px; background: url(/static/_assets/images/film-icon.svg) no-repeat; top: 10px; left: 10px;}
.main-movie .tab-list li{display:inline-block;margin-right:25px;font-size:20px; color: #B8BBC0; font-weight: bold;}
.main-movie .tab-list li:last-child{margin-right: 0px;}
.main-movie .tab-list li:first-child{position:relative;}
.main-movie .tab-list li:first-child:after{content:"";position:absolute;top:9px;right:-15px;width: 1px; height: 14px; display: block; background-color:#AEAEAE;}
.main-movie .tab-list li.on{color: #000; text-decoration: underline;}
.main-movie .title_area{margin-bottom:20px;}

.main-movie{position: relative;}
/* .main-movie:after{display: block; position: absolute; top: -40px; left: 0; bottom: auto; width: 100%; height: 520px; z-index: -1; background-image: url(/static/_assets/images/movie-bg.png); background-repeat: no-repeat; background-position: center; background-size: cover; content: '';} */
.main-movie .movie-swiper{box-sizing:border-box;padding:15px;}
.movie-slide-wrap{position:relative;}
.main-movie .movie-slide{width: auto;flex-shrink:0;}
.main-movie .movie-item{width:100%;max-width:300px;margin:0 auto;}
.main-movie .movie-item > a{display:block;}
.main-movie .movie-item .movie-poster-p{position:relative;overflow:hidden;width:100%;padding-top:113%;background-color:#eee;border-radius:15px;}
.main-movie .movie-item .movie-poster-p img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;}
.poster-overlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  background-color: rgba(18, 18, 120, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 40px;
  color: white;
  font-weight: bold;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.movie-poster-p:hover .poster-overlay {
  opacity: 1;
}

.main-movie .movie-item .movie-title>p{margin-bottom:var(--spacing-sm);line-height:20px;white-space:nowrap;overflow: hidden;text-overflow: ellipsis;}
.main-movie .movie-item .movie-title .age-icon{display:inline-block;vertical-align:middle;position:relative;top:-3px;}
.main-movie .movie-item .movie-title .age-icon img{width:20px;}
.main-movie .movie-item .movie-title .title-text{line-height:23px;font-weight:600;font-size:1rem;}
.main-movie .movie-item .movie-date>p{margin-bottom:0;}
.main-movie .movie-item .movie-date .title-text{font-size:0.8rem;color:var(--color-main-subtext);}

.main-movie .movie-btn button{position:absolute;top:50%;transform:translateY(-100%);z-index:9;color:#b3b3b3;background:#fff;box-shadow:0 0 15px #b1c7d7;width:45px;height:45px;border-radius:50%;text-align:center;line-height:39px;font-size: 20px; display:none;}
.main-movie .movie-btn button.swiper-button-disabled{opacity:0.5;}
.main-movie .movie-prev-btn i{margin-left: -3px;}
.main-movie .movie-next-btn i{margin-right: -3px;}
.main-movie .movie-btn .movie-prev-btn{left:10px;}
.main-movie .movie-btn .movie-next-btn{right:10px;}

.inn-shadow{box-shadow:var(--shadow-custom1);box-sizing:border-box;padding: var(--spacing-md);border-radius:10px;}
.inn-shadow .movie-poster{position:relative;}
.cult-cate{position:absolute;left:5px;top:5px;z-index:3;margin-bottom:0;}
.cult-cate span{color:#fff;font-size:0.8rem;display:inline-block;line-height:24px;min-width:54px;text-align:center;border-radius:12px;}
.cult-cate span.cat-movie{background-color:#0A975F}
.cult-cate span.cat-perf{background-color:#9E39BF}

.schedule-container-wrap{display: flex; gap: 10px; flex-direction: column; padding: 0 15px;}
.schedule-container { background-color: rgba(255, 255, 255, 0.8); border-radius: 16px; box-shadow: 0 0 70px #D2E1F2; width: 100%; padding: 20px 10px 20px; box-sizing: border-box; display: flex;}
.schedule-date-wrap { display: flex; justify-content: space-between; align-items: center;}
.schedule-date{width: 100%;}
.current-month { font-size: 18px; font-weight: bold; color: #212529; margin: 0; float: left;}
.current-more{color:#4a5780; font-size: 14px; float: right;}
.date-selector { list-style: none; display: flex; margin: 0; padding-right: 10px; justify-content: space-between; flex-direction: column; position: relative; width: 97px;}
.date-selector:after { width: 1px; height: 100%; right: 0; left: auto; bottom: 0px; content: ''; background-color: #E2E2E2; position: absolute;}
.date-selector li{display: contents;}
.date-selector li button {margin: 20px 0; padding: 0 12px; text-align: center; cursor: pointer; border-radius: 30px; transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; display: flex; align-items: center;justify-content: center;}
.date-selector li button:hover { background-color: #e6e6e6; }
.date-selector li button.active { background-color: var(--color-primary); color: #fff; font-weight: 500; box-shadow: 0 4px 20px #CFE2E9;}
.date-selector li .day-number { display: block; font-size: 24px; padding-right: 3px;}
.date-selector li .day-of-week { display: block; font-size: 13px; color: rgba(255, 255, 255, 0.8); font-weight: 700;}
.date-selector li button:not(.active) .day-of-week { color: #868e96; }
.date-selector li:first-child .day-number { color: #fa5252; } 
.date-selector li:last-child .day-number { color: #4c6ef5; }
.date-selector li button.active .day-number { color: #fff; }
.showtime-content{min-height: 127px; width: 100%; min-width: 0;}
.showtime-list { display: none; }
.showtime-list.active { display: flex; flex-wrap: wrap; gap: 10px; padding-left: 10px;}
.showtime-list a{width: 100%; min-width: 0;}
.movie-card { border: 1px solid #e9ecef; border-radius: 5px; padding: 10px 10px; min-width: 0; width: 100%;}
.movie-card>p { margin-bottom: 0;}
.age-icon { display: inline-block; vertical-align: middle; position: relative; top: 2px; }
.age-icon img{width: 20px;}
.movie-card .age-icon{float: left; padding-right: 4px;top:6px;}
.movie-card p { margin: 4px 0; font-size: 14px; color: #495057; }
.movie-card p:first-child{margin-bottom: 7px;}
.movie-card .title { font-size: 16px; font-weight: 700; color: #000; display: block; white-space: nowrap;  overflow: hidden; text-overflow: ellipsis;}
.movie-card .time{font-weight: 600;}
.movie-card .seats strong { color: #4c6ef5; font-weight: 700; }
.rating {display: inline-block; width: 24px; height: 24px; line-height: 24px; text-align: center; border-radius: 4px; color: #fff; font-weight: 700; font-size: 12px; }
.rating.age-all{background-image: url(/static/_assets/images/age-all.svg);}
.rating.age-12{background-image: url(/static/_assets/images/age-12.svg);}
.rating.age-15{background-image: url(/static/_assets/images/age-15.svg);}
.rating.age-19{background-image: url(/static/_assets/images/age-19.svg);}

.main-time .title_area{margin-bottom:20px;}
.main-time .inner{padding-top:60px;}


/* ===== 열린마당 ===== */
.main-board .inner{padding-top:90px; padding-bottom:40px;}
.main-board .title_area{margin-bottom:24px;}
.main-board .title_area h2:after{content: ''; display: block; width: 241px; height: 64px; background: url(/static/_assets/images/main-news.svg) no-repeat; position: absolute; background-size: contain; z-index: -1; top:0; left:50%; transform: translate(-50%, -80%);}

/* 모바일 탭 버튼 — 기존 전부 교체 */
.board-tab{display:flex; gap:0; margin-bottom:20px; padding:0 15px;justify-content:center;}
.board-tab-btn{padding:10px 0; font-size:18px; font-weight:500; color:#999; background:none; border:none; cursor:pointer; transition:color 0.2s; white-space:nowrap; position:relative; margin-right:20px;}
.board-tab-btn:last-child{margin-right:0;}
.board-tab-btn + .board-tab-btn::before{content:'•'; position:absolute; left:-12px; top:50%; transform:translateY(-54%); color:#ccc; font-size:18px; pointer-events:none;}
.board-tab-btn.active{color:var(--color-primary); font-weight:700;}

/* 패널 공통 */
.board-panels{padding:0 15px;}
.board-panel{display:none;box-shadow:0 4px 25px rgba(0,0,0,0.15);box-sizing:border-box;padding:var(--spacing-md) 0 0;border-radius:var(--spacing-md);}
.board-panel.active{display:block;}

/* 패널 헤더 */
.board-head{display:flex; justify-content:space-between; align-items:center;box-sizing:border-box;padding:0 var(--spacing-md);}
.board-head h3{font-size:18px; font-weight:700; color:#333; margin:0;}
.board-more{display:flex; align-items:center; justify-content:center; color:#999; font-size:20px; text-decoration:none; transition:color 0.2s;}
.board-more:hover{color:var(--color-primary);}

/* 게시글 리스트 */
.board-list{list-style:none; margin:0; padding:0;}
.board-list li{box-sizing:border-box;padding:var(--spacing-md);}
.board-list li:nth-child(2){background-color:#FAFAFA;}
.board-list li a{display:block; color:#333; text-decoration:none; font-size:15px; line-height:1.5;}
.board-title{display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; text-overflow:ellipsis; min-height:calc(1.5em * 2);}
.board-title:hover{text-decoration:underline;}
.board-list .date{display:block; font-size:13px; color:#999; margin-top:6px;}

.main-lecture{position: relative;}
.main-lecture .title_area{width: auto;}
.main-lecture:after{display: block; position: absolute; top: 220px; left: 0; bottom: auto; width: 100%; height: 520px; z-index: -1; background-image: url(/static/_assets/images/edu-bg.png); background-repeat: no-repeat; background-position: center; background-size: cover; content: '';}
.main-lecture .inner {display: flex; flex-direction: column; align-items: center; gap: 14px; padding-top: 60px;}
.main-lecture .tab-list ul { display: inline-flex; justify-content: space-between; align-items: center; padding: 5px; background-color: #eff4f8; border-radius: 90px; list-style: none; margin: 0; gap: 10px;}
.main-lecture .tab-list a { display: block; padding: 5px 10px; text-decoration: none; font-size: 15px; color: #333;border-radius: 90px;white-space: nowrap; transition: background-color 0.3s ease, color 0.3s ease;}
.main-lecture .tab-list li.active a { background-color: var(--color-primary); color: #ffffff; font-weight: bold;}
.main-lecture .tab-list li:not(.active) a:hover { background-color:#d7e0e9;}

.main-lecture .lec-btn button{position:absolute;top:50%;transform:translateY(-100%);z-index:9;color:#b3b3b3;background:#fff;box-shadow:0 0 15px #b1c7d7;width:45px;height:45px;border-radius:50%;text-align:center;line-height:39px;font-size: 20px;}
.main-lecture .lec-btn button.swiper-button-disabled{opacity:0.5;}
.main-lecture .lec-prev-btn i{margin-left: -3px;}
.main-lecture .lec-next-btn i{margin-right: -3px;}
.main-lecture .lec-btn .lec-prev-btn{left:10px;}
.main-lecture .lec-btn .lec-next-btn{right: 10px;}

.lec-detail li img{width: 19px; height: 19px;}
/* Swiper Wrap & Container */
.slide_area{width: 100%;}
.lec-slide-wrap { position: relative; max-width: 1460px; width: 100%; margin: 0 auto; }
.lec-swiper{padding: 10px 15px 10px;}
.lec-swiper .swiper-slide { width: 80%;}

/* Navigation Buttons */
.lec-btn button { position: absolute; top: 40%; transform: translateY(-50%); z-index: 10; width: 44px; height: 44px; border-radius: 50%; background-color: #fff; border: 1px solid #eee; box-shadow: 0 2px 8px rgba(0,0,0,0.1); color: #333; font-size: 20px; cursor: pointer; transition: all 0.2s ease; }
.lec-btn button:hover { background-color: #f5f5f5; box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
.lec-prev-btn { left: 0; }
.lec-next-btn { right: 0; }
.lec-btn button.swiper-button-disabled { opacity: 0.3; }

/* Slide Card - Base */
.lec-slide {background-color: #ffffff; border: 1px solid #E2E2E2; border-radius: 16px; box-shadow: 0 4px 10px rgba(189, 197, 217, 0.3); overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.lec-slide a { text-decoration: none; color: inherit; display: block; }
.lec-thumb { position: relative; aspect-ratio: 8 / 10; }
.lec-thumb::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; transition: background-color 0.3s ease; }
.lec-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lec-slide:focus-within { outline: 2px dashed #0e0852; outline-offset: 2px; /* (선택) 아웃라인을 요소 바깥으로 살짝 띄워줍니다. */ }

/* Slide Card - Poster Overlay & Hover Icon */
.lec-slide:hover .poster-overlay { opacity: 1; transform: translate(-50%, -50%); top:50%; left: 50%;}

/* Slide Card - Labels */
.lec-labels { position: absolute; top: 0; left: 20px; display: flex; gap: 8px; z-index: 3;}
.lec-labels span { padding: 4px 17px; border-radius: 0 0 8px 8px; color: #ffffff; font-size: 16px; font-weight: 500; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);}
.lec-labels .label-edu { background-color: #6775FF; }
.lec-labels .label-recruit { background-color: #E6497B; }
.lec-labels .label-progress { background-color: #A21D2F; }
.lec-labels .label-exp { background-color: #48C81A; }
.lec-labels .label-wait { background-color: #00A5B2; }
.lec-labels .label-upcoming { background-color: #8E44AD; }
.lec-labels .label-end { background-color: #707070; }


/* Slide Card - Text Area */
.lec-txt { padding: 24px 20px; display: flex; flex-direction: column; gap: 10px; }
.lec-txt h3 { font-size: 18px; font-weight: bold; color: #222222; margin: 0 0 4px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lec-date { display: flex; align-items: center; font-size: 14px; color: #333; }
.lec-date p { margin: 0; color: #333; width: 70px; flex-shrink: 0; font-weight: bold; word-break: auto-phrase;}
.lec-date span {word-break: auto-phrase; line-height: normal;}
.lec-detail ul { display: flex; align-items: center; gap: 16px; margin: 0; padding: 0; list-style: none; }
.lec-detail li { display: flex; align-items: center; font-size: 14px; color: #666666; white-space: nowrap;}
.lec-detail li img { width: 17px; height: auto; margin-right: 6px; }
.lec-detail li:last-child img{width: 20px;}


/* 기본 레이아웃 */
.main-weekly .inner {padding: 50px 0 50px;}
.main-weekly .title_area { margin-bottom: 24px; }
.main-weekly .more-link { font-size: 24px; color: #333; }

/* 달력 컨테이너 */
.calendar-container { background-color: #E7F4F9; border-radius: 20px 200px 200px 200px; padding:40px 20px 25px; }
.calendar-header { display: grid; grid-template-columns: 1fr auto; align-items: center; margin-bottom: 27px; }
.calendar-header h3 { font-size: 26px; font-weight: bold; padding-left: 30px;}
.calendar-legend{position: relative; right: 120px;}

/* 범례 */
.calendar-legend ul { display: flex; list-style: none; margin: 0; padding: 0; gap: 36px; }
.calendar-legend li { font-size: 14px; color: #000; display: flex; align-items: center; gap: 6px; font-weight: 500;}
.calendar-legend li::before { content: ''; display: inline-block; width: 12px; height: 12px; border-radius: 50%; }
.calendar-legend .legend-event::before { background-color: #FFA538; }
.calendar-legend .legend-rental::before { background-color: #00D358; }
.calendar-legend .legend-edu::before { background-color: #CA79FF; }

/* 달력 테이블 */
.weekly-calendar { width: 100%; border-spacing: 20px; table-layout: fixed; border-collapse: separate; background-color: rgba(255, 255, 255, 0.8); border-radius: 20px; box-shadow: 16px 26px 80px rgba(32, 65, 89, 0.1);}
.weekly-calendar thead tr{position: relative;}
.weekly-calendar thead tr:after{display: block; width: 100%; height: 1px; background-color:#E2E2E2; position: absolute; content: ''; left: 0; bottom: -20px;}
.col-date{width: calc(100% / 7);}
.weekly-calendar th {padding: 0px 18px;  text-align: left; font-weight: 500; color: #717A80; white-space: nowrap; border-radius: 40px;}
.weekly-calendar th .day-num { font-size: 34px; font-weight: 600; margin-bottom: 4px; color: #000;}
.weekly-calendar .is-sun .day-num { color: #fa5252; }
.weekly-calendar .is-sat .day-num { color: #4c6ef5; }
.weekly-calendar th.is-today {color: rgba(255, 255, 255, 0.8); font-weight: 500;}
.weekly-calendar th.is-today p{margin: 0; display: inline-block; position: relative; z-index: 1;}
.weekly-calendar th.is-today p:after{background-color: #00A5B2; content: ''; width: 100%; height: 100%; display: block; position: absolute; top: 50%; left: 50%; z-index: -1; transform: translate(-50%, -50%); border-radius: 50px; padding: 0px 20px; box-shadow: 0 4px 20px #CFE2E9;}
.weekly-calendar th.is-today .day-num { color: #fff; }
.weekly-calendar td.is-today li a{text-decoration: underline;  text-decoration-thickness: 7px; text-underline-offset: -3px;}
.weekly-calendar td.is-today li .legend-event{text-decoration-color: rgba(255, 181, 92, 0.2);}
.weekly-calendar td.is-today li .legend-rental{text-decoration-color: rgba(0, 211, 88, 0.2);}
.weekly-calendar td.is-today li .legend-edu{text-decoration-color: rgba(202, 121, 255, 0.2);}

.weekly-calendar td {min-height: 162px; height: 162px; border-radius: 12px; vertical-align: top; position: relative;}
.weekly-calendar td::after{position: absolute;display: block; width: 1px; height: 100%; background-color:#E2E2E2; position: absolute; content: ''; right: -10px; bottom: 0;}
.weekly-calendar td:last-child::after{display: none;}

/* 이벤트 목록 */
.event-list { list-style: none; margin: 0; padding: 0; }
.event-list li { margin-bottom: 8px; }

.event-item {display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; padding: 8px 8px 0px 20px; border-radius: 8px; font-size: 16px; font-weight: bold; color: #333; text-decoration: none; border-left: 3px solid transparent; position: relative; line-height: normal;}
.event-item:after {content: ''; display: inline-block; width: 12px; height: 12px; border-radius: 50%; position: absolute; left: 0; top: 14px;}
.event-item.legend-event:after { background-color: #FFA538; }
.event-item.legend-rental:after { background-color: #00D358; }
.event-item.legend-edu:after { background-color: #CA79FF; }
.event-list li:nth-child(n + 4) { display: none; }
.weekly-calendar td:not(.is-today) .event-item:hover{text-decoration: underline;  text-decoration-thickness:7px; text-underline-offset:-3px;}
.weekly-calendar td:not(.is-today) .event-item.legend-event:hover{text-decoration-color: rgba(255, 181, 92, 0.2);}
.weekly-calendar td:not(.is-today) .event-item.legend-rental:hover{text-decoration-color: rgba(0, 211, 88, 0.2);}
.weekly-calendar td:not(.is-today) .event-item.legend-edu:hover{text-decoration-color: rgba(202, 121, 255, 0.2);}


.main-info{position: relative;}
.main-info:after{display: block; position: absolute; top: 0; left: 0; bottom: auto; width: 100%; height: 100%; z-index: -1; background-image: url(/static/_assets/images/main-bt-bg.png); background-repeat: no-repeat; background-position: bottom right; background-size: auto; content: '';}
.main-info .inner{display: flex; gap: 70px; padding-top: 50px; padding-bottom: 100px; flex-direction: column;}
.main-info .inner .main-notice{flex: 1;}
.main-info .inner .main-notice .notice_list{margin: 0 15px;}
.main-info .inner .main-rental{flex: 1; position: relative;}
.main-rental:before{display: block; position: absolute; top: -30px; right: 20px;  bottom: auto; width: 64px; height: 60px; background-image: url(/static/_assets/images/bottom-bg-dot.png); background-repeat: no-repeat; background-position: center; background-size: contain; content: '';}


.main-notice .title_area{margin-bottom: 30px;}
.notice_list ul{list-style:none;padding:0;margin:0;}
.notice_list li{margin-bottom:24px;display:flex;}
.notice_list li a{position:relative;display:inline-block;padding:12px 25px;color:#333;margin:0;box-shadow: 0px 0px 20px rgba(32, 54, 121, 0.1);border-radius: 15px;font-size: 17px;width: 100%;background-color: #fff;}
.notice_list li a p{display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis;}
.notice_list li a .date{display:block;margin-top:10px;font-size:13px;color:#7D7D7D;}
.notice_list li a::after{content:'';position:absolute;top:60%;transform: translateY(-50%); width:26px;height:27px;background-size:contain;background-repeat:no-repeat;display: none;}
.notice_list li:nth-child(even) a::after{background-image:url('/static/_assets/images/tail-l.png');left:-26px;}
.notice_list li:nth-child(odd) a::after{background-image:url('/static/_assets/images/tail-r.png');right:-26px;}
.notice_list li.empty-li p{position:relative;display:inline-block;padding:var(--spacing-xl);color:#333;margin:0;box-shadow: 0px 0px 20px rgba(32, 54, 121, 0.1);border-radius: 15px;font-size: 17px;width: 100%;background-color: #fff;line-height:var(--spacing-xl)}

.rental_list{margin-top: 30px;}
.rental_list ul{display: grid; grid-template-columns: 1fr 1fr 1fr; margin: 0; padding: 0; gap: 20px 10px;justify-items: center;}
.rental_list ul li a{font-weight: 700; font-size: 14px; display: inline-block; padding: 0 10px; text-align: center;}
.rental_list ul li a>div{width: 70px; height: 75px; position: relative; margin-bottom: 35px;}
.rental_list ul li a>div:after{display: block; z-index: 1; position: absolute; content: ''; box-sizing: border-box; pointer-events: none;background-image: url(/static/_assets/images/shadow.png);bottom: -30px; left: 50%; transform: translateX(-50%); width: 75px; height: 30px;background-size: cover; transition:transform 500ms cubic-bezier(0.12, 0.8, 0.47, 0.8);}
.rental_list ul li a>div img{width: 100%; height: 100%; object-fit: contain; transition:transform 500ms cubic-bezier(0.12, 0.8, 0.47, 0.8);}
.rental_list ul li a:hover>div img{transform: translateY(-10px);}
.rental_list ul li a:hover>div:after {transform: translateX(-50%) scale(0.8); }

/* ===== SNS + 매거진 섹션 (main-info 내부) ===== */
.main-sns{flex:1;}
.main-magazine{flex:0 0 auto;}


.main-sns .title_area{display:flex; align-items:center; gap:12px; margin-bottom:24px; flex-direction: column;}
.sns-links{display:flex; gap:8px;}
.sns-link{display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; color:#fff; font-size:16px; text-decoration:none; transition:opacity 0.2s;}
.sns-link:hover{opacity:0.8;}
.sns-blog{background:#03C75A;}
.sns-youtube{background:#FF0000;}
.sns-insta{background:linear-gradient(45deg,#FEC053,#F2203E,#B729A8,#5342D6);}

.sns-swiper .swiper-slide{padding:20px;}
.sns-card{box-shadow:0 0 15px rgba(0, 0, 0, 0.15); border-radius:10px; overflow:hidden; background:#fff;padding:0 0 var(--spacing-lg);}
.sns-card-header{display:flex; align-items:center; gap:8px; padding:12px 14px;}
.sns-icon{display:flex; align-items:center; justify-content:center; width:46px; height:46px; border-radius:50%; color:#fff; font-size:20px; flex-shrink:0; background:#F6F6F6;}
.sns-card-name{font-size:14px; font-weight:600; color:#333; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.sns-card-thumb{width:100%; aspect-ratio:14/10; overflow:hidden;box-sizing:border-box;padding:4px var(--spacing-md);}
.sns-card-thumb a{display: block; width: 100%; height: 100%; border-radius: 15px; overflow: hidden;}
.sns-card-thumb img{width:100%; height:100%; object-fit:cover;}
.sns-card-title{padding:12px 14px 4px; font-size:14px; color:#333; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; text-overflow:ellipsis; line-height:1.5; margin:0;}
.sns-card-date{display:block; padding:4px 14px 14px; font-size:13px; color:#7D7D7D;}

.main-magazine .title_area{margin-bottom:24px;}
@font-face {
  font-family: 'Yeongdeok Blueroad';
  font-style: normal;
  font-weight: 400;
  src: url('./font/Yeongdeok Blueroad.ttf') format('truetype');
}
.magazine-title{font-family: 'Yeongdeok Blueroad'; color:#006176;}
.magazine-thumb{position:relative; padding: var(--spacing-xl);}
.magazine-thumb a{display:block; border-radius:10px; overflow:hidden; box-shadow: 0 4px 25px rgba(0, 0, 0, 0.15);}
.magazine-thumb:before{display: block; position: absolute; bottom: -10px; left: 20px;  z-index:9; width: 182px; height: 61px; background-image: url(/static/_assets/images/bg-zigzag.svg); background-repeat: no-repeat; background-position: center; background-size: cover; content: '';}
.magazine-thumb img{width:100%; display:block; aspect-ratio:1/1; object-fit:cover;}


/* ===== 로그인 ===== */
	.login{    
	margin: 0;
    display: flex;
    justify-content: center;
    min-height: 80vh;
	align-items: center;
  }

  .login .screen{
    width:100%;
    max-width:440px;
    display:flex;
    flex-direction:column;
  }
 
  .login-wrap{
    flex:1;
    display:flex;
    flex-direction:column;
    padding:40px 28px 24px;
	justify-content: center;
  }
 
  .login-wrap h1{
    font-size:23px;
    font-weight:700;
    text-align:center;
    line-height:1.5;
    margin:0 0 14px;
  }
  .login-wrap h1 img{ margin:0 auto; }

   .login-wrap p.desc{
    text-align:center;
    margin:0 0 28px;
    font-size:14px;
    line-height:1.5;
  }
 
  .social-list{
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .social-btn{
    width:100%;
    display:flex;
    align-items:center;
    padding:0 18px;
    height:54px;
    border-radius:14px;
    border:1px solid #ece4e1;
    background:#fff;
    font-size:15px;
    font-weight:700;
    color:#2b2320;
    cursor:pointer;
    position:relative;
	box-sizing: border-box;
  }
  .social-btn .icon{
    width:22px;
    height:22px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
  }
  .social-btn .txt{
    flex:1;
    text-align:center;
    margin-right:22px;
  }
  .social-btn.kakao{ background:#FEE500; border-color:#FEE500; }
  .social-btn.naver{ background:#03C75A; border-color:#03C75A; color:#fff; }
 
  .divider{
    display:flex;
    align-items:center;
    gap:12px;
    margin:22px 0;
    color:#c7bcb7;
    font-size:12px;
  }
  .divider::before,.divider::after{
    content:"";
    flex:1;
    height:1px;
    background:#ece4e1;
  }
 
  .bottom-link{
    text-align:center;
    padding-top:32px;
    font-size:13.5px;
  }
  .bottom-link a{
    font-weight:700;
    text-decoration:none;
    margin-left:4px;
	text-decoration:underline;
	text-underline-offset: .2rem;
  }

 /*회원가입*/

  .join-hero{
    padding:14px 24px 22px;
	text-align:center;
  }
  .join-hero h1{
    font-size:22px;
    line-height:1.45;
    margin:0 0 6px;
    font-weight:700;
  }
  .join-hero p{
    margin:0;
    font-size:13.5px;
    line-height:1.6;
  }
 
  .agree-wrap{
    padding:0 24px 24px;
  }
 
  .agree-all{
    display:flex;
    align-items:center;
    gap:12px;
    border-radius:14px;
    padding:16px 18px;
    margin-bottom:14px;
	background: #f5f5f5;
  }
  .agree-all .label{
    font-size:15px;
    font-weight:700;
  }
  .agree-all .sub{
    display:block;
    font-size:12.5px;
    font-weight:400;
    margin-top:2px;
	color:#999;
  }
 
  .agree-wrap .list{
    overflow:hidden;
  }
  .agree-wrap .row{
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px 16px;
	margin:0;
  }
  .agree-wrap .row:last-child{ border-bottom:none; }
  .agree-wrap .row .label-wrap{
    flex:1;
    display:flex;
    align-items:baseline;
    gap:6px;
    cursor:pointer;
  }
  .agree-wrap .row .label{
    font-size:14.5px;
  }																							  
  .agree-wrap .req{ font-size:12px; font-weight:700; }
  .agree-wrap .opt{	color: #979797; font-size:12px; font-weight:700; }
 
  .chev-btn{
    padding:6px;
    margin:-6px;
    cursor:pointer;
    color:#b3b3b3;
    display:flex;
    align-items:center;
    justify-content:center;
	font-size: 14px;
  }
  .chev-btn svg{ width:16px; height:16px; transition:transform .2s ease; }
  .chev-btn.rot svg{ transform:rotate(90deg); }
 
  /* checkbox */
  .agree-wrap input[type="checkbox"]{
    -webkit-appearance:none;
    appearance:none;
    width:18px;
    height:18px;
    min-width:18px;
    border-radius:4px;
    border:1.5px solid #dcdcdc;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    position:relative;
    background:#fff;
    transition:background .15s ease, border-color .15s ease;
  }
  .agree-wrap input[type="checkbox"]:checked{
	background:#1d8bff;
	border-color:#1d8bff;
  }
  .agree-wrap input[type="checkbox"]:checked::after{
    content:"";
    position:absolute;
    left: 5px;
    top: 1px;
    width: 4px; height:9px;
    border:solid #fff;
    border-width:0 2px 2px 0;
    transform:rotate(45deg);
  }
  .agree-wrap input[type="checkbox"]:disabled{ opacity:.5; cursor:not-allowed; }
 
  .agree-wrap .sub-list{
    max-height:0;
    overflow:hidden;
    transition:max-height .25s ease;
  }
  .agree-wrap .sub-list.open{ max-height:400px; }
  .agree-wrap .sub-row{
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 16px 12px 34px;
  }
  .agree-wrap .sub-row .label{ font-size:13.5px; }
  .agree-wrap .sub-row input[type="checkbox"]{ width:18px; height:18px; min-width:18px; }
  .agree-wrap .sub-row .chev-btn svg{ width:14px; height:14px; }
 
  .marketing-sub{
    display:flex;
    gap:18px;
    padding:4px 16px 14px 34px;
  }
  .marketing-sub label{
    display:flex;
    align-items:center;
    gap:6px;
    font-size:13px;
    cursor:pointer;
	    white-space: nowrap;
  }
  .marketing-sub input[type="checkbox"]{ width:18px; height:18px; min-width:18px; }
 
  .submit-btn-wrap{
    padding:14px 24px 28px;
  }
  .submit-btn-wrap .cta{
    width:100%;
    padding:16px 0;
    border:none;
    border-radius:12px;
    background:#dadbdf;
    color:#909090;
    font-size:16px;
    font-weight:700;
    cursor:default;
	text-align: center;
    transition:background .2s ease, color .2s ease;
  }
  .submit-btn-wrap .cta.enabled{
    color:#fff;
    cursor:pointer;
	background: #1d8bff;
  }
  .submit-btn-wrap .cta.enabled:active{ background:#1d8bff; }

.info-section{
    margin-top:28px;
  }
  .section-title{
    font-size:17px;
    font-weight:700;
    margin:0 0 4px;
  }
  .section-sub{
    margin:0 0 18px;
    font-size:12.5px;
    color:var(--ink-soft);
  }
  .field{
    margin-bottom:18px;
  }
  .field-label{
    display:block;
    font-size:13.5px;
    font-weight:700;
    color:var(--ink);
    margin-bottom:8px;
  }
  .field-label .req-mark{ color:#1d8bff; margin-left:2px; }
  .field-label .opt-mark{ color:#a89d97; font-weight:400; margin-left:4px; font-size:12px; }
 
  input[type="text"].text-input{
    width:100%;
    padding:13px 14px;
    border:1.5px solid #f2f2f2;
    border-radius:5px;
    font-size:14.5px;
    color:var(--ink);
    background:#fff;
    outline:none;
    transition:border-color .15s ease;
  }
  input[type="text"].text-input::placeholder{ color:#bcb1ac; }
  input[type="text"].text-input:focus{ border-color:#1d8bff; }
  input[type="text"].text-input:read-only{ background:#f2f2f2; color:var(--ink-soft); }
  input[type="text"].text-input.is-valid{ border-color:#7fae8a; }
  input[type="text"].text-input.is-error{ border-color:#c1503f; }
 
  .field-error{
    display:flex;
    align-items:center;
    gap:5px;
    margin:7px 2px 0;
    font-size:12px;
    color:#c1503f;
  }
  .field-error.hidden{ display:none; }
  .field-error .dot{
    width:4px; height:4px; border-radius:50%;
    background:#c1503f; flex-shrink:0;
  }
 
  .field-hint{
    margin:7px 2px 0;
    font-size:12px;
    color:#666;
    display:flex;
    align-items:center;
    gap:5px;
  }
  .field-hint.hidden{ display:none; }
  .field-hint.success{ color:#4a8a5c; }
 
  /* 칩 라디오 (성별 / 통신사) */
  .chip-group{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
  }
  .chip-group input{
    position:absolute;
    opacity:0;
    width:1px; height:1px;
  }
  .chip-group label{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 16px;
    border:1.5px solid #dcdcdc;
    border-radius:10px;
    font-size:13.5px;
    color:#666;
    cursor:pointer;
    transition:border-color .15s ease, background .15s ease, color .15s ease;
  }
  .chip-group input:checked + label{
    border-color:#1d8bff;
    background:#eaf4ff;
    color:#005cbd;
    font-weight:700;
  }
  .chip-group.gender label{ min-width:64px; }
 
  /* 휴대폰 인증 */
  .inline-row{
    display:flex;
    gap:8px;
  }
  .inline-row .text-input{ flex:1; }
  .btn-side{
    flex-shrink:0;
    padding:0 16px;
    border-radius:11px;
    border:1.5px solid #1d8bff;
    background:#eaf4ff;
    color:#005cbd;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
    white-space:nowrap;
  }
  .btn-side:disabled{
    border-color:var(--line);
    background:#f2ede9;
    color:#b9afa9;
    cursor:not-allowed;
  }
  .btn-side.verified{
    border-color:#7fae8a;
    background:#eef6ef;
    color:#4a8a5c;
    cursor:default;
  }
  .auth-row{
    margin-top:10px;
    display:none;
  }
  .auth-row.show{ display:block; }
  .auth-row .inline-row{ align-items:center; }
  .timer{
    position:absolute;
	right: 26px;
    top: 10px;
    font-size:12.5px;
    color:#005cbd;
    font-weight:700;
  }
  .auth-input-wrap{ position:relative; flex:1; }
  .auth-input-wrap .text-input{ width:100%; padding-right:64px; }
 
  /* 주소 */
  .addr-row{
    display:flex;
    gap:8px;
    margin-bottom:8px;
  }
  .addr-row .text-input{ flex:1; }

  .badge{
    width:88px;
    height:88px;
    border-radius:50%;
    background:#e2f7ff;
    display:flex;
    align-items:center;
    justify-content:center;
	margin: 0 auto;
    margin-bottom:28px;
    position:relative;
  }
  .badge svg{ width:40px; height:40px; }
  .badge::after{
    content:"";
    position:absolute;
    inset:-6px;
    border-radius:50%;
    border:1.5px dashed #0095CA;
    animation:spin 18s linear infinite;
  }
  @keyframes spin{ to{ transform:rotate(360deg); } }

  .gohome-btn{
    width:100%;
    padding:16px 0;
    border-radius:12px;
    font-size:16px;
    font-weight:700;
    font-family:'Noto Sans KR',sans-serif;
    cursor:pointer;
    border:none;
    text-align:center;
    text-decoration:none;
    display:block;
	background:#e2f7ff;
  }


/* ========== 다크모드 대응 ========== */

.dark .header{background: var(--color-bg);color: var(--color-text);}
.dark .header-wrap .logo img{content:url("/static/_assets/images/logo-w-dark.png");}
.dark .header-wrap .gnb > li > a{color: var(--color-text);}
.dark .header-wrap .total-group .login-btn{background:url("/static/_assets/images/login_icon2-d.svg") center no-repeat; background-size: 50%;}
.dark .header-wrap .myp-area .myp-btn{background-image: url(/static/_assets/images/user_icon-d.svg);}
.dark .header-wrap .total-area .search-btn{background:url("/static/_assets/images/glass_icon-d.svg") center no-repeat; background-size: 48%;}
.dark .header-wrap .total-group .logout-btn{background-image: url(/static/_assets/images/logout_icon2-d.svg);}
.dark .site-mgnb .sm-btn .bar{background:var(--color-dark-gr);}
.dark .header-wrap .gnb-bg{background-color: var(--color-bg);}
.dark .header-wrap .gnb .depth-area a{color: var(--color-text);} 
.dark .header.is-active > .header-wrap{border-bottom: 1px solid var(--color-border);}
.dark .header-wrap .gnb .depth-area::before{border: 1px dashed var(--color-border);}
.dark .header-wrap .gnb > li:last-child .depth-area::after{border: 1px dashed var(--color-border);}

.dark .footer .f-logo a:nth-child(3) img{content:url("/static/_assets/images/logo-w-dark.png");}
.dark .site-list-icon img{content:url("/static/_assets/images/plus-d.svg");}
.dark .ft-site-btn{border-color: var(--color-border);}
.dark .ft-site-list{background-color: var(--color-bg); border-color: var(--color-border);}
.dark .footer .footer-util ul{border-color: var(--color-border);}
.dark .ft-site-list ul li a{border-color: var(--color-border);}
.dark .footer .footer-util ul li:nth-child(2):before, .dark  .footer .footer-util ul li:nth-child(3):before{background-color: var(--color-border);}
.dark .footer .copy{color: var(--color-dark-gr);}

.dark .site-modal .menu-wrap{background-color: #222223;}
.dark .site-modal .menu-list > li{background-color: var(--color-bg);}
.dark .site-modal .menu-list > li > a{color: var(--color-text);}
.dark .site-modal .modal-inner .modal-close{background: url(/static/_assets/images/close-d.svg) center center no-repeat; background-color: var(--color-bg);}
.dark .mobile-menu{}
.dark .mobile-tnb .mobile-user .user-info{background-color: var(--color-black);}
.dark .mobile-tnb .mobile-logo p img{content: url(/static/_assets/images/logo-w-dark.png);}
.dark .mobile-tnb .login-list > li{color: var(--color-text);}
.dark .moblie-gnb-close{background: url(/static/_assets/images/close-d.svg) center center no-repeat;}
.dark .mobile-global{background-color: var(--color-bg);}
.dark .mobile-gnb{border-top:1px solid var(--color-border); background-color: var(--color-black);}
.dark .mobile-nav > li.is-open{background-color: var(--color-bg);}
.dark .mobile-nav > li > a{color: var(--color-text);}
.dark .mobile-nav .depth-area{background-color: var(--color-bg);}
.dark .mobile-nav .depth2 > li > a{color: var(--color-text);}

.dark .main-slide-wrap .main-custom-pagination .swiper-pagination-bullet {background: var(--color-bg);  border: 1px solid var(--color-dark-gr);}
.dark .main-movie .movie-item .movie-poster-p{background-color: var(--color-bg);}
.dark .main-movie:after{background-image: url(/static/_assets/images/movie-bg-d.png);}
.dark .main-movie .tab-list li.on{color:var(--color-white);}
.dark .main-movie .movie-btn button{background-color: #333; box-shadow: 0 0 15px #000;}
.dark .movie-more-link{background-color: var(--color-bg); border-color: var(--color-border);}

.dark .current-month{color: var(--color-text);}
.dark .current-more{color: var(--color-text);}
.dark .schedule-container{box-shadow: 0 0 70px rgba(0, 0, 0, 0.5); background: var(--color-bg);}
.dark .date-selector:after{background-color: var(--color-border);}
.dark .date-selector li button:hover { background-color: var(--color-bg-op1); }
.dark .movie-card{border-color: var(--color-border);}
.dark .movie-card .title{color:var(--color-white);}
.dark .movie-card p{color:var(--color-white);}
.dark .main-lecture .lec-btn button{background-color: var(--color-bg); border-color: var(--color-border); box-shadow:unset;}
.dark .lec-btn button:hover{box-shadow:unset;}
.dark .date-selector li button.active{box-shadow:none; background-color: var(--color-primary);}
.dark .main-lecture .tab-list ul{background:var(--color-bg-op1);}
.dark .main-lecture .tab-list a{color: var(--color-text);}
.dark .main-lecture .tab-list li:not(.active) a:hover { background-color:var(--color-bg);}

.dark .title_area:after{background: url(/static/_assets/images/film-icon-d.svg) no-repeat; filter: none; background-size: contain;}
.dark .main-lecture .title_area:after{background: url(/static/_assets/images/slate_icon-d.svg) no-repeat; background-size: contain;}
.dark .main-weekly .title_area:after{background: url(/static/_assets/images/calendar_icon-d.svg) no-repeat; background-size: contain;}
.dark .main-notice .title_area:after{background: url(/static/_assets/images/announcement_icon-d.svg) no-repeat; background-size: contain;}
.dark .main-rental .title_area:after{background: url(/static/_assets/images/camera_icon-d.svg) no-repeat; background-size: contain;background-size: contain;}
.dark .deco .dot{background-color: #4f81ff;}

.dark .lec-slide{background: var(--color-bg); border: 1px solid var(--color-border);box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5);}
.dark .lec-txt{background: var(--color-bg);color: var(--color-text);}
.dark .lec-txt h3,.dark .lec-date,.dark .lec-date p,.dark .lec-detail li{color: var(--color-text);}
.dark .lec-detail li img{fill: currentColor;}
.dark .main-lecture:after{background-image: url(/static/_assets/images/edu-bg-d.png);}

.dark .calendar-container {background-color: #183237;}
.dark .calendar-legend li{color: var(--color-white);}
.dark .weekly-calendar{background-color: rgb(0 0 0 / 80%);}
.dark .weekly-calendar th .day-num{color: var(--color-text);}
.dark .weekly-calendar th.is-today .day-num{color: #0c1011;}
.dark .weekly-calendar th.is-today p:after{box-shadow: none;}
.dark .weekly-calendar .is-sun .day-num { color: #fa5252; }
.dark .weekly-calendar .is-sat .day-num { color: #4c6ef5; }
.dark .weekly-calendar thead tr:after{background-color: var(--color-border);}
.dark .weekly-calendar td::after{background-color: var(--color-border);}
.dark .event-item{color: var(--color-text); font-weight: 500;}
.dark .weekly-calendar td.is-today li .legend-event{text-decoration-color: rgba(255, 181, 92, 0.3);}
.dark .weekly-calendar td.is-today li .legend-rental{text-decoration-color: rgba(0, 211, 88, 0.3);}
.dark .weekly-calendar td.is-today li .legend-edu{text-decoration-color: rgba(202, 121, 255, 0.3);}

.dark .main-info:after{background: linear-gradient(to bottom, #222023, #483e4d);}
.dark .notice_list li a{background-color: var(--color-bg); color: var(--color-text);}
.dark .notice_list li:nth-child(even) a::after{background-image:url('/static/_assets/images/tail-l-d.png');}
.dark .notice_list li:nth-child(odd) a::after{background-image:url('/static/_assets/images/tail-r-d.png');}
.dark .rental_list ul li a>div:after{filter: brightness(0);}

.dark .quick-menu .menu-list{ box-shadow: 8px 0px 28px rgb(0 0 0 / 80%);}

.dark .board-tab{border-bottom-color:var(--color-border);}
.dark .board-tab-btn{color:var(--color-dark-gr);}
.dark .board-tab-btn.active{color:var(--color-primary);}
.dark .board-head h3{color:var(--color-text);}
.dark .board-more{border-color:var(--color-border); color:var(--color-dark-gr);}
.dark .board-panel{border-color:var(--color-border); background:var(--color-bg);}
.dark .board-list li a{color:var(--color-text);}
.dark .board-list .date{color:var(--color-dark-gr);}


/* ========== 태블릿 (min-width: 768px) ========== */
  @media (min-width: 768px) {
    .main-info .inner{flex-direction: row; padding-top: 120px; gap: 10px;}

	.board-panels{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
    .board-panel{display:block;background:#fff;}
    .board-head h3{display:block;}
    .board-tab{display:none;}

    .main-sns{flex:7; min-width:0;}
    .main-magazine{flex:3; min-width:0;}
    .main-sns .title_area, .main-magazine .title_area{margin-bottom:50px; flex-direction: row;}
    .sns-swiper .swiper-wrapper{display:flex; gap:20px;}
    .sns-swiper .swiper-slide{flex:1; width:auto !important;}

  }
/* ========== 데스크탑 (min-width: 1024px) ========== */
  @media (min-width: 1024px) {
    

  }
/* ========== 일반 데스크탑 시작 (min-width: 1280px) ========== */
  @media (min-width: 1280px) {
	.page-main .header-wrap{border-bottom: 1px solid transparent;}

    .title_area{width: auto;}
    .title_area h2{font-size: 32px;}
    .deco .dot {
    width: 8px;
    height: 8px;
    bottom: 42px;
    left: 21px;
	}

	  .main-visual .inner{flex-direction:row; gap:70px; padding:70px 40px 100px;}

	  /* 프로모션: 좌측, 퀵버튼: 우측 */
	  .main-slide-wrap{flex:1; min-width:0; order:-1;}
	  .main-quick{order:0; flex:0 0 330px;align-content:center;}

	  /* 퀵버튼 PC 스타일 */
	  .quick-list{gap:12px; grid-template-columns: repeat(2, 1fr);}
	  /* .quick-list li a{padding:20px 12px; border-radius:16px; border-color:rgba(0,0,0,0.08); background:rgba(255,255,255,0.45); backdrop-filter:blur(6px);} */
	  /* 추가 */
		.quick-list li a{padding:20px 12px; border-radius:16px; background:#fff; backdrop-filter:blur(6px); min-height:120px;}
	  .quick-list li a:hover{background:rgba(255,255,255,0.7); box-shadow:0 4px 12px rgba(0,0,0,0.08);}
	  .quick-arrow {display:block;}
	  .quick-arrow i{display:block;}
	  .quick-icon{width:38px; height:38px; margin-bottom:10px; display:block;}
	  .quick-text{font-size:14px;}

	/* 슬라이드 내부: 좌우 분할 */
	  .main-slide-wrap{flex-direction:row; align-items:stretch;}
	  /* 추가 */
	  .main-slide-wrap::before{top:5%; bottom:5%; height:auto;border-radius:80px;}
	  .promo-poster-wrap{flex:0 0 35%; z-index:2; margin-top:-20px; margin-bottom:-20px; padding:0;}
	  .promo-poster-wrap img{border-radius:15px;}
	  .promo-info-wrap{flex:1; display:flex; flex-direction:column; justify-content:center;}
	  .promo-info{padding:0 70px;}
	  .promo-category{font-size:18px; color:#333; font-weight:500; margin-bottom:8px;padding-top: 20px;}
	  .promo-title{font-size:36px; font-weight:700; margin-bottom:50px; line-height:1.3;}
	  .promo-detail{gap:4px;}
	  .promo-detail li{font-size:17px; color:#333; line-height:1.4;font-weight:500;}

	  .main-slide-wrap .promo-controls{justify-content:flex-start;padding:12px 0 16px 65px; margin-top: 60px;}
    .main-slide-wrap .mobile-btn { display: none; }

	  
    .main-movie .tab-list li{font-size: 32px; margin-right: 35px;}
    .main-movie .tab-list li:first-child:after{height: 17px; top: 15px; right: -20px;}
    .main-movie .movie-item{max-width:280px;}
    .movie-more-link{width: 33px; height: 33px; line-height: 33px; top: -5px;}
    .main-info .inner{gap:5rem; padding-bottom:150px;}
    
    .main-movie .title_area:after{width: 31px; height: 27px; top: 12px; left: 17px;}
    .main-lecture .title_area:after{width: 27px; height: 27px; top: 6px;}
    .main-weekly .title_area:after{width: 27px; height: 25px; top: 7px;}
    .main-notice .title_area:after{width: 27px; height: 27px; top: 7px;}
    .main-rental .title_area:after{width: 27px; height: 27px; top: 7px;}

    .main-movie .title_area { margin-bottom: 40px; }
    .main-movie:after{top: -190px;}
    .main-time .title_area { margin-bottom: 40px; }

    .schedule-container-wrap{flex-direction: row; gap: 55px;}
    .date-selector{flex-direction: row; width: auto;}
    .date-selector:after{display: none;}
    .date-selector li button{margin: 0; padding: 0 17px;}
    .date-selector li .day-number{font-size: 34px;}
    .date-selector li .day-of-week{font-size: 17px; padding-top: 10px;}
    .current-month{font-size: 32px;float: unset; padding-bottom: 25px; padding-top: 30px;}
    .current-more{float: unset; font-size: 16px;}
    .movie-card { border:0; border-radius: 0px; border-right: 1px solid #e9ecef; padding: 10px 20px; min-width: 0; width: 100%;}
    .movie-card .title{font-size: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
    .movie-card p{font-size: 16px;white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}

    .main-weekly .inner {padding: 100px 0 140px;}
    .showtime-list a{width: calc(25% - 12px);}
    .schedule-container {border-radius: 20px; box-shadow: 0 0 70px #D2E1F2; width: 100%; padding: 24px 24px 40px; box-sizing: border-box; display: flex ; flex-direction: column;}
    .schedule-date-wrap{border-bottom: 1px solid #e9ecef; padding-bottom: 16px; margin-bottom: 35px;}
    .showtime-content a:last-child .movie-card{border-right: none;}
    .main-time .inner{padding-top:120px;}

	.main-board .inner{margin-top:120px; padding-bottom:70px;}
    .main-board .title_area{margin-bottom:40px;}
    .main-board .title_area h2:after{display:none;}
	.board-panels{grid-template-columns:repeat(4, 1fr); gap:var(--spacing-xl); padding:0; position:relative;}
	.board-panels:after{content: ''; position: absolute; top: 0; left: 10%; width: 556px; height: 147px; background: url(/static/_assets/images/main-news.svg) center no-repeat; background-size: contain; pointer-events: none; z-index:-1; transform:translateY(-90%);}
    .board-panel{border-radius:16px;padding:var(--spacing-lg) 0 0;}
    .board-head h3{font-size:20px;}
    .board-head{padding:0 var(--spacing-lg);}
    .board-more{width:33px; height:33px;}
    .board-list li a{font-size:16px;}
    .board-title{min-height:calc(1.5em * 2);}
    .board-list .date{font-size:14px;}

    .main-lecture:after{top: 340px;}
    .main-lecture .inner .tab-list{width: auto;}
    .main-lecture .tab-list ul{width: auto; position: relative;}
    .main-lecture .tab-list ul:after{z-index: -1; display: block; position: absolute; top: 20px; left: -160px; bottom: auto; width: 94px; height: 88px; background-image: url(/static/_assets/images/edu-bg-dot.png); background-repeat: no-repeat; background-position: center; background-size: cover; content: '';}
    .main-lecture .tab-list a{font-size: 18px; padding: 5px 22px;}
    .lec-slide-wrap { position: relative; max-width: 100%; width: 1460px; margin: 0 auto; padding: 0 100px; }
    .lec-swiper{padding: 10px 10px 70px;}
    .lec-slide{box-shadow: 0 4px 15px rgba(189, 197, 217, 0.4);}
    .lec-slide:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(189, 197, 217, 0.5); }
    .lec-slide:nth-child(odd) { transform: translateY(50px); }
    .lec-slide:nth-child(odd):hover { transform: translateY(45px); }
    .main-lecture .inner{gap: 40px; padding-top: 120px;}

    .rental_list{margin-top: 40px;}
    .rental_list ul{gap: 40px 10px;}
    .rental_list ul li a{font-size: 18px;}
    .rental_list ul li a>div{width: 110px; height: 130px;}
    .notice_list li a::after{display: block;}
    .main-info:after{display: block; position: absolute; top: 0; left: 0; bottom: auto; width: 100%; height: 100%; z-index: -1; background-image: url(/static/_assets/images/main-bt-bg.png); background-repeat: no-repeat; background-position: bottom left; background-size: auto; content: '';}
    .notice_list li a{box-shadow: 16px 26px 80px rgba(32, 54, 121, 0.1); padding: 32px; font-size: 20px; border-radius: 20px;}
    .notice_list li a .date{font-size: 16px; margin-top: 30px;}
    .main-rental:before{display: none;}

    .sns-link{width:40px; height:40px; font-size:18px;}
    .sns-card-name{font-size:1.2rem;}
    .sns-card-title{font-size:15px; padding:14px 16px 6px;}
    .sns-card-date{padding:6px 16px 16px; font-size:14px;}
    .sns-card-header{padding: var(--spacing-xl) var(--spacing-md);}
	.magazine-thumb{box-sizing:border-box;padding:var(--spacing-xl);}
    .magazine-thumb a{border-radius:10px;}

    /* .lec-slide.lec-empty{transform:none;} */
    .lec-slide.lec-empty:hover{transform:none;box-shadow:none;}
    .lec-slide.lec-empty:nth-child(odd){transform: translateY(50px);}

    .dark .lec-slide:hover{box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5);}
    .dark .schedule-date-wrap{border-color: var(--color-border);}
    .dark .footer .addr{border-color: var(--color-border);}
    
    
  }
/* ========== 넓은 데스크탑 (min-width: 1400px) ========== */
  @media (min-width: 1400px) {

  }
/* ========== 와이드 데스크탑 (min-width: 1600px) ========== */
  @media (min-width: 1600px) {

 }
  @media (min-width: 1680px) {
    .main-movie .movie-btn .movie-prev-btn{left:-50px;}
    .main-movie .movie-btn .movie-next-btn{right:-50px;}
 }
 /* ========== PC전용요소 (max-width: 1279px) ========== */
  @media (max-width: 1279px) {
    
    /* .main-slide-wrap .mv-swiper{border-radius:15px;} */
	/* 추가 (같은 위치에) */
    .main-slide-wrap::before{border-radius:40px; top:4%}

    .calendar-container{border-radius: 15px; padding: 17px 10px 10px; margin: 0 15px;}
    .calendar-legend{right: 0;}
    .calendar-legend ul{gap: 22px; padding-right: 15px;}
    .calendar-legend li{font-size: 12px;}
    .calendar-header h3{padding-left: 15px; font-size: 18px;}
    .weekly-calendar{display: flex; width: 100%; padding: 10px 0; box-shadow: 10px ;}
    .weekly-calendar colgroup { display: none; }
    .weekly-calendar thead {flex: 0 0 100px;}
    .weekly-calendar tbody {flex: 1;}
    .weekly-calendar thead tr, .weekly-calendar tbody tr { display: flex; flex-direction: column; width: 100%; height: 100%; }
    .weekly-calendar th, .weekly-calendar td {font-size: 13px;min-height: 80px; height: 105px; padding: 10px; }
    .weekly-calendar th{display: flex ; align-items: center; justify-content: center; gap: 5px;}
    .weekly-calendar th .day-num{font-size: 24px; padding-right: 3px;}
    .weekly-calendar th.is-today p:after{padding: 0 10px;}
    .weekly-calendar td::after{width: calc(100% - 20px); height: 1px; left: 10px;}
    .weekly-calendar td:last-child::after{display: none;}
    .weekly-calendar thead tr:after{width: 1px; height: calc(100% - 20px); right: 0; left: auto; bottom: 10px;}
    .event-list li { margin-bottom: 4px; }
    .event-item{font-size: 13px; -webkit-line-clamp: 1;}
    .event-item:after{width: 10px; height: 10px; top: 11px; left: 4px;}


 }


.popup {
    position: fixed;
    top: 100px;
    left: 200px;
    display: flex;
    z-index: 9999;
    background: transparent;
}

/* 팝업 박스 */
.popup-box {
    position: relative;
    text-align: center;
    box-shadow: 0 0 10px rgba(0,0,0,0.2);
    border-radius: 10px;
    background: #fff;
}

.popup-img {
    width: 500px;
    height: 500px;
    max-width: none;
    border-radius: 10px 10px 0 0;
}

.popup-buttons {
    display: flex;
    justify-content: center;
}

.popup-buttons button {
    padding: 8px 16px;
    border: none;
    cursor: pointer;
    font-size: 14px;
    flex-grow: 1;
    border-top: 1px solid #ccc;
    background: #fff;
}

.popup-buttons button:first-child {
    border-right: 1px solid #ccc;
    border-radius: 0 0 0 10px;
}

.popup-buttons button:last-child {
    border-radius: 0 0 10px 0;
}

@media (max-width: 1280px) {
    .popup {
        top: 80px;
        left: 20px;
    }
    .popup-box {
        max-width: 400px;
    }
    .popup-img {
        max-width: 400px;
        max-height: 400px;
    }
}

@media (max-width: 768px) {
    .popup-box {
        width: 90%;
        max-width: 320px;
    }
    .popup-img {
        width: 100%;
        max-width: 320px;
        height: 100%;
        max-height: 320px;
    }
}

@media (max-width: 559px) {
.main-movie .inner{width:100%;}

}