/*
Theme Name: FIS UM
Theme URI: https://fis.um.ac.id
Description: Child theme Divi untuk situs Fakultas Ilmu Sosial, Universitas Negeri Malang. Seluruh kustomisasi CSS dan PHP ditaruh di sini agar tidak hilang saat Divi diperbarui.
Author: Tim TI FIS UM
Template: Divi
Version: 0.1.0
Text Domain: fis-um
*/

/* ==========================================================================
   Token desain

   Dua lapis warna:

   1. CHROME UM (--um-*) — wajib seragam untuk semua unit/fakultas. Dipakai
      pada header dua bilah dan hero. Nilainya disampel dari piksel dan
      computed style um.ac.id, bukan tebakan.
   2. IDENTITAS FAKULTAS (--fis-*) — ungu Fakultas Ilmu Sosial. Dipakai pada
      seluruh badan halaman: tautan, tombol, kartu, pita riset, dan footer.

   Untuk fakultas lain, cukup ganti tiga nilai --fis-brand* di bawah; lapisan
   --um-* jangan diubah karena itu yang dinilai keseragamannya.
   ========================================================================== */
:root {
	/* 1. Chrome UM */
	--um-navy: #05245c;
	--um-navy-dark: #041b45;
	--um-blue: #0762d9;
	--um-yellow: #ffc820;

	/* 2. Identitas FIS */
	--fis-brand: #5c0098;
	--fis-brand-dark: #3d0065;
	--fis-brand-soft: #6f1faa;
	--fis-link: #6b1a9e;
	--fis-eyebrow: #4a0079;

	/* Alias lama supaya aturan yang sudah ada tetap jalan. */
	--fis-blue: var(--fis-link);
	--fis-blue-dark: var(--fis-eyebrow);
	--fis-gold: var(--um-yellow);
	--fis-gold-light: #ffd866;

	--fis-ground: #f7f5fa;
	--fis-surface: #ffffff;
	--fis-surface-alt: #f3ecf8;
	--fis-line: #e4dfea;
	--fis-text: #1c1230;
	--fis-text-muted: #5b5268;
	--fis-text-body: #423a4f;

	/* Teks di atas bidang gelap (navy maupun ungu). */
	--fis-on-dark: #ecdffa;
	--fis-on-dark-muted: #c8b2dd;
	--fis-on-dark-line: #7c3fb5;

	--fis-radius: 10px;
	--fis-radius-lg: 14px;
	/*
	 * Satu keluarga huruf saja, seperti um.ac.id yang memakai Albert Sans untuk
	 * body, judul, dan menu. Sebelumnya judul seksi memakai Source Serif 4;
	 * itu menyimpang dari sistem UM dan berisiko pada indikator kesesuaian
	 * Guideline. Untuk mengembalikan serif, cukup ubah --fis-display.
	 */
	--fis-sans: "Albert Sans", system-ui, "Segoe UI", sans-serif;
	--fis-display: var(--fis-sans);
}

/* ==========================================================================
   Dasar
   ========================================================================== */
body {
	background: var(--fis-ground);
	font-family: var(--fis-sans);
	color: var(--fis-text);
}

#page-container h1,
#page-container h2,
#page-container h3 {
	font-family: var(--fis-display);
	color: var(--fis-text);
	text-wrap: pretty;
}

.fis-eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--fis-blue-dark);
	margin-bottom: 10px !important;
}

.fis-note {
	font-size: 13px;
	color: var(--fis-text-muted);
}

.fis-link {
	font-weight: 700;
	color: var(--fis-blue);
	text-decoration: none;
}

.fis-link:hover {
	color: var(--fis-brand);
	text-decoration: underline;
}

/* Divi memberi margin bawah 30px ke tiap modul; buang pada modul terakhir
   tiap kolom supaya jarak antar-seksi hanya ditentukan padding seksi. */
.et_pb_section[class*="fis-"] .et_pb_column > .et_pb_module:last-child {
	margin-bottom: 0 !important;
}

.et_pb_section[class*="fis-"] .et_pb_row:last-child {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Divi menambah padding-bottom 1em ke tiap <p> di modul Teks; pada paragraf
   terakhir itu menumpuk di atas padding seksi dan terbaca sebagai celah liar. */
.et_pb_section[class*="fis-"] .et_pb_text_inner > *:last-child {
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}

/* Baris multi-kolom: ganti sistem float Divi dengan grid agar gap konsisten. */
.fis-grid.et_pb_row,
.fis-quick__row.et_pb_row,
.fis-about__row.et_pb_row,
.fis-dept__row.et_pb_row,
.fis-riset__row.et_pb_row {
	display: grid;
	gap: 18px;
	width: 90%;
	max-width: 1200px;
}

.fis-quick__row.et_pb_row > .et_pb_column,
.fis-about__row.et_pb_row > .et_pb_column,
.fis-dept__row.et_pb_row > .et_pb_column,
.fis-riset__row.et_pb_row > .et_pb_column {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}

.fis-quick__row.et_pb_row .et_pb_module,
.fis-about__row.et_pb_row .et_pb_module,
.fis-dept__row.et_pb_row .et_pb_module,
.fis-riset__row.et_pb_row .et_pb_module {
	margin-bottom: 0 !important;
	height: 100%;
}

/* ==========================================================================
   02 Hero
   ========================================================================== */
.fis-hero {
	color: #ffffff;
}

.fis-hero .fis-eyebrow {
	color: var(--fis-gold-light);
}

.fis-hero__copy {
	max-width: 690px;
}

.fis-hero h1 {
	font-size: 58px;
	line-height: 1.08;
	font-weight: 700;
	color: #ffffff !important;
	margin-bottom: 20px;
}

.fis-hero .fis-lead {
	font-size: 17px;
	line-height: 1.6;
	color: var(--fis-on-dark);
	max-width: 600px;
}

.fis-hero__row .et_pb_button_module_wrapper {
	display: inline-block;
	margin: 22px 14px 0 0;
}

/* Tombol */
.fis-btn.et_pb_button {
	border: 0;
	border-radius: 9px;
	padding: 16px 26px !important;
	font-family: var(--fis-sans);
	font-size: 15px;
	font-weight: 700;
	transition: background 0.15s ease, color 0.15s ease;
}

.fis-btn.et_pb_button:after,
.fis-btn.et_pb_button:before {
	display: none !important;
}

.fis-btn--gold.et_pb_button {
	background: var(--fis-gold);
	color: #26200a !important;
}

.fis-btn--gold.et_pb_button:hover {
	background: var(--fis-gold-light);
}

.fis-btn--ghost.et_pb_button {
	background: transparent;
	color: #ffffff !important;
	box-shadow: inset 0 0 0 1.5px var(--fis-on-dark-muted);
}

.fis-btn--ghost.et_pb_button:hover {
	background: rgba(255, 255, 255, 0.08);
}

.fis-btn--brand.et_pb_button {
	background: var(--fis-brand);
	color: #ffffff !important;
}

.fis-btn--brand.et_pb_button:hover {
	background: var(--fis-brand-soft);
}

/* ==========================================================================
   03 Akses cepat
   ========================================================================== */
.fis-quick {
	border-bottom: 1px solid var(--fis-line);
}

.fis-quick__row.et_pb_row {
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 14px;
}

.fis-quick__item p {
	margin: 0;
	padding: 0;
}

.fis-quick__item a {
	display: flex;
	align-items: center;
	min-height: 72px;
	padding: 14px;
	background: var(--fis-ground);
	border: 1px solid var(--fis-line);
	border-radius: var(--fis-radius);
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--fis-text);
	text-decoration: none;
}

.fis-quick__item a:hover {
	border-color: var(--fis-gold);
	background: #ffffff;
}

