/* =============================
   layout.css   
   ============================= */

/* base */
[class*="inner-ct"] {
	position: relative;	
	max-width: 1200px;
	margin: 0 auto;
}

.page--home {
	position: relative;
	padding-bottom: 10rem;
}

.page--home.is-scrolled {
	margin-top: 148px;
}

.page--section,
.page--view {
	margin-top: 78px;
	padding: 3.6rem 0 10rem;
}

/* base - sub */
.page__layout {
	display: block;
	position: relative;
	width: 100%;
}

.page__layout--sub {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 3.6rem;
	margin: 0 auto;
}

.page__layout--sub .page__main {
	max-width: 864px;
	width: 100%;
}

.page__layout--sub .page__aside {
	width: 300px;
}


.page--view .page__layout--sub .page__main {
	max-width: 580px;
	width: 100%;
	margin: 0 auto;
}


/* header */
.site-header {
	position: relative;
	width: 100%;
	background-color: var(--background-default);
	z-index: 999;
}

.site-header--sub {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
}

.site-header--sub .site-topbar {
	display: none;
}

.home .site-header--sub {
	animation: slideDown 0.3s ease-out forwards;
}

/* header - topBar */
.site-topbar {
	background: var(--background-darklight);
	border-bottom: 1px solid var(--stroke-separator);
}

.site-topbar__inner-ct {
	display: flex;
	justify-content: space-between;
	height: 40px;
}

.topbar-news {
	display: flex;
	align-items: center;
}

.topbar-news__label {
	margin-right: 8px;
	white-space: nowrap;
	font-size: 1.4rem;
	color: var(--text-impact);
}

.topbar-news__list {
	width: 500px;
}

.topbar-news__title {
	font-size: 14px;
	font-weight: 400;
	color: var(--text-primary);
}

.topbar-meta {
	display: flex;
	gap: 28px;
	align-items: center;
	justify-content: flex-end;
	width: 30%;
	font-size: 13px;
	color: var(--text-primary);
}

.topbar-meta__menu {
	display: flex;
	gap: 24px;
	font-weight: 500;
}

.topbar-meta__menu .divider-left::before {
	left: -12px;
	background-color: var(--stroke-vertical);
}

.ico-flag { 
    display: flex;    
    gap: 6px;
    align-items: center;
}

.ico-flag::before { 
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-repeat: no-repeat;    
    background-size: 16px 16px;
}

.ico-flag--en::before { 
    background-image: var(--svg-ico-flag-us-16);
}

/* header - logo */
.site-header__inner-ct {	
	width: 100%;	
	padding: 44px 0 10px;
}

.site-header__inner-ct::before { 
	content: "";
    position: absolute;	
	right: 0;	
	bottom: 0;
	left: 0;
	height: 2px;   
	background-color: var(--stroke-impact);
}

.site-header__logo {			
	width: 340px;
	height: 27px;
	margin: 0 auto;
	background: var(--svg-logo-fn) no-repeat 0 0 / contain;
}

.site-header__logo .site-header__logo-link {
	display: block;
	width: 100%;
	height: 100%;
}

/* header - GNB */
.site-header__nav {		
	display: flex;		
	justify-content: center;
	gap: 32px;;	
	margin-top: 42px;	
}

.site-header__nav-list {
	display: flex;
	gap: 8px;	
}

.site-header__nav-item {
	font-size: 16px;
	font-weight: 700;
}

.site-header__nav-item a {
	display: block;
	padding: 7px 8px;
	white-space: nowrap;
}

/* header - util */
.site-header__util {	
	position: absolute;
	right: -5px;
    bottom: 10px;
	left: -5px;
	height: 0;
}

.site-header__util .util-icon {
	display: flex;
	align-items: flex-end;	
	justify-content: space-between;	
	height: 0;
}

.util-menu {
	display: flex;
	align-items: center;
	grid-column: 1 / span 2;
	justify-self: flex-end;
	margin-bottom: 16px;
}

.util-menu .util-menu__btn {
	padding: 5px 12px;
	font-weight: 600;
	background: var(--background-dark);
	border-radius: 3px;
}

.util-menu .util-menu__btn+.util-menu__btn {
	margin-left: 6px;
}

.util-menu .util-menu__btn--eng {
	display: flex;
	gap: 6px;
	align-items: center;
}

