/* =====================================================================
   FKWU Modern theme
   Child of the OJS default theme. --fk-accent / --fk-on-accent are set
   per journal by the plugin (theme option, else the journal's existing
   header colour). Everything else derives from them.
   ===================================================================== */

/* ---------- 0. Tokens ---------- */
:root {
	--fk-accent: #dc2626;
	--fk-on-accent: #ffffff;
	--fk-head: var(--fk-accent);
	--fk-on-head: #ffffff;
	--fk-head-deep: color-mix(in srgb, var(--fk-head) 16%, #111827);
	--fk-accent-dark: color-mix(in srgb, var(--fk-accent) 72%, #000);
	--fk-accent-deep: color-mix(in srgb, var(--fk-accent) 45%, #0b0b14);
	--fk-accent-soft: color-mix(in srgb, var(--fk-accent) 6%, #fff);
	--fk-accent-line: color-mix(in srgb, var(--fk-accent) 28%, #fff);
	--fk-peach: #fb923c;
	--fk-yellow: #fde047;
	--fk-ink: #0f172a;
	--fk-text: #334155;
	--fk-muted: #64748b;
	--fk-line: #e5e7eb;
	--fk-bg: #f6f7f9;
	--fk-card: #ffffff;
	--fk-radius: 16px;
	--fk-radius-sm: 10px;
	--fk-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);
	--fk-shadow-lg: 0 18px 44px rgba(15, 23, 42, .14);
	--fk-width: 1200px;
	--fk-font: "Inter", "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ---------- 1. Base ---------- */
html { scroll-behavior: smooth; }
body {
	background: var(--fk-bg);
	color: var(--fk-text);
	font-family: var(--fk-font);
	font-size: 15px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
body, h1, h2, h3, h4, h5, h6, input, select, textarea, button,
.pkp_structure_page, .obj_article_summary .title, .page_title, .pkp_block .title {
	font-family: var(--fk-font);
}
h1, h2, h3, h4, h5, h6 { color: var(--fk-ink); letter-spacing: -.01em; line-height: 1.3; }
/* Beat the parent's `.pkp_structure_main hX` rules (they force the journal's
   chosen heading font, e.g. Noto Serif, and big margins). */
.pkp_structure_main h1, .pkp_structure_main h2, .pkp_structure_main h3,
.pkp_structure_main h4, .pkp_structure_main h5, .pkp_structure_main h6,
.pkp_structure_sidebar h1, .pkp_structure_sidebar h2, .pkp_structure_sidebar h3 {
	font-family: var(--fk-font); color: var(--fk-ink); letter-spacing: -.01em;
}
.pkp_structure_page { overflow-x: clip; }
/* Parent clearfix pseudo-elements become stray flex/grid items: remove */
.cmp_form .buttons:before, .cmp_form .buttons:after,
.pkp_structure_footer:before, .pkp_structure_footer:after,
.pkp_structure_sidebar:before, .pkp_structure_sidebar:after,
.fk_menu:before, .fk_menu:after,
.obj_issue_toc .heading:before, .obj_issue_toc .heading:after,
.obj_issue_toc .section:before, .obj_issue_toc .galleys:before { display: none !important; content: none !important; }
a { color: var(--fk-accent-dark); text-underline-offset: 2px; }
a:hover, a:focus { color: var(--fk-accent); }
img { max-width: 100%; height: auto; }
::selection { background: var(--fk-accent-line); }

.fk_wrap {
	width: min(var(--fk-width), 100% - 32px);
	margin: 0 auto;
}

/* Skip links: hidden until focused with the keyboard */
.cmp_skip_to_content a {
	position: absolute; left: -9999px; top: 8px; z-index: 1000;
	background: var(--fk-ink); color: #fff; padding: 8px 14px; border-radius: 8px;
}
.cmp_skip_to_content a:focus { left: 8px; color: #fff; }

/* ---------- 2. Header ---------- */
.fk_head { position: relative; z-index: 50; }

/* 2a. Top bar */
.fk_topbar { background: var(--fk-head-deep); color: rgba(255,255,255,.85); font-size: .84rem; }
.fk_topbar .fk_wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; }
.fk_portal_link { color: rgba(255,255,255,.85); text-decoration: none; font-weight: 500; }
.fk_portal_link:hover { color: #fff; }

/* 2b. Brand bar: solid header colour so logo images with their own
   background (e.g. BIEJ, IJCE) blend in seamlessly */
.fk_brand { background: var(--fk-head); color: var(--fk-on-head); }
.fk_site_level .fk_brand { background: #4a0e15; border-bottom: 3px solid var(--fk-yellow); }
.fk_site_level .fk_topbar { background: #2a070c; }
.fk_brand .fk_wrap { display: flex; align-items: center; gap: 24px; min-height: 88px; padding: 14px 0; }
.fk_site_level .fk_brand .fk_wrap { min-height: 72px; }
.fk_site_name { margin: 0; padding: 0; font-size: 1.35rem; font-weight: 800; line-height: 1.2; flex: 1 1 auto; min-width: 0; }
.fk_site_name .is_img { display: block; max-width: 100%; }
.fk_site_name a { color: var(--fk-on-head); text-decoration: none; display: inline-block; }
.fk_site_level .fk_site_name a { color: #fff; }
.fk_site_name .is_img img {
	display: block; width: auto; height: auto;
	max-height: 84px; max-width: min(760px, 100%);
}
.fk_search {
	margin-left: auto; display: flex; align-items: center;
	background: rgba(255,255,255,.95); border-radius: 999px; padding: 4px 4px 4px 16px;
	box-shadow: 0 4px 14px rgba(0,0,0,.12); width: 280px; max-width: 100%;
}
.fk_search input {
	border: 0 !important; background: transparent !important; outline: 0; box-shadow: none !important;
	flex: 1; min-width: 0; font-size: .9rem; color: var(--fk-ink); padding: 6px 0 !important;
}
.fk_search button {
	border: 0; background: var(--fk-accent); color: var(--fk-on-accent);
	width: 34px; height: 34px; border-radius: 50%; cursor: pointer; flex: none;
}
.fk_search button:hover { filter: brightness(.92); }
.fk_nav_toggle { display: none; }

/* 2c. Primary navigation bar */
.fk_navbar { background: #fff; border-bottom: 1px solid var(--fk-line); box-shadow: 0 2px 10px rgba(15,23,42,.05); }
.fk_navbar .fk_wrap { display: flex; align-items: center; min-height: 54px; }
.fk_navbar .fk_wrap:empty, .fk_navbar:not(:has(li)) { display: none; }

/* 2d. Menus (shared by primary + user) */
.fk_menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px; }
.fk_menu > li { position: relative; margin: 0; padding: 0; }
.fk_menu > li > a {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 8px 14px; border-radius: 999px; text-decoration: none; font-weight: 600; font-size: .92rem;
	transition: background .15s, color .15s;
}
.fk_menu_primary > li > a { color: var(--fk-ink); }
.fk_menu_primary > li > a:hover, .fk_menu_primary > li > a:focus,
.fk_menu_primary > li.show > a { background: var(--fk-accent-soft); color: var(--fk-accent-dark); }
.fk_menu_user > li > a { color: rgba(255,255,255,.9); padding: 4px 12px; font-size: .84rem; }
.fk_menu_user > li > a:hover, .fk_menu_user > li > a:focus { background: rgba(255,255,255,.14); color: #fff; }
.fk_menu_user > li:last-child > a { background: var(--fk-accent); color: var(--fk-on-accent); }
.fk_menu_user > li:last-child > a:hover { filter: brightness(1.08); }
.fk_menu a[data-toggle="dropdown"]:after {
	content: ""; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px); opacity: .7;
}
.fk_menu .task_count {
	display: inline-block; min-width: 20px; padding: 0 6px; border-radius: 999px;
	background: var(--fk-yellow); color: #111; font-size: .72rem; line-height: 18px; text-align: center;
}

/* Dropdowns (bootstrap .dropdown-menu added by the parent theme JS) */
.fk_menu ul, .fk_menu .dropdown-menu {
	display: none; position: absolute; top: calc(100% + 6px); left: 0; z-index: 100;
	min-width: 220px; list-style: none; margin: 0; padding: 6px;
	background: #fff; border: 1px solid var(--fk-line); border-radius: 14px; box-shadow: var(--fk-shadow-lg);
}
.fk_menu_user ul, .fk_menu_user .dropdown-menu { left: auto; right: 0; }
.fk_menu .dropdown-menu.show { display: block; }
.fk_menu ul li { margin: 0; padding: 0; }
.fk_menu ul a {
	display: block; padding: 9px 12px; border-radius: 10px; color: var(--fk-ink) !important;
	text-decoration: none; font-size: .9rem; font-weight: 500; white-space: nowrap;
}
.fk_menu ul a:hover, .fk_menu ul a:focus { background: var(--fk-accent-soft); color: var(--fk-accent-dark) !important; }

/* ---------- 3. Page layout ---------- */
.pkp_structure_page { min-height: 100vh; display: flex; flex-direction: column; }
.pkp_structure_content {
	display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 28px; align-items: start;
	width: min(var(--fk-width), 100% - 32px) !important; max-width: none; margin: 0 auto !important;
	padding: 28px 0 0 !important; flex: 1 0 auto;
}
.pkp_structure_content.has_sidebar { grid-template-columns: minmax(0, 1fr) 300px; }
.pkp_structure_content:before, .pkp_structure_content:after { display: none !important; }
.pkp_structure_main {
	float: none !important; width: auto !important; margin: 0 !important;
	background: var(--fk-card); border: 1px solid var(--fk-line); border-radius: var(--fk-radius);
	box-shadow: var(--fk-shadow); padding: 32px 36px 40px !important; min-width: 0;
}
.pkp_structure_main:before, .pkp_structure_main:after { display: none !important; }
.pkp_structure_sidebar { float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; min-width: 0; }

/* Pages that draw their own surfaces: drop the outer card */
.pkp_structure_main:has(> .fk_home),
.pkp_structure_main:has(> .fk_auth) {
	background: none; border: 0; box-shadow: none; padding: 0 !important;
}
.pkp_structure_content:has(.fk_home) { width: 100% !important; padding-top: 0 !important; }

/* Breadcrumbs */
.cmp_breadcrumbs { margin: 0 0 18px; font-size: .84rem; color: var(--fk-muted); }
.cmp_breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.cmp_breadcrumbs li { display: inline; }
.cmp_breadcrumbs a { color: var(--fk-muted); text-decoration: none; }
.cmp_breadcrumbs a:hover { color: var(--fk-accent-dark); }
.cmp_breadcrumbs .separator { opacity: .5; padding: 0 2px; }
.cmp_breadcrumbs .current { color: var(--fk-ink); font-weight: 600; }

/* Page titles with an accent bar */
.page > h1, .page_title, .page_index_journal .current_issue > h2, .page h1.page_title {
	position: relative; padding-left: 16px; margin: 0 0 18px; font-size: 1.6rem; font-weight: 800; color: var(--fk-ink);
}
.page > h1:before, .page_title:before, .page_index_journal .current_issue > h2:before {
	content: ""; position: absolute; left: 0; top: .2em; bottom: .2em; width: 5px; border-radius: 4px;
	background: linear-gradient(var(--fk-accent), var(--fk-accent-dark));
}
.page h2 { font-size: 1.25rem; margin-top: 28px; }
.page h3 { font-size: 1.08rem; }
.page p, .page li { line-height: 1.75; }
.page table { border-collapse: collapse; width: 100%; }
.page table td, .page table th { border: 1px solid var(--fk-line); padding: 8px 10px; }

/* ---------- 4. Buttons ---------- */
.fk_btn, .read_more, .cmp_button, .cmp_button_wire, .pkp_button, .page .cmp_form button.submit,
.page_search .submit button, .obj_galley_link {
	display: inline-flex; align-items: center; gap: 8px; justify-content: center;
	border-radius: 999px !important; font-weight: 700; text-decoration: none !important; cursor: pointer;
	line-height: 1.2; transition: background .15s, color .15s, filter .15s, transform .15s;
}
.fk_btn { padding: .75em 1.5em; font-size: .95rem; border: 2px solid transparent; }
.fk_btn_sm { padding: .55em 1.1em; font-size: .84rem; }
.fk_btn_primary { background: var(--fk-accent); color: var(--fk-on-accent) !important; }
.fk_btn_primary:hover { filter: brightness(.93); }
.fk_btn_outline, .read_more, .cmp_button_wire {
	border: 2px solid var(--fk-accent) !important; color: var(--fk-accent-dark) !important; background: transparent;
	padding: .6em 1.3em;
}
.fk_btn_outline:hover, .read_more:hover, .cmp_button_wire:hover { background: var(--fk-accent) !important; color: var(--fk-on-accent) !important; }
.fk_btn_ghost { color: #fff !important; border-color: rgba(255,255,255,.5); }
.fk_btn_ghost:hover { background: rgba(255,255,255,.15); }
.read_more { margin-top: 22px; }
.cmp_button, .pkp_button, .page .cmp_form button.submit, .page_search .submit button {
	background: var(--fk-accent) !important; color: var(--fk-on-accent) !important;
	border: 0 !important; padding: 11px 26px; font-size: .95rem; box-shadow: none; text-shadow: none;
}
.cmp_button:hover, .pkp_button:hover, .page .cmp_form button.submit:hover { filter: brightness(.93); }

/* ---------- 5. Site home ---------- */
.fk_home { margin: 0; padding: 0; }
.fk_hero {
	background:
		radial-gradient(900px 420px at 92% -10%, rgba(253,224,71,.5), transparent 60%),
		radial-gradient(700px 400px at 0% 110%, rgba(251,146,60,.35), transparent 60%),
		linear-gradient(135deg, #7f1d1d, #dc2626 55%, #f97316);
	color: #fff; padding: 72px 24px 110px; text-align: center;
}
.fk_hero_inner { max-width: 860px; margin: 0 auto; }
.fk_eyebrow {
	display: inline-block; font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
	color: var(--fk-yellow);
}
.fk_hero .fk_eyebrow {
	background: rgba(0,0,0,.18); border: 1px solid rgba(255,255,255,.25); padding: 6px 14px; border-radius: 999px;
}
.pkp_structure_main .fk_hero_title { font-size: clamp(1.9rem, 4.4vw, 3rem); line-height: 1.12; margin: 20px 0 18px; font-weight: 800; letter-spacing: -.02em; color: #fff; }
.fk_hero_about { font-size: 1.05rem; line-height: 1.75; color: rgba(255,255,255,.92); max-width: 760px; margin: 0 auto 30px; }
.fk_hero_about p { margin: 0; }
.fk_hero_cta { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.fk_home .fk_hero .fk_btn_primary { background: var(--fk-yellow); color: #7c2d12 !important; }
.fk_home .fk_hero .fk_btn_primary:hover { background: #fef08a; filter: none; }

.fk_journals { width: min(var(--fk-width), 100% - 32px); margin: -64px auto 0; position: relative; }
.pkp_structure_main .fk_section_title {
	display: inline-block; font-size: .78rem; line-height: 1.4; letter-spacing: .14em; text-transform: uppercase; font-weight: 800;
	color: #fff; background: rgba(0,0,0,.22); padding: 6px 14px; border-radius: 999px; margin: 0 0 16px;
}
.fk_cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.fk_card {
	background: #fff; border: 1px solid var(--fk-line); border-radius: 20px; box-shadow: var(--fk-shadow);
	overflow: hidden; display: flex; flex-direction: column; margin: 0; padding: 0;
	transition: transform .2s, box-shadow .2s;
}
.fk_card:hover { transform: translateY(-4px); box-shadow: var(--fk-shadow-lg); }
.fk_card_thumb {
	display: flex; align-items: center; justify-content: center; height: 180px; padding: 22px;
	background: linear-gradient(180deg, #fff7ed, #fff); border-bottom: 1px solid var(--fk-line);
}
.fk_card_thumb img { max-height: 100%; max-width: 100%; width: auto; height: auto; object-fit: contain; }
.fk_card_initial { font-size: 3rem; font-weight: 800; color: #dc2626; }
.fk_card_body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.pkp_structure_main .fk_card_title { margin: 0; font-size: 1.1rem; line-height: 1.35; }
.fk_card_title a { color: var(--fk-ink); text-decoration: none; }
.fk_card_title a:hover { color: #dc2626; }
.fk_card_desc {
	color: var(--fk-muted); font-size: .9rem; line-height: 1.65;
	display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
.fk_card_desc p { margin: 0; }
.fk_card_desc img { display: none; }
.fk_card_links { margin-top: auto; padding-top: 8px; display: flex; gap: 10px; flex-wrap: wrap; }
.fk_home .fk_btn_primary { background: #dc2626; }
.fk_home .fk_btn_outline { border-color: #dc2626 !important; color: #b91c1c !important; }
.fk_home .fk_btn_outline:hover { background: #dc2626 !important; color: #fff !important; }
.fk_home .cmp_pagination { margin-top: 24px; }

/* ---------- 6. Login & register ---------- */
.fk_auth {
	max-width: 1040px; margin: 8px auto 0; display: grid; grid-template-columns: 5fr 7fr; align-items: stretch;
	background: #fff; border: 1px solid var(--fk-line); border-radius: 24px; overflow: hidden; box-shadow: var(--fk-shadow-lg);
}
/* Register: brand becomes a banner above the (long) form */
.fk_auth_wide { max-width: 880px; grid-template-columns: 1fr; }
.fk_auth_wide .fk_auth_brand { padding: 32px 44px; gap: 8px; }
.fk_auth_wide .fk_auth_brand h2 { font-size: 1.45rem; }
.fk_auth_brand {
	background:
		radial-gradient(500px 320px at 100% 100%, rgba(253,224,71,.45), transparent 60%),
		linear-gradient(160deg, var(--fk-accent-dark), var(--fk-accent) 60%, var(--fk-peach));
	color: #fff; padding: 48px 40px; display: flex; flex-direction: column; justify-content: center; gap: 14px;
}
.pkp_structure_main .fk_auth_brand h2 { margin: 0; font-size: 1.7rem; line-height: 1.2; font-weight: 800; color: #fff; }
.pkp_structure_main .fk_auth_title { margin: 0 0 24px; font-size: 1.7rem; }
.fk_auth_brand p { margin: 0; color: rgba(255,255,255,.9); line-height: 1.65; }
.fk_auth_card { padding: 44px 44px 48px; min-width: 0; }
.fk_auth_title { margin: 0 0 24px; font-size: 1.7rem; font-weight: 800; color: var(--fk-ink); }
.fk_auth_title:before { display: none; }
.fk_notice { background: #fef9c3; border: 1px solid #fde68a; padding: 10px 14px; border-radius: 10px; }

.fk_auth .cmp_form, .fk_auth .login, .fk_auth .register { max-width: none !important; margin: 0; }
.fk_auth .cmp_form fieldset { border: 0; padding: 0; margin: 0 0 22px; min-width: 0; }
.fk_auth .cmp_form legend { font-weight: 800; font-size: 1rem; color: var(--fk-ink); margin-bottom: 12px; padding: 0; }
.fk_auth .fields > div { margin-bottom: 16px; padding: 0; }
.fk_auth .buttons button, .fk_auth .buttons a { float: none !important; margin: 0 !important; }
.fk_auth .remember .label, .fk_auth .checkbox .label { display: inline; font-weight: 500; font-style: normal; }

/* Register: journals list */
.fk_auth .context_optin .contexts { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.fk_auth .context_optin .contexts > li {
	margin: 0; border: 1px solid var(--fk-line); border-radius: 14px; padding: 14px 16px; background: #fafafa;
}
.fk_auth .context_optin .name { font-weight: 700; color: var(--fk-ink); margin-bottom: 6px; }
.fk_auth .context_optin .roles { margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.fk_auth .context_optin .roles label { display: inline-flex !important; align-items: center; gap: 8px; margin: 0; font-size: .9rem; }
.fk_auth .context_privacy { font-size: .85rem; color: var(--fk-muted); }
.fk_auth .context_privacy label { margin-top: 8px; }
.fk_auth_wide .identity .fields, .fk_auth_wide fieldset.login .fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.fk_auth_wide .identity .country { grid-column: 1 / -1; }

/* ---------- 7. Forms (everywhere) ---------- */
.cmp_form .label, .cmp_form label > .label { display: block; font-size: .85rem; font-weight: 600; color: var(--fk-ink); margin-bottom: 6px; font-style: normal; }
.cmp_form .required { color: #dc2626; }
.pkp_structure_main input[type=text], .pkp_structure_main input[type=password], .pkp_structure_main input[type=email],
.pkp_structure_main input[type=search], .pkp_structure_main input[type=url], .pkp_structure_main input[type=tel],
.pkp_structure_main select, .pkp_structure_main textarea {
	width: 100%; max-width: 100%; box-sizing: border-box; height: auto;
	padding: 11px 14px; border: 1px solid #cbd5e1; border-radius: var(--fk-radius-sm);
	font-size: .95rem; background: #fff; color: var(--fk-ink);
	transition: border-color .15s, box-shadow .15s;
}
.pkp_structure_main input:focus, .pkp_structure_main select:focus, .pkp_structure_main textarea:focus {
	outline: 0; border-color: var(--fk-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--fk-accent) 18%, transparent);
}
.pkp_structure_main input[type=checkbox], .pkp_structure_main input[type=radio] { accent-color: var(--fk-accent); width: 16px; height: 16px; }
/* Checkbox + text labels: block with the box in the gutter, so labels that
   contain links (privacy consent) keep flowing as one sentence */
.cmp_form .checkbox label, .cmp_form .optin label, .cmp_form .remember label, .context_privacy label {
	display: block; position: relative; padding-left: 28px; font-weight: 400; line-height: 1.55;
}
.cmp_form .checkbox label > input, .cmp_form .optin label > input, .cmp_form .remember label > input, .context_privacy label > input {
	position: absolute; left: 0; top: 2px; margin: 0;
}
.cmp_form .buttons { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 8px; }
.cmp_form .buttons a { font-weight: 600; }
.cmp_form .pkp_form_error, #formErrors { background: #fee2e2 !important; border: 1px solid #fecaca; color: #991b1b !important; padding: 10px 14px; border-radius: 10px; margin-bottom: 16px; }
#formErrors a { color: #991b1b !important; }
.fk_forgot { display: inline-block; margin-top: 8px; font-size: .85rem; }
.tagit { border-radius: var(--fk-radius-sm) !important; border: 1px solid #cbd5e1 !important; padding: 6px !important; }
.cmp_notification, .pkp_notification {
	border-radius: 12px; border: 1px solid var(--fk-accent-line); background: var(--fk-accent-soft); padding: 14px 18px; color: var(--fk-ink);
}
.cmp_notification.warning { border-color: #fde68a; background: #fef9c3; }

/* ---------- 8. Journal home ---------- */
.page_index_journal > *:first-child { margin-top: 0; }
.page_index_journal .homepage_image { margin: -32px -36px 30px !important; }
.page_index_journal .homepage_image img { display: block; width: 100%; border-radius: var(--fk-radius) var(--fk-radius) 0 0; }
.page_index_journal .cmp_announcements { border: 0; margin: 0 0 28px; }
.page_index_journal .additional_content {
	margin: 36px 0 0 !important; padding: 24px 0 0 !important; border-top: 1px solid var(--fk-line); line-height: 1.75;
}
.current_issue_title { color: var(--fk-muted); font-weight: 600; margin: -8px 0 18px; }

/* Issue heading: cover left, text right */
.obj_issue_toc .heading {
	display: grid; grid-template-columns: 160px minmax(0, 1fr); column-gap: 26px; row-gap: 6px; align-items: start;
	background: var(--fk-accent-soft); border: 1px solid var(--fk-accent-line); border-radius: var(--fk-radius);
	padding: 22px; margin: 0 0 8px;
}
.obj_issue_toc .heading > * { grid-column: 2; margin: 0 !important; float: none !important; width: auto !important; }
.obj_issue_toc .heading > .cover { grid-column: 1; grid-row: 1 / span 6; }
.obj_issue_toc .heading:not(:has(> .cover)) { grid-template-columns: minmax(0, 1fr); }
.obj_issue_toc .heading:not(:has(> .cover)) > * { grid-column: 1; }
.obj_issue_toc .cover img, .obj_issue_summary .cover img {
	display: block; width: 100%; max-width: 190px; border-radius: 10px; box-shadow: 0 10px 24px rgba(15,23,42,.22);
}
.obj_issue_toc .description { line-height: 1.7; }
.obj_issue_toc .description p { margin: 0 0 8px; }
.obj_issue_toc .pub_id, .obj_issue_toc .published { font-size: .88rem; color: var(--fk-muted); }
.obj_issue_toc .pub_id .type, .obj_issue_toc .published .label { font-weight: 700; color: var(--fk-ink); }
.obj_issue_toc .galleys { margin: 18px 0 0; }

/* Section heading inside the TOC */
.obj_issue_toc .sections { margin: 0; }
.obj_issue_toc .section { margin: 0; padding: 0; border: 0 !important; }
.pkp_structure_main .obj_issue_toc .section > h2, .pkp_structure_main .obj_issue_toc .galleys > h2 {
	display: flex; align-items: center; gap: 12px; background: none; border: 0; margin: 30px 0 14px; padding: 0;
	position: static; left: 0; line-height: 1.4;
	font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 800; color: var(--fk-accent-dark);
}
.obj_issue_toc .section > h2:after, .obj_issue_toc .galleys > h2:after { content: ""; flex: 1; height: 1px; background: var(--fk-line); }
.obj_issue_toc .section > h2:before { display: none; }

/* Article cards */
.cmp_article_list { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; gap: 14px; }
.cmp_article_list > li { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.obj_article_summary {
	position: relative; background: #fff; border: 1px solid var(--fk-line); border-left: 4px solid var(--fk-accent);
	border-radius: 14px; padding: 18px 22px; color: var(--fk-muted); font-size: .86rem; line-height: 1.7;
	transition: box-shadow .15s, transform .15s;
}
.obj_article_summary:hover { box-shadow: 0 12px 28px rgba(15,23,42,.08); transform: translateY(-1px); }
.obj_article_summary .meta { padding-right: 0 !important; }
.obj_article_summary .meta .pages { position: static !important; }
.obj_article_summary .cover { float: right; width: 90px; margin: 0 0 8px 16px; }
.obj_article_summary .title { font-size: 1.04rem; font-weight: 700; line-height: 1.45; margin: 0 0 6px; }
.obj_article_summary .title a { color: var(--fk-ink); text-decoration: none; }
.obj_article_summary .title a:hover { color: var(--fk-accent-dark); }
.obj_article_summary .subtitle { display: block; font-weight: 500; color: var(--fk-muted); font-size: .92rem; }
.obj_article_summary .meta { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin: 0 0 4px; font-size: .86rem; }
.obj_article_summary .authors { color: var(--fk-text); padding: 0; }
.obj_article_summary .pages, .obj_article_summary .published {
	flex: none; padding: 1px 10px; border-radius: 999px; background: #f1f5f9; color: var(--fk-text); font-weight: 600; font-size: .78rem;
}
.obj_article_summary a[href*="doi.org"] { color: var(--fk-accent-dark); word-break: break-all; text-decoration: none; }
.galleys_links { list-style: none; margin: 10px 0 8px !important; padding: 0 !important; display: flex; gap: 8px; flex-wrap: wrap; }
.galleys_links li { margin: 0 !important; }
.obj_galley_link {
	padding: 7px 16px !important; font-size: .8rem; line-height: 1.2;
	background: var(--fk-accent) !important; color: var(--fk-on-accent) !important; border: 0 !important;
}
.obj_galley_link:before { color: inherit !important; }
.obj_galley_link:hover { filter: brightness(.92); transform: translateY(-1px); }
.obj_galley_link.restricted { background: #64748b !important; }

/* ---------- 9. Sidebar ---------- */
.pkp_structure_sidebar .pkp_block {
	background: #fff; border: 1px solid var(--fk-line); border-radius: var(--fk-radius);
	padding: 18px 20px; margin: 0 0 18px !important; box-shadow: var(--fk-shadow); overflow: hidden;
}
.pkp_structure_sidebar .pkp_block .title {
	display: block; margin: 0 0 12px; padding: 0 0 10px; border-bottom: 2px solid var(--fk-accent);
	font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 800; color: var(--fk-accent-dark);
}
.pkp_structure_sidebar .pkp_block .content { padding: 0; font-size: .9rem; }
.pkp_structure_sidebar .pkp_block .content > *:first-child { margin-top: 0; }
.pkp_structure_sidebar .pkp_block .content > *:last-child { margin-bottom: 0; }
.pkp_structure_sidebar .pkp_block p:empty,
.pkp_structure_sidebar .pkp_block p:has(> br:only-child) { display: none; }
.pkp_structure_sidebar .pkp_block img { max-width: 100%; height: auto; border-radius: 8px; }
.pkp_structure_sidebar .pkp_block ul { list-style: none; margin: 0; padding: 0; }
.pkp_structure_sidebar .pkp_block li { margin: 0; }
.pkp_structure_sidebar .block_information li a,
.pkp_structure_sidebar .block_navigation li a {
	display: block; padding: 8px 0; border-bottom: 1px solid var(--fk-line); text-decoration: none; color: var(--fk-text);
}
.pkp_structure_sidebar .block_information li:last-child a { border-bottom: 0; }
.pkp_structure_sidebar .block_information li a:hover { color: var(--fk-accent-dark); padding-left: 4px; }
.pkp_structure_sidebar .block_make_submission { padding: 14px !important; }
.pkp_structure_sidebar .block_make_submission a {
	display: block; text-align: center; background: var(--fk-accent); color: var(--fk-on-accent) !important;
	border: 0; border-radius: 999px; padding: 12px; font-weight: 800; text-decoration: none;
}
.pkp_structure_sidebar .block_make_submission a:hover { filter: brightness(.93); }
.pkp_structure_sidebar .block_language_toggle select, .pkp_structure_sidebar select { width: 100%; padding: 8px 10px; border-radius: 10px; border: 1px solid #cbd5e1; }
.pkp_structure_sidebar iframe { max-width: 100%; }

/* ---------- 10. Article page ---------- */
.obj_article_details { color: var(--fk-text); }
.obj_article_details > .page_title { font-size: 1.75rem; line-height: 1.3; margin-bottom: 8px; }
.obj_article_details > .subtitle { font-size: 1.1rem; color: var(--fk-muted); font-weight: 500; margin: 0 0 18px; }
.obj_article_details > .row {
	display: grid !important; grid-template-columns: minmax(0, 1fr) 260px; gap: 28px; align-items: start;
	margin: 18px 0 0 !important; border: 0 !important;
}
.obj_article_details > .row:before, .obj_article_details > .row:after { display: none !important; }
.obj_article_details .main_entry, .obj_article_details .entry_details {
	float: none !important; width: auto !important; margin: 0 !important; border: 0 !important; padding: 0 !important; min-width: 0;
}
.obj_article_details .main_entry .item { padding: 0 0 20px; margin: 0 0 20px; border-bottom: 1px solid var(--fk-line) !important; }
.obj_article_details .main_entry .item:last-child { border-bottom: 0 !important; }
.obj_article_details .label { display: block; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 800; color: var(--fk-accent-dark); margin: 0 0 8px; }
.obj_article_details .item.doi .label, .obj_article_details .item.keywords .label { display: inline; margin-right: 6px; }
.obj_article_details .authors { list-style: none; padding: 0; display: grid; gap: 10px; }
.obj_article_details .authors li { margin: 0; padding: 0 0 0 14px; border-left: 3px solid var(--fk-accent-line); }
.obj_article_details .authors .name { display: block; font-weight: 700; color: var(--fk-ink); }
.obj_article_details .authors .affiliation { display: block; font-size: .86rem; color: var(--fk-muted); }
.obj_article_details .item.abstract {
	background: var(--fk-accent-soft); border: 1px solid var(--fk-accent-line) !important; border-radius: 14px; padding: 22px 24px !important;
	line-height: 1.85; text-align: justify;
}
.obj_article_details .item.abstract p { margin: 0 0 10px; }
.obj_article_details .item.references .value { font-size: .88rem; line-height: 1.7; }
.obj_article_details .item.references .value p { margin: 0 0 10px; padding-left: 14px; text-indent: -14px; word-break: break-word; }
.obj_article_details .entry_details { position: sticky; top: 20px; display: grid; gap: 14px; }
.obj_article_details .entry_details .item {
	background: #fff; border: 1px solid var(--fk-line) !important; border-radius: 14px; padding: 16px !important; margin: 0 !important;
	font-size: .88rem;
}
.obj_article_details .entry_details .item .sub_item { margin: 0 0 10px; padding: 0; }
.obj_article_details .entry_details .item .sub_item:last-child { margin: 0; }
.obj_article_details .entry_details .cover_image { padding: 10px !important; }
.obj_article_details .entry_details .cover_image img { display: block; width: 100%; border-radius: 10px; }
.obj_article_details .entry_details .galleys_links { margin: 0 !important; }
.obj_article_details .entry_details .galleys_links li { flex: 1 1 100%; }
.obj_article_details .entry_details .obj_galley_link { width: 100%; padding: 11px 16px !important; font-size: .9rem; }
.obj_article_details .citation_display .value { font-size: .84rem; }
.obj_article_details .citation_display .citation_formats { border-radius: 10px; border: 1px solid var(--fk-line); margin-top: 10px; }
.obj_article_details .citation_formats_button { width: 100%; border-radius: 10px; }

/* "Most read" & other plugin lists under the article */
.obj_article_details ~ *, #articlesBySameAuthorList { margin-top: 28px; }
#articlesBySameAuthorList ul { padding-left: 18px; }
#articlesBySameAuthorList li { margin-bottom: 8px; font-size: .9rem; }

/* ---------- 11. Archive, announcements, search, about pages ---------- */
.issues_archive { list-style: none !important; padding: 0 !important; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
.issues_archive > li { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.obj_issue_summary {
	height: 100%; box-sizing: border-box; background: #fff; border: 1px solid var(--fk-line); border-radius: var(--fk-radius);
	padding: 16px; box-shadow: var(--fk-shadow); transition: transform .15s, box-shadow .15s;
}
.obj_issue_summary:hover { transform: translateY(-3px); box-shadow: var(--fk-shadow-lg); }
.obj_issue_summary .cover { float: none !important; width: auto !important; margin: 0 0 12px !important; display: block; }
.obj_issue_summary .cover img { max-width: 100%; width: 100%; }
.obj_issue_summary h2 { margin: 0; font-size: 1rem; line-height: 1.4; }
.obj_issue_summary a.title { font-weight: 700; color: var(--fk-ink); text-decoration: none; }
.obj_issue_summary a.title:hover { color: var(--fk-accent-dark); }
.obj_issue_summary .series { display: block; color: var(--fk-muted); font-size: .84rem; margin-top: 4px; }
.obj_issue_summary .description { font-size: .84rem; color: var(--fk-muted); max-height: 5.4em; overflow: hidden; }

.cmp_announcements > .obj_announcement_summary, .cmp_announcements .more .obj_announcement_summary,
.page_announcements .obj_announcement_summary {
	float: none !important; width: auto !important; background: #fff; border: 1px solid var(--fk-line); border-radius: 14px;
	padding: 18px 22px !important; margin: 0 0 12px;
}
.obj_announcement_summary h2, .obj_announcement_summary h3, .obj_announcement_summary h4 { margin: 0 0 6px; font-size: 1.05rem; }
.obj_announcement_summary .date { font-size: .8rem; color: var(--fk-muted); }

.page_search .search_input, .page_search fieldset { border: 0; padding: 0; }
.page_search .submit { margin-top: 12px; }

.cmp_pagination { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 22px; font-size: .9rem; }
.cmp_pagination a, .cmp_pagination .current { padding: 5px 11px; border-radius: 8px; text-decoration: none; }
.cmp_pagination a { border: 1px solid var(--fk-line); }
.cmp_pagination .current { background: var(--fk-accent); color: var(--fk-on-accent); }

/* ---------- 12. Footer ---------- */
.pkp_structure_footer_wrapper {
	margin-top: 56px; background: #0f172a; color: #cbd5e1; border-top: 4px solid var(--fk-accent);
	flex-shrink: 0;
}
.pkp_structure_footer {
	width: min(var(--fk-width), 100% - 32px) !important; margin: 0 auto !important; padding: 40px 0 28px !important;
	display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: end;
}
.pkp_footer_content { padding: 0 !important; color: #cbd5e1; font-size: .9rem; line-height: 1.75; min-width: 0; }
.pkp_footer_content a { color: #fff; }
.pkp_footer_content strong, .pkp_footer_content b, .pkp_footer_content h1, .pkp_footer_content h2,
.pkp_footer_content h3, .pkp_footer_content h4 { color: #fff; }
.pkp_footer_content img {
	background: #fff; border-radius: 8px; padding: 4px; vertical-align: middle; margin: 3px;
	max-height: 56px; width: auto;
}
.pkp_footer_content hr { border: 0; border-top: 1px solid rgba(255,255,255,.12); }
.pkp_brand_footer { padding: 0 !important; float: none !important; }
.pkp_brand_footer a { display: block; }
.pkp_brand_footer img { display: block; width: 110px !important; max-width: 110px; height: auto; filter: invert(1) brightness(1.7); opacity: .7; }
.pkp_brand_footer img:hover { opacity: 1; }

/* ---------- 13. Responsive ---------- */
@media (max-width: 1080px) {
	.obj_article_details > .row { grid-template-columns: minmax(0, 1fr); }
	.obj_article_details .entry_details { position: static; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
}
@media (max-width: 992px) {
	.pkp_structure_content.has_sidebar { grid-template-columns: minmax(0, 1fr); }
	.pkp_structure_sidebar { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
	.pkp_structure_sidebar .pkp_block { margin: 0 !important; }
}
@media (max-width: 860px) {
	.fk_auth { grid-template-columns: 1fr; }
	.fk_auth_brand { padding: 30px 24px; }
	.fk_auth_wide .fk_auth_brand > * { position: static; }
	.fk_auth_card { padding: 28px 22px 32px; }
	.fk_auth_wide .identity .fields, .fk_auth_wide fieldset.login .fields { grid-template-columns: 1fr; }
	.fk_hero { padding: 52px 18px 96px; }

	/* Collapsible navigation */
	.fk_nav_toggle {
		display: inline-flex; align-items: center; justify-content: center; margin-left: auto;
		width: 42px; height: 42px; border-radius: 12px; border: 1px solid rgba(255,255,255,.4);
		background: rgba(255,255,255,.12); color: var(--fk-on-head); font-size: 1.1rem; cursor: pointer; flex: none;
	}
	.fk_site_level .fk_nav_toggle { color: #fff; }
	.fk_brand .fk_wrap { flex-wrap: wrap; min-height: 72px; gap: 12px; }
	.fk_site_name { flex: 1 1 100%; }
	.fk_site_name .is_img img { max-height: 64px; }
	.fk_search { order: 2; flex: 1 1 auto; width: auto; margin: 0; }
	.fk_nav_toggle { order: 3; margin-left: 0 !important; }
	.fk_site_level .fk_site_name { flex: 1 1 auto; }
	.fk_site_level .fk_nav_toggle { margin-left: auto !important; }
	.fk_navbar { display: none; }
	.fk_nav_open .fk_navbar { display: block; }
	.fk_navbar .fk_wrap { padding: 8px 0; }
	.fk_menu_primary { flex-direction: column; align-items: stretch; width: 100%; }
	.fk_menu_primary > li > a { display: flex; border-radius: 10px; }
	.fk_menu_primary ul, .fk_menu_primary .dropdown-menu { position: static; box-shadow: none; border: 0; padding: 0 0 0 12px; }
}
@media (max-width: 640px) {
	.pkp_structure_content { width: 100% !important; padding-top: 0 !important; gap: 18px; }
	.pkp_structure_main { border-radius: 0; border-left: 0; border-right: 0; padding: 22px 18px 30px !important; }
	.page_index_journal .homepage_image { margin: -22px -18px 22px !important; }
	.page_index_journal .homepage_image img { border-radius: 0; }
	.pkp_structure_sidebar { padding: 0 16px !important; }
	.obj_issue_toc .heading { grid-template-columns: 1fr; }
	.obj_issue_toc .heading > *, .obj_issue_toc .heading > .cover { grid-column: 1; grid-row: auto; }
	.obj_issue_toc .cover img { max-width: 150px; }
	.obj_article_summary .meta { flex-direction: column; gap: 4px; }
	.obj_article_summary .cover { display: none; }
	.pkp_structure_footer { grid-template-columns: 1fr; }
	.fk_topbar .fk_wrap { flex-wrap: wrap; padding: 4px 0; }
	.fk_menu_user > li > a { padding: 3px 10px; }
}
