@charset "utf-8";

/* 모바일 목록 */
@media all and (max-width:767px) {
	.responsive #bo_list .float-left.float-md-none {
		margin-right:0.75rem;
	}
	.responsive #bo_list .na-title {
		margin-bottom:0.14rem;
	}
}

/* gallery */
#bo_gallery .chk-box {
	position:absolute;
	bottom:5px;
	right:10px;
	z-index:2;
}
#bo_gallery .wr-now {
	position:absolute;
	width:100%;
	height:100%;
	top:0;
	left:0;
	background:rgba(0,0,0,0.75);
	z-index:1;
}

/* 게시판 읽기 */
#bo_v_title {
	font-size:23px;
	font-weight:bold;
	line-height:1.4;
	letter-spacing:-1px;
}
#bo_v_con {
	min-height:200px; 
	word-break:break-all;
	overflow:hidden
}
@media all and (max-width:575px) {
	.responsive #bo_v_title {
		font-size:20px;
		line-height:1.5;
	}
	.responsive #bo_v_con { 
		min-height:140px; 
	}
}

#bo_v_con img {
	max-width:100%;
	height:auto
}
#bo_v_img {
	width:100%;
	text-align:center;
	overflow:hidden;
	zoom:1;
}
#bo_v_img:after {
	display:block;
	visibility:hidden;
	clear:both;
	content:"";
}
#bo_v_img a.view_image {
	display:block;
}
#bo_v_img img {
	margin-bottom:1.0rem;
}

/* 게시판 읽기 : SNS 공유 */
#bo_v_sns_icon { 
	margin:-5px auto; 
}
#bo_v_sns_icon img { 
	width:40px; 
	border-radius:50%; 
	margin:5px;
}

/* 게시판 댓글 : 내용 */
.cmt-reply {
	top:0;
	left:-16px;
}
.by-writer { 
	background:#fbefef !important;
	border-top:1px solid #f6cece !important;
}
.cmt-content {
	word-break:break-all;
	overflow:hidden
}
.cmt-content img {
	max-width:100%;
	height:auto
}

/* 게시판 댓글 : 대댓글, 수정, 삭제 */
.cmt-btn ul { 
	list-style: none; 
	margin: 0; 
}
.cmt-btn ul > li { 
	float: left; 
	font-size:12px;
	padding: 0 10px; 
}
.cmt-btn ul > li::before { 
	float: left; 
	color:#ccc; 
	content: "|"; 
	margin-left:-12px;
}
.cmt-btn ul > li:last-child { 
	padding-right:0;
}
.cmt-btn ul > li:first-child::before, 
.cmt-btn ul > li.no-bar::before { 
	content: ""; 
	margin-left:0; 
}
.cmt-btn ul > li > a { 
	float:left;
	color:#888;
	white-space:nowrap;	
}

/* 게시판 댓글 : 쓰기폼 */
#fviewcomment #wr_content { 
	resize:none; 
}
@media all and (max-width:575px) {
	.responsive .cmt-box {
		border-right:0 !important;
	}
	.responsive #bo_vc_w .cmt-box {
		border-left:0 !important;
		border-radius:0 !important;
	}
	.responsive #bo_vc_login {
		border-left:0 !important;
		border-right:0 !important;
		border-radius:0 !important;
	}
}

/* 게시판 댓글 : SNS 등록 */
#bo_vc_opt ol {	
	margin:0;
	padding:0;
	list-style:none;
	zoom:1; 
	background:#ccc;
	border-radius:3px;
}
#bo_vc_opt ol:after { 
	display:block;
	visibility:hidden;
	clear:both;
	content:""; 
}
#bo_vc_opt ol li { 
	float:left;
	margin:0; 
}
#bo_vc_send_sns ul { 
	margin:0;
	padding:0;
	list-style:none;
	zoom:1; 
}
#bo_vc_send_sns ul:after { 
	display:block;
	visibility:hidden;
	clear:both;
	content:""; 
}
#bo_vc_send_sns ul li {	
	float:left;
	margin:0 1.0rem 0 0;
}
#bo_vc_send_sns input {	
	margin:0 0 0 0.5rem;
}

