/* 서브메뉴 CSS */
.sub-menu-box{display: flex;justify-content: center;width : 100%;border-bottom: 1px solid rgba(0,0,0,0.1);position : relative; z-index: 1;}
.sub-menu-inner{display: flex; align-items : center;max-width: 1200px; width : 100%;}
.sub-menu{display:flex;align-items:center;min-width:150px;max-width:150px;position:relative;font-size: 14px;letter-spacing: -0.04em;height:50px;padding:0 15px;color:#111;cursor:pointer}
.sub-menu:not(:last-child)::before{position:absolute;content:'';width:1px;height:15px;background:#aaa;right:0;}
.sub-menu.long{min-width:200px;max-width:250px}
.sub-menu.disable{pointer-events: none;color : #aaa}
.sub-menu::after{position: absolute;content:'';width:7px;height:7px;border-top:1px solid #555;border-right:1px solid #555;transform: rotate(45deg);right:15px;transition:transform .2s;}
.sub-menu:hover::after{transform: rotate(135deg)}
.sub-menu.disable::after{border-color:#aaa;}
.sub-menu>ul{display:none;position: absolute;top:100%;left:0;width:100%;border:1px solid #ccc;border-bottom:none;border-top:none}
.sub-menu:hover>ul{display:block;}
.sub-menu>ul>li>a{display:flex;flex-direction:column;justify-content:center;height:40px;background:#fff;border-bottom:1px solid #ccc;padding-left:15px;font-size:14px;transition:padding-left .2s;position:relative;overflow:hidden;}
.sub-menu>ul>li>a::after{position:absolute;content:'';width:5px;height:5px;border-top:1px solid #555;border-right:1px solid #555;transform: rotate(45deg);left:0px;opacity:0;transition:opacity .2s,left .2s;}
.sub-menu>ul>li>a:hover::after{left:10px;opacity:1;}
.sub-menu>ul>li.long>a{height:55px;}
.sub-menu>ul>li>a:hover{padding-left:25px;font-weight:500}
.sub-menu>ul>li:nth-child(1)>a{border-top:1px solid #ccc}
.sub-menu>ul>li>a:hover{background:#f1f1f1}

.sub-title-box{
    display: flex;
    justify-content: center;
    align-items: center;
    position : relative;
    height : 370px;
    padding-top: 80px;
    overflow: hidden;
}
.sub-title-box::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.3);
    z-index: -1;
    pointer-events: none;
}
.sub-title-bg{
    width : 100%;
    height : 100%;
    object-fit: cover;
    object-position : center bottom;
    position : absolute;
    left : 0;
    top : 0;
    z-index: -1;
	overflow : Hidden;
	animation : sub-title-bg 3s both;
	filter : brightness(0.85)
}
@keyframes sub-title-bg{
	0%{transform : scale(1.15)}
	100%{transform : scale(1)}
}
.sub-title-sign{animation : sub-title-sign 1s both .8s;max-width : 520px; font-size: 52px; color: #fff; font-weight: bold; font-family: 'GowoonDodum', sans-serif;}
@keyframes sub-title-sign{
	0%{opacity : 0; transform : translateX(0px) translateY(50px)}
	100%{opacity : 1; transform : translateX(0px) translateY(0px)}
}
.sub-title-desc{color : #fff;font-size : 18px;letter-spacing : -0.033em;margin-bottom: 10px;}
.sub-title-inner{
    width : 100%;
    max-width: 1200px;
}
.sub-desc{
    font-size: 19px;
    letter-spacing: -0.04em;
    color : #121212;
    line-height: 1em;
}
.sub-title-box{
    width : 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.sub-title{
    font-size: 53px;
    letter-spacing: -0.04em;
    margin-bottom: 21px;
    color : #542785
}
.sub-title.sub-title2{
    color : #E40073;
    margin-bottom: 0;
}
.sub-content-box{
    padding : 66px 0 192px;
}
.sub-content-title{
    display: flex;
    align-items: center;
    flex-direction: column;
    font-size: 50px;
    font-weight: 500;
    gap : 13px;
    color : #0A0A0A;
    margin-bottom: 30px;
}
.sub-content-title > span{
    width : 1px;
    height : 49px;
    background : #9E9E9F;
}
.sub-content-img{
    margin : 0 auto;
}
.page-info {
    width: 100%;
    color: #888;
    padding: 1rem 0;
    /* border: 1px solid #d1d1d1; */
    text-align: left;
}
.page-info li + li {
    margin-top: 10px;
}
.page-info li {
    font-size: 12px;
    line-height: 1.1rem;
}
.page-info li:before {
    content: "※";
    display: inline-block;
    margin-right: .1rem;
    font-size: 14px;
}




/* ==================================================
   PAGE
================================================== */
.sub-page {
    max-width: 1200px;
    margin: 40px auto;
    padding: 50px 0px 0px;
    background: #fff;
}

.page-title {
    margin-bottom: 55px;
}

.page-title .step {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    font-size: 16px;
    font-weight: 700;
    color: #6d6559;
    letter-spacing: .04em;
}

.page-title .step::before {
    content: "";
    width: 28px;
    height: 2px;
    background: #b39a6b;
}

.page-title h1 {
    font-size: clamp(36px, 4vw, 58px);
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -0.05em;
    color: #222;
}

.page-title h1 span {
    color: #a68a58;
}

.program-intro {
    position: relative;
    padding: 45px 50px;
    margin-bottom: 70px;
    overflow: hidden;
	border-radius: 10px;
}

.program-label {
    position: relative;
    z-index: 1;
    margin-bottom: 10px;
    font-weight: 700;
    font-size: 20px;
}

.program-intro h2 {
    position: relative;
    z-index: 1;
    margin-bottom: 14px;
    font-size: clamp(25px, 2.5vw, 32px);
    line-height: 1.35;
    letter-spacing: -0.04em;
	font-weight: 300;
}
.program-intro h2 b {
	font-size: 50px;
	font-weight: bold;
}

.program-intro p {
    position: relative;
    z-index: 1;
    font-size: 16px;
	font-weight: 100;
	line-height: 22px;
    word-break: keep-all;
}


.buddhist .program-intro {
    background: #366632;
}
.buddhist .program-label {
    color: #56834e;
}
.buddhist .program-intro h2 {
    color: #fff;
}
.buddhist .program-intro p {
    color: #ccc;
}
.buddhist .section-title .dot {
    background: #366632;
}
.buddhist .program-intro::after {
    content: "BUDDHIST";
    position: absolute;
    right: -20px;
    bottom: -30px;
    font-size: 100px;
    font-weight: 800;
    color: rgba(86, 131, 78, .4);
    letter-spacing: -0.08em;
}


.christian .program-intro {
    background: #03598e;
}
.christian .program-label {
    color: #0877a4;
}
.christian .program-intro h2 {
    color: #fff;
}
.christian .program-intro p {
    color: #ccc;
}
.christian .section-title .dot {
    background: #03598e;
}
.christian .program-intro::after {
    content: "CHRISTIAN";
    position: absolute;
    right: -20px;
    bottom: -30px;
    font-size: 100px;
    font-weight: 800;
    color: rgba(8, 119, 164, .4);
    letter-spacing: -0.08em;
}


.catholicism .program-intro {
    background: #ca3252;
}
.catholicism .program-label {
    color: #d7516e;
}
.catholicism .program-intro h2 {
    color: #fff;
}
.catholicism .program-intro p {
    color: #ccc;
}
.catholicism .section-title .dot {
    background: #ca3252;
}
.catholicism .program-intro::after {
    content: "CATHOLICISM";
    position: absolute;
    right: -20px;
    bottom: -30px;
    font-size: 100px;
    font-weight: 800;
    color: rgba(215, 81, 110, .4);
    letter-spacing: -0.08em;
}


.section-title {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 35px;
}

.section-title .title-left {
    display: flex;
    align-items: center;
    gap: 13px;
}

.section-title .dot {
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: #a68a58;
}

.section-title h3 {
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -0.04em;
}

.section-title .desc {
    font-size: 14px;
    color: #999;
}


.program-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 416px;
    gap: 70px;
    align-items: start;
}


.place-list {
    position: relative;
}

.place-list::before {
    content: "";
    position: absolute;
    top: 12px;
    bottom: 12px;
    left: 8px;
    width: 1px;
    background: #ddd6cb;
}

.place-item {
    position: relative;
    display: grid;
    grid-template-columns: 25px 1fr;
    gap: 18px;
    padding-bottom: 38px;
}

.place-item:last-child {
    padding-bottom: 0;
}

.place-icon {
    position: relative;
    z-index: 2;
    width: 17px;
    height: 17px;
    margin-top: 5px;
    border: 4px solid #fff;
    border-radius: 50%;
    background: #d75a68;
    box-shadow: 0 0 0 1px #d75a68;
}

.place-item:nth-child(2) .place-icon {
    background: #a68a58;
    box-shadow: 0 0 0 1px #a68a58;
}

.place-item:nth-child(3) .place-icon {
    background: #6c8e73;
    box-shadow: 0 0 0 1px #6c8e73;
}

.place-item:nth-child(4) .place-icon {
    background: #c38c50;
    box-shadow: 0 0 0 1px #c38c50;
}

.place-item:nth-child(5) .place-icon {
    background: #75869a;
    box-shadow: 0 0 0 1px #75869a;
}

.place-info {
    padding: 0 0 5px;
}

.place-number {
    display: inline-block;
    margin-bottom: 5px;
    font-size: 12px;
    font-weight: 700;
    color: #aaa;
    letter-spacing: .08em;
}

.place-name {
    margin-bottom: 7px;
    font-size: 22px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: -0.03em;
}

.place-name span {
    font-weight: 400;
	font-size: 16px;
    color: #aaa;
}

.place-info p {
    max-width: 700px;
    font-size: 16px;
    color: #555;
    line-height: 1.4;
    word-break: keep-all;
}


.place-photo {
    position: sticky;
    top: 30px;
	overflow: hidden;
}

.photo-card {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background: #ddd;
	border-radius: 10px;
}

.photo-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;

    transform: scale(1);
    transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
    backface-visibility: hidden;
}

.photo-card:hover img {
    transform: scale(1.0);
}

.photo-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            to top,
            rgba(0,0,0,.55),
            transparent 45%
        );
}

.photo-info {
    position: absolute;
    z-index: 2;
    left: 28px;
    right: 28px;
    bottom: 28px;
    color: #fff;
}

.photo-info .num {
    display: block;
    margin-bottom: 4px;
    font-size: 12px;
    letter-spacing: .12em;
    opacity: .7;
}

.photo-info strong {
    display: block;
    font-size: 25px;
    font-weight: 700;
}

.photo-info span {
    font-size: 13px;
    opacity: .8;
}


.place-photo{
    width:100%;
}

.photoSwiper{
    margin-bottom:10px;
}

.photo-card{
    position:relative;
    overflow:hidden;
    border-radius:14px;
    height:520px;
}

.photo-card img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transform:scale(1);
    transition:transform 1.4s cubic-bezier(.22,1,.36,1);
}

.photoSwiper .swiper-slide-active .photo-card img{
    transform:scale(1.08);
}

.photo-info{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    padding:32px;
    color:#fff;
    background:linear-gradient(to top, rgba(0,0,0,.65), transparent);
}

.photo-info .num{
    display:block;
    font-size:14px;
    opacity:.8;
    margin-bottom:8px;
}

.photo-info strong{
    display:block;
    font-size:28px;
    margin-bottom:6px;
}

.photo-info span:last-child{
    font-size:15px;
    opacity:.9;
}

/* 썸네일 */
.thumbSwiper .swiper-slide{
    width: 92px;
    height: 72px;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
}

.thumbSwiper .swiper-slide img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;

    opacity: .45;
    filter: grayscale(100%);
    transform: scale(1);
    transition: all .35s ease;
}

/* 선택된 썸네일 */
.thumbSwiper .swiper-slide-thumb-active img{
    opacity: 1;
    filter: grayscale(0);
    transform: scale(1.05);
}

.thumbSwiper .swiper-slide-thumb-active{
    border: 2px solid #B18B5D;
}


.program-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 70px;
    padding-top: 25px;
    border-top: 1px solid #e6e2dc;
}

.program-bottom p {
    font-size: 15px;
    color: #999;
}

.program-bottom .btn {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    padding: 14px 40px;
    background: #666;
    color: #fff;
    font-size: 18px;
    border-radius: 30px;
    transition: background .3s;
}

.program-bottom .btn:hover {
    background: #000;
}

.program-bottom .arrow {
    font-size: 20px;
    transform: translateX(0);
    transition: transform .3s ease;
}

.program-bottom .btn:hover .arrow {
    transform: translateX(8px);
}


/* ==================================================
   TABLET
================================================== */

@media (max-width: 1100px) {

    .sub-page {
        margin: 20px;
        padding: 20px 45px 70px;
    }

    .program-content {
        grid-template-columns: minmax(0, 1fr) 320px;
        gap: 40px;
    }

}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 768px) {

    body {
        background: #fff;
    }

    .sub-page {
        margin: 0;
        padding: 20px 20px 60px;
    }

    .page-title {
        margin-bottom: 35px;
    }

    .page-title h1 {
        font-size: 36px;
    }

    .program-intro {
        padding: 30px 25px;
        margin-bottom: 45px;
    }

    .program-intro h2 {
        font-size: 20px;
    }
	.program-intro h2 b {
		font-size: 40px;
	}

    .program-intro p {
        font-size: 13px;
		font-weight: 400;
		line-height: 20px;
    }

    .section-title {
        display: block;
        margin-bottom: 30px;
    }

    .section-title h3 {
        font-size: 20px;
    }

    .section-title .desc {
        display: none;
    }

    .program-content {
        display: flex;
        flex-direction: column;
        gap: 45px;
    }

    .place-item {
        grid-template-columns: 22px 1fr;
        gap: 13px;
        padding-bottom: 30px;
    }

    .place-name {
        font-size: 18px;
    }

    .place-info p {
        font-size: 14px;
    }

    .place-photo {
        position: relative;
        top: auto;
        width: 100%;
    }

    .photo-card {
		width: 100%;
		height: 450px;
        aspect-ratio: 16 / 11;
    }

    .photo-info strong {
        font-size: 21px;
    }

    .program-bottom {
        display: block;
		text-align: center;
    }

    .program-bottom .btn {
        margin-top: 20px;
    }

	.program-bottom p {
		font-size: 13px;
		color: #999;
		text-align: left;
	}

}


/* ==================================================
   SMALL MOBILE
================================================== */

@media (max-width: 480px) {

    .sub-page {
        padding-left: 16px;
        padding-right: 16px;
    }

    .program-intro {
        padding: 25px 20px;
    }

    .program-intro::after {
        font-size: 65px;
    }

    .place-name span {
        font-size: 14px;
        margin-top: 2px;
    }

}



/* ========================================
   상세 일정
======================================== */

.schedule-section {
    width: 100%;
    padding: 0px 20px 0px;
    box-sizing: border-box;
}

.schedule-inner {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
}

/* 상단 타이틀 */
.schedule-head {
    margin-bottom: 24px;
}

.schedule-head h2 {
    margin: 0 0 15px 20px;
    color: #222;
    font-size: 30px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: -0.04em;
	position : relative;
}
.schedule-head h2:before {
	content: '';
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #000;
	position: absolute;
	left: -20px;
	top: 15px;
}

.schedule-head h2 span {
    margin-left: 4px;
    font-weight: 700;
}

.schedule-head .notice {
    margin: 0;
    color: #333;
    font-size: 18px;
    line-height: 1.5;
    font-weight: 500;
    letter-spacing: -0.03em;
}

.schedule-head .notice-red {
    color: #f02b25;
    font-weight: 600;
}


/* ========================================
   일정표
======================================== */

.schedule-table {
    width: 100%;
    border-top: 1px solid #ddd;
	margin-bottom: 50px;
}

/* 모든 행 */
.schedule-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 45px;
    border-bottom: 1px solid #ddd;
    box-sizing: border-box;
}
.schedule-row.etc {
    display: grid;
    grid-template-columns: auto;
    min-height: 45px;
    border-bottom: 1px solid #ddd;
    box-sizing: border-box;
}

/* 셀 */
.schedule-row > div, .schedule-row.etc > div {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 15px;
    box-sizing: border-box;

    color: #222;
    font-size: 18px;
    line-height: 1.4;
    font-weight: 400;
    letter-spacing: -0.04em;
    text-align: center;
}
.schedule-row.etc > div { color: red; }

.schedule-row > div + div, .schedule-row.etc > div + div {
    border-left: 1px solid #ddd;
}


/* ========================================
   테이블 헤더
======================================== */

.schedule-row.schedule-title {
    min-height: 50px;
    border: 0;
    background: #e9e9e9;
}

.schedule-title > div {
    color: #111;
    font-size: 20px;
    font-weight: 600;
}

.schedule-title > div + div {
    border-left: 0;
}


/* ========================================
   날짜 구분
======================================== */

.schedule-row.schedule-day {
    min-height: 35px;
    background: #f5f5f5;
}

.schedule-day > div {
    grid-column: 1 / 3;
    font-size: 17px;
    font-weight: 500;
}

.schedule-day > div + div {
    display: none;
}


/* ========================================
   Hover
======================================== */

.schedule-row:not(.schedule-title):not(.schedule-day) {
    transition: background-color 0.2s ease;
}

.schedule-row:not(.schedule-title):not(.schedule-day):hover {
    background-color: #fafafa;
}


/* ========================================
   Tablet
======================================== */

@media (max-width: 1024px) {

    .schedule-section {
        padding: 70px 20px 100px;
    }

    .schedule-head h2 {
        font-size: 28px;
    }

    .schedule-head .notice {
        font-size: 17px;
    }

    .schedule-row > div {
        font-size: 17px;
    }

    .schedule-title > div {
        font-size: 20px;
    }

}


/* ========================================
   Mobile
======================================== */

@media (max-width: 767px) {

    .schedule-section {
        padding: 50px 16px 70px;
    }

    .schedule-head {
        margin-bottom: 20px;
    }

    .schedule-head h2 {
        margin-bottom: 6px;
        font-size: 24px;
    }

    .schedule-head .notice {
        font-size: 14px;
        line-height: 1.55;
    }

    .schedule-head .notice-red {
        margin-top: 1px;
    }


    .schedule-row {
        min-height: 43px;
    }

    .schedule-row > div {
        padding: 8px 8px;
        font-size: 14px;
        line-height: 1.35;
    }


    .schedule-title {
        min-height: 42px;
    }

    .schedule-title > div {
        font-size: 16px;
    }


    .schedule-day {
        min-height: 38px;
    }

    .schedule-day > div {
        font-size: 14px;
    }

}


/* ========================================
   Small Mobile
======================================== */

@media (max-width: 480px) {

    .schedule-section {
        padding: 10px 0px 40px;
    }

    .schedule-head h2 {
        font-size: 21px;
    }

    .schedule-head .notice {
        font-size: 13px;
    }

    .schedule-row > div {
        padding: 8px 5px;
        font-size: 13px;
    }

    .schedule-title > div {
        font-size: 15px;
    }

    .schedule-day > div {
        font-size: 13px;
    }

}



.program-guide {
  --primary: #5277c7;
  --primary-dark: #355cae;
  --primary-light: #eef3ff;
  --text: #1e2430;
  --sub-text: #6d7480;
  --line: #e7e9ee;
  --bg: #f7f8fb;

  padding: 60px 20px 30px;
  background: #fff;
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont,
    'Segoe UI', sans-serif;
  color: var(--text);
}

.guide-inner {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

/* 상단 */

.guide-header {
  margin-bottom: 48px;
}

.guide-header .eyebrow {
  display: inline-block;
  margin-bottom: 12px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--primary);
}

.guide-header h2 {
    margin: 0 0 15px 20px;
    color: #222;
    font-size: 30px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: -0.04em;
    position: relative;
}
.guide-header h2:before {
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #000;
    position: absolute;
    left: -20px;
    top: 15px;
}

.guide-header p {
  margin: 0;
  max-width: 720px;
  font-size: 17px;
  line-height: 1.8;
  color: var(--sub-text);
}

.guide-header strong {
  color: var(--text);
}

/* 안내 카드 */

.guide-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.guide-card {
  position: relative;
  padding: 32px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
}

.guide-card-wide {
  grid-column: 1 / -1;
}

.guide-number {
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 700;
  color: var(--primary);
}

.guide-card h3 {
  margin: 0 0 14px;
  font-size: 21px;
  letter-spacing: -0.6px;
}

.guide-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.75;
  color: var(--sub-text);
  word-break: keep-all;
}

.guide-card p + p {
  margin-top: 10px;
}

.guide-card strong {
  color: var(--text);
  font-weight: 700;
}

.guide-price {
  margin-bottom: 8px !important;
  font-size: 17px !important;
  color: var(--text) !important;
}

.guide-price strong {
  font-size: 24px;
  color: var(--primary);
}

.notice-box {
  margin-top: 20px;
  padding: 18px 20px;
  border-radius: 12px;
  background: var(--primary-light);
  font-size: 14px;
  line-height: 1.7;
  color: #4b5870;
}

.notice-box strong {
  display: block;
  margin-bottom: 5px;
  color: var(--primary-dark);
}

/* 프로세스 */

.process-section {
  margin-top: 75px;
}

.section-title span {
  display: block;
  margin-bottom: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--primary);
}

