@charset "utf-8";
@import url('./pc-shell.css');
/* 
	common.css : 헤더, 푸터, 레이아웃 정의
*/

html {
	scrollbar-gutter: stable;
	font-family: 'pretendard', sans-serif;
	height: 100%;
}

body{
	width:100%;
    min-width:375px;
	position: relative;
	margin: 0 auto;
	overflow-x: hidden;
	overflow-y: auto;
	background: #fff;
	min-height: 100%;
}

html.is-side-menu-open,
body.is-side-menu-open{
	overflow: hidden;
	touch-action: none;
	overscroll-behavior: none;
}

main{
	position: relative;
	overflow: hidden;	
}

button{
	border: none;
	cursor: pointer;
	background: none;
	color: var(--color__basic);
	font: inherit;
	-webkit-tap-highlight-color: transparent;
	appearance: none;
	-webkit-appearance: none;
}


::-webkit-scrollbar {
    width: 4px;
    height: 8px;
}

/* 스크롤바 배경 */
::-webkit-scrollbar-track {
    background: #F9F9F9;
    border-radius: 999px;
}

/* 스크롤바 */
::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 999px;
}

/* 마우스 오버 */
::-webkit-scrollbar-thumb:hover {
    background: #999;
}

a{
	text-decoration: none;
}

h2{
	margin: 0;
}

.main__visual__wr{
	width:100%;
    margin:0 auto;
}

.inner__full__mobile{
	position: relative;
	width: 100%;
	margin: 0 auto;
	padding: 0 20px;
	box-sizing: border-box;
	overflow:hidden;
}

/* 모달 관련 */
.dim{
	display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.7);
    z-index: 1000;
}

.dim.is-active{
	display: block;
}

html:has(body .dim.is-active),
body:has(.dim.is-active) {
    height: 100%;
    overflow: hidden !important;
    overscroll-behavior: none;
}

body.is-pc-shell:has(.dim.is-active) .index-pc-device__viewport > main {
    overflow-y: hidden !important;
    overscroll-behavior: none;
}

.modal.is-active{
    opacity: 1;
    visibility: visible;
	padding: 0 0 40px;
    transform: translate(-50%, 0);
}	
@media screen and (max-width: 767px) {
    .modal.is-active#workplace__modal {
        max-height: 400px;
        overflow-y: auto;
    }

    #workplace__modal .modal__handle {
        position: sticky !important;
        top: 0;
        z-index: 10;
        flex-shrink: 0;
        background: #fff;
    }
}


.modal.is-dragging{
    transition: none;
}

.modal{
    opacity: 0;
    visibility: hidden;
    position: fixed;
    bottom: 0;
    left: 50%;
    width: 100%;
	height: auto;
    transform: translate(-50%, 100%);
    border-radius: 20px 20px 0 0;
    background: #ffffff;
    z-index: 1001;
    transition: transform .35s cubic-bezier(0.32, 0.72, 0, 1), translate .35s cubic-bezier(0.32, 0.72, 0, 1), opacity .35s ease, visibility .35s;
    box-sizing: border-box;
}

.modal__handle{
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: center;
    padding: 16px 0;
    margin-bottom: 24px;
    cursor: grab;
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
}

.modal__handle.is-dragging{
    cursor: grabbing;
	transition: none;
}

.modal__handle span{
    display: block;
    width: 53px;
    height: 4px;
    border-radius: 100px;
    background: #D9D9D9;
}

.modal__wr{
	padding: 0 20px;
}

.modal__title{
	display: block;
	font-size: 20px;
	font-weight: 700;
	line-height:1.1;
	margin-bottom: 24px;
}

.modal__content{
	display: flex;
	flex-direction: column;
}

.sub__button{
	display: block;
	width: 100%;
	text-align: center;
    padding: 18px 0;
    border-radius: 8px;
    background: #136CED;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.4px;
    box-sizing: border-box;
}

.sub__button.sub__button--outline{
    background: #FFF;
    border: 1px solid #136CED;
    color: #191919;
}

/* --- 하단 고정 CTA (공통) --- */
.sub__fixed__bottom {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10;
    padding: 0 20px 40px;
    box-sizing: border-box;
    pointer-events: none;
}

.sub__fixed__bottom .sub__button {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    transform: none;
    width: 100%;
    margin: 0 auto;
    pointer-events: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 54px;
    padding: 12px 16px;
    box-sizing: border-box;
}

.sub__button.sub__fixed__btn {
    position: fixed;
    width: calc(100% - 40px);
    bottom: calc(40px + env(safe-area-inset-bottom, 0px));
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 54px;
    padding: 12px 16px;
    box-sizing: border-box;
}

.inner__full__mobile:has(> .sub__fixed__btn),
.inner__full__mobile:has(> .sub__fixed__bottom),
.inner__full__mobile:has(.todaymission__content > .sub__fixed__btn),
.todaymission__content:has(.sub__fixed__btn) {
    padding-bottom: calc(54px + 80px + env(safe-area-inset-bottom, 0px));
}