/* ==========================================================================
   04 Sambutan + statistik
   ========================================================================== */
.fis-about__row.et_pb_row {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: start;
}

.fis-about h2 {
	font-size: 36px;
	line-height: 1.2;
	margin-bottom: 16px;
}

.fis-about__copy p {
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--fis-text-body);
}

.fis-stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.fis-stat {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 24px;
	background: var(--fis-surface);
	border: 1px solid var(--fis-line);
	border-radius: 12px;
}

.fis-stat--dark {
	background: var(--fis-brand);
	border-color: var(--fis-brand);
}

.fis-stat__num {
	font-family: var(--fis-display);
	font-size: clamp(26px, 2.6vw, 40px);
	font-weight: 700;
	line-height: 1.05;
	color: var(--fis-text);
	overflow-wrap: anywhere;
}

.fis-stat--dark .fis-stat__num {
	color: var(--fis-gold-light);
}

.fis-stat__label {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--fis-text-muted);
}

.fis-stat--dark .fis-stat__label {
	color: var(--fis-on-dark);
}

/* ==========================================================================
   05 Departemen
   ========================================================================== */
.fis-dept__headrow.et_pb_row,
.fis-riset__headrow.et_pb_row {
	margin-bottom: 28px !important;
}

.fis-dept h2,
.fis-riset h2,
.fis-news h2,
.fis-cta h2 {
	font-size: 34px;
	margin-bottom: 8px;
}

.fis-dept__row.et_pb_row {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fis-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	border: 1px solid var(--fis-line);
	border-radius: 12px;
	overflow: hidden;
	background: var(--fis-surface);
}

.fis-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 108px;
	background: #e6e3da;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	color: #6b6558;
}

.fis-card h3 {
	font-size: 17px;
	font-weight: 700;
	margin: 18px 18px 8px;
}

.fis-card p {
	margin: 0 18px 12px;
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--fis-text-muted);
}

.fis-card p:last-child {
	margin-top: auto;
	padding-bottom: 6px;
}

/* ==========================================================================
   06 Berita
   ========================================================================== */
.fis-news__head {
	margin-bottom: 24px !important;
}

.fis-news__head .et_pb_text_inner {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.fis-news__head h2 {
	margin: 0;
}

.fis-news__head p {
	margin: 0;
	padding: 0;
}

.fis-blog .et_pb_post {
	background: var(--fis-surface);
	border: 1px solid var(--fis-line);
	border-radius: 12px;
	padding: 20px;
	margin-bottom: 18px;
}

.fis-blog .entry-title {
	font-family: var(--fis-display);
	font-size: 22px;
	line-height: 1.3;
}

.fis-blog .post-meta {
	font-size: 12.5px;
	color: var(--fis-text-muted);
}

/* ==========================================================================
   08 Riset
   ========================================================================== */
.fis-riset,
.fis-riset p,
.fis-riset h2,
.fis-riset h3 {
	color: #ffffff !important;
}

.fis-riset .fis-eyebrow {
	color: var(--fis-gold-light) !important;
}

.fis-riset__row.et_pb_row {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fis-rcard {
	height: 100%;
	padding: 24px;
	background: var(--fis-brand-soft);
	border: 1px solid var(--fis-on-dark-line);
	border-radius: 12px;
}

.fis-rcard__num {
	display: block;
	font-family: var(--fis-display);
	font-size: 34px;
	font-weight: 700;
	line-height: 1;
	color: var(--fis-gold-light);
	margin-bottom: 9px;
}

.fis-rcard h3 {
	font-size: 17px;
	font-weight: 700;
	margin-bottom: 8px;
}

.fis-rcard p {
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--fis-on-dark-muted) !important;
}

/* ==========================================================================
   10 CTA
   ========================================================================== */
.fis-cta__copy {
	margin-bottom: 18px !important;
}

.fis-cta__copy h2 {
	font-size: 26px;
	margin: 0;
}

/* ==========================================================================
   Responsif
   ========================================================================== */
@media (max-width: 1100px) {
	.fis-dept__row.et_pb_row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.fis-quick__row.et_pb_row {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 980px) {
	.fis-hero h1 {
		font-size: 40px;
	}
	.fis-about__row.et_pb_row {
		grid-template-columns: minmax(0, 1fr);
		gap: 36px;
	}
	.fis-riset__row.et_pb_row {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 640px) {
	.fis-hero h1 {
		font-size: 32px;
	}
	.fis-hero .fis-lead {
		font-size: 15.5px;
	}
	.fis-hero__row .et_pb_button_module_wrapper {
		display: block;
		margin: 14px 0 0;
	}
	.fis-btn.et_pb_button {
		display: block;
		text-align: center;
	}
	.fis-quick__row.et_pb_row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.fis-dept__row.et_pb_row {
		grid-template-columns: minmax(0, 1fr);
	}
	.fis-stats {
		grid-template-columns: minmax(0, 1fr);
	}
	.fis-news__head .et_pb_text_inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}

	/* Tautan aksi berdiri sendiri harus memenuhi target sentuh 44px. */
	.fis-link {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
	.fis-dept h2,
	.fis-riset h2,
	.fis-news h2,
	.fis-cta h2 {
		font-size: 26px;
	}
	.fis-about h2 {
		font-size: 28px;
	}
}

/* ==========================================================================
   05b Chip program studi di bawah fakultas
   ========================================================================== */
.fis-dept__chiprow.et_pb_row {
	margin-top: 26px !important;
}

.fis-chips__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--fis-text-muted);
	margin: 0 0 12px !important;
	padding: 0 !important;
}

.fis-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 !important;
	padding: 0 !important;
}

.fis-chips a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--fis-line);
	border-radius: 999px;
	background: var(--fis-ground);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--fis-text);
	text-decoration: none;
}

.fis-chips a:hover {
	border-color: var(--fis-brand);
	background: #ffffff;
	color: var(--fis-brand);
}

/* ==========================================================================
   06 Berita — modul Blog Divi
   ========================================================================== */
.fis-blog .et_pb_salvattore_content {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.fis-blog .et_pb_salvattore_content > .column {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	display: contents;
}

.fis-blog .et_pb_post {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0 0 20px !important;
	padding: 0;
	background: var(--fis-surface);
	border: 1px solid var(--fis-line);
	border-radius: 12px;
	overflow: hidden;
}

.fis-blog .et_pb_image_container,
.fis-blog .entry-featured-image-url {
	margin: 0 !important;
	display: block;
}

.fis-blog .et_pb_image_container img,
.fis-blog .entry-featured-image-url img {
	display: block;
	width: 100%;
	height: 190px;
	object-fit: cover;
}

.fis-blog .entry-title {
	font-family: var(--fis-display);
	font-size: 19px;
	line-height: 1.32;
	font-weight: 700;
	margin: 16px 18px 8px;
	padding: 0;
}

.fis-blog .entry-title a {
	color: var(--fis-text);
	text-decoration: none;
}

.fis-blog .entry-title a:hover {
	color: var(--fis-brand);
}

.fis-blog .post-meta {
	order: -1;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fis-blue-dark);
	margin: 16px 18px 0;
	padding: 0;
}

.fis-blog .post-content {
	margin: 0 18px 18px;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--fis-text-muted);
}

/* ==========================================================================
   07 Pengumuman — daftar tanpa gambar
   ========================================================================== */
.fis-notice .et_pb_post {
	display: flex;
	flex-direction: column;
	margin: 0 !important;
	padding: 15px 0;
	border: 0;
	border-top: 1px solid var(--fis-line);
	background: transparent;
	border-radius: 0;
}

.fis-notice .et_pb_post:last-child {
	border-bottom: 1px solid var(--fis-line);
}

.fis-notice .entry-title {
	font-family: var(--fis-sans);
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.45;
	margin: 0;
	padding: 0;
}