.util-menu .util-menu__btn--eng::before {
	content: "";
	display: block;
	width: 16px;
	height: 16px;
	background: var(--svg-ico-flag-us-16) no-repeat;
}


.nav-side.divider-left::before { 
	top: 10px;
	bottom: 10px;
	left: -16px;
}

.nav-side__list {
	display: flex;
	gap: 8px;
	justify-content: flex-end;
}

.nav-side__item {
	font-size: 16px;
	font-weight: 500;
	color: var(--text-secondary);
}

.nav-side__item a { 
	display: block;
	padding: 8px;
}

.nav-side__item::before {
	left: -13px;
}

/* header - sub */
.site-header--sub .site-header__inner-ct {	
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 78px;
	padding: 0;
	border-bottom: none;
}

.site-header--sub .site-header__inner-ct::before {	
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 100vw;
	height: 1px;
	background-color: var(--stroke-separator);
}

/* header - sub - logo */
.site-header--sub .site-header__logo {	
	width: 200px;
	height: 16px;
	margin: 0;
	background: var(--svg-logo-fn) no-repeat 0 0 / contain;
}

/* header - sub - GNB */
.site-header--sub .site-header__nav { 
	margin-top: 0;
}
.site-header--sub .site-header__nav .site-header__nav-list {
	justify-content: center;
}
.site-header--sub .nav-side {
	display: none;	
}

/* header - sub - util */
.site-header--sub .site-header__util { 
	position: relative;
	inset: unset;
	width: 200px;
	height: auto;
}
.site-header--sub .site-header__util .util-icon { 	
	gap: 4px;
	justify-content: flex-end;
	height: auto;
}
.btn-toggle.is-active {
	background: var(--svg-ico-close-20) no-repeat center;
}

/* header, footer - menu all */
.menu-all__mhead { 
	display: none;
}
.menu-all__list {
	display: grid;	
	grid-template-columns: repeat(6, minmax(0, 1fr));
	grid-auto-rows: auto;	
	row-gap: 38px;
	padding: 38px 0;
}

.menu-all__item {	
	padding: 0 18px;
	border-left: 1px solid var(--stroke-separator)
}
.menu-all__item--tall { 
	grid-column: 6;      
  	grid-row: 1 / span 2;
}

.menu-all__title {
	font-size: 16px;
	font-weight: 600;
}

.menu-all__body {
	display: block;
	margin-top: 12px;
}
.menu-all__body-all { 
	display: none;
}
.menu-all__body li {	
	margin-top: 10px;
	font-size: 14px;
	color: var(--text-secondary);
}

.menu-all__item:nth-of-type(1), 
.menu-all__item:nth-of-type(6) {
	padding-left: 0;
	border-left: none;
}

.menu-all__item:nth-of-type(6n + 6) {
	padding-right: 0;
}

.menu-all__body-etc li {
	font-size: 15px;
	font-weight: 600;
}

.menu-all__body-etc li:not(:first-child) {
	margin-top: 16px;
}

/* header - menu all */
.site-header .menu-info {
	border: none;
}

.site-header .menu-info .menu-info__inner-ct {
	border-top: 1px solid var(--stroke-separator);
}

/* header - layer */
.header-layer {
	display: none;
	position: absolute;
	left: 0;
	right: 0;
	background: var(--background-default);
	z-index: 99999;
	-webkit-box-shadow: 0 6px 8px 0 rgba(0, 0, 0, .1);
	box-shadow: 0 6px 8px 0 rgba(0, 0, 0, .1);
}

.header-layer.is-active {
	display: block;
	top: 201px;
}

.header-layer:has(.search-header) {
	padding-bottom: 48px;
}

.site-header--sub .header-layer.is-active {
	top: 78px;
}

/* header - social */
.social__nav .social__list {
	display: flex;
	gap: 2px;
	align-items: center;
}

.social__nav .social__list .social__item {
	width: 38px;
	height: 38px;
	background-repeat: no-repeat;
	background-position: center;
}

.social__nav .social__list .social__item a {
	display: block;
	width: 100%;
	height: 100%;
}

/* header - search */
.search-header {
	margin: 38px 0 0;
}

.search-header .search-header__inner-ct {
	max-width: 720px;
}

