@charset "utf-8";
@import url('//fonts.googleapis.com/css?family=Roboto:400,700');
@import url('../../../nariya/css/g5.css');

/********************************************************
■ Theme Common
********************************************************/
body { margin:0; padding:0;	background:#fff; color:#000; }
h1, h2, h3, h4, h5, h6, .en { font-family:"Roboto", sans-serif; }

/********************************************************
■ Theme Layout : 테마 레이아웃
********************************************************/
.wrapper { background:#fff; }
.wrapper.wided { background:var(--web-background); } /* full-width layout: page tint from css/color (boxed layouts keep the white box) */
@media all and (max-width:991px) {
	.responsive .wrapper { overflow-x:hidden; }
}
.nt-container,
.nt-container-wide { margin:0 auto; }
@media all and (min-width:992px) {
	.responsive .boxed-a.wrapper .nt-container.px-xl-0 { padding-left:1.5rem !important; padding-right:1.5rem !important; }
	.responsive .boxed-b.wrapper { padding-left:1.5rem !important; padding-right:1.5rem !important; }
	.responsive .boxed-b.wrapper #nt_title .nt-container.px-xl-0,
	.responsive .boxed-b.wrapper #nt_wing .nt-container.px-xl-0 { padding-left:1.5rem !important; padding-right:1.5rem !important; }
}

/* 비반응형 */
.no-responsive .boxed-a.wrapper .nt-container.px-xl-0 { padding-left:1.5rem !important; padding-right:1.5rem !important; }
.no-responsive .boxed-b.wrapper { padding-left:1.5rem !important; padding-right:1.5rem !important; }
.no-responsive .boxed-b.wrapper #nt_title .nt-container.px-xl-0,
.no-responsive .boxed-b.wrapper #nt_wing .nt-container.px-xl-0 { padding-left:1.5rem !important; padding-right:1.5rem !important; }
@media all and (max-width:1200px) {
	.no-responsive .wrapper.wided .nt-container.px-xl-0 { padding-left:1.5rem !important; padding-right:1.5rem !important; }
	.no-responsive .wrapper.wided #nt_title .nt-container.px-xl-0,
	.no-responsive .wrapper.wided #nt_wing .nt-container.px-xl-0 { padding-left:1.5rem !important; padding-right:1.5rem !important; }
}

/* Responsive + wided, 1200–1259px: px-xl-0 drops the side padding at 1200px, but the
   1200px container has no free space around it yet, so .na-row's negative margins poke
   past the viewport (horizontal scroll). Keep the 1.5rem gutter until there's room. */
@media all and (min-width:1200px) and (max-width:1259.98px) {
	.responsive .wrapper.wided .nt-container.px-xl-0 { padding-left:1.5rem !important; padding-right:1.5rem !important; }
}

/********************************************************
■ Loader : 페이지 로딩바
********************************************************/
#nt_loader { background: #fff; left: 0; top: 0; width: 100%; height: 100%; display: block; position: fixed; z-index: 100000; }
#nt_loader .loader { margin: -25px 0 0 -25px; left: 50%; top: 50%; width: 50px; height: 50px; line-height:50px; font-size: 45px; position: absolute; z-index: 10001; }

/********************************************************
■ LNB
********************************************************/
#nt_lnb ul { list-style: none; margin: 0; }
#nt_lnb ul > li { float: left; padding: 0 13px; }
#nt_lnb ul > li::after { font-family: dotum; font-weight: normal; float: right; color:#ccc; content: "|"; margin-right:-15px; }
#nt_lnb ul > li:first-child { padding-left:0; }
#nt_lnb ul > li:last-child { padding-right:0; }
#nt_lnb ul > li:last-child::after { content: ""; margin-right:0; }
#nt_lnb ul > li > a { float:left; white-space:nowrap; }
#nt_lnb .dropdown-toggle::after { color:#ccc; }

/********************************************************
■ PC 헤더(Header)
********************************************************/
#header_pc .nt-container { background: url('../img/header.jpg') no-repeat right bottom; }
#header_pc .header-logo img { max-width:100%; }
#header_pc .header-search { width:100%;	max-width:400px; }
#header_pc .header-search form { padding:0; border-width:2px; border-style:solid; }
#header_pc .header-search input { font-size:16px !important; background: #fff; border:0 !important; box-shadow:none !important; -webkit-box-shadow:none !important; }
#header_pc .header-search .form-control:focus { box-shadow:none !important; -webkit-box-shadow: none !important; }
#header_pc .header-search .btn { border:0; background: none !important; outline:none; }

/********************************************************
■ 모바일 헤더(Header)
********************************************************/
#header_mo { box-shadow: 0px 5px 5px -2px rgba(50, 60, 70, 0.15); -webkit-box-shadow: 0px 5px 5px -2px rgba(50, 60, 70, 0.15); -moz-box-shadow: 0px 5px 5px -2px rgba(50, 60, 70, 0.15); }

/********************************************************
■ PC 주메뉴
********************************************************/
/* 공통 */
#nt_menu { position:relative; z-index:20; box-shadow: 0px 5px 5px -2px rgba(50, 60, 70, 0.15); -webkit-box-shadow: 0px 5px 5px -2px rgba(50, 60, 70, 0.15); -moz-box-shadow: 0px 5px 5px -2px rgba(50, 60, 70, 0.15); }
#nt_menu .nt-container,
#nt_menu .me-list .me-li,
#nt_menu .sub-1dul,
#nt_menu .sub-1dli { position:relative; }
#nt_menu .sub-slide { display:none; visibility:visible; }
#nt_menu .sub-icon::after { font-family: "FontAwesome"; float: right; position: relative; content: "\f105"; }
#nt_menu .me-icon {	width:4.0rem; text-align:center; }
#nt_menu .me-a { display:block; position:relative; text-align:center; font-weight:bold; color:#fff; }
#nt_menu .me-li.on .me-a,
#nt_menu .me-li:hover .me-a { color:#fff; background:rgba(0,0,0,0.2) !important; }
#nt_menu .sub-2div { left:100%; top:0; position:absolute; z-index:22; background: #fff; box-shadow: 0 6px 12px rgba(0, 0, 0, .175); -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); } 
#nt_menu .sub-2dul { }
#nt_menu .sub-2dli { }
#nt_menu .sub-2da { display:block; color:#000; border-bottom: 1px solid #eee; } 
#nt_menu .sub-2dli.on .sub-2da,
#nt_menu .sub-2dli:hover .sub-2da { color:#000; background: #fafafa; border-color: #eee; font-weight: bold; }
#nt_menu .sub-2line { display:block; color:#000; font-weight:bold; background:#f5f5f5; }
.nt-menu .sub-1div { position:absolute; left:0; z-index:21; width:auto; text-align:left; top:100%; left:0; background:#fff; box-shadow: 0 6px 12px rgba(0, 0, 0, .175); -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); }
.nt-menu .sub-1div::before { left: 50%; margin-left:-8px; }
.nt-menu .sub-1da { display:block; color:#000; border-bottom: 1px solid #eee; }
.nt-menu .sub-1line { position:relative; display:block; }
.nt-menu .sub-1dli.on .sub-1da,
.nt-menu .sub-1dli:hover .sub-1da { color:#000; background: #f5f5f5; border-color: #eee; font-weight:bold; }
.nt-menu .sub-1line { color:#000; font-weight:bold; background:#fafafa; }
.nt-menu .me-sh { padding:0.59rem 1.0rem; } /* 서브메뉴 높이설정 : 페딩값으로 조절 */

/* 메뉴 상단 고정 */
#nt_sticky_wrap.me-sticky { position:fixed; width:100%; z-index:999; left:0; top:0; }
@media all and (min-width:992px) {
	.wrapper.m-lg-auto #nt_sticky_wrap.me-sticky nav { margin:0 auto !important; }
	.wrapper.ml-lg-auto #nt_sticky_wrap.me-sticky nav { margin:0 0 0 auto !important; }
	.wrapper.mr-lg-auto #nt_sticky_wrap.me-sticky nav { margin:0 auto 0 0 !important; }
}

/********************************************************
■ 페이지 타이틀  ->  _structure/header/header-title.php
  Breadcrumb on top, then the title (last word in the primary color)
  + meta (board 전체/오늘 counts or page_desc). Colors come from css/color/*.css vars.
********************************************************/
/* Real bold cut of the site font (the stock font css only registers the regular
   weight, so font-weight:800 was a faux-bold). Separate family → only the title uses it. */
@font-face {
	font-family: "NEXON Lv2 Gothic Bold";
	src: url("../../../nariya/css/font/NEXON_Lv2_Gothic/NEXON_Lv2_Gothic_Bold.woff") format("woff");
	font-weight: 700;   /* registered as bold → a font-weight:800 request uses this file as-is (no faux-bold on top) */
	font-display: swap;
}
/* Strong heading — the real bold cut. Used by the page title and every web-* widget title
   (add class="web-heading" to the title element). !important because the font css
   (css/font/*.css) forces h1–h6 to the regular family with !important; class > tag wins. */
.web-heading,
#nt_title .page-title { font-family:"NEXON Lv2 Gothic Bold", "NEXON Lv2 Gothic", sans-serif !important; }
.web-heading .en { font-family:"NEXON Lv2 Gothic Bold", "NEXON Lv2 Gothic", sans-serif !important; }  /* .en is also forced regular by the font css */
.web-heading .web-heading-sub { font-family:"NEXON Lv2 Gothic", sans-serif !important; }             /* meta text inside a title (count, subtitle) stays regular */
#nt_title { position:relative; z-index:3; /* visible + above #nt_body so the actions dropdown (관리) can open over the list */ color:var(--web-primary-foreground); background:linear-gradient(180deg, rgba(0,0,0,.025) 0%, transparent 100%); border-bottom:0; }
#nt_title .nt-container { position:relative; z-index:2; padding-top:1.1rem; padding-bottom:1.25rem; }

#nt_title .pt-crumbs { display:flex; flex-wrap:wrap; align-items:center; list-style:none; margin:0 0 .45rem; padding:0; font-size:12px; color:#9aa0aa; }
#nt_title .pt-crumbs li + li::before { content:"\203A"; margin:0 .45rem; color:#c4c8ce; }
#nt_title .pt-crumbs a { color:#9aa0aa; }
#nt_title .pt-crumbs a:hover { color:var(--web-primary-foreground); text-decoration:none; }
#nt_title .pt-crumbs [aria-current] { color:#6c737d; }

#nt_title .pt-row { display:flex; align-items:baseline; flex-wrap:wrap; gap:.25rem .75rem; }
#nt_title .page-title {
	font-size:28px; font-weight:400; letter-spacing:-.5px; line-height:1.3;
	color:var(--web-primary-foreground);
}
#nt_title .page-title em { font-style:normal; color:var(--web-primary); }
#nt_title .pt-meta { font-size:14px; color:#868e96; }
#nt_title .pt-dot { margin:0 .35rem; }
#nt_title .pt-actions { margin-left:auto; align-self:center; display:flex; gap:.5rem; }
#nt_title .pt-actions:empty { display:none; }

/* Title-bar action buttons (관리 dropdown + 글쓰기) — markup comes from board skins
   (Web-Basic-List / Web-Basic-Slots) and is moved into #nt_title_actions.
   .web-act-btn also works on its own (e.g. the comment 등록 button). */
:root { --web-ctl-h:42px; } /* shared height for toolbar controls (search, pills, action buttons) */
.web-actions { display:flex; gap:.5rem; }
.web-act-btn {
	display:inline-flex; align-items:center; gap:.35rem; white-space:nowrap;
	height:var(--web-ctl-h); padding:0 1rem;
	border:1px solid #e5e7eb; border-radius:8px; background:#fff;
	color:#495057; font-size:13px; font-weight:600; line-height:1.3; cursor:pointer;
}
.web-act-btn:hover { border-color:var(--web-primary-foreground); color:var(--web-primary-foreground); text-decoration:none; }
.web-act-btn-dark { background:var(--web-primary-foreground); border-color:var(--web-primary-foreground); color:#fff; }
.web-act-btn-dark:hover { background:color-mix(in srgb, var(--web-primary-foreground) 85%, #fff); border-color:color-mix(in srgb, var(--web-primary-foreground) 85%, #fff); color:#fff; }
.web-actions .dropdown-menu { padding:0; margin-top:.35rem; border:1px solid #e5e7eb; border-radius:10px; overflow:hidden; box-shadow:0 8px 24px rgba(0,0,0,.08); }
.web-actions .dropdown-divider { margin:0; border-top-color:#e5e7eb; }
.web-actions .dropdown-item { padding:.6rem 1rem; font-size:13px; }
@media all and (max-width:575px) {
	.responsive #nt_title .nt-container { padding-top:.9rem; padding-bottom:1rem; }
	.responsive #nt_title .page-title { font-size:23px; }
	.responsive #nt_title .pt-meta { font-size:13px; }
}

/********************************************************
■ Wing
********************************************************/
#nt_wing .nt-container { position:relative; overflow:visible !important; }
#nt_wing img { max-width:100%; }
#nt_wing .wing-left,
#nt_wing .wing-right { position:absolute; width:160px; }
#nt_wing .wing-left { left:-180px; }
#nt_wing .wing-right { right:-180px; }
.boxed-b #nt_wing .wing-left { left:-200px; }
.boxed-b #nt_wing .wing-right { right:-200px; }

/********************************************************
■ Footer 
********************************************************/
#nt_footer .nt-links ul { list-style: none; margin: 0; padding:0; }
#nt_footer .nt-links ul > li { float: left; padding: 0 13px; }
#nt_footer ul > li:first-child { padding-left:0; }
#nt_footer ul > li:last-child { padding-right:0; }
#nt_footer .nt-links ul > li::after { font-family: dotum; font-weight: normal; float: right; color:#ccc; content: "|"; margin-right:-15px; }
#nt_footer .nt-links ul > li:last-child::after { content: ""; }
#nt_footer .nt-links ul > li > a { color: #333; white-space:nowrap;	}
@media all and (max-width:991px) {
	.responsive #nt_footer .nt-links ul > li { float:none; display:inline-block; }
}

/********************************************************
■ Widget Title 위젯 타이틀
********************************************************/
h3.h3 { padding:0; margin:0; font-weight:bold; }
hr.hr::before { width:100%; height:1px; content: ""; position:absolute; left:0; bottom:1px; line-height:1px; background-color:#ddd; }
hr.hr { display:block; position:relative; height:3px; border: none; line-height:1px; padding:0;	margin:0; }
hr.hr::after { width:4.0rem; height:3px; content: ""; position:absolute; left:0; bottom:0; line-height:1px; }
@media all and (max-width:575px) {
	.responsive h3.h3 {	padding-left:1.0rem; padding-right:1.0rem; }
	.responsive hr.hr::after { left:1.0rem;	}
}

/********************************************************
■ Bootstrap 4 : 부트스트랩 기본 속성
********************************************************/
/* 툴팁 */
.tooltip .tooltip-inner { font-size:1.0rem !important; }

/* 체크박스, 라디오버튼 재지정 */
.custom-checkbox .custom-control-label::before,
.custom-checkbox .custom-control-label::after,
.custom-radio .custom-control-label::before,
.custom-radio .custom-control-label::after { top:0.15rem !important; width:1.4rem !important; height:1.4rem !important; }

/* 체크박스, 라디오버튼과 글자간 간격 */
.custom-checkbox .custom-control-label span,
.custom-radio .custom-control-label span { cursor: pointer; padding-left:0.5rem !important; }

/* 스위치 버튼 재지정 */
.custom-switch .custom-control-label::before,
.custom-switch .custom-control-label::after { margin-top:2px; }

/* Button */
.btn-lg { padding: 10px 16px; border-radius: 3px; line-height: 1.33; font-size: 18px; }
.btn-lg i {	top: 3px; font-size: 24px; position: relative; }

/* Form */
.col-form-label { font-weight:bold; }

/* Pagenation */
.page-link,
.page-link:hover,
.page-link:focus { color: #333; }

/* 라운드 스타일 */
.na-round,
.view_image img,
.pretty-embed img { border-radius: 0.3rem !important; }

/* 사각 스타일 */
.is-square .na-round,
.is-square .view_image img,
.is-square .pretty-embed img,
.is-square .btn,
.is-square .alert,
.is-square .nav-link,
.is-square .form-control,
.is-square .input-group-prepend,
.is-square .input-group-append,
.is-square .input-group-text,
.is-square .custom-file-label,
.is-square .custom-file-label:after,
.is-square .custom-select,
.is-square .label,
.is-square .progress,
.is-square .pagination li a,
.is-square .list-group-item { border-radius:0 !important; }

/********************************************************
■ CUSTOM — slo-mac-web layout (header / menu / footer)
  Layout lives here; colors come from the active css/color/*.css file via:
    --web-primary             main color (buttons, accents, highlights)
    --web-primary-hover       hover / darker accent
    --web-primary-foreground  dark shade of the primary (bars, dark text)
    --web-primary-deep        darkest shade (large dark areas: footer)
    --web-background          page background tint
********************************************************/

/* Theme admin/settings pages (body.web-admin, set in head.sub.php): inside the page body,
   "primary" becomes the dark foreground — calmer for dense setting forms. The site header,
   menu and title bar keep the normal primary. */
.web-admin #nt_body {
	--web-primary: var(--web-primary-foreground);
	--web-primary-hover: color-mix(in srgb, var(--web-primary-foreground) 80%, #fff);
}

/* Two-column rows (content + sidebar, .web-row in head.php / index/web-index.php):
   below 1050px the sidebar drops under the content and the content goes full width,
   so the 4-up grids don't get squeezed. Also resets order-md-* so content stays first
   when the sidebar is set to the left. */
@media all and (max-width:1049.98px) {
	.responsive .web-row > .na-col { flex:0 0 100%; max-width:100%; order:0; }
}

/* Select arrow (global): replace the native arrow, which hugs the right edge, with a
   chevron inset .75rem. Skips Bootstrap .custom-select (own arrow) and list boxes. */
select:not([multiple]):not([size]):not(.custom-select) {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23868e96' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .75rem center;
	background-size: 10px 7px;
	padding-right: 2rem;
}

/* Dark bar utility — use instead of .bg-primary where the element must stay dark
   (menu bar, header search button). */
.bg-web-foreground { background-color:var(--web-primary-foreground) !important; }
.bg-web-deep { background-color:var(--web-primary-deep) !important; }

/* Top bar / Top header  ->  _structure/header/header-top.php */
#nt_lnb.nt-topbar {
	/* Font size is controlled by the .f-xs class on the element (smallest tier) */
	background: var(--web-primary-foreground);
	border-bottom: 1px solid rgba(255, 255, 255, .06);
	color: #9aa0aa;
	letter-spacing: .01em;
}

#nt_lnb.nt-topbar .nt-container {
	padding-top: .5rem;
	padding-bottom: .5rem;
}

#nt_lnb.nt-topbar .tb-date {
	color: #c3c8d1;
}

#nt_lnb.nt-topbar .tb-visit {
	margin-left: .9rem;
	color: #9aa0aa;
}

#nt_lnb.nt-topbar .tb-visit-num {
	color: #eaecef;
	font-weight: 700;
}

#nt_lnb.nt-topbar .tb-dot {
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: .4rem;
	border-radius: 50%;
	background: var(--web-primary);
	vertical-align: middle;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--web-primary) 15%, transparent);
}

#nt_lnb.nt-topbar .tb-right a {
	color: #b5bac2;
}

#nt_lnb.nt-topbar .tb-right a:hover {
	color: #fff;
	text-decoration: none;
}

#nt_lnb.nt-topbar .tb-link {
	margin-left: .85rem;
}

#nt_lnb.nt-topbar .tb-link:first-child {
	margin-left: 0;
}