.fis-notice .entry-title a {
	color: var(--fis-text);
	text-decoration: none;
}

.fis-notice .entry-title a:hover {
	color: var(--fis-brand);
	text-decoration: underline;
}

.fis-notice .post-meta {
	order: -1;
	font-size: 12px;
	color: var(--fis-text-muted);
	margin: 0 0 4px;
	padding: 0;
}

/* Tautan di atas bidang ungu. */
.fis-link--ondark {
	color: var(--fis-gold-light) !important;
}

.fis-link--ondark:hover {
	color: #ffffff !important;
}

@media (max-width: 980px) {
	.fis-blog .et_pb_salvattore_content {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.fis-blog .et_pb_salvattore_content {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Modul Blog Divi membagi pos ke beberapa .column (salvattore). Untuk daftar
   pengumuman kita mau satu kolom: kolomnya dibuat display:contents supaya
   pos-nya naik jadi anak langsung dan urutannya kembali kronologis. */
.fis-notice .et_pb_salvattore_content {
	display: block;
}

.fis-notice .et_pb_salvattore_content > .column {
	display: contents;
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

/* Divi menyetel judul lewat "#page-container h2" (spesifisitas ID), jadi
   font-family di sini harus dipaksa agar judul pengumuman tetap sans. */
.fis-notice .entry-title,
.fis-notice .entry-title a {
	font-family: var(--fis-sans) !important;
	font-size: 15.5px !important;
	font-weight: 600 !important;
}

/* Semua tautan aksi berdiri sendiri wajib 44px di lebar sentuh (termasuk
   tablet 768px, bukan hanya ponsel). */
@media (max-width: 980px) {
	.fis-link,
	.fis-notice .entry-title a,
	.fis-blog .entry-title a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* ==========================================================================
   02b Hero pola um.ac.id — foto full-bleed dengan wash terang, judul navy
   ========================================================================== */
.fis-hero.et_pb_section {
	position: relative;
	overflow: hidden;
}

.fis-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
		100deg,
		rgba(255, 255, 255, 0.95) 0%,
		rgba(255, 255, 255, 0.88) 34%,
		rgba(255, 255, 255, 0.55) 62%,
		rgba(255, 255, 255, 0.18) 100%
	);
}

.fis-hero > .et_pb_row {
	position: relative;
	z-index: 2;
}

.fis-hero {
	color: var(--fis-text);
}

.fis-hero .fis-eyebrow {
	color: var(--fis-blue-dark);
}

.fis-hero h1 {
	font-family: var(--fis-sans) !important;
	font-size: 52px;
	line-height: 1.1;
	font-weight: 800;
	color: var(--um-navy) !important;
	margin-bottom: 18px;
	max-width: 15ch;
}

.fis-hero .fis-lead {
	font-size: 20px;
	line-height: 1.6;
	color: var(--fis-text-body);
	max-width: 620px;
}

/* Tombol hero: mengikuti pola UM (isi navy + garis navy), bukan emas. */
.fis-hero .fis-btn--gold.et_pb_button {
	background: var(--um-navy);
	color: #ffffff !important;
}

.fis-hero .fis-btn--gold.et_pb_button:hover {
	background: var(--um-blue);
}

.fis-hero .fis-btn--ghost.et_pb_button {
	background: rgba(255, 255, 255, 0.7);
	color: var(--um-navy) !important;
	box-shadow: inset 0 0 0 1.5px var(--um-navy);
}

.fis-hero .fis-btn--ghost.et_pb_button:hover {
	background: #ffffff;
}

/* ==========================================================================
   05c Ubin identitas kartu departemen
   Situs departemen hanya menyajikan poster, bukan foto, jadi kartu memakai
   ubin warna bermerek daripada memasang foto yang tidak mewakili.
   ========================================================================== */
.fis-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 96px;
	background: linear-gradient(135deg, var(--fis-brand) 0%, var(--fis-brand-soft) 100%);
	border-bottom: 3px solid var(--fis-gold);
}

.fis-card__media span {
	font-family: var(--fis-sans);
	font-size: 26px;
	font-weight: 800;
	letter-spacing: 0.06em;
	color: #ffffff;
}

@media (max-width: 980px) {
	.fis-hero h1 {
		font-size: 36px;
		max-width: none;
	}

	.fis-hero .fis-lead {
		font-size: 17px;
	}

	.fis-hero::before {
		background: linear-gradient(
			180deg,
			rgba(255, 255, 255, 0.95) 0%,
			rgba(255, 255, 255, 0.9) 55%,
			rgba(255, 255, 255, 0.6) 100%
		);
	}
}

/* Chip kanal berita */
.fis-news__cats {
	margin-bottom: 22px !important;
}

.fis-chips--news a {
	gap: 8px;
}

.fis-chips--news a span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--fis-surface-alt);
	color: var(--fis-brand);
	font-size: 11.5px;
	font-weight: 700;
}

.fis-chips--news a:hover span {
	background: var(--fis-brand);
	color: #ffffff;
}

/* Perbaikan kontras & ukuran dari audit:
   - teks kartu riset #c8b2dd di atas ungu hanya 4,43:1 (perlu 4,5:1)
   - angka pada chip kategori 11,5px (minimum 12px) */
.fis-rcard p {
	color: var(--fis-on-dark) !important;
}

.fis-chips--news a span {
	font-size: 12px;
}

/* ==========================================================================
   02c Hero pola unit UM — latar ilustrasi + kartu jenjang
   Mengikuti fmipa.um.ac.id/HOME2026/: latar Aset W-UM002 yang diulang,
   dengan kartu jenjang pendidikan mengambang di atasnya.
   ========================================================================== */
.fis-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.fis-hero.et_pb_section {
	background-color: #fbfaf7;
	border-bottom: 1px solid var(--fis-line);
}

.fis-hero__titlerow.et_pb_row {
	margin-bottom: 0 !important;
	padding: 0 !important;
	min-height: 0;
}

.fis-hero__row.et_pb_row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	width: 92%;
	max-width: 1320px;
}

.fis-hero__row.et_pb_row::before,
.fis-hero__row.et_pb_row::after {
	display: none !important;
}

.fis-hero__row.et_pb_row > .et_pb_column {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

.fis-hero__row .et_pb_module {
	margin-bottom: 0 !important;
	height: 100%;
}

.fis-level {
	display: flex;
	gap: 18px;
	align-items: flex-start;
	height: 100%;
	padding: 20px;
	background: var(--fis-surface);
	border: 1px solid var(--fis-line);
	border-radius: 14px;
	box-shadow: 0 10px 26px rgba(28, 18, 48, 0.08);
}

.fis-level__thumb {
	flex-shrink: 0;
	width: 92px;
	height: 92px;
	border-radius: 10px;
	background-color: var(--fis-surface-alt);
	background-size: cover;
	background-position: center;
}

.fis-level__body h2 {
	font-family: var(--fis-sans) !important;
	font-size: 20px;
	font-weight: 700;
	color: var(--fis-brand);
	margin: 0 0 6px;
}

.fis-level__body p {
	margin: 0 0 8px;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--fis-text-body);
}

.fis-level__body p:last-child {
	margin-bottom: 0;
}

@media (max-width: 767px) {
	.fis-hero__row.et_pb_row {
		grid-template-columns: minmax(0, 1fr);
	}

	.fis-level {
		padding: 16px;
		gap: 14px;
	}

	.fis-level__thumb {
		width: 68px;
		height: 68px;
	}
}

/* ==========================================================================
   Halaman dalam sederhana (mis. Prospek Karier)
   ========================================================================== */
.fis-page__body h2 {
	font-size: 32px;
	margin: 0 0 16px;
}

.fis-page__body h3 {
	font-size: 20px;
	margin: 30px 0 12px;
}

