:root {
	--font-main: "Pretendard";
	--font-eng: "Montserrat";
	--main-blue: #0085D6;
	--main-bg: #f5f7fb;
	--tab-bg: #202020;
	--txt-111: #111;
	--txt-333: #333;
	--txt-666: #666;
	--txt-fff: #fff;
	--line-ddd: #ddd;
	--line-bd: #bdbdbd;
	--tab-on: #505159;
	--search-bg: #F2F3F6;
	--color-red: #b42318;
	--main-tit-size: 3.8rem;
	--sub-tit-size: 3.0rem;
	--con-tit-size: 2.4rem;
	--info-txt-size: 2.2rem;
	--small-txt-size: 1.8rem;
	--tit-weight: 700;
	--all-radius: 0.4rem;
}


/* ----서브공통---- */

.sub-wrap{
	width:100%;
}

.sub-inner{
	width: min(140rem, calc(100% - 4.8rem)); /* max 1400 + 좌우 거터 */
	margin: 0 auto;
	padding: 6.0rem 0 10.0rem;
}

.sub-head{
	display:flex;
	align-items:flex-end;
	padding-bottom: 2.4rem;
	border-bottom: 0.1rem solid var(--line-ddd);
}

.sub-title{
	display:flex;
	flex-direction:column;
	gap: 0.6rem;
}

.sub-h1{
	font-size: var(--main-tit-size);
	font-weight: var(--tit-weight);
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--txt-111);
}

.sub-subtitle{
	font-size: 1.5rem;
	color: var(--txt-666);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}


/* ----Paging---- */
.paging{
	display:flex;
	justify-content:center;
	gap: 0.6rem;
	padding: 2.4rem 0 0;
}

.paging .pg{
	width: 3.6rem;
	height: 3.6rem;
	border: 0.1rem solid var(--line-ddd);
	border-radius: 0.6rem;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font-size: 1.8rem;
	color: var(--txt-666);
	background:var(--txt-fff);
	transition: .2s;
}

.paging .pg:hover{
	border-color: var(--main-blue);
	color: var(--main-blue);
}

.paging .pg.is-active{
	background: var(--main-blue);
	border-color: var(--main-blue);
	color: var(--txt-fff);
	font-weight: 600;
}


/* ----tab---- */

.tabs{
	display:flex;
	flex-wrap:wrap;
	gap: 0.8rem;
	margin-bottom:4rem;
}

.tabs .tab-btn{
	height: 3.6rem;
	padding: 0 1.4rem;
	border: 0.1rem solid var(--line-ddd);
	border-radius: 99rem;
	background:var(--txt-fff);
	font-size: 1.8rem;
	color: var(--txt-666);
	transition: .2s;
}

.tabs .tab-btn:hover{
	border-color: var(--main-blue);
	color: var(--main-blue);
}

.tabs .tab-btn.is-active{
	background: var(--main-blue);
	border-color: var(--main-blue);
	color: var(--txt-fff);
	font-weight: 600;
}

/* 탭 패널 토글 */
.tab-panel{ display:none; }
.tab-panel.is-active{ display:block; }

.tabs-secondary .tab-btn{
	border-radius: var(--all-radius);
	background: var(--search-bg);
	border-color: transparent;
	color: var(--txt-666);
}

.tabs-secondary .tab-btn:hover{
	border-color: rgba(0,133,214,0.25);
	color: var(--main-blue);
	background:var(--txt-fff);
}

.tabs-secondary .tab-btn.is-active{
	background: var(--txt-fff);
	border: 0.1rem solid rgba(0,133,214,0.35);
	color: var(--main-blue);
	font-weight: 700;
}



/* -----랭킹----- */

.rank-page .sub-head.rank-head{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap: 2.4rem;
	padding-bottom: 2.4rem;
	border-bottom: 0.1rem solid var(--line-ddd);
}

.rank-page .rank-title{
	display:flex;
	flex-direction:column;
	gap: 0.6rem;
}

.rank-page .rank-h1{
	font-size: var(--main-tit-size);
	font-weight: var(--tit-weight);
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--txt-111);
}