.section-title h3 {
    margin: 0 0 15px 20px;
    color: #222;
    font-size: 30px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: -0.04em;
    position: relative;
}
.section-title h3:before {
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #000;
    position: absolute;
    left: -20px;
    top: 15px;
}

.process-list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.process-item {
  text-align: center;
}

.process-role {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 15px;
  font-weight: 600;
  color: var(--sub-text);
}

.process-circle {
  display: flex;
  width: 155px;
  height: 155px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid #dfe4ef;
  background: #fff;
  transition: .25s ease;
}

.process-item:hover .process-circle {
  border-color: var(--primary);
  background: var(--primary-light);
  transform: translateY(-4px);
}

.process-circle .step {
  margin-bottom: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  color: var(--primary);
}

.process-circle strong {
  font-size: 18px;
  line-height: 1.35;
  letter-spacing: -0.5px;
}

.process-arrow {
  margin-top: 25px;
  font-size: 28px;
  font-weight: 300;
  color: #c1c6d0;
}

/* 문의 */

.contact-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  margin-top: 80px;
  padding: 38px 42px;
  border-radius: 20px;
  background: var(--bg);
}

.contact-label {
  display: inline-block;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1px;
  color: var(--primary);
}

.contact-text h3 {
  margin: 0 0 8px;
  font-size: 24px;
}