.fis-page__body p,
.fis-page__body li {
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--fis-text-body);
}

.fis-karier__tabel {
	width: 100%;
	margin: 22px 0;
	border-collapse: collapse;
	font-size: 14px;
}

.fis-karier__tabel caption {
	text-align: left;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--fis-eyebrow);
	padding-bottom: 10px;
}

.fis-karier__tabel th,
.fis-karier__tabel td {
	padding: 11px 14px;
	border: 1px solid var(--fis-line);
	text-align: left;
	vertical-align: top;
}

.fis-karier__tabel thead th {
	background: var(--fis-brand);
	color: #ffffff;
	font-weight: 700;
}

.fis-karier__tabel tbody th {
	background: var(--fis-surface-alt);
	font-weight: 600;
	color: var(--fis-text);
}

/* Tanggal pada kartu berita 11,5px -> 12px (batas minimum aksesibilitas). */
.fis-blog .post-meta {
	font-size: 12px;
}

/* ==========================================================================
   02d Hero dua kolom — pola um.ac.id
   Kiri: badge, judul, tagline, dua tombol daftar, baris pimpinan.
   Kanan: kartu media. Latar pola ilustrasi UM yang disamarkan.
   ========================================================================== */
.fis-hero.et_pb_section {
	position: relative;
	background-color: #fbfbfd;
	border-bottom: 1px solid var(--fis-line);
}

/* Pola latar dibuat sangat samar supaya teks tetap terbaca. */
.fis-hero.et_pb_section::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(90deg, rgba(251, 251, 253, 0.97) 0%, rgba(251, 251, 253, 0.82) 45%, rgba(251, 251, 253, 0.6) 100%);
	pointer-events: none;
}

.fis-hero > .et_pb_row {
	position: relative;
	z-index: 1;
}

.fis-hero__row.et_pb_row {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 48px;
	align-items: center;
	width: 92%;
	max-width: 1320px;
}

.fis-hero__row.et_pb_row::before,
.fis-hero__row.et_pb_row::after {
	display: none !important;
}

.fis-hero__row.et_pb_row > .et_pb_column {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

.fis-hero__left.et_pb_module {
	margin-bottom: 0 !important;
}

/* ---- Badge & label sumber ---- */
.fis-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 12px !important;
	padding: 11px 22px !important;
	border-radius: 999px;
	background: var(--fis-brand);
	color: #ffffff;
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.2;
}

.fis-hero__star {
	color: var(--um-yellow);
	font-size: 16px;
	line-height: 1;
}

.fis-hero__source {
	margin: 0 0 18px !important;
	padding: 0 0 0 12px !important;
	border-left: 3px solid var(--fis-brand);
	font-size: 14px;
	font-weight: 500;
	color: var(--fis-text-body);
	line-height: 1.4;
}

/* ---- Judul & tagline ---- */
.fis-hero h1 {
	font-family: var(--fis-sans) !important;
	font-size: 56px;
	line-height: 1.08;
	font-weight: 800;
	color: var(--um-navy) !important;
	margin: 0 0 14px;
}

.fis-hero__tagline {
	display: inline-block;
	margin: 0 !important;
	padding: 0 0 8px !important;
	border-bottom: 1px solid var(--fis-brand-soft);
	font-size: 19px;
	font-weight: 600;
	color: var(--fis-brand);
}

/* ---- Tombol bertumpuk ---- */
.fis-hero__row .et_pb_button_module_wrapper {
	display: block;
	margin: 14px 0 0 !important;
}

.fis-btn--hero.et_pb_button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 288px;
	max-width: 100%;
	padding: 15px 22px !important;
	border: 0;
	border-radius: 8px;
	background: var(--fis-brand);
	color: #ffffff !important;
	font-family: var(--fis-sans);
	font-size: 15px;
	font-weight: 700;
}

.fis-btn--hero.et_pb_button::before {
	display: none !important;
}

/* Panah kanan seperti pola UM. */
.fis-btn--hero.et_pb_button::after {
	display: block !important;
	position: static !important;
	opacity: 1 !important;
	margin: 0 !important;
	font-size: 22px;
	line-height: 1;
	color: #ffffff;
}

.fis-btn--hero.et_pb_button:hover {
	background: var(--fis-brand-soft);
}

/* ---- Baris pimpinan ---- */
.fis-hero__leadersmod.et_pb_module {
	margin: 24px 0 0 !important;
}

.fis-hero__leaders {
	display: flex;
	align-items: center;
	gap: 14px;
}

.fis-hero__avatars {
	display: inline-flex;
}

.fis-hero__avatars i,
.fis-hero__avatars img {
	display: block;
	width: 38px;
	height: 38px;
	margin-left: -12px;
	border-radius: 50%;
	border: 2px solid #ffffff;
	background: linear-gradient(135deg, var(--fis-brand) 0%, var(--fis-brand-soft) 100%);
	object-fit: cover;
	box-shadow: 0 2px 6px rgba(28, 18, 48, 0.18);
}

.fis-hero__avatars i:first-child,
.fis-hero__avatars img:first-child {
	margin-left: 0;
}

.fis-hero__leaders a {
	font-size: 15px;
	font-weight: 700;
	color: var(--um-navy);
	text-decoration: none;
	line-height: 1.3;
	max-width: 190px;
}

.fis-hero__leaders a:hover {
	color: var(--fis-brand);
	text-decoration: underline;
}

/* ---- Kolom kanan: kartu media ---- */
.fis-hero__right.et_pb_module {
	margin-bottom: 0 !important;
}

.fis-hero__frame {
	width: 100%;
	aspect-ratio: 16 / 10;
	border-radius: 18px;
	background-color: var(--fis-surface-alt);
	background-size: cover;
	background-position: center;
	box-shadow: 0 22px 48px rgba(28, 18, 48, 0.18);
}

/* Divi memberi overflow tersembunyi pada pembungkus layout; sticky tidak
   bekerja bila salah satu leluhurnya memotong. */
#page-container,
#et-boc,
.et-l--header,
.et-l--header > .et_builder_inner_content {
	overflow: visible !important;
}

