/* 모바일 기본 공통 스타일 */
html {
  font-size: 62.5%;
}

body {
    background-color: #fff;
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Pretendard", sans-serif;
}

:root {
  --font-main: "Pretendard";
  --main-blue: #0085D6;
  --main-bg: #F0F1F5;
  --tab-bg: #202020;
  --txt-111: #111;
  --txt-666: #666;
  --txt-fff: #fff;
  --line-ddd: #ddd;
  --line-bd: #bdbdbd;
  --tab-on: #505159;
  --search-bg: #F2F3F6;
  --main-tit-size: 3.8rem;
  --sub-tit-size: 2.8rem;
  --con-tit-size: 2.2rem;
  --info-txt-size: 2.0rem;
  --small-txt-size: 1.8rem;
  --tit-weight: 700;
  --all-radius: 0.8rem;
}

.mobile-wrap{background: var(--main-bg); max-width: 768px; min-height:100vh; height: 100%; margin:0 auto;}
#main.all_wrap{padding: 0 1.6rem 4.0rem;}
.all_wrap{max-width: 768px; margin: 0 auto; padding: 9.0rem 1.6rem 4.0rem;}
h2{font-size: var(--sub-tit-size); font-weight: var(--tit-weight);}
h3{font-size: var(--con-tit-size); font-weight: 700;}
p, span, i, b, em{font-size: var(--info-txt-size);}

/*로그인*/
#login{padding: 2.0rem 1.6rem;}
#login h2{margin-bottom: 4.0rem;}
#login > a{display: block; text-align: center; margin: 5.0rem 0;}
#login .login{margin-bottom: 2.0rem; width: 100%; border-bottom-width: 1px; border-bottom: 1px solid #111;}
#login .login label{display: none;}
#login .login input{width: 100%; padding: 1.0rem; outline: none; font-size: var(--info-txt-size); border-width: 0;}
#login .login.pw input{width: 90%}
#login .login input::placeholder{font-size: var(--info-txt-size);}
#login .login.pw{position: relative}
#login .login.pw button{position: absolute; top: 50%; right: 1.0rem; transform: translateY(-50%);}
#login .id_save{margin: 2.0rem 0 3.0rem;}
#login .id_save label{font-size: var(--info-txt-size); color: var(--txt-111);}
#login .in{width: 100%; padding: 1.0rem; background-color: var(--tab-bg); font-weight: var(--tit-weight); font-size: var(--main-tit-size); color: var(--txt-fff); border-radius: var(--all-radius); border: 0;}
#login .find{display: flex; justify-content: center; gap: 2.0rem; margin: 2.0rem 0 5.0rem;}
#login .find li{position: relative;}
#login .find li a{display: block; font-size: var(--info-txt-size); color: var(--txt-666);}
#login .find li::before{content: ''; position: absolute; top: 0.8rem; right: -0.9rem; width: 1px; height: 1.5rem; background: var(--line-ddd);}
#login .find li:last-child::before{display: none;}
#login .easy_login p{text-align: center; font-size: var(--info-txt-size); margin-bottom: 2.0rem;}
#login .easy_login li{position: relative; text-align: center; gap: 1.5rem; padding: 1.5rem; border-radius: var(--all-radius); font-size: var(--sub-tit-size); font-weight: var(--tit-weight); color: var(--txt-fff);}
#login .easy_login li:nth-child(1){background: #59C452; margin-bottom: 0.5rem;}
#login .easy_login li:nth-child(2){background: #F9E000; color: var(--txt-111); margin-bottom: 0.5rem;}

#login .easy_login li img, .apple-icon{position: absolute; top: 50%; left: 2.0rem; transform: translateY(-50%);}

#login > a img{margin: 0 auto; max-width:180px; width:50%;}

.apple-login{
    align-items:center;
    gap:10px;
    background:#000;
    border-radius:12px;
    padding:12px 16px;
}

.apple-login a{
    color:#fff;
    text-decoration:none;
    font-weight:600;
}

.apple-icon{
    width:39px;
    height:39px;
    color:#fff;
}

.apple-icon svg{
    width:100%;
    height:100%;
    display:block;
}



/* 회원가입 공통 래퍼 */
#register {
  padding: 2.0rem 1.6rem 4.0rem;
}

/* 상단 타이틀 & 설명 */
.join-head {
  margin-bottom: 2.4rem;
}
.join-head h2 {
  font-size: var(--sub-tit-size);
  font-weight: var(--tit-weight);
  margin-bottom: 0.8rem;
}
.join-desc {
  font-size: var(--info-txt-size);
  color: var(--txt-666);
  line-height: 1.5;
  word-break: keep-all;
}

/* 에러 박스 */
.join-error {
  margin-bottom: 1.6rem;
  padding: 1.2rem 1.4rem;
  border-radius: var(--all-radius);
  background: #ffeaea;
}
.join-error p {
  font-size: var(--small-txt-size);
  color: #d70000;
}

/* 입력 카드 */
.join-card {
  padding: 2.0rem 1.8rem;
  background: #fff;
  border-radius: var(--all-radius);
  margin-bottom: 1.6rem;
}