#nt_lnb.nt-topbar .tb-link-strong {
	color: #fff;
}

/* Main header wrapper — holds the data-header widget (-> header-navigation.php).
   Transparent so it inherits the body/page background. */
.hd-wrap {
	background: transparent;
}

/* Main menu (-> _structure/header/header-menu.php): the items switched from
   f-md (which padded y) to f-sm (which doesn't), so add back a little vertical
   padding to give the menu bar some height. */
#nt_menu .me-a {
	padding-top: .65rem;
	padding-bottom: .65rem;
}

/* Active / hover: accent text; the active item also gets an accent underline spanning
   the full menu cell. Replaces the stock dark-overlay highlight. */
#nt_menu .me-li.on .me-a,
#nt_menu .me-li:hover .me-a { color: var(--web-primary); background: transparent !important; }
#nt_menu .me-li.on > a { position: relative; }
#nt_menu .me-li.on > a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0;
	height: 3px; border-radius: 3px 3px 0 0; background: var(--web-primary);
}

/* ==========================================================================
   Footer (-> _structure/footer/footer-main.php, our web-footer)
   ========================================================================== */
#nt_footer {
	background: var(--web-primary-deep) !important; /* darker than foreground: big areas read lighter */
	color: #c3c8d1;
	border: 0;
}
#nt_footer .ft-inner {
	position: relative;
	padding-top: 2.5rem;
	padding-bottom: 2rem;
}