@media (max-width: 980px) {
	.fis-hero__row.et_pb_row {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	.fis-hero h1 {
		font-size: 38px;
	}

	.fis-hero__tagline {
		font-size: 17px;
	}

	.fis-hero.et_pb_section::after {
		background: rgba(251, 251, 253, 0.9);
	}

	.fis-btn--hero.et_pb_button {
		width: 100%;
	}
}

/* Tautan pimpinan di hero: 39px -> 44px pada lebar sentuh. */
@media (max-width: 980px) {
	.fis-hero__leaders a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* ==========================================================================
   Tipografi: keterbacaan
   Diturunkan dari pengukuran, bukan selera. Tiga hal yang benar-benar
   menentukan: panjang baris, ukuran, dan jarak baris — bukan keluarga huruf.
   ========================================================================== */

/* 1. PANJANG BARIS.
   Judul pengumuman terukur 155 karakter per baris karena membentang penuh
   selebar 1200px. Batas nyaman baca 45–75 karakter. */
.fis-notice .entry-title,
.fis-notice .entry-title a {
	display: inline-block;
	max-width: 58ch;
}

.fis-about__copy p:not(.fis-eyebrow),
.fis-page__body p:not(.fis-eyebrow),
.fis-page__body li {
	max-width: 68ch;
}

/* 2. UKURAN. Teks badan dinaikkan ke 16px, ukuran acuan yang lazim untuk
   situs institusi; teks pendukung minimal 13px. */
.fis-about__copy p:not(.fis-eyebrow) {
	font-size: 16px;
	line-height: 1.75;
}

.fis-page__body p:not(.fis-eyebrow),
.fis-page__body li {
	font-size: 16px;
	/* Guideline menetapkan spasi 1.5; 1.55 dipilih agar tetap lapang. */
	line-height: 1.55;
}

.fis-blog .post-content {
	font-size: 14px;
	line-height: 1.65;
}

.fis-card p,
.fis-level__body p {
	font-size: 13px;
	line-height: 1.65;
}

/* 3. BOBOT JUDUL.
   Semula 800. Diturunkan ke 600 mengikuti gaya about.google, yang memakai
   bobot ringan bahkan pada judul 60px. Selektor ini memakai id sehingga
   menimpa aturan penyetelan di bagian bawah berkas — jadi diubah di sini,
   bukan ditimpa dengan !important. */
#page-container h1,
#page-container h2,
#page-container h3 {
	font-weight: 600;
	letter-spacing: -0.02em;
}

.fis-blog .entry-title,
.fis-notice .entry-title {
	font-weight: 700;
	letter-spacing: -0.005em;
}

.fis-blog .entry-title {
	font-size: 19px;
	line-height: 1.35;
}

/* .fis-eyebrow kalah spesifisitas dari aturan paragraf per-seksi
   (mis. ".fis-about__copy p"), sehingga label kecil ikut membesar.
   Dikunci di sini. */
.fis-about__copy p.fis-eyebrow,
.fis-dept__head p.fis-eyebrow,
.fis-riset__head p.fis-eyebrow,
.fis-hero__copy p.fis-eyebrow,
.fis-page__body p.fis-eyebrow,
p.fis-eyebrow {
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	max-width: none;
}

/* Penyesuaian header resmi UM dipindah ke assets/um-header-fis.css,
   karena harus dimuat SETELAH assets/um-header.css agar bisa menimpa. */

/* ==========================================================================
   Halaman Profil
   ========================================================================== */
.fis-profil__row.et_pb_row {
	width: 90%;
	max-width: 1200px;
}

/* ---- Kartu orang ---- */
.fis-orang {
	display: flex;
	gap: 18px;
	align-items: flex-start;
}

.fis-orang__foto {
	flex-shrink: 0;
	width: 104px;
	height: 104px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--fis-surface-alt);
	border: 3px solid var(--fis-surface);
	box-shadow: 0 4px 14px rgba(28, 18, 48, 0.14);
}

.fis-orang__foto img,
.fis-orang__kosong {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: linear-gradient(135deg, var(--fis-brand) 0%, var(--fis-brand-soft) 100%);
}

.fis-orang__jabatan {
	margin: 0 0 2px !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fis-eyebrow);
}

.fis-orang__isi h3 {
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 1.3;
}

.fis-orang__meta {
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2px 12px;
	font-size: 13px;
	line-height: 1.5;
}

.fis-orang__meta dt {
	font-weight: 600;
	color: var(--fis-text-muted);
}

.fis-orang__meta dd {
	margin: 0;
	color: var(--fis-text-body);
	overflow-wrap: anywhere;
}

.fis-orang-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px 32px;
	margin-top: 22px;
}

.fis-orang-grid--ringkas {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.fis-orang-grid--ringkas .fis-orang__foto {
	width: 76px;
	height: 76px;
}

.fis-orang-grid--ringkas .fis-orang__isi h3 {
	font-size: 15.5px;
}

/* ---- Sambutan dekan ---- */
.fis-profil__dekan-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 40px;
	align-items: start;
	margin-top: 18px;
}

.fis-profil__dekan-grid .fis-orang__foto {
	width: 150px;
	height: 150px;
}

/* ---- Tagline ---- */
.fis-profil__tagline,
.fis-profil__tagline h2,
.fis-profil__tagline h3,
.fis-profil__tagline p {
	color: #ffffff !important;
}

.fis-profil__tagline .fis-eyebrow {
	color: var(--fis-gold-light) !important;
}

.fis-profil__tagline h2 {
	font-size: 44px;
	margin: 0 0 6px;
}

.fis-profil__tagline-kepanjangan {
	font-size: 18px;
	font-weight: 600;
	color: var(--fis-gold-light) !important;
	margin: 0 0 24px !important;
}

.fis-profil__tagline-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.fis-profil__tagline-grid h3 {
	font-size: 19px;
	margin: 0 0 6px;
}

/* ---- Fakultas dalam angka ---- */
.fis-angka {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 16px;
	margin: 22px 0 16px;
}

.fis-angka__item {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 20px;
	background: var(--fis-surface);
	border: 1px solid var(--fis-line);
	border-radius: 12px;
}

.fis-angka__num {
	font-size: 34px;
	font-weight: 800;
	line-height: 1;
	color: var(--fis-brand);
}

.fis-angka__label {
	font-size: 13px;
	font-weight: 600;
	color: var(--fis-text-muted);
	line-height: 1.45;
}

/* ---- Dua kolom umum ---- */
.fis-profil__dua-kolom {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 36px;
	align-items: start;
	margin-top: 18px;
}

.fis-profil__gambar,
.fis-profil__peta,
.fis-profil__bagan {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
	border: 1px solid var(--fis-line);
}

.fis-profil__bagan {
	margin: 20px 0 14px;
	background: #ffffff;
}

/* ---- Visi & misi ---- */
.fis-profil__visi-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: 28px;
	align-items: start;
	margin-top: 18px;
}

.fis-profil__visi-kartu {
	padding: 28px;
	background: var(--fis-brand);
	border-radius: 14px;
	color: #ffffff;
}

.fis-profil__visi-kartu h2,
.fis-profil__visi-kartu p {
	color: #ffffff !important;
}

.fis-profil__visi-kartu .fis-note {
	color: var(--fis-on-dark-muted) !important;
}

.fis-profil__misi ol {
	padding-left: 1.2em;
}

.fis-profil__misi li {
	margin-bottom: 8px;
	line-height: 1.65;
}

@media (max-width: 980px) {
	.fis-profil__dekan-grid,
	.fis-profil__dua-kolom,
	.fis-profil__visi-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 26px;
	}

	.fis-orang-grid,
	.fis-orang-grid--ringkas,
	.fis-profil__tagline-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.fis-orang-grid,
	.fis-orang-grid--ringkas,
	.fis-profil__tagline-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.fis-profil__tagline h2 {
		font-size: 34px;
	}
}

/* Judul halaman dalam */
.fis-page__body h1 {
	font-size: 42px;
	line-height: 1.12;
	margin: 0 0 10px;
}

.fis-page__intro {
	font-size: 17px;
	line-height: 1.65;
	color: var(--fis-text-muted);
	max-width: 62ch;
	margin: 0 0 8px !important;
}