.rank-page .rank-subtitle{
	font-size: 1.5rem;
	color: var(--txt-666);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rank-page .rank-bar{
	padding: 2.0rem 0 1.6rem;
}

.rank-page .rank-legend{
	display:flex;
	align-items:center;
	gap: 1.2rem;
	flex-wrap:wrap;
}

.rank-page .rank-legend .item{
	display:flex;
	align-items:center;
	gap: 0.6rem;
	font-size: 1.6rem;
	color: var(--txt-666);
}


/* 범례 */
.rank-page .rank-legend{
	display:flex;
	align-items:center;
	gap: 1.6rem;
	flex-wrap:wrap;
}

.rank-page .rank-legend .item{
	display:flex;
	align-items:center;
	gap: 0.6rem;
	font-size: 1.6rem;
	color: var(--txt-666);
}

/* 공통 아이콘 */
.rank-page .grade-ico{
	width: 2.0rem;
	height: 2.0rem;
	object-fit: contain;
	display:inline-block;
}

.rank-page .grade{
	display:flex;
	align-items:center;
	justify-content:center;
	gap: 0.8rem;
}

.rank-page .grade .lvl{
	font-size: 1.5rem;
	color: var(--txt-666);
}

.rank-page .rank-card{
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	overflow:hidden;
	background:var(--txt-fff);
	box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
}

.rank-page .rank-table-wrap{
	width:100%;
	overflow:auto; /* 태블릿에서 테이블 안전 */
}

.rank-page .rank-table{
	min-width: 84rem;
	width:100%;
	border-collapse: collapse;
	table-layout: fixed;
}

.rank-page .rank-table thead th{
	height: 5.2rem;
	background: var(--main-bg);
	color: var(--txt-111);
	font-weight: 600;
	font-size: 1.5rem;
	border-bottom: 0.1rem solid var(--line-ddd);
	text-align:center;
	padding: 0 1.6rem;
}

.rank-page .rank-table tbody td{
	height: 6.4rem;
	padding: 0 1.6rem;
	font-size: 1.5rem;
	color: var(--txt-111);
	border-bottom: 0.1rem solid #eee;
	text-align:center;
	background:var(--txt-fff);
}

.rank-page .rank-table tbody tr:hover{
	background: rgba(0,133,214,0.06);
}

/* col widths */
.rank-page .rank-table .c-rank{ width: 12rem; }
.rank-page .rank-table .c-grade{ width: 18rem; }
.rank-page .rank-table .c-score{ width: 18rem; }

/* grade cell */
.rank-page .grade{
	display:flex;
	align-items:center;
	justify-content:center;
	gap: 0.8rem;
}

.rank-page .grade .lvl{
	font-size: 1.5rem;
	color: var(--txt-666);
}

/* name cell */
.rank-page .rank-table td.name{
	text-align:left;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.rank-page .rank-table td.name strong{
	font-weight: 600;
}

.rank-page .rank-table td.name .id{
	margin-left: 0.6rem;
	color: var(--txt-666);
	font-size: 1.8rem;
}

/* score */
.rank-page .rank-table td.score{
	color: #e4002b;
	font-weight: 600;
}

/* top rows */
.rank-page .rank-table tbody tr.is-top{
	background: rgba(0,133,214,0.04);
}
.rank-page .rank-table tbody tr.is-top:hover{
	background: rgba(0,133,214,0.08);
}

.rank-page .rank-num{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width: 3.0rem;
	height: 3.0rem;
	padding: 0 0.8rem;
	border-radius: 99rem;
	font-weight: 700;
	background: var(--main-bg);
	color: var(--txt-111);
}
.rank-page .rank-num.top1{ background: rgba(255, 59, 48, 0.12); color:#ff3b30; }
.rank-page .rank-num.top2{ background: rgba(10, 132, 255, 0.12); color:#0a84ff; }
.rank-page .rank-num.top3{ background: rgba(52, 199, 89, 0.12); color:#34c759; }



/* ----코스---- */

.course-page .course-section{
	padding-top: 3.2rem;
}

.course-page .section-head{
	display:flex;
	align-items:flex-end;
	justify-content:flex-start;
	gap: 1.6rem;
	margin-bottom: 1.6rem;
}

.course-page .section-head.is-between{
	justify-content:space-between;
	align-items:center;
	gap: 2.0rem;
	flex-wrap:wrap;
}

.course-page .section-tit{
	font-size: var(--con-tit-size);
	font-weight: var(--tit-weight);
	color: var(--txt-111);
}

/* 검색 */
.course-page .course-search{
	display:flex;
	align-items:center;
	gap: 0.8rem;
}
.course-page .course-search-input{
	width: 32rem;
}
.course-page .course-search-btn{
	height: 3.6rem;
	padding: 0 1.6rem;
	font-size: 1.8rem;
	border-radius: var(--all-radius);
}

/* 카드 그리드 */
.course-page .course-grid{
	display:grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.6rem;
}

.course-page .course-grid.is-new{
	background: var(--txt-fff);
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	padding: 1.6rem;
}

/* 카드 */
.course-page .course-card{
	display:block;
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	overflow:hidden;
	background:var(--txt-fff);
	transition: .2s;
}

.course-page .course-card:hover{
	border-color: rgba(0,133,214,0.35);
	box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.06);
	transform: translateY(-0.2rem);
}

.course-page .course-card .thumb{
	aspect-ratio: 16 / 9;
	background: var(--main-bg);
	overflow:hidden;
}

.course-page .course-card .thumb img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}

.course-page .course-card .info{
	padding: 1.4rem 1.6rem 1.6rem;
}

.course-page .course-card .name{
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--txt-111);
	white-space: nowrap;
	overflow:hidden;
	text-overflow: ellipsis;
}

.course-page .course-card .meta{
	display:flex;
	justify-content:space-between;
	gap: 1.2rem;
	margin-top: 0.8rem;
	font-size: 1.6rem;
	color: var(--txt-666);
}

.course-page .course-paging{
	margin-top: 2.4rem;
}


/* 공용 카드 느낌을 이 페이지에서만 간단히 씀 */
.course-detail-page .card{
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	background:var(--txt-fff);
	box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
}
.course-detail-page .card.pad{ padding: 2.0rem; }

.course-detail-page .course-summary{
	display:grid;
	grid-template-columns: 36rem 1fr;
	gap: 2.4rem;
	padding: 2.4rem;
	margin-top: 2.4rem;
}

.course-detail-page .course-name{
	font-size: var(--con-tit-size);
	font-weight: var(--tit-weight);
	margin-bottom: 1.2rem;
}

.course-detail-page .summary-thumb{
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	overflow:hidden;
	background: var(--main-bg);
	aspect-ratio: 16 / 9;
}
.course-detail-page .summary-thumb img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}

/* 정보 테이블 */
.course-detail-page .info-table{
	width:100%;
	border-collapse: collapse;
	table-layout: fixed;
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	overflow:hidden;
}
.course-detail-page .info-table th,
.course-detail-page .info-table td{
	border-bottom: 0.1rem solid #eee;
	padding: 1.2rem 1.4rem;
	font-size: 1.8rem;
}
.course-detail-page .info-table th{
	width: 14rem;
	background: var(--main-bg);
	color: var(--txt-666);
	font-weight: 600;
	text-align:center;
}
.course-detail-page .info-table td{
	color: var(--txt-111);
}
.course-detail-page .info-table tr:last-child th,
.course-detail-page .info-table tr:last-child td{
	border-bottom:0;
}

/* 탭 간격 */
.course-detail-page .course-detail-tabs{
	margin-top: 2.4rem;
}

/* 블록 */
.course-detail-page .course-block{
	margin-top: 2.4rem;
}

.course-detail-page .block-head{
	display:flex;
	align-items:center;
	justify-content:center;
	margin-bottom: 1.2rem;
}

.course-detail-page .block-tit{
	width:100%;
	text-align:center;
	padding: 1.2rem 1.6rem;
	border-radius: var(--all-radius);
	background: #2b2b2b;
	color: var(--txt-fff);
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}
.course-detail-page .block-tit .small{
	font-size: 1.6rem;
	opacity: .85;
	margin-left: 0.6rem;
}

/* 홀 테이블 */
.course-detail-page .hole-table-wrap{
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	overflow:auto;
	background:var(--txt-fff);
}

.course-detail-page .hole-table{
	min-width: 110rem;
	width:100%;
	border-collapse: collapse;
	table-layout: fixed;
}

.course-detail-page .hole-table thead th{
	background: #2b2b2b;
	color:var(--txt-fff);
	font-size: 1.6rem;
	font-weight: 600;
	padding: 1.0rem 0.6rem;
	text-align:center;
	border-right: 0.1rem solid rgba(255,255,255,0.08);
}
.course-detail-page .hole-table thead th.total{
	background: #c70000;
}

.course-detail-page .hole-table tbody th{
	background: var(--main-bg);
	color: var(--txt-666);
	font-weight: 600;
	font-size: 1.5rem;
	text-align:center;
	padding: 1.0rem 0.6rem;
	border-right: 0.1rem solid #eee;
	white-space: nowrap;
}

.course-detail-page .hole-table tbody td{
	text-align:center;
	padding: 0.9rem 0.6rem;
	font-size: 1.5rem;
	border-bottom: 0.1rem solid #eee;
	border-right: 0.1rem solid #eee;
	background:var(--txt-fff);
}

.course-detail-page .hole-table tbody td.total{
	color:#c70000;
	font-weight: 700;
}

.course-detail-page .hole-table .row-view td{
	padding: 0.6rem;
}
.course-detail-page .hole-table .row-view img{
	width: 5.6rem;
	height: 7.2rem;
	object-fit:cover;
	border-radius: 0.4rem;
	border: 0.1rem solid #e8e8e8;
	background:var(--txt-fff);
}

.course-detail-page .row-view img{
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease;
}

.course-detail-page .row-view img:hover{
	transform: scale(1.05);
	box-shadow: 0 0.6rem 1.6rem rgba(0,0,0,0.2);
}

/* 코스맵 */
.course-detail-page .course-map{
	margin-top: 1.6rem;
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	background:var(--txt-fff);
	overflow:hidden;
	padding: 2.4rem;
	display:flex;
	justify-content:center;
}
.course-detail-page .course-map img{
	width: min(46rem, 100%);
	height:auto;
	display:block;
}

/* 하단 문구/버튼 */
.course-detail-page .course-note{
	margin-top: 1.6rem;
	font-size: 1.6rem;
	color: var(--txt-666);
}

.course-detail-page .bottom-actions{
	margin-top: 3.2rem;
	display:flex;
	justify-content:center;
}


/* 공지사항 */

/* 상단 검색/버튼 바 */
.board-top{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap: 1.6rem;
	padding-top: 2.4rem;
	flex-wrap:wrap;
}

.board-search{
	display:flex;
	align-items:center;
	gap: 0.8rem;
	flex-wrap:wrap;
}

.board-select{
	width:auto;
	min-width: 16rem;
	height: 4.4rem;
	padding: 0.8rem 1.4rem;
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	background:var(--txt-fff);
}

.board-search-input{
	width: 32rem;
}

.board-search-btn{
	height: 3.6rem;
	padding: 0 1.6rem;
	font-size: 1.8rem;
	border-radius: var(--all-radius);
}

.board-write-btn{
	height: 3.6rem;
	padding: 0 1.6rem;
	font-size: 1.8rem;
}

/* 리스트 카드 */
.board-card{
	margin-top: 1.6rem;
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	overflow:hidden;
	background:var(--txt-fff);
	box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
}

.board-table-wrap{
	width:100%;
	overflow:auto;
}

.board-table{
	width:100%;
	min-width: 84rem;
	border-collapse: collapse;
	table-layout: fixed;
}

.board-table thead th{
	height: 5.2rem;
	background: var(--main-bg);
	color: var(--txt-111);
	font-weight: 600;
	font-size: 1.5rem;
	border-bottom: 0.1rem solid var(--line-ddd);
	text-align:center;
	padding: 0 1.6rem;
}

.board-table thead th.th-left{
	text-align:left;
}

.board-table tbody td{
	height: 6.0rem;
	padding: 0 1.6rem;
	font-size: 1.5rem;
	color: var(--txt-111);
	border-bottom: 0.1rem solid #eee;
	text-align:center;
	background:var(--txt-fff);
}

.board-table tbody tr:hover{
	background: rgba(0,133,214,0.06);
}

.board-table td.td-title{
	text-align:left;
}

.title-link{
	display:inline-block;
	max-width: 100%;
	white-space: nowrap;
	overflow:hidden;
	text-overflow: ellipsis;
	vertical-align: middle;
}

.title-link:hover{
	color: var(--main-blue);
}

.badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	height: 2.4rem;
	padding: 0 0.9rem;
	border-radius: 99rem;
	font-size: 1.5rem;
	font-weight: 600;
	background: rgba(0,133,214,0.12);
	color: var(--main-blue);
}

.meta{
	margin-left: 0.8rem;
	font-size: 1.5rem;
	font-weight: 700;
	color: #e4002b;
}

/* col widths */
.board-table .c-no{ width: 10rem; }
.board-table .c-writer{ width: 16rem; }
.board-table .c-date{ width: 16rem; }
.board-table .c-hit{ width: 12rem; }

.post-view{
	margin-top: 2.4rem;
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	overflow:hidden;
	background:var(--txt-fff);
	box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
}

.post-head{
	padding: 2.0rem 2.4rem;
	border-bottom: 0.1rem solid var(--line-ddd);
	background: var(--main-bg);
}

.post-title{
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: -0.02em;
	color: var(--txt-111);
}

.post-meta{
	display:flex;
	flex-wrap:wrap;
	gap: 0.8rem 1.6rem;
	margin-top: 1.0rem;
	font-size: 1.8rem;
	color: var(--txt-666);
}

.post-meta .label{
	color: var(--txt-111);
	font-weight: 600;
	margin-right: 0.6rem;
}

.post-body{
	padding: 2.8rem 2.4rem 3.2rem;
	font-size: 1.6rem;
	color: var(--txt-111);
	line-height: 1.8;
}

.post-body img{
	max-width: 100%;
	height: auto;
	border-radius: var(--all-radius);
}

.post-img{
	margin: 2.0rem 0;
	text-align:center;
}

/* 첨부 */
.post-files{
	margin: 0 2.4rem 2.4rem;
	padding: 1.6rem;
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	background:var(--txt-fff);
}

.files-tit{
	font-size: 1.8rem;
	font-weight: 700;
	color: var(--txt-111);
	margin-bottom: 1.0rem;
}

.files-list{
	display:flex;
	flex-direction:column;
	gap: 0.8rem;
}

.file-link{
	display:inline-flex;
	align-items:center;
	gap: 0.8rem;
	font-size: 1.8rem;
	color: var(--txt-666);
}
.file-link:hover{
	color: var(--main-blue);
}

/* 하단 버튼 */
.post-actions{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap: 1.2rem;
	padding: 1.6rem 2.4rem;
	border-top: 0.1rem solid var(--line-ddd);
	background:var(--txt-fff);
}

.post-actions .actions-right{
	display:flex;
	gap: 0.8rem;
}

/* 이전/다음 */
.post-nav{
	margin-top: 1.6rem;
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	overflow:hidden;
	background:var(--txt-fff);
}

.post-nav .nav-item{
	display:flex;
	align-items:center;
	gap: 1.2rem;
	padding: 1.6rem 2.0rem;
	border-top: 0.1rem solid #eee;
	color: var(--txt-111);
}
.post-nav .nav-item:first-child{
	border-top: 0;
}

.post-nav .nav-item:hover{
	background: rgba(0,133,214,0.06);
}

.post-nav .tag{
	width: 6.4rem;
	font-size: 1.6rem;
	color: var(--txt-666);
	flex: 0 0 auto;
}

.post-nav .txt{
	flex: 1 1 auto;
	white-space: nowrap;
	overflow:hidden;
	text-overflow: ellipsis;
}


/* 라운드 */

.round-page .card{
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	background:var(--txt-fff);
	box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
}
.round-page .card.pad{ padding: 2.0rem; }

.round-page .btn-sm{
	height: 3.2rem;
	padding: 0 1.2rem;
	font-size: 1.6rem;
}

.round-page .round-dashboard{
	margin-top: 2.4rem;
	display:grid;
	grid-template-columns: 36rem 1fr;
	gap: 1.6rem;
}