.contact-text p {
  margin: 0;
  font-size: 14px;
  color: var(--sub-text);
}

.contact-number {
  display: flex;
  gap: 15px;
  margin-top: 15px;
}

.contact-number a {
  color: var(--text);
  font-size: 22px;
  font-weight: 600;
  text-decoration: none;
}

.sms-button {
  flex-shrink: 0;
  display: inline-flex;
  min-width: 210px;
  height: 56px;
  padding: 0 25px;
  align-items: center;
  justify-content: center;
  border-radius: 50px;
  background: var(--primary);
  box-shadow: 0 8px 20px rgba(82, 119, 199, .2);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  transition: .2s ease;
}

.sms-button:hover {
  background: var(--primary-dark);
  transform: translateY(-2px);
}

.contact-caption {
  margin: 14px 0 0;
  text-align: right;
  font-size: 12px;
  color: #9197a2;
}

/* 태블릿 */

@media (max-width: 1000px) {
  .process-list {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
  }

  .process-arrow {
    display: none;
  }

  .process-circle {
    width: 140px;
    height: 140px;
    margin: 0 auto;
  }
}

/* 모바일 */

@media (max-width: 768px) {
  .program-guide {
    padding: 0px;
  }

  .guide-header {
    margin-bottom: 32px;
  }

  .guide-header h2 {
    font-size: 24px;
  }

  .guide-header p {
    font-size: 15px;
  }

  .guide-grid {
    grid-template-columns: 1fr;
  }

  .guide-card-wide {
    grid-column: auto;
  }

  .guide-card {
    padding: 25px 22px;
    border-radius: 14px;
  }

  .process-section {
    margin-top: 55px;
  }

  .section-title h3 {
    font-size: 24px;
  }
  .section-title h3:before {
		top: 12px;
  }

  .process-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .process-item {
    width: 100%;
  }

  .process-circle {
    width: 100%;
    height: auto;
    min-height: 105px;
    border-radius: 14px;
  }

  .process-arrow {
    display: block;
    margin: 0;
    transform: rotate(90deg);
  }

  .contact-box {
    flex-direction: column;
    align-items: flex-start;
    margin-top: 55px;
    padding: 28px 24px;
  }

  .contact-number {
    flex-direction: column;
    gap: 4px;
  }

  .sms-button {
    width: 100%;
  }

  .contact-caption {
    text-align: center;
    line-height: 1.6;
  }
}