/* 게시판 쓰기 */
#bo_w .list-group-item {
	padding-left:0;
	padding-right:0;
	border-left:0;
	border-right:0;
}
#bo_w #wr_content { 
	margin-bottom:1.0rem !important;
}
@media all and (max-width:575px) {
	#bo_w .list-group-item {
		padding-left:1.0rem;
		padding-right:1.0rem;
	}
	.responsive #bo_w #wr_content {
		max-height:160px !important;
	}
}

/* Web-Basic-Slots : write form card wrapper (border + radius) */
#bo_w .ws-form-card {
	background:#fff;
	border:1px solid rgba(0,0,0,.125);
	border-radius:8px;
	overflow:hidden; /* clip the row dividers to the rounded corners */
}
/* Rows: one full-width bottom divider, no radius (predictable when nested in accordions) */
#bo_w .ws-form-card .list-group-item {
	border:0;
	border-bottom:1px solid rgba(0,0,0,.125);
	border-radius:0;
	padding-left:1.25rem;
	padding-right:1.25rem;
}
/* Last row sits flush on the card edge (no divider above the bottom border) */
#bo_w .ws-form-card .list-group-item:last-child {
	border-bottom:0;
}
/* Game features is the last visible section — its box provides the border */
#bo_w .ws-form-card .ws-features-row {
	border-bottom:0;
}
/* Section headers carry the divider between sections (top border) */
#bo_w .ws-form-card .ws-acc-head {
	border-top:1px solid rgba(0,0,0,.125);
}
/* First section header supplies the line under the title row */
#bo_w .ws-form-card .list-group-item.ws-form-head {
	border-bottom:0;
}

/* Collapsible section header (accordion) */
#bo_w .ws-acc-head {
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:space-between;
}
#bo_w .ws-acc-icon {
	color:#868e96;
	transition:transform .15s ease;
}
#bo_w .ws-acc-head.collapsed .ws-acc-icon {
	transform:rotate(-90deg);
}
/* Title row: card-header look with balanced padding */
#bo_w .ws-form-card .ws-form-head {
	padding-top:0.9rem;
	padding-bottom:0.9rem;
}
#bo_w .ws-form-card .ws-title-icon {
	margin-right:0.4rem;
}

/* Auto-grow textareas: min 100px, grow to fit, scroll past 200px (JS sets height) */
#bo_w textarea.ws-autogrow {
	min-height:100px;
	max-height:200px;
	overflow-y:auto;
	resize:none;
}

/* Thumbnail : drag & drop upload zone */
#bo_w .ws-upload {
	position:relative;
	border:2px dashed rgba(0,0,0,.15);
	border-radius:8px;
	background:#fafbfc;
	padding:2rem 1rem;
	text-align:center;
	transition:border-color .15s ease, background .15s ease;
}
#bo_w .ws-upload.is-dragover {
	border-color:var(--web-primary-foreground);
	background:#f1f3f5;
}
#bo_w .ws-upload-icon {
	font-size:2rem;
	color:#adb5bd;
	margin-bottom:.4rem;
}
#bo_w .ws-upload-title {
	font-weight:600;
}
#bo_w .ws-upload-sub {
	font-size:12px;
	color:#868e96;
	margin-top:.15rem;
}
#bo_w .ws-upload-preview {
	display:none;
}
#bo_w .ws-upload-preview img {
	max-height:180px;
	max-width:100%;
	border-radius:6px;
}
#bo_w .ws-upload-clear {
	display:none;
}
/* With an image present: hide the prompt, show the preview + a clear button */
#bo_w .ws-upload.has-image {
	padding:1rem;
	border-style:solid;
	background:#fff;
}
#bo_w .ws-upload.has-image .ws-upload-prompt {
	display:none;
}
#bo_w .ws-upload.has-image .ws-upload-preview {
	display:block;
}
#bo_w .ws-upload.has-image .ws-upload-clear {
	display:inline-flex;
	position:absolute;
	top:.5rem;
	right:.5rem;
	width:28px;
	height:28px;
	align-items:center;
	justify-content:center;
	padding:0;
	border:0;
	border-radius:50%;
	background:rgba(0,0,0,.55);
	color:#fff;
}