.round-page .dash-profile{
	padding: 2.0rem;
}

.round-page .profile{
	display:flex;
	align-items:center;
	gap: 1.4rem;
}

.round-page .avatar{
	width: 7.2rem;
	height: 7.2rem;
	border-radius: 99rem;
	overflow:hidden;
	border: 0.1rem solid var(--line-ddd);
	background: var(--main-bg);
	flex: 0 0 auto;
}
.round-page .avatar img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}

.round-page .profile-txt .name{
	font-size: 2.2rem;
	font-weight: 800;
	color: var(--txt-111);
	line-height: 1.2;
}
.round-page .profile-txt .region{
	margin-top: 0.6rem;
	font-size: 1.8rem;
	color: var(--txt-666);
}

/* 요약 지표 */
.round-page .dash-stats{
	padding: 0;
	display:grid;
	grid-template-columns: repeat(5, 1fr);
	overflow:hidden;
}

.round-page .stat-item{
	padding: 1.8rem 1.6rem;
	border-left: 0.1rem solid #eee;
	display:flex;
	flex-direction:column;
	justify-content:center;
	min-height: 9.6rem;
}
.round-page .stat-item:first-child{
	border-left:0;
}

.round-page .stat-item .label{
	font-size: 1.6rem;
	color: var(--txt-666);
	font-weight: 600;
}
.round-page .stat-item .value{
	margin-top: 0.6rem;
	font-size: 2.6rem;
	font-weight: 900;
	line-height: 1.1;
	color: var(--txt-111);
}

.round-page .stat-item.is-primary{
	background: rgba(0,133,214,0.08);
}
.round-page .stat-item.is-primary .value{
	color: var(--main-blue);
}

/* FILTER */
.round-page .round-filter{
	margin-top: 2.4rem;
	padding: 1.8rem;
}

.round-page .filter-top{
	padding-bottom: 1.2rem;
	border-bottom: 0.1rem solid #eee;
}

.round-page .filter-top .tabs {
	margin-bottom:0;
}

/* 조회기간 박스 */
.round-page .filter-sub{
	margin-top: 1.4rem;
	padding: 1.6rem;
	border: 0.1rem solid var(--line-ddd);
	border-radius: var(--all-radius);
	background:var(--txt-fff);
}

.round-page .filter-sub-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-bottom: 1.2rem;
}

.round-page .filter-sub-tit{
	font-size: 1.6rem;
	font-weight: 800;
	color: var(--txt-111);
}

.round-page .filter-sub-body{
	display:flex;
	flex-direction:column;
	gap: 1.2rem;
}

.round-page .filter-sub-body .tabs {
  margin-bottom:0;
}

.round-page .date-range{
	display:flex;
	align-items:center;
	gap: 0.8rem;
	flex-wrap:wrap;
}
.round-page .date-field{
	display:flex;
	align-items:center;
	gap: 0.8rem;
}
.round-page .date-field .label{
	font-size: 1.8rem;
	color: var(--txt-666);
}
.round-page .dash{ color: var(--txt-666); }

.round-page .round-search-btn{
	height: 3.6rem;
	padding: 0 1.6rem;
	font-size: 1.8rem;
}

.round-page .round-list{
	margin-top: 1.6rem;
	display:flex;
	flex-direction:column;
	gap: 1.2rem;
}

.round-page .round-row{
	padding: 1.6rem 1.8rem;
	display:grid;
	grid-template-columns: 1.3fr 1fr auto;
	align-items:center;
	gap: 1.6rem;
}

.round-page .row-left .date{
	font-size: 1.6rem;
	font-weight: 900;
	color: var(--txt-111);
}
.round-page .row-left .place{
	margin-top: 0.8rem;
	font-size: 1.5rem;
	color: var(--txt-111);
}
.round-page .row-left .course{
	color: var(--txt-666);
	font-weight: 500;
}

.round-page .row-mid{
	display:grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.8rem;
	border: 0.1rem solid #eee;
	border-radius: var(--all-radius);
	overflow:hidden;
	background: var(--txt-fff);
}
.round-page .mini{
	padding: 1.0rem 1.0rem 1.1rem;
	text-align:center;
	border-left: 0.1rem solid #eee;
}
.round-page .mini:first-child{ border-left:0; }
.round-page .mini .t{
	font-size: 1.5rem;
	color: var(--txt-666);
	font-weight: 600;
}
.round-page .mini .v{
	margin-top: 0.4rem;
	font-size: 1.8rem;
	font-weight: 900;
	color: var(--txt-111);
}

.round-page .row-right{
	display:flex;
	justify-content:flex-end;
}

/* hover */
.round-page .round-row:hover{
	border-color: rgba(0,133,214,0.35);
	box-shadow: 0 1.6rem 3.6rem rgba(0,0,0,0.06);
}

.round-page .round-row .score-row{
  grid-column: 1 / -1; 
  width: 100%;
}

.round-page .round-row .score-row{
  margin-top: 1.2rem;
}
.round-row { position: relative; }

.score-row {
  width: 100%;
  margin-top: 1.2rem;
}

.score-card {
  border: 0.1rem solid #e5e7eb;
  border-radius: 1.2rem;
  background: #fff;
  overflow: hidden;
}

/* head */
.score-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  padding: 1.6rem 1.8rem;
  border-bottom: 0.1rem solid #e5e7eb;
}

.sc-title {
  margin: 0;
  font-size: 1.8rem;
  font-weight: 700;
  color: #111827;
}

.sc-head-right {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
}

.badge {
  display: inline-flex;
  align-items: center;
  height: 2.4rem;
  padding: 0 1rem;
  border-radius: 9999px;
  font-size: 1.3rem;
  font-weight: 600;
  color: #0f172a;
  background: #f1f5f9;
}

.badge.is-blue {
  color: #1d4ed8;
  background: #e0e7ff;
}

.sc-close {
  border: 0.1rem solid #e5e7eb;
  background: #fff;
  height: 2.6rem;
  padding: 0 1rem;
  border-radius: 0.8rem;
  font-size: 1.3rem;
  cursor: pointer;
}

/* meta */
.score-main { padding: 1.4rem 1.8rem 0; }

.score-meta {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.2rem;
  flex-wrap: wrap;
  padding-bottom: 1.2rem;
}

.score-name { font-size: 1.5rem; }

.muted {
  font-size: 1.3rem;
  color: #6b7280;
}

/* table */
.score-table-wrap {
  padding: 0 1.8rem 1.6rem;
  overflow-x: auto;
}

.score-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 1.4rem;
}

.score-table thead th {
  position: sticky;
  top: 0;
  background: #111827;
  color: #fff;
  font-weight: 700;
  text-align: center;
  padding: 1.2rem 1.1rem;
  border-right: 0.1rem solid rgba(255,255,255,.08);
  white-space: nowrap;
}

.score-table tbody th,
.score-table tbody td {
  text-align: center;
  padding: 1.2rem 1.1rem;
  border-bottom: 0.1rem solid #e5e7eb;
  background: #fff;
  white-space: nowrap;
}

.score-table tbody th {
  font-weight: 700;
  background: #f8fafc;
}

/* sticky first col */
.score-table .sticky-col {
  position: sticky;
  left: 0;
  z-index: 2;
}

.score-table thead .sticky-col { z-index: 3; }

.score-table .col-sum {
  background: #f3f4f6 !important;
  font-weight: 700;
  color:#222;
}

.score-table .col-total {
  background: #e8f0ff !important;
  font-weight: 800;
  color:#222;
}

.sc-note {
  margin: 1.2rem 0 0;
}





/* 대회보기 */

.tournament-page .card{
  border: 0.1rem solid var(--line-ddd);
  border-radius: var(--all-radius);
  background:var(--txt-fff);
  box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
}

.tournament-page .tourn-filter{
  margin-top: 2.4rem;
  padding: 1.8rem;
}

.tournament-page .tourn-search{
  display:flex;
  gap: 1.2rem;
  align-items:center;
}

.tournament-page .search-field{
  position:relative;
  flex: 1 1 auto;
}

.tournament-page .search-input{
  padding-right: 4.8rem;
  background:var(--txt-fff);
}

.tournament-page .tourn-controls{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 2.0rem;
  flex-wrap:wrap;
}

.tournament-page .ctrl-left{
  flex: 1 1 62rem;
  min-width: 52rem;
  display:flex;
  flex-direction:column;
  gap: 1.2rem;
}

.tournament-page .ctrl-right{
  flex: 0 0 auto;
  display:flex;
  align-items:center;
  gap: 0.8rem;
  margin-top: 0.2rem;
}

.tournament-page .search-field{ width:100%; }

.tournament-page .search-input{
  background:var(--txt-fff);
  min-width: 36rem;
}

.tournament-page .search-apply{
  height: 4.0rem;
  padding: 0 2.0rem;
  font-size: 1.8rem;
}

.tournament-page .chips{
  display:flex;
  gap: 0.8rem;
  flex-wrap:wrap;
  margin-top:10px;
}
.tournament-page .chip{
  height: 3.2rem;
  padding: 0 1.2rem;
  border-radius: 99rem;
  border: 0.1rem solid var(--line-ddd);
  background:var(--txt-fff);
  font-size: 1.6rem;
  color: var(--txt-666);
  cursor:pointer;
  transition: .2s;
}
.tournament-page .chip:hover{
  border-color: rgba(0,133,214,0.35);
  color: var(--main-blue);
}
.tournament-page .chip.is-active{
  background: var(--main-blue);
  border-color: var(--main-blue);
  color: var(--txt-fff);
  font-weight: 700;
}

.tournament-page .selects{
  display:flex;
  align-items:center;
  gap: 0.8rem;
  flex-wrap:wrap;
}

.tournament-page .tourn-list{
  margin-top: 1.6rem;
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.6rem;
}

.tournament-page .tourn-card{
  padding: 2.0rem;
  display:flex;
  flex-direction:column;
  gap: 1.4rem;
}

.tournament-page .tc-head{
  display:grid;
  grid-template-columns: auto 1fr auto;
  align-items:center;
  gap: 1.0rem;
}

.tournament-page .tc-title{
  font-size: 2.0rem;
  font-weight: 900;
  color: var(--txt-111);
  line-height: 1.25;
}
.tournament-page .tc-title a:hover{
  color: var(--main-blue);
}