/* Surel dan telepon pada kartu orang adalah target ketuk. */
@media (max-width: 980px) {
	.fis-orang__meta dd a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

@media (max-width: 640px) {
	.fis-page__body h1 {
		font-size: 30px;
	}
}

/* Tautan di dalam halaman dalam memakai warna merek, bukan biru bawaan Divi
   yang hanya 2,75:1 di atas putih. */
.fis-page__body a,
.fis-orang__meta a {
	color: var(--fis-link);
	text-decoration: none;
	font-weight: 600;
}

.fis-page__body a:hover,
.fis-orang__meta a:hover {
	text-decoration: underline;
}

.fis-profil__tagline .fis-page__body a,
.fis-profil__visi-kartu a {
	color: var(--fis-gold-light);
}

@media (max-width: 980px) {
	.fis-profil__sarana .fis-page__body a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* ==========================================================================
   Halaman pendaratan (Akademik, Kemahasiswaan, Penelitian, Zona Integritas)
   ========================================================================== */

.fis-landing__kepala .fis-page__body h1 {
	margin-bottom: 8px;
}

.fis-page__body h2 {
	font-size: 30px;
	line-height: 1.2;
	margin: 0 0 8px;
}

/* ---- Kartu tautan ---- */
.fis-kartu-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 16px;
	margin-top: 24px;
}

.fis-kartu-grid--4 {
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.fis-kartu {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-height: 132px;
	padding: 20px;
	background: #ffffff;
	border: 1px solid #e4dced;
	border-left: 3px solid var(--fis-brand);
	border-radius: 10px;
	text-decoration: none !important;
	color: inherit !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.fis-kartu:hover,
.fis-kartu:focus-visible {
	border-color: var(--fis-brand);
	box-shadow: 0 6px 18px rgba(92, 0, 152, 0.14);
	transform: translateY(-2px);
}

.fis-kartu:focus-visible {
	outline: 3px solid var(--um-yellow);
	outline-offset: 2px;
}

.fis-kartu__lencana {
	align-self: flex-start;
	padding: 2px 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fis-brand-dark);
	background: #f0e6f8;
	border-radius: 999px;
}

.fis-kartu__judul {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--fis-brand-dark);
}

.fis-kartu__desc {
	flex: 1;
	font-size: 14px;
	line-height: 1.55;
	color: var(--fis-text-muted);
}

.fis-kartu__aksi {
	font-size: 13px;
	font-weight: 700;
	color: var(--fis-link);
}

.fis-kartu__aksi::after {
	content: " \2192";
}

/* Latar seksi berwarna: kartu tetap putih, cukup naikkan kontras tepinya. */
.fis-landing__prodi .fis-kartu,
.fis-landing__ormawa .fis-kartu,
.fis-landing__jurnal .fis-kartu,
.fis-landing__dokumen .fis-kartu,
.fis-landing__sdgs .fis-kartu,
.fis-landing__panduan .fis-kartu,
.fis-landing__karya .fis-kartu {
	border-color: #ded2ea;
}

/* ---- Tabel ----
   Dibungkus wadah yang bisa digeser agar badan halaman tidak ikut melebar di
   ponsel. Wadahnya fokusable supaya bisa digeser dengan papan ketik. */
.fis-tabel-bungkus {
	margin-top: 24px;
	overflow-x: auto;
	border: 1px solid #e4dced;
	border-radius: 10px;
	background: #ffffff;
}

.fis-tabel-bungkus:focus-visible {
	outline: 3px solid var(--um-yellow);
	outline-offset: 2px;
}

.fis-tabel {
	width: 100%;
	min-width: 620px;
	border-collapse: collapse;
	font-size: 14px;
}

.fis-tabel th,
.fis-tabel td {
	padding: 12px 16px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid #eee6f3;
	line-height: 1.5;
}

.fis-tabel thead th {
	position: sticky;
	top: 0;
	background: var(--fis-brand);
	color: #ffffff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border-bottom: 0;
}

.fis-tabel tbody th {
	font-weight: 600;
	color: var(--fis-brand-dark);
}

.fis-tabel tbody tr:last-child th,
.fis-tabel tbody tr:last-child td {
	border-bottom: 0;
}

.fis-tabel tbody tr:nth-child(even) {
	background: #faf8fc;
}

.fis-tabel a {
	color: var(--fis-link);
	font-weight: 600;
}

/* ---- Lencana peringkat ---- */
.fis-peringkat {
	display: inline-block;
	padding: 3px 10px;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
	border-radius: 999px;
}

.fis-peringkat--berlaku {
	color: #14532d;
	background: #dcfce7;
}

.fis-peringkat--segera {
	color: #713f12;
	background: #fef3c7;
}

.fis-peringkat--habis {
	color: #7f1d1d;
	background: #fee2e2;
}

.fis-peringkat--baru {
	color: #1e3a5f;
	background: #dbeafe;
}

.fis-catatan {
	margin-top: 12px !important;
	padding: 12px 16px;
	font-size: 13px;
	line-height: 1.6;
	color: #713f12;
	background: #fffbeb;
	border-left: 3px solid #f59e0b;
	border-radius: 0 8px 8px 0;
}

/* ---- Pita angka ---- */
.fis-angka-pita {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	list-style: none;
	margin: 20px 0 0 !important;
	padding: 0 !important;
}

.fis-angka-pita li {
	flex: 1 1 140px;
	padding: 14px 18px;
	background: #ffffff;
	border: 1px solid #e4dced;
	border-radius: 10px;
	list-style: none !important;
}

.fis-angka-pita strong {
	display: block;
	font-size: 30px;
	font-weight: 800;
	line-height: 1.1;
	color: var(--fis-brand);
}

.fis-angka-pita span {
	display: block;
	margin-top: 2px;
	font-size: 13px;
	color: var(--fis-text-muted);
}

/* ---- Daftar bernomor (enam area perubahan) ---- */
.fis-daftar-angka {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 16px;
	counter-reset: fis-area;
	margin: 24px 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.fis-daftar-angka li {
	position: relative;
	padding: 20px 20px 20px 62px;
	background: #ffffff;
	border: 1px solid #e4dced;
	border-radius: 10px;
	list-style: none !important;
}

.fis-daftar-angka li::before {
	counter-increment: fis-area;
	content: counter(fis-area);
	position: absolute;
	left: 20px;
	top: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	font-size: 14px;
	font-weight: 800;
	color: #ffffff;
	background: var(--fis-brand);
	border-radius: 50%;
}

.fis-daftar-angka strong {
	display: block;
	font-size: 15px;
	line-height: 1.3;
	color: var(--fis-brand-dark);
}

.fis-daftar-angka span {
	display: block;
	margin-top: 4px;
	font-size: 14px;
	line-height: 1.55;
	color: var(--fis-text-muted);
}

@media (max-width: 640px) {
	.fis-page__body h2 {
		font-size: 24px;
	}

	.fis-kartu-grid,
	.fis-kartu-grid--4 {
		grid-template-columns: 1fr;
	}

	.fis-angka-pita strong {
		font-size: 26px;
	}
}

/* Tautan di dalam sel tabel: kotak <a> hanya setinggi barisnya sehingga
   gagal sebagai target ketuk meski selnya lega. Kotaknya dibesarkan. */
@media (max-width: 980px) {
	.fis-tabel a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* Tautan di dalam kalimat dikecualikan WCAG 2.5.8, tetapi 24px tetap
   dipenuhi agar tidak bergantung pada pengecualian itu. */
.fis-page__body p a {
	display: inline-block;
	min-height: 24px;
	line-height: 24px;
}

/* ---- Peta situs ---- */
.fis-peta__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	align-items: start;
	gap: 24px;
	margin-top: 32px;
}

.fis-peta__blok {
	padding: 20px 22px;
	background: #ffffff;
	border: 1px solid #e4dced;
	border-top: 3px solid var(--fis-brand);
	border-radius: 10px;
}

.fis-peta__blok h2 {
	font-size: 16px !important;
	line-height: 1.3;
	margin: 0 0 10px !important;
	padding-bottom: 10px;
	border-bottom: 1px solid #f0eaf6;
}

.fis-peta__blok h2 a {
	color: var(--fis-brand-dark);
	text-decoration: none;
}

.fis-peta__blok ul {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.fis-peta__blok li {
	list-style: none !important;
	margin: 0 !important;
}

.fis-peta__blok li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-height: 40px;
	padding: 4px 0;
	font-size: 14px;
	line-height: 1.45;
	color: var(--fis-text-muted);
	text-decoration: none;
	border-bottom: 1px solid #f7f3fa;
}

.fis-peta__blok li:last-child a {
	border-bottom: 0;
}

.fis-peta__blok li a:hover,
.fis-peta__blok li a:focus-visible {
	color: var(--fis-link);
}

.fis-peta__jumlah {
	flex: none;
	min-width: 24px;
	padding: 1px 7px;
	font-size: 12px;
	font-weight: 700;
	text-align: center;
	color: var(--fis-brand-dark);
	background: #f0e6f8;
	border-radius: 999px;
}

@media (max-width: 980px) {
	.fis-peta__blok li a {
		min-height: 44px;
	}

	.fis-peta__blok h2 a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* ---- Direktori SDM ---- */
.fis-dir__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	align-items: start;
	gap: 20px;
	margin-top: 28px;
}

.fis-dir__grup {
	padding: 20px 22px;
	background: #ffffff;
	border: 1px solid #e4dced;
	border-top: 3px solid var(--fis-brand);
	border-radius: 10px;
}

.fis-dir__grup h3 {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-size: 15px !important;
	line-height: 1.3;
	margin: 0 0 12px !important;
	padding-bottom: 12px;
	color: var(--fis-brand-dark);
	border-bottom: 1px solid #f0eaf6;
}

.fis-dir__jumlah {
	flex: none;
	padding: 2px 9px;
	font-size: 12px;
	font-weight: 700;
	color: var(--fis-brand-dark);
	background: #f0e6f8;
	border-radius: 999px;
}

.fis-dir__grup ul {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.fis-dir__orang {
	display: flex;
	align-items: center;
	gap: 12px;
	list-style: none !important;
	margin: 0 !important;
	padding: 8px 0;
	border-bottom: 1px solid #f7f3fa;
}

.fis-dir__orang:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.fis-dir__nama {
	display: block;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--fis-text);
}

.fis-dir__jabatan {
	display: block;
	margin-top: 1px;
	font-size: 13px;
	line-height: 1.45;
	color: var(--fis-text-muted);
}

@media (max-width: 640px) {
	.fis-dir__grid {
		grid-template-columns: 1fr;
	}
}

/* ---- Halaman ketentuan (privasi, syarat) ---- */
.fis-legal .fis-page__body h2 {
	font-size: 21px !important;
	margin: 32px 0 8px !important;
	padding-top: 20px;
	border-top: 1px solid #efe8f5;
}

.fis-legal .fis-page__body p,
.fis-legal .fis-page__body li {
	font-size: 16px;
	line-height: 1.7;
}

.fis-legal .fis-page__body ul {
	margin: 10px 0 0 !important;
	padding-left: 22px !important;
}

.fis-legal .fis-page__body li {
	margin-bottom: 8px;
}

.fis-legal .fis-page__body code {
	padding: 1px 6px;
	font-size: 14px;
	background: #f4eefa;
	border-radius: 4px;
	color: var(--fis-brand-dark);
}

/* Penanda status di dalam sel tabel (mis. akreditasi kedaluwarsa). */
.fis-tanda {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	white-space: nowrap;
	border-radius: 4px;
}

.fis-tanda--habis {
	color: #ffffff;
	background: #b91c1c;
}

.fis-tanda--segera {
	color: #713f12;
	background: #fde68a;
}

/* ---- Avatar direktori ----
   Foto bersifat opsional. Selama belum ada, lingkaran inisial menjaga agar
   barisnya tetap rapi dan tinggi barisnya tidak berubah ketika foto ditambah. */
.fis-dir__avatar {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	overflow: hidden;
	border-radius: 50%;
	background: #f0e6f8;
}

.fis-dir__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.fis-dir__avatar--inisial span {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--fis-brand);
}

.fis-dir__teks {
	min-width: 0;
}

/* ---- Panel pencarian ----
   Dibuat oleh JavaScript; tanpa skrip, daftar tetap tampil utuh. */
.fis-dir__cari {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 14px;
	margin-top: 24px;
	padding: 18px 20px;
	background: #ffffff;
	border: 1px solid #e4dced;
	border-radius: 10px;
}

.fis-dir__kotak {
	flex: 1 1 240px;
	min-width: 0;
}

.fis-dir__label {
	display: block;
	margin-bottom: 5px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fis-brand-dark);
}