/* 19+ age badge (top-right) */
#nt_footer .ft-age {
	position: absolute;
	top: 2.5rem;
	right: 0;
	width: 34px;
	height: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid #e5484d;
	border-radius: 50%;
	color: #e5484d;
	font-weight: 700;
	font-size: 14px;
}

/* Brand */
#nt_footer .ft-brand {
	font-size: 1.4rem;
	font-weight: 800;
	color: #fff;
	margin-bottom: .75rem;
}
#nt_footer .ft-brand-hl { color: var(--web-primary); }

/* Description */
#nt_footer .ft-desc {
	color: #8a9099;
	font-size: 13px;
	line-height: 1.7;
	margin-bottom: 1rem;
}

/* Telegram links (reuse header values) */
#nt_footer .ft-tg { margin-bottom: 1.25rem; }
#nt_footer .ft-tg-link {
	display: inline-flex;
	align-items: center;
	color: var(--web-primary); /* theme accent (was Telegram blue) */
	font-weight: 600;
	margin-right: 1.75rem;
}
#nt_footer .ft-tg-link:last-child { margin-right: 0; }
#nt_footer .ft-tg-link:hover { color: color-mix(in srgb, var(--web-primary) 65%, #fff); text-decoration: none; }
#nt_footer .ft-tg-link b { font-weight: 700; margin-left: .25rem; }
#nt_footer .ft-plane {
	width: 15px;
	height: 15px;
	margin-right: .45rem;
	vertical-align: middle;
}