.tournament-page .tc-meta .meta{
  font-size: 1.5rem;
  color: var(--txt-666);
}

.tournament-page .badge.status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 2.8rem;
  padding: 0 1.1rem;
  border-radius: 99rem;
  font-size: 1.6rem;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.tournament-page .badge.status{
  background: rgba(0,0,0,0.06);
  color: var(--txt-666);
  border: 0.1rem solid rgba(0,0,0,0.08);
}

.tournament-page .badge.status.is-on{
  background: rgba(0,133,214,0.12);
  color: var(--main-blue);
  border: 0.1rem solid rgba(0,133,214,0.22);
}
.tournament-page .badge.status.is-end{
  background: rgba(0,0,0,0.06);
  color: var(--txt-666);
  border: 0.1rem solid rgba(0,0,0,0.08);
}
.tournament-page .badge.status.is-soon{
  background: rgba(255,138,0,0.12);
  color: #ff8a00;
  border: 0.1rem solid rgba(255,138,0,0.22);
}

.tournament-page .tc-body{
  border-top: 0.1rem solid #eee;
  padding-top: 1.4rem;
}

.tournament-page .tc-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.2rem 1.6rem;
}

.tournament-page .tc-grid .row{
  display:grid;
  grid-template-columns: 7.2rem 1fr;
  gap: 1.0rem;
  align-items:start;
}

.tournament-page .tc-grid .row dt{
  font-size: 1.6rem;
  color: var(--txt-666);
  font-weight: 700;
}
.tournament-page .tc-grid .row dd{
  font-size: 1.8rem;
  color: var(--txt-111);
  line-height: 1.5;
}

.tournament-page .tc-grid .row.is-wide{
  grid-column: 1 / -1;
}

.tournament-page .tc-foot{
  margin-top:auto;
  display:flex;
  gap: 0.8rem;
  justify-content:flex-end;
  flex-wrap:wrap;
}

/* hover */
.tournament-page .tourn-card:hover{
  border-color: rgba(0,133,214,0.35);
  box-shadow: 0 1.6rem 3.6rem rgba(0,0,0,0.06);
}


.tournament-detail-page .card{
  border: 0.1rem solid var(--line-ddd);
  border-radius: var(--all-radius);
  background:var(--txt-fff);
  box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
}

.tournament-detail-page .muted{ color: var(--txt-666); font-size: 1.6rem; }
.tournament-detail-page .center{ text-align:center; }

.tournament-detail-page .badge.status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 2.8rem;
  padding: 0 1.1rem;
  border-radius: 99rem;
  font-size: 1.6rem;
  font-weight: 800;
}
.tournament-detail-page .badge.status.is-on{
  background: rgba(0,133,214,0.12);
  color: var(--main-blue);
  border: 0.1rem solid rgba(0,133,214,0.22);
}

.tournament-detail-page .td-top{
  margin-top: 2.4rem;
  padding: 2.0rem;
}

.tournament-detail-page .td-top-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 1.6rem;
}

.tournament-detail-page .td-title{
  margin-top: 0.8rem;
  font-size: 2.6rem;
  font-weight: 900;
  color: var(--txt-111);
  line-height: 1.2;
}
.tournament-detail-page .td-submeta{
  margin-top: 0.8rem;
  font-size: 1.8rem;
  color: var(--txt-666);
}

.tournament-detail-page .admin-actions{ display:none; }
.tournament-detail-page.is-admin .admin-actions{ display:block; }

.tournament-detail-page .td-info-grid{
  margin-top: 1.6rem;
  padding-top: 1.6rem;
  border-top: 0.1rem solid #eee;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}

.tournament-detail-page .td-info-grid .info{
  display:grid;
  grid-template-columns: 7.6rem 1fr;
  gap: 1.0rem;
  align-items:start;
}
.tournament-detail-page .td-info-grid dt{
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--txt-666);
}
.tournament-detail-page .td-info-grid dd{
  font-size: 1.8rem;
  color: var(--txt-111);
}

/* ===== sections ===== */
.tournament-detail-page .td-sections{
  margin-top: 1.6rem;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
}
.tournament-detail-page .td-section{
  padding: 2.0rem;
}
.tournament-detail-page .sec-tit{
  font-size: 1.8rem;
  font-weight: 900;
  color: var(--txt-111);
}
.tournament-detail-page .sec-body{
  margin-top: 1.2rem;
  font-size: 1.8rem;
  color: var(--txt-111);
  line-height: 1.7;
}
.tournament-detail-page .bullets{
  display:flex;
  flex-direction:column;
  gap: 0.6rem;
}
.tournament-detail-page .bullets li{
  position:relative;
  padding-left: 1.2rem;
  color: var(--txt-111);
}
.tournament-detail-page .bullets li::before{
  content:'';
  position:absolute;
  left:0;
  top: 0.8rem;
  width: 0.5rem;
  height: 0.5rem;
  border-radius:99rem;
  background: var(--main-blue);
}

/* ===== rank ===== */
.tournament-detail-page .td-rank{
  margin-top: 1.6rem;
  padding: 2.0rem;
}
.tournament-detail-page .td-rank-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 1.2rem;
  flex-wrap:wrap;
  padding-bottom: 1.2rem;
  border-bottom: 0.1rem solid #eee;
}

.tournament-detail-page .table-wrap{
  margin-top: 1.2rem;
  overflow:auto;
  border: 0.1rem solid #eee;
  border-radius: var(--all-radius);
}

.tournament-detail-page .rank-table{
  width: 100%;
  min-width: 96rem;
  border-collapse: collapse;
  background:var(--txt-fff);
}
.tournament-detail-page .rank-table th,
.tournament-detail-page .rank-table td{
  padding: 1.2rem 1.0rem;
  border-bottom: 0.1rem solid #eee;
  font-size: 1.6rem;
  vertical-align:middle;
}
.tournament-detail-page .rank-table thead th{
  background: var(--main-bg);
  font-weight: 900;
  color: var(--txt-111);
}
.tournament-detail-page .rank-table tbody tr:hover{
  background: rgba(0,133,214,0.04);
}

.tournament-detail-page .avatar-sm{
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 99rem;
  overflow:hidden;
  border: 0.1rem solid var(--line-ddd);
  display:inline-block;
}
.tournament-detail-page .avatar-sm img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* ===== score expand ===== */
.tournament-detail-page .score-row td{
  background: #fbfbfc;
}
.tournament-detail-page .score-card{
  padding: 1.6rem;
  border-radius: var(--all-radius);
  border: 0.1rem solid #eee;
  background:var(--txt-fff);
}

.tournament-detail-page .score-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1.2rem;
  margin-bottom: 1.2rem;
}
.tournament-detail-page .sc-title{
  font-size: 1.6rem;
  font-weight: 900;
}
.tournament-detail-page .sc-close{
  height: 3.2rem;
  padding: 0 1.2rem;
  border-radius: 0.6rem;
  border: 0.1rem solid var(--line-ddd);
  background:var(--txt-fff);
  cursor:pointer;
}

.tournament-detail-page .score-table-wrap{
  overflow:auto;
  border: 0.1rem solid #eee;
  border-radius: 0.8rem;
  margin-top: 1.0rem;
}
.tournament-detail-page .score-table{
  width:100%;
  min-width: 84rem;
  border-collapse: collapse;
}
.tournament-detail-page .score-table th,
.tournament-detail-page .score-table td{
  padding: 0.9rem 0.8rem;
  border-bottom: 0.1rem solid #eee;
  text-align:center;
  font-size: 1.6rem;
}
.tournament-detail-page .score-table thead th{
  background: #1f2328;
  color: var(--txt-fff);
  font-weight: 800;
}
.tournament-detail-page .score-table tbody th{
  background: var(--main-bg);
  text-align:center;
  font-weight: 800;
}

.tournament-detail-page .score-table-all .sticky-col{
  position: sticky;
  left: 0;
  z-index: 2;
  background: var(--main-bg);
}

.tournament-detail-page .score-table-all thead .sticky-col{
  background:#1f2328;
  color:var(--txt-fff);
  z-index: 3;
}

.tournament-detail-page .score-table-all .col-sum{
  background: #efeff2;
  font-weight: 900;
  color: var(--txt-111);
}

.tournament-detail-page .score-table-all .col-total{
  background: #dfe9ff;
  font-weight: 900;
  color: var(--txt-111);
}


/* 매장정보 */

.store-page .card{
  border: 0.1rem solid var(--line-ddd);
  border-radius: var(--all-radius);
  background:var(--txt-fff);
  box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
}

.store-page .center{ text-align:center; }

.store-page .store-filter{
  margin-top: 2.4rem;
  padding: 1.8rem;
}

.store-page .store-filter-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1.2rem;
  flex-wrap:wrap;
}

.store-page .store-search{
  flex: 1 1 60rem;
  min-width: 42rem;
}

.store-page .store-controls{
  display:flex;
  align-items:center;
  gap: 0.8rem;
  flex: 0 0 auto;
}

.store-page .store-meta{
  margin-top: 1.2rem;
  font-size: 1.6rem;
  color: var(--txt-666);
}

.store-page .table-wrap{
  overflow:auto;
  border: 0.1rem solid #eee;
  border-radius: var(--all-radius);
  background:var(--txt-fff);
}

.store-page .store-list{
  margin-top: 1.6rem;
  padding: 1.6rem;
}

.store-page .store-table{
  width: 100%;
  min-width: 92rem;
  border-collapse: collapse;
}

.store-page .store-table th,
.store-page .store-table td{
  padding: 1.2rem 1.0rem;
  border-bottom: 0.1rem solid #eee;
  font-size: 1.6rem;
  vertical-align:middle;
}

.store-page .store-table thead th{
  background: var(--main-bg);
  font-weight: 900;
  color: var(--txt-111);
}

.store-page .store-table tbody tr:hover{
  background: rgba(0,133,214,0.04);
}

.store-page .store-table .addr{
  color: var(--txt-111);
  line-height: 1.45;
}

/* 버튼 작은 사이즈 */
.store-page .btn-sm{
  height: 3.2rem;
  padding: 0 1.2rem;
  font-size: 1.6rem;
}


/* 매장정보상세 */