.fis-dir__input,
.fis-dir__pilih {
	width: 100%;
	min-height: 44px;
	padding: 9px 13px;
	font-family: inherit;
	font-size: 15px;
	color: var(--fis-text);
	background: #ffffff;
	border: 1px solid #d9cce6;
	border-radius: 8px;
}

.fis-dir__input:focus,
.fis-dir__pilih:focus {
	outline: 3px solid var(--um-yellow);
	outline-offset: 1px;
	border-color: var(--fis-brand);
}

.fis-dir__reset {
	flex: none;
	min-height: 44px;
	padding: 9px 18px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	color: #ffffff;
	background: var(--fis-brand);
	border: 0;
	border-radius: 8px;
	cursor: pointer;
}

.fis-dir__reset:hover {
	background: var(--fis-brand-dark);
}

.fis-dir__reset:focus-visible {
	outline: 3px solid var(--um-yellow);
	outline-offset: 2px;
}

.fis-dir__hitung:not(:empty) {
	margin: 12px 0 0 !important;
	font-size: 14px;
	font-weight: 600;
	color: var(--fis-brand-dark);
}

@media (max-width: 640px) {
	.fis-dir__reset {
		width: 100%;
	}
}

/* Atribut [hidden] hanya bernilai display:none pada stylesheet bawaan peramban,
   sehingga aturan display:flex/grid di atas menimpanya dan baris yang disaring
   tetap tampil. Dinyatakan ulang secara tegas di sini.
   (Ini pernah terlewat: penyaringan tampak jalan karena atribut memang terpasang,
   padahal tidak ada yang hilang dari layar.) */
.fis-dir__orang[hidden],
.fis-dir__grup[hidden],
.fis-dir__grid[hidden] {
	display: none !important;
}

/* ---- Avatar yang bisa diklik ---- */
.fis-dir__avatar--tombol,
.fis-orang__tombol {
	padding: 0;
	border: 0;
	cursor: zoom-in;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.fis-dir__avatar--tombol:hover {
	transform: scale(1.06);
	box-shadow: 0 0 0 3px var(--fis-brand);
}

.fis-dir__avatar--tombol:focus-visible {
	outline: 3px solid var(--um-yellow);
	outline-offset: 2px;
}

/* ---- Modal foto ---- */
.fis-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(17, 8, 26, 0.82);
	overscroll-behavior: contain;
}

.fis-modal[hidden] {
	display: none !important;
}

body.fis-modal-terbuka {
	overflow: hidden;
}

.fis-modal__kotak {
	position: relative;
	display: flex;
	flex-direction: column;
	/* Lebar sebenarnya ditetapkan skrip mengikuti ukuran asli gambar, supaya
	   foto kecil tidak dibesarkan paksa. Nilai di sini batas atasnya. */
	max-width: min(440px, 100%);
	max-height: 100%;
	overflow: auto;
	background: #ffffff;
	border-radius: 14px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}

.fis-modal__gambar {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 14px 14px 0 0;
	background: #f0e6f8;
}

.fis-modal__teks {
	padding: 16px 20px 20px;
}

.fis-modal__nama {
	margin: 0 !important;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--fis-brand-dark);
}

.fis-modal__jabatan {
	margin: 4px 0 0 !important;
	font-size: 14px;
	line-height: 1.5;
	color: var(--fis-text-muted);
}

.fis-modal__jabatan[hidden] {
	display: none !important;
}

.fis-modal__tutup {
	position: absolute;
	top: 10px;
	right: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	font-size: 26px;
	line-height: 1;
	color: #ffffff;
	background: rgba(17, 8, 26, 0.62);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
}

.fis-modal__tutup:hover {
	background: var(--fis-brand);
}

.fis-modal__tutup:focus-visible {
	outline: 3px solid var(--um-yellow);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.fis-dir__avatar--tombol,
.fis-orang__tombol {
		transition: none;
	}

	.fis-dir__avatar--tombol:hover {
		transform: none;
	}
}