/* Separator */
#nt_footer .ft-sep {
	border: 0;
	border-top: 1px solid rgba(255, 255, 255, .08);
	margin: 1.25rem 0;
}

/* Bottom policy + legal line */
#nt_footer .ft-bottom { font-size: 12px; color: #8a9099; }
#nt_footer .ft-policy { color: #d6dae0; font-weight: 700; }
#nt_footer .ft-policy:hover { color: #fff; text-decoration: none; }
#nt_footer .ft-dot { margin: 0 .4rem; color: #5a606b; }
#nt_footer .ft-legal { margin-left: .4rem; color: #6b7078; font-weight: 400; }

@media (max-width: 575px) {
	#nt_footer .ft-age { top: 2rem; width: 30px; height: 30px; font-size: 12px; }
	#nt_footer .ft-brand { font-size: 1.2rem; }
	#nt_footer .ft-tg-link { display: flex; margin: 0 0 .5rem; }
}

/* Pagination (global) — separated rounded squares; active page = foreground (dark) fill.
   Applies to every Bootstrap .pagination (boards, search, point, memo…). */
.pagination { gap:8px; flex-wrap:wrap; }
.pagination .page-item .page-link {
	display:inline-flex; align-items:center; justify-content:center;
	min-width:38px; height:38px; padding:0 .6rem; margin:0;
	background:#fff; border:1px solid #e5e7eb; border-radius:10px !important;
	color:#6b7280; font-size:14px; font-weight:600; line-height:1;
	transition:border-color .15s ease, color .15s ease, background-color .15s ease;
}
.pagination .page-item a.page-link[href]:hover {
	border-color:var(--web-primary); color:var(--web-primary-foreground); background:#fff; z-index:1;
}
.pagination .page-link:focus { box-shadow:0 0 0 .2rem color-mix(in srgb, var(--web-primary) 30%, transparent); }
.pagination .page-item.active .page-link {
	background-color:var(--web-primary-foreground) !important; /* beats color file's .page-item.active rule */
	border-color:var(--web-primary-foreground) !important;
	color:#fff; font-weight:800;
	box-shadow:0 4px 10px color-mix(in srgb, var(--web-primary-foreground) 30%, transparent);
}
.pagination .page-item.disabled .page-link { color:#ced4da; background:#fff; border-color:#eef0f2; }
@media (max-width:575.98px) {
	.pagination { gap:6px; }
	.pagination .page-item .page-link { min-width:34px; height:34px; border-radius:9px !important; font-size:13px; }
}

/* Captcha (kcaptcha, plugin/kcaptcha captcha_html) — every form: sign-up, write, comments.
   Replaces the stock sprite buttons (nariya/css/g5.css) with our control look:
   [image][code input][🔊][⟳], all --web-ctl-h tall and rounded; hint text below. */
#captcha { display:inline-flex !important; flex-wrap:wrap; align-items:center; gap:.4rem; margin:0; padding:0; border:0; }
#captcha #captcha_img {
	box-sizing:border-box; height:var(--web-ctl-h, 42px); width:auto; margin:0 !important;
	padding:2px 8px; /* kcaptcha draws digits up to the edges — keep them off the border */
	border:1px solid #e5e7eb; border-radius:10px; background:#fff;
}
#captcha #captcha_key {
	width:110px; height:var(--web-ctl-h, 42px); margin:0; padding:0 .6rem;
	border:1px solid #e5e7eb; border-radius:10px; background:#fff;
	color:var(--web-primary-foreground); font-size:16px; font-weight:800; letter-spacing:.2em; text-align:center;
	outline:none; transition:border-color .15s ease, box-shadow .15s ease;
}
#captcha #captcha_key:focus { border-color:var(--web-primary); box-shadow:0 0 0 3px color-mix(in srgb, var(--web-primary) 18%, transparent); }
#captcha #captcha_mp3,
#captcha #captcha_reload {
	position:relative; display:inline-flex; align-items:center; justify-content:center;
	width:var(--web-ctl-h, 42px); height:var(--web-ctl-h, 42px); margin:0; padding:0;
	border:1px solid #e5e7eb; border-radius:10px; background:#fff none !important;
	color:#6b7280; font-size:0; text-indent:0; overflow:hidden; cursor:pointer;
	transition:border-color .15s ease, color .15s ease;
}
#captcha #captcha_mp3::before,
#captcha #captcha_reload::before { font-family:"FontAwesome"; font-size:16px; line-height:1; }
#captcha #captcha_mp3::before { content:"\f028"; }    /* volume-up */
#captcha #captcha_reload::before { content:"\f021"; } /* refresh */
#captcha #captcha_mp3:hover,
#captcha #captcha_reload:hover { border-color:var(--web-primary); color:var(--web-primary); }
#captcha #captcha_mp3 span, #captcha #captcha_reload span { display:none; }
#captcha #captcha_info { flex:1 1 100%; display:block; margin:.1rem 0 0; color:#868e96; font-size:12px; letter-spacing:0; }
#captcha.m_captcha audio { flex:1 1 100%; width:100%; max-width:280px; height:36px; margin:0; }