/******************************************************************************
 header { ******************************************************************************* */
.header{
	background: #FFF;
	display: block;
	position: fixed;
	width:100%;
	min-width:375px;
	margin:0 auto;
	z-index: 500;
}

.header.is-active{
	display: none;
}

.logo{
	color: var(--color__basic);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	margin: 0;
}

.header__inner{
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 18px 20px;
}


#sub-header{
	display: none;
}
.header__sub__inner{
	display: flex;
	position: relative;
	justify-content: space-between;
	align-items: center;
	padding: 18px 20px;
}

.header__sub__inner span{
	text-align: center;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.5px;
	position: absolute;
    left: 50%;
    transform: translateX(-50%);
    max-width: calc(100% - 96px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    pointer-events: none;
}

.header__menu{
	display: none;
	width: 24px;
	height: 24px;
	background: url('../assets/svg/main_menu.svg') center center / contain no-repeat;
}

.header__menu.is-active{
	display: block;
}

.header__menu.is-open{
	background: url('../assets/svg/header-close.svg') center center / contain no-repeat;
}

.back__button{
	position: relative;
	z-index: 2;
	display: block;
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	background: url('../assets/svg/back.svg') center center / contain no-repeat;
}

.back__button::before{
	content: '';
	position: absolute;
	top: -12px;
	right: -12px;
	bottom: -12px;
	left: -12px;
}

.header__right__box{
	display: flex;
	gap: 16px;
}

.header__right__box.is-active{
	display: none;
}

.header__menu__search{
	display: none;
	width: 24px;
	height: 24px;
	background: url('../assets/svg/search.svg') center center / contain no-repeat;
}

.header__menu__search.is-active{
	display: block;
}

.header__close{
	display: block;
    width: 24px;
    height: 24px;
	background: url('../assets/svg/header-close.svg') center center / contain no-repeat;	
}
/* } header *****************************************************************************
***************************************************************************************/



/******************************************************************************
side menu { ******************************************************************************* */
.side__menu__section{
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	background: #F7F7F7;
	transform: translateX(100%);
	transition: transform 0.5s cubic-bezier(0.32, 0.72, 0, 1), visibility 0s linear 0.5s;
	visibility: hidden;
	pointer-events: none;
	z-index: 1000;
	overflow: hidden;
	overscroll-behavior: none;
}

.side__menu__section.is-active{
	transform: translateX(0);
	visibility: visible;
	pointer-events: auto;
	transition: transform 0.5s cubic-bezier(0.32, 0.72, 0, 1), visibility 0s;
	display: flex;
	flex-direction: column;
}

.side__menu__section.is-closing{
	transform: translateX(100%);
	visibility: visible;
	pointer-events: none;
	transition: transform 0.5s cubic-bezier(0.32, 0.72, 0, 1), visibility 0s linear 0.5s;
}

.side__menu__top{
	display: flex;
	justify-content: flex-end;
	align-items: center;
	flex-shrink: 0;
	padding: 18px 20px 0;
}

.side__menu__close{
	display: block;
	width: 24px;
	height: 24px;
	border: 0;
	padding: 0;
	background: url('../assets/svg/header-close.svg') center center / contain no-repeat;
	cursor: pointer;
}

.side__menu__content{
	margin-top: 0;
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 12px;
    width: 100%;
    padding: 10px 20px 24px;
    box-sizing: border-box;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    flex: 1;
    min-height: 0;
}

.side__menu__profile{
	display: flex;
	gap: 16px;
	align-items: center;
	padding: 12px 20px;
	background: #fff;
	border-radius: 10px;
}

.side__menu__profile>img{
	width: 60px;
	height: 60px;
	border-radius: 180px;
	background: rgba(19, 108, 237, 0.13);
}

.side__menu__profile__text{
	display: flex;
	flex-direction: column;
	gap: 3px;
	justify-content: flex-start;
}

.profile__name{
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.5px;
	text-transform: capitalize;
}

.profile__button{
	display: flex;
	align-items: center;
	gap: 7px;

	color: var(--color__text02);
	font-size: 12px;
	line-height: 1.3;
	letter-spacing: -0.3px;
	text-align: left;
}

.profile__button>img{
	width: 5px;
	height: 10px;
}

.side__menu__point{
	position: relative;
	display: flex;
	padding: 20px;
	padding-right: 10px;
	border-radius: 10px;
	background: #136CED;
	justify-content: space-between;
    align-items: center;
}

.side__menu__point::after{
	content: '';
	position: absolute;
	top: 10px;
	right: 10px;
	width: 70px;
	height: 70px;
	transform: rotate(15deg);
	background: url('../assets/img/sidemenu_point.png') center center / contain no-repeat;	
}

.side__menu__point__text{
	display: flex;
	flex-direction: column;
	gap: 4px;
	
	color: #fff;
	font-size: 12px;
	line-height: 20px
}

.my__point{
	font-size: 24px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -1.2px;
}

.side__menu__link{
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px 20px 16px;
	border-radius: 10px;
	background: #FFF;
}

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

.side__menu__link__box a{
	display: flex;
	padding: 8px 0;
	gap: 14px;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: -0.35px;
	line-height: 24px;
}

.side__menu__link__box a img{
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	object-fit: contain;
}

.side__menu__title{
	color: #191919;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.3px;
}

.side__menu__info{
	display: flex;
	flex-direction: column;
	padding: 0 20px;
	border-radius: 10px;
	background: #FFF;
}

.side__menu__link__specialquiz{
	padding: 0 20px;
    border-radius: 10px;
    background: #FFF;
}

.side__menu__link__specialquiz a{
	display: flex;
	gap: 4px;
    padding: 16.5px 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.35px;
	align-items: center;
}

.side__menu__link__specialquiz a img{
	width: 24px;
    height: 24px;
    flex-shrink: 0;
    object-fit: contain;
	margin-right: 10px;
}

.side__menu__info__box a{
	display: flex;
	justify-content: space-between;
	padding: 16.5px 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -0.35px;
}

.side__menu__staff__button{
	margin: 32px auto 20px;
	text-align: center;
}

.side__menu__staff__button a{
	display: inline-flex;
	justify-content: center;
	gap: 4px;

	color: var(--color__text02);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -0.35px;
}

.side__menu__logoout__button{
	margin: 0 auto 36px;
}

.side__menu__logoout__button a{
	display: flex;
	gap: 4px;

	color: var(--color__text02);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -0.35px;
}


/* 프로필 변경 모달 */
.profile__button__box{
	align-items: center;
	gap: 20px;
}

.profile__button__box>img{
	width: 100px;
	height: 100px;
	border-radius: 241.935px;
	background: rgba(19, 108, 237, 0.13);
}

.profile__img__box{
	display: flex;
	gap: 8px;
	margin-bottom: 32px;
}

.profile__img__box>img{
	width: 60px;
	height: 60px;
	border-radius: 180px;
	opacity: 0.4;
	cursor: pointer;
}

.profile01.is-active{
	opacity: 1;
	border: 1px solid #136CED;
}

.profile02.is-active{
	opacity: 1;
	border: 1px solid #FFC636;
}

.profile03.is-active{
	opacity: 1;
	border: 1px solid #EF2637;
}

.profile04.is-active{
	opacity: 1;
	border: 1px solid #832BF7;
}

.profile__bottom__button{
	display: flex;
	gap: 15px
}

.profile__bottom__button button{
	width: 50%;
}

.profile__bottom__button .cancel{
	background: linear-gradient(0deg, #F1F1F1 0%, #F1F1F1 100%), rgba(255, 255, 255, 0.50);
	color: #A3A6A9;
}





/* } side menu *****************************************************************************
***************************************************************************************/




/******************************************************************************
footer { ******************************************************************************* */
#footer{
	position: fixed;
	z-index: 10;
	left: 0;
	right: 0;
	width:100%;
	bottom: 0;
	min-width:375px;
	padding: 16px 0 calc(16px + env(safe-area-inset-bottom, 0px));
	border-radius: 10px 10px 0 0;
	background: #FFF;
	box-shadow: 0 -4px 20px 0 rgba(19, 108, 237, 0.10);
	box-sizing: border-box;
}

#footer-area{
	height: 0;
	overflow: visible;
}