/* Game features : repeatable cards */
#bo_w .ws-feature {
	position:relative;
	background:#fff;
	border:1px solid #e9ecef;
	border-radius:8px;
	padding:.85rem .85rem .85rem 2.9rem;
	margin-bottom:.6rem;
	transition:border-color .15s ease, box-shadow .15s ease;
}
#bo_w .ws-feature:hover {
	border-color:#dee2e6;
	box-shadow:0 1px 3px rgba(0,0,0,.05);
}
#bo_w .ws-feature-no {
	position:absolute;
	top:1.4rem;
	left:.85rem;
	width:22px;
	height:22px;
	border-radius:50%;
	background:var(--web-primary-foreground);
	color:#fff;
	font-size:12px;
	line-height:22px;
	text-align:center;
	font-weight:600;
}
#bo_w .ws-feature-title {
	margin-bottom:.5rem;
	font-weight:600;
}
#bo_w .ws-feature-del {
	position:absolute;
	top:1.4rem;
	right:1.6rem;
	/* transparent 1px keeps the box stable so the hover border doesn't shift the icon */
	border:1px solid transparent;
	border-radius:4px;
	background:transparent;
	color:#ff0000;
	font-size:1rem;
	line-height:1;
	padding:.15rem .3rem;
}
/* Show a border on hover so it reads as a button */
#bo_w .ws-feature-del:hover {
	border-color:#ff0000;
	background:rgba(255,0,0,.06);
	color:#ff0000;
}
/* Dashed "add feature" button */
#bo_w .ws-feature-add {
	border:1px dashed rgba(0,0,0,.2);
	border-radius:8px;
	background:#fff;
	color:#868e96;
	padding:.6rem;
}
#bo_w .ws-feature-add:hover {
	border-color:var(--web-primary-foreground);
	color:var(--web-primary-foreground);
	background:#f8f9fa;
}
/* Required <select> (e.g. 제공사): nariya's .required sets require.png as the
   background, which would hide the BS4 custom-select caret. Layer both so the
   field shows the red asterisk AND keeps its dropdown chevron. */
#bo_w select.custom-select.required {
	background-image:
		url('../../../img/require.png'),
		url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") !important;
	background-repeat:no-repeat, no-repeat !important;
	background-position:right top, right .75rem center !important;
	background-size:auto, 8px 10px !important;
}
@media all and (max-width:575px) {
	.responsive #bo_w .ws-form-card .list-group-item {
		padding-left:1rem;
		padding-right:1rem;
	}
}

/* ==========================================================================
   Category filter + list toolbar — same look as Web-Basic-List:
   white outline pills, accent (--web-primary) hover/active with a 10% accent tint;
   toolbar controls share the theme control height (--web-ctl-h, theme.css).
   Category: category.skin.php #bo_cate (overrides nariya.css .sly-tab defaults).
   Toolbar:  partials/list/filterbar.php #ws-toolbar.
   ========================================================================== */
#bo_cate, #ws-toolbar {
	--ws-accent:var(--web-primary);
	--ws-accent-bg:color-mix(in srgb, var(--web-primary) 10%, #fff);
	--ws-line:#e5e7eb;
	--ws-h:var(--web-ctl-h, 42px);
}

#bo_cate .d-flex { border-left:0; }   /* drop nariya's container divider */
#bo_cate hr { display:none; }          /* drop the bottom tab line */

#bo_cate .sly-list > li { margin-right:.5rem; }
#bo_cate .sly-list > li:last-child { margin-right:0; }

/* Category capsules. (py-2 px-3 on the <a> supplies the padding via BS4 utilities.) */
#bo_cate .sly-list li a {
	display:flex; align-items:center; justify-content:center;
	height:var(--ws-h);               /* same height as the toolbar pills / search */
	border:1px solid var(--ws-line);
	border-radius:50rem;               /* pill */
	background:#fff;
	color:#495057;
	font-weight:600;
	line-height:1.35;
	text-align:center;
	transition:border-color .15s ease, color .15s ease, background .15s ease;
}
/* Category uses the dark foreground (not the green accent) so it reads apart from the filter pills below. */
#bo_cate .sly-list li a:hover { border-color:var(--web-primary); color:var(--web-primary); text-decoration:none; }
#bo_cate .sly-list li.active a { border-color:var(--web-primary-foreground); color:var(--web-primary); background:var(--web-primary-foreground); } /* active = solid fill, accent text */