.store-detail-page .card{
  border: 0.1rem solid var(--line-ddd);
  border-radius: var(--all-radius);
  background:var(--txt-fff);
  box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
}

.store-detail-page .sd-top{
  margin-top: 2.4rem;
  display:grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 1.6rem;
  align-items:start;
}

.store-detail-page .sd-slider{
  position:relative;
  overflow:hidden;
}

.store-detail-page .sd-slider-viewport{
  width:100%;
  aspect-ratio: 16 / 9;
  background:#000;
}

.store-detail-page .sd-slides{
  height:100%;
  display:flex;
  transition: transform .35s ease;
}

.store-detail-page .sd-slide{
  flex: 0 0 100%;
  height:100%;
}

.store-detail-page .sd-slide img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

/* nav buttons */
.store-detail-page .sd-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width: 4.0rem;
  height: 4.0rem;
  border-radius: 99rem;
  border: 0.1rem solid rgba(255,255,255,0.25);
  background: rgba(0,0,0,0.35);
  color:var(--txt-fff);
  font-size: 2.2rem;
  line-height: 1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:.2s;
}
.store-detail-page .sd-nav:hover{ background: rgba(0,0,0,0.5); }
.store-detail-page .sd-prev{ left: 1.2rem; }
.store-detail-page .sd-next{ right: 1.2rem; }

/* dots */
.store-detail-page .sd-dots{
  position:absolute;
  left: 50%;
  bottom: 1.2rem;
  transform: translateX(-50%);
  display:flex;
  gap: 0.6rem;
}
.store-detail-page .sd-dot{
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 99rem;
  border: none;
  background: rgba(255,255,255,0.45);
  cursor:pointer;
}
.store-detail-page .sd-dot.is-active{
  width: 2.2rem;
  background: var(--txt-fff);
}

/* count */
.store-detail-page .sd-count{
  position:absolute;
  right: 1.2rem;
  bottom: 1.2rem;
  padding: 0.6rem 1.0rem;
  border-radius: 99rem;
  background: rgba(0,0,0,0.45);
  color:var(--txt-fff);
  font-size: 1.5rem;
}

/* Info */
.store-detail-page .sd-info{
  padding: 2.0rem;
}

.store-detail-page .sd-sec-title{
  font-size: 2.0rem;
  font-weight: 900;
  color: var(--txt-111);
}

.store-detail-page .sd-info-table{
  width:100%;
  border-collapse: collapse;
  margin-top: 1.2rem;
  border-top: 0.1rem solid #eee;
}
.store-detail-page .sd-info-table th,
.store-detail-page .sd-info-table td{
  padding: 1.2rem 1.0rem;
  border-bottom: 0.1rem solid #eee;
  font-size: 1.8rem;
  vertical-align:top;
}
.store-detail-page .sd-info-table th{
  width: 11rem;
  background: var(--main-bg);
  font-weight: 900;
  color: var(--txt-111);
}
.store-detail-page .sd-info-table td{
  color: var(--txt-111);
  line-height: 1.55;
}

.store-detail-page .sd-actions{
  margin-top: 1.6rem;
  display:flex;
  gap: 0.8rem;
}
.store-detail-page .sd-actions .btn{
  flex: 1;
}

/* Map */
.store-detail-page .sd-map{
  margin-top: 1.6rem;
  padding: 2.0rem;
}

.store-detail-page .sd-map-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 1.2rem;
  flex-wrap:wrap;
  padding-bottom: 1.2rem;
  border-bottom: 0.1rem solid #eee;
}
.store-detail-page .sd-map-sub{
  font-size: 1.6rem;
  color: var(--txt-666);
}

.store-detail-page .map-box{
  margin-top: 1.4rem;
  border-radius: var(--all-radius);
  overflow:hidden;
  border: 0.1rem solid #eee;
  background: #f7f8fb;
}
.store-detail-page .map-placeholder{
  height: 34rem;
  display:flex;
  align-items:center;
  justify-content:center;
  color: var(--txt-666);
  font-size: 1.8rem;
}

.store-detail-page .sd-map-meta{
  margin-top: 1.2rem;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.0rem;
}
.store-detail-page .sd-map-meta .meta{
  padding: 1.2rem;
  border: 0.1rem solid #eee;
  border-radius: var(--all-radius);
  background:var(--txt-fff);
}
.store-detail-page .sd-map-meta .label{
  display:block;
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--txt-666);
}
.store-detail-page .sd-map-meta .value{
  display:block;
  margin-top: 0.4rem;
  font-size: 1.8rem;
  color: var(--txt-111);
  line-height: 1.5;
}


/* 마이페이지 */

.my-page .card{
  border: 0.1rem solid var(--line-ddd);
  border-radius: var(--all-radius);
  background:var(--txt-fff);
  box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
}

.my-page .my-top{
  margin-top: 2.4rem;
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 1.6rem;
  align-items: start;
}

/* Profile */
.my-page .my-profile{
  padding: 1.6rem 2.0rem;
}

.my-page .my-profile-head{
  display:flex;
  gap: 1.6rem;
  align-items:center;
}

.my-page .avatar{
  width: 8.4rem;
  height: 8.4rem;
  border-radius: 99rem;
  overflow:hidden;
  border: 0.1rem solid #eee;
  flex: 0 0 auto;
}

.my-page .avatar img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

.my-page .info{ flex: 1; min-width: 0; }
.my-page .name-row{
  display:flex;
  align-items:center;
  gap: 1.0rem;
  flex-wrap: wrap;
}
.my-page .name{
  font-size: 2.4rem;
  font-weight: 900;
  color: var(--txt-111);
}
.my-page .badge{
  display:inline-flex;
  align-items:center;
  gap: 0.6rem;
  padding: 0.5rem 0.9rem;
  border-radius: 99rem;
  border: 0.1rem solid #eee;
  background: var(--txt-fff);
}
.my-page .badge img{
  width: 2.0rem;
  height: 2.0rem;
  border-radius: 0.4rem;
}
.my-page .badge em{
  font-style: normal;
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--txt-111);
}

.my-page .sub{
  margin-top: 0.4rem;
  font-size: 1.8rem;
  color: var(--txt-666);
}

.my-page .my-profile-actions{
  margin-top: 1.6rem;
  display:flex;
  gap: 0.8rem;
}
.my-page .my-profile-actions .btn{
  flex: 1;
}

.my-page .my-shortcuts{
  display:flex;
  flex-direction: column;
  gap: 1.2rem;
}

.my-page .shortcut{
  padding: 1.8rem;
  display:flex;
  align-items:center;
  gap: 1.2rem;
  transition: .2s;
}
.my-page .shortcut:hover{
  border-color: var(--main-blue);
  transform: translateY(-0.1rem);
}

.my-page .shortcut .ico{
  width: 5.2rem;
  height: 5.2rem;
  border-radius: 1.2rem;
  background: var(--main-bg);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border: 0.1rem solid #eee;
  flex: 0 0 auto;
}
.my-page .shortcut .ico img{
  width: 3.2rem;
  height: 3.2rem;
  object-fit: cover;
}

.my-page .shortcut .txt{
  flex: 1;
  min-width:0;
}
.my-page .shortcut .txt strong{
  display:block;
  font-size: 1.8rem;
  font-weight: 900;
  color: var(--txt-111);
}
.my-page .shortcut .txt span{
  display:block;
  margin-top: 0.4rem;
  font-size: 1.6rem;
  color: var(--txt-666);
}
.my-page .shortcut .arrow{
  font-size: 2.4rem;
  color: var(--txt-666);
}

.my-page .my-menu{
  margin-top: 1.6rem;
  padding: 0.6rem 0;
}

.my-page .my-menu-list{
  list-style:none;
}

.my-page .my-menu-item{
  display:flex;
  align-items:center;
  gap: 1.2rem;
  padding: 1.4rem 2.0rem;
  border-top: 0.1rem solid #eee;
}
.my-page .my-menu-list li:first-child .my-menu-item,
.my-page .my-logout .logout {
  border-top: none;
}

.my-page .m-ico{
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 1.0rem;
  background: var(--main-bg);
  border: 0.1rem solid #eee;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  flex: 0 0 auto;
}
.my-page .m-ico img{
  width: 2.0rem;
  height: 2.0rem;
  object-fit: cover;
}

.my-page .m-txt{
  flex: 1;
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--txt-111);
}
.my-page .m-arrow{
  font-size: 2.2rem;
  color: var(--txt-666);
}

.my-page .my-menu-item:hover{
  background: rgba(0,133,214,0.04);
}

.my-page .is-strong .tel{
  margin-left: 0.8rem;
  font-weight: 900;
  color: var(--main-blue);
}

.my-page .my-logout{
  margin-top: 1.2rem;
  padding: 0.6rem 0;
}
.my-page .my-logout .logout{
  color: #d14;
}
.my-page .my-logout .logout:hover{
  background: rgba(221, 17, 68, 0.06);
}

/* 마이페이지-참가기록 */
.join-page .card{
  border: 0.1rem solid var(--line-ddd);
  border-radius: var(--all-radius);
  background:var(--txt-fff);
  box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
}

.join-page .join-summary{
  margin-top: 2.4rem;
  display:grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 1.6rem;
  align-items: stretch;
}

.join-page .join-user{
  padding: 1.8rem;
  display:flex;
  align-items:center;
  gap: 1.4rem;
}

.join-page .join-user .avatar{
  width: 6.8rem;
  height: 6.8rem;
  border-radius: 99rem;
  overflow:hidden;
  border: 0.1rem solid #eee;
  flex: 0 0 auto;
}
.join-page .join-user .avatar img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

.join-page .join-user .name{
  font-size: 2.2rem;
  font-weight: 900;
  color: var(--txt-111);
}
.join-page .join-user .sub{
  margin-top: 0.4rem;
  font-size: 1.8rem;
  color: var(--txt-666);
}

.join-page .join-kpis{
  padding: 1.6rem;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}

.join-page .join-kpis .kpi{
  border: 0.1rem solid #eee;
  border-radius: var(--all-radius);
  padding: 1.4rem;
  background:var(--txt-fff);
}
.join-page .join-kpis .kpi-label{
  font-size: 1.6rem;
  color: var(--txt-666);
  font-weight: 800;
}
.join-page .join-kpis .kpi-val{
  margin-top: 0.6rem;
  font-size: 1.8rem;
  color: var(--txt-111);
  font-weight: 900;
}
.join-page .join-kpis .kpi-val strong{
  font-size: 2.2rem;
  color: var(--main-blue);
}