.footer__button__wr{
	display: flex;
	height: 100%;
	justify-content: space-around;	
}

.footer__button__box{
	display: flex;
	flex-direction: column;
	justify-content: center;
    align-items: center;
	height: 60px;
	flex: 1 0 0;
	gap: 4px;
	cursor: pointer;
}

.footer__button__box span{
	color: #DDD;
	font-size: 10px;
	font-weight: 500;
	line-height: normal;
	letter-spacing: -0.24px;
}

.footer__button__box.is-active span{
	color: var(--color__basic);
}

.footer__button__box.is-active .footer__button__img__01{
	background: url('../assets/svg/home.svg') center center / contain no-repeat;
}

.footer__button__box.is-active .footer__button__img__02{
	background: url('../assets/svg/gift.svg') center center / contain no-repeat;
}

.footer__button__box.is-active .footer__button__img__03{
	background: url('../assets/svg/user.svg') center center / contain no-repeat;
}

.footer__button__img__01{
	width: 24px;
	height: 24px;
	background: url('../assets/svg/home-basic.svg') center center / contain no-repeat;
}

.footer__button__img__02{
	width: 24px;
	height: 24px;
	background: url('../assets/svg/gift-basic.svg') center center / contain no-repeat;
}

.footer__button__img__03{
	width: 24px;
	height: 24px;
	background: url('../assets/svg/user-basic.svg') center center / contain no-repeat;
}


/* 768px 이하에서 적용할 스타일 */
@media (max-width: 768px) {
    #footer{
		padding: 0 0 8px;
	}

	.footer__button__box{
		height: 56px;
	}

}


/* } footer *****************************************************************************
***************************************************************************************/
/* #52463A */

/* #372C24 */
