/* 99casino 브랜드 오버라이드 — 디자인 원본(style.nine.css) 위에 얹는 보정 CSS */

/* 슬롯 상세: 게임 썸네일 비율 균일화.
   디자인 원본 `.game-view img { width:100%; max-height:157px }` 는 폭을 100%로 늘린 뒤
   높이만 157px로 잘라 이미지를 세로로 찌부러뜨림(제공사마다 원본비율 상이). 고정 비율 +
   object-fit:cover 로 왜곡 없이 균일하게 채움. */
.popup_box.SlotDetail .slotnav .game-view a img,
.popup_box.SlotDetail .game-view img {
	width: 100%;
	height: auto;
	max-height: none;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
	border-radius: 10px;
	display: block;
	background: #efe7db; /* 로딩/누락 시 카드와 이질감 없는 바탕 */
}

/* 이미지 로드 실패(onerror 로 hidden 처리)해도 카드 레이아웃 유지 */
.popup_box.SlotDetail .game-view a img[hidden] { display: none; }

/* 동적 벤더 타일 중 전용 아트가 없는 게임사(관리자가 새로 켠 벤더 등) — 무아트 카드.
   깨진 이미지 대신 브랜드 톤 배경 + 하단 게임사명으로 표시. */
.game_list .game_img.game_img--noart {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 120px;
	background: linear-gradient(135deg, #3a2410 0%, #1c1206 100%);
}
/* 전용 아트 없는 벤더: 실제 게임 썸네일이 로드되면 카드 전체를 cover 로 채움 */
.game_list .game_img.game_img--noart.noart_hasimg {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
/* 썸네일도 없는 벤더(라이브카지노 등): 빈 카드 대신 벤더명 라벨 표시 */
.game_list .game_img.game_img--noart .noart_label {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 90%;
	text-align: center;
	color: #f0e2c0;
	font-weight: 700;
	font-size: 15px;
	line-height: 1.3;
	word-break: keep-all;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
	pointer-events: none;
}
.game_list .game_img.game_img--noart.noart_hasimg .noart_label { display: none; }

/* 우상단 쪽지 안읽음 배지 */
.after_login .msg_badge {
	display: inline-block;
	min-width: 16px;
	height: 16px;
	margin-left: 4px;
	padding: 0 4px;
	border-radius: 8px;
	background: #e00028;
	color: #fff;
	font-size: 11px;
	line-height: 16px;
	text-align: center;
	font-weight: 700;
	vertical-align: middle;
}

/* 슬롯 상세: 게임 썸네일 비율 균일화 (이하 기존) */
/* 카드 높이가 이미지에 따라 들쭉날쭉하지 않도록 이름 영역 고정 */
.popup_box.SlotDetail .game-view > a { gap: 4px; }
.popup_box.SlotDetail .game-view .nm_sgame {
	width: 100%;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Turnstile — 이 스킨은 공용 auth-floating.css 를 로드하지 않아 여기에 둔다.
   위 여백 15px = .form_area 안 .form 블록끼리의 간격과 동일(실측). 안 주면 비밀번호 칸에 딱 붙는다.
   아래 여백은 .button_area 의 margin-top:40px 이 흡수하므로 두지 않는다. */
.turnstile-inline {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	margin: 15px 0 0;
	/* max-height 를 길이로 미리 잡아둔다 — none → 0 은 보간이 안 돼 전환이 안 걸린다
	   (auth-floating.css 의 같은 규칙 주석 참조). */
	max-height: 200px;
	transition: opacity .18s ease, max-height .18s ease, margin .18s ease,
	            visibility .18s ease;
}
/* 🔴 width:100% 가 있어야 size:'flexible' 이 실제로 먹는다 — 없으면 위젯이 자기 콘텐츠
   폭(300px)에 머문다(공용 auth-floating.css 의 같은 규칙 주석 참조). */
.turnstile-inline > .cf-turnstile {
	width: 100%;
	/* CF 위젯은 300px 밑으로 줄지 않는다 — 없으면 좁은 폼에서 밖으로 넘친다
	   (이 스킨 모바일 실측 268px → 300px 복원, 팝업 안에 들어감). */
	min-width: 300px;
	/* 🔴 상한이 없으면 폼이 넓을 때 위젯이 그만큼 늘어난다(W16 600px 제보).
	   공용 auth-floating.css 의 같은 규칙과 동일한 계약. */
	max-width: 400px;
}

/* 인증 통과 후 캡차 박스만 감춘다. 🔴 게이트 부활이 아니다 — 로그인폼·닫기는 그대로.
   (공용 auth-floating.css 의 동명 규칙과 같은 계약. 이 스킨은 그 파일을 안 읽어 별도로 둔다.)
   display 대신 높이만 접는 이유는 auth-floating.css 의 같은 규칙 주석 참조. */
.turnstile-inline.is-verified {
	max-height: 0;
	min-height: 0;
	margin: 0;
	opacity: 0;
	overflow: hidden;
	visibility: hidden;
	/* 🔴 delay 금지 — 토글 반복 시 최종값에 도달하지 못한다(auth-floating.css 주석 참조). */
	transition: opacity .18s ease, max-height .18s ease, margin .18s ease,
	            visibility .18s ease;
}

@media (prefers-reduced-motion: reduce) {
	.turnstile-inline,
	.turnstile-inline.is-verified { transition: none; }
}
.turnstile-msg {
	font-size: 12px;
	line-height: 1.5;
	text-align: center;
	color: #e35d6a;
	word-break: keep-all;
}
.turnstile-msg:empty { display: none; }