/* ==========================================================================
   Penyetelan tipografi
   --------------------------------------------------------------------------
   Rujukan gaya: about.google, yang memakai Google Sans / Google Sans Text.
   Kedua fon itu milik Google, tidak dilisensikan untuk pihak lain dan tidak
   tersedia di Google Fonts — jadi tidak bisa dipakai. Guideline UM 2026
   (slide 28) juga menetapkan Albert Sans sebagai jenis huruf wajib.

   Yang membuat teks Google terasa lapang bukan bentuk hurufnya, melainkan
   metriknya. Tiga perbedaan yang diperbaiki di sini:

     | Hal              | about.google | kita sebelumnya |
     | judul besar      | bobot 400    | bobot 800       |
     | teks isi         | bobot 400    | bobot 500       |
     | spasi baris isi  | 1.5          | 1.75            |

   Spasi 1.5 juga yang ditetapkan Guideline, jadi perubahan ini sekaligus
   memperbaiki kepatuhan. Bobot judul tidak diturunkan sampai 400 karena
   Albert Sans lebih ringan daripada Google Sans pada bobot yang sama.
   ========================================================================== */

.fis-page__body h1,
.fis-hero h1 {
	font-weight: 600;
	letter-spacing: -0.02em;
}

.fis-page__body h2,
.fis-page__body h3,
.fis-peta__blok h2,
.fis-dir__grup h3 {
	font-weight: 650;
	letter-spacing: -0.01em;
}

.fis-page__body p,
.fis-page__intro,
.fis-kartu__desc,
.fis-dir__jabatan,
.fis-legal .fis-page__body li {
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: 0.01em;
}

/* Panjang baris ideal 60–75 karakter; pengantar sempat sampai 76. */
.fis-page__intro {
	max-width: 68ch;
}

/* Nama orang dan judul kartu tetap agak tebal supaya mudah dipindai. */
.fis-dir__nama,
.fis-kartu__judul {
	font-weight: 600;
}

/* ---- Daftar unduhan ---- */
.fis-unduh-daftar {
	display: grid;
	gap: 10px;
	margin-top: 24px;
}

.fis-unduh {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 64px;
	padding: 12px 16px;
	background: #ffffff;
	border: 1px solid #e4dced;
	border-left: 3px solid var(--fis-brand);
	border-radius: 10px;
	text-decoration: none !important;
	color: inherit !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

a.fis-unduh:hover,
a.fis-unduh:focus-visible {
	border-color: var(--fis-brand);
	box-shadow: 0 4px 14px rgba(92, 0, 152, 0.13);
}

a.fis-unduh:focus-visible {
	outline: 3px solid var(--um-yellow);
	outline-offset: 2px;
}

/* Baris penanda: isi belum tersedia, sengaja tidak bisa diklik. */
.fis-unduh--kosong {
	border-left-color: #cbc2d6;
	background: #fbfafc;
}

.fis-unduh--kosong .fis-unduh__judul,
.fis-unduh--kosong .fis-unduh__ket {
	color: #6b6377;
}

.fis-unduh__jenis {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 40px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--fis-brand-dark);
	background: #f0e6f8;
	border-radius: 6px;
}

.fis-unduh--kosong .fis-unduh__jenis {
	color: #6b6377;
	background: #eeebf1;
}

.fis-unduh__isi {
	flex: 1;
	min-width: 0;
}

.fis-unduh__judul {
	display: block;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--fis-brand-dark);
}

.fis-unduh__ket {
	display: block;
	margin-top: 2px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--fis-text-muted);
}

.fis-unduh__aksi {
	flex: none;
	font-size: 13px;
	font-weight: 700;
	color: var(--fis-link);
}

.fis-unduh--kosong .fis-unduh__aksi {
	color: #6b6377;
	font-weight: 600;
}

@media (max-width: 640px) {
	.fis-unduh {
		flex-wrap: wrap;
		gap: 10px;
	}

	.fis-unduh__isi {
		flex: 1 1 100%;
		order: 3;
	}
}

/* Kartu tanpa tautan: dipakai untuk penanda isi yang belum tersedia. */
.fis-kartu--statis {
	border-left-color: #cbc2d6;
	background: #fbfafc;
	cursor: default;
}

.fis-kartu--statis .fis-kartu__judul {
	color: #4b4357;
}

.fis-kartu--statis:hover {
	transform: none;
	box-shadow: none;
	border-color: #e4dced;
}

/* ==========================================================================
   Warna judul seksi
   --------------------------------------------------------------------------
   Sebelumnya seluruh judul memakai satu warna gelap (#1c1230), sehingga
   halaman panjang seperti Profil terasa monoton dan batas antarbagian sulit
   ditangkap sekilas. Judul seksi (h2) kini memakai ungu identitas fakultas —
   memberi tiga tingkat yang jelas saat dipindai:

     label kecil (eyebrow)  -> ungu tua, huruf kapital kecil
     judul seksi (h2)       -> ungu identitas, besar
     isi                    -> abu-abu gelap

   Judul halaman (h1) sengaja tetap gelap sebagai satu titik jangkar, dan
   judul di dalam kartu (h3) tetap gelap agar tidak bersaing dengan h2.
   Seksi berlatar ungu sudah memaksa putih lewat aturannya sendiri, jadi
   tidak ikut terpengaruh.
   ========================================================================== */

#page-container .fis-page__body h2 {
	color: var(--fis-brand);
}

/* Latar ungu: judulnya harus tetap putih. */
.fis-profil__tagline h2,
.fis-profil__visi-kartu h2,
.fis-cta h2,
.fis-hero h2 {
	color: #ffffff !important;
}

/* Garis tipis di bawah judul seksi memperjelas awal tiap bagian tanpa
   menambah warna baru. */
#page-container .fis-page__body h2::after {
	content: "";
	display: block;
	width: 48px;
	height: 3px;
	margin-top: 10px;
	background: var(--um-yellow, #ffc820);
	border-radius: 2px;
}

/* Judul di dalam kartu bukan judul seksi — tanpa garis. */
.fis-kartu h2::after,
.fis-profil__visi-kartu h2::after,
.fis-profil__tagline h2::after {
	display: none;
}

/* Judul tingkat tiga tetap gelap supaya hierarki tetap terbaca. */
#page-container .fis-page__body h3 {
	color: var(--fis-text);
}

#page-container .fis-orang__isi h3,
#page-container .fis-dir__grup h3 {
	color: var(--fis-brand-dark);
}

/* ---- Foto pada kartu orang (halaman Profil) ----
   Kontraknya sama dengan avatar direktori: tombol pembuka modal, bukan
   tautan. Ukuran dan bentuk mengikuti .fis-orang__foto yang sudah ada,
   jadi tata letaknya tidak berubah. */
.fis-orang__tombol {
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: none;
	cursor: zoom-in;
	border-radius: inherit;
	overflow: hidden;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.fis-orang__tombol img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fis-orang__tombol:hover {
	transform: scale(1.04);
	box-shadow: 0 0 0 3px var(--fis-brand);
}

.fis-orang__tombol:focus-visible {
	outline: 3px solid var(--um-yellow);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.fis-orang__tombol {
		transition: none;
	}

	.fis-orang__tombol:hover {
		transform: none;
	}
}

/* Kotak modal diberi lebar minimum agar nama dan jabatan tidak terpotong
   ketika fotonya kecil; gambarnya sendiri dibatasi skrip pada ukuran asli
   supaya tidak dibesarkan paksa. */
.fis-modal__kotak {
	min-width: min(300px, 100%);
	align-items: center;
}

.fis-modal__gambar {
	align-self: center;
	border-radius: 14px 14px 0 0;
}

.fis-modal__teks {
	align-self: stretch;
}