/* 입력 필드 (회원가입 전용) */
#register .login {
  margin-bottom: 1.6rem;
  border-bottom: none;
}
#register .login:last-child {
  margin-bottom: 0;
}
#register .login label {
  display: inline-block;
  margin-bottom: 0.6rem;
  font-size: var(--info-txt-size);
  color: var(--txt-111);
}
#register .login input {
  width: 100%;
  padding: 1.2rem 1.0rem;
  border-radius: var(--all-radius);
  border: 1px solid var(--line-ddd);
  font-size: var(--info-txt-size);
  background-color: #fff;
}
#register .login input::placeholder {
  font-size: var(--info-txt-size);
  color: var(--txt-666);
}

/* 비밀번호 보기 버튼 */
#register .login.pw {
  position: relative;
}
#register .login.pw input {
  padding-right: 3.6rem;
}
#register .login.pw .togglePwd {
  position: absolute;
  top: 50%;
  right: 1.0rem;
  transform: translateY(-50%);
  border: none;
  background: transparent;
  padding: 0;
}
#register .login.pw .pwdViewImg {
  width: 20px;
  height: 20px;
}

/* 성별 선택 – 살짝 강조 */
.gender {
  display: flex;
  flex-wrap: wrap;
  gap: 1.0rem;
  margin: 2.4rem 0 0;
}
.gender label.checked {
  border: 1px solid var(--main-blue);
  color: var(--main-blue);
  background-color: #eef7ff;
}
.gender label {
  width: calc((100% - 1.0rem) / 2);
  background-color: #fff;
  border-radius: var(--all-radius);
  font-size: var(--info-txt-size);
  padding: 1.2rem;
  text-align: center;
  border: 1px solid var(--line-ddd);
  cursor: pointer;
}
.gender label:nth-child(1) {
  width: 100%;
  background: none;
  padding: 0;
  text-align: left;
  border: none;
  display: inline-block;
  margin-bottom: 0.4rem;
  font-size: var(--con-tit-size);
  font-weight: 700;
  cursor: default;
}

.gender label:nth-child(4) {
  width: 100%;
}

/* 가입 완료 버튼 */
#register .in {
  width: 100%;
  padding: 1.2rem;
  margin-top: 0.8rem;
  background-color: var(--tab-bg);
  font-weight: var(--tit-weight);
  font-size: var(--main-tit-size);
  color: var(--txt-fff);
  border-radius: var(--all-radius);
  border: 0;
}

/* 하단 로그인 링크 */
.join-footer {
  margin-top: 1.6rem;
  text-align: center;
}
.back-to-login {
  display: inline-block;
  font-size: var(--info-txt-size);
  color: var(--txt-666);
  margin: 0;
}
.back-to-login span {
  font-weight: 700;
}


/*메인*/
#main > h2{margin-bottom: 2.0rem;}
#main .screen_login a{display: block; text-align: center; margin-bottom: 2.0rem; padding: 1.0rem; background: var(--main-blue); color: var(--txt-fff); border-radius: var(--all-radius); font-size: var(--main-tit-size); font-weight: var(--tit-weight);}
#main .main_tab{display: flex; gap: 10px 10px; margin-bottom: 2.0rem; flex-wrap: wrap;}
#main .main_tab li{width: calc((100% - 10px) / 2); padding: 1.5rem; background: #fff; text-align: center; border-radius: var(--all-radius);}
#main .main_tab li a{display: block;}
#main .main_tab li a img{display: block; margin: 0 auto;}
#main .swiper{height: 10rem; border-radius: var(--all-radius); margin-bottom: 4.0rem;}
#main .swiper-wrapper .swiper-slide{color: var(--txt-fff); position: relative;}
#main .swiper-wrapper .swiper-slide.slide-1{width: 100%; height:100%;}
#main .swiper-wrapper .swiper-slide.slide-2{width: 100%; height:100%;}
#main .swiper-wrapper .swiper-slide p, #main .swiper-wrapper .swiper-slide h2{text-shadow: 0 0 4px rgba(1,1,1,0.7);}
#main .swiper-wrapper .swiper-slide > div{position: absolute; top: 1.5rem; left: 1.5rem;}
#main .swiper-wrapper .swiper-slide > div p{padding-bottom: 0.5rem;}
#main .swiper-wrapper .swiper-slide img{display: block; object-fit: cover; width: 100%;}
#main .swiper-pagination{width: auto; padding: 0.2rem 1.0rem;  background: rgba(1,1,1,0.5); border-radius: var(--all-radius); color: var(--txt-fff); right: 1.0rem; bottom: 1.0rem; left: auto; top: auto;}
#main .notice {margin-bottom: 2.0rem;}
#main .notice > div{display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem;}
#main .notice > div a{font-size: var(--info-txt-size); color: var(--txt-666);}
#main .notice .notice_list{padding: 2.0rem; background: #fff; border-radius: var(--all-radius);}
#main .notice .notice_list li{margin-bottom: 1.5rem;}
#main .notice .notice_list li:last-child{margin-bottom: 0;}
#main .notice .notice_list a{display: flex; gap: 1.0rem; justify-content: space-between;}
#main .notice .notice_list a p{width: calc(100% - 140px); overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; white-space: normal;}
#main .notice .notice_list a span{max-width: 130px; color: var(--txt-666);}
#main small{display: block; text-align: center; color: #ccc; font-size: 1.8rem;}