/* Toolbar pills (game type / sort) */
#ws-toolbar .ws-pillbar { gap:.5rem 1.25rem; } /* gap (not margin) so a wrapped group starts flush left */
#ws-toolbar .ws-pillgroup { display:flex; flex-wrap:wrap; gap:.5rem; }
#ws-toolbar .ws-pill {
	display:inline-flex; align-items:center;
	height:var(--ws-h); padding:0 1rem;
	border:1px solid var(--ws-line); border-radius:8px; background:#fff;
	color:#495057; font-size:13px; font-weight:600; line-height:1.3; white-space:nowrap;
	transition:border-color .15s ease, color .15s ease, background .15s ease;
}
#ws-toolbar .ws-pill:hover { border-color:var(--ws-accent); color:var(--ws-accent); text-decoration:none; }
#ws-toolbar .ws-pill.active { border-color:var(--ws-accent); color:var(--ws-accent); background:var(--ws-accent-bg); }

/* Search box: one bordered control, dark (foreground) button — same as the list skin. */
#ws-toolbar .ws-search {
	height:var(--ws-h);
	border:1px solid var(--ws-line); border-radius:8px; overflow:hidden; background:#fff;
}
#ws-toolbar .ws-search-input {
	width:220px; height:100%; border:0; border-radius:0; padding:0 .8rem;
	font-size:14px; background:transparent;
}
#ws-toolbar .ws-search-input:focus { box-shadow:none; }
#ws-toolbar .ws-search:focus-within { border-color:var(--web-primary-foreground); }
#ws-toolbar .ws-search-btn {
	height:100%; border:0; border-radius:0; padding:0 1.1rem;
	background:var(--web-primary-foreground); color:#fff;
	font-size:13px; font-weight:700; white-space:nowrap;
}
#ws-toolbar .ws-search-btn:hover { background:color-mix(in srgb, var(--web-primary-foreground) 85%, #fff); color:#fff; }

/* Phone: search drops to its own full-width row under the pills. */
@media all and (max-width:575px) {
	#ws-toolbar .ws-search { width:100%; margin-left:0 !important; margin-top:.75rem; }
	#ws-toolbar .ws-search-input { flex:1 1 auto; width:auto; min-width:0; }
}

/* ==========================================================================
   Slot content cards (-> list.skin.php #bo_gallery). Rounded thumbnail with a
   NEW pill (top-left) + checkbox (top-right), then title, then provider + RTP.
   ========================================================================== */
/* isolation: own stacking context, so the badge/checkbox/overlay z-index stays inside
   the card and can't poke through page dropdowns (e.g. the 관리 menu). */
.ws-card { position:relative; isolation:isolate; }

/* Rounded thumbnail (1rem) — img-wrap has overflow:hidden so the image is clipped.
   !important overrides .na-round's 0.3rem !important on the same element. */
.ws-card .img-wrap { position:relative; border-radius:1rem !important; overflow:hidden; }
.ws-card .img-render { transition:transform .25s ease; }
.ws-card:hover .img-render { transform:scale(1.06); }

