@charset "utf-8";

.main-page #wrap,
.main-page #content.main-content{
	width:100%;
	margin:0;
	padding:0;
	overflow:hidden;
	background:#fff;
}

.main-hero{
	position:relative;
	width:100%;
	height:900px;
	overflow:hidden;
	background:#9fd3f5;
}

.main-hero-media,
.main-hero-video,
.main-hero-city,
.main-hero-design{
	position:absolute;
	top:0;
	left:50%;
	height:100%;
	max-width:none;
	transform:translateX(-50%);
}

.main-hero-video{
	width:100%;
	object-fit:cover;
	object-position:center bottom;
}

.main-hero-media{
	left:0;
	width:100%;
	transform:none;
}

.main-hero-video{
	z-index:0;
	opacity:0;
	visibility:hidden;
	transition:opacity .15s linear;
}

.main-hero-video.is-active{
	opacity:1;
	visibility:visible;
}

.main-hero-city{
	z-index:1;
	top:auto;
	bottom:0;
	width:2560px;
	height:233px;
	pointer-events:none;
}

.main-hero-design{
	z-index:2;
	width:1500px;
	clip-path:inset(100px 0 0 0);
	pointer-events:none;
}

.main-hero-copy{
	position:relative;
	z-index:3;
	padding-top:208px;
	opacity:0;
	text-align:center;
}

.main-hero-copy h2{
	margin:0;
	font-size:56px;
	font-weight:900;
	line-height:1.25;
	letter-spacing:-3px;
	color:var(--renewal-blue);
	text-shadow:0 1px 0 rgba(255,255,255,.2);
}

.main-hero-copy h2 strong{
	color:#ef365e;
	font-weight:900;
}

.main-hero-copy p{
	margin:18px 0 0;
	font-size:18px;
	font-weight:600;
	letter-spacing:-.6px;
}

.main-updates{
	position:relative;
	min-height:730px;
	overflow:hidden;
	padding:56px 0 70px;
	background:#fff;
}

.main-updates-grid{
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(0,1fr);
	gap:44px;
	align-items:start;
	min-width:0;
}

.main-promotion{
	position:relative;
	min-width:0;
	padding-top:58px;
}

.main-slider-status{
	position:absolute;
	top:0;
	left:16px;
	display:flex;
	gap:10px;
}

.main-slider-status button{
	display:block;
	width:28px;
	height:28px;
	padding:0;
	border:0;
	border-radius:50%;
	background:#aaa;
	cursor:pointer;
}

.main-slider-status button:hover,
.main-slider-status button:focus,
.main-slider-status button.is-active{
	background:#ffa23f;
}

.main-slider-status button:focus-visible{
	outline:3px solid rgba(255,162,63,.35);
	outline-offset:4px;
}

.main-slider-status.is-single{
	display:none;
}

.main-visual-slider,
.main-visual-slider .slick-list,
.main-visual-slider .slick-track,
.main-visual-slide{
	height:520px;
}

.main-visual-slider{
	width:100%;
	min-width:0;
	max-width:100%;
	overflow:hidden;
	border-radius:var(--renewal-radius);
	background:#fff;
	box-shadow:var(--renewal-shadow);
}

.main-visual-slider .slick-list,
.main-visual-slide{
	min-width:0;
}

/* 팝업존 하단 캐릭터는 합성 시안 전체를 배경으로 쓰지 않고 필요한 영역만 잘라 사용합니다. */
.main-promotion-character{
	position:absolute;
	z-index:3;
	left:90px;
	top:520px;
	display:block;
	width:600px;
	height:330px;
	background:url("/img/main_promotion_characters.png") 50% 50% / contain no-repeat;
	pointer-events:none;
}

.main-visual-slide a,
.main-visual-slide picture{
	display:block;
	height:100%;
}

.main-visual-slide img{
	display:block;
	width:100%;
	height:100%;
	object-fit:contain;
	background:#fff;
}

.main-notice-card{
	min-width:0;
	min-height:610px;
	padding:0;
	background:transparent;
	border:0;
	box-shadow:none;
}