.join-page .join-filter{
  margin-top: 1.6rem;
  padding: 1.8rem;
}

.join-page .join-filter-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom: 1.2rem;
  border-bottom: 0.1rem solid #eee;
}
.join-page .filter-tit{
  font-size: 1.8rem;
  font-weight: 900;
}

.join-page .join-filter-row{
  margin-top: 1.4rem;
  display:flex;
  align-items:center;
  gap: 1.0rem;
  flex-wrap: wrap;
}

.join-page .join-filter-row .tabs {
  margin-bottom:0;
}

.join-page .join-date .date-box{
  display:flex;
  align-items:center;
  gap: 0.8rem;
}
.join-page .join-date .lbl{
  font-size: 1.6rem;
  color: var(--txt-666);
  font-weight: 800;
}
.join-page .join-date .tilde{
  font-size: 1.8rem;
  color: var(--txt-666);
}
.join-page .join-date .input{
  width: 18rem;
  background:var(--txt-fff);
}
.join-page .join-search{
  padding: 1.2rem 2.2rem;
}

.join-page .join-list{
  margin-top: 1.6rem;
}

.join-page .join-item{
  padding: 1.6rem;
  margin-bottom: 1.2rem;
}

.join-page .join-item-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1.2rem;
  padding-bottom: 1.2rem;
  border-bottom: 0.1rem solid #eee;
}
.join-page .join-item-head .date{
  font-size: 1.6rem;
  font-weight: 900;
  color: var(--txt-111);
}
.join-page .btn-sm{
  height: 3.2rem;
  padding: 0 1.2rem;
  font-size: 1.6rem;
}

.join-page .join-item-body{
  padding-top: 1.4rem;
  display:grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 1.2rem;
  align-items:center;
}

.join-page .join-item-body .title{
  display:block;
  font-size: 2.0rem;
  font-weight: 900;
  color: var(--txt-111);
}
.join-page .join-item-body .sub{
  margin-top: 0.4rem;
  font-size: 1.8rem;
  color: var(--txt-666);
}

.join-page .join-item-body .right{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.8rem;
}
.join-page .mini-kpi{
  border: 0.1rem solid #eee;
  border-radius: var(--all-radius);
  padding: 1.2rem;
  text-align:center;
  background:var(--txt-fff);
}
.join-page .mini-kpi .k{
  display:block;
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--txt-666);
}
.join-page .mini-kpi .v{
  display:block;
  margin-top: 0.6rem;
  font-size: 2.0rem;
  font-weight: 900;
  color: var(--txt-111);
}

/* 개인정보/이용약관 */

.policy-page .card{
  border: 0.1rem solid var(--line-ddd);
  border-radius: var(--all-radius);
  background:var(--txt-fff);
  box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
}

.policy-page .policy-hero{
  margin-top: 2.4rem;
  padding: 1.8rem 2.0rem;
  display:flex;
  justify-content:space-between;
  gap: 1.6rem;
}

.policy-page .policy-title{
  font-size: 2.0rem;
  font-weight: 900;
}

.policy-page .policy-desc{
  margin-top: 0.6rem;
  font-size: 1.8rem;
  color: var(--txt-666);
  line-height: 1.65;
}

.policy-page .policy-meta{
  padding: 0.8rem 1.2rem;
  border: 0.1rem solid #eee;
  border-radius: var(--all-radius);
  background: var(--main-bg);
  font-size: 1.6rem;
}

.policy-page .policy-body{
  margin-top: 1.6rem;
  padding: 2.0rem;
}

.policy-page .p-sec{
  margin-top: 2.2rem;
  padding-top: 2.2rem;
  border-top: 0.1rem solid #eee;
}
.policy-page .p-sec:first-child{
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.policy-page .p-h2{
  font-size: 1.8rem;
  font-weight: 900;
  margin-bottom: 1.0rem;
}

.policy-page .p-para{
  font-size: 1.8rem;
  line-height: 1.8;
  color: var(--txt-666);
}

.policy-page .p-list{
  display:flex;
  flex-direction: column;
  gap: 0.6rem;
}
.policy-page .p-list li{
  padding-left: 1.2rem;
  position: relative;
  font-size: 1.8rem;
  line-height: 1.7;
}
.policy-page .p-list li::before{
  content:"•";
  position:absolute;
  left:0;
  color: var(--main-blue);
}

.policy-page .policy-bottom{
  margin-top: 2.4rem;
  display:flex;
  justify-content:flex-end;
}



/* 로그인 */

.auth-page .sub-inner{
  max-width: 140rem; 
}

.auth-page .auth-card{
  max-width: 56rem;
  margin: 2.4rem auto 0;
  border: 0.1rem solid var(--line-ddd);
  border-radius: var(--all-radius);
  background: var(--txt-fff);
  box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
  padding: 2.4rem;
}

.auth-page .auth-card-head{
  padding-bottom: 1.6rem;
  border-bottom: 0.1rem solid #eee;
  margin-bottom: 1.6rem;
}

.auth-page .auth-h2{
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.25;
}

.auth-page .auth-desc{
  margin-top: 0.6rem;
  font-size: 1.8rem;
  color: var(--txt-666);
  line-height: 1.6;
}

.auth-page .auth-form{
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}

.auth-page .form-row{
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.auth-page .form-label{
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--txt-111);
}

.auth-page .auth-input{
  height: 4.8rem;
  padding: 1.2rem 1.4rem;
  background: var(--txt-fff);
}

.auth-page .auth-input::placeholder{
  color: #aaa;
}


.auth-page .form-alert{
  border: 0.1rem solid rgba(220, 53, 69, 0.35);
  background: rgba(220, 53, 69, 0.06);
  border-radius: var(--all-radius);
  padding: 1.4rem 1.6rem;
  margin-bottom: 1.2rem;
}

.auth-page .form-alert-title{
  display: block;
  font-size: 1.8rem;
  font-weight: 800;
  color: var(--color-red);
}

.auth-page .form-alert-list{
  margin-top: 0.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.auth-page .form-alert-list li{
  font-size: 1.6rem;
  color: var(--color-red);
  line-height: 1.6;
}


.auth-page .auth-actions{
  margin-top: 0.4rem;
}

.auth-page .auth-submit{
  width: 100%;
  height: 4.8rem;
  padding: 0;
  font-weight: 700;
}

.auth-social {
  margin-top: 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.social-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.9rem 1.2rem;
  border-radius: var(--all-radius);
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--txt-fff);
  gap: 0.6rem;
}

.social-btn img {
  width: 18px;
  height: 18px;
}

.social-kakao {
  background-color: #FEE500;
  color: #3A1D1D;
}

.social-naver {
  background-color: #03C75A;
  color: var(--txt-fff);
}

.social-apple{
    background:var(--txt-111);
    color:var(--txt-fff);
}

.social-apple .social-icon{
    width:20px;
    height:20px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}

.social-apple svg{
    width:100%;
    height:100%;
    display:block;
}

.auth-page .auth-help{
  margin-top: 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  color: var(--txt-666);
  font-size: 1.6rem;
}

.auth-page .auth-link:hover{
  color: var(--main-blue);
}

.auth-page .auth-help .dot{
  opacity: 0.6;
}


/* 프로필 수정 */
.profile-page .sub-inner{
  max-width: 140rem;
}

.profile-page .profile-card{
  margin-top: 2.4rem;
  border: 0.1rem solid var(--line-ddd);
  border-radius: var(--all-radius);
  background: var(--txt-fff);
  box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,0.04);
  padding: 2.4rem;
}

.profile-page .profile-card-head{
  padding-bottom: 1.6rem;
  border-bottom: 0.1rem solid #eee;
  margin-bottom: 2.0rem;
}

.profile-page .profile-h2{
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.25;
}

.profile-page .profile-desc{
  margin-top: 0.6rem;
  font-size: 1.8rem;
  color: var(--txt-666);
}

.profile-page .form-card{
  border: 0.1rem solid #eee;
  border-radius: var(--all-radius);
  padding: 2.0rem;
  background: var(--txt-fff);
}
.profile-page .form-card + .form-card{ margin-top: 1.6rem; }

.profile-page .form-card-title{
  font-size: 1.6rem;
  font-weight: 800;
  margin-bottom: 1.6rem;
}

.profile-page .form-rows{
  display: grid;
  gap: 1.4rem;
}

.profile-page .frow{
  display: grid;
  grid-template-columns: 18rem 1fr;
  gap: 2.0rem;
  align-items: start;
}

.profile-page .flabel{
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--txt-111);
  padding-top: 1.2rem;
}

.profile-page .fcontrol{
  min-width: 0;
}

.profile-page .input{
  height: 4.8rem;
  background: var(--search-bg);
}

.profile-page .form-help{
  margin-top: 0.6rem;
  font-size: 1.6rem;
  color: var(--txt-666);
  line-height: 1.6;
}
.profile-page .form-help.is-warn{ color: var(--color-red); }

.profile-page .is-readonly .form-readonly{
  height: 4.8rem;
  display: flex;
  align-items: center;
  padding: 0 1.4rem;
  border: 0.1rem solid var(--line-ddd);
  border-radius: var(--all-radius);
  background: var(--search-bg);
  font-weight: 700;
}

.profile-page .email-grid{
  display: grid;
  grid-template-columns: 1fr auto 1fr 16rem;
  gap: 0.8rem;
  align-items: center;
}

.profile-page .email-at{
  font-size: 1.8rem;
  color: var(--txt-666);
  padding: 0 0.2rem;
}

.profile-page .email-select{
  background: var(--txt-fff);
}

.profile-page .phone-grid{
  display: grid;
  grid-template-columns: 10rem 1fr 1fr 14rem;
  gap: 0.8rem;
  align-items: center;
}

.profile-page .phone-auth{
  height: 4.8rem;
  padding: 0 1.2rem;
  white-space: nowrap;
}

.profile-page .addr-grid{
  display: grid;
  grid-template-columns: 18rem 12rem 1fr;
  gap: 0.8rem;
  align-items: center;
}
.profile-page .addr-grid .addr-wide{
  grid-column: 1 / -1;
}