.search-header__form {
	position: relative;
}

.search-header__input {
	width: 100%;
	box-sizing: border-box;
	height: 60px;
	padding: 0 20% 0 2.8rem;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4;
	background-color: var(--background-darklight);
	border-radius: 99px;
	border: 1px solid #e0e0e0;
	outline: none;
}

.search-header__input::placeholder {
	font-weight: 400;
	color: var(--text-description);
}

.search-header__actions {
	display: flex;
	align-items: center;
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	padding-right: 10px;
}

.search-header__actions button {
	width: 46px;
	height: 46px;
	padding: 0;
	border: none;
	cursor: pointer;
}

.search-header__actions button::before {
	content: "";
	display: block;
	width: 46px;
	height: 46px;
	margin: 0 auto;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px 20px;
}

.search-header__option {
	background: var(--background-dark);
	border-radius: 50%;
}

.search-header__submit::before {
	background-image: var(--svg-ico-search-20);
}

.search-header__option::before {
	background-size: 20px 20px;
	background-image: var(--svg-ico-option-20);
}

/* header - search rank */
.rank-hit {
	margin-top: 38px;
}

.rank-hit .rank-hit__inner-ct {
	max-width: 480px;
}

.rank-hit .rank-hit__inner-ct .article-list__title {
	white-space: nowrap;
	max-height: unset;
}

/* footer - menu all */
.menu-all--footer {
	border-top: 1px solid var(--stroke-separator);
}

/* footer - menu info */
.menu-info {
	border-top: 1px solid var(--stroke-separator);
}

.menu-info .menu-info__inner-ct {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 48px;
}

.menu-info .menu-info__nav .menu-info__list {
	display: flex;
	gap: 38px;
}

.menu-info .menu-info__nav .menu-info__list .menu-info__item {
	font-size: 14px;
	font-weight: 500;
}

.menu-info .menu-info__nav .menu-info__list .menu-info__item a {
	display: block;
	padding: 15px 0;
	white-space: nowrap;
}

.menu-info .family__nav .family__list {
	display: flex;
	gap: 18px;
	align-items: center;
	height: 100%;
}

.menu-info .family__nav .family__list .family__item a {
	display: block;
	height: 17px;
}

.menu-info .family__nav .family__list .family__item img {
	height: 100%;
}

/* footer - info */
.footer-info {
	padding: 24px 0 60px;
	background-color: var(--background-footer);

}

.footer-company {
	margin-top: 20px;
}

.footer-company .footer-company__item {
	position: relative;
	font-size: 14px;
	color: var(--text-description)
}

.footer-company .footer-company__copy { 
	font-size: 14px;
}

.footer-company__contact,
.footer-company__staff {
	display: flex;
	gap: 0 10px;
	margin-bottom: 4px;
}

.footer-company__contact span+span::before,
.footer-company__staff span+span::before {
	content: "";
	display: inline-block;	
	width: 1px;
	height: 12px;	
	margin: 0 10px -1px 0;
	background-color: var(--stroke-vertical);
}

.footer-company--copy {
	color: var(--text-secondary)
}


@media (max-width: 1280px) {
	:root {
        font-size: 58%;
    }

	[class*="inner-ct"] {				
		max-width: 1024px;		
		padding-left: 40px;
		padding-right: 40px;				
	}		
	.site-header .site-header__inner-ct::before { 
		left: 40px;
		right: 40px;
	}
	.site-header--sub .site-header__inner-ct {		
		padding: 0 40px;	
	}
	.site-header--sub .site-header__inner-ct::before { 
		left: 50%;
		right: unset;			
	}
	.site-header__nav { 
		gap: 24px;
	}	
	.nav-side.divider-left::before { 
		left: -12px;
	}
	.site-header__nav-list,
	.nav-side__list { 
		gap: unset;
	}	
	.nav-side__item { 
		font-size: 15px;
	}
	.site-header__util { 
		right: 35px;
		left: 35px;
	}	
	.menu-info .menu-info__nav .menu-info__list { 
		gap: 20px;
	}	
}