/*햄버거 버튼*/
.mobile-header-top{position: relative;}
.ham-open {position: fixed; top: 0; left: 50%; width: 100%; height: 100%; max-width: 768px; pointer-events: none; transform: translateX(-50%); opacity: 0;}
.ham-open .dimmed{position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 99; background-color: rgba(1,1,1,0.5); opacity: 0; visibility: hidden; transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;}
.ham-open .white{background: #fff; min-width: 320px; padding: 3.0rem 2.0rem 2.0rem; z-index: 100; position: absolute; top: 0; right: 0; height: 100%; transform: translateX(100%); transition: transform 0.3s ease-in-out; overflow: scroll; box-shadow: 4px 0 4px rgba(0, 0, 0, 0.05);}
.ham-open .top{display: flex; justify-content: space-between; padding-bottom: 2.0rem;}
.ham-open .top img:nth-child(1){width: 72px;}
.ham-open .top img:nth-child(2){width: 16px; height: 16px;}
.ham-open.is-open {pointer-events: auto; opacity: 1; z-index: 100;}
.ham-open.is-open .dimmed {opacity: 1; visibility: visible;}
.ham-open.is-open .white{transform: translateX(0);}
.ham-open .menu-list li{margin-bottom: 3.0rem;}
.ham-open .menu-list li:last-child{margin-bottom: 0;}
.ham-open .menu-list a{display: flex; justify-content: space-between; align-items: center; font-size: var(--sub-tit-size); font-weight: var(--tit-weight);}
.ham-open .menu-list a img {height:fit-content;}
.ham-open .mem_info {border-top: 1px solid var(--line-ddd); border-bottom: 1px solid var(--line-ddd); margin-bottom: 4.0rem; display: flex !important; gap: 10px; padding: 1.5rem 0; align-items: center;}
.ham-open .mem_info > a {display: flex !important; gap: 10px; padding: 1.5rem 0; align-items: center;}
.ham-open .mem_info figure{display: block; width: 60px; height: 60px; overflow: hidden; border-radius: 50%;}
.ham-open .mem_info figure img{object-fit: cover; width: 100%;}
.ham-open .mem_info .my_rank{display: flex; align-items: center; gap: 10px;}
.ham-open .mem_info .my_rank img{width: 25px;}
.ham-open .mem_info a{display: block;}
.ham-open .mem_info a h2{margin-bottom: 1.0rem;}
.ham-open .mem_info a p{background: var(--main-blue); padding: 1.2rem; text-align: center; border-radius: var(--all-radius); color: var(--txt-fff);}
.ham-open .mem-info-text h2 {margin-bottom:0 !important;}

/*스크린 로그인 화면*/
.num_input{text-align: center; height: 100%;}
.num_input > img{margin: 5.0rem auto 2.0rem; display: block; max-width:180px;}
.num_input h2{word-break: keep-all;}
.num_input .otp-wrap{display: flex; gap: 1.0rem; margin: 4.0rem 0;}
.num_input .otp-wrap input{width: calc((100% - 1.0rem) / 5); padding: 2.0rem; background-color: var(--txt-fff); border-radius: var(--all-radius); font-size: var(--info-txt-size); text-align: center;}
.done {display: block; width: 100%; text-align: center; margin-bottom: 2.0rem; padding: 1.0rem; background: var(--main-blue); color: var(--txt-fff); border-radius: var(--all-radius); font-size: var(--main-tit-size); font-weight: var(--tit-weight);}
.num_input .code {font-size:2.8rem; margin-bottom:30px;}

/*대회참가*/
/* 배경 딤드 */
.bottom-sheet-bg{ position: fixed; top: 0; left: 0; width: 100%; height: 100%; /*background: rgba(0,0,0,0.5);*/ display: none; justify-content: flex-end; align-items: flex-end; z-index: 1000; transform: translateY(100%); transition: transform 0.35s ease;}

/* 바텀 시트 */
.bottom-sheet{position: relative; background: #fff;width: 100%;max-height: auto;border-radius: 3.0rem 3.0rem 0 0;display: flex;flex-direction: column;padding: 6.0rem 3.0rem 4.0rem; box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.05); max-width: 768px; margin: 0 auto;}
.bottom-sheet::before{content: ""; width: 6.0rem; height: 3px; border-radius: var(--all-radius); background-color: var(--line-bd); position: absolute; top: 3.0rem; left: 50%; transform: translateX(-50%);}

/* 라디오 버튼 리스트 2열 */
.filter-list, .region-list {display: grid;grid-template-columns: 1fr 1fr;gap: 2.0rem;list-style: none;padding: 0; margin: 0 0 3.0rem 0;}
.filter-list li label, .region-list li label {display: flex;align-items: center;gap: 8px;cursor: pointer;font-size: var(--info-txt-size); font-weight: 500;}

/* 버튼 하단 고정 */
.bottom-sheet-footer {display: flex;justify-content: space-between;margin-top: 2rem;gap: 12px;}
.btn-reset, .btn-confirm {flex: 1;padding: 12px 0;border: none;border-radius: var(--all-radius);font-weight: 700;font-size: var(--main-tit-size);cursor: pointer;}
.btn-reset {background: #f0f0f0;}
.btn-confirm {background:var(--main-blue);color: var(--txt-fff);}

.search-box{position: relative; background-color: var(--main-bg); border-radius: var(--all-radius); margin-bottom: 2.0rem;}
.search-box label{display: none;}
.search-box input{width: 90%; padding: 1.0rem 1.5rem; font-size: var(--sub-tit-size); font-weight: var(--tit-weight);}
.search-box img{position: absolute; right: 1.0rem; top: 50%; transform: translateY(-50%);}
.filter-tab{display: flex; gap: 0.8rem; margin-bottom: 3.0rem;}
.filter-tab li{display: flex; gap: 0.8rem; border: 1px solid var(--line-ddd); padding: 0.5rem 1.5rem; color: var(--txt-666); border-radius: 50px; align-items: center; background-color: #fff;}
.filter-tab li.active{background: #505159; color: var(--txt-fff);}
.filter-tab li span{font-size: var(--sub-tit-size); font-weight: var(--tit-weight); }
.filter-tab li img{width: 12px; height: 6px;}
.rally-list a {display: block; padding: 1.5rem 0; border-bottom: 1px solid var(--line-ddd);}
.rally-list a span{display: inline-block; font-size: var(--con-tit-size); font-weight: var(--tit-weight); padding: 0.5rem 1.2rem; margin-bottom: 0.5rem; background: #e6e6e6; color: var(--txt-666); border-radius: 50px;}
.rally-list a.ing span{background: var(--main-blue); color: #fff;}
.rally-list a h2{display: block; margin-bottom: 2.0rem;}
.rally-list a ul li{display: flex; gap:1.5rem; font-size: var(--info-txt-size);}
.rally-list a ul li em{min-width:62px; color: var(--txt-666);}
.rally-list a ul li p{width: calc((100% - 62px - 1.5rem)); font-weight: 500;}
/*공통 페이징*/
.paging{display: flex; justify-content: center; gap: 1.0rem; margin: 3.0rem 0 2.0rem;}
.paging li a{padding: 1.0rem;  font-size: var(--info-txt-size); color: var(--txt-666)}
.paging li:first-child a, .paging li:last-child a{font-size: var(--con-tit-size); font-weight: 560; color: var(--txt-111);}
.paging li a.on{color: var(--txt-111); border-bottom: 1px solid #111;}

/*대회보기-상세*/
.rally-detail{background-color: #fff; padding-bottom:2rem !important;}
.rally-detail h2, .ranking h2{ font-size: var(--main-tit-size); margin-bottom: 1.5rem;}
.rally-detail table{width: 100%;}
.rally-detail table tr:nth-child(1){border-top: 1px solid var(--line-ddd);}
.rally-detail table tr{border-bottom: 1px solid var(--line-ddd);}
.rally-detail table tr.block td {white-space: pre-line}
.rally-detail table th{width: 30%; padding: 1.0rem 0; background-color: var(--search-bg); font-size: var(--info-txt-size); font-weight: 500;}
.rally-detail table td{width: 70%; padding: 1.0rem; background-color: #fff; font-size: var(--info-txt-size);}
.rally-detail > div a{display: block; width: 100%; border: 1px solid var(--main-blue); border-radius: var(--all-radius); text-align: center; color: var(--main-blue); padding: 1.0rem; font-size: var(--main-tit-size); font-weight: var(--tit-weight); margin: 3.0rem 0 1.0rem;}
.rally-detail > div + div a{display: block; width: 100%; border: 1px solid var(--main-blue); border-radius: var(--all-radius); background-color: var(--main-blue); text-align: center; color: var(--txt-fff); padding: 1.0rem; font-size: var(--main-tit-size); font-weight: var(--tit-weight); margin: 0 0 1.4rem;}

.all_wrap.ranking.padding{padding: 0 1.6rem 4.0rem;}
.ranking .tab{display: flex; gap: 10px 10px; flex-wrap: wrap; margin-bottom: 1.5rem;}
.ranking .tab li{width: calc((100% - 10px) / 2); padding: 1.0rem; background-color: #fff; font-size: var(--con-tit-size); font-weight: 700; border-radius: var(--all-radius); text-align: center;}
.ranking .tab li.on{background: var(--main-blue); color: var(--txt-fff);}
.ranking .tit{display: flex; margin: 2.0rem 0 1.5rem; justify-content: space-between; align-items: end;}
.ranking .tit h2{font-weight: var(--tit-weight); margin-bottom: 0;}
.ranking .tit span{font-weight: 500; font-size: var(--info-txt-size);}

.award-list li{padding: 1.6rem; background-color: #fff; border-radius: var(--all-radius); margin-bottom: 1.0rem;}
.award-list .award .txt{position: relative; display: flex; gap: 15px; margin-bottom: 2.0rem;}
.award-list .award .txt .profile{width: 72px; height: 72px; border-radius: 50%; overflow: hidden; border: 1px solid var(--line-ddd)}
.award-list .award .txt .medal{position: absolute; top: -1.6rem; right: 1.0rem;}
.award-list .award .txt .profile img{width: 100%; object-fit: cover;}
.award-list .award .txt > div{width: calc(100% - 87px);}
.award-list .award .txt > div h2{margin-bottom: 0.8rem; font-size: var(--sub-tit-size);}
.award-list .award .txt > div p {word-break: break-all; overflow-wrap: break-word; max-width: 80%;}
.award-list .award .txt > div span{display: inline-block; color:  var(--txt-666);}
.award-list .award .info{display: flex; padding: 1.0rem; gap: 1.0rem; justify-content: center; background-color: #FBFBFB; border-radius: var(--all-radius);}
.award-list .award .info dl{width: calc((100% - 2.0rem) / 3); text-align: center;}
.award-list .award .info dt{font-size: var(--info-txt-size); font-weight: 500;}
.award-list .award .info dd{font-size: var(--main-tit-size); font-weight: var(--tit-weight);}
.award-list .normal{position: relative; display: flex; flex-direction: column; gap: 1.0rem;}
.award-list .normal h4{font-size: var(--con-tit-size); font-weight: 700;}
.award-list .normal p {word-break: break-all; overflow-wrap: break-word;}

/*전국랭킹*/
.award-list .award.myrank{margin-bottom: 2.0rem}
.award-list .award.myrank .txt{margin-bottom: 0;}
.award-list .award .txt .rank{position: absolute; top: 0; right: 0;}
.award-list .award .txt .rank img{width: 40px;}
.award-list .rank_list{display: flex; flex-wrap: wrap; gap: 1.0rem 0; border: 1px solid var(--line-ddd);}
.award-list .rank_list dl{width: 50%; display: flex; align-items: center; gap: 1.0rem;}
.award-list .rank_list dl dd{font-size: var(--info-txt-size);}
.award-list .rank_list dl:nth-child(1) dd{color: #FE0000;}
.award-list .rank_list dl:nth-child(2) dd{color: #00A0FE;}
.award-list .rank_list dl:nth-child(3) dd{color: #7DB328;}
.award-list .rank_list dl:nth-child(4) dd{color: #111;}
.award-list .normal img{position: absolute; top: 1.6rem; right: 1.6rem; width: 40px;}

/*매장찾기*/
.shop_list{width: 100%; text-align: center; font-size: var(--info-txt-size); border-top: 1px solid #111; table-layout: fixed;}
.shop_list tr{border-bottom: 1px solid var(--line-ddd);}
.shop_list th{padding: 2.0rem;}
.shop_list td{padding: 2.0rem;}
.shop_list tr td:nth-child(2) a{display: block;  font-weight: 700; font-size: var(--con-tit-size); text-align: left;white-space: nowrap; overflow: hidden; text-overflow: ellipsis; word-break: break-all;}

/*매장찾기-상세*/
.swiper.shop-img{padding-top: 5.5rem;}
.swiper.shop-img .swiper-slide img{width: 100%;}
.swiper.shop-img .swiper-pagination{width: auto; padding: 0.2rem 1.0rem;  background: rgba(1,1,1,0.5); border-radius: var(--all-radius); color: var(--txt-fff); right: 1.0rem; bottom: 1.0rem; left: auto; top: auto;}
.all_wrap.shop-detail{padding: 0 1.6rem 15.0rem;}
.shop-detail{background-color: #fff;}
.shop-detail h2{ font-size: var(--main-tit-size); margin: 3.0rem 0 1.5rem;}
.shop-detail table{width: 100%;}
.shop-detail table tr:nth-child(1){border-top: 1px solid var(--line-ddd);}
.shop-detail table tr{border-bottom: 1px solid var(--line-ddd);}
.shop-detail table th{width: 30%; padding: 1.0rem 0; background-color: var(--search-bg); font-size: var(--info-txt-size); font-weight: 500;}
.shop-detail table td{width: 70%; padding: 1.0rem; background-color: #fff; font-size: var(--info-txt-size);}
.route{padding: 2.0rem 1.6rem; border-radius: var(--all-radius); background: var(--search-bg); font-size: var(--info-txt-size);}
.route p{margin-bottom: 0.5rem;}
.route p:last-child{margin-bottom: 0;}

/*코스보기*/
.course h2{margin-bottom: 1.5rem; font-size: var(--main-tit-size);}
.course-list li{background: #fff; border-radius: var(--all-radius); overflow: hidden; margin-bottom: 1.0rem;}
.course-list li:last-child{margin-bottom: 0;}
.course-list li a figure{display: block; max-height: 140px; overflow: hidden;}
.course-list li a figure img{width: 100%; object-fit: cover;}
.course-list .course-info{padding: 1.6rem;}
.course-list .course-info h3{margin-bottom: 0.5rem;}
.course-list .course-info span{color: #888;}
.all_wrap.total-course{padding: 0 1.6rem 4.0rem;}
.total-course h2{margin-bottom: 1.5rem; font-size: var(--main-tit-size);}
.total-course .search-box{background-color: #fff; border: 1px solid #333;}

/*코스보기-상세*/
.swiper.course-img{padding-top: 5.5rem;}
.swiper.course-img .swiper-slide img{width: 100%;}
.swiper.course-img .swiper-pagination{width: auto; padding: 0.2rem 1.0rem;  background: rgba(1,1,1,0.5); border-radius: var(--all-radius); color: var(--txt-fff); right: 1.0rem; bottom: 1.0rem; left: auto; top: auto;}

/*공지사항*/
.notice-list li{padding: 1.5rem 0; border-top: 1px solid var(--line-ddd); border-bottom: 1px solid var(--line-ddd);}
.notice-list span{color: var(--txt-666);}

/*공지사항-상세*/
.notice-view h2{margin-bottom: 2.0rem;}
.notice-view span{display: inline-block; margin-right: 1.0rem; margin-bottom: 1.0rem; color: var(--txt-666);}
.notice-view .inner{padding: 1.6rem 0 15rem; border-top: 1px solid var(--line-ddd);}
.notice-view .notice-btn{position: fixed; display: flex; width: 100%; gap: 1.0rem; flex-wrap: wrap; border-top: 1px solid var(--line-ddd); padding: 2rem 2%; bottom: 9rem; left: 0; background:#fff;}
.notice-view .notice-btn .prev, .notice-view .notice-btn .next{width: calc((100% - 1.0rem) / 2);}
.notice-view .notice-btn button{display: block;  background-color: var(--search-bg); font-size: var(--main-tit-size); font-weight: var(--tit-weight); padding: 0.5rem; border-radius: var(--all-radius); text-align: center;}
.notice-view .notice-btn .list{width: 100%;}
.notice-view .notice-btn .list a{display: block; padding: 0.5rem; background-color: var(--main-blue); color: var(--txt-fff); border-radius: var(--all-radius); font-size: var(--main-tit-size); font-weight: var(--tit-weight); text-align: center;}

/*마이페이지*/
.my-info{display: flex; gap: 1.5rem; margin-bottom: 2.0rem;}
.my-info figure{width: 9.6rem; border-radius: 50%; overflow: hidden; align-self: flex-start;}
.my-info figure img{width: 100%; object-fit: cover;}
.my-info > div h2{font-size: var(--main-tit-size);}
.my-info > div p{display: flex; gap: 0.5rem; font-size: var(--sub-tit-size); font-weight: 700;}
.my-info > div p img{width: 2.4rem; align-self: center;}

.my-record{display: flex; gap: 1.0rem; margin-bottom: 1.0rem;}
.my-record li{width: calc((100% - 1.0rem) / 2);}
.my-record li a{display: block; width: 100%; height:stretch; padding: 1.0rem; background: #fff; border-radius: var(--all-radius); text-align: center; }
.my-record li a img{margin: 0 auto;}
.my-record li p{font-size: var(--con-tit-size); font-weight: var(--tit-weight);}

.my-tab{display: flex; flex-direction: column; gap: 3.0rem; padding: 2.0rem; background: #fff; border-radius: var(--all-radius); margin-bottom: 1.0rem;}
.my-tab li{position: relative;}
.my-tab li::before{content: ''; width: 7px; height: 12px; background: url(../../image/mobile/ico_right_arrow.png); position: absolute; top: 50%; right: 0; transform: translateY(-50%);}
.my-tab li a{display: flex; gap: 1.5rem;}
.my-tab li a img{align-self: center;}
.my-tab li a p{font-weight: 500;}
.my-tab li:last-child p{font-size: var(--con-tit-size); font-weight: 700;}
.my-tab li:last-child::before{display: none;}

.my-logout {padding: 2.0rem; background: #fff; border-radius: var(--all-radius);}
.my-logout li{position: relative; display: flex; gap: 1.5rem;}
.my-logout li::before{content: ''; width: 7px; height: 12px; background: url(../../image/mobile/ico_right_arrow.png) no-repeat center; position: absolute; top: 50%; right: 0; transform: translateY(-50%);}
.my-logout li img{align-self: center;}
.my-logout li p{font-weight: 500;}

.logout-modal-bg, .secession-modal-bg {position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); display: none; justify-content: center; align-items: center; z-index: 9999;}
.logout-select, .secession-select {max-width: 320px; background: #fff; border-radius: 16px; padding: 2.4rem 2.0rem;text-align: center;}
.logout-select h2, .secession-select h2 {font-size: var(--main-tit-size); margin-bottom: 2.4rem;font-weight: var(--tit-weight);}
.logout-select p, .secession-select p {font-size: var(--info-txt-size); margin: 0.5rem 0; word-break: keep-all;}
.logout-select .warn, .secession-select .warn {color: #d70000;}
.logout-btn-wrap, .secession-btn-wrap {display: flex; justify-content: center; gap: 1.0rem; margin-top: 2.4rem;}
.logout-btn-wrap form{width: calc((100% - 1.0rem) / 2);}
.logout-btn-wrap a,.logout-btn-wrap button, .secession-btn-wrap a,.secession-btn-wrap button { width: 100%; padding: 1.0rem; border-radius: var(--all-radius); font-size: var(--main-tit-size); font-weight: var(--tit-weight); border: 1px solid var(--main-blue); cursor: pointer;}
.logout-btn-wrap .yes, .secession-btn-wrap .yes {color: var(--main-blue);}
.logout-btn-wrap .no, .secession-btn-wrap .no {width: calc((100% - 1.0rem) / 2); background: var(--main-blue);color: var(--txt-fff);}

/*라운드기록*/
.my-round-info{text-align: center;}
.my-round-info figure{border-radius: 50%; overflow: hidden; width: 9.6rem; margin: 0 auto 0.5rem;}
.my-round-info figure img{width: 100%; object-fit: cover;}
.my-round-info h2{margin-bottom: 0.5rem;}
.my-round-info p{margin-bottom: 1.5rem;}

.my-round-record{display: flex; gap: 1.0rem; justify-content: center; padding: 1.0rem; margin-bottom: 1.5rem; background-color: var(--main-blue); border-radius: var(--all-radius); color: var(--txt-fff);}
.my-round-record li{width: calc((100% - 1.0rem) / 2); text-align: center;}

.round-filter-tabs{display: flex; margin-bottom: 2.0rem;}
.round-filter-tabs button{width: calc(100% / 3); padding: 1.0rem; border-bottom: 1.5px solid var(--line-bd); font-size: var(--con-tit-size); font-weight: 700; color: var(--txt-666); word-break:keep-all; letter-spacing:-0.5px;}
.round-filter-tabs button.active{border-bottom: 2px solid #111; color: var(--txt-111);}

.find-history h2{margin-bottom: 1.5rem; font-size: var(--sub-tit-size);}

.period-tabs{display: flex; margin-bottom: 1.5rem;}
.period-tabs button{width: calc(100% / 4); border: 1px solid var(--line-ddd); padding: 1.0rem; background: #fff; font-size: var(--info-txt-size);}
.period-tabs button:first-child{border-radius: 8px 0 0 8px;}
.period-tabs button:last-child{border-radius: 0 8px 8px 0;}
.period-tabs button.active{background-color: var(--tab-bg); color: #fff;}

.date-range{display: flex; gap: 0.5rem; margin-bottom: 2.5rem; font-size: var(--info-txt-size); align-items: center;}
.date-range button{background-color: #fff; border-radius: var(--all-radius); border: 1px solid var(--line-ddd); width: calc((100% - 2.5rem) / 2); display: flex; justify-content: space-between; padding: 1.0rem;}
.date-range button img{align-self: center;}

.history-list{padding: 1.6rem; background: #fff; border-radius: var(--all-radius); margin-bottom:1.5rem;}
.history-list span{display: inline-block; margin-bottom: 1.0rem; color: var(--txt-666);}
.history-list h3{font-size: var(--info-txt-size);}
.history-list > p{padding-bottom: 1.0rem; margin-bottom: 1.0rem; border-bottom: 1px solid var(--line-ddd);}
.history-list ul{display: flex; gap: 1.0rem; padding: 1.0rem; background-color: var(--main-blue); border-radius: var(--all-radius);}
.history-list ul li{width: calc((100% - 2.0rem) / 3); color: #fff; text-align: center;}

/*회원정보*/
.profile-edit{text-align: center; margin-bottom: 1.0rem;}
.profile-edit a{display: inline-block; position: relative;}
.profile-edit a figure{width: 96px; margin: 0 auto; border-radius: 50%; overflow: hidden;}
.profile-edit a img{width: 100%; object-fit: cover;}
.profile-edit a span{position: absolute; bottom: 0; right: 0; width: 32px; height: 32px; border: 1px solid var(--line-ddd); background: url(../../image/mobile/ico_pencil.png) no-repeat center, rgba(0,0,0); border-radius: 50%;}

.mem-edit .ne{margin-bottom: 2.5rem;}
.mem-edit .ne label{display: inline-block; margin-bottom: 0.5rem; font-size: var(--con-tit-size); font-weight: 700;}
.mem-edit .ne input{padding: 1.6rem 1.0rem; width: 100%; background: #fff; border-radius: var(--all-radius); font-size: var(--info-txt-size);}
.mem-edit .ne label input::placeholder{font-size: var(--info-txt-size); color: var(--txt-666);}
.mem-edit .edit{width: 100%; padding: 1.0rem; background-color: var(--main-blue); border-radius: var(--all-radius); color: #fff; font-size: var(--main-tit-size); font-weight: var(--tit-weight);}
.mem-edit .secession{font-size: var(--small-txt-size); display: block; width: fit-content; margin: 3.0rem auto 0;}

/*개인정보처리방침*/
.privacy-list{margin-bottom: 2.0rem; padding: 1.6rem; background-color: #fff; border-radius: var(--all-radius);}
.privacy-list h2{margin-bottom: 1.0rem; font-size: var(--small-txt-size); font-weight: 700;}
.privacy-list h3{margin-bottom: 2.0rem; font-size: var(--small-txt-size); font-weight: 500;}
.privacy-list ul li{font-size: var(--small-txt-size); margin-bottom: 2.0rem;}
.privacy-list ul li:last-child{margin-bottom: 0;}
.privacy-list ul li h4{margin-bottom: 0.5rem; font-weight: 500;}
.privacy-list ul li p{font-size: var(--small-txt-size);}

/*서비스이용약관*/
.term-list{margin-bottom: 2.0rem; padding: 1.6rem; background-color: #fff; border-radius: var(--all-radius);}
.term-list > p{font-size: var(--small-txt-size);}
.term-list h2{margin-bottom: 1.0rem; font-size: var(--small-txt-size); font-weight: 700;}
.term-list h3{font-size: var(--small-txt-size); font-weight: 500;}
.term-list ol{margin: 2.0rem 0 0;}
.term-list ol li{font-size: var(--small-txt-size); margin-bottom: 2.0rem;}
.term-list ul li{font-size: var(--small-txt-size); margin-bottom: 1.0rem;}
.term-list ol li:last-child, .term-list ul li:last-child{margin-bottom: 0;}
.term-list ol li h4, .term-list ul li h4{margin-bottom: 0.5rem; font-weight: 500;}
.term-list ol li p, .term-list ul li p{font-size: var(--small-txt-size); margin-bottom: 1.5rem;}

/* 아이디 찾기 */
#find-id h2 { margin-bottom: 0.8rem; }
.find-id-head { margin-bottom: 2.4rem; }
.find-id-desc {
  font-size: var(--info-txt-size);
  color: var(--txt-666);
  line-height: 1.5;
  word-break: keep-all;
}

/* 찾기 방식 탭 */
.find-id-tabs {
  display: flex;
  gap: 0.8rem;
  margin-bottom: 2.4rem;
}
.find-id-tabs .tab-btn {
  flex: 1;
  padding: 1.2rem 0;
  border-radius: 50px;
  border: 1px solid var(--line-ddd);
  background-color: #fff;
  font-size: var(--info-txt-size);
  font-weight: 500;
  color: var(--txt-666);
}
.find-id-tabs .tab-btn.active {
  background-color: var(--tab-bg);
  color: var(--txt-fff);
  border-color: var(--tab-bg);
}

/* 공통 입력 폼 */
.find-id-form {
  display: none;
  padding: 2.0rem;
  background-color: #fff;
  border-radius: var(--all-radius);
}
.find-id-form.active {
  display: block;
}

.find-id-form .ne {
  margin-bottom: 2.0rem;
}
.find-id-form .ne label {
  display: inline-block;
  margin-bottom: 0.6rem;
  font-size: var(--con-tit-size);
  font-weight: 700;
}
.find-id-form .ne input {
  width: 100%;
  padding: 1.4rem 1.2rem;
  border-radius: var(--all-radius);
  border: 1px solid var(--line-ddd);
  font-size: var(--info-txt-size);
  background-color: #fff;
}
.find-id-form .ne input::placeholder {
  color: var(--txt-666);
  font-size: var(--info-txt-size);
}

/* 에러 메시지 */
.find-id-error {
  margin-top: 0.6rem;
  font-size: var(--small-txt-size);
  color: #d70000;
}

/* 결과 박스 */
.find-id-result {
  margin: 2.0rem 0;
  padding: 1.6rem;
  background-color: var(--search-bg);
  border-radius: var(--all-radius);
  text-align: center;
}
.find-id-result p {
  font-size: var(--info-txt-size);
  margin: 0.4rem 0;
}
.find-id-result strong {
  display: block;
  margin: 0.8rem 0;
  font-size: var(--main-tit-size);
  font-weight: var(--tit-weight);
}

/* 전송 버튼 */
.find-id-submit {
  width: 100%;
  padding: 1.2rem;
  margin-top: 0.5rem;
  border-radius: var(--all-radius);
  border: 0;
  background-color: var(--main-blue);
  color: var(--txt-fff);
  font-size: var(--main-tit-size);
  font-weight: var(--tit-weight);
}

/* 하단 링크 */
.find-id-footer {
  margin-top: 2.4rem;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.0rem;
  font-size: var(--info-txt-size);
  color: var(--txt-666);
}
.find-id-footer a {
  font-size: var(--info-txt-size);
  color: var(--txt-666);
}

.all_wrap,
#main.all_wrap{
    padding-bottom: calc(12rem + env(safe-area-inset-bottom));
}