.profile-page .addr-btn{
  height: 4.8rem;
  padding: 0 1.2rem;
}

.profile-page .checkline{
  display: inline-flex;
  align-items: flex-start;
  gap: 0.8rem;
  font-size: 1.6rem;
  color: var(--txt-666);
  line-height: 1.5;
  margin-top: 0.8rem;
}

.profile-page .radio-row{
  display: flex;
  align-items: center;
  gap: 1.6rem;
  padding-top: 0.8rem;
}

.profile-page .radio{
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 1.8rem;
  color: var(--txt-111);
}

.profile-page .file-row{
  margin-top: 1.0rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.profile-page .form-actions{
  margin-top: 2.0rem;
  display: flex;
  justify-content: center;
  gap: 1.0rem;
}

.profile-page .danger-zone{
  margin-top: 1.6rem;
  padding: 1.6rem;
  border: 0.1rem solid rgba(220, 53, 69, 0.28);
  background: rgba(220, 53, 69, 0.05);
  border-radius: var(--all-radius);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
}

.profile-page .danger-text strong{
  display: block;
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--color-red);
}

.profile-page .danger-text p{
  margin-top: 0.4rem;
  font-size: 1.6rem;
  color: var(--color-red);
  opacity: 0.85;
}

.profile-page .btn-danger{
  background: #dc3545;
  color: var(--txt-fff);
  border-radius: var(--all-radius);
  padding: 1.2rem 2.0rem;
  font-size: 1.8rem;
  font-weight: 700;
  transition: .2s;
}
.profile-page .btn-danger:hover{ opacity: 0.9; }






/* 메인 */

main {background:var(--main-bg);}
.ms-main{
  color:var(--txt-111);
}

.inner.main-1800{
  width:100%;
  max-width: 180rem;
  margin: 0 auto;
}

/* 공통 */
.swiper{ width:100%; overflow:hidden; }
.swiper-wrapper{ box-sizing:border-box; }
.swiper-slide{ box-sizing:border-box; }

.main-visual{ padding:0 0 13rem;}

/* Visual*/
.visual-swiper{
  border-radius: 2.8rem;
  overflow:hidden;
  background:#ddd;
  box-shadow: 0 1.6rem 4.6rem rgba(0,0,0,.10);
  position: relative;
}

.visual-card{
  display:block;
  height: 80rem;
  border-radius: 2.8rem;
  background:
    linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.10) 55%, rgba(0,0,0,.00) 70%),
    var(--bg) center/cover no-repeat;
  position: relative;
}

.visual-copy{
  position:absolute;
  left: 10.0rem;
  bottom: 18.5rem;
  color:var(--txt-fff);
}

.visual-eyebrow{
  font-size: 1.7rem;
  margin: 0 0 2.0rem;
}

.visual-title{
  margin: 0 0 4.0rem;
  font-size: 7.0rem;
  font-weight: 800;
  line-height: 1.15;
}

.visual-desc{
  margin: 0;
  font-size: 2.0rem;
  line-height: 1.55;
}

.visual-progress{
  position: absolute;
  left: 50%;
  bottom: 3.2rem;
  transform: translateX(-50%);
  width: 60%;
  max-width: 32rem;
  height: 0.3rem;
  background: rgba(255,255,255,0.3);
  border-radius: 999rem;
  overflow: hidden;
  pointer-events: none;
  z-index:1;
}

.visual-progress-bar{
  display: block;
  width: 0;
  height: 100%;
  background: #ffffff;
  border-radius: inherit;
}


/* =========================
  MS Golf quick cards
========================= */
.main-golf{padding:0 0 12rem;}
.ms-quick-title{
  margin: 0 0 6.5rem;
  font-size: 6.4rem;
  color:var(--main-blue);
  font-weight: 800;
  font-family:var(--font-eng);
}

.ms-quick-grid{
  display:grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 1.6rem;
}

.quick-card{
  background:var(--txt-fff);
  border-radius: 1.6rem;
  padding: 6rem;
  min-height: 10.6rem;
  display:flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,.08);
}

.quick-ttl{
  display:block;
  font-weight: 800;
  line-height:1;
}

.quick-desc{
  font-size: 1.8rem;
  line-height: 1.45;
}

.quick-card:nth-child(1) .quick-ttl {font-size:5.0rem; margin:0 0 4rem; color:var(--txt-111); font-style:italic;}
.quick-card:nth-child(1) .quick-desc {font-size:2rem; width:64%;}
.quick-card:nth-child(2) .quick-ttl {font-size:4.2rem; color:var(--txt-333); margin:0 0 2rem;}
.quick-card:nth-child(2) .quick-desc {width:75%; color:var(--txt-333)}
.quick-card:nth-child(3) {align-items:end;}
.quick-card:nth-child(3) .quick-ttl {font-size:2.8rem; margin:0 0 1.5rem; color:var(--txt-fff);}
.quick-card:nth-child(3) .quick-desc {color:var(--txt-fff); opacity:0.8;}

/* 사진형 카드 */
.quick-card--photo{
  overflow:hidden;
  position:relative;
}
.quick-card--photo:nth-child(1) {background:url(../../image/web/msgolf_bg01.png) bottom right no-repeat; background-size:contain;}
.quick-card--photo:nth-child(2) {background:#e4e9ed url(../../image/web/msgolf_bg02.png) bottom center no-repeat; background-size:cover;}
.quick-card--photo:nth-child(3) {background:url(../../image/web/msgolf_bg03.png) center no-repeat; background-size:cover;}

/* =========================
  02. Tournament
========================= */
.tournament{
  padding: 12rem 0;
  background:#444;
  position:relative;
  overflow:hidden;
}

.tour-wrap{
  position: relative;
  overflow: hidden;
  display:grid;
  grid-template-columns: 60rem 1fr;
  gap: 4.2rem;
  min-height: 34rem;
}

.tour-left{
  position:relative;
  color:var(--txt-fff);
  z-index: 2;
}

.tour-dots{
  display:flex;
  gap: .8rem;
  margin-bottom: 7rem;
}
.tour-dots .dot{
  width: 3rem; height: 3rem;
  border-radius: 99rem;
  background: rgba(255,255,255,.25);
}
.tour-dots .dot.is-on{
  width: 20rem;
  background: var(--main-blue);
}

.tour-title{
  margin: 0 0 4rem;
  font-size: 6.4rem;
  font-weight: var(--tit-weight);
}
.tour-desc{
  margin: 0 0 5rem;
  font-size: 2rem;
  line-height: 1.65;
}

.btn-pill{
  display:inline-flex;
  align-items:center;
  justify-content: space-between;
  gap: 1.0rem;
  height: 7.5rem;
  width:30rem;
  padding: 0 0.5rem 0 5rem;
  border-radius: 99rem;
  background:var(--txt-fff);
  color:var(--main-blue);
  font-size: 2.2rem;
  transition:0.3s;
}
.btn-pill-ic{
  width: 6.5rem; height: 6.5rem;
  border-radius: 99rem;
  background: var(--main-blue);
  position: relative;
  transition:0.3s;
}
.btn-pill-ic::before{
  content:"";
  position:absolute;
  left: 50%;
  top: 50%;
  width: .7rem;
  height: .7rem;
  border-right: .2rem solid var(--txt-fff);
  border-bottom: .2rem solid var(--txt-fff);
  transform: translate(-60%,-50%) rotate(-45deg);
  transition:0.3s;
}

.btn-pill:hover {
  color:var(--txt-fff);
  background:var(--main-blue);
}
.btn-pill:hover .btn-pill-ic {background:var(--txt-fff);}
.btn-pill:hover .btn-pill-ic::before {
  border-right: .2rem solid var(--main-blue);
  border-bottom: .2rem solid var(--main-blue);
}



.tour-watermark{
  position:absolute;
  font-size: 38rem;
  bottom:-18rem;
  font-weight: 900;
  letter-spacing: .06em;
  color: rgba(255,255,255,.05);
  user-select:none;
  white-space:nowrap;
  font-family:var(--font-eng);
}

.tour-right{ z-index:2; background:var(--txt-fff); padding:4rem; border-radius:2.5rem;}

.tournament-swiper .swiper-slide{
  width: calc((100% - 3.2rem) / 3) !important;
}

.tour-thumb{
  border-radius:1.5rem; 
  aspect-ratio: 1/1.2;
  overflow:hidden;
}

.tour-thumb img {
  width:100%;
}

.tour-body{
  padding: 2.0rem 0 0;
}
.tour-meta{
  margin: 0 0 1.5rem;
  font-size: 2rem;
  font-weight: 800;
  color:var(--txt-333);
}

.tour-meta span {
  color:var(--main-blue);
}

.tour-sub{
  margin: 0;
  font-size: 1.6rem;
  color:#666;
  line-height: 1.5;
}

/* =========================
  03. Course
========================= */
.course{ padding: 4.6rem 0 6.2rem; }

.course-box{
  background:var(--txt-fff);
  border-radius: 5rem;
  padding: 6rem;
}

.course-head{
  position:relative;
  margin-bottom: 2.4rem;
}

/* .course-txt {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items: start;
} */

.course-tabs{
  display:flex;
  gap: 1.2rem;
}

.course-tab{
  width:19rem;
  height: 6rem;
  padding: 0 2.2rem;
  border-radius: 99rem;
  border: .1rem solid #b9d9f3;
  background:var(--txt-fff);
  color:var(--main-blue);
  font-size: 2rem;
}
.course-tab.is-active{
  background:var(--main-blue);
  border-color:var(--main-blue);
  color:var(--txt-fff);
}

.course-title{
  margin: 5.0rem 0 0;
  font-size: 6.4rem;
  font-weight: 900;
  line-height:1;
}

.course-right-copy p{
  justify-self: end;
  text-align: right;
  color:var(--txt-666);
  font-size: 3.0rem;
  line-height: 1.6;
  font-weight:500;
  position: relative;
}
.course-logo{
  width:220px;
  position:absolute;
  right: 0;
  top: 0;
  font-size: 1.5rem;
  color:#bbb;
  letter-spacing:.4em;
}

.course-panel{ display:none; }
.course-panel.is-show{ display:block; }
.course-panel[hidden]{ display:none; }

.course-grid{
  display:grid;
  grid-template-columns: 1fr .85fr;
  gap: 2.4rem;
  align-items: stretch;
}

.course-main {min-width:0;}

.course-main-card{
  border-radius: 2rem;
  padding:4.0rem;
  overflow:hidden;
  background:#444;
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 32rem;
}

.course-main-photo{
  width:41rem;
  aspect-ratio: 1/0.8;
  overflow: hidden;
  border-radius: 0.8rem; /* 디자인 따라 조절 */
}

.course-main-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}