@media (max-width: 1024px) {
	
	[class*="inner-ct"] {				
		max-width: 768px;		
		padding: 0 20px;		
	}
	.site-header { 		
		position: fixed;
		top: 0;
    	right: 0;
    	left: 0;
		overflow: visible; 
        z-index: 100;
	}	
	.site-header .site-header__inner-ct { 
		display: flex;
		align-items: center;
		justify-content: space-between;		
		padding: 0 20px;
		height: 55px;	
	}
	.site-header .site-header__inner-ct::before { 		
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		width: 100vw;
	}	
	.site-header--sub .site-header__inner-ct::before { 
		left: 50%;
		right: unset;	
	}		
	.site-header .site-header__logo {
		margin: 0; 
		width: 200px;
		height: 17px;		
	}		
	.site-topbar, .site-header__nav, .util-menu, .nav-side { 
		display: none;
	}
	.site-header__util { 
		position: relative;
		inset: unset;		
		height: auto;
		margin-right: -8px;
	}
	.site-header__util .util-icon { 
		height: auto;
	}
	.header-layer.is-active	{
		top: 55px;
	}
	.search-header { 
		margin-top: 24px;
	}
	.rank-hit { 
		margin-top: 28px;
	}
	.page--home { 
		margin-top: 5.5rem;
	}
	.page__view, .page__layout--sub { 
		grid-template-columns: minmax(0, 1fr);
	}	
	.page__layout--sub .page__aside { 
		width: 100%;				
	}
		
	.page--section,
	.page--view {
		margin-top: 55px;
		padding: 3.6rem 0 7rem;		
	}	

	/* 전체 메뉴 */	
	body:has(.header-layer.is-active) { 
		overflow: hidden;
	}	
	.header-layer:has(.search-header) { 
		padding-bottom: 2.4rem;
	}
	.header-layer.is-active { 
		top: 55px;
	}
	.site-header--sub .header-layer.is-active { 
		top: 55px;
	}
	.menu-all__mhead { 		
		display: grid;
    	grid-template-columns: auto 1fr auto;	
		gap: 4px;
		align-items: center;
		position: fixed;				
		max-width: calc(768px - 40px);
		width: calc(100% - 40px);
		height: 55px;
		background-color: var(--background-default);
		z-index: 9;
	}
	.menu-all__mhead::before { 
		content: "";
		position: absolute;
		right: 0;
		bottom: 0;
		left: 0;
		height: 3px;
		background-color: var(--stroke-primary);
	}
	.menu-all__logo { 
		display: block;
		width: 200px;
		height: 17px;;
		background: var(--svg-logo-fn) no-repeat 0 0 / contain;
	}
	.menu-all__close { 		
		margin-right: -7px;
		background: var(--svg-ico-close-20) no-repeat center;
	}
	.menu-all__en { 
		justify-self: flex-end;
		display: inline-block;
		width: 40px;
		height: 40px;
		background-color: var(--background-dark);
		background-image: var(--svg-ico-flag-us-16);
		background-repeat: no-repeat;
		background-position: center;
		background-size: 20px;	
		border-radius: 50%;	 
	}
	#menu-all.header-layer {
		display: none;										    	
	}
	#menu-all.header-layer.is-active { 
		display: block; 
		position: fixed;
		inset: 0;    			
		height: 100vh;
		height: 100dvh; 		
		background: var(--background-default);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;		
		padding-bottom: env(safe-area-inset-bottom, 20px); 
		box-sizing: border-box;
	}		
	#menu-all .menu-all {		
		position: relative;		
    	overflow-y: auto;
    	-webkit-overflow-scrolling: touch;
		z-index: 2;			
	}	
	.site-header .menu-info {
		position: relative;	
		z-index: 2;		
	 }
	#menu-all .menu-all__list {		
		display: block;
		padding: 54px 0 0;		
		gap: 0;
	}
	#menu-all .menu-all__item {
		display: block;
		width: 100%;				
		padding: 0;
		background-image: var(--svg-ico-plus-20);		
		background-repeat: no-repeat;
		background-position: right top 19px;
		border-left: 0;
		border-top: 1px solid var(--stroke-separator);
	}	
	#menu-all .menu-all__item:has(.menu-all__body-etc) { 
		background: none;
	}
	#menu-all .menu-all__item.is-open { 
		background-image: var(--svg-ico-minus-20);
	}
	#menu-all .menu-all__item .menu-all__body-etc { 
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 4px 10px;
		padding: 10px 0;
	}
	#menu-all .menu-all__item .menu-all__body-etc li { 
		margin: 0;
		font-size: 18px;
	}
	#menu-all .menu-all__item .menu-all__body-etc li a { 
		display: block;
		padding: 10px 0;
	}
	#menu-all .menu-all__title { 
		display: block;
		width: 100%;
		padding: 16px 0;
		font-size: 18px;
	}
	.menu-all__body li {
		margin-top: 0; 
		font-size: 16px;
	}
	.menu-all__body li a { 
		display: block;
		padding: 4px 0;
	}
	#menu-all .menu-all__body { 
		display: none;		
	}
	#menu-all .menu-all__item.is-open .menu-all__body {
    	display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 4px 10px;
		margin-top: 0;
		padding-bottom: 16px;
  	}	  	
	#menu-all .menu-all__item.is-open .menu-all__body-all {
		display: block;
	}
	.menu-info .menu-info__inner-ct { 
		flex-direction: column;
		height: auto;
		padding: 0;
	}
	.menu-info .menu-info__inner-ct .menu-info__nav { 
		width: 100%;
		padding: 16px 20px;
		background: var(--background-darklight);
	}
	.menu-info .menu-info__nav .menu-info__list { 
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 10px 16px;
		
	}
	.menu-info .menu-info__nav .menu-info__list .menu-info__item { 
		font-size: 15px;
		text-align: center;
	}
	.menu-info .menu-info__nav .menu-info__list .menu-info__item a { 
		padding: 4px 0;
	}
	.social__nav { 
		display: block;
		width: 100%;
		padding: 18px 20px;
	}
	.social__nav .social__list { 
		justify-content: space-evenly;
	}
	.social__nav .social__list .social__item { 
		width: 40px;
		height: 40px;
		background-size: 32px 32px;
	}
	.footer { 
		border-top: 1px solid var(--stroke-separator);
	}
	.menu-all--footer,
	.footer .menu-info,
	.family__nav {
		display: none;	
	}	 

	.footer .menu-info__list .menu-info__item:nth-child(2), 
	.footer .menu-info__list .menu-info__item:nth-child(4),
	.footer .menu-info__list .menu-info__item:nth-child(5),
	.footer .menu-info__list .menu-info__item:nth-child(8) { 
		display: none;
	}
	footer .menu-info .menu-info__inner-ct .menu-info__nav { 
		background-color: var(--background-default);
	}
	.footer-company__contact, .footer-company__staff { 
		flex-wrap: wrap;
	}
	.footer-company__copy { 
		font-size: 13px;
		margin-top: 16px;
	}
}