.main-card-heading{
	display:flex;
	align-items:center;
	justify-content:space-between;
	height:58px;
	padding:0 12px;
	border:0;
}

.main-card-heading h2{
	display:inline-block;
	margin:0;
	font-family: 'Cafe24Surround';
	font-size:32px;
	font-weight:900;
	line-height:1.3;
	letter-spacing:-1.5px;
	background:linear-gradient(90deg,#ec008c 0%,#e80084 40%,#ad168e 68%,#662d91 100%);
	-webkit-background-clip:text;
	background-clip:text;
	color:transparent;
}

.main-more-link{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:64px;
	height:38px;
	padding:0 16px;
	border-radius:18px;
	background:#9b55dd;
	color:#fff;
	font-size:14px;
	font-weight:700;
}

.main-notice-list{
	min-height:520px;
	padding:22px 28px;
	border-radius:var(--renewal-radius);
	background:#fff;
	box-shadow:var(--renewal-shadow);
}

.main-notice-list ul{
	margin:0;
	padding:0;
	list-style:none;
}

.main-notice-list li{
	display:grid;
	grid-template-columns:minmax(0,1fr) auto auto;
	gap:8px 22px;
	align-items:center;
	min-height:78px;
	padding:11px 0;
	border-bottom:1px solid var(--renewal-line);
}

.main-notice-list li:last-child{
	border-bottom:0;
}

.main-notice-source{
	grid-column:1 / -1;
	justify-self:start;
	padding:4px 10px;
	border:1px solid #ff7097;
	border-radius:14px;
	color:#f1537e;
	font-size:11px;
	font-weight:700;
}

.main-notice-list a{
	overflow:hidden;
	font-size:14px;
	font-weight:600;
	text-overflow:ellipsis;
	white-space:nowrap;
}

.main-notice-list time{
	font-size:12px;
	color:#999;
	white-space:nowrap;
}

.main-notice-period{
	font-size:12px;
	color:#666;
	white-space:nowrap;
}

.main-empty-message{
	margin:0;
	padding:190px 0;
	text-align:center;
	color:#888;
}

.main-search-section{
	position:relative;
	min-height:850px;
	overflow:hidden;
	padding:118px 0 102px;
	background:var(--renewal-soft-pink);
}

.main-search-section .site-container{
	position:relative;
}

.main-search-heading{
	position:relative;
	z-index:2;
	margin-bottom:56px;
	text-align:center;
}

.main-search-heading h2{
	font-family: 'Cafe24Surround';
	display:inline-block;
	margin:0;
	font-size:50px;
	font-weight:900;
	line-height:1.1;
	letter-spacing:-2px;
	color:#242424;
}

.main-search-title-blue{
	color:#198bd3;
}

.main-search-title-gradient{
	font-weight:900;
	background:linear-gradient(90deg,#ed0b66 0%,#df0870 42%,#8a238b 76%,#76238c 100%);
	-webkit-background-clip:text;
	background-clip:text;
	color:transparent;
}

.main-search-title-black{
	color:#242424;
}

.main-search-heading p{
	margin:12px 0 0;
	font-size:17px;
	font-weight:700;
}

.main-search-cards{
	position:relative;
	z-index:2;
	display:grid;
	width:100%;
	min-width:0;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:42px;
}

.search-card{
	display:flex;
	flex-direction:column;
	width:100%;
	min-width:0;
	min-height:470px;
	padding:42px 52px 44px;
	border:0;
	border-radius:var(--renewal-radius);
	background:#f1f7ff;
	box-shadow:var(--renewal-shadow);
	position:relative;
}

.search-card-resource{background:#f7faef;}
.search-card-program{background:#f7f3ff;}

.search-card-header-img { position:absolute; top:-188px; left:50%; margin-left:-130px;}
.search-card-header-img2 { position:absolute; top:-188px; left:50%; margin-left:-135px;}
.search-card-header{
	display:flex;
	align-items:center;
	gap:18px;
	margin-bottom:32px;
	padding:0;
	background:transparent;
}

.search-card-header img{
	flex:0 0 64px;
	width:64px;
	height:64px;
	border-radius:50%;
	object-fit:cover;
}

.search-card-header h3{
	font-family: 'Cafe24Surround';
	margin:0;
	font-size:25px;
	font-weight:900;
	letter-spacing:-0.06em;
	color:var(--renewal-blue);
}

.search-card-resource .search-card-header h3{color:var(--renewal-green);}
.search-card-program .search-card-header h3{color:var(--renewal-purple);}

.main-search-form{
	display:flex;
	flex-direction:column;
	flex:1 1 auto;
	width:100%;
	min-width:0;
	gap:12px;
}

.main-form-row{
	display:grid;
	width:100%;
	min-width:0;
	grid-template-columns:78px 1fr;
	align-items:center;
	gap:12px;
}

.main-form-row label{
	font-size:15px;
	font-weight:700;
}

.main-form-row select,
.main-form-row input{
	width:100%;
	min-width:0;
	height:48px;
	padding:0 16px;
	border:1px solid #e2e2e2;
	border-radius:11px;
	background:#fff;
	color:#444;
}

.main-search-submit{
	font-family: 'Cafe24Surround';
	position:relative;
	height:52px;
	margin-top:auto;
	padding:0 20px 0 50px;
	border:0;
	border-radius:10px;
	background:#1766c8 url("/img/icon_search_white.png") calc(50% - 61px) 50% / 28px 28px no-repeat;
	color:#fff;
	font-size:22px;
	font-weight:900;
}

.search-card-resource .main-search-submit{background-color:var(--renewal-green);}
.search-card-program .main-search-submit{background-color:var(--renewal-purple);}

.main-search-submit:before{
	display:none;
}

.main-search-submit:after{
	display:none;
}

/* 1920px 시안 기준의 데스크톱 배치입니다. 실제 입력·버튼·목록만 표시해 기능과 디자인을 함께 유지합니다. */
@media all and (min-width:1501px){
	.main-updates{
		height:900px;
		min-height:900px;
		padding:0;
		background:#fff;
	}

	.main-updates-grid{
		position:relative;
		width:1460px;
		height:900px;
		gap:40px;
	}

	.main-promotion{
		padding-top:138px;
	}

	.main-slider-status{
		top:49px;
		left:13px;
	}

	.main-visual-slider,
	.main-visual-slider .slick-list,
	.main-visual-slider .slick-track,
	.main-visual-slide{
		height:486px;
	}

	.main-notice-card{
		position:relative;
		min-height:0;
		padding-top:138px;
	}

	.main-card-heading{
		position:absolute;
		top:35px;
		left:0;
		width:100%;
		height:60px;
	}

	.main-card-heading h2{
		font-size:36px;
	}

	.main-more-link{
		min-width:64px;
		height:44px;
		border-radius:21px;
	}

	.main-notice-list{
		height:663px;
		min-height:663px;
	}

	.main-promotion-character{
		left:90px;
		top:520px;
	}

	.main-search-section{
		height:850px;
		min-height:850px;
		padding:118px 0 102px;
		background:#f3d8e9;
	}

	.main-search-section .site-container{
		height:auto;
	}

	.main-search-heading{
		position:relative;
		margin-bottom:56px;
	}

	.main-search-cards{
		position:relative;
		width:1460px;
		margin:0 auto;
		grid-template-columns:repeat(3,minmax(0,1fr));
		gap:44px;
	}

	.search-card{
		height:488px;
		min-height:488px;
		padding:40px 60px 58px;
		border-radius:24px;
		box-shadow:var(--renewal-shadow);
	}

	.search-card-institution{background:#f1f7ff;}
	.search-card-resource{background:#f7faef;}
	.search-card-program{background:#f7f3ff;}

	.search-card-header{
		gap:10px;
		margin-bottom:30px;
	}

	.search-card-header img{
		flex-basis:96px;
		width:96px;
		height:96px;
	}

	.search-card-header h3{
		font-size:31px;
	}

	.main-search-form{
		gap:10px;
	}

	.main-form-row select,
	.main-form-row input{
		height:52px;
	}

	.main-search-submit{
		height:54px;
		font-size:24px;
	}

	.main-form-row label{
		font-size:17px;
	}

	.main-search-submit:before{
		top:16px;
		width:17px;
		height:17px;
	}

	.main-search-submit:after{
		top:32px;
		width:9px;
	}

	.main-search-submit:focus-visible{
		outline:3px solid rgba(20,117,202,.4);
		outline-offset:3px;
	}
}

@media all and (max-width:1500px){
	.main-hero-design{display:none;}
	.main-hero-copy{opacity:1;}
}

@media all and (max-width:1200px){
	.main-hero-copy h2{font-size:46px;}
	.search-card{padding-right:30px;padding-left:30px;}
	.main-search-cards{gap:24px;}
}

@media all and (max-width:900px){
	.main-hero{
		height:680px;
	}

	.main-hero-city{
		width:150%;
		height:auto;
	}

	.main-hero-copy{
		padding-top:170px;
	}

	.main-hero-copy h2{
		font-size:38px;
		letter-spacing:-2px;
	}

	.main-hero-copy p{
		font-size:15px;
	}

	.main-updates-grid{
		grid-template-columns:1fr;
		width:100%;
		min-width:0;
	}

	.main-promotion,
	.main-notice-card{
		min-width:0;
		max-width:100%;
		width:100%;
		margin:0 auto;
	}

	.main-visual-slider,
	.main-visual-slider .slick-list{
		width:100%;
		min-width:0;
		max-width:100%;
	}

	.main-search-cards{
		grid-template-columns:1fr;
		width:100%;
		max-width:620px;
		margin:0 auto;
	}

	.search-card{
		min-height:0;
	}
	.search-card-header-img { display:none;}
	.search-card-header-img2 { display:none;}

	/* 데스크톱 시안용 하단 캐릭터가 좁은 화면의 다음 카드까지 밀어내지 않도록 숨깁니다. */
	.main-promotion-character{
		display:none;
	}
}

@media all and (max-width:600px){
	.main-hero{
		height:600px;
	}

	.main-hero-copy{
		padding-top:150px;
	}

	.main-hero-copy h2{
		font-size:31px;
		line-height:1.3;
	}

	.main-hero-copy h2 span,
	.main-hero-copy h2 strong{
		display:block;
	}

	.main-hero-copy p{
		max-width:310px;
		margin-right:auto;
		margin-left:auto;
		font-size:13px;
		line-height:1.6;
	}

	.main-updates{
		padding-top:36px;
	}

	.main-promotion{
		padding-top:45px;
	}

	.main-slider-status button{
		width:20px;
		height:20px;
	}

	.main-visual-slider{
		height:auto;
		aspect-ratio:710 / 486;
	}

	.main-visual-slider .slick-list,
	.main-visual-slider .slick-track,
	.main-visual-slide{
		height:100%;
	}

	.main-notice-card{
		min-height:0;
	}

	.main-card-heading h2{
		font-size:27px;
	}

	.main-notice-list{
		min-height:0;
		padding:15px 20px;
	}

	.main-notice-list li{
		min-height:70px;
	}

	.main-notice-source{
		display:none;
	}

	.main-notice-period{
		display:none;
	}

	.main-search-section{
		padding:60px 0;
		min-height:0;
	}

	.main-search-heading{
		margin-bottom:38px;
	}

	.main-search-heading h2{
		max-width:340px;
		margin-right:auto;
		margin-left:auto;
		font-size:29px;
		line-height:1.25;
		letter-spacing:-1.4px;
		word-break:keep-all;
	}

	.main-search-heading p{
		font-size:13px;
		line-height:1.6;
	}

	.search-card{
		padding:32px 24px;
	}

	.search-card-header h3{
		font-size:22px;
	}

	.main-form-row{
		grid-template-columns:68px 1fr;
	}

	.main-search-submit{
		font-size:20px;
	}
}

@media (prefers-reduced-motion:reduce){
	.main-hero-video{
		transition:none;
	}
}
