@charset "utf-8";

body {position: relative; margin:0 auto; padding:0; width: 100%; height: 100%; color:#e3e3e3; background: #000 url('../img/bg.jpg') top center;}

/****************************************************************************************************************************************
공통
*****************************************************************************************************************************************/
.cursor-pointer {cursor: pointer;}


/****************************************************************************************************************************************
Header
*****************************************************************************************************************************************/
header {position: relative; width: 100%;}
.hd-top {position: relative; margin:0 auto; padding:20px 15px; width: 1430px; display: flex; align-items: center;}

/* 로고 */
.logo {animation: logo 1.7s infinite both;}
/* 로고는 비율을 유지한 채(width/height auto) 헤더 안에 들어가도록 상한만 건다.
   브랜드 로고 비율이 제각각(0.94~5.44)이라 높이만 고정하면 가로가 폭주한다 — 상한 박스로 양쪽을 막는다. */
.logo > img {cursor: pointer; max-height: 102px; max-width: 390px; width: auto; height: auto;}

@keyframes logo {
    0% {filter: brightness(1);}
    5% {filter: brightness(1.3);}
}

/* top-notice */
.top-notice {margin:0 20px; padding:0 10px; width: 350px; height: 40px; display: flex; justify-content: space-between; align-items: center; color: #ffffff; background: #000000; border-radius: 40px;}

/* 로그인 전 */
.before-tnb {margin-left: auto; position: relative; display: flex; justify-content: flex-end; align-items: center; gap: 5px;}
.before-tnb > button {margin:0 auto; padding:0; background: none; border:none;}
.before-tnb > button > span {display: none;}

/* 로그인 후 */
.pc-tnb {position: relative; margin-left: auto;}
/* 항목 간격은 고정 px 대신 gap+clamp — 화면이 좁아지면 간격이 먼저 줄어 헤더 넘침을 막는다(잔액 자릿수·번역 길이 대응). */
ul.pc-tnb-info {position: relative; margin: 0; padding:0; display: flex; justify-content: flex-end; align-items: center; gap: clamp(8px, 1.1vw, 22px);}
ul.pc-tnb-info > li {position: relative; margin: 0; padding:0; white-space: nowrap; font-size: 14px; color:#8d8d8d;}
ul.pc-tnb-info > li > img {margin-right: 5px; width: 20px;}
ul.pc-tnb-info > li > span {margin-left:6px; color:#ffb100;}
ul.pc-tnb-info > li > span.nickname {color:#fff;}
ul.pc-tnb-info > li > button {margin:0; padding:0; background: none; border:none;}
ul.pc-tnb-info > li > button > span {display: none;}

/* nav */
.nav {position: relative; margin:0; padding:20px 0; width: 100%; border-top: 1px solid rgba(255, 255, 255, 0.1);}
/* 텔레그램 아이콘 — 업체 지정 위치(메뉴줄 좌측). 메뉴 <li> 로 넣으면 가운데 정렬 메뉴가 통째로 밀리므로
   .nav(position:relative) 기준 절대배치로 띄운다. URL 미설정 테넌트는 마크업 자체가 없다. */
.nav-telegram {position: absolute; left: 60px; top: 50%; transform: translateY(-50%); display: inline-flex; align-items: center; gap: 8px;
    padding: 7px 14px 7px 10px; font-size: 14px; line-height: 1; letter-spacing: -0.2px; white-space: nowrap;
    color: #ffe6ac; text-decoration: none; background: linear-gradient(180deg, #3a3125 0%, #1a1510 100%);
    border: 1px solid #7a6440; border-radius: 6px; box-shadow: 0 2px 6px rgba(0,0,0,0.45); transition: 0.2s;}
.nav-telegram > img {width: 24px; height: 24px; display: block; flex: 0 0 auto;}
ul.menu {position: relative; margin:0 auto; padding:0 15px; width: 1430px; display: flex; justify-content: center; align-items: center;}
ul.menu > li {position: relative; margin: 0; padding: 0 25px; display: flex; flex-direction: column; align-items: center; font-size: 20px; font-weight: 400; font-family: 'GmarketSans'; color: #ffe6ac; cursor: pointer;}
ul.menu > li > p {font-size: 10px; font-weight: 400; font-family: 'GmarketSans';  color: #afafaf; transition: all 0.3s;}

/* lang-dropdown (공용 언어 전환기 — PC 는 헤더 우측, 모바일은 절대배치) */
.lang-dropdown {position: relative; margin-left: 10px;}
.hd-top > .lang-dropdown {flex: 0 0 auto;}
.btn-lang {display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 5px 9px; font-size: 13px; line-height: 1; color: #ffe6ac !important; text-decoration: none; background: linear-gradient(180deg, #3a3125 0%, #1a1510 100%); border: 1px solid #7a6440; border-radius: 5px; cursor: pointer; white-space: nowrap; transition: 0.2s;}
.btn-lang > .current-flag {font-size: 18px; line-height: 1;}
.btn-lang > i,
.btn-lang > svg {font-size: 11px; transition: transform 0.2s;}
.btn-lang.active {border-color: #ffb100; color: #ffb100 !important;}
.btn-lang.active > i,
.btn-lang.active > svg {transform: rotate(180deg);}
.lang-menu {display: none; position: absolute; top: calc(100% + 6px); right: 0; z-index: 10000; padding: 5px; min-width: 128px; background: linear-gradient(180deg, #1a1510 0%, #0a0806 100%); border: 1px solid #7a6440; border-radius: 5px; box-shadow: 0 8px 20px rgba(0,0,0,0.6);}
.lang-menu > a {display: flex; align-items: center; gap: 8px; padding: 8px 10px; color: #e3e3e3; text-decoration: none; border-radius: 4px; transition: 0.15s;}
.lang-menu > a > .flags {font-size: 16px; line-height: 1;}
.lang-menu > a > .country-name {font-size: 13px; min-width: 0; text-align: left; white-space: nowrap;}
.lang-menu > a.active {background: linear-gradient(180deg, #3a3125 0%, #1a1510 100%); color: #ffb100;}

.hd-line {position: relative; margin:0; padding:0; width: 100%; height: 9px;}

@media (hover: hover) and (pointer: fine) {
    .before-tnb > button:hover,
    ul.tnb-info > li > button:hover {filter: brightness(1.3);}

    .nav-telegram:hover {border-color: #ffb100; color: #ffb100; box-shadow: 0 0 10px rgba(255,177,0,0.35);}
    ul.menu > li:hover {color: #ffb100;}
    ul.menu > li:hover > p {color: #ffe6ac;}

    .btn-lang:hover {border-color: #ffb100; color: #ffb100 !important;}
    .lang-menu > a:hover {background: #2a2318;}
    .lang-menu > a.active:hover {background: linear-gradient(180deg, #3a3125 0%, #1a1510 100%);}
}

/* pc-hidden처리 */
.mo-gamebar,
.mo-bar,
.mo-leftLogo,
.mo-hd-line,
.mo-tnb,
ul.menu > li.mo-logout,
.mo-leftMenu,
.mo-footer,
.mo-lang-dropdown,
.mo-ft-menu {display: none;}

/****************************************************************************************************************************************
페이지 공통
*****************************************************************************************************************************************/
.container {position: relative; margin:0 auto; padding:0 15px; width: 1430px; text-align: center;}


/****************************************************************************************************************************************
footer
*****************************************************************************************************************************************/
footer {position:relative; margin: 60px 0 0 0; padding:50px 10px; width: 100%; background: rgba(0, 0, 0, 0.4);}
.ft_partners {position: relative; margin:0 auto; width: 100%; text-align: center;}
.copyright {position: relative; margin:0 auto; padding:40px 10px 0 10px; width: 100%; text-align: center; font-size: 18px; color: #737373;}

/****************************************************************************************************************************************
미디어쿼리문
*****************************************************************************************************************************************/
@media (max-width: 1460px) {
    .hd-top,
    ul.menu,
    .container {width: 100%;}
}/* 미디어쿼리문 끝 */

@media (max-width: 1230px) {
    .top-notice {display: none;}
}/* 미디어쿼리문 끝 */

@media (max-width: 1024px) {
    /* hd-top */
    .hd-top {padding:0; height: 70px; justify-content: space-between;}

    /* 🔴 모바일 헤더는 로고행(70) + 공지바(top:80) + 로그인/유저정보행(top:112)이 절대배치라
       header(relative, 70px) 밖으로 넘쳐 본문 상단을 덮고 스크롤로도 못 올렸음.
       header 에 min-height 를 줘 절대행들을 품고 본문(.contents)이 그 아래에서 시작하게 함.
       로그인 상태에 따라 유저정보행 높이가 달라 :has 로 구분. */
    header {min-height: 148px;}
    header:has(.pc-tnb) {min-height: 180px;}

    .mo-gamebar,
    .mo-bar {display: block;}
    .mo-gamebar > img,
    .mo-bar > img {width: 40px; cursor: pointer;}

    /* 언어 전환기 — 모바일은 헤더에 자리가 없어 햄버거 왼쪽에 절대배치 */
    .pc-lang-dropdown {display: none;}
    .mo-lang-dropdown {display: block; position: absolute; top: 20px; right: 58px; z-index: 100;}
    .mo-lang-dropdown .btn-lang {padding: 4px 8px;}

    .logo > img {max-height: 66px; max-width: 300px; width: auto; height: auto;}
    .hd-line {height: 4px;}

    .top-notice {display: flex; position: absolute; top:80px; z-index: 1; margin:0 auto; padding:0 10px; height: 32px; width: 100%; border-radius: 0;}

    /* 로그인전 */
    .before-tnb {display: flex; position: absolute; top:112px; z-index: 1; margin:0 auto; padding:0; width: 100%; justify-content: center; align-items: center; border-radius: 0;}
    .before-tnb > button {width:calc(100% / 2); height: 28px; font-size: 12px; color: #000; white-space: nowrap; text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7);}
    .before-tnb > button:nth-child(1) {background: linear-gradient(90deg, #3d2a12 0%, #bb773b 20%, #f1cd6e 35%, #ffffb0 50%, #f1cd6e 65%, #bb773b 80%, #3d2a12 100%);} 
    .before-tnb > button:nth-child(2) {background: linear-gradient(90deg, #383838 0%, #b6b6b6 20%, #eeeeee 35%, #ffffff 50%, #eeeeee 65%, #b6b6b6 80%, #383838 100%);} 
    .before-tnb > button > img {display: none;}
    .before-tnb > button > span {display: block; line-height: 28px; font-weight: 400;}

    /* 로그인후 */
    .pc-tnb  {position: absolute; top:112px; z-index: 1; margin:0 auto; padding:0; width: 100%; border-radius: 0; background: #000;}
    ul.pc-tnb-info {margin:0 auto; padding:0; width: 100%; display: flex; flex-wrap: wrap; gap:4px; justify-content: center; align-items: center; }
    ul.pc-tnb-info > li {margin:0; width: calc(100% / 2 - 4px); line-height: 28px; color: #fff; background: linear-gradient(180deg, #222222, #242222);} 

    /* 모바일 left 메뉴 */
    .mo-leftMenu {display:block; position:fixed; top:0; left:0; bottom:0; z-index:999; margin: 0; padding:0; width:100%; width:0px; background: #000 url('../img/bg.jpg') top center; box-shadow:0 5px 15px rgba(0, 0, 0, 0.5); overflow:hidden; overflow-y:scroll; transition:0.35s width ease;}
    .mo-leftMenu.active {width: 320px;}
    .mo-leftMenu::-webkit-scrollbar {width: 5px;}
    .mo-leftMenu::-webkit-scrollbar-thumb {height:10%; background:rgba(255,255,255,0.1); border-radius: 2px;}
    .mo-leftMenu::-webkit-scrollbar-track {background:rgba(255,255,255,0.08);} 

    ul.mo-menu {position: relative; margin:20px auto 0 auto; padding:0; width: 100%;}
    ul.mo-menu > li {position: relative; margin:5px auto; padding:0; width: 100%; cursor: pointer;}
    /* 좌측 게임 드로어 내 텍스트 메뉴(고객센터/이벤트/공지) — ul.menu 모바일 항목과 동일 골드 스타일 */
    ul.mo-menu > li.mo-menu-txt {margin:2px auto; padding:13px 10px; text-align:center; font-size:14px; font-weight:300; color:#000; font-family:'EsaManru'; text-shadow:1px 1px 1px rgba(255,255,255,0.7); background:linear-gradient(90deg, #3d2a12 0%, #bb773b 20%, #f1cd6e 35%, #ffffb0 50%, #f1cd6e 65%, #bb773b 80%, #3d2a12 100%);}
    /* 텔레그램 행만 아이콘 + 라벨 (PC 는 .nav-telegram 절대배치, 모바일 드로어는 목록 한 줄) */
    ul.mo-menu > li.mo-menu-txt.tg-menu {display: flex; align-items: center; justify-content: center; gap: 6px;}
    ul.mo-menu > li.mo-menu-txt.tg-menu > img {width: 20px; height: 20px;}

    /* nav */
    .nav {position:fixed; top:0; right:0; bottom:0; z-index:999; margin: 0; padding:0; width:100%; width:0px; background: #000 url('../img/bg.jpg') top center; box-shadow:0 5px 15px rgba(0, 0, 0, 0.5); overflow:hidden; overflow-y:scroll; transition:0.35s width ease;}
    .nav.active {width: 320px;}
    .nav::-webkit-scrollbar {width: 5px;}
    .nav::-webkit-scrollbar-thumb {height:10%; background:rgba(255,255,255,0.1); border-radius: 2px;}
    .nav::-webkit-scrollbar-track {background:rgba(255,255,255,0.08);}

    .mo-leftLogo {display: flex; justify-content: space-between; align-items: center; position: relative; padding:0 10px; width: 100%; height: 70px;}
    .mo-logo-1 {max-height: 60px; max-width: 270px; width: auto; height: auto; cursor: pointer;}
    .left-close,
    .right-close {width: 40px; cursor: pointer;}

    .mo-hd-line {display:block; position: relative; margin:0; padding:0; width: 100%; height: 4px;}
    .mo-hd-line > img {width: 100%; height: 4px;}

    /* 로그인후 */
    .mo-tnb {display: block;}
    ul.mo-tnb-info {margin-top:20px; flex-direction: column;align-items: flex-start;}
    ul.mo-tnb-info > li {padding:10px 10px; width: 100%; color: #e3e3e3;}
    ul.mo-tnb-info > li > img {margin-right:5px;}
    ul.mo-tnb-info > li > span {margin-left:5px; color: #ffea00;}
    
    ul.menu {margin-top:20px; flex-direction: column;align-items: flex-start;}
    ul.menu > li {margin:2px auto; padding:13px 10px; width: 100%; text-align: center; font-size: 14px; font-weight: 300; color:#000; font-family: 'EsaManru'; text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7); background: linear-gradient(90deg, #3d2a12 0%, #bb773b 20%, #f1cd6e 35%, #ffffb0 50%, #f1cd6e 65%, #bb773b 80%, #3d2a12 100%);}
    ul.menu > li > p {display:none;}
    ul.menu > li.mo-logout {display: block; background: linear-gradient(90deg, #383838 0%, #b6b6b6 20%, #eeeeee 35%, #ffffff 50%, #eeeeee 65%, #b6b6b6 80%, #383838 100%);}
    ul.menu > li:hover {color:#000;}
    
    .mo-hid {display: none !important;}
    .order-1 {order:1;}
    .order-2 {order:2;}
    .order-3 {order:3;}
    .order-4 {order:4;}
    .order-5 {order:5;}
    .order-6 {order:6;}

    /* footer — STX 는 푸터(_Footer)와 모바일 하단바(_MobileMenu)가 형제 파셜이라
       원본에서 <footer> 가 하던 고정 하단바 역할을 .mo-footer 래퍼가 대신한다 */
    footer {display: none;}
    .mo-footer {display: block; position: fixed; left:0; right:0; bottom:0; z-index: 99; margin:0; padding:0; width:100%; height: 20vw; background: url('../img/mo/bg_footer.png') center top no-repeat; background-size: cover;}

    ul.mo-ft-menu {display:flex; justify-content: center; align-items: center; margin: 3vw 0 0 0; width: 100%; height: 100%;}
    ul.mo-ft-menu > li {margin:0 auto; padding:5px 5px; width: calc(100% / 5); display: flex; align-items: center; justify-content: center; flex-direction: column; cursor: pointer;}
    ul.mo-ft-menu > li > p {margin-top:5px; font-size: 14px; color: #fff;}
    ul.mo-ft-menu > li.center-action {margin-top:-15px; width: 15.2vw; height: 15.2vw; background: linear-gradient(90deg, #3d2a12 0%, #bb773b 20%, #f1cd6e 35%, #ffffb0 50%, #f1cd6e 65%, #bb773b 80%, #3d2a12 100%); border-radius: 50%;}
    ul.mo-ft-menu > li.center-action > p {color:#000;}
}/* 미디어쿼리문 끝 */

/****************************************************************************************************************************************
hd-util — 헤더 최상단 유틸 메뉴 (Site:Brand:TopUtilMenu 를 설정한 테넌트만 렌더)
  🔴 기존 선택자를 하나도 건드리지 않는 **신규 클래스**다. 설정 안 한 업체는 요소 자체가 없어 영향 0.
  🔴 .hd-top 과 같은 1430px 컨테이너 폭·좌우 패딩을 쓴다 — 로고/메뉴와 좌측 정렬이 맞아야 한다.
*****************************************************************************************************************************************/
.hd-util {position: relative; margin:0 auto; padding:8px 15px 0; width: 1430px; display: flex; align-items: center;}
ul.hd-util-menu {position: relative; margin:0; padding:0; display: flex; align-items: center; gap: 18px; list-style: none;}
ul.hd-util-menu > li {position: relative; margin:0; padding:0;}
ul.hd-util-menu > li > a {
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.6;
    color: #c9b27a;            /* W06 골드 계열 — 본문보다 한 톤 낮춰 보조 메뉴로 읽히게 */
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.15s ease;
}
@media (hover: hover) and (pointer: fine) {
    ul.hd-util-menu > li > a:hover {color: #ffd98a;}
}
@media (max-width: 1460px) { .hd-util {width: 100%;} }
/* 모바일(≤1024)은 헤더가 절대배치 레이아웃이라 이 줄을 끼우면 겹친다 — 드로어 메뉴에 이미 같은 항목이 있다. */
@media (max-width: 1024px) { .hd-util {display: none;} }

/****************************************************************************************************************************************
page-notice — 흐르는 공지를 헤더 밖·메인 배너 위로 내린 테넌트 전용 래퍼
  (Site:Brand:NoticeBelowHeader=true 인 테넌트만 요소가 존재한다 → 설정 안 한 업체는 영향 0)
  🔴 기존 .top-notice 규칙을 **고치지 않는다**. 헤더 안에 그대로 두는 업체(크라운·쿨·팡팡)가 쓰는 규칙이다.
     여기서는 .page-notice 안쪽일 때만 덮어쓴다.
*****************************************************************************************************************************************/
.page-notice {position: relative; margin:0 auto; padding:14px 15px 0; width: 1430px;}
.page-notice .top-notice {margin:0; width: 100%; height: 44px; border-radius: 8px;}
@media (max-width: 1460px) { .page-notice {width: 100%;} }
/* 🔴 1230px 이하에서 .top-notice 를 숨기는 기존 규칙(헤더 자리 기준)이 여기까지 먹으면
   내려놓은 공지가 통째로 사라진다. 내린 자리에서는 계속 보여야 한다. */
@media (max-width: 1230px) { .page-notice .top-notice {display: flex;} }
/* 모바일(≤1024)은 기존 규칙이 .top-notice 를 absolute·top:80px 로 보내 헤더에 겹친다 —
   내린 자리에서는 흐름 안에 그대로 둔다. */
@media (max-width: 1024px) {
    .page-notice {padding:10px 10px 0;}
    .page-notice .top-notice {position: static; top: auto; height: 36px; border-radius: 6px;}
}