@media (max-width: 768px) {	
	:root {
        font-size: 62.5%;
    }	
	.page--section,
	.page--view {		
		padding: 2rem 0 3.6rem;
	}	
	.rank-hit { 
		margin-top: 2.4rem;
	}
	.rank-hit .rank-hit__inner-ct { 
		max-width: unset;
		margin: 0 24px;
		padding: 0;
	}
	.rank-hit .section-title { 
		font-size: 1.6rem;
		padding-bottom: 2rem;
	}
	.rank-hit .article-list__item:not(:first-child) { 
		margin-top: 1.2rem;
		padding-top: 1.2rem;
	}
	.rank-hit .article-list__title { 
		margin-left: 2.6rem;
		font-size: 1.5rem;
		line-height: unset;
	}	
	.rank-hit .article-list--rank .article-list__body::before { 
		width: 20px;
		height: 20px;
		font-size: 13px;
	}
	.page__layout--sub .page__aside { 
		padding-top: 3.4rem;
	}	
	.search-header .search-header__inner-ct { 
		max-width: unset;
	}	
	.page--home { 
		padding-bottom: 2.4rem;
	}
	.footer-company { 
		overflow: hidden;
	}
	.footer-company__contact, .footer-company__staff { 		
		margin-bottom: 6px;
		margin-left: -11px;				
	}
	.footer-company__contact .footer-company__item:first-child,
	.footer-company__staff .footer-company__item:first-child
	 { 
		padding-left: 11px;
	}		
  
}


/* animation */
@keyframes slideDown {
	from {
		transform: translateY(-20px);
	}

	to {
		transform: translateY(0);
	}
}