/*
Theme Name: NIAS Child
Template: hello-elementor
Version: 0.4.0
Description: Child theme for nias.org.il (Israsky, nian/TASK-024 + TASK-69 Direction I "Institution"). Self-hosted NSerif & NSans fonts, strict 5-size type scale, IS 5568 AA accessibility.
Author: Israsky
Text Domain: nias-child
*/

/* ---------- Self-hosted fonts (OFL, no external CDN) ---------- */
@font-face {
	font-family: 'NSerif';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('assets/fonts/noto-serif-cyrillic-normal.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
	font-family: 'NSerif';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('assets/fonts/noto-serif-latin-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'NSerif';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('assets/fonts/noto-serif-he-hebrew-normal.woff2') format('woff2');
	unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
	font-family: 'NSans';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('assets/fonts/noto-sans-cyrillic-normal.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
	font-family: 'NSans';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('assets/fonts/noto-sans-latin-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'NSans';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('assets/fonts/noto-sans-he-hebrew-normal.woff2') format('woff2');
	unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}

/* ---------- Tokens (Direction I "Institution") ---------- */
:root {
	--bg: #ffffff;
	--ink: #17212b;
	--brand: #163a63;
	--brand-h: #244f80;
	--bar: #12305a;
	--bar-muted: #b9c3d1;
	--muted: #5c6773;
	--panel: #f5f7fa;
	--line: #d9e1ea;
	--focus: #163a63;
	--serif: 'NSerif', Georgia, serif;
	--sans: 'NSans', system-ui, sans-serif;
	--ease-out: cubic-bezier(0.23, 1, 0.32, 1);
	--fs-1: 15px;
	--fs-2: 18px;
	--fs-3: 22px;
	--fs-4: 28px;
	--fs-5: 36px;
	/* Legacy aliases for Elementor templates */
	--nias-navy: #163a63;
	--nias-navy-2: #244f80;
	--nias-ink: #17212b;
	--nias-muted: #5c6773;
	--nias-line: #d9e1ea;
	--nias-block: #f5f7fa;
	--nias-soft: #eaf0f6;
	--nias-white: #ffffff;
	--nias-radius: 6px;
	--nias-wrap: 1240px;
	--nias-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--sans);
	font-size: var(--fs-2);
	line-height: 1.6;
	text-align: start;
	overflow-wrap: break-word;
	caret-color: var(--brand);
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
}
body > * { flex-shrink: 0; }
body > main,
body > #content,
body > [data-elementor-type="wp-page"],
body > [data-elementor-type="single-post"] { flex: 1 0 auto; }

::selection { background: var(--brand); color: #fff; }
a, button, summary, input, .elementor-button {
	touch-action: manipulation;
	-webkit-tap-highlight-color: rgba(22, 58, 99, 0.12);
}
a, .page-content a {
	color: var(--brand);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}
a.btn, a.btn2, a.nias-btn, a.mark, .util a, .nav a, .mlangs a, #mnav li a, #mnav .mnav-langs a, .quick li a, .dep a.row, .pub .title a, .side-idx li a, .topic a, .ag h3 a, .ftr a {
	text-decoration: none;
}
body:not([class*="elementor-page-"]) .site-main {
	max-width: 1240px;
	margin-inline: auto;
	padding-inline: 24px;
	padding-block: 40px 64px;
}
.page-header .entry-title {
	font-family: var(--serif);
	font-size: var(--fs-5);
	line-height: 1.18;
	font-weight: 600;
	color: var(--brand);
	margin: 0 0 16px;
}
h1, h2, h3, .elementor-heading-title {
	font-family: var(--serif);
	color: var(--ink);
	margin: 0;
}
section[id], [id] { scroll-margin-top: 24px; }
p { margin: 0; }
ul, ol, dl, dd { margin: 0; padding: 0; }
ul, ol { list-style: none; }
bdi, .tnum, .nias-ltr, .jet-listing-dynamic-terms__link {
	unicode-bidi: isolate;
	font-variant-numeric: tabular-nums lining-nums;
}
.nias-num, .nias-ev__date, .nias-ev__time, .nias-req bdi {
	font-variant-numeric: tabular-nums lining-nums;
}

.wrap, .nias-wrap {
	width: 100%;
	max-width: 1240px;
	margin-inline: auto;
	padding-inline: 24px;
	box-sizing: border-box;
}
.sr, .nias-sr, .screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	font-size: var(--fs-1) !important;
}
.skip, .skip-link.screen-reader-text {
	position: absolute !important;
	inset-inline-start: 16px !important;
	top: -80px !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	clip: auto !important;
	overflow: visible !important;
	background: var(--brand) !important;
	color: #fff !important;
	padding: 12px 18px !important;
	border-radius: 6px !important;
	z-index: 100000 !important;
	font-family: var(--sans) !important;
	font-size: var(--fs-1) !important;
	font-weight: 600 !important;
	text-decoration: none !important;
}
.skip:focus, .skip-link.screen-reader-text:focus {
	top: 8px !important;
	outline: 3px solid var(--brand) !important;
	outline-offset: 2px !important;
}

html :focus-visible,
html a:focus-visible,
html button:focus-visible,
html summary:focus-visible,
html input:focus-visible,
html [tabindex]:focus-visible {
	outline: 3px solid var(--focus);
	outline-offset: 2px;
}

.arr { font-family: system-ui, sans-serif; font-size: inherit; }
.tag {
	display: inline-block;
	font-family: var(--sans);
	font-size: var(--fs-1);
	font-weight: 500;
	line-height: 1.4;
	color: var(--muted);
	border: 1px solid var(--line);
	border-radius: 6px;
	padding: 0 7px;
	vertical-align: 1px;
	letter-spacing: 0;
	text-transform: none;
}
.tbc { color: var(--muted); }
.rub {
	font-family: var(--sans);
	font-size: var(--fs-1);
	font-weight: 600;
	line-height: 1.35;
	color: var(--brand);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
:lang(he) .rub, .rub:lang(he) { letter-spacing: 0; text-transform: none; }

/* ---------- Utility Bar & Header ---------- */
.util { background: var(--bar); color: #fff; font-size: var(--fs-1); }
.util .wrap { display: flex; align-items: center; gap: 28px; min-height: 44px; }
.util a { color: #fff; text-decoration: none; font-size: var(--fs-1); }
.util :focus-visible { outline-color: #fff; }
.langs { display: flex; gap: 4px; margin-inline-end: auto; list-style: none; margin-block: 0; padding: 0; }
.langs a, .lang-off { display: inline-block; padding: 6px 8px; color: var(--bar-muted); font-size: var(--fs-1); }
.langs a[aria-current] { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 5px; }
.lang-off { color: var(--bar-muted); opacity: 0.8; }
.search { display: flex; align-items: center; margin: 0; }
.search input[type="search"], .search input {
	width: 180px;
	height: 32px;
	border: 1px solid #fff;
	border-radius: 6px 0 0 6px;
	padding: 0 10px;
	font-family: var(--sans);
	font-size: var(--fs-1);
	color: var(--ink);
	background: #fff;
	margin: 0;
}
.search input[type="search"]:lang(he), [dir="rtl"] .search input[type="search"],
.search input:lang(he), [dir="rtl"] .search input { border-radius: 0 6px 6px 0; }
.search button[type="submit"], .search button {
	height: 32px;
	border: 1px solid #fff;
	background: transparent;
	color: #fff;
	font-family: var(--sans);
	font-size: var(--fs-1);
	font-weight: 500;
	padding: 0 12px;
	border-radius: 0 6px 6px 0;
	cursor: pointer;
	margin: 0;
	line-height: 1;
}
[dir="rtl"] .search button[type="submit"], [dir="rtl"] .search button { border-radius: 6px 0 0 6px; }
.util .search :focus-visible { outline-color: #fff; }

.hdr { border-bottom: 3px solid var(--brand); position: relative; background: var(--bg); }
.hdr .wrap { display: flex; align-items: center; gap: 24px; min-height: 72px; padding-block: 8px; flex-wrap: nowrap; }
.mark { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--brand); margin-inline-end: auto; flex-shrink: 0; }
.mark-abbr { font-family: var(--serif); font-weight: 700; font-size: var(--fs-4); letter-spacing: 0.06em; line-height: 1; color: var(--brand); }
.mark-name { font-family: var(--serif); font-size: var(--fs-1); line-height: 1.25; color: var(--ink); border-inline-start: 1px solid var(--line); padding-inline-start: 14px; }
.nav { display: flex; flex-wrap: nowrap; gap: 20px; list-style: none; margin: 0; padding: 0; }
.nav a {
	display: block;
	font-size: var(--fs-1);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ink);
	text-decoration: none;
	padding: 8px 0;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
}
.nav a:lang(he), [lang="he"] .nav a { letter-spacing: 0; text-transform: none; font-size: var(--fs-1); }
.nav a[aria-current] { border-bottom-color: var(--brand); color: var(--brand); }
.mlangs, .mmenu { display: none; }
@keyframes mnav-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

/* ---------- Hero ---------- */
.hero { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; padding-top: 44px; }
.hero-main { grid-column: 1 / 8; }
.hero-side { grid-column: 9 / 13; }
h1 { font-size: var(--fs-5); line-height: 1.18; font-weight: 600; color: var(--brand); }
h1:lang(he), [lang="he"] h1 { font-weight: 700; }
.names { margin-top: 12px; font-size: var(--fs-1); line-height: 1.5; color: var(--muted); }
.names span { display: block; }
.lead { margin-top: 20px; font-size: var(--fs-3); line-height: 1.5; max-width: 34em; }

/* Next seminar / Schedule notice block in Hero */
.next { margin-top: 36px; border-top: 2px solid var(--brand); padding-top: 16px; }
.next-h { font-family: var(--sans); font-size: var(--fs-2); font-weight: 600; color: var(--brand); display: flex; gap: 10px; align-items: center; }
.proto-row { display: grid; grid-template-columns: 116px minmax(0, 1fr); column-gap: 24px; margin-top: 16px; }
.tile { border-inline-end: 1px solid var(--line); padding-inline-end: 16px; white-space: nowrap; }
.tile-d { display: block; font-size: var(--fs-5); font-weight: 600; line-height: 1; color: var(--brand); }
.tile-m { display: block; margin-top: 8px; font-size: var(--fs-1); font-weight: 600; line-height: 1.3; }
.tile-w { display: block; font-size: var(--fs-1); color: var(--muted); line-height: 1.3; }
.topic { font-family: var(--serif); font-size: var(--fs-3); line-height: 1.3; font-weight: 600; margin-top: 6px; }
.pl { display: grid; grid-template-columns: auto 1fr; gap: 4px 16px; margin-top: 14px; font-size: var(--fs-2); line-height: 1.5; }
.pl dt { color: var(--muted); }
.act { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 20px; }
.btn, .nias-btn--zoom, .nias-btn--primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 24px;
	border-radius: 6px;
	border: 1px solid var(--brand);
	background: var(--brand);
	color: #fff !important;
	text-decoration: none;
	font-family: var(--sans);
	font-weight: 600;
	font-size: var(--fs-2);
}
.btn:active, .btn2:active, .menu-btn:active, .nias-btn:active {
	transform: scale(0.97);
	transition: transform 160ms var(--ease-out);
}
.act .note { font-size: var(--fs-1); color: var(--muted); flex-basis: 100%; margin-top: 0; }

/* Official info panel in Hero */
.off { background: var(--panel); border-top: 2px solid var(--brand); padding: 20px 24px 24px; }
.off summary {
	font-family: var(--serif);
	font-size: var(--fs-3);
	font-weight: 600;
	line-height: 1.3;
	cursor: pointer;
	list-style: none;
	min-height: 48px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.off summary::-webkit-details-marker { display: none; }
.off summary::after {
	content: "";
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--brand);
	border-bottom: 2px solid var(--brand);
	transform: rotate(45deg);
	margin-top: -6px;
	transition: transform 150ms var(--ease-out);
}
.off details[open] summary::after { transform: rotate(225deg); margin-top: 6px; }
.off details[open] .kv, .off details[open] .off-src { animation: mnav-in 180ms var(--ease-out); }
.kv div { padding: 12px 0; border-bottom: 1px solid var(--line); }
.kv div:last-child { border-bottom: 0; }
.kv dt { font-size: var(--fs-1); color: var(--muted); line-height: 1.4; }
.kv dd { font-size: var(--fs-2); line-height: 1.45; margin-top: 2px; }
.off-src { margin-top: 12px; font-size: var(--fs-1); color: var(--muted); }

.quick { margin-top: 32px; }
.quick h2 { font-family: var(--sans); font-size: var(--fs-1); font-weight: 600; color: var(--muted); line-height: 1.4; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.quick li a { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: var(--fs-2); text-decoration: none; color: var(--ink); }
.quick li a::after { content: "›"; color: var(--brand); font-weight: 600; }
[dir="rtl"] .quick li a::after { content: "‹"; }

/* ---------- Sections ---------- */
.sec { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; margin-top: 96px; border-top: 2px solid var(--brand); padding-top: 24px; }
.sec-h { grid-column: 1 / 4; padding-inline-end: 12px; }
.sec-b { grid-column: 4 / 13; }
h2 { font-size: var(--fs-4); line-height: 1.2; font-weight: 600; }
h2:lang(he), [lang="he"] h2 { font-weight: 700; }
.sec-p { margin-top: 12px; font-size: var(--fs-2); line-height: 1.55; color: var(--muted); }
.sec-more { display: inline-block; margin-top: 16px; font-size: var(--fs-2); font-weight: 600; padding: 6px 0; }

/* Agenda */
.ag li { display: grid; grid-template-columns: 116px minmax(0, 1fr) 200px; column-gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.ag li:first-child { padding-top: 4px; }
.ag .tile-d { font-size: var(--fs-4); }
.ag h3 { font-size: var(--fs-3); line-height: 1.3; font-weight: 500; margin-top: 6px; }
[dir="rtl"] .ag h3, [dir="rtl"] .pub .title, [dir="rtl"] .pub .by { text-align: right; }
.ag .who { margin-top: 6px; font-size: var(--fs-2); color: var(--muted); }
.ag .who b { font-weight: 600; color: var(--brand); }
.ag .when { font-size: var(--fs-2); line-height: 1.45; }
.ag .when strong { display: block; font-size: var(--fs-3); font-weight: 600; }
.ag .when span { display: block; color: var(--muted); font-size: var(--fs-1); }
.dno { font-weight: 600; color: var(--brand); font-variant-numeric: tabular-nums; }

/* Departments Index */
.dep { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; margin-top: 28px; }
.dep-sec .sec-b { grid-column: 1 / 13; }
.dep-head { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
.dep-head h2 { grid-column: 1 / 4; }
.dep-head .sec-p { grid-column: 4 / 11; margin-top: 4px; }
.dep li { border-bottom: 1px solid var(--line); }
.dep li:nth-child(-n+2) { border-top: 1px solid var(--line); }
.dep .row { display: grid; grid-template-columns: 48px minmax(0, 1fr); column-gap: 16px; padding: 16px 0; min-height: 64px; color: inherit; text-decoration: none; }
.dep .n { font-size: var(--fs-3); font-weight: 600; color: var(--brand); line-height: 1.3; font-variant-numeric: tabular-nums; }
.dep h3 { font-size: var(--fs-3); line-height: 1.3; font-weight: 500; }
.dep .sct { margin-top: 6px; font-size: var(--fs-1); line-height: 1.5; color: var(--muted); }
.dep .lab { display: inline-block; margin-inline-start: 8px; }

/* Publications */
.pub li { display: grid; grid-template-columns: 220px minmax(0, 1fr); column-gap: 24px; padding: 4px 0 20px; border-bottom: 1px solid var(--line); }
.pub .meta { font-size: var(--fs-1); line-height: 1.5; color: var(--muted); }
.pub .meta b { display: block; color: var(--ink); font-weight: 600; }
.pub .title { font-size: var(--fs-3); line-height: 1.35; font-weight: 600; }
.pub .title a { color: var(--ink); text-decoration: none; }
.pub .by { margin-top: 4px; font-size: var(--fs-2); }
.pub .rem { margin-top: 6px; font-size: var(--fs-1); color: var(--muted); }
.empty { margin-top: 20px; font-size: var(--fs-2); line-height: 1.55; max-width: 44em; color: var(--ink); }

/* Official Table */
table.tbl { width: 100%; border-collapse: collapse; font-size: var(--fs-2); line-height: 1.5; margin: 0; border: 0; }
table.tbl tr, table.tbl tbody > tr:nth-child(odd) > td, table.tbl tbody > tr:nth-child(odd) > th,
table.tbl tbody > tr:hover > td, table.tbl tbody > tr:hover > th { background: transparent !important; }
table.tbl th, table.tbl td {
	text-align: start;
	vertical-align: top;
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid var(--line);
	background: transparent;
}
table.tbl tr:first-child th, table.tbl tr:first-child td { padding-top: 4px; }
table.tbl th { width: 34%; font-weight: 400; color: var(--muted); padding-inline-end: 24px; font-size: var(--fs-1); }
table.tbl td { font-size: var(--fs-2); color: var(--ink); }

/* History */
.hist li { display: grid; grid-template-columns: 150px minmax(0, 1fr); column-gap: 24px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.hist li:first-child { padding-top: 2px; }
.hist .y { font-family: var(--sans); font-size: var(--fs-3); font-weight: 600; color: var(--brand); line-height: 1.35; font-variant-numeric: tabular-nums; }
.hist p { font-size: var(--fs-2); }
.note { margin-top: 16px; font-size: var(--fs-1); color: var(--muted); }

/* Archive Band */
.band { background: var(--panel); margin-top: 96px; padding: 40px 0 48px; border-top: 2px solid var(--brand); }
.band .grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
.band .sec-h { grid-column: 1 / 5; }
.band .c1 { grid-column: 6 / 9; }
.band .c2 { grid-column: 9 / 13; }
.band h3 { font-family: var(--sans); font-size: var(--fs-1); font-weight: 600; color: var(--muted); margin-bottom: 8px; }
.band li { padding: 8px 0; border-bottom: 1px solid var(--line); font-size: var(--fs-2); }
.band .c2 li { padding: 0; }
.band .c2 li a { display: inline-block; padding: 9px 0; font-size: var(--fs-2); }
.band .go { margin-top: 20px; }
.btn2, .nias-btn--ghost {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 0 20px;
	border: 1px solid var(--brand);
	border-radius: 6px;
	color: var(--brand);
	background: #fff;
	text-decoration: none;
	font-family: var(--sans);
	font-weight: 600;
	font-size: var(--fs-2);
}

/* Join */
.join { counter-reset: s; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 24px; }
.join li { border-top: 1px solid var(--line); padding-top: 14px; }
.join .s { display: block; font-size: var(--fs-4); font-weight: 600; line-height: 1; color: var(--brand); }
.join h3 { font-size: var(--fs-3); font-weight: 600; margin-top: 12px; }
.join p { margin-top: 6px; font-size: var(--fs-2); }
.join-act { display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: center; margin-top: 28px; }

/* Footer */
.ftr { background: var(--bar); color: #fff; margin-top: 112px; padding: 48px 0 32px; }
.ftr a { color: #fff; text-decoration: none; }
.ftr :focus-visible { outline-color: #fff; }
.ftr .top { display: flex; align-items: center; gap: 16px; padding-bottom: 28px; border-bottom: 1px solid #2c4a75; }
.ftr .mark-abbr { color: #fff; }
.ftr .mark-name { color: #fff; border-color: #2c4a75; }
.ftr .cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 24px; padding: 28px 0; }
.ftr h2 { font-family: var(--sans); font-size: var(--fs-1); font-weight: 600; color: var(--bar-muted); line-height: 1.4; margin-bottom: 10px; }
.ftr li a { display: inline-block; padding: 6px 0; font-size: var(--fs-2); }
.ftr .legal { border-top: 1px solid #2c4a75; padding-top: 20px; font-size: var(--fs-1); color: var(--bar-muted); }

/* Inner Pages (Department, Seminar, Events, Legal) */
.crumbs { padding-top: 24px; font-size: var(--fs-1); color: var(--muted); }
.crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; list-style: none; margin: 0; padding: 0; }
.crumbs li + li::before { content: "/"; margin-inline: 10px; color: var(--line); }
.crumbs a { padding: 4px 0; font-size: var(--fs-1); }
div.page { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; padding-top: 32px; }
.page-main { grid-column: 1 / 9; }
.page-side { grid-column: 10 / 13; }
div.page h1 { font-size: var(--fs-5); color: var(--ink); }
.page-sec { margin-top: 48px; border-top: 1px solid var(--line); padding-top: 20px; }
.page-sec h2 { font-size: var(--fs-4); }
.page-sec p { margin-top: 12px; max-width: 40em; font-size: var(--fs-2); }
.steps { counter-reset: s; margin-top: 16px; }
.steps li { display: grid; grid-template-columns: 40px 1fr; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: var(--fs-2); }
.steps li::before { counter-increment: s; content: counter(s); font-weight: 600; color: var(--brand); font-size: var(--fs-3); }
.closed { display: block; margin-top: 20px; background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: 14px 18px; font-size: var(--fs-2); max-width: 34em; }
.closed b { display: block; color: var(--brand); }
.side-box { border-top: 2px solid var(--brand); background: var(--panel); padding: 18px 20px 20px; }
.side-box h2 { font-size: var(--fs-3); }
.side-box p { margin-top: 8px; font-size: var(--fs-2); }
.side-idx { margin-top: 28px; }
.side-idx h2 { font-family: var(--sans); font-size: var(--fs-1); font-weight: 600; color: var(--muted); margin-bottom: 6px; }
.side-idx li a { display: grid; grid-template-columns: 36px 1fr; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: var(--fs-1); line-height: 1.4; color: var(--ink); text-decoration: none; }
.side-idx li a[aria-current] { font-weight: 600; color: var(--brand); }
.side-idx .n { color: var(--brand); font-weight: 600; }
.big-no { display: block; font-family: var(--sans); font-size: var(--fs-5); font-weight: 600; line-height: 1; color: var(--brand); font-variant-numeric: tabular-nums; margin-bottom: 12px; }
.pager { display: flex; justify-content: space-between; margin-top: 48px; border-top: 1px solid var(--line); padding-top: 16px; font-size: var(--fs-2); }
.pager a { padding: 10px 0; font-weight: 600; }

/* ---------- Legal / Text pages & JetEngine Seminar Listing compatibility ---------- */
.nias-page { padding-block: 40px 64px; }
.nias-page h1 { margin: 0 0 20px; font-size: var(--fs-5); line-height: 1.18; font-weight: 600; color: var(--brand); }
.nias-prose { max-width: min(68ch, 760px); font-size: var(--fs-2); line-height: 1.65; color: var(--ink); }
.nias-prose p + p { margin-top: 14px; }
.nias-prose h2 { margin: 36px 0 12px; font-size: var(--fs-3); line-height: 1.3; font-weight: 600; }
.nias-prose h3 { margin: 24px 0 8px; font-size: var(--fs-2); line-height: 1.35; font-weight: 600; }
.nias-prose ul { list-style: disc; padding-inline-start: 1.25em; margin: 12px 0; }
.nias-prose ol { list-style: decimal; padding-inline-start: 1.25em; margin: 12px 0; }
.nias-prose li + li { margin-top: 6px; }
.nias-prose table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: var(--fs-1); }
.nias-prose th, .nias-prose td { border: 1px solid var(--line); padding: 8px 10px; text-align: start; vertical-align: top; overflow-wrap: anywhere; font-size: var(--fs-1); background: transparent; }
.nias-prose th { background: var(--panel); font-weight: 600; }

.nias-section { padding-block: 44px; }
.nias-section--block { background: var(--panel); border-block: 1px solid var(--line); }
.nias-section__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 24px; margin-bottom: 20px; }
.nias-section__head h2 { margin: 0; font-size: var(--fs-4); line-height: 1.2; font-weight: 600; }
.nias-zoomroom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-bottom: 20px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); font-size: var(--fs-2); }

.nias-board .jet-listing-grid__items { display: block !important; margin: 0 !important; padding: 0 !important; width: 100% !important; list-style: none; border-top: 1px solid var(--line); }
.nias-board .jet-listing-grid__item { width: 100% !important; max-width: 100% !important; padding: 0 !important; margin: 0 !important; border-bottom: 1px solid var(--line); }
.nias-board .jet-listing-not-found, .nias-board .jet-listing-grid .jet-listing-not-found.jet-listing-grid__items {
	text-align: start !important;
	padding: 20px 0 !important;
	color: var(--muted) !important;
	font-family: var(--sans) !important;
	font-size: var(--fs-2) !important;
	font-weight: 400 !important;
	border-block: 1px solid var(--line);
}

.nias-ev { display: grid !important; grid-template-columns: 220px minmax(0, 1fr) auto; gap: 8px 32px; align-items: start; padding-block: 22px; }
.nias-ev > .e-con-inner { display: contents; }
.nias-ev__when { padding-inline-end: 24px; border-inline-end: 1px solid var(--line); align-self: stretch; }
.nias-ev__date { font-size: var(--fs-3) !important; line-height: 1.25; font-weight: 600; color: var(--brand); }
.nias-ev__time { margin-top: 4px; font-size: var(--fs-1) !important; line-height: 1.4; color: var(--ink); }
.nias-ev__tz { margin-top: 2px; font-size: var(--fs-1) !important; line-height: 1.4; color: var(--muted); }
.nias-ev__title { margin: 0; font-family: var(--serif); font-size: var(--fs-3) !important; line-height: 1.35; font-weight: 600; color: var(--ink); }
.nias-ev__speaker { margin: 6px 0 0; font-size: var(--fs-2) !important; line-height: 1.5; color: var(--ink); }
.nias-ev__speaker:empty { display: none; }
.nias-ev__meta, .nias-ev__meta .elementor-heading-title { margin: 6px 0 0; font-family: var(--sans); font-size: var(--fs-1) !important; line-height: 1.5; color: var(--muted); font-weight: 400; }
.nias-ev__status .elementor-heading-title { display: inline-block; margin: 0 0 6px; padding: 2px 8px; border: 1px solid var(--brand); border-radius: 6px; font-family: var(--sans); font-size: var(--fs-1) !important; line-height: 1.4; font-weight: 600; color: var(--brand); }
.nias-ev--cancelled .nias-ev__title { text-decoration: line-through; text-decoration-thickness: 1px; }
.nias-ev__actions { display: flex; flex-direction: column; align-items: stretch; gap: 8px; min-width: 180px; }
.nias-ev__actions .elementor-widget, .nias-ev__actions .nias-btn { width: 100%; }
.nias-ev .elementor-widget:not(:last-child) { margin-bottom: 0; }
.nias-ev .jet-listing-dynamic-field__content, .nias-ev .jet-listing-dynamic-field { display: block; }

.nias-single__head { background: var(--panel); border-bottom: 2px solid var(--brand); padding-block: 32px 36px; }
.nias-single__back { display: inline-flex; align-items: center; min-height: 48px; margin-bottom: 8px; color: var(--brand); font-weight: 600; font-size: var(--fs-1); }
.nias-single__head h1 { margin: 0 0 20px; font-size: var(--fs-5); line-height: 1.2; font-weight: 600; color: var(--ink); max-width: 30ch; }
.nias-facts, .e-con.nias-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px 32px; margin: 0 0 24px; max-width: 980px; }
.nias-fact__k { display: block; font-size: var(--fs-1); line-height: 1.4; color: var(--muted); }
.nias-fact__v { display: block; margin-top: 2px; font-size: var(--fs-2); line-height: 1.5; color: var(--ink); }
.nias-single__body { padding-block: 36px 56px; }

/* Elementor plain wrapper overrides */
.e-con.nias-plain,
.e-con.nias-wrap,
.e-con.nias-hero,
.e-con.nias-section,
.e-con.nias-header,
.e-con.nias-footer,
.e-con.nias-single,
.e-con.nias-single__head,
.e-con.nias-single__body,
.e-con.nias-page,
.e-con.nias-oldsite,
.e-con.nias-ev,
.e-con.nias-ev__body,
.e-con.nias-ev__actions,
.e-con.nias-facts {
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
	--margin-top: 0px;
	--margin-bottom: 0px;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
}
.e-con.nias-wrap {
	--content-width: 100%;
	width: 100%;
	max-width: 1240px;
	margin-inline: auto;
	--padding-left: 24px;
	--padding-right: 24px;
}
.e-con.nias-page { --padding-top: 40px; --padding-bottom: 64px; }
.e-con.nias-section { --padding-top: 44px; --padding-bottom: 44px; }
.e-con.nias-single__head { --padding-top: 32px; --padding-bottom: 36px; }
.e-con.nias-single__body { --padding-top: 36px; --padding-bottom: 56px; }
.e-con > .elementor-widget { width: 100%; }
.elementor-widget-shortcode .elementor-shortcode > *:last-child { margin-bottom: 0; }

.e-con.sec {
	--display: grid;
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
	column-gap: 24px !important;
	--column-gap: 24px;
	--row-gap: 0px;
	--padding-top: 24px;
	--padding-bottom: 0px;
	--padding-left: 24px;
	--padding-right: 24px;
	--margin-top: 96px;
	--margin-bottom: 0px;
	width: 100%;
	max-width: 1240px;
	margin-top: 96px !important;
	margin-inline: auto !important;
	padding-top: 24px !important;
	padding-inline: 24px !important;
}
.e-con.sec-h {
	grid-column: 1 / 4 !important;
	width: auto !important;
	--width: auto;
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 12px;
	padding-inline-end: 12px !important;
}
.e-con.sec-b {
	grid-column: 4 / 13 !important;
	width: auto !important;
	--width: auto;
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
}

/* Protect Direction I typography & colours from Elementor Kit specificity */
body.elementor-kit-4 {
	font-family: var(--sans);
	font-size: var(--fs-2);
	color: var(--ink);
	background-color: var(--bg);
}
body.elementor-kit-4 h1 { font-family: var(--serif); font-size: var(--fs-5); line-height: 1.18; color: var(--brand); }
body.elementor-kit-4 div.page h1, body.elementor-kit-4 .nias-single__head h1 { color: var(--ink); }
body.elementor-kit-4 h2 { font-family: var(--serif); font-size: var(--fs-4); line-height: 1.2; color: var(--ink); }
body.elementor-kit-4 h2.next-h { font-family: var(--sans); font-size: var(--fs-2); color: var(--brand); }
body.elementor-kit-4 .quick h2, body.elementor-kit-4 .side-idx h2, body.elementor-kit-4 .band h3 { font-family: var(--sans); font-size: var(--fs-1); color: var(--muted); }
body.elementor-kit-4 .ftr h2 { font-family: var(--sans); font-size: var(--fs-1); color: var(--bar-muted); }
body.elementor-kit-4 .side-box h2, body.elementor-kit-4 .nias-prose h2 { font-family: var(--serif); font-size: var(--fs-3); color: var(--ink); }
body.elementor-kit-4 h3 { font-family: var(--serif); font-size: var(--fs-3); line-height: 1.3; color: var(--ink); }
body.elementor-kit-4 .nias-prose h3 { font-family: var(--serif); font-size: var(--fs-2); color: var(--ink); }
body.elementor-kit-4 .util a, body.elementor-kit-4 .ftr a { color: #fff; }
body.elementor-kit-4 .langs a { color: var(--bar-muted); }
body.elementor-kit-4 .langs a[aria-current] { color: #fff; }
body.elementor-kit-4 .nav a { color: var(--ink); }
body.elementor-kit-4 .nav a[aria-current] { color: var(--brand); }
body.elementor-kit-4 .mlangs a, body.elementor-kit-4 #mnav .mnav-langs a { color: var(--muted); }
body.elementor-kit-4 .mlangs a[aria-current], body.elementor-kit-4 #mnav .mnav-langs a[aria-current] { color: var(--brand); }
body.elementor-kit-4 #mnav li a, body.elementor-kit-4 .quick li a, body.elementor-kit-4 .dep a.row, body.elementor-kit-4 .pub .title a, body.elementor-kit-4 .side-idx li a { color: var(--ink); }
body.elementor-kit-4 .side-idx li a[aria-current] { color: var(--brand); }
body.elementor-kit-4 .search button[type="submit"], body.elementor-kit-4 .search button {
	height: 32px;
	border: 1px solid #fff;
	background: transparent;
	color: #fff;
	font-family: var(--sans);
	font-size: var(--fs-1);
	font-weight: 500;
	padding: 0 12px;
	border-radius: 0 6px 6px 0;
}
html[dir="rtl"] body.elementor-kit-4 .search button[type="submit"], html[dir="rtl"] body.elementor-kit-4 .search button {
	border-radius: 6px 0 0 6px;
}

/* ---------- Hover & Responsive ---------- */
@media (hover: hover) and (pointer: fine) {
	a:hover { color: var(--brand-h); text-decoration-thickness: 2px; }
	.util a:hover { text-decoration: underline; }
	.mark:hover .mark-name { text-decoration: underline; }
	.nav a:hover { border-bottom-color: var(--brand); color: var(--brand); }
	.btn:hover, .nias-btn--zoom:hover, .nias-btn--primary:hover { background: var(--brand-h); border-color: var(--brand-h); color: #fff !important; text-decoration: none; }
	.quick li a:hover { color: var(--brand); text-decoration:underline; }
	.dep a.row:hover h3 { text-decoration: underline; text-underline-offset: 4px; color: var(--brand); }
	.pub .title a:hover { text-decoration: underline; color: var(--brand); }
	.btn2:hover, .nias-btn--ghost:hover { background: var(--brand); color: #fff !important; text-decoration: none; }
	.ftr a:hover { text-decoration: underline; color: #fff; }
	.side-idx li a:hover span + span { text-decoration: underline; }
}

@media (min-width: 1800px) {
	.wrap, .nias-wrap, .e-con.nias-wrap, .e-con.sec { max-width: 1300px; }
	.dep { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 40px; }
	.dep li:nth-child(-n+3) { border-top: 1px solid var(--line); }
}

@media (max-width: 1100px) and (min-width: 768px) {
	.nav { gap: 14px; }
	.mark-name { display: none; }
}

@media (max-width: 767px) {
	:root {
		--fs-1: 15px;
		--fs-2: 18px;
		--fs-3: 20px;
		--fs-4: 24px;
		--fs-5: 30px;
	}
	.wrap, .nias-wrap, .e-con.nias-wrap { padding-inline: 16px; --padding-left: 16px; --padding-right: 16px; }
	.util { display: none; }
	.hdr .wrap { flex-wrap: wrap; min-height: 0; padding-block: 6px; gap: 4px 8px; }
	.mark { flex: 1 1 100%; min-height: 48px; padding-bottom: 4px; border-bottom: 1px solid var(--line); margin-inline-end: 0; }
	.mark-abbr { font-size: var(--fs-4); }
	.mark-name { font-size: var(--fs-1); }
	.nav { display: none; }
	.mlangs { display: flex; align-items: center; gap: 2px; margin-inline-end: auto; }
	.mlangs .sep { color: var(--muted); font-size: var(--fs-1); user-select: none; }
	.mlangs a, .mlangs .lang-off { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 0 6px; font-size: var(--fs-1); color: var(--muted); text-decoration: none; }
	.mlangs a[aria-current] { color: var(--brand); font-weight: 600; text-decoration: underline; text-underline-offset: 5px; }
	.mmenu { display: block; }
	.menu-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; min-width: 48px; padding: 0 14px; border: 1px solid var(--brand); border-radius: 6px; background: #fff; font-family: var(--sans); font-size: var(--fs-1); font-weight: 600; color: var(--brand); cursor: pointer; list-style: none; user-select: none; }
	.menu-btn::-webkit-details-marker { display: none; }
	.mmenu[open] .menu-btn { background: var(--brand); color: #fff; }
	.mnav { position: absolute; inset-inline: 0; top: 100%; background: var(--bg); border-bottom: 3px solid var(--brand); padding: 4px 16px 14px; z-index: 30; box-shadow: 0 12px 24px rgba(18, 48, 90, 0.12); }
	.mmenu[open] .mnav { animation: mnav-in 180ms var(--ease-out); }
	#mnav ul { padding: 2px 0 4px; }
	#mnav li a { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 6px 0; font-size: var(--fs-2); border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); }
	#mnav li a .n { color: var(--brand); font-weight: 600; min-width: 28px; font-variant-numeric: tabular-nums; }
	#mnav .msub a { font-size: var(--fs-1); color: var(--brand); font-weight: 500; }
	#mnav .mnav-langs { display: flex; gap: 8px; padding: 4px 0; border-bottom: 1px solid var(--line); }
	#mnav .mnav-langs a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; min-width: 48px; padding: 0 12px; font-size: var(--fs-1); color: var(--muted); text-decoration: none; border: 0; }
	#mnav .mnav-langs a[aria-current] { color: var(--brand); font-weight: 600; text-decoration: underline; text-underline-offset: 5px; }
	#mnav .search { margin-top: 8px; }
	#mnav .search input[type="search"], #mnav .search input { flex: 1; height: 48px; border-color: var(--line); font-size: var(--fs-2); }
	#mnav .search button[type="submit"], #mnav .search button, body.elementor-kit-4 #mnav .search button[type="submit"], body.elementor-kit-4 #mnav .search button { height: 48px; min-width: 48px; background: var(--brand); border-color: var(--brand); font-size: var(--fs-2); color: #fff; }
	.hero { display: block; padding-top: 24px; }
	.next { margin-top: 28px; }
	.proto-row { display: block; }
	.tile { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 10px; border: 0; padding: 0; margin-bottom: 8px; }
	.tile-m { margin: 0; }
	.quick { display: none; }
	.pl { grid-template-columns: 1fr; gap: 0; }
	.pl dd { margin-bottom: 8px; }
	.act { grid-column: 1 / -1; }
	.act .btn { width: 100%; min-height: 56px; }
	.hero-side { margin-top: 32px; }
	.sec, .e-con.sec { --display: block; display: block !important; --margin-top: 64px; margin-top: 64px !important; --padding-left: 16px; --padding-right: 16px; padding-inline: 16px !important; }
	.sec-h, .e-con.sec-h { --padding-right: 0px; padding: 0 !important; margin-bottom: 20px !important; }
	.ag li { grid-template-columns: minmax(0, 1fr); row-gap: 4px; }
	.ag .when { grid-column: 1; }
	.ag .when strong { display: inline; margin-inline-end: 8px; }
	.ag .when span { display: inline; margin-inline-end: 8px; }
	.dep-head { display: block; }
	.dep { grid-template-columns: 1fr; margin-top: 16px; }
	.dep li:nth-child(2) { border-top: 0; }
	.dep .row { min-height: 56px; }
	.pub li { grid-template-columns: 1fr; row-gap: 8px; }
	table.tbl, table.tbl tbody, table.tbl tr, table.tbl th, table.tbl td { display: block; width: auto; }
	table.tbl th { padding: 12px 0 0; border: 0; }
	table.tbl td { padding: 2px 0 12px; }
	.hist li { grid-template-columns: 1fr; row-gap: 2px; }
	.band { margin-top: 64px; padding: 28px 0 36px; }
	.band .grid { display: block; }
	.band .c1, .band .c2 { margin-top: 24px; }
	.join { grid-template-columns: 1fr; row-gap: 20px; }
	.ftr { margin-top: 72px; }
	.ftr .cols { grid-template-columns: 1fr 1fr; row-gap: 24px; }
	.ftr .top .mark-name { display: block; }
	div.page { display: block; padding-top: 20px; }
	.page-side { margin-top: 40px; }
	.nias-ev { grid-template-columns: minmax(0, 1fr); gap: 10px; padding-block: 18px; }
	.nias-ev__when { border-inline-end: 0; padding-inline-end: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; }
	.nias-ev__time, .nias-ev__tz { margin: 0; }
	.nias-ev__actions { grid-column: 1; flex-direction: column; }
	.nias-ev__actions .elementor-widget, .nias-ev__actions .nias-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.btn:active, .btn2:active, .menu-btn:active, .nias-btn:active { transform: none; }
}

/* ---------- Release 2 & 3: Catalog Filter, Join Form, Book Grid, Cite & Calendar ---------- */
.pub-filter {
	margin-top: 20px;
	background: var(--panel);
	border: 1px solid var(--line);
	border-top: 2px solid var(--brand);
	border-radius: 6px;
	padding: 20px;
}
.pub-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.pub-tab {
	min-height: 44px;
	padding: 6px 14px;
	border: 1px solid var(--line);
	border-radius: 6px;
	background: #fff;
	color: var(--ink);
	font-family: var(--sans);
	font-size: var(--fs-1);
	font-weight: 600;
	cursor: pointer;
}
.pub-tab.is-active, .pub-tab[aria-pressed="true"] {
	background: var(--brand);
	border-color: var(--brand);
	color: #fff;
}
.pub-controls {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-top: 16px;
}
.pub-status-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid var(--line);
}
.pub-count {
	font-size: var(--fs-1);
	font-weight: 600;
	color: var(--brand);
}
.pub-reset {
	min-height: 38px;
	padding: 4px 12px;
	border: 1px solid var(--brand);
	border-radius: 6px;
	background: #fff;
	color: var(--brand);
	font-family: var(--sans);
	font-size: var(--fs-1);
	font-weight: 600;
	cursor: pointer;
}

.join-form {
	margin-top: 20px;
	background: var(--panel);
	border: 1px solid var(--line);
	border-top: 2px solid var(--brand);
	border-radius: 6px;
	padding: 24px;
}
.f-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	margin-bottom: 18px;
}
.f-row {
	margin-bottom: 18px;
}
.f-grid .f-row {
	margin-bottom: 0;
}
.f-label {
	display: block;
	font-family: var(--sans);
	font-size: var(--fs-1);
	font-weight: 600;
	color: var(--ink);
	margin-bottom: 6px;
}
.f-label .req {
	color: #b02020;
}
.f-input, .f-select, .f-textarea {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid #9aa8b8;
	border-radius: 6px;
	background: #fff;
	color: var(--ink);
	font-family: var(--sans);
	font-size: var(--fs-2);
	line-height: 1.4;
}
.f-textarea {
	min-height: 140px;
	resize: vertical;
}
.f-check {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-top: 12px;
	font-size: var(--fs-1);
	line-height: 1.5;
}
.f-check input[type="checkbox"] {
	width: 22px;
	height: 22px;
	margin-top: 2px;
	flex-shrink: 0;
	accent-color: var(--brand);
}
.f-status {
	margin-top: 16px;
	padding: 14px 18px;
	border-radius: 6px;
	font-size: var(--fs-2);
	font-weight: 600;
	border: 1px solid var(--brand);
	background: #fff;
	color: var(--brand);
}
.f-status--ok {
	border-color: #1b6e32;
	background: #eef8f0;
	color: #145225;
}
.f-status--err {
	border-color: #a82020;
	background: #fdf0f0;
	color: #8a1818;
}

.book-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 16px;
	margin-top: 16px;
}
.book-card {
	margin: 0;
	background: var(--panel);
	border: 1px solid var(--line);
	border-radius: 6px;
	padding: 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}
.book-card img {
	display: block;
	max-width: 100%;
	height: 190px;
	object-fit: contain;
	border-radius: 4px;
}
.book-card .note {
	margin-top: 8px;
	font-size: var(--fs-1);
}

.cite-btn {
	display: inline-flex;
	align-items: center;
	min-height: 30px;
	margin-inline-start: 8px;
	padding: 2px 10px;
	border: 1px solid var(--brand);
	border-radius: 4px;
	background: #fff;
	color: var(--brand);
	font-family: var(--sans);
	font-size: var(--fs-1);
	font-weight: 600;
	cursor: pointer;
	vertical-align: middle;
}
.cite-btn:hover, .cite-btn:focus-visible {
	background: var(--brand);
	color: #fff;
}
.cite-btn.is-copied {
	border-color: #1b6e32;
	background: #eef8f0;
	color: #145225;
}

.cal-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px dashed var(--line);
}
.cal-link {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 6px 14px;
	border: 1px solid var(--brand);
	border-radius: 6px;
	background: #fff;
	color: var(--brand);
	font-family: var(--sans);
	font-size: var(--fs-1);
	font-weight: 600;
	text-decoration: none;
}
.cal-link:hover, .cal-link:focus-visible {
	background: var(--brand);
	color: #fff;
	text-decoration: none;
}

.forecast-box {
	margin-top: 20px;
	background: var(--panel);
	border: 1px solid var(--line);
	border-inline-start: 4px solid var(--brand);
	border-radius: 6px;
	padding: 18px 20px;
}

.nias-rev {
	padding: 28px 0 36px;
	background: #f5f8fc;
	border-top: 1px solid var(--line);
}
.nias-rev-box {
	background: #fff;
	border: 1px solid var(--line);
	border-inline-start: 4px solid var(--brand);
	border-radius: 8px;
	padding: 22px 24px;
	box-shadow: 0 2px 8px rgba(15, 38, 74, 0.04);
}
.nias-rev-head h2 {
	margin: 4px 0 8px;
	font-size: var(--fs-3);
}
.nias-rev-controls {
	display: grid;
	grid-template-columns: minmax(240px, 1fr) auto;
	gap: 18px;
	align-items: end;
	margin-top: 16px;
}
.nias-rev-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.nias-rev-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 10px 18px;
	border-radius: 6px;
	font-family: var(--sans);
	font-size: var(--fs-2);
	font-weight: 700;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.nias-rev-btn--ok {
	background: #1b6e32;
	border: 1px solid #1b6e32;
	color: #fff;
}
.nias-rev-btn--ok:hover, .nias-rev-btn--ok:focus-visible {
	background: #135224;
	border-color: #135224;
	color: #fff;
}
.nias-rev-btn--edit {
	background: #fff;
	border: 2px solid var(--brand);
	color: var(--brand);
}
.nias-rev-btn--edit:hover, .nias-rev-btn--edit:focus-visible {
	background: var(--brand);
	color: #fff;
}
.nias-rev-edit {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px dashed var(--line);
}
.nias-rev-status {
	margin-top: 16px;
	padding: 12px 16px;
	border-radius: 6px;
	font-family: var(--sans);
	font-size: var(--fs-2);
	font-weight: 600;
	border: 1px solid var(--brand);
	background: #f4f8fd;
	color: var(--brand);
}
.nias-rev-status--ok {
	border-color: #1b6e32;
	background: #eef8f0;
	color: #145225;
}
.nias-rev-status--err {
	border-color: #a82020;
	background: #fdf0f0;
	color: #8a1818;
}
.nias-rev-unlock-link {
	background: none;
	border: none;
	padding: 0;
	margin: 0;
	color: inherit;
	opacity: 0.72;
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}
.nias-rev-unlock-link:hover, .nias-rev-unlock-link:focus-visible {
	opacity: 1;
}
.nias-rev-close-btn {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 4px;
	padding: 4px 10px;
	font-family: var(--sans);
	font-size: var(--fs-1);
	color: var(--muted);
	cursor: pointer;
}
.nias-rev-close-btn:hover, .nias-rev-close-btn:focus-visible {
	border-color: var(--brand);
	color: var(--brand);
}

@media (max-width: 767px) {
	.pub-controls, .f-grid, .nias-rev-controls {
		grid-template-columns: 1fr;
	}
	.nias-rev-btns, .nias-rev-btn {
		width: 100%;
	}
	.join-form, .pub-filter, .nias-rev-box {
		padding: 16px;
	}
	.ftr .cols {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}
	.ftr .cols > div, .ftr li a {
		min-width: 0;
		max-width: 100%;
		overflow-wrap: break-word;
	}
}