.course-main-info{
  padding: 3.0rem 3.0rem 0;
  color:var(--txt-fff);
  display:flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.6rem;
}

.course-main-ttl{
  margin: 0 0 4rem;
  font-size: 3.4rem;
  font-weight: 900;
}

.course-main-desc{
  margin: 0;
  color: rgba(255,255,255,.78);
  font-size: 2.0rem;
  line-height: 1.65;
}

.course-main-btn{
  height: 7.5rem;
  border-radius: 38rem;
  background:var(--txt-fff);
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 1.0rem;
  font-size: 2.2rem;
  font-weight: 800;
  color:var(--main-blue);
  padding:0 0.5rem 0 5rem;
  transition:0.3s;
}
.course-main-ic{
  width: 6.5rem; height: 6.5rem;
  border-radius: 99rem;
  background: var(--main-blue);
  position: relative;
  transition:0.3s;
}
.course-main-ic::before{
  content:"";
  position:absolute;
  left: 50%;
  top: 50%;
  width: .7rem;
  height: .7rem;
  border-right: .2rem solid var(--txt-fff);
  border-bottom: .2rem solid var(--txt-fff);
  transform: translate(-60%,-50%) rotate(-45deg);
  transition:0.3s;
}


.course-main-btn:hover {
  color:var(--txt-fff);
  background:var(--main-blue);
}
.course-main-btn:hover .course-main-ic {background:var(--txt-fff);}
.course-main-btn:hover .course-main-ic::before {
  border-right: .2rem solid var(--main-blue);
  border-bottom: .2rem solid var(--main-blue);
}







/* 오른쪽 2장(스크린샷처럼) */
.course-side{
  display:flex;
  align-items: end;
  min-width: 0;
}
.course-side-swiper{
  width: 100%;
  height:80%;
}
.course-side-swiper .swiper-wrapper{
  height: 100%;
}
.course-side-card{
  display:block;
  width: 100%;
  height: 100%;
  min-height: 15.2rem;
  border-radius: 2.2rem;
  background: var(--bg) center/cover no-repeat;
  box-shadow: 0 1.2rem 3.2rem rgba(0,0,0,.10);
}
.course-side-swiper .swiper-slide{
  height: auto;
}

.course-side-swiper .swiper-slide.is-hidden {
  display: none !important;
}

/* =========================
  04. Notice + CS
========================= */
.notice{
  padding: 0 0 6.2rem;
}

.notice-wrap{
  display:grid;
  grid-template-columns: 0.8fr 0.9fr;
  gap: 13rem;
  align-items: stretch;
}

.notice-left{
  padding:0 0 0 4rem;
}

.notice-head{
  display:flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 3rem;
}

.notice-title{
  margin: 0;
  font-size: 4.8rem;
  font-weight: 900;
  position:relative;
}

.notice-title:before {
  content:'';
  width:2.5rem;
  height:2.5rem;
  border-radius:99rem;
  background:var(--main-blue);
  position:absolute;
  left: -4rem;
  top: 0;
  bottom: 0;
  margin: auto;
}



.notice-more{
  font-size: 2rem;
  font-weight: bold;
  color:var(--main-blue);
  padding: .6rem 1.0rem;
}

.notice-list{
  list-style:none;
  margin: 0;
  padding: 0;
}

.notice-item{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items:center;
  gap: 1.0rem;
  padding: 3rem 0;
  border-bottom: .1rem solid #bebfc1;
}

.notice-txt{
  font-size: 2.4rem;
  color:var(--txt-333);
  font-weight:bold;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition:0.3s;
}

.notice-txt:hover {
  color:var(--main-blue);
}

.notice-date{
  font-size: 1.8rem;
  color:var(--txt-666);
}

/* 우측 고객센터 카드 */
.cs-card{
  border-radius: 2rem;
  overflow:hidden;
  background:url(../../image/web/cs_bg.jpg);
}

.cs-card-link{
  display:block;
  height:100%;
  position:relative;
}

.cs-dim{
  padding: 5rem;
  color:var(--txt-fff);
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: end;
}

.cs-eyebrow{
  margin: 0;
  font-size: 4.8rem;
  font-weight:bold;
}

.cs-tel{
  margin: 0;
  font-size: 7.8rem;
  font-weight: 900;
}

.cs-time{
  margin: 0;
  font-size: 2.4rem;
  font-weight:400;
}


/* FOOTER */

.footer {
  background-color: #f7f8fc;
  padding: 2.4rem 0 0;
}

.footer-inner {
  background-color: #ffffff;
  border-radius: 5rem 5rem 0 0;
  padding: 5rem 0 5rem;
  box-sizing: border-box;
  font-size: 1.6rem;
  line-height: 1.6;
  color: #4b5563;
  box-shadow:0px -4px 20px 0px rgb(0 0 0 / 9%);
}

.footer-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.4rem;
  margin-bottom: 4rem;
}

.footer-copy {
  margin: 0;
  font-size: 1.8rem;
  color: var(--txt-333);
}

.footer-links {
  display: flex;
  align-items: center;
  gap: 2.4rem;
  font-size: 2rem;
}

.footer-links a {
  color:var(--txt-333);
  font-weight:500;
  text-decoration: none;
}

.footer-links a:hover {
  text-decoration: underline;
}

.footer-divider {
  border: 0;
  border-top: 0.1rem solid #e5e7eb;
  margin: 0 0 3rem;
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3.2rem;
}

.footer-info {
  flex: 1 1 auto;
  font-size: 1.8rem;
  color: ver(--txt-666);
}

.footer-info p {
  margin: 0 0 0.6rem;
}

.footer-logo {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.footer-logo img {
  display: block;
  width: auto;
}



/* HEADER */

.web-header {
  background-color: #f7f8fc;
  border: none;
}

.web-header.border-soft {
  border: none;
  box-shadow: none;
}

.header-inner {
  box-sizing: border-box;
}

/* header-utils*/

.header-utils {
  display: flex;
  justify-content: flex-end;
  padding: 2rem 0;
}

.header-auth-list {
  display: flex;
  align-items: center;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 1.6rem;
  color: #111827;
}

.header-auth-item {
  position: relative;
  padding-left: 3rem;
}

.header-auth-item:first-child {
  padding-left: 0;
}

/* 구분자 */
.header-auth-item + .header-auth-item::before {
  content: "";
  position: absolute;
  left: 1.5rem;
  top: 50%;
  transform: translateY(-50%);
  width: 0.1rem;
  height: 1.2rem;
  background-color: #9ca3af;
}

.header-auth-item a,
.header-auth-item button {
  font: inherit;
  font-size:1.6rem;
  color: #111827;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.header-auth-item a:hover,
.header-auth-item button:hover {
  text-decoration: underline;
}

.header-auth-name {
  color: #6b7280;
}


.header-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.header-logo {
  flex: 0 0 auto;
  position:absolute;
  top:5rem;
}

.header-logo a {
  display: inline-flex;
  align-items: center;
}

.header-logo img {
  display: block;
  height: 6rem;
  width: auto;
}

/* GNB */
.header-gnb {
  flex: 1 1 auto;
  display: flex;
  justify-content: end;
  margin-bottom:6rem;
}

.gnb-list {
  display: flex;
  align-items: center;
  gap: 6rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.gnb-item {
  position: relative;
}

.gnb-link {
  display: inline-flex;
  align-items: center;
  font-size: 2rem;
  font-weight: 600;
  color: #030303;
  text-decoration: none;
  padding: 0.2rem 0;
  transition:0.3s;
}

.gnb-link:hover,
.gnb-link:focus-visible {
  font-weight:bold;
  color:var(--main-blue);
}

/* 드롭다운 */

.header-gnb .gnb-list > .gnb-item {
  position: relative;
}

.header-gnb .gnb-list > .gnb-item > .gnb-depth2 {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 14rem;
  margin-top: 1.0rem;
  padding: 0.8rem 0;
  background-color: #ffffff;
  border-radius: 0.8rem;
  box-shadow: 0 0.6rem 2.0rem rgba(15, 23, 42, 0.12);
  list-style: none;
  display: none;
  z-index: 20;
}

.gnb-depth2 li {
  padding: 0;
}

.gnb-depth2 a {
  display: block;
  padding: 0.6rem 1.2rem;
  font-size: 1.6rem;
  color: var(--txt-333);
  text-decoration: none;
  text-align:center;
  transition:0.3s;
}

.gnb-depth2 a:hover,
.gnb-depth2 a:focus-visible {
  background-color: #f3f4f6;
  color:var(--main-blue);
}

.header-gnb .gnb-list > .gnb-item.is-open > .gnb-depth2 {
  display: block;
}

/* 햄버거 버튼 기본: PC에서는 숨김 */
.header-ham {
  display: none;
  position: relative;
  flex: 0 0 auto;
  width: 3.2rem;
  height: 2.4rem;
  margin-left: 2rem;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}

.header-ham span {
  position: absolute;
  left: 0;
  right: 0;
  height: 0.2rem;
  border-radius: 9999px;
  background-color: #111827;
  transition: transform 0.18s ease, opacity 0.18s ease, top 0.18s ease, bottom 0.18s ease;
}

/* 3줄 위치 */
.header-ham span:nth-child(1) {
  top: 0;
}
.header-ham span:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}
.header-ham span:nth-child(3) {
  bottom: 0;
}

/* 열렸을 때 X 아이콘 */
.web-header.is-nav-open .header-ham span:nth-child(1) {
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}
.web-header.is-nav-open .header-ham span:nth-child(2) {
  opacity: 0;
}
.web-header.is-nav-open .header-ham span:nth-child(3) {
  bottom: auto;
  top: 50%;
  transform: translateY(-50%) rotate(-45deg);
}