.notice_sec {
	width: 1200px;
	margin: auto;
}

.notice_sec .news_list {border-top: 1px solid #222;}
.notice_sec .news_list a {display: flex; align-items: center; width: 100%; padding: 30px 50px; border-bottom: 1px solid #e5e5e5; transition: background .3s;}
.notice_sec .news_list a:hover {background-color: #F4F4F4;}
.notice_sec .news_list a .num {position: relative; padding-right: 50px; font-family: "Pretendard-Medium" ,sans-serif; font-size: 28px; font-weight: bold; line-height: 1;}
.notice_sec .news_list a .num::after {content: ""; position: absolute; top: 50%; right: 0; transform: translateY(-50%); width: 1px; height: 60px; background-color: #eee;}
/* .notice_sec .news_list a .news_view {display: flex; justify-content: space-between; align-items: center; width: 100%; padding-left: 50px;} */
.notice_sec .news_list a .news_view {padding-left: 50px;}
.notice_sec .news_list a .news_view .title_view {margin-bottom: 20px;}
/* .notice_sec .news_list a .news_view .tit_box .title_view span:first-child {display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; font-family: "Pretendard-Medium", sans-serif; line-height: 42px; word-break: break-all; text-overflow: ellipsis;} */
.notice_sec .news_list a .news_view .title_view p {display: inline-block; padding-right: 6px; font-family: "Pretendard-Medium", sans-serif; font-size: 24px; color: #222; line-height: 42px; word-break: break-all; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical; word-break: keep-all;}

.notice_sec .news_list a .news_view .title_view span.file {display: inline-block; width: 24px; height: 24px; background: url("../images/ico-attachments.svg") no-repeat center center/ 24px 24px;transform: translateY(-8px);}
/* .notice_sec .news_list a .news_view .title_view span.link2 {background-image: url("../images/ico-link2.svg");} */
/* .notice_sec .news_list a .news_view .title_view span:nth-child(2) {margin-left: 8px;} */
/* .notice_sec .news_list a .news_view .title_view span:nth-child(3) {margin-left: 2px;} */
.notice_sec .news_list a .news_view .date {font-family: "Pretendard-Medium" ,sans-serif; line-height: 1; color: #727272;}
.notice_sec .file_layout2 .form_input_file .file_area .file_name:first-child {margin-top: 60px;}
.notice_sec .file_layout2 .form_input_file .file_area .file_name span {display: unset; text-overflow: unset; -webkit-line-clamp: unset; -webkit-box-orient: unset;}

@media all and (max-width: 1500px) {
	.notice_sec {
		width: 100%;
		padding: 0 10px;
	}
	.notice_sec .news_list a {padding: 30px 40px;}
}
@media all and (max-width: 1024px) {
	.notice_sec .news_list a {position: relative; padding: 30px;}
	.notice_sec .news_list a .num {padding-right: 40px;}
	.notice_sec .news_list a .news_view {padding-left: 40px;}
}
@media all and (max-width: 768px) {
	.notice_sec .news_list a {position: relative; display: block; padding: 20px 15px;}
	.notice_sec .news_list a .num {font-size: 20px !important;}
	.notice_sec .news_list a .num::after {display: none;}
	.notice_sec .news_list a .news_view {padding-left: 0;}
	.notice_sec .news_list a .news_view .title_view {margin: 12px 0 15px;}
	.notice_sec .news_list a .news_view .title_view span:first-child {font-size: 18px; line-height: 28px;}
	.notice_sec .news_list a .news_view .title_view span.file {width: 20px; height: 20px; margin-left: 2px; background-size: 20px 20px; transform: translateY(-4px);}
	.notice_sec .news_list a .news_view .date {font-size: 14px;}
	.notice_sec .btn_area {margin-top: 40px;}

	.notice_sec .news_list a .news_view .title_view p {display: inline-block; padding-right: 6px; font-family: "Pretendard-Medium", sans-serif; font-size: 18px; color: #222; line-height: 26px; word-break: break-all; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical; word-break: keep-all;}
}


.about_cont2 {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 36px;
}
.about_cont2 .faq_srch {
    width: 300px;
    margin: 0;
}
.form_input {
    display: inline-block;
    position: relative;
    vertical-align: middle;
    width: 100%;
}
.about_cont2 .faq_srch .form_input input {
    padding: 0 66px 0 40px;
}
.form_input.pop_srch input {
    height: 56px;
    padding: 0 76px 0 40px;
    border-radius: 100px;
}
.form_input input {
    width: 100%;
    height: 48px;
    padding: 0 45px 0 20px;
    color: #222;
    border: 1px solid #ddd;
    font-size: 16px;
}
input[type="text"] {
    background: #fff;
    -webkit-appearance: none;
    -webkit-box-shadow: none;
    box-shadow: none;
}
.form_input.pop_srch .btn_srch {
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    width: 56px;
    height: 56px;
	border: 0;
    /* background: #961E1E; */
	background : #000;
    border-radius: 100%;
	cursor: pointer;
	color: #fff;
}
.form_input.pop_srch .btn_srch img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.btn_area {
    display: flex;
    justify-content: center;
    margin-top: 60px;
    text-align: center;
}
.btn_type1 {
    box-sizing: border-box;
    display: inline-block;
    padding: 0 40px;
    min-width: 142px;
    height: 64px;
    line-height: 63px;
    text-align: center;
    vertical-align: top;
    border: 0;
    color: #fff;
    background: #000;
    font-family: "Pretendard-Medium";
}
.n_body .cont {
	margin-top: 20px;
}
.page_info {
  width: 100%;
  color: #888;
  padding: 1rem 2rem;
  border: 1px solid #d1d1d1;
  margin: 50px auto 0;
  letter-spacing: -.04rem;
  text-align: left;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.page_info li {
	position: relative;
  font-size: 14px;
  color: #878787;
  line-height: 1.1rem;
	padding-left: 15px;
}
.page_info li + li {
  margin-top: 5px;
}

.page_info li::before {
  content: "";
	position: absolute;
	left: 0;
  display: inline-block;
  margin-right: .1rem;
  color: #878787;
  font-size: 14px;
}

@media (max-width: 768px) {
    .about_cont2 {
        flex-direction: column-reverse;
        align-items: normal;
        margin-bottom: 16px;
    }
}
@media (max-width: 768px) {
    .about_cont2 .faq_srch {
        width: 100%;
        margin-bottom: 32px;
    }
}

.highlight{
    background:#ffeb3b;
    color:#000;
}


.inner_type2 {max-width: 1200px; margin: 0px auto 0;}
.notice_wrap .n_head {padding-bottom: 60px; border-bottom: 1px solid #E5E5E5;}
.notice_wrap .n_head .info_box {display: flex; align-items: center;}
.notice_wrap .n_head .info_box .cate {position: relative; padding-right: 20px; margin-right: 20px; line-height: 1;}
.notice_wrap .n_head .info_box .cate::before {content: ""; position: absolute; top: 50%; right: 0; transform: translateY(-50%); width: 1px; height: 20px; background-color: #E5E5E5;}
.notice_wrap .n_head .info_box .date {font-family: "Pretendard-Medium", sans-serif; color: #727272; line-height: 1;}
.notice_wrap .n_head .tit {margin-top: 10px; font-family: "Pretendard-Medium", sans-serif; font-size: 40px; color: #222; line-height: 60px; word-break: break-all;}
.notice_wrap .n_body {padding: 60px 0 30px; border-bottom: 1px solid #E5E5E5;}
.notice_wrap .n_body p {line-height: 38px; word-break: break-all;}
.notice_wrap .n_body p img {max-width: 100% !important;}
/* .notice_wrap .n_body .txt {line-height: 38px;}
.notice_wrap .n_body .img_box {text-align: center;}
.notice_wrap .n_body .img_box img {max-width: 100%; margin: 4px 0;} */
/* .notice_wrap .form_input_file {margin-top: 23px; margin-bottom: -10px;}
.notice_wrap .form_input_file .file_area {padding-top: 0;}
.notice_wrap .form_input_file .file_area .file_name:first-child {margin-top: 30px;}
.notice_wrap .form_input_file .file_area .file_name {margin-right: 8px;} */

@media all and (max-width: 1024px) {
	.inner_type2 {margin: 30px auto 0;}
}
@media all and (max-width: 768px) {
	/* .inner_type2 {margin: 98px auto 0;} */

	.notice_wrap .n_head {padding-bottom: 32px;}
	.notice_wrap .n_head .info_box .cate {font-size: 16px;}
	.notice_wrap .n_head .tit {margin-top: 40px; font-size: 20px !important; line-height: 30px;}
	.notice_wrap .n_body {padding: 32px 0;}
	.notice_wrap .n_body p {font-size: 16px; line-height: 29px;}
}


.pagination {display: flex;justify-content: center;text-align: center;margin: 50px 0; }
.pagination li {margin-right: 20px; color: #ccc; }
.pagination li:last-child {margin-right: 0; }
.num.is-active {color: #0e2a4c;position: relative;}
.num.is-active:after {content:"";display: block;width: 100%;position: absolute;height: 1px;background: #0e2a4c;transition: color 0.5 ease;}



/* FAQ */
.faq-wrap{
    padding: 20px 0;
    font-family:'Pretendard',sans-serif;
}
.faq-wrap .inner{
    width:1200px;
    max-width:calc(100% - 0px);
    margin:0 auto;
}
.sub-title{
    text-align:center;
    margin-bottom:50px;
}
.sub-title span{
    display:inline-block;
    color:#0F766E;
    font-weight:700;
    letter-spacing:2px;
    margin-bottom:12px;
}
.sub-title h2{
    font-size:42px;
    margin-bottom:15px;
    color:#111;
}
.sub-title p{
    color:#777;
    font-size:17px;
}

.faq-list{
    border-top:2px solid #222;
}
.faq-list li{
    background:#fff;
    border-bottom:1px solid #e5e5e5;
    transition:.3s;
}
.faq-question{
    width:100%;
    padding:28px 20px;
    display:flex;
    align-items:center;
    border:0;
    background:none;
    cursor:pointer;
    text-align:left;
}
.faq-question .q{
    width:42px;
    height:42px;
    border-radius:50%;
    background:#0F766E;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:700;
    margin-right:20px;
    flex-shrink:0;
}
.faq-question strong{
    flex:1;
    font-size:20px;
    color:#222;
    font-weight:600;
}
.faq-question i{
    width:14px;
    height:14px;
    border-right:2px solid #666;
    border-bottom:2px solid #666;
    transform:rotate(45deg);
    transition:.35s;
    margin-left:15px;
}

.faq-answer{
    display:none;
}
.answer-box{
    display:flex;
    gap:20px;
    padding:0 20px 30px 20px;
    margin-left:62px;
}
.answer-box .a{
    width:42px;
    height:42px;
    border-radius:50%;
    background:#E8F6F4;
    color:#0F766E;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:700;
    flex-shrink:0;
}
.answer-box p{
    color:#555;
    line-height:1.9;
    font-size:16px;
    padding-top:8px;
}

.faq-list li.active{
    background:#fcfffe;
}
.faq-list li.active .faq-question i{
    transform:rotate(-135deg);
}
.faq-list li.active .faq-answer{
    display:block;
}

@media (max-width:768px){

    .faq-wrap{
        padding:10px 0;
    }

    .sub-title h2{
        font-size:30px;
    }

    .faq-question{
        padding:22px 15px;
    }

    .faq-question strong{
        font-size:17px;
        line-height:1.5;
    }

    .faq-question .q,
    .answer-box .a{
        width:34px;
        height:34px;
        font-size:14px;
    }

    .answer-box{
        margin-left:0;
        padding:0 15px 25px;
        gap:15px;
    }

}





@media (max-width:768px){
	.sub-title-box {
		height: 270px;
		padding-top: 50px;
	}
	.sub-title-desc {
		font-size: 14px;
		letter-spacing: -0.033em;
		margin-bottom: 10px;
		font-weight: 400;
		line-height: 20px;
	}
	.sub-title-sign {
		max-width: 100%;
		font-size: 34px;
		font-weight: bold;
	}
	.sub-title-inner {
		width: 100%;
		max-width: 100%;
		padding: 0 20px;
	}
	.sub-menu-inner {
		max-width: 100%;
		width: 100%;
		margin: 0 10px;
	}
	.sub-content-title {
		font-size: 30px;
		font-weight: 500;
		gap: 13px;
		margin-bottom: 20px;
	}
	.sub-content-box {
		padding: 50px 0 80px;
	}

	.program-label {
		font-size: 18px;
	}

	.schedule-head h2:before {
		content: '';
		width: 8px;
		height: 8px;
		border-radius: 50%;
		background: #000;
		position: absolute;
		left: -20px;
		top: 10px;
	}

	.guide-header h2:before {
		content: '';
		width: 8px;
		height: 8px;
		border-radius: 50%;
		background: #000;
		position: absolute;
		left: -20px;
		top: 12px;
	}

	.contact-text h3 {
		margin: 0 0 8px;
		font-size: 20px;
	}

	.sub-content-title > span {
		width: 1px;
		height: 35px;
		background: #9E9E9F;
	}
}