@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

/* Bookstore theme — Sah Publisher (original styles).
   Design tokens follow the audited reference design system:
   bright green primary, pale mint surfaces, Inter, pill buttons. */

body, .sah-landing { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }

.sah-landing {
	--sah-emerald: #008080;
	--sah-emerald-dark: #006666;
	--sah-amber: #fdce3f;
	--sah-ink: #0b2b2b;
	--sah-muted: #487a7a;
	--sah-cream: #e1f2f2;
	--sah-line: #c2e2e2;
	color: var(--sah-ink);
}

/* ---------- Hero slider ---------- */
.sah-hero {
	position: relative;
	overflow: hidden;
	border-radius: 16px;
	border: 1px solid var(--sah-line);
	margin: 0 0 28px;
	background: #e0f2f2;
}
.sah-slides {
	display: flex;
	transition: transform 0.65s ease;
}
.sah-slide {
	flex: 0 0 100%;
	min-height: 340px;
	display: flex;
	align-items: center;
	padding: 48px 56px;
	box-sizing: border-box;
	color: var(--sah-ink);
	position: relative;
}
.sah-slide-inner { position: relative; z-index: 1; max-width: 600px; }
.sah-slide::after {
	content: "";
	position: absolute;
	top: 0; right: 0; bottom: 0;
	width: 57%;
	background-repeat: no-repeat;
	background-position: right center;
	background-size: cover;
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 24%);
	mask-image: linear-gradient(to right, transparent 0, #000 24%);
	pointer-events: none;
}
.sah-slide-a::after { background-image: url('../images/hero-author.webp'); }
.sah-slide-b::after { background-image: url('../images/hero-shelf.webp'); }
.sah-slide-c::after { background-image: url('../images/hero-openbook.webp'); }
@media (max-width: 900px) {
	.sah-slide::after { width: 100%; opacity: 0.15; }
}
.sah-slide-a { background: radial-gradient(720px 340px at 88% -10%, #bde9e9 0%, transparent 55%), linear-gradient(120deg, #e0f2f2 0%, #ecf7f7 60%, #f9fbfb 100%); }
.sah-slide-b { background: radial-gradient(720px 340px at 88% -10%, #bde9e9 0%, transparent 55%), linear-gradient(120deg, #e1f2f2 0%, #ecf7f7 60%, #f9fbfb 100%); }
.sah-slide-c { background: radial-gradient(720px 340px at 88% -10%, #fdeec0 0%, transparent 55%), linear-gradient(120deg, #e0f2f2 0%, #ecf7f7 60%, #f9fbfb 100%); }
.sah-kicker {
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 12px;
	font-weight: 700;
	color: var(--sah-emerald-dark);
	margin: 0 0 10px;
}
.sah-kicker-dark { text-align: center; }
.sah-slide h1 {
	font-size: 36px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin: 0 0 14px;
	color: var(--sah-ink);
}
.sah-lead { font-size: 16px; line-height: 1.65; margin: 0 0 22px; color: var(--sah-muted); }
.sah-cta-row { display: flex; flex-wrap: wrap; gap: 12px; }
.sah-btn {
	display: inline-block;
	padding: 12px 22px;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	font-size: 15px;
}
.sah-btn-gold { background: var(--sah-emerald); color: #fff; box-shadow: 0 10px 30px -12px rgba(0,128,128,0.55); }
.sah-btn-gold:hover { background: var(--sah-emerald-dark); color: #fff; }
.sah-btn-ghost { border: 2px solid var(--sah-line); color: var(--sah-ink); background: #fff; }
.sah-btn-ghost:hover { border-color: var(--sah-emerald); color: var(--sah-emerald-dark); background: #fff; }
.sah-dots {
	position: absolute;
	left: 56px;
	bottom: 20px;
	display: flex;
	gap: 8px;
}
.sah-dot {
	width: 11px; height: 11px;
	border-radius: 50%;
	border: 2px solid rgba(0,102,102,0.5);
	background: transparent;
	cursor: pointer;
	padding: 0;
}
.sah-dot.is-active { background: var(--sah-emerald); border-color: var(--sah-emerald); }

/* ---------- Stats ---------- */
.sah-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
	margin: 0 0 8px;
}
.sah-stat {
	background: #fff;
	border: 1px solid var(--sah-line);
	border-radius: 16px;
	text-align: center;
	padding: 18px 8px;
	box-shadow: 0 8px 22px -16px rgba(6, 47, 47, 0.25);
}
.sah-stat strong { display: block; font-size: 26px; font-weight: 800; color: var(--sah-emerald-dark); }
.sah-stat span { font-size: 13px; color: var(--sah-muted); }

/* ---------- Sections ---------- */
.sah-section { padding: 34px 0 8px; }
.sah-section-alt {
	background: var(--sah-cream);
	border: 1px solid var(--sah-line);
	border-radius: 16px;
	padding: 34px 28px 20px;
	margin-top: 34px;
}
.sah-h2 { text-align: center; font-size: 26px; margin: 0 0 8px; color: var(--sah-ink); }
.sah-sub { text-align: center; color: var(--sah-muted); max-width: 680px; margin: 0 auto 24px; line-height: 1.6; }

/* ---------- Book grid ---------- */
.sah-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: 22px;
}
.sah-card {
	border: 1px solid var(--sah-line);
	border-radius: 16px;
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
	box-shadow: 0 1px 3px rgba(11,43,43,0.06), 0 8px 24px -12px rgba(11,43,43,0.12);
	transition: box-shadow 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
}
.sah-card:hover { box-shadow: 0 10px 30px -12px rgba(0,128,128,0.45); border-color: var(--sah-emerald); transform: translateY(-3px); }
.sah-card-cover { display: block; background: var(--sah-cream); }
.sah-card-cover img {
	width: 100%;
	aspect-ratio: 1408 / 2000;
	object-fit: cover;
	display: block;
}
.sah-cover-ph {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1408 / 2000;
	padding: 22px;
	box-sizing: border-box;
	background: linear-gradient(150deg, var(--sah-emerald-dark) 0%, #062f2f 100%);
	color: #fff;
	font-weight: 700;
	font-size: 17px;
	line-height: 1.45;
	text-align: center;
}
.sah-card-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 7px; flex: 1; }
.sah-card-body h3 { font-size: 16.5px; line-height: 1.4; margin: 0; }
.sah-card-body h3 a { color: var(--sah-ink); text-decoration: none; }
.sah-card-body h3 a:hover { color: var(--sah-emerald); }
.sah-authors { margin: 0; color: var(--sah-muted); font-size: 13.5px; }
.sah-doi { margin: 0; color: var(--sah-muted); font-size: 12.5px; word-break: break-all; }
.sah-btn-sm {
	margin-top: auto;
	align-self: flex-start;
	display: inline-block;
	padding: 9px 18px;
	border-radius: 999px;
	background: var(--sah-emerald);
	color: #fff;
	font-size: 13.5px;
	font-weight: 600;
	text-decoration: none;
	box-shadow: 0 10px 30px -12px rgba(0,128,128,0.55);
}
.sah-btn-sm:hover { background: var(--sah-emerald-dark); color: #fff; }

/* ---------- Features / steps ---------- */
.sah-feats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin-top: 22px;
}
.sah-feat {
	background: #fff;
	border: 1px solid var(--sah-line);
	border-radius: 16px;
	padding: 20px;
}
.sah-feat h3 { margin: 0 0 8px; font-size: 16.5px; color: var(--sah-ink); }
.sah-feat p { margin: 0 0 12px; color: var(--sah-muted); line-height: 1.6; font-size: 14.5px; }
.sah-feat p:last-child { margin-bottom: 0; }
.sah-quote blockquote { margin: 0 0 12px; font-style: italic; line-height: 1.65; color: var(--sah-ink); }
.sah-quote figcaption { color: var(--sah-muted); font-size: 13.5px; }

.sah-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin-top: 22px;
}
.sah-step {
	background: #fff;
	border: 1px solid var(--sah-line);
	border-radius: 16px;
	padding: 22px 20px;
	text-align: left;
}
.sah-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px; height: 38px;
	border-radius: 50%;
	background: var(--sah-emerald);
	color: #fff;
	font-weight: 800;
	font-size: 17px;
	margin-bottom: 12px;
	box-shadow: 0 10px 30px -12px rgba(0,128,128,0.55);
}
.sah-step h3 { margin: 0 0 8px; font-size: 16.5px; }
.sah-step p { margin: 0; color: var(--sah-muted); line-height: 1.6; font-size: 14.5px; }

/* ---------- CTA band ---------- */
.sah-cta-band {
	margin-top: 38px;
	border-radius: 16px;
	border: 1px solid var(--sah-line);
	padding: 40px 32px;
	text-align: center;
	color: var(--sah-ink);
	background: linear-gradient(130deg, #e0f2f2 0%, #bde9e9 100%);
}
.sah-cta-band h2 { color: var(--sah-ink); margin: 0 0 10px; font-size: 25px; }
.sah-cta-band p { max-width: 620px; margin: 0 auto 22px; line-height: 1.65; color: var(--sah-muted); }
.sah-cta-band .sah-cta-row { justify-content: center; }

/* ---------- Institutions ---------- */
.sah-logos { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 6px; }
.sah-logo-ph {
	border: 1.5px dashed #c9bfa9;
	border-radius: 8px;
	padding: 20px 30px;
	color: var(--sah-muted);
	font-size: 13.5px;
	background: #fff;
}

/* ---------- FAQ ---------- */
.sah-faq { max-width: 760px; margin: 20px auto 0; }
.sah-faq details {
	border: 1px solid var(--sah-line);
	border-radius: 8px;
	padding: 14px 18px;
	margin-bottom: 10px;
	background: #fff;
}
.sah-faq summary { font-weight: 700; cursor: pointer; color: var(--sah-ink); }
.sah-faq p { color: var(--sah-muted); line-height: 1.65; margin: 10px 0 2px; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
	.sah-grid, .sah-feats, .sah-steps { grid-template-columns: repeat(2, 1fr); }
	.sah-stats { grid-template-columns: repeat(2, 1fr); }
	.sah-slide { padding: 38px 28px; min-height: 300px; }
	.sah-slide h1 { font-size: 27px; }
	.sah-dots { left: 28px; }
}
@media (max-width: 560px) {
	.sah-grid, .sah-feats, .sah-steps { grid-template-columns: 1fr; }
}

/* =====================================================================
   SITE CHROME — header, navigation, sidebar, footer & inner pages.
   Scoped to this theme (publisher context only). Written to harmonise
   every OJS page of the publisher context with the bookstore landing.
   ===================================================================== */
:root {
	--sahx-emerald: #008080;
	--sahx-emerald-dark: #006666;
	--sahx-amber: #fdce3f;
	--sahx-ink: #0b2b2b;
	--sahx-muted: #487a7a;
	--sahx-cream: #e0f2f2;
	--sahx-line: #c2e2e2;
}

/* ---------- Header (white bar like the reference) ---------- */
.pkp_structure_head, .pkp_site_header {
	background: #fff !important;
	border-top: none;
	box-shadow: 0 1px 0 var(--sahx-line);
}
.pkp_site_name .pkp_site_name_wrapper, .pkp_site_name_wrapper { padding-top: 14px; padding-bottom: 6px; }
.pkp_site_name a, .pkp_site_name .is_text {
	color: var(--sahx-ink) !important;
	font-weight: 800;
	letter-spacing: -0.01em;
	text-decoration: none;
}
.pkp_site_name a:hover { color: var(--sahx-emerald-dark) !important; }
.pkp_site_name img { max-height: 64px; width: auto; }

/* Primary navigation — white row, dark links, green hover */
.pkp_navigation_primary_row { background: #fff !important; border-top: 1px solid var(--sahx-line); }
.pkp_navigation_primary > li > a {
	color: var(--sahx-ink) !important;
	font-weight: 600;
	font-size: 15px;
	padding: 12px 14px;
	border-bottom: 3px solid transparent;
}
.pkp_navigation_primary > li > a:hover,
.pkp_navigation_primary > li > a:focus {
	color: var(--sahx-emerald-dark) !important;
	border-bottom-color: var(--sahx-emerald);
	background: transparent;
}
.pkp_navigation_primary > li > ul {
	background: #fff;
	border: 1px solid var(--sahx-line);
	border-radius: 12px;
	box-shadow: 0 18px 38px -18px rgba(6, 47, 47, 0.35);
	padding: 8px;
}
.pkp_navigation_primary > li > ul a {
	color: var(--sahx-ink) !important;
	border-radius: 6px;
	font-size: 14.5px;
}
.pkp_navigation_primary > li > ul a:hover { background: var(--sahx-cream); color: var(--sahx-emerald-dark) !important; }

/* User navigation + search */
.pkp_navigation_user > li > a, .pkp_navigation_user li a { color: var(--sahx-muted) !important; font-size: 13.5px; font-weight: 600; }
.pkp_navigation_user > li > a:hover, .pkp_navigation_user li a:hover { color: var(--sahx-emerald-dark) !important; }
.pkp_search button, .pkp_search .search_controls a { color: var(--sahx-emerald-dark) !important; }
.pkp_site_nav_toggle { color: var(--sahx-ink); }

/* ---------- Page titles & generic content ---------- */
.page h1, .obj_article_details .page_title {
	color: var(--sahx-ink);
	letter-spacing: -0.01em;
}
.pkp_structure_main .page a, .pkp_structure_main .obj_article_details a, .pkp_structure_main .obj_issue_toc a { color: var(--sahx-emerald-dark); }
.pkp_structure_main .page a:hover, .pkp_structure_main .obj_article_details a:hover { color: var(--sahx-emerald); }

/* ---------- Sidebar blocks ---------- */
.pkp_structure_sidebar .pkp_block {
	background: #fff;
	border: 1px solid var(--sahx-line);
	border-radius: 16px;
	padding: 18px 18px 16px;
	margin: 0 0 18px;
	box-shadow: 0 8px 22px -16px rgba(6, 47, 47, 0.25);
	overflow: hidden;
}
.pkp_structure_sidebar .pkp_block .title {
	display: block;
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--sahx-emerald-dark);
	border-bottom: 2px solid var(--sahx-amber);
	padding-bottom: 8px;
	margin: 0 0 12px;
}
/* Keep custom-block contents inside their cards */
.pkp_structure_sidebar .pkp_block .content * { max-width: 100%; box-sizing: border-box; }
.pkp_structure_sidebar .pkp_block .content table { width: 100%; }
.pkp_structure_sidebar .pkp_block .content img { height: auto; }
/* Custom block headings (user HTML bars) → reference-style mint chips */
.pkp_structure_sidebar .pkp_block .content h2,
.pkp_structure_sidebar .pkp_block .content h3,
.pkp_structure_sidebar .pkp_block .content h4 {
	background: var(--sahx-cream) !important;
	color: var(--sahx-emerald-dark) !important;
	font-size: 13px !important;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	border-radius: 8px;
	padding: 8px 12px !important;
	margin: 0 0 12px !important;
	text-align: center;
}
/* Nested custom blocks: no double card chrome */
.pkp_structure_sidebar .pkp_block .content .pkp_block {
	border: none; box-shadow: none; background: transparent;
	padding: 0; margin: 0; border-radius: 0; overflow: visible;
}
/* Table-bar headings inside custom blocks (inline-styled td/span) */
.pkp_structure_sidebar .pkp_block .content table { width: 100% !important; float: none; }
.pkp_structure_sidebar .pkp_block .content table tr:first-child td {
	background: var(--sahx-cream) !important;
	border-bottom: none !important;
	border-radius: 8px;
}
.pkp_structure_sidebar .pkp_block .content table tr:first-child td span,
.pkp_structure_sidebar .pkp_block .content table tr:first-child td strong {
	color: var(--sahx-emerald-dark) !important;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 13px;
}
.pkp_structure_sidebar .pkp_block .content { font-size: 14px; line-height: 1.6; color: var(--sahx-ink); }
.pkp_structure_sidebar .pkp_block .content a { color: var(--sahx-emerald-dark); text-decoration: none; }
.pkp_structure_sidebar .pkp_block .content a:hover { color: var(--sahx-emerald); text-decoration: underline; }
.pkp_structure_sidebar .pkp_block ul { list-style: none; margin: 0; padding: 0; }
.pkp_structure_sidebar .pkp_block ul li { padding: 4px 0; }
.pkp_structure_sidebar .pkp_block img { max-width: 100%; height: auto; border-radius: 8px; }
.pkp_structure_sidebar .pkp_block input[type="text"],
.pkp_structure_sidebar .pkp_block select { max-width: 100%; }
/* "Make a submission" block → primary button look */
.block_make_submission a, .pkp_block .block_make_submission a {
	display: inline-block;
	background: var(--sahx-emerald);
	color: #fff !important;
	font-weight: 700;
	padding: 10px 18px;
	border-radius: 999px;
	text-decoration: none !important;
}
.block_make_submission a:hover { background: var(--sahx-emerald-dark); }
.pkp_structure_sidebar .pkp_block a:has(> img) { display: block; text-align: center; }

/* ---------- Article (book) detail pages ---------- */
.obj_article_details .item .label { color: var(--sahx-emerald-dark); }
.obj_article_details .cover_image img {
	width: 100%;
	border-radius: 10px;
	box-shadow: 0 18px 38px -18px rgba(8, 63, 48, 0.4);
}
.obj_galley_link {
	display: inline-block;
	background: var(--sahx-emerald);
	color: #fff !important;
	border: none;
	border-radius: 999px;
	padding: 9px 20px;
	font-weight: 700;
	text-decoration: none !important;
}
.obj_galley_link:hover { background: var(--sahx-emerald-dark); }
.obj_article_details .item.doi .label, .obj_article_details .item.keywords .label { color: var(--sahx-emerald-dark); }

/* ---------- Issue / archive pages ---------- */
.obj_issue_toc .cover img, .obj_issue_summary .cover img {
	border-radius: 10px;
	box-shadow: 0 14px 30px -16px rgba(8, 63, 48, 0.35);
}
.obj_issue_summary .title, .obj_issue_toc .title a { color: var(--sahx-ink); }
.obj_issue_summary .title a:hover { color: var(--sahx-emerald); }

/* ---------- Footer (pale mint like the reference) ---------- */
.pkp_structure_footer_wrapper {
	background: var(--sahx-cream);
	border-top: 1px solid var(--sahx-line);
	margin-top: 48px;
}
.pkp_structure_footer { color: var(--sahx-muted); font-size: 14px; line-height: 1.65; }
.pkp_structure_footer a { color: var(--sahx-emerald-dark); }
.pkp_structure_footer a:hover { color: var(--sahx-emerald); }
.pkp_brand_footer { display: none !important; }

/* ---------- Homepage layout: slider full width, sidebar below ---------- */
body.pkp_page_index .pkp_structure_main {
	float: none !important;
	width: auto !important;
}
/* Remove the default theme's vertical divider lines (drawn for the old
   two-column layout at the main/sidebar boundary) */
body.pkp_page_index .pkp_structure_main:before,
body.pkp_page_index .pkp_structure_main:after {
	display: none !important;
}
body.pkp_page_index .pkp_structure_sidebar {
	float: none !important;
	width: auto !important;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	align-items: start;
	margin-top: 26px;
}
body.pkp_page_index .pkp_structure_sidebar .pkp_block { margin-bottom: 0; }
@media (max-width: 900px) {
	body.pkp_page_index .pkp_structure_sidebar { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	body.pkp_page_index .pkp_structure_sidebar { grid-template-columns: 1fr; }
}

/* ---------- Landing contrast protection (must stay last) ---------- */
.sah-landing a.sah-btn, .sah-landing a.sah-btn-gold { color: #fff; }
.sah-landing a.sah-btn-gold:hover { color: #fff; }
.sah-landing a.sah-btn-ghost { color: var(--sah-ink); }
.sah-landing a.sah-btn-ghost:hover { color: var(--sah-emerald-dark); }
.sah-landing a.sah-btn-sm { color: #fff; }
.sah-landing a.sah-btn-sm:hover { color: #fff; }
.sah-landing .sah-slide h1 { color: var(--sah-ink); }
.sah-landing .sah-cta-band h2 { color: var(--sah-ink); }
.sah-landing .sah-card-body h3 a { color: var(--sah-ink); }
.sah-landing .sah-card-body h3 a:hover { color: var(--sah-emerald-dark); }

/* ---------- Header logo + CTA button ---------- */
.pkp_site_name .is_img img { max-height: 52px; width: auto; }
.sah-header-cta-wrap { display: flex; align-items: center; }
.sah-header-cta {
	display: inline-flex; align-items: center;
	background: var(--gp-primary); color: #ffffff !important;
	font-weight: 700; font-size: 14px; line-height: 1;
	padding: 11px 20px; border-radius: 999px; text-decoration: none !important;
	box-shadow: 0 10px 30px -12px rgba(0,128,128,0.55); white-space: nowrap;
}
.sah-header-cta:hover { background: var(--gp-deep); color: #ffffff !important; }

/* ---------- Feature icons ---------- */
.sah-feat-icon {
	width: 54px; height: 54px; object-fit: contain;
	border-radius: 14px; margin-bottom: 12px; display: block;
}

/* ---------- Media coverage strip ---------- */
.sah-media { text-align: center; }
.sah-media-row {
	display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 8px;
}
.sah-media-chip {
	display: inline-flex; align-items: center; padding: 14px 26px;
	background: #ffffff; border: 1px solid var(--gp-border); border-radius: 14px;
	font-weight: 800; font-size: 16px; color: var(--gp-muted); letter-spacing: 0.02em;
}
.sah-media-note { margin-top: 14px; color: var(--gp-muted); font-size: 13.5px; }

/* ---------- Pre-footer CTA band ---------- */
.sah-prefooter { background: var(--gp-secondary); border-top: 1px solid var(--gp-border); }
.sah-prefooter-inner {
	max-width: 1160px; margin: 0 auto; padding: 40px 20px;
	display: flex; align-items: center; gap: 28px; flex-wrap: wrap;
}
.sah-prefooter-text { flex: 1 1 420px; }
.sah-prefooter-text h2 {
	margin: 0 0 8px; font-size: 26px; font-weight: 800; color: var(--gp-ink); letter-spacing: -0.01em;
}
.sah-prefooter-text p { margin: 0; color: var(--gp-muted); font-size: 15.5px; line-height: 1.65; }
.sah-prefooter-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.sah-btn-deep { background: var(--gp-deep); color: #ffffff !important; }
.sah-btn-deep:hover { background: #005959; color: #ffffff !important; }
.sah-btn-outline {
	background: #ffffff; color: var(--gp-deep) !important;
	border: 1.5px solid var(--gp-primary);
}
.sah-btn-outline:hover { background: var(--gp-accent); color: var(--gp-deep) !important; }

/* ---------- Floating WhatsApp button ---------- */
.sah-wa-float {
	position: fixed; right: 20px; bottom: 20px; z-index: 1000;
	display: inline-flex; align-items: center; gap: 9px;
	background: #00a884; color: #ffffff !important; text-decoration: none !important;
	font-weight: 700; font-size: 14.5px; line-height: 1;
	padding: 13px 20px 13px 15px; border-radius: 999px;
	box-shadow: 0 14px 30px -10px rgba(0,140,118,0.55);
}
.sah-wa-float:hover { background: #007a7a; color: #ffffff !important; }
@media (max-width: 560px) {
	.sah-wa-float { padding: 13px; }
	.sah-wa-float span { display: none; }
	.sah-prefooter-inner { padding: 30px 16px; }
	.sah-prefooter-text h2 { font-size: 22px; }
}

/* ---------- Catalogue covers slightly smaller ---------- */
.sah-books { max-width: 1000px; margin-left: auto; margin-right: auto; }

/* ---------- Design tokens (single source) ---------- */
:root {
	--gp-primary: #008080;
	--gp-deep: #006666;
	--gp-gold: #fdce3f;
	--gp-ink: #0b2b2b;
	--gp-muted: #487a7a;
	--gp-bg: #f9fbfb;
	--gp-secondary: #e0f2f2;
	--gp-accent: #bde9e9;
	--gp-border: #c2e2e2;
}


/* ---------- Catalogue covers inset (slightly smaller) ---------- */
.sah-book-figure {
	padding: 16px 16px 0;
	background: var(--gp-secondary);
}
.sah-book-figure img {
	border-radius: 10px;
	box-shadow: 0 10px 22px -12px rgba(6,47,47,0.35);
}
.sah-book-textcover { margin: 16px 16px 0; border-radius: 10px; }

/* ---------- Media chips: unmistakably chips ---------- */
.sah-media-chip {
	background: var(--gp-secondary);
	border: 1px solid var(--gp-border);
	box-shadow: 0 6px 16px -10px rgba(6,47,47,0.25);
	color: var(--gp-deep);
}

/* ---------- Pre-footer band: colour + illustration ---------- */
.sah-prefooter { background: linear-gradient(120deg, #e0f2f2 0%, #bde9e9 130%); }
.sah-prefooter-img {
	width: 210px; height: auto; flex: 0 0 auto;
	border-radius: 14px; mix-blend-mode: multiply;
}
@media (max-width: 700px) { .sah-prefooter-img { display: none; } }

/* ---------- Price tables (custom pages) ---------- */
.sah-price-table {
	width: 100%; border-collapse: collapse; margin: 10px 0 22px;
	background: #ffffff; border: 1px solid var(--gp-border); border-radius: 14px; overflow: hidden;
	font-size: 15.5px;
}
.sah-price-table th {
	background: var(--gp-secondary); color: var(--gp-deep);
	text-align: left; padding: 12px 16px; font-weight: 800;
}
.sah-price-table td { padding: 12px 16px; border-top: 1px solid var(--gp-border); color: var(--gp-ink); }
.sah-price-table td:last-child, .sah-price-table th:last-child { text-align: right; font-weight: 700; white-space: nowrap; }

/* ---------- Footer brand + sister links ---------- */
.sah-footer-brand { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.sah-footer-brand img {
	width: 46px; height: 46px; border-radius: 12px;
	background: #ffffff; padding: 4px;
	box-shadow: 0 6px 14px -8px rgba(6,47,47,0.3);
}
.sah-footer-brand-text { display: flex; flex-direction: column; line-height: 1.25; }
.sah-footer-brand-text strong { font-size: 17px; font-weight: 800; color: var(--gp-ink); }
.sah-footer-brand-text span { font-size: 12.5px; color: var(--gp-muted); }
.sah-footer-links {
	display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px;
	padding: 12px 0 4px; margin-bottom: 12px;
	border-top: 1px solid var(--gp-border);
}
.sah-footer-links-label { font-size: 13px; font-weight: 700; color: var(--gp-muted); }
.sah-footer-links a { font-size: 13.5px; font-weight: 700; color: var(--gp-deep) !important; text-decoration: none; }
.sah-footer-links a:hover { color: var(--gp-primary) !important; text-decoration: underline; }

/* ---------- Institution badges (author affiliations) ---------- */
.sah-inst {
	display: inline-flex; align-items: center; gap: 10px;
	background: #ffffff; border: 1px solid var(--gp-border); border-radius: 14px;
	padding: 9px 16px 9px 9px; font-weight: 700; font-size: 13.5px; color: var(--gp-ink);
	box-shadow: 0 6px 16px -12px rgba(6,47,47,0.25);
}
.sah-inst-mono {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; padding: 0 7px;
	background: var(--gp-secondary); color: var(--gp-deep);
	border-radius: 10px; font-weight: 800; font-size: 12.5px; letter-spacing: 0.03em;
}

/* ---------- Corrections: real catalogue classes ---------- */
.sah-grid { max-width: 1000px; margin-left: auto; margin-right: auto; }
.sah-card-cover { padding: 16px 16px 0; }
.sah-card-cover img {
	border-radius: 10px;
	box-shadow: 0 10px 22px -12px rgba(6,47,47,0.35);
}

/* CTA pill at the right end of the (default) menu bar */
.sah-header-cta-wrap { float: right; margin: 5px 0 0 16px; }
@media (max-width: 991px) {
	.sah-header-cta-wrap { float: none; margin: 10px 0 4px; }
}

/* ---------- Footer tidy-up: two aligned columns ---------- */
.pkp_structure_footer {
	display: grid;
	grid-template-columns: minmax(280px, 430px) 1fr;
	grid-template-areas: "brand content" "links content";
	column-gap: 56px;
	align-items: start;
}
.sah-footer-brand { grid-area: brand; }
.sah-footer-links { grid-area: links; border-top: none; padding-top: 0; margin-bottom: 0; }
.pkp_footer_content { grid-area: content; margin: 0 !important; float: none !important; max-width: 640px; }
.pkp_footer_content > p:first-child { display: none; }
.pkp_footer_content p { margin: 0 0 6px; line-height: 1.65; }
@media (max-width: 760px) {
	.pkp_structure_footer {
		grid-template-columns: 1fr;
		grid-template-areas: "brand" "links" "content";
		row-gap: 12px;
	}
}

/* ---------- Search link visible on the white menu bar ---------- */
.pkp_navigation_search_wrapper .pkp_search {
	color: var(--gp-deep) !important;
	font-weight: 600;
	font-size: 14.5px;
}
.pkp_navigation_search_wrapper .pkp_search .fa { color: var(--gp-deep); }

/* ============================================================
   GP alignment — consolidated overrides (loaded last, wins).
   One-row navbar, full-bleed hero, four-column footer.
   ============================================================ */

/* ---------- Header: one-row navbar (desktop) ---------- */
@media (min-width: 992px) {
	.pkp_structure_head { border-bottom: 1px solid var(--gp-border); box-shadow: 0 1px 0 rgba(11,43,43,0.03); }
	.pkp_head_wrapper {
		display: flex !important; align-items: center; gap: 30px;
		max-width: 1280px; margin: 0 auto; padding: 0 24px !important;
		min-height: 76px; position: relative;
	}
	.pkp_site_name_wrapper {
		position: static !important; flex: 0 0 auto;
		display: flex; align-items: center;
		padding: 0 !important; margin: 0 !important;
	}
	.pkp_site_name { margin: 0 !important; padding: 0 !important; }
	.pkp_site_name .is_img img, .pkp_site_name img { max-height: 46px !important; width: auto; display: block; }
	.pkp_site_nav_toggle { display: none !important; }
	.pkp_site_nav_menu {
		position: static !important; flex: 1 1 auto;
		display: flex !important; align-items: center; gap: 22px;
		background: transparent !important; box-shadow: none !important;
		width: auto !important; height: auto !important; padding: 0 !important; margin: 0 !important;
	}
	.pkp_navigation_primary_row {
		position: static !important; flex: 1 1 auto;
		background: transparent !important; border-top: none !important;
		padding: 0 !important; margin: 0 !important;
	}
	.pkp_navigation_primary_wrapper {
		display: flex !important; align-items: center; gap: 16px;
		width: 100%; padding: 0 !important; margin: 0 !important;
	}
	.pkp_navigation_primary {
		float: none !important; display: flex !important; align-items: center;
		gap: 4px; margin: 0 auto !important; padding: 0 !important;
	}
	.pkp_navigation_primary > li { float: none !important; margin: 0 !important; }
	.pkp_navigation_primary > li > a {
		display: inline-flex; align-items: center; padding: 10px 13px !important;
		line-height: 1.25 !important; white-space: nowrap;
	}
	.pkp_navigation_search_wrapper { float: none !important; margin: 0 !important; flex: 0 0 auto; }
	.pkp_navigation_search_wrapper .pkp_search {
		color: var(--gp-deep) !important; display: inline-flex; align-items: center; gap: 6px;
		font-weight: 600; font-size: 14.5px; white-space: nowrap;
	}
	.sah-header-cta-wrap { float: none !important; margin: 0 !important; flex: 0 0 auto; display: flex; align-items: center; }
	.sah-header-cta {
		display: inline-flex !important; align-items: center; justify-content: center;
		height: 42px; padding: 0 22px !important; border-radius: 999px;
		background: var(--gp-primary); color: #ffffff !important;
		font-weight: 700; font-size: 14.5px; line-height: 1 !important;
		white-space: nowrap; text-decoration: none;
		box-shadow: 0 10px 24px -12px rgba(0,128,128,0.65);
	}
	.sah-header-cta:hover { background: var(--gp-deep); color: #ffffff !important; }
	.pkp_navigation_user_wrapper {
		position: static !important; flex: 0 0 auto;
		margin: 0 !important; padding: 0 !important; transform: none !important;
	}
	.pkp_navigation_user {
		float: none !important; display: flex !important; align-items: center;
		gap: 16px; margin: 0 !important; padding: 0 !important; text-align: left;
	}
	.pkp_navigation_user > li { float: none !important; margin: 0 !important; }
	.pkp_navigation_user > li > a { padding: 6px 0 !important; white-space: nowrap; }
}

/* ---------- Header: mobile ---------- */
@media (max-width: 991px) {
	.pkp_structure_head { border-bottom: 1px solid var(--gp-border); }
	.pkp_head_wrapper {
		display: flex !important; align-items: center; justify-content: space-between;
		padding: 10px 16px !important; min-height: 60px; position: relative;
	}
	.pkp_site_name_wrapper {
		display: flex !important; align-items: center; gap: 12px;
		padding: 0 !important; margin: 0 !important; width: 100%;
	}
	.pkp_site_name { order: 1; margin: 0 !important; padding: 0 !important; }
	.pkp_site_name .is_img img, .pkp_site_name img { max-height: 40px !important; width: auto; display: block; }
	.pkp_site_nav_toggle { order: 2; margin-left: auto; position: static !important; }
	.sah-header-cta-wrap { float: none !important; margin: 10px 0 6px !important; }
	.pkp_navigation_search_wrapper .pkp_search { color: var(--gp-deep) !important; }
}

/* ---------- Hero: full-bleed on the journal homepage ---------- */
body.pkp_page_index .sah-hero {
	width: 100vw; max-width: 100vw;
	margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
	margin-top: -20px;
	border-radius: 0 !important; border-left: none !important; border-right: none !important;
	border-top: none !important;
}
body.pkp_page_index .sah-slide { min-height: 400px; padding: 60px 24px 72px; }
body.pkp_page_index .sah-slide-inner { width: 100%; max-width: 1240px; margin: 0 auto; }
body.pkp_page_index .sah-slide-inner > * { max-width: 600px; }
body.pkp_page_index .sah-slide h1 { font-size: 42px; }
body.pkp_page_index .sah-dots { left: max(24px, calc((100vw - 1240px) / 2 + 24px)); bottom: 28px; }
@media (max-width: 900px) {
	body.pkp_page_index .sah-slide { min-height: 0; padding: 42px 20px 64px; }
	body.pkp_page_index .sah-slide h1 { font-size: 31px; }
	body.pkp_page_index .sah-dots { left: 20px; bottom: 24px; }
}

/* ---------- Footer: four columns + bottom bar ---------- */
.pkp_structure_footer_wrapper { background: linear-gradient(180deg, #e1f4f4 0%, #d3eeee 100%); }
.pkp_structure_footer {
	display: grid !important;
	grid-template-columns: 1.35fr 0.85fr 0.95fr 1.35fr;
	gap: 44px;
	max-width: 1280px; margin: 0 auto;
	padding: 52px 24px 34px !important;
	float: none !important; width: auto !important;
}
.sah-foot-col { min-width: 0; }
.sah-footer-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; grid-area: auto !important; }
.sah-foot-desc { margin: 0; font-size: 14px; line-height: 1.7; color: var(--gp-muted); max-width: 320px; }
.sah-foot-title {
	margin: 4px 0 16px; font-size: 13.5px; font-weight: 800;
	letter-spacing: 0.08em; text-transform: uppercase; color: var(--gp-ink);
}
.sah-foot-list { list-style: none; margin: 0; padding: 0; }
.sah-foot-list li { margin: 0 0 11px; }
.sah-foot-list a { font-size: 14.5px; font-weight: 500; color: var(--gp-muted) !important; text-decoration: none; }
.sah-foot-list a:hover { color: var(--gp-deep) !important; text-decoration: underline; }
.sah-foot-contact .pkp_footer_content {
	grid-area: auto !important; margin: 0 !important; float: none !important;
	max-width: none; font-size: 14px; line-height: 1.7; color: var(--gp-muted);
}
.sah-foot-contact .pkp_footer_content > p:first-child { display: none; }
.sah-foot-contact .pkp_footer_content p { margin: 0 0 7px; }
.sah-foot-bottom {
	max-width: 1280px; margin: 0 auto; padding: 16px 24px 22px;
	border-top: 1px solid rgba(0,102,102,0.18);
	display: flex; justify-content: space-between; align-items: center;
	gap: 14px; flex-wrap: wrap;
	font-size: 13px; color: var(--gp-muted);
}
.sah-foot-bottom-links { display: flex; gap: 22px; }
.sah-foot-bottom-links a { color: var(--gp-muted) !important; text-decoration: none; font-weight: 500; }
.sah-foot-bottom-links a:hover { color: var(--gp-deep) !important; text-decoration: underline; }
@media (max-width: 900px) {
	.pkp_structure_footer { grid-template-columns: 1fr 1fr; gap: 30px; padding: 38px 20px 26px !important; }
}
@media (max-width: 560px) {
	.pkp_structure_footer { grid-template-columns: 1fr; gap: 26px; }
	.sah-foot-bottom { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   GP alignment v2 — fixes from measured layout diagnostics:
   the compiled stylesheet gives the name/user wrappers a full
   row width (1160px), which pushed the desktop nav off-screen;
   the footer still carried an old grid-template-areas map.
   ============================================================ */
@media (min-width: 992px) {
	.pkp_head_wrapper { width: auto !important; max-width: 1280px; }
	.pkp_site_name_wrapper { width: auto !important; flex: 0 1 auto !important; }
	.pkp_site_nav_menu { min-width: 0; }
	.pkp_navigation_primary_row { min-width: 0; width: auto !important; }
	.pkp_navigation_primary_wrapper { min-width: 0; }
	.pkp_navigation_user_wrapper { width: auto !important; flex: 0 1 auto !important; }
	.pkp_navigation_user { justify-content: flex-end; }
}
.pkp_structure_footer {
	grid-template-areas: none !important;
	text-align: left !important;
	align-items: start;
}
.pkp_structure_footer .sah-foot-col,
.pkp_structure_footer .pkp_footer_content { text-align: left !important; }
body.pkp_page_index { overflow-x: clip; }

@media (max-width: 991px) {
	.pkp_site_nav_menu { background: #ffffff !important; }
	.pkp_navigation_primary_row { background: #ffffff !important; }
	.pkp_navigation_primary > li > ul {
		position: static !important; box-shadow: none !important;
		border: none !important; border-radius: 0 !important; margin: 0 !important;
	}
	.pkp_navigation_user_wrapper { background: #ffffff !important; }
	.pkp_navigation_user > li > a, .pkp_navigation_user li a { color: var(--gp-deep) !important; }
	.sah-header-cta-wrap { margin: 8px 16px 12px !important; }
	.sah-header-cta {
		display: inline-flex; align-items: center; height: 40px;
		padding: 0 20px; border-radius: 999px;
		background: var(--gp-primary); color: #ffffff !important; font-weight: 700;
	}
}

/* ============================================================
   GP alignment v3 — measured fixes: force the logo image to a
   fixed height (it was being scaled into a 78x23 box), give the
   primary nav row a real flex basis (it collapsed to 0), and
   release the user nav from its compiled 1160px width.
   ============================================================ */
@media (min-width: 992px) {
	.pkp_site_name a.is_img { display: block !important; width: auto !important; height: auto !important; }
	.pkp_site_name a.is_img img {
		height: 46px !important; width: auto !important;
		max-width: none !important; max-height: none !important;
	}
	.pkp_navigation_primary_row { flex: 1 1 0% !important; min-width: 0 !important; }
	.pkp_navigation_primary_wrapper { width: 100% !important; }
	#navigationUserWrapper { width: auto !important; }
	#navigationUser, .pkp_navigation_user { width: auto !important; }
	.pkp_navigation_user > li { flex: 0 0 auto !important; }
}

/* ============================================================
   GP alignment v4 — the footer grid was shifted one track by
   an invisible clearfix ::before acting as the first grid
   item; remove it. Also release the compiled 30px indent on
   the contact column and tighten the desktop navbar spacing
   so the CTA pill no longer overlaps the user nav.
   ============================================================ */
.pkp_structure_footer::before, .pkp_structure_footer::after { display: none !important; content: none !important; }
.sah-foot-contact .pkp_footer_content { padding-left: 0 !important; }
@media (min-width: 992px) {
	.pkp_navigation_primary > li > a { padding-left: 11px !important; padding-right: 11px !important; }
	.pkp_navigation_primary_wrapper { gap: 12px !important; }
	.pkp_site_nav_menu { gap: 18px !important; }
	.sah-header-cta { padding-left: 18px !important; padding-right: 18px !important; }
}

/* ============================================================
   GP alignment v5 (mobile) — the CTA pill inside the opened
   mobile menu measured narrower than its label, clipping the
   text; give it a safe minimum width. Also give the hamburger
   toggle a visible mint chip so it reads as a button.
   ============================================================ */
@media (max-width: 991px) {
	.sah-header-cta { min-width: 190px; justify-content: center; text-align: center; }
	.pkp_site_nav_toggle { background-color: #e0f2f2; border: 1px solid var(--gp-border); border-radius: 10px; }
}

/* ============================================================
   GP alignment v6 (mobile) — the hamburger toggle's native
   bars do not render in this build (empty mint chip); draw
   three bars on the button itself and hide the ghost span.
   ============================================================ */
@media (max-width: 991px) {
	.pkp_site_nav_toggle {
		background-image:
			linear-gradient(var(--gp-ink), var(--gp-ink)),
			linear-gradient(var(--gp-ink), var(--gp-ink)),
			linear-gradient(var(--gp-ink), var(--gp-ink));
		background-size: 20px 2.5px, 20px 2.5px, 20px 2.5px;
		background-position: 50% 12px, 50% 19px, 50% 26px;
		background-repeat: no-repeat;
	}
	.pkp_site_nav_toggle span { visibility: hidden; }
}

/* ============================================================
   Polish round (owner-approved): sticky header, catalogue
   grid/internals, sidebar row normalisation, uniform service
   buttons, single CTA treatment, tighter eyebrow spacing.
   ============================================================ */

/* ---------- Sticky header ---------- */
.pkp_structure_head {
	position: sticky; top: 0; z-index: 1000;
	background: #ffffff;
	box-shadow: 0 10px 30px -22px rgba(11,43,43,0.45);
}
.sah-landing section[id] { scroll-margin-top: 96px; }

/* ---------- Catalogue: four across, footer pinned ---------- */
@media (min-width: 1200px) {
	#katalog .sah-grid { grid-template-columns: repeat(4, 1fr); max-width: 1180px; }
}
#katalog .sah-doi { margin-top: auto; padding-top: 8px; }
#katalog .sah-btn-sm { margin-top: 10px; }

/* ---------- Sidebar row under the homepage: one even row ---------- */
@media (min-width: 1100px) {
	body.pkp_page_index .pkp_structure_sidebar { grid-template-columns: repeat(4, 1fr); }
}
body.pkp_page_index .pkp_structure_sidebar .pkp_block .content a img {
	max-height: 76px; width: auto; object-fit: contain;
	display: block; margin: 8px auto;
}
body.pkp_page_index .pkp_structure_sidebar .pkp_block .content img[src*="flagcounter"] {
	max-height: 300px; width: auto; display: block; margin: 4px auto;
}

/* ---------- Services: uniform buttons, pinned to card bottom ---------- */
#layanan .sah-feat { display: flex; flex-direction: column; }
#layanan .sah-btn-sm {
	align-self: flex-start; min-width: 218px;
	text-align: center; margin-top: auto;
}

/* ---------- One CTA treatment: bright primary everywhere ---------- */
.sah-btn-deep { background: var(--gp-primary); }
.sah-btn-deep:hover { background: var(--gp-deep); }

/* ---------- Eyebrow labels sit closer to their headings ---------- */
.sah-kicker-dark { margin-bottom: 4px; }

/* ============================================================
   Mobile menu tidy-up (owner request): structured rows with
   dividers, a clearly grouped submenu, a full-width CTA pill,
   and Daftar/Login as two equal outline buttons.
   ============================================================ */
@media (max-width: 991px) {
	.pkp_site_nav_menu {
		padding: 6px 20px 20px !important;
		border-top: 1px solid var(--gp-border);
		border-radius: 0 0 18px 18px;
		box-shadow: 0 30px 40px -30px rgba(11,43,43,0.35);
	}
	.pkp_site_nav_menu .pkp_navigation_primary { display: block !important; width: 100%; margin: 0 !important; }
	.pkp_site_nav_menu .pkp_navigation_primary > li { display: block !important; border-bottom: 1px solid #e9f3f3; margin: 0 !important; }
	.pkp_site_nav_menu .pkp_navigation_primary > li > a {
		display: flex !important; align-items: center; justify-content: space-between;
		padding: 13px 2px !important; font-size: 15.5px; font-weight: 600;
		color: var(--gp-ink) !important; line-height: 1.3 !important;
	}
	.pkp_site_nav_menu .pkp_navigation_primary > li > ul {
		position: static !important; padding: 0 0 10px 16px !important; margin: 0 !important;
		background: transparent !important;
	}
	.pkp_site_nav_menu .pkp_navigation_primary > li > ul > li { border-bottom: none !important; display: block !important; }
	.pkp_site_nav_menu .pkp_navigation_primary > li > ul a {
		display: block !important; padding: 8px 0 !important;
		font-size: 14.5px; font-weight: 500; color: var(--gp-muted) !important;
	}
	.pkp_site_nav_menu .pkp_navigation_search_wrapper {
		padding: 13px 2px; border-bottom: 1px solid #e9f3f3;
	}
	.pkp_site_nav_menu .pkp_navigation_search_wrapper .pkp_search { font-size: 15.5px; font-weight: 600; }
	.sah-header-cta-wrap { margin: 16px 0 4px !important; }
	.sah-header-cta { width: 100%; min-width: 0 !important; height: 46px; font-size: 15px; }
	.pkp_navigation_user_wrapper { margin-top: 14px !important; }
	.pkp_navigation_user { display: flex !important; flex-wrap: wrap; gap: 10px; margin: 0 !important; padding: 0 !important; }
	.pkp_navigation_user > li { flex: 1 1 40%; margin: 0 !important; }
	.pkp_navigation_user > li > a {
		display: flex !important; justify-content: center; align-items: center;
		padding: 11px 6px !important; border: 1.5px solid var(--gp-border); border-radius: 999px;
		background: #ffffff; font-weight: 700; font-size: 14.5px; color: var(--gp-deep) !important;
	}
}

/* Mobile menu v2: centre the CTA label vertically in its pill
   (a compiled line-height was pushing the text up). */
@media (max-width: 991px) {
	.sah-header-cta { line-height: 1 !important; align-items: center; justify-content: center; }
}

/* Mobile menu v3: the compiled stylesheet forces nav anchors to
   display:block with a small vertical padding, which glued the
   CTA label to the top of its pill. Force a centred flex box. */
@media (max-width: 991px) {
	.pkp_site_nav_menu .sah-header-cta {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		padding: 0 20px !important;
		line-height: 1 !important;
	}
}

/* ============================================================
   Real logos in uniform slots (owner request): media outlet
   logos in equal white tiles; campus logos in an even grid
   with a fixed-height logo stage above each name.
   ============================================================ */
.sah-media-logo {
	display: inline-flex; align-items: center; justify-content: center;
	background: #ffffff; border: 1px solid var(--sah-line); border-radius: 12px;
	height: 64px; padding: 10px 22px; box-sizing: border-box;
}
.sah-media-logo img { max-height: 34px; max-width: 165px; width: auto; object-fit: contain; display: block; }
.sah-logos { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; margin-top: 22px; }
.sah-inst {
	display: flex; flex-direction: column; align-items: center; gap: 10px;
	background: #ffffff; border: 1px solid var(--sah-line); border-radius: 14px;
	padding: 16px 10px 13px; text-align: center;
	font-size: 13px; font-weight: 600; color: var(--sah-ink); line-height: 1.35;
}
.sah-inst-logo { height: 58px; display: flex; align-items: center; justify-content: center; }
.sah-inst-logo img { max-height: 58px; max-width: 112px; width: auto; object-fit: contain; display: block; }
@media (max-width: 1000px) { .sah-logos { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 700px) { .sah-logos { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 460px) {
	.sah-logos { grid-template-columns: repeat(2, 1fr); }
	.sah-media-logo { height: 56px; padding: 8px 14px; }
	.sah-media-logo img { max-height: 28px; max-width: 130px; }
}

/* ============================================================
   Measured fixes: the compiled stylesheet adds padding-top:
   30px to .pkp_footer_content, so the Kontak column's first
   line sat 46px below its heading while the link columns sit
   at 16px. Zero it. The pre-footer illustration (a 3:1 image)
   was squeezed into a 210x70 fill box; show it at full size.
   ============================================================ */
.sah-foot-contact .pkp_footer_content { padding: 0 !important; }
.sah-prefooter-img {
	width: 320px !important; height: auto !important;
	max-height: 118px; object-fit: contain !important;
}
@media (max-width: 900px) { .sah-prefooter-img { width: 240px !important; } }

/* Pre-footer follow-up: at 320px the illustration pushed the
   action buttons onto a second row; 260px keeps the band on
   one row (text | illustration | buttons) while staying far
   larger than the old 210x70 squeeze. */
.sah-prefooter-img { width: 260px !important; }
@media (max-width: 900px) { .sah-prefooter-img { width: 200px !important; } }

/* ============================================================
   Pre-footer band: the shelf illustration becomes the section
   background (owner request) — anchored right with a left
   fade, the same treatment as the hero slides. The separate
   <img> box is retired; text and buttons sit on top.
   ============================================================ */
.sah-prefooter { position: relative; overflow: hidden; }
.sah-prefooter::after {
	content: ""; position: absolute; top: 0; right: 0; bottom: 0;
	width: 56%;
	background: url('../images/hero-shelf.webp') right center / cover no-repeat;
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 34%);
	mask-image: linear-gradient(to right, transparent 0, #000 34%);
	pointer-events: none;
}
.sah-prefooter-inner { position: relative; z-index: 1; }
.sah-prefooter-img { display: none !important; }
@media (max-width: 700px) {
	.sah-prefooter::after { width: 100%; opacity: 0.16; }
}

/* ---------- v18: uniform sidebar media tiles + themed submit buttons ---------- */
.pkp_structure_sidebar #customblock-index .content,
.pkp_structure_sidebar #customblock-template .content { text-align: center; }
.pkp_structure_sidebar #customblock-index .content a,
.pkp_structure_sidebar #customblock-template .content a {
	display: flex; align-items: center; justify-content: center;
	height: 76px; padding: 8px 10px; margin: 0 0 8px;
	background: #fff; border: 1px solid var(--sahx-line); border-radius: 12px;
	text-decoration: none;
}
.pkp_structure_sidebar #customblock-index .content a:last-child,
.pkp_structure_sidebar #customblock-template .content a:last-child { margin-bottom: 0; }
.pkp_structure_sidebar #customblock-index .content img,
.pkp_structure_sidebar #customblock-template .content img {
	height: 60px; width: auto; max-width: 88%;
	object-fit: contain; border-radius: 0;
}
.pkp_structure_sidebar .block_make_submission_link {
	display: block; text-align: center;
	background: linear-gradient(135deg, var(--sahx-emerald), var(--sahx-emerald-dark));
	color: #fff !important; font-weight: 700; font-size: 15px;
	padding: 13px 18px; border-radius: 999px; text-decoration: none !important;
	box-shadow: 0 10px 20px -12px rgba(0, 102, 102, 0.55);
}
.pkp_structure_sidebar .block_make_submission_link:hover { filter: brightness(1.07); color: #fff !important; }
.cmp_form .buttons button, .cmp_form button.submit, .pkp_structure_main button.submit {
	background: linear-gradient(135deg, var(--sahx-emerald), var(--sahx-emerald-dark)) !important;
	border: none !important; color: #fff !important; font-weight: 700;
	padding: 11px 26px !important; border-radius: 999px !important; cursor: pointer;
}

/* ---- Auth forms polish: login and register ---- */
.pkp_page_login .cmp_form,
.pkp_page_user .cmp_form { max-width: 660px; }
.pkp_page_login .cmp_form fieldset,
.pkp_page_user .cmp_form fieldset { border: 1.5px solid #c2e2e2; border-radius: 16px; background: #ffffff; padding: 20px 22px 6px; margin: 0 0 20px; }
.pkp_page_login .cmp_form legend:not(.pkp_screen_reader),
.pkp_page_user .cmp_form legend:not(.pkp_screen_reader) { font-style: normal; font-weight: 800; font-size: 14.5px; color: #0b2b2b; background: #ffffff; border: 1.5px solid #c2e2e2; border-radius: 999px; padding: 3px 14px; }
.pkp_page_login .cmp_form .fields > div,
.pkp_page_user .cmp_form .fields > div,
.pkp_page_login .cmp_form .fields > li,
.pkp_page_user .cmp_form .fields > li { margin-bottom: 16px; list-style: none; }
.pkp_page_login .cmp_form label,
.pkp_page_user .cmp_form label { font-style: normal; color: #0b2b2b; }
.pkp_page_login .cmp_form label .label,
.pkp_page_user .cmp_form label .label { display: block; font-style: normal; font-weight: 600; font-size: 14px; margin-bottom: 6px; color: #0b2b2b; }
.pkp_page_login .cmp_form .required,
.pkp_page_user .cmp_form .required { color: #d92b2b; font-weight: 700; }
.pkp_page_login .cmp_form input[type="text"],
.pkp_page_user .cmp_form input[type="text"],
.pkp_page_login .cmp_form input[type="password"],
.pkp_page_user .cmp_form input[type="password"],
.pkp_page_login .cmp_form input[type="email"],
.pkp_page_user .cmp_form input[type="email"],
.pkp_page_login .cmp_form input[type="url"],
.pkp_page_user .cmp_form input[type="url"],
.pkp_page_login .cmp_form input[type="tel"],
.pkp_page_user .cmp_form input[type="tel"],
.pkp_page_login .cmp_form select,
.pkp_page_user .cmp_form select,
.pkp_page_login .cmp_form textarea,
.pkp_page_user .cmp_form textarea { width: 100%; max-width: 100%; box-sizing: border-box; padding: 11px 14px; border: 1.5px solid #c2e2e2; border-radius: 10px; font-size: 15px; font-style: normal; background: #ffffff; color: #1c2b33; }
.pkp_page_login .cmp_form input[type="text"]:focus,
.pkp_page_user .cmp_form input[type="text"]:focus,
.pkp_page_login .cmp_form input[type="password"]:focus,
.pkp_page_user .cmp_form input[type="password"]:focus,
.pkp_page_login .cmp_form input[type="email"]:focus,
.pkp_page_user .cmp_form input[type="email"]:focus,
.pkp_page_login .cmp_form input[type="url"]:focus,
.pkp_page_user .cmp_form input[type="url"]:focus,
.pkp_page_login .cmp_form input[type="tel"]:focus,
.pkp_page_user .cmp_form input[type="tel"]:focus,
.pkp_page_login .cmp_form select:focus,
.pkp_page_user .cmp_form select:focus,
.pkp_page_login .cmp_form textarea:focus,
.pkp_page_user .cmp_form textarea:focus { border-color: #008080; outline: none; box-shadow: 0 0 0 3px #e0f2f2; }
.pkp_page_login .cmp_form label:has(> input[type="checkbox"]),
.pkp_page_user .cmp_form label:has(> input[type="checkbox"]),
.pkp_page_login .cmp_form label:has(> input[type="radio"]),
.pkp_page_user .cmp_form label:has(> input[type="radio"]) { display: flex; align-items: flex-start; gap: 9px; font-weight: 500; cursor: pointer; }
.pkp_page_login .cmp_form label:has(> input[type="checkbox"]) .label,
.pkp_page_user .cmp_form label:has(> input[type="checkbox"]) .label,
.pkp_page_login .cmp_form label:has(> input[type="radio"]) .label,
.pkp_page_user .cmp_form label:has(> input[type="radio"]) .label { display: inline; margin: 0; font-weight: 500; }
.pkp_page_login .cmp_form input[type="checkbox"],
.pkp_page_user .cmp_form input[type="checkbox"],
.pkp_page_login .cmp_form input[type="radio"],
.pkp_page_user .cmp_form input[type="radio"] { width: 17px; height: 17px; margin: 2px 0 0; accent-color: #008080; flex: 0 0 auto; }
.pkp_page_login .cmp_form .password a,
.pkp_page_user .cmp_form .password a { display: inline-block; margin-top: 9px; font-size: 13.5px; font-weight: 600; font-style: normal; color: #008080; }
.pkp_page_login .cmp_form .recaptcha,
.pkp_page_user .cmp_form .recaptcha { margin: 4px 0 10px; }
.pkp_page_login .cmp_form .buttons,
.pkp_page_user .cmp_form .buttons { display: flex; align-items: center; justify-content: flex-end; gap: 16px; flex-wrap: wrap; padding: 8px 0 16px; }
.pkp_page_login .cmp_form .buttons a,
.pkp_page_user .cmp_form .buttons a { font-weight: 600; font-size: 14px; color: #008080; }
.pkp_page_login .cmp_form .buttons .submit,
.pkp_page_user .cmp_form .buttons .submit,
.pkp_page_login .cmp_form .buttons button,
.pkp_page_user .cmp_form .buttons button { background: linear-gradient(135deg, #008080, #006666); color: #ffffff; border: 0; border-radius: 999px; padding: 11px 28px; font-size: 15px; font-weight: 700; cursor: pointer; box-shadow: 0 10px 20px -10px #008080; }
@media (max-width: 600px) {
.pkp_page_login .cmp_form fieldset,
.pkp_page_user .cmp_form fieldset { padding: 16px 14px 4px; }
}

/* ---- Auth forms: tighter spacing ---- */
.pkp_page_login .cmp_form .fields > div, .pkp_page_user .cmp_form .fields > div,
.pkp_page_login .cmp_form .fields > li, .pkp_page_user .cmp_form .fields > li { margin-bottom: 10px !important; }
.pkp_page_login .cmp_form label .label, .pkp_page_user .cmp_form label .label { margin-bottom: 4px !important; }
.pkp_page_login .cmp_form fieldset, .pkp_page_user .cmp_form fieldset { padding: 16px 20px 2px; margin-bottom: 16px; }
.pkp_page_login .cmp_form input[type="text"], .pkp_page_user .cmp_form input[type="text"],
.pkp_page_login .cmp_form input[type="password"], .pkp_page_user .cmp_form input[type="password"],
.pkp_page_login .cmp_form input[type="email"], .pkp_page_user .cmp_form input[type="email"],
.pkp_page_login .cmp_form input[type="url"], .pkp_page_user .cmp_form input[type="url"],
.pkp_page_login .cmp_form input[type="tel"], .pkp_page_user .cmp_form input[type="tel"],
.pkp_page_login .cmp_form select, .pkp_page_user .cmp_form select { min-height: 42px; }
.pkp_page_login .cmp_form .buttons, .pkp_page_user .cmp_form .buttons { padding: 4px 0 12px; }

/* View-all-books button under the homepage catalogue grid */
.sah-catalog-more {
	text-align: center;
	margin-top: 30px;
}

/* ===== Book archive (View All Books): all years, JS lazy reveal ===== */
.sah-archive { max-width: 80rem; margin: 0 auto; padding: 8px 16px 48px; }
.sah-archive-intro { color: #3d5a50; margin: 4px 0 8px; }
.sah-archive-year { font-size: 1.6rem; color: #0b3d2a; border-bottom: 3px solid #fdce3f; display: inline-block; padding-bottom: 4px; margin: 28px 0 16px; }
.sah-card-lazy { display: none; }
.sah-card-in { animation: sahCardIn .35s ease both; }
@keyframes sahCardIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.sah-archive-more { text-align: center; margin: 28px 0 8px; }
#sahArchiveSentinel { height: 1px; }

/* ============================================================
   SUBMISSIONS PAGE — Login/Register CTA buttons + checklist
   cards (added 2026-11-08). Scoped to .page_submissions only,
   so other pages and other notices are untouched.
   ============================================================ */
.page_submissions .cmp_notification {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 12px;
	background: linear-gradient(135deg, #f4fafa 0%, var(--sahx-cream) 100%) !important;
	border: 1px solid var(--sahx-line) !important;
	border-left: 6px solid var(--sahx-emerald) !important;
	border-radius: 14px !important;
	padding: 20px 22px !important;
	margin: 4px 0 30px !important;
	font-size: 1.05rem;
	font-weight: 500;
	line-height: 1.5;
	color: var(--sahx-ink);
	box-shadow: 0 10px 26px rgba(0, 0, 0, .08);
}
.page_submissions .cmp_notification a {
	display: inline-block !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	font-size: .98rem !important;
	line-height: 1.25 !important;
	text-decoration: none !important;
	transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.page_submissions .cmp_notification a:first-of-type {
	background: var(--sahx-emerald-dark) !important;
	color: #ffffff !important;
	padding: 11px 30px !important;
	box-shadow: 0 6px 16px rgba(0, 0, 0, .20);
}
.page_submissions .cmp_notification a:first-of-type:hover,
.page_submissions .cmp_notification a:first-of-type:focus {
	background: var(--sahx-emerald) !important;
	transform: translateY(-1px);
}
.page_submissions .cmp_notification a:last-of-type {
	background: #ffffff !important;
	color: var(--sahx-emerald-dark) !important;
	border: 2px solid var(--sahx-emerald) !important;
	padding: 9px 28px !important;
}
.page_submissions .cmp_notification a:last-of-type:hover,
.page_submissions .cmp_notification a:last-of-type:focus {
	background: var(--sahx-cream) !important;
	transform: translateY(-1px);
}
@media (max-width: 600px) {
	.page_submissions .cmp_notification {
		justify-content: center;
		text-align: center;
		padding: 18px 16px !important;
	}
}

/* Submission Preparation Checklist: one soft card per item,
   check mark in a filled circle */
.page_submissions .submission_checklist ul {
	list-style: none !important;
	margin: 18px 0 26px !important;
	padding: 0 !important;
}
.page_submissions .submission_checklist li {
	position: relative;
	background: #ffffff;
	border: 1px solid var(--sahx-line);
	border-radius: 12px;
	padding: 14px 18px 14px 54px !important;
	margin: 0 0 10px !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .04);
	line-height: 1.55;
}
.page_submissions .submission_checklist li .fa-check {
	position: absolute;
	left: 15px;
	top: 14px;
	width: 25px;
	height: 25px;
	border-radius: 50%;
	background: var(--sahx-emerald);
	color: #ffffff !important;
	font-size: 12px;
	line-height: 25px;
	text-align: center;
}