/* NEW / Now badge — flat pill, top-left */
.ws-card .ws-badge {
	position:absolute; top:8px; left:8px; z-index:3;
	padding:.05rem .5rem;
	border-radius:5px;
	font-size:10px; font-weight:800; letter-spacing:.03em;
	color:#000; background:var(--web-primary);
	box-shadow:0 2px 6px rgba(0,0,0,.25);
}
.ws-card .ws-badge-now { background:#fa5252; color:#fff; }
.ws-card .ws-badge-hot { background:#fa3e3e; color:#fff; }   /* related-games HOT badge */

/* Hover: green overlay + "무료체험" play button over the thumbnail */
.ws-card .ws-overlay {
	position:absolute; top:0; left:0; right:0; bottom:0; z-index:2;
	display:flex; align-items:center; justify-content:center;
	background:color-mix(in srgb, var(--web-primary) 55%, transparent);
	opacity:0; transition:opacity .18s ease;
}
.ws-card:hover .ws-overlay { opacity:1; }
.ws-card .ws-play {
	display:inline-flex; align-items:center;
	padding:.4rem .95rem;
	border-radius:50rem;
	background:var(--web-primary-foreground); color:#fff;
	font-size:13px; font-weight:700; white-space:nowrap;
	box-shadow:0 4px 12px rgba(0,0,0,.35);
	transform:translateY(6px); transition:transform .18s ease;
}
.ws-card .ws-play .fa { margin-right:.3rem; }
.ws-card:hover .ws-play { transform:translateY(0); }

/* Checkbox — moved to top-right on the image */
.ws-card .ws-chk {
	position:absolute; top:8px; right:8px; z-index:3;
	background:rgba(255,255,255,.9);
	border-radius:4px; padding:2px; line-height:0;
}
.ws-card .ws-chk input { margin:0; width:16px; height:16px; }

/* Title */
.ws-card .ws-name {
	display:block;
	margin-top:.6rem;
	color:var(--web-primary-foreground);
	font-weight:700;
	font-size:15px;
	line-height:1.35;
	white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.ws-card .ws-name:hover { color:var(--web-primary-foreground); text-decoration:none; }

/* Provider (left) + RTP (right) */
.ws-card .ws-meta {
	display:flex; justify-content:space-between; align-items:center;
	color:#868e96; font-size:12px;
}
.ws-card .ws-rtp { white-space:nowrap; }

/* Empty list — white bordered card, same as Web-Basic-Gallery (.wbl-empty) */
.ws-empty {
	padding:3.5rem 1rem;
	border:1px solid #e5e7eb; border-radius:12px; background:#fff;
	text-align:center; color:#868e96; font-size:14px;
}

/* ==========================================================================
   View page: hide the theme's page-title bar (#nt_title). Scoped to the view
   via :has(#bo_v) so the list/write pages keep their title bar.
   ========================================================================== */
body:has(#bo_v) #nt_title { display:none; }

/* View breadcrumb header (-> partials/view/breadcrumb.php): 홈 › 게시판 › 분류 */
.ws-crumb { padding-top:1.1rem; padding-bottom:1rem; color:#868e96; }   /* same top gap as the theme title bar it replaces (content has no top margin) */
@media all and (max-width:575px) { .responsive .ws-crumb { padding-top:.9rem; } }
/* Phones: the theme container has no side padding, so the view supplies a 1rem gutter
   (same as the sidebar cards) — keeps the cards from touching the screen edge. */
@media all and (max-width:575px) { .responsive #bo_v { padding-left:1rem; padding-right:1rem; } }
.ws-crumb a { color:#868e96; }
.ws-crumb a:hover { color:var(--web-primary-foreground); text-decoration:none; }
.ws-crumb .ws-crumb-sep { margin:0 .4rem; color:#c3c8d1; }
.ws-crumb .ws-crumb-cur { color:var(--web-primary-foreground); font-weight:700; }

/* View header card (-> partials/view/header-card.php): badge + title + meta. */
.ws-view-card {
	border-radius:14px;
	border:1px solid #dee2e6;
	box-shadow:0 -4px 14px rgba(0,0,0,.08);
}
.ws-view-badge {
	display:inline-block; margin-bottom:.75rem;
	padding:.2rem .6rem; border-radius:6px;
	font-size:12px; font-weight:800;
	color:#fff; background:var(--web-primary-foreground);    /* == bg-primary */
	border:1px solid var(--web-primary-foreground);
}
.ws-view-title { font-size:26px; font-weight:800; color:var(--web-primary-foreground); margin:0 0 1rem; line-height:1.3; }
.ws-view-meta { display:flex; flex-wrap:wrap; align-items:center; color:#868e96; font-size:14px; }
.ws-view-meta > * { margin-right:1.1rem; }
.ws-view-meta > *:last-child { margin-right:0; }
.ws-view-prov { display:inline-flex; align-items:center; color:#495057; font-weight:700; }
.ws-view-prov-ic {
	display:inline-flex; align-items:center; justify-content:center;
	width:26px; height:26px; margin-right:.5rem;
	border-radius:8px; background:var(--web-primary); color:#06301a;
	font-size:13px; font-weight:800;
}
.ws-view-prov-logo {
	width:26px; height:26px; margin-right:.5rem;
	object-fit:contain; border-radius:8px; background:#fff;
}
.ws-view-stat b { color:#495057; font-weight:700; }

/* View game section (-> partials/view/game-section.php): hero image + demo play. */
.ws-game-stage {
	position:relative;
	overflow:hidden;
	border-radius:1rem !important;   /* beat .na-round's 0.3rem !important */
	border:1px solid #dee2e6;
	box-shadow:0 -4px 14px rgba(0,0,0,.08);
	background:#000;
	line-height:0;
}
.ws-game-img { width:100%; height:auto; display:block; }
.ws-game-overlay {
	position:absolute; top:0; left:0; right:0; bottom:0;
	display:flex; flex-direction:column; align-items:center; justify-content:center;
	background:radial-gradient(ellipse at center, rgba(0,0,0,.38), rgba(0,0,0,0) 66%);
	text-align:center; padding:1rem; line-height:1.4;
}
.ws-game-play {
	border:0; border-radius:50rem;
	padding:.7rem 1.7rem;
	background:var(--web-primary); color:#06301a;
	font-size:16px; font-weight:800; cursor:pointer;
	box-shadow:0 6px 18px rgba(0,0,0,.35);
	transition:background .15s ease, transform .1s ease;
}
.ws-game-play:hover { background:#2fbf72; }
.ws-game-play:active { transform:translateY(1px); }
.ws-game-play:disabled { opacity:.55; cursor:not-allowed; }
.ws-game-play .fa { margin-right:.4rem; }
.ws-game-note {
	margin-top:.85rem; color:#fff; font-size:13px; font-weight:600;
	text-shadow:0 1px 4px rgba(0,0,0,.75);
}
.ws-game-disc { margin-top:1rem; margin-bottom:0; text-align:center; color:#868e96; font-size:13px; }

/* ==========================================================================
   View game specs (-> partials/view/specs.php): summary chips + spec table.
   ========================================================================== */
.ws-chips { display:flex; flex-wrap:wrap; }
.ws-chip {
	display:inline-flex; align-items:center;
	margin:0 .5rem .5rem 0; padding:.35rem .7rem;
	border:1px solid #dee2e6; border-radius:8px; background:#fff;
	font-size:13px; white-space:nowrap;
}
.ws-chip-k { color:#868e96; margin-right:.35rem; }
.ws-chip b { color:#c9820a; font-weight:700; }

/* Section title with green accent bar */
.ws-sec-title { display:flex; align-items:center; margin:1.25rem 0 1.1rem; font-size:18px; font-weight:800; color:var(--web-primary-foreground); }
.ws-sec-bar { display:inline-block; width:4px; height:18px; margin-right:.55rem; border-radius:2px; background:var(--web-primary); }

/* Spec table card (white, rounded, horizontal dividers only; label column lightly shaded) */
.ws-spec-card { border-radius:14px; border:1px solid #dee2e6; box-shadow:0 -4px 14px rgba(0,0,0,.08); overflow:hidden; background:#fff; }
.ws-spec-table { background:transparent; }
.ws-spec-table th { background:#f8f9fa; width:34%; color:#495057; font-weight:700; white-space:nowrap; vertical-align:middle; }
.ws-spec-table td { color:var(--web-primary-foreground); font-weight:700; vertical-align:middle; background:#fff; }
.ws-spec-table tr:first-child th, .ws-spec-table tr:first-child td { border-top:0; }
.ws-spec-table .ws-hl { color:#c9820a; }   /* gold highlight (RTP / 최대 배당) */

/* View game overview (-> partials/view/overview.php): intro paragraphs. */
.ws-overview .ws-sec-title,
.ws-features .ws-sec-title,
.ws-related .ws-sec-title { border-bottom:1px solid #dee2e6; padding-bottom:.9rem; }
.ws-overview-body { color:#495057; line-height:1.85; }
.ws-overview-body p { margin-bottom:1rem; }
.ws-overview-body p:last-child { margin-bottom:0; }

/* View game features (-> partials/view/features.php): feature cards. */
.ws-features .row { margin-left:-8px; margin-right:-8px; }        /* tighter gutter */
.ws-features .row > div { padding-left:8px; padding-right:8px; }
.ws-feat {
	background:#fff;
	border:1px solid #dee2e6;
	border-radius:12px;
	padding:1.5rem;
}
.ws-feat-title { color:var(--web-primary-hover); font-size:16px; font-weight:800; margin:0 0 .5rem; }
.ws-feat-desc { color:#495057; line-height:1.75; margin:0; }

/* View provider info (-> partials/view/provider.php): 게임사 소개 card. */
.ws-prov-card {
	background:#fff; border:1px solid #dee2e6; border-radius:14px;
	padding:1.5rem; box-shadow:0 -4px 14px rgba(0,0,0,.08);
}
.ws-prov-head { display:flex; align-items:center; margin-bottom:1.1rem; padding-bottom:1.1rem; border-bottom:1px solid #dee2e6; }
.ws-prov-logo {
	width:56px; height:56px; margin-right:1rem;
	object-fit:contain; border-radius:8px; background:#fff; border:1px solid #dee2e6; padding:4px;
}
.ws-prov-name strong { display:block; color:var(--web-primary-foreground); font-size:16px; font-weight:800; }
.ws-prov-name .ws-prov-sub { color:#868e96; font-size:13px; }
.ws-prov-body { color:#495057; line-height:1.85; }
.ws-prov-body p { margin-bottom:1rem; }
.ws-prov-body p:last-child { margin-bottom:0; }
.ws-prov-link { color:var(--web-primary-hover); font-weight:700; }
.ws-prov-link:hover { color:var(--web-primary-hover); text-decoration:underline; }

/* View prev/next nav (-> partials/view/nav.php): prev/next card + 목록 button. */
.ws-nav-card {
	background:#fff; border:1px solid #dee2e6; border-radius:14px;
	overflow:hidden; box-shadow:0 -4px 14px rgba(0,0,0,.08);
}
.ws-nav-row { display:flex; align-items:center; padding:.85rem 1.25rem; color:#495057; text-decoration:none; }
.ws-nav-row + .ws-nav-row { border-top:1px solid #dee2e6; }
.ws-nav-row:hover { background:#f8f9fa; text-decoration:none; }
.ws-nav-label { flex:0 0 auto; width:56px; color:#868e96; font-weight:700; font-size:13px; }
.ws-nav-title { flex:1 1 auto; min-width:0; color:var(--web-primary-foreground); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ws-nav-actions { text-align:right; margin-top:1rem; }
.ws-nav-list {
	background:#f8f9fa; border:1px solid #dee2e6; color:var(--web-primary-foreground); font-weight:700;
	border-radius:8px; padding:.5rem 1.5rem;
}
.ws-nav-list:hover { background:var(--web-primary-foreground); color:#fff; border-color:var(--web-primary-foreground); }
.ws-nav-edit {
	background:#fff; border:1px solid var(--web-primary); color:var(--web-primary-hover); font-weight:700;
	border-radius:8px; padding:.5rem 1.25rem; margin-right:.5rem;
}
.ws-nav-edit:hover { background:var(--web-primary); color:#fff; border-color:var(--web-primary); }
.ws-game-stage.is-playing { background:#000; line-height:normal; }
.ws-game-iframe { width:100%; height:100%; border:0; display:block; }

/* Fullscreen button (top-right of the playing iframe) */
.ws-game-fs {
	position:absolute; top:10px; right:10px; z-index:4;
	width:40px; height:40px;
	display:inline-flex; align-items:center; justify-content:center;
	border:0; border-radius:8px;
	background:rgba(255,255,255,.92); color:var(--web-primary-foreground);
	box-shadow:0 2px 8px rgba(0,0,0,.3);
	cursor:pointer;
}
.ws-game-fs:hover { background:#fff; }

/* Stage fills the screen in fullscreen (overrides the pinned inline height). */
.ws-game-stage:fullscreen,
.ws-game-stage:-webkit-full-screen { width:100%; height:100%; border:0; border-radius:0 !important; }
.ws-game-stage:fullscreen .ws-game-iframe,
.ws-game-stage:-webkit-full-screen .ws-game-iframe { height:100%; }