/* ==========================================================================
   FPSI UNJ — DESIGN LAYER
   Lapisan desain di atas markup Elementor. Konten TIDAK diubah.

   Cara kerja: file ini dimuat paling akhir, dan selector-nya diberi prefix
   `body.elementor-page-86` (0,3,1) sehingga menang atas CSS generated Elementor
   `.elementor-86 .elementor-element.elementor-element-xxx` (0,3,0).
   `!important` hanya dipakai untuk menimpa inline style / transform Elementor.

   Daftar isi
   00. Design tokens
   01. Reset & fondasi global (semua halaman)
   02. Header + navigasi
   03. Beranda — ritme & container
   04. Beranda — Hero
   05. Beranda — Statistik
   06. Beranda — Kartu akses cepat
   07. Beranda — Kehidupan Kampus & Fasilitas
   08. Beranda — Kabar Psikologi
   09. Beranda — Instagram
   10. Footer
   11. Motion (reveal on scroll) + reduced motion
   12. Aksesibilitas & utilitas
   ========================================================================== */


/* ==========================================================================
   00. DESIGN TOKENS
   Satu sumber kebenaran untuk warna, spasi, radius, shadow, easing.
   Semua nilai warna teks sudah lolos kontras WCAG AA (>= 4.5:1) di atas putih.
   ========================================================================== */

:root {
	/* -- Brand ------------------------------------------------------------ */
	--fpsi-primary:        #00AEEF; /* fill, ikon, aksen grafis  (JANGAN untuk teks di atas putih) */
	--fpsi-primary-600:    #0092C8;
	--fpsi-primary-deep:   #00799B; /* teks & link di atas putih — kontras 5.1:1 */
	--fpsi-ink:            #003A4D; /* heading gelap             — kontras 12.4:1 */
	--fpsi-secondary:      #004D40; /* hijau tua, aksen sekunder */
	--fpsi-accent:         #FFB020; /* highlight angka / badge   */

	/* -- Netral ----------------------------------------------------------- */
	--fpsi-text:           #1A2430; /* body text                 — kontras 14.1:1 */
	--fpsi-muted:          #526478; /* teks sekunder             — kontras 6.4:1  */
	--fpsi-line:           #E2E8F0; /* border halus */
	--fpsi-surface:        #F5FAFC; /* background section selang-seling */
	--fpsi-surface-2:      #E9F6FB;
	--fpsi-white:          #FFFFFF;

	/* -- Tint transparan (aman di atas foto maupun putih) ------------------ */
	--fpsi-tint-8:         rgba(0, 174, 239, .08);
	--fpsi-tint-14:        rgba(0, 174, 239, .14);

	/* -- Radius ----------------------------------------------------------- */
	--fpsi-r-sm:  10px;
	--fpsi-r-md:  16px;
	--fpsi-r-lg:  20px;
	--fpsi-r-xl:  28px;
	--fpsi-r-pill: 999px;

	/* -- Shadow (nada biru, bukan hitam pekat) ---------------------------- */
	--fpsi-shadow-1: 0 1px 2px rgba(0, 58, 77, .06), 0 1px 3px rgba(0, 58, 77, .04);
	--fpsi-shadow-2: 0 2px 4px rgba(0, 58, 77, .05), 0 8px 24px rgba(0, 58, 77, .08);
	--fpsi-shadow-3: 0 4px 8px rgba(0, 58, 77, .06), 0 18px 40px rgba(0, 58, 77, .13);

	/* -- Ritme spasi section (seragam di seluruh beranda) ----------------- */
	--fpsi-section-y:  clamp(56px, 7vw, 104px);
	--fpsi-gutter:     clamp(20px, 5vw, 64px);
	--fpsi-gap:        clamp(20px, 2.2vw, 28px);

	/* -- Motion ----------------------------------------------------------- */
	--fpsi-ease:   cubic-bezier(.22, .61, .36, 1);
	--fpsi-fast:   .18s;
	--fpsi-base:   .32s;
	--fpsi-slow:   .6s;

	/* -- Layout ----------------------------------------------------------- */
	/* Satu lebar konten untuk header, isi halaman, dan footer.
	   Sebelumnya berbeda-beda: header 1200px, footer 1400px, kit 1140px —
	   itulah sebabnya navbar terlihat lebih sempit dari bagian lain.
	   Ubah SATU angka ini kalau ingin kembali ke 1200px. */
	--fpsi-max:    1400px;
	--fpsi-header-h: 132px;
}


/* ==========================================================================
   01. RESET & FONDASI GLOBAL (berlaku semua halaman)
   ========================================================================== */

html {
	scroll-behavior: smooth;
	/* Anchor link tidak lagi tertutup header sticky. */
	scroll-padding-top: calc(var(--fpsi-header-h) + 16px);
	-webkit-text-size-adjust: 100%;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	/* Jaring pengaman: tidak ada scroll horizontal di mobile.
	   `clip` dipakai (bukan `hidden`) agar tidak membentuk scroll container
	   yang bisa merusak position:sticky pada header. */
	overflow-x: hidden;
	overflow-x: clip;
}

/* Heading rapat & seimbang — kunci kesan "modern" pada tipografi. */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
	text-wrap: balance;
	letter-spacing: -.015em;
}

p, .elementor-widget-text-editor {
	text-wrap: pretty;
}

/* Angka statistik sejajar rapi (tidak "goyang" saat counter animasi). */
.elementor-counter-number-wrapper {
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1;
}

/* Gambar tidak pernah meluber. */
img, svg, video, iframe {
	max-width: 100%;
}

/* Teks seleksi on-brand. */
::selection {
	background: var(--fpsi-tint-14);
	color: var(--fpsi-ink);
}

/* Scrollbar tipis on-brand (WebKit). */
::-webkit-scrollbar        { width: 10px; height: 10px; }
::-webkit-scrollbar-track  { background: var(--fpsi-surface); }
::-webkit-scrollbar-thumb  { background: #C3D3DE; border-radius: var(--fpsi-r-pill); border: 2px solid var(--fpsi-surface); }
::-webkit-scrollbar-thumb:hover { background: var(--fpsi-primary-600); }


/* ==========================================================================
   02. HEADER + NAVIGASI  (template Elementor #104, sudah sticky dari Elementor Pro)
   Kita TIDAK menambah position:sticky sendiri — hanya memperbaiki tampilannya.
   ========================================================================== */

/* Lebar konten header disamakan dengan footer (1400px). Sebelumnya header
   dipatok 1200px sementara footer 1400px, sehingga navbar tampak "kurang full"
   dan logo tidak sejajar dengan konten di bawahnya. */
@media (min-width: 768px) {
	.elementor-104 .elementor-element.elementor-element-73fa8766,
	.elementor-104 .elementor-element.elementor-element-21c034d7 {
		--content-width: var(--fpsi-max);
	}
}

/* Shadow header baru muncul setelah user scroll → header terasa "menempel". */
.elementor-104 .elementor-element.elementor-element-90fa9fd {
	box-shadow: none;
	transition: box-shadow var(--fpsi-base) var(--fpsi-ease),
	            background-color var(--fpsi-base) var(--fpsi-ease);
}

/* Solid, BUKAN kaca buram.
   Versi sebelumnya memakai `rgba(255,255,255,.88)` + `backdrop-filter: blur()`.
   Di beranda, foto hero terlihat menembus header sehingga tampak seperti kaca
   berembun — di halaman lain tidak kelihatan karena latarnya putih polos. */
body.fpsi-scrolled .elementor-104 .elementor-element.elementor-element-90fa9fd {
	box-shadow: 0 1px 0 var(--fpsi-line), 0 8px 28px rgba(0, 58, 77, .10);
	background: var(--fpsi-white);
}

/* --------------------------------------------------------------------------
   02b. HEADER TRANSPARAN DI ATAS HERO  (khusus beranda)
   Sesuai feedback sheet "Header": transparan saat di atas, berlatar saat scroll.

   Cara kerjanya sengaja TIDAK mengubah `position` header, supaya modul Sticky
   milik Elementor Pro (yang sudah aktif di #90fa9fd) tidak terganggu:
   header tetap di aliran normal, hero-nya yang ditarik naik ke belakang header
   memakai margin-top negatif. Saat sticky aktif, Elementor menyisipkan spacer
   setinggi header sehingga tidak ada lompatan layout.
   -------------------------------------------------------------------------- */

/* Header melayang di atas hero. */
body.home.elementor-page-86 #masthead {
	position: relative;
	z-index: 99;
	background: transparent;
}

/* Hero ditarik naik tepat setinggi header. */
body.home.elementor-page-86 .elementor-86 > .elementor-element.elementor-element-34881a83 {
	/* Keduanya diset: Elementor mengatur margin container lewat
	   `margin-block-start: var(--margin-block-start)`, jadi variabelnya
	   ikut diisi supaya hasilnya sama di semua jalur cascade. */
	--margin-top: calc(-1 * var(--fpsi-header-h));
	--margin-block-start: calc(-1 * var(--fpsi-header-h));
	margin-top: calc(-1 * var(--fpsi-header-h));
}

/* Scrim gelap tipis di balik header: menjaga logo & menu tetap terbaca
   berapa pun terangnya foto hero di baliknya. */
body.home.elementor-page-86 #masthead::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 100%;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(0, 26, 36, .55) 0%, rgba(0, 26, 36, .18) 70%, rgba(0, 26, 36, 0) 100%);
	transition: opacity var(--fpsi-base) var(--fpsi-ease);
}

/* Semua latar bar dimatikan saat masih di atas. */
body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-73fa8766:not(.elementor-motion-effects-element-type-background),
body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-73fa8766 > .elementor-motion-effects-container > .elementor-motion-effects-layer,
body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-21c034d7:not(.elementor-motion-effects-element-type-background),
body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-21c034d7 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-color: transparent;
	background-image: none;
}

/* Garis pemisah halus antara topbar dan baris menu. */
body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-73fa8766 {
	border-bottom: 1px solid rgba(255, 255, 255, .18);
}

/* Menu putih selama header transparan. */
body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item {
	color: var(--fpsi-white);
	fill: var(--fpsi-white);
	text-shadow: 0 1px 10px rgba(0, 24, 34, .45);
}

body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item:hover,
body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item.highlighted,
body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item.elementor-item-active {
	color: var(--fpsi-white);
	background: rgba(255, 255, 255, .16);
}

body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item:after,
body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item:before {
	background-color: var(--fpsi-white) !important;
}

/* Burger mobile ikut putih. */
body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-1a9e8e68 div.elementor-menu-toggle {
	color: var(--fpsi-white);
}

body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-1a9e8e68 div.elementor-menu-toggle svg {
	fill: var(--fpsi-white);
}

/* Logo di atas header transparan.

   JANGAN pakai `brightness(0) invert(1)`: filter itu memaksa SETIAP piksel
   buram menjadi putih, sehingga lambang UNJ kehilangan seluruh detail dan
   hanya menyisakan siluet lingkaran putih.

   Karena hanya tersedia satu berkas logo (Logo-Heading.png, teks biru tua)
   dan tidak ada versi putihnya, logo dipertahankan berwarna asli lalu diberi
   alas putih. Lambang tetap utuh, teks tetap terbaca di atas foto apa pun.
   Kalau nanti tersedia logo versi putih (SVG), blok ini bisa diganti dengan
   pertukaran berkas biasa. */
body.home.elementor-page-86 .elementor-104 .elementor-element.elementor-element-47546324 a {
	display: inline-flex;
	align-items: center;
	border-radius: var(--fpsi-r-md);
	transition: background-color var(--fpsi-base) var(--fpsi-ease),
	            padding var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-47546324 a {
	background-color: var(--fpsi-white);
	padding: 7px 15px;
	box-shadow: 0 6px 22px rgba(0, 24, 34, .28);
}

body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-47546324 img {
	filter: none;
	width: auto;
	height: 44px;
	max-width: none;
}

/* Di layar kecil logo asli dipatok 133px/100px; `height:auto` di atas akan
   membuatnya jauh lebih besar, jadi tingginya diturunkan di sini. */
@media (max-width: 1024px) {
	body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-47546324 img {
		height: 36px;
	}
	body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-47546324 a {
		padding: 6px 12px;
	}
}

@media (max-width: 767px) {
	body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-47546324 img {
		height: 30px;
	}
	body.home.elementor-page-86:not(.fpsi-scrolled) .elementor-104 .elementor-element.elementor-element-47546324 a {
		padding: 5px 10px;
		border-radius: var(--fpsi-r-sm);
	}
}

/* Setelah scroll: scrim hilang, header kembali solid seperti halaman lain. */
body.home.elementor-page-86.fpsi-scrolled #masthead::before {
	opacity: 0;
}

/* Di halaman SELAIN beranda tidak ada yang berubah — header tetap solid. */


/* --- Topbar (alamat/email + sosial) -------------------------------------- */

/* #00C0E8 + teks putih = kontras 2.2:1 (gagal WCAG).
   Diturunkan ke primary-deep → 5.1:1, tetap on-brand. */
.elementor-104 .elementor-element.elementor-element-73fa8766:not(.elementor-motion-effects-element-type-background),
.elementor-104 .elementor-element.elementor-element-73fa8766 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-color: var(--fpsi-primary-deep);
	background-image: linear-gradient(90deg, var(--fpsi-ink) 0%, var(--fpsi-primary-deep) 100%);
}

.elementor-104 .elementor-element.elementor-element-73fa8766 {
	--padding-top: 8px;
	--padding-bottom: 8px;
	overflow: hidden;
	/* Dipakai untuk animasi collapse saat scroll. */
	max-height: 64px;
	opacity: 1;
	transition: max-height var(--fpsi-base) var(--fpsi-ease),
	            opacity var(--fpsi-fast) linear,
	            padding var(--fpsi-base) var(--fpsi-ease);
}

/* Saat sudah scroll: topbar dilipat, header jadi ringkas & konten dapat ruang. */
body.fpsi-scrolled .elementor-104 .elementor-element.elementor-element-73fa8766 {
	max-height: 0;
	opacity: 0;
	--padding-top: 0px;
	--padding-bottom: 0px;
	pointer-events: none;
}

/* Teks topbar: weight 300 di 14px terlalu tipis untuk background berwarna. */
.elementor-104 .elementor-element.elementor-element-d505a79 .elementor-icon-list-item > .elementor-icon-list-text,
.elementor-104 .elementor-element.elementor-element-d505a79 .elementor-icon-list-item > a {
	font-weight: 500;
	letter-spacing: .01em;
}

/* Ikon sosial: target sentuh 36px + hover on-brand (bukan emas #d3b574). */
.elementor-104 .elementor-element.elementor-element-425e8683 .elementor-icon-list-item {
	border-radius: var(--fpsi-r-pill);
	transition: background-color var(--fpsi-fast) var(--fpsi-ease),
	            transform var(--fpsi-fast) var(--fpsi-ease);
}

.elementor-104 .elementor-element.elementor-element-425e8683 .elementor-icon-list-item > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	min-height: 36px;
}

.elementor-104 .elementor-element.elementor-element-425e8683 .elementor-icon-list-item:hover {
	background: rgba(255, 255, 255, .16);
	transform: translateY(-1px);
}

.elementor-104 .elementor-element.elementor-element-425e8683 .elementor-icon-list-item:hover .elementor-icon-list-icon svg,
.elementor-104 .elementor-element.elementor-element-425e8683 .elementor-icon-list-item:hover .elementor-icon-list-icon i {
	fill: var(--fpsi-white);
	color: var(--fpsi-white);
}

/* --- Baris logo + menu --------------------------------------------------- */

.elementor-104 .elementor-element.elementor-element-21c034d7 {
	--padding-top: 14px;
	--padding-bottom: 14px;
	transition: padding var(--fpsi-base) var(--fpsi-ease);
}

body.fpsi-scrolled .elementor-104 .elementor-element.elementor-element-21c034d7 {
	--padding-top: 8px;
	--padding-bottom: 8px;
}

/* Logo mengecil halus saat scroll. */
.elementor-104 .elementor-element.elementor-element-47546324 img {
	transition: width var(--fpsi-base) var(--fpsi-ease),
	            height var(--fpsi-base) var(--fpsi-ease);
}

body.fpsi-scrolled .elementor-104 .elementor-element.elementor-element-47546324 img {
	width: 224px;
	height: 40px;
}

/* --- Item menu utama ----------------------------------------------------- */

.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item {
	color: var(--fpsi-ink);
	fill: var(--fpsi-ink);
	font-weight: 700; /* sheet "Header" A6: font menu di-BOLD */
	letter-spacing: -.005em;
	border-radius: var(--fpsi-r-sm);
	transition: color var(--fpsi-fast) var(--fpsi-ease),
	            background-color var(--fpsi-fast) var(--fpsi-ease);
}

.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item:hover,
.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item:focus-visible,
.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item.highlighted {
	color: var(--fpsi-primary-deep);
	background: var(--fpsi-tint-8);
}

/* Halaman aktif ditandai jelas (sebelumnya emas #d3b574 — sisa template demo). */
.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--dropdown a.elementor-item-active {
	color: var(--fpsi-primary-deep);
	font-weight: 700;
}

/* Underline animasi dari tengah (menggantikan pointer-underline default). */
.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item:after,
.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-item:before {
	background-color: var(--fpsi-primary) !important;
	height: 3px !important;
	border-radius: var(--fpsi-r-pill);
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            opacity var(--fpsi-fast) linear !important;
}

/* Dropdown: kartu melayang, bukan kotak datar. */
.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--main .elementor-nav-menu--dropdown,
.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu__container.elementor-nav-menu--dropdown {
	border-radius: var(--fpsi-r-md);
	overflow: hidden;
	box-shadow: var(--fpsi-shadow-3);
	border: 1px solid var(--fpsi-line);
}

.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--dropdown a {
	padding-top: 14px;
	padding-bottom: 14px;
	padding-left: 18px;
	padding-right: 18px;
	transition: background-color var(--fpsi-fast) var(--fpsi-ease),
	            padding-left var(--fpsi-fast) var(--fpsi-ease);
}

.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--dropdown a:hover {
	background: var(--fpsi-surface) !important;
	padding-left: 24px;
}

/* Tombol burger: area sentuh layak (min 44x44). */
.elementor-104 .elementor-element.elementor-element-1a9e8e68 div.elementor-menu-toggle {
	min-width: 44px;
	min-height: 44px;
	border-radius: var(--fpsi-r-sm);
	color: var(--fpsi-ink);
}

.elementor-104 .elementor-element.elementor-element-1a9e8e68 div.elementor-menu-toggle:hover {
	background: var(--fpsi-tint-8);
}

/* Menu mobile: item full-width, mudah ditekan. */
@media (max-width: 1024px) {
	.elementor-104 .elementor-element.elementor-element-1a9e8e68 .elementor-nav-menu--dropdown a {
		padding-top: 16px;
		padding-bottom: 16px;
		border-bottom: 1px solid var(--fpsi-line);
	}
}


/* ==========================================================================
   03. BERANDA — RITME & CONTAINER
   ========================================================================== */

/* PENTING — kenapa semua selector di bawah diawali `.elementor-86`:

   Header (`.elementor-104`) dan footer (`.elementor-77`) juga dirender di
   dalam `body.elementor-page-86`. Versi sebelumnya memakai
   `body.elementor-page-86 .elementor-element.e-con.e-parent`, yang ikut
   mengenai container terluar header (#90fa9fd) — sehingga bar biru dan bar
   putih navbar mendapat padding 64px di kiri-kanan dan tidak lagi menyentuh
   tepi layar. Itu penyebab navbar terlihat "terpotong", dan hanya terjadi di
   beranda. `.elementor-86` adalah wrapper konten halaman saja. */

body.elementor-page-86 .elementor-86 .e-con {
	--container-max-width: var(--fpsi-max);
}

/* Padding kiri/kanan aman di semua layar — mencegah teks menempel tepi. */
body.elementor-page-86 .elementor-86 > .elementor-element.e-con.e-parent {
	--padding-left: var(--fpsi-gutter);
	--padding-right: var(--fpsi-gutter);
}

/* Ritme vertikal seragam. Sebelumnya campur 0 / none / 50px. */
body.elementor-page-86 .elementor-element.elementor-element-eb1f6be,
body.elementor-page-86 .elementor-element.elementor-element-77b4df8,
body.elementor-page-86 .elementor-element.elementor-element-1220b15,
body.elementor-page-86 .elementor-element.elementor-element-caf0c26 {
	--padding-top: var(--fpsi-section-y);
	--padding-bottom: var(--fpsi-section-y);
}

/* Section putih dan bertekstur bergantian → mata punya jeda. */
body.elementor-page-86 .elementor-element.elementor-element-eb1f6be {
	background-color: var(--fpsi-white);
}

body.elementor-page-86 .elementor-element.elementor-element-1220b15 {
	background-color: var(--fpsi-surface);
}


/* ==========================================================================
   04. BERANDA — HERO  (#34881a83)
   Masalah asli: teks pakai margin-left:100px fixed (mepet tepi di mobile),
   line-height:100px pada font 56px, ukuran tablet (78px) lebih besar dari
   desktop (56px), min-height 100vh di tablet, dan tanpa overlay → teks putih
   di atas foto terang sulit dibaca.
   ========================================================================== */

/* `.elementor-86` disertakan agar spesifisitasnya menyamai aturan gutter di
   seksi 03 (yang datang lebih dulu), sehingga padding hero ini yang menang. */
body.elementor-page-86 .elementor-86 .elementor-element.elementor-element-34881a83 {
	--min-height: clamp(540px, 76vh, 760px);
	/* Ruang untuk header transparan yang kini melayang di atas hero. */
	--padding-top: calc(var(--fpsi-header-h) + clamp(28px, 6vh, 72px));
	--padding-bottom: clamp(72px, 10vh, 120px);
	/* Hero full-bleed, tapi teksnya tetap sejajar dengan konten & logo di
	   header: di layar lebar padding mengikuti tepi container 1400px,
	   di layar sempit turun ke gutter biasa. */
	--padding-left: max(var(--fpsi-gutter), (100% - var(--fpsi-max)) / 2);
	--padding-right: max(var(--fpsi-gutter), (100% - var(--fpsi-max)) / 2);
	--justify-content: center;
	--align-items: flex-start;
	position: relative;
	isolation: isolate;
}

/* Overlay gradien: kontras teks terjaga apa pun fotonya, foto tetap terlihat. */
body.elementor-page-86 .elementor-element.elementor-element-34881a83::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(100deg,
			rgba(0, 30, 42, .82) 0%,
			rgba(0, 30, 42, .62) 38%,
			rgba(0, 30, 42, .22) 70%,
			rgba(0, 30, 42, .05) 100%),
		linear-gradient(to top, rgba(0, 30, 42, .45) 0%, transparent 45%);
}

/* Widget hero harus berada di atas overlay. */
body.elementor-page-86 .elementor-element.elementor-element-34881a83 > .elementor-element {
	position: relative;
	z-index: 2;
}

/* Slideshow background: transisi lebih halus, dan gambar tidak "melompat". */
body.elementor-page-86 .elementor-element.elementor-element-34881a83 .elementor-background-slideshow {
	z-index: 0;
}

/* --- Judul hero (#709b3414) --------------------------------------------- */

body.elementor-page-86 .elementor-element.elementor-element-709b3414 {
	width: 100%;
	max-width: min(100%, 62rem);
	margin-left: 0;
	margin-right: 0;
	margin-bottom: clamp(12px, 1.6vw, 20px);
	--container-widget-width: 100%;
}

body.elementor-page-86 .elementor-element.elementor-element-709b3414 .elementor-heading-title {
	/* Satu skala fluid untuk SEMUA breakpoint — tidak ada lagi tablet > desktop. */
	font-size: clamp(2.1rem, 5.6vw, 4rem);
	line-height: 1.08;
	letter-spacing: -.022em;
	font-weight: 800;
	/* uppercase pada kalimat panjang berbahasa Indonesia menurunkan
	   keterbacaan drastis; sentence case lebih modern & lebih mudah dibaca. */
	text-transform: none;
	color: #FFFFFF;
	text-shadow: 0 2px 18px rgba(0, 24, 34, .45);
	max-width: 22ch;
}

/* Highlight "kesehatan mental" — inline style #00C0E8 perlu !important.
   Di atas overlay gelap warna terang ini justru kontrasnya bagus. */
body.elementor-page-86 .elementor-element.elementor-element-709b3414 .elementor-heading-title span[style] {
	color: #5FE0FF !important;
	/* Garis bawah lembut sebagai penanda visual, bukan sekadar warna. */
	background: linear-gradient(transparent 78%, rgba(95, 224, 255, .32) 78%);
	padding-bottom: .04em;
}

/* --- Paragraf hero (#401b93e2) ------------------------------------------ */

body.elementor-page-86 .elementor-element.elementor-element-401b93e2 {
	width: 100%;
	max-width: min(100%, 42rem);
	margin-left: 0;
	margin-right: 0;
	padding: 0;
	--container-widget-width: 100%;
	font-size: clamp(1rem, 1.5vw, 1.3rem);
	line-height: 1.65;
	font-weight: 400;
	color: rgba(255, 255, 255, .92);
	text-shadow: 0 1px 12px rgba(0, 24, 34, .4);
}

/* Override eksplisit breakpoint lama Elementor (tablet 78px & padding 13%). */
@media (max-width: 1024px) {
	body.elementor-page-86 .elementor-element.elementor-element-34881a83 {
		--min-height: clamp(520px, 70vh, 680px);
	}
	body.elementor-page-86 .elementor-element.elementor-element-709b3414 .elementor-heading-title {
		font-size: clamp(2.1rem, 5.6vw, 4rem);
		line-height: 1.08;
	}
	body.elementor-page-86 .elementor-element.elementor-element-401b93e2 {
		padding: 0;
		font-size: clamp(1rem, 1.5vw, 1.3rem);
		line-height: 1.65;
	}
}

@media (max-width: 767px) {
	body.elementor-page-86 .elementor-element.elementor-element-34881a83 {
		--min-height: 78vh;
		--align-items: flex-start;
	}
	body.elementor-page-86 .elementor-element.elementor-element-709b3414 .elementor-heading-title {
		font-size: clamp(1.9rem, 8.4vw, 2.6rem);
		max-width: 100%;
	}
	body.elementor-page-86 .elementor-element.elementor-element-401b93e2 {
		padding: 0;
	}
}


/* ==========================================================================
   05. BERANDA — STATISTIK  "Sekilas Data Psikologi"  (#523321e)
   Masalah asli: min-height 645px fixed, gradien putih→#00C0E8 pekat, angka
   diposisikan dengan hack translateX + scale(0.6) di dalam grid 2 kolom
   (rapuh & tidak sejajar), kartu pakai border #395A7F + shadow hitam 25%.
   ========================================================================== */

body.elementor-page-86 .elementor-element.elementor-element-523321e {
	--min-height: auto;
	--padding-top: var(--fpsi-section-y);
	--padding-bottom: var(--fpsi-section-y);
	--padding-left: var(--fpsi-gutter);
	--padding-right: var(--fpsi-gutter);
}

/* Gradien dilembutkan: putih → tint biru muda. Tidak lagi "menabrak"
   section putih di bawahnya. */
body.elementor-page-86 .elementor-element.elementor-element-523321e:not(.elementor-motion-effects-element-type-background),
body.elementor-page-86 .elementor-element.elementor-element-523321e > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-image: linear-gradient(180deg,
		var(--fpsi-white) 0%,
		var(--fpsi-surface) 42%,
		var(--fpsi-surface-2) 100%);
}

/* Judul section */
body.elementor-page-86 .elementor-element.elementor-element-6ab5475 {
	margin-bottom: clamp(28px, 4vw, 48px);
	text-align: center;
}

body.elementor-page-86 .elementor-element.elementor-element-6ab5475 h1,
body.elementor-page-86 .elementor-element.elementor-element-6ab5475 h2,
body.elementor-page-86 .elementor-element.elementor-element-6ab5475 h3,
body.elementor-page-86 .elementor-element.elementor-element-6ab5475 .elementor-heading-title {
	font-size: clamp(1.6rem, 3.4vw, 2.4rem);
	line-height: 1.2;
	font-weight: 800;
	color: var(--fpsi-ink);
}

/* --- Grid kartu: 4 → 2 → 1 otomatis tanpa breakpoint manual ------------- */

/* b9512bb adalah `e-con-full`, jadi layout dipasang langsung di elemennya.
   Empat kartu → 4 / 2 / 1 kolom, ditetapkan eksplisit agar tidak pernah
   menyisakan baris timpang. */
body.elementor-page-86 .elementor-element.elementor-element-b9512bb {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--fpsi-gap);
	align-items: stretch;
	width: 100%;
	align-self: stretch;
}

@media (max-width: 1024px) {
	body.elementor-page-86 .elementor-element.elementor-element-b9512bb {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Lebar persen fixed (21.964% / auto) dibatalkan — grid yang mengatur. */
body.elementor-page-86 .elementor-element.elementor-element-f3290e7,
body.elementor-page-86 .elementor-element.elementor-element-06b1a63,
body.elementor-page-86 .elementor-element.elementor-element-1be8bf6,
body.elementor-page-86 .elementor-element.elementor-element-907948f {
	--width: auto;
	width: auto !important;
	max-width: none !important;
	--flex-grow: 1;
	--flex-shrink: 1;

	/* Kartu: bersih, ringan, bukan border biru + shadow hitam pekat. */
	--border-radius: var(--fpsi-r-lg) var(--fpsi-r-lg) var(--fpsi-r-lg) var(--fpsi-r-lg);
	border: 1px solid var(--fpsi-line);
	box-shadow: var(--fpsi-shadow-1);
	background-color: var(--fpsi-white);
	--padding-top: clamp(24px, 3vw, 32px);
	--padding-bottom: clamp(24px, 3vw, 32px);
	--padding-left: clamp(18px, 2.4vw, 26px);
	--padding-right: clamp(18px, 2.4vw, 26px);
	--justify-content: flex-start;
	--align-items: center;
	--gap: 10px;
	position: relative;
	overflow: hidden;
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease),
	            border-color var(--fpsi-base) var(--fpsi-ease);
}

/* Garis aksen tipis di atas kartu — detail kecil, kesan rapi. */
body.elementor-page-86 .elementor-element.elementor-element-f3290e7::before,
body.elementor-page-86 .elementor-element.elementor-element-06b1a63::before,
body.elementor-page-86 .elementor-element.elementor-element-1be8bf6::before,
body.elementor-page-86 .elementor-element.elementor-element-907948f::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent));
	opacity: 0;
	transition: opacity var(--fpsi-base) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-f3290e7:hover,
body.elementor-page-86 .elementor-element.elementor-element-06b1a63:hover,
body.elementor-page-86 .elementor-element.elementor-element-1be8bf6:hover,
body.elementor-page-86 .elementor-element.elementor-element-907948f:hover {
	transform: translateY(-4px);
	box-shadow: var(--fpsi-shadow-2);
	border-color: rgba(0, 174, 239, .45);
}

body.elementor-page-86 .elementor-element.elementor-element-f3290e7:hover::before,
body.elementor-page-86 .elementor-element.elementor-element-06b1a63:hover::before,
body.elementor-page-86 .elementor-element.elementor-element-1be8bf6:hover::before,
body.elementor-page-86 .elementor-element.elementor-element-907948f:hover::before {
	opacity: 1;
}

/* --- Angka + satuan: buang hack transform, pakai baseline alignment ----- */

body.elementor-page-86 .elementor-element.elementor-element-6e4fb04,
body.elementor-page-86 .elementor-element.elementor-element-860586c,
body.elementor-page-86 .elementor-element.elementor-element-6d057cf,
body.elementor-page-86 .elementor-element.elementor-element-101fb23 {
	display: flex !important;
	flex-direction: row;
	align-items: baseline;
	justify-content: center;
	gap: 2px;
	width: 100%;
}

/* translateX(36px) scale(0.6) & translateY(30px) dihapus total. */
body.elementor-page-86 .elementor-element.elementor-element-25c6751,
body.elementor-page-86 .elementor-element.elementor-element-69e5635,
body.elementor-page-86 .elementor-element.elementor-element-c34c1f3,
body.elementor-page-86 .elementor-element.elementor-element-004679f,
body.elementor-page-86 .elementor-element.elementor-element-b20640e,
body.elementor-page-86 .elementor-element.elementor-element-46e1a44,
body.elementor-page-86 .elementor-element.elementor-element-cf493ef,
body.elementor-page-86 .elementor-element.elementor-element-d23ba26 {
	--e-transform-translateX: 0px;
	--e-transform-translateY: 0px;
	--e-transform-scale: 1;
	transform: none !important;
	width: auto;
	margin: 0;
}

body.elementor-page-86 .elementor-element.elementor-element-523321e .elementor-counter-number-wrapper {
	font-size: clamp(2.4rem, 5vw, 3.4rem);
	line-height: 1;
	font-weight: 800;
	letter-spacing: -.03em;
	color: var(--fpsi-primary-deep);
}

/* Counter title kosong → jangan makan ruang. */
body.elementor-page-86 .elementor-element.elementor-element-523321e .elementor-counter-title:empty {
	display: none;
}

/* Satuan "+" / "%" : ukuran proporsional, warna aksen (bukan abu #ACACAC). */
body.elementor-page-86 .elementor-element.elementor-element-b20640e .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-46e1a44 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-cf493ef .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-d23ba26 .elementor-heading-title {
	font-size: clamp(1.6rem, 3.2vw, 2.2rem);
	line-height: 1;
	font-weight: 800;
	letter-spacing: -.02em;
}

body.elementor-page-86 .elementor-element.elementor-element-b20640e .elementor-heading-title span[style],
body.elementor-page-86 .elementor-element.elementor-element-46e1a44 .elementor-heading-title span[style],
body.elementor-page-86 .elementor-element.elementor-element-cf493ef .elementor-heading-title span[style],
body.elementor-page-86 .elementor-element.elementor-element-d23ba26 .elementor-heading-title span[style] {
	color: var(--fpsi-accent) !important;
}

/* --- Label & deskripsi kartu statistik ---------------------------------- */

body.elementor-page-86 .elementor-element.elementor-element-35f161d .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-cb4c839 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-f287369 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-eba02a4 .elementor-heading-title {
	font-size: clamp(1rem, 1.6vw, 1.15rem);
	line-height: 1.35;
	font-weight: 700;
	color: var(--fpsi-ink);
	letter-spacing: -.005em;
}

body.elementor-page-86 .elementor-element.elementor-element-29b9729,
body.elementor-page-86 .elementor-element.elementor-element-e14ea7f,
body.elementor-page-86 .elementor-element.elementor-element-9e1ab8a,
body.elementor-page-86 .elementor-element.elementor-element-4663732 {
	width: 100% !important;
	max-width: 34ch !important;
	--container-widget-width: 100%;
	font-size: .95rem;
	line-height: 1.65;
	color: var(--fpsi-muted);
}

/* Mobile: 2 kolom terlalu sempit untuk angka besar → 1 kolom penuh. */
@media (max-width: 479px) {
	body.elementor-page-86 .elementor-element.elementor-element-b9512bb {
		grid-template-columns: 1fr;
	}
}

/* Batalkan tweak transform lama Elementor di breakpoint tablet/mobile. */
@media (max-width: 1024px) {
	body.elementor-page-86 .elementor-element.elementor-element-25c6751,
	body.elementor-page-86 .elementor-element.elementor-element-69e5635,
	body.elementor-page-86 .elementor-element.elementor-element-c34c1f3,
	body.elementor-page-86 .elementor-element.elementor-element-004679f,
	body.elementor-page-86 .elementor-element.elementor-element-b20640e,
	body.elementor-page-86 .elementor-element.elementor-element-46e1a44,
	body.elementor-page-86 .elementor-element.elementor-element-cf493ef,
	body.elementor-page-86 .elementor-element.elementor-element-d23ba26 {
		--e-transform-translateX: 0px;
		--e-transform-translateY: 0px;
		--e-transform-scale: 1;
		transform: none !important;
	}
	body.elementor-page-86 .elementor-element.elementor-element-6e4fb04,
	body.elementor-page-86 .elementor-element.elementor-element-860586c,
	body.elementor-page-86 .elementor-element.elementor-element-6d057cf,
	body.elementor-page-86 .elementor-element.elementor-element-101fb23 {
		--e-con-grid-template-columns: none;
		display: flex !important;
	}
}


/* ==========================================================================
   06. BERANDA — KARTU AKSES CEPAT  (#eb1f6be, 6 kartu)
   Masalah asli: lebar --width:29% + flex-wrap → 3 kolom dipaksakan sampai
   tablet (sempit), gap 49/40px tidak konsisten, border biru + shadow 25% hitam.
   ========================================================================== */

body.elementor-page-86 .elementor-element.elementor-element-eb1f6be {
	--margin-top: 0px;
	--margin-bottom: 0px;
}

/* PENTING: container ini `e-con-boxed`, jadi layout-nya ada di `.e-con-inner`.
   Grid dipasang di sana — bukan di container luar. */
/* Kolom ditetapkan eksplisit, BUKAN auto-fit.
   Dengan auto-fit minmax(272px,1fr) pada container 1400px, muat 4 kolom —
   dan karena kartunya ada 6, barisnya jadi timpang 4+2. Desainnya 3 kolom,
   jadi 6 kartu membentuk 3+3 yang seimbang. */
body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--fpsi-gap);
	align-items: stretch;
	justify-items: stretch;
}

@media (max-width: 1024px) {
	body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner {
		grid-template-columns: 1fr;
	}
}

body.elementor-page-86 .elementor-element.elementor-element-a25ee17,
body.elementor-page-86 .elementor-element.elementor-element-a5b7786,
body.elementor-page-86 .elementor-element.elementor-element-ac04695,
body.elementor-page-86 .elementor-element.elementor-element-049006b,
body.elementor-page-86 .elementor-element.elementor-element-4f3c981,
body.elementor-page-86 .elementor-element.elementor-element-448d835 {
	--width: auto;
	width: auto !important;
	max-width: none !important;

	border: 1px solid var(--fpsi-line);
	--border-color: var(--fpsi-line);
	--border-radius: var(--fpsi-r-lg) var(--fpsi-r-lg) var(--fpsi-r-lg) var(--fpsi-r-lg);
	box-shadow: var(--fpsi-shadow-1);
	background-color: var(--fpsi-white);

	--padding-top: clamp(26px, 3vw, 34px);
	--padding-bottom: clamp(26px, 3vw, 34px);
	--padding-left: clamp(20px, 2.4vw, 28px);
	--padding-right: clamp(20px, 2.4vw, 28px);
	--gap: 14px;
	--align-items: center;

	position: relative;
	overflow: hidden;
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease),
	            border-color var(--fpsi-base) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-a25ee17:hover,
body.elementor-page-86 .elementor-element.elementor-element-a5b7786:hover,
body.elementor-page-86 .elementor-element.elementor-element-ac04695:hover,
body.elementor-page-86 .elementor-element.elementor-element-049006b:hover,
body.elementor-page-86 .elementor-element.elementor-element-4f3c981:hover,
body.elementor-page-86 .elementor-element.elementor-element-448d835:hover {
	transform: translateY(-5px);
	box-shadow: var(--fpsi-shadow-2);
	border-color: rgba(0, 174, 239, .5);
}

/* Ikon dibungkus "chip" bulat bertint — memberi bobot visual & konsistensi.

   Ukuran chip 60px + ikon 30px pada versi sebelumnya terlalu kecil: bawaan
   Elementor untuk widget ikon adalah 50px (`.elementor-icon{font-size:50px}`
   dengan `svg{width:1em}`), jadi ikonnya justru MENGECIL dari aslinya.
   Sekarang chip 76px dengan ikon 40px — lebih besar dari bawaan, dan
   proporsional terhadap kartu.

   `border`/`padding` bawaan view "framed" (border 3px #395A7F + padding .5em)
   dinolkan, karena chip bertint ini sudah berperan sebagai bingkainya. */
body.elementor-page-86 .elementor-element.elementor-element-20452ef .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-9b76477 .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-475b650 .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-34fd422 .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-ea9aa2a .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-14f7bf9 .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	padding: 0;
	border: 0;
	border-radius: var(--fpsi-r-lg);
	background: linear-gradient(135deg, var(--fpsi-tint-14), var(--fpsi-tint-8));
	transition: background var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-20452ef .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-9b76477 .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-475b650 .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-34fd422 .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-ea9aa2a .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-14f7bf9 .elementor-icon svg {
	width: 40px;
	height: 40px;
	display: block;
}

/* Di HP kartu jadi selebar layar, chip sedikit dikecilkan agar seimbang. */
@media (max-width: 600px) {
	body.elementor-page-86 .elementor-element.elementor-element-20452ef .elementor-icon,
	body.elementor-page-86 .elementor-element.elementor-element-9b76477 .elementor-icon,
	body.elementor-page-86 .elementor-element.elementor-element-475b650 .elementor-icon,
	body.elementor-page-86 .elementor-element.elementor-element-34fd422 .elementor-icon,
	body.elementor-page-86 .elementor-element.elementor-element-ea9aa2a .elementor-icon,
	body.elementor-page-86 .elementor-element.elementor-element-14f7bf9 .elementor-icon {
		width: 66px;
		height: 66px;
	}

	body.elementor-page-86 .elementor-element.elementor-element-20452ef .elementor-icon svg,
	body.elementor-page-86 .elementor-element.elementor-element-9b76477 .elementor-icon svg,
	body.elementor-page-86 .elementor-element.elementor-element-475b650 .elementor-icon svg,
	body.elementor-page-86 .elementor-element.elementor-element-34fd422 .elementor-icon svg,
	body.elementor-page-86 .elementor-element.elementor-element-ea9aa2a .elementor-icon svg,
	body.elementor-page-86 .elementor-element.elementor-element-14f7bf9 .elementor-icon svg {
		width: 34px;
		height: 34px;
	}
}

body.elementor-page-86 .elementor-element.elementor-element-a25ee17:hover .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-a5b7786:hover .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-ac04695:hover .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-049006b:hover .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-4f3c981:hover .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-448d835:hover .elementor-icon {
	background: linear-gradient(135deg, var(--fpsi-primary), var(--fpsi-primary-deep));
	transform: scale(1.06);
}

/* Judul kartu: #5D5A88 (ungu asing) → ink on-brand. */
body.elementor-page-86 .elementor-element.elementor-element-fe8f202 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-9020d0e .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-13dadd7 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-3f812be .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-547eb09 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-764e344 .elementor-heading-title {
	font-size: clamp(1.1rem, 1.8vw, 1.3rem);
	line-height: 1.3;
	font-weight: 700;
	color: var(--fpsi-ink);
}

body.elementor-page-86 .elementor-element.elementor-element-8a439ff,
body.elementor-page-86 .elementor-element.elementor-element-d223164,
body.elementor-page-86 .elementor-element.elementor-element-2839db3,
body.elementor-page-86 .elementor-element.elementor-element-538d9a7,
body.elementor-page-86 .elementor-element.elementor-element-ca5e20c,
body.elementor-page-86 .elementor-element.elementor-element-b369bf1 {
	font-size: .96rem;
	line-height: 1.68;
	color: var(--fpsi-muted);
	max-width: 38ch;
	margin-inline: auto;
}

/* Kalau nanti kartu diberi Link di Elementor, seluruh kartu jadi clickable
   dan sudah otomatis punya affordance + aksesibilitas keyboard. */
body.elementor-page-86 .elementor-element.elementor-element-eb1f6be a.e-con-link {
	border-radius: inherit;
}

body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner > .e-con:has(a) {
	cursor: pointer;
}


/* ==========================================================================
   07. BERANDA — KEHIDUPAN KAMPUS & FASILITAS  (#77b4df8)
   Masalah asli: gap 86px kaku, tetap 2 kolom di tablet, teks #9795B5
   (kontras 2.9:1 — gagal WCAG), video tanpa radius.
   ========================================================================== */

/* `e-con-boxed` → layout dipasang di `.e-con-inner`. */
body.elementor-page-86 .elementor-element.elementor-element-77b4df8 > .e-con-inner {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: clamp(28px, 5vw, 72px);
}

/* PENYEBAB VIDEO MELUBER DI HP.

   Widget YouTube ini elemen Elementor v4 (atomic) dengan class
   `.e-0e2f405-b6f6c5b`, dan CSS-nya sendiri memasang:

       min-width: 599px;  aspect-ratio: 16/9;  object-fit: fill;

   `min-width: 599px` itu nilai mati — di layar 390px video tetap dipaksa
   selebar 599px sehingga keluar dari container dan mendorong lebar halaman.
   Aturan ini yang membatalkannya. `object-fit: fill` juga diganti `cover`
   supaya gambar tidak gepeng saat rasionya menyesuaikan. */
body.elementor-page-86 .elementor .e-0e2f405-b6f6c5b {
	min-width: 0;
	width: 100%;
	max-width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	object-fit: cover;
	border-radius: var(--fpsi-r-lg);
}

/* Video: kartu ber-radius, rasio 16:9 stabil (mencegah layout shift). */
body.elementor-page-86 [data-id="0e2f405"] {
	--width: auto;
	/* Basis 460px hanya berlaku saat baris horizontal (desktop).
	   Di bawah 1024px container berubah jadi kolom — lihat blok media query,
	   di mana flex-basis akan mengacu ke TINGGI, bukan lebar. */
	flex: 1 1 460px;
	min-width: 0;
	max-width: 100%;
}

body.elementor-page-86 [data-id="0e2f405"] .elementor-widget-container,
body.elementor-page-86 [data-id="0e2f405"] .e-hosted-video,
body.elementor-page-86 [data-id="0e2f405"] .elementor-wrapper {
	border-radius: var(--fpsi-r-lg);
	overflow: hidden;
	box-shadow: var(--fpsi-shadow-2);
}

body.elementor-page-86 [data-id="0e2f405"] iframe,
body.elementor-page-86 [data-id="0e2f405"] video {
	aspect-ratio: 16 / 9;
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--fpsi-r-lg);
}

/* Kolom teks */
body.elementor-page-86 .elementor-element.elementor-element-340c77d {
	--width: auto;
	flex: 1 1 380px;
	min-width: 0;
	--gap: 12px;
}

/* Judul utama section */
body.elementor-page-86 .elementor-element.elementor-element-8f83735 .elementor-heading-title {
	font-size: clamp(1.6rem, 3.4vw, 2.3rem);
	line-height: 1.18;
	font-weight: 800;
	color: var(--fpsi-ink);
	margin-bottom: .2em;
}

/* Sub-judul "Kehidupan Kampus" / "Fasilitas" — dijadikan label ber-aksen. */
body.elementor-page-86 .elementor-element.elementor-element-11d6485 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-9a4747e .elementor-heading-title {
	font-size: clamp(1.05rem, 1.8vw, 1.2rem);
	line-height: 1.3;
	font-weight: 700;
	color: var(--fpsi-primary-deep);
	display: inline-flex;
	align-items: center;
	gap: .5em;
}

/* Bullet aksen kecil di depan sub-judul. */
body.elementor-page-86 .elementor-element.elementor-element-11d6485 .elementor-heading-title::before,
body.elementor-page-86 .elementor-element.elementor-element-9a4747e .elementor-heading-title::before {
	content: "";
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	border-radius: var(--fpsi-r-pill);
	background: var(--fpsi-accent);
}

body.elementor-page-86 .elementor-element.elementor-element-9a4747e {
	margin-top: clamp(16px, 2.4vw, 28px);
}

/* Paragraf: #9795B5 (2.9:1) → muted (6.4:1). */
body.elementor-page-86 .elementor-element.elementor-element-badf635,
body.elementor-page-86 .elementor-element.elementor-element-f790be2 {
	color: var(--fpsi-muted);
	font-size: 1rem;
	line-height: 1.72;
	max-width: 56ch;
}

/* Tablet & bawah: susun bertumpuk, video dulu. */
@media (max-width: 1024px) {
	body.elementor-page-86 .elementor-element.elementor-element-77b4df8 > .e-con-inner {
		flex-direction: column;
		align-items: stretch;
	}
	body.elementor-page-86 .elementor-element.elementor-element-340c77d {
		--width: 100%;
		flex: 1 1 auto;
	}

	/* Container sudah jadi kolom, jadi `flex-basis` kini mengacu ke TINGGI.
	   Membiarkan basis 460px akan memaksa tinggi video 460px — dan dengan
	   rasio 16:9 lebarnya melonjak ke ~818px. Karena itu basisnya dilepas. */
	body.elementor-page-86 [data-id="0e2f405"] {
		flex: 0 0 auto;
		width: 100%;
	}
	body.elementor-page-86 .elementor-element.elementor-element-badf635,
	body.elementor-page-86 .elementor-element.elementor-element-f790be2 {
		max-width: none;
	}
}


/* ==========================================================================
   08. BERANDA — KABAR PSIKOLOGI  (#1220b15, widget posts #8a5886a)
   Masalah asli: radius kartu 40px (tidak selaras 15px kartu lain), tombol
   "Load More" & "read more" memakai --e-global-color-accent = #FFFFFF
   (putih di atas putih → tidak terlihat), judul/excerpt tanpa pembatas baris
   sehingga tinggi kartu tidak rata.
   ========================================================================== */

body.elementor-page-86 .elementor-element.elementor-element-1220b15 > .e-con-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(10px, 1.4vw, 16px);
}

/* Header section */
body.elementor-page-86 .elementor-element.elementor-element-f572a39 .elementor-heading-title {
	font-size: clamp(1.7rem, 3.6vw, 2.5rem);
	line-height: 1.16;
	font-weight: 800;
	color: var(--fpsi-ink);
}

body.elementor-page-86 .elementor-element.elementor-element-0686241 {
	width: 100% !important;
	max-width: 62ch !important;
	--container-widget-width: 100%;
	margin-inline: auto;
	color: var(--fpsi-muted);
	font-size: 1.02rem;
	line-height: 1.7;
	margin-bottom: clamp(24px, 3.4vw, 40px);
}

/* --- Grid & kartu berita ------------------------------------------------- */

/* Wrapper grid harus tetap selebar container walau parent-nya center-aligned. */
body.elementor-page-86 .elementor-element.elementor-element-f29234c {
	width: 100%;
	align-self: stretch;
}

body.elementor-page-86 .elementor-element.elementor-element-8a5886a {
	--grid-row-gap: var(--fpsi-gap);
	--grid-column-gap: var(--fpsi-gap);
}

body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__card {
	border-radius: var(--fpsi-r-lg);
	border: 1px solid var(--fpsi-line);
	box-shadow: var(--fpsi-shadow-1);
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
	background: var(--fpsi-white);
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease),
	            border-color var(--fpsi-base) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post:hover .elementor-post__card {
	transform: translateY(-5px);
	box-shadow: var(--fpsi-shadow-3);
	border-color: rgba(0, 174, 239, .45);
}

/* Thumbnail: rasio konsisten + zoom halus saat hover. */
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__thumbnail {
	overflow: hidden;
}

/* PENTING — kenapa pakai properti `scale`, bukan `transform`:
   Saat rasio gambar diaktifkan, Elementor memusatkan thumbnail dengan
   `transform: scale(1.01) translate(-50%,-50%)` pada <img> yang di-absolute.
   Menimpanya dengan `transform: scale(1.06)` MENGHAPUS `translate(-50%,-50%)`
   → gambar melompat ke kanan-bawah saat hover (persis gejala yang dilaporkan).
   Properti `scale` berdiri sendiri dan dikomposisikan SEBELUM `transform`,
   jadi pemusatan Elementor tetap utuh. */
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__thumbnail img {
	transition: scale var(--fpsi-slow) var(--fpsi-ease), filter .3s;
	will-change: scale;
}

body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post:hover .elementor-post__thumbnail img {
	scale: 1.06;
}

/* Badge kategori: sebelumnya putih di atas foto → tint gelap semi transparan. */
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__card .elementor-post__badge {
	background-color: rgba(0, 58, 77, .82);
	color: var(--fpsi-white);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border-radius: var(--fpsi-r-pill);
	padding: 6px 12px;
	margin: 14px;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

/* Isi kartu mengisi tinggi → semua kartu rata bawahnya. */
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__text {
	margin-top: 0;
	padding: clamp(18px, 2vw, 24px);
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1 1 auto;
}

/* Judul: maksimal 2 baris. */
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__title {
	margin: 0;
	font-size: clamp(1.02rem, 1.5vw, 1.18rem);
	line-height: 1.38;
	font-weight: 700;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__title,
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__title a {
	color: var(--fpsi-ink);
	transition: color var(--fpsi-fast) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post:hover .elementor-post__title a {
	color: var(--fpsi-primary-deep);
}

/* Excerpt: maksimal 3 baris. */
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__excerpt {
	margin: 0;
	flex: 1 1 auto;
}

body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__excerpt p {
	margin: 0;
	color: var(--fpsi-muted);
	font-size: .94rem;
	line-height: 1.66;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Meta (tanggal + komentar).

   CATATAN PENTING: pada skin "cards", `.elementor-post__meta-data` adalah
   ANAK LANGSUNG dari `.elementor-post__card` — bukan bagian dari
   `.elementor-post__text`. Skin aslinya memberi `padding:15px 30px` +
   `border-top`. Versi sebelumnya menghapus padding & border itu, sehingga
   tanggal dan jumlah komentar menempel persis di tepi kartu dan terlihat
   "keluar" dari sudut yang membulat. Di sini padding & garis pemisah
   dikembalikan, selaras dengan padding isi kartu. */
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__meta-data {
	color: var(--fpsi-muted);
	font-size: .82rem;
	font-weight: 500;
	line-height: 1.5;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 2px 6px;
	border-top: 1px solid var(--fpsi-line);
	padding: 13px clamp(18px, 2vw, 24px);
	/* `auto` di atas → blok meta selalu menempel di dasar kartu, semua kartu rata. */
	margin: auto 0 0;
	background: var(--fpsi-white);
}

/* Avatar di dalam meta jangan mendorong tinggi baris. */
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__meta-data .elementor-post-avatar {
	display: inline-flex;
	align-items: center;
}

/* Avatar besar yang menumpuk di atas thumbnail: samakan padding-nya dengan
   padding isi kartu (aslinya 30px, sementara isi kartu kini clamp(18–24px)). */
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__avatar {
	padding-inline: clamp(18px, 2vw, 24px);
}

body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__avatar img {
	border-radius: var(--fpsi-r-pill);
	border: 2px solid var(--fpsi-white);
	box-shadow: var(--fpsi-shadow-1);
}

/* "Baca selengkapnya": putih (tak terlihat) → link on-brand dengan panah. */
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-post__read-more,
body.elementor-page-86 .elementor-element.elementor-element-8a5886a a.elementor-post__read-more {
	color: var(--fpsi-primary-deep);
	font-weight: 700;
	font-size: .92rem;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: .4em;
	margin-top: auto;
}

body.elementor-page-86 .elementor-element.elementor-element-8a5886a a.elementor-post__read-more::after {
	content: "→";
	transition: transform var(--fpsi-fast) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-8a5886a a.elementor-post__read-more:hover::after {
	transform: translateX(4px);
}

/* Tombol "Load More": putih di atas putih → pill primary. */
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-button {
	background-color: var(--fpsi-primary-deep);
	color: var(--fpsi-white);
	border: 0;
	border-radius: var(--fpsi-r-pill);
	padding: 14px 32px;
	font-weight: 700;
	letter-spacing: .01em;
	box-shadow: var(--fpsi-shadow-1);
	transition: background-color var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-button:hover,
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-button:focus-visible {
	background-color: var(--fpsi-ink);
	transform: translateY(-2px);
	box-shadow: var(--fpsi-shadow-2);
	color: var(--fpsi-white);
}

/* Wrapper tombol di tengah + jarak dari grid. */
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .e-load-more-anchor + * ,
body.elementor-page-86 .elementor-element.elementor-element-8a5886a .elementor-button-wrapper {
	margin-top: clamp(24px, 3vw, 36px);
	text-align: center;
}

body.elementor-page-86 .elementor-element.elementor-element-8a5886a .e-load-more-message {
	color: var(--fpsi-muted);
	font-size: .92rem;
}


/* ==========================================================================
   09. BERANDA — INSTAGRAM  (#caf0c26)
   Masalah asli: paragraf dipaksa 49% lebar di SEMUA layar (jadi kolom sempit
   di HP), baris judul+tombol space-between tanpa wrap.
   ========================================================================== */

body.elementor-page-86 .elementor-element.elementor-element-caf0c26 > .e-con-inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: clamp(14px, 2vw, 20px);
}

body.elementor-page-86 .elementor-element.elementor-element-8bc4412 {
	--flex-wrap: wrap;
	--align-items: center;
	--gap: 16px;
}

body.elementor-page-86 .elementor-element.elementor-element-87ccaef .elementor-heading-title {
	font-size: clamp(1.5rem, 3.2vw, 2.2rem);
	line-height: 1.2;
	font-weight: 800;
	color: var(--fpsi-ink);
}

/* Tombol @fpssi_unj → pill dengan gradien Instagram, terasa "kekinian". */
body.elementor-page-86 .elementor-element.elementor-element-4b1fd1a {
	border-radius: var(--fpsi-r-pill);
}

body.elementor-page-86 .elementor-element.elementor-element-4b1fd1a .elementor-button {
	background-color: transparent;
	background-image: linear-gradient(100deg, #7B3FE4 0%, #E1306C 55%, #F77737 100%);
	color: var(--fpsi-white);
	border-radius: var(--fpsi-r-pill);
	padding: 12px 24px;
	font-weight: 700;
	box-shadow: var(--fpsi-shadow-1);
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease),
	            filter var(--fpsi-base) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-4b1fd1a .elementor-button:hover,
body.elementor-page-86 .elementor-element.elementor-element-4b1fd1a .elementor-button:focus-visible {
	transform: translateY(-2px);
	box-shadow: var(--fpsi-shadow-2);
	filter: saturate(115%);
}

/* Paragraf: lepas dari 49% fixed. */
body.elementor-page-86 .elementor-element.elementor-element-f69c4e8 {
	width: 100% !important;
	max-width: 62ch !important;
	--container-widget-width: 100%;
	color: var(--fpsi-muted);
	font-size: 1.02rem;
	line-height: 1.7;
	margin-bottom: clamp(20px, 2.6vw, 32px);
}

/* Feed Instagram: ubin ber-radius + hover halus. */
body.elementor-page-86 .elementor-element.elementor-element-a248284 #sb_instagram .sbi_photo_wrap,
body.elementor-page-86 .elementor-element.elementor-element-a248284 #sb_instagram .sbi_photo {
	border-radius: var(--fpsi-r-md);
	overflow: hidden;
}

body.elementor-page-86 .elementor-element.elementor-element-a248284 #sb_instagram .sbi_item {
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
	border-radius: var(--fpsi-r-md);
}

body.elementor-page-86 .elementor-element.elementor-element-a248284 #sb_instagram .sbi_item:hover {
	transform: translateY(-4px) scale(1.01);
	box-shadow: var(--fpsi-shadow-2);
	z-index: 2;
}

/* Gambar dekoratif penutup: jangan mendominasi di mobile. */
body.elementor-page-86 .elementor-element.elementor-element-949aacf img {
	border-radius: var(--fpsi-r-lg);
}


/* ==========================================================================
   10. FOOTER  (template Elementor #77)  — dirombak total

   Kondisi awal & alasan perombakan:
   - Latar `#00C0E8` dengan teks putih = kontras 2.2:1, gagal WCAG AA.
   - Judul kolom: Montserrat 16px weight 300 UPPERCASE — terlalu tipis untuk
     sebuah judul, tidak terbaca sebagai hierarki.
   - Logo memakai `translateX(200px) scale(2)` di desktop.
   - Baris utama `flex-direction:row` + `flex-wrap:nowrap` sampai HP.
   - Kolom link ber-padding kiri 65px yang tidak pernah di-reset.
   - `min-height` dipatok 419px (desktop) / 750px (tablet).

   Pendekatan: latar dipindah ke <footer id="colophon"> supaya bisa diberi
   glow dekoratif di belakang konten, lalu seluruh layout ditata ulang dengan
   CSS Grid: 4 kolom → 3 → 2 → 1.
   ========================================================================== */

/* --- Kanvas & latar ------------------------------------------------------ */

#colophon {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	/* Tetap keluarga cyan agar on-brand, tapi cukup gelap sehingga teks putih
	   mencapai kontras 11:1+ (sebelumnya 2.2:1).
	   Ingin kembali ke cyan terang? Ganti gradien ini dengan `#00C0E8`. */
	background: linear-gradient(135deg, #00293A 0%, #004E67 52%, #00799B 100%);
}

/* Dua glow lembut — memberi kedalaman tanpa gambar tambahan. */
#colophon::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(60rem 30rem at 12% -10%, rgba(0, 174, 239, .30), transparent 62%),
		radial-gradient(44rem 26rem at 92% 8%, rgba(255, 176, 32, .13), transparent 60%);
}

/* Garis aksen tipis di tepi atas footer. */
#colophon::after {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	z-index: 2;
	pointer-events: none;
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent), var(--fpsi-primary));
}

/* Latar bawaan container dimatikan supaya glow di atas terlihat. */
#colophon .elementor-77 .elementor-element.elementor-element-3812012:not(.elementor-motion-effects-element-type-background),
#colophon .elementor-77 .elementor-element.elementor-element-3812012 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-color: transparent;
	background-image: none;
}

#colophon .elementor-77 .elementor-element.elementor-element-3812012 {
	position: relative;
	z-index: 1;
	--min-height: auto;
	--padding-top: clamp(48px, 6vw, 84px);
	--padding-bottom: clamp(32px, 4vw, 56px);
	--padding-left: clamp(20px, 5vw, 48px);
	--padding-right: clamp(20px, 5vw, 48px);
}

/* --- Kerangka layout ------------------------------------------------------ */

/* Wadah terluar jadi kolom tunggal (aslinya row+wrap). */
#colophon .elementor-77 .elementor-element.elementor-element-3812012 > .e-con-inner {
	display: flex;
	flex-direction: column;
	gap: 0;
}

/* Baris utama: kolom brand + blok kolom link. */
#colophon .elementor-77 .elementor-element.elementor-element-639ffc25 {
	display: grid !important;
	grid-template-columns: minmax(260px, 1.05fr) 2fr;
	gap: clamp(36px, 4.5vw, 80px);
	align-items: start;
	width: 100%;
	border: 0;
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
}

/* Tiga kelompok link. */
#colophon .elementor-77 .elementor-element.elementor-element-5bde6c3 {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 3vw, 44px);
	width: 100%;
	/* Hack transform lama dibuang di semua ukuran layar. */
	--e-transform-translateX: 0px;
	--e-transform-translateY: 0px;
	--e-con-transform-translateX: 0px;
	--e-con-transform-translateY: 0px;
	transform: none !important;
}

#colophon .elementor-77 .elementor-element.elementor-element-474e15bd,
#colophon .elementor-77 .elementor-element.elementor-element-622469fd,
#colophon .elementor-77 .elementor-element.elementor-element-75adc30 {
	--width: auto;
	width: auto;
	min-width: 0;
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
	--gap: 0px;
}

/* --- Kolom brand ---------------------------------------------------------- */

#colophon .elementor-77 .elementor-element.elementor-element-71bcd807 {
	--width: auto;
	width: auto;
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
	--gap: 18px;
}

/* Logo: transform hack dibuang, ukuran ditentukan wajar. */
#colophon .elementor-77 .elementor-element.elementor-element-1d4a0d1a {
	--e-transform-translateX: 0px;
	--e-transform-translateY: 0px;
	--e-transform-scale: 1;
	transform: none !important;
	margin: 0 0 4px 0;
	width: 100%;
	max-width: 100%;
	text-align: start;
}

/* Aslinya `--align-self: flex-end` — pasangan dari hack `translateX(200px)`.
   Tanpa ini logo akan menempel ke kanan setelah transform-nya dinolkan. */
#colophon .elementor-77 .elementor-element.elementor-element-1d4a0d1a.elementor-element {
	--align-self: flex-start;
	align-self: flex-start;
}

/* Logo diberi alas putih, TIDAK diputihkan dengan filter.

   Penilaian saya sebelumnya keliru: `brightness(0) invert(1)` memang membuat
   logo terbaca di atas latar gelap, tapi lambang UNJ kehilangan seluruh detail
   dan hanya menyisakan siluet — persis masalah yang sama seperti di navbar.
   Alas putih mempertahankan warna lambang sekaligus menjaga keterbacaan. */
#colophon .elementor-77 .elementor-element.elementor-element-1d4a0d1a a {
	display: inline-flex;
	align-items: center;
	background: var(--fpsi-white);
	padding: 10px 16px;
	border-radius: var(--fpsi-r-md);
	box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
}

#colophon .elementor-77 .elementor-element.elementor-element-1d4a0d1a img {
	filter: none;
	width: auto;
	height: auto;
	max-width: 200px;
	opacity: 1;
}

/* Baris copyright di bawah logo. */
#colophon .elementor-77 .elementor-element.elementor-element-4a678bd8 {
	width: 100% !important;
	max-width: 46ch !important;
	--container-widget-width: 100%;
	font-size: .88rem;
	font-weight: 400;
	line-height: 1.75;
	color: rgba(255, 255, 255, .70);
}

/* --- Judul kolom ---------------------------------------------------------- */

#colophon .elementor-77 .elementor-widget-heading h4.elementor-heading-title,
#colophon .elementor-77 .elementor-element.elementor-element-7941c58e .elementor-heading-title,
#colophon .elementor-77 .elementor-element.elementor-element-156ba380 .elementor-heading-title,
#colophon .elementor-77 .elementor-element.elementor-element-b9477e7 .elementor-heading-title {
	font-size: .8rem;
	font-weight: 700;          /* aslinya 300 — terlalu tipis untuk judul */
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .62);
	margin: 0 0 16px 0;
	padding-bottom: 12px;
	position: relative;
	display: block;
}

/* Garis aksen pendek di bawah tiap judul. */
#colophon .elementor-77 .elementor-element.elementor-element-7941c58e .elementor-heading-title::after,
#colophon .elementor-77 .elementor-element.elementor-element-156ba380 .elementor-heading-title::after,
#colophon .elementor-77 .elementor-element.elementor-element-b9477e7 .elementor-heading-title::after {
	content: "";
	position: absolute;
	inset: auto auto 0 0;
	width: 28px;
	height: 2px;
	border-radius: var(--fpsi-r-pill);
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent));
}

/* --- Daftar link ---------------------------------------------------------- */

#colophon .elementor-77 .elementor-icon-list-items {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

/* Jarak antar item bawaan (padding-block-end + margin-block-start 10px)
   dinolkan; jarak diatur lewat gap + padding target sentuh. */
#colophon .elementor-77 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child),
#colophon .elementor-77 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child) {
	padding-block-end: 0;
	margin-block-start: 0;
}

#colophon .elementor-77 .elementor-icon-list-item {
	padding-block: 0;
}

#colophon .elementor-77 .elementor-icon-list-item,
#colophon .elementor-77 .elementor-icon-list-item > a,
#colophon .elementor-77 .elementor-icon-list-text {
	font-size: .95rem;
	font-weight: 400;         /* aslinya 300 */
	line-height: 1.5;
	color: rgba(255, 255, 255, .82);
	transition: color var(--fpsi-fast) var(--fpsi-ease),
	            transform var(--fpsi-fast) var(--fpsi-ease);
}

/* Target sentuh layak tanpa merenggangkan daftar secara visual. */
#colophon .elementor-77 .elementor-icon-list-item > a,
#colophon .elementor-77 .elementor-icon-list-item > .elementor-icon-list-text {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	min-height: 34px;
	padding-block: 4px;
	border-radius: var(--fpsi-r-sm);
}

#colophon .elementor-77 .elementor-icon-list-item:hover .elementor-icon-list-text,
#colophon .elementor-77 .elementor-icon-list-item > a:hover {
	color: var(--fpsi-white);
	transform: translateX(4px);
	text-decoration: none;
}

/* Penanda titik kecil yang muncul saat hover — pengganti underline. */
#colophon .elementor-77 .elementor-element.elementor-element-3d9ac531 .elementor-icon-list-text::before,
#colophon .elementor-77 .elementor-element.elementor-element-4ec2cb4d .elementor-icon-list-text::before {
	content: "";
	display: inline-block;
	width: 5px;
	height: 5px;
	margin-inline-end: .6em;
	border-radius: var(--fpsi-r-pill);
	background: var(--fpsi-accent);
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity var(--fpsi-fast) var(--fpsi-ease),
	            transform var(--fpsi-fast) var(--fpsi-ease);
}

#colophon .elementor-77 .elementor-element.elementor-element-3d9ac531 .elementor-icon-list-item:hover .elementor-icon-list-text::before,
#colophon .elementor-77 .elementor-element.elementor-element-4ec2cb4d .elementor-icon-list-item:hover .elementor-icon-list-text::before {
	opacity: 1;
	transform: translateX(0);
}

/* --- Kolom "Follow Us" jadi deretan chip --------------------------------- */

#colophon .elementor-77 .elementor-element.elementor-element-5155f01 .elementor-icon-list-items {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 8px;
}

#colophon .elementor-77 .elementor-element.elementor-element-5155f01 .elementor-icon-list-item {
	margin: 0;
}

#colophon .elementor-77 .elementor-element.elementor-element-5155f01 .elementor-icon-list-item > a,
#colophon .elementor-77 .elementor-element.elementor-element-5155f01 .elementor-icon-list-item > .elementor-icon-list-text {
	padding: 8px 14px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: var(--fpsi-r-pill);
	background: rgba(255, 255, 255, .06);
	font-size: .86rem;
	transition: background-color var(--fpsi-fast) var(--fpsi-ease),
	            border-color var(--fpsi-fast) var(--fpsi-ease),
	            transform var(--fpsi-fast) var(--fpsi-ease);
}

#colophon .elementor-77 .elementor-element.elementor-element-5155f01 .elementor-icon-list-item b {
	font-weight: 600;
}

#colophon .elementor-77 .elementor-element.elementor-element-5155f01 .elementor-icon-list-item:hover > a,
#colophon .elementor-77 .elementor-element.elementor-element-5155f01 .elementor-icon-list-item:hover > .elementor-icon-list-text {
	background: rgba(255, 255, 255, .16);
	border-color: rgba(255, 255, 255, .45);
	transform: translateY(-2px);
	color: var(--fpsi-white);
}

/* Chip tidak ikut geser horizontal seperti link biasa. */
#colophon .elementor-77 .elementor-element.elementor-element-5155f01 .elementor-icon-list-item:hover .elementor-icon-list-text {
	transform: none;
}

#colophon .elementor-77 .elementor-element.elementor-element-5155f01 .elementor-icon-list-text::before {
	content: none;
}

/* Ikon di dalam daftar (kalau nanti ditambahkan) */
#colophon .elementor-77 .elementor-icon-list-icon svg,
#colophon .elementor-77 .elementor-icon-list-icon i {
	opacity: .8;
}

/* Focus ring terlihat di atas latar gelap. */
#colophon .elementor-77 a:focus-visible {
	outline: 3px solid var(--fpsi-accent);
	outline-offset: 3px;
}


/* --------------------------------------------------------------------------
   10b. FOOTER — TABLET  (<= 1024px)
   Brand pindah ke atas, tiga kolom link tetap sejajar.
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {

	#colophon .elementor-77 .elementor-element.elementor-element-3812012 {
		--min-height: auto;
		--padding-top: clamp(44px, 7vw, 68px);
		--padding-bottom: clamp(28px, 4vw, 44px);
	}

	#colophon .elementor-77 .elementor-element.elementor-element-639ffc25 {
		grid-template-columns: 1fr;
		gap: clamp(32px, 6vw, 48px);
		--flex-direction: column;
		--align-items: stretch;
		--padding-top: 0%;
		--padding-bottom: 0%;
	}

	#colophon .elementor-77 .elementor-element.elementor-element-71bcd807 {
		--padding-top: 0px;
		--padding-bottom: 0px;
		--padding-left: 0px;
		--padding-right: 0px;
		max-width: 52ch;
	}

	#colophon .elementor-77 .elementor-element.elementor-element-1d4a0d1a img {
		max-width: 176px;
	}

	#colophon .elementor-77 .elementor-element.elementor-element-1d4a0d1a a {
		padding: 8px 14px;
	}
}


/* --------------------------------------------------------------------------
   10c. FOOTER — HP  (<= 767px)
   "Layanan" dan "Akses cepat" berdampingan dua kolom, "Follow Us" melebar
   penuh di bawahnya sebagai deretan chip. Semua rata kiri agar mudah dipindai
   (daftar link rata tengah sulit dibaca).
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {

	#colophon .elementor-77 .elementor-element.elementor-element-3812012 {
		--padding-top: clamp(40px, 10vw, 56px);
		--padding-bottom: 28px;
		--padding-left: 20px;
		--padding-right: 20px;
	}

	#colophon .elementor-77 .elementor-element.elementor-element-639ffc25 {
		gap: 32px;
	}

	#colophon .elementor-77 .elementor-element.elementor-element-5bde6c3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 20px;
	}

	/* "Follow Us" melebar penuh di baris terakhir. */
	#colophon .elementor-77 .elementor-element.elementor-element-75adc30 {
		grid-column: 1 / -1;
	}

	/* Batalkan perataan tengah bawaan Elementor di breakpoint mobile. */
	#colophon .elementor-77 .elementor-element.elementor-element-71bcd807,
	#colophon .elementor-77 .elementor-element.elementor-element-1d4a0d1a,
	#colophon .elementor-77 .elementor-element.elementor-element-4a678bd8,
	#colophon .elementor-77 .elementor-element.elementor-element-7941c58e,
	#colophon .elementor-77 .elementor-element.elementor-element-156ba380,
	#colophon .elementor-77 .elementor-element.elementor-element-b9477e7 {
		text-align: start;
		--align-items: flex-start;
	}

	#colophon .elementor-77 .elementor-icon-list-item.elementor-mobile-align-center,
	#colophon .elementor-77 .elementor-mobile-align-center .elementor-icon-list-items,
	#colophon .elementor-77 .elementor-mobile-align-center .elementor-icon-list-item {
		justify-content: flex-start;
		text-align: start;
	}

	#colophon .elementor-77 .elementor-element.elementor-element-1d4a0d1a img {
		max-width: 150px;
	}

	#colophon .elementor-77 .elementor-element.elementor-element-1d4a0d1a a {
		padding: 7px 12px;
		border-radius: var(--fpsi-r-sm);
	}

	#colophon .elementor-77 .elementor-element.elementor-element-4a678bd8 {
		max-width: none !important;
		font-size: .8rem;
		line-height: 1.7;
	}

	/* Skala teks footer di HP. Sebelumnya aturan ini kalah spesifisitas dari
	   CSS Elementor (16px Montserrat weight 300), sehingga link tampak besar
	   dan tidak sepadan dengan judul kolomnya. */
	#colophon .elementor-77 .elementor-icon-list-item,
	#colophon .elementor-77 .elementor-icon-list-item > a,
	#colophon .elementor-77 .elementor-icon-list-text {
		font-size: .875rem;
	}

	#colophon .elementor-77 .elementor-element.elementor-element-5155f01 .elementor-icon-list-item > a,
	#colophon .elementor-77 .elementor-element.elementor-element-5155f01 .elementor-icon-list-item > .elementor-icon-list-text {
		font-size: .8rem;
		padding: 7px 12px;
	}

	#colophon .elementor-77 .elementor-widget-heading h4.elementor-heading-title {
		font-size: .72rem;
		margin-bottom: 12px;
		padding-bottom: 10px;
	}

	/* Di layar sentuh, hover geser tidak relevan — jangan sisakan efeknya. */
	#colophon .elementor-77 .elementor-icon-list-item:hover .elementor-icon-list-text,
	#colophon .elementor-77 .elementor-icon-list-item > a:hover {
		transform: none;
	}
}


/* HP kecil: satu kolom penuh. */
@media (max-width: 420px) {
	#colophon .elementor-77 .elementor-element.elementor-element-5bde6c3 {
		grid-template-columns: 1fr;
		gap: 26px;
	}

	#colophon .elementor-77 .elementor-element.elementor-element-75adc30 {
		grid-column: auto;
	}
}


/* ==========================================================================
   11. MOTION — reveal on scroll
   Class ditambahkan oleh design-layer.js. Tanpa JS, konten tetap tampil
   (progressive enhancement) — tidak ada risiko konten "hilang".
   ========================================================================== */

body.fpsi-motion .fpsi-reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity var(--fpsi-slow) var(--fpsi-ease),
	            transform var(--fpsi-slow) var(--fpsi-ease);
	transition-delay: var(--fpsi-delay, 0ms);
	will-change: opacity, transform;
}

body.fpsi-motion .fpsi-reveal.fpsi-in {
	opacity: 1;
	transform: none;
	will-change: auto;
}

/* Hormati preferensi sistem: semua animasi & smooth scroll dimatikan. */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	body.fpsi-motion .fpsi-reveal,
	body.fpsi-motion .fpsi-reveal.fpsi-in {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}


/* ==========================================================================
   12. AKSESIBILITAS & UTILITAS
   ========================================================================== */

/* Focus ring konsisten & terlihat di semua elemen interaktif.
   Sebelumnya banyak elemen Elementor kehilangan outline sama sekali. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
.elementor-button:focus-visible,
.elementor-item:focus-visible,
.elementor-menu-toggle:focus-visible {
	outline: 3px solid var(--fpsi-primary);
	outline-offset: 3px;
	border-radius: var(--fpsi-r-sm);
}

/* Jangan tampilkan ring saat klik mouse (hanya keyboard). */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible) {
	outline: none;
}

/* Skip-link (dibuat oleh JS) — tersembunyi sampai difokuskan keyboard. */
.fpsi-skip-link {
	position: absolute;
	left: 50%;
	top: 0;
	transform: translate(-50%, -120%);
	z-index: 100000;
	background: var(--fpsi-ink);
	color: var(--fpsi-white);
	padding: 12px 22px;
	border-radius: 0 0 var(--fpsi-r-md) var(--fpsi-r-md);
	font-weight: 700;
	text-decoration: none;
	transition: transform var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-skip-link:focus {
	transform: translate(-50%, 0);
}

/* Target sentuh minimum untuk semua tombol Elementor di mobile. */
@media (max-width: 767px) {
	.elementor-button {
		min-height: 44px;
	}
}

/* ==========================================================================
   13. OPSIONAL — PENYATUAN TIPOGRAFI
   Saat ini beranda memakai 3 keluarga font: Archivo (judul hero),
   Montserrat (paragraf hero & menu), Roboto (sisanya). Itu tetap dipertahankan
   karena kemungkinan besar mengikuti Figma.

   Kalau nanti ingin satu suara tipografi (paling cepat menaikkan kesan modern),
   hapus tanda komentar blok di bawah ini. Tidak perlu ubah apa pun di Elementor.
   Catatan: butuh Plus Jakarta Sans + Inter didaftarkan di Elementor
   (Site Settings → Global Fonts) atau di-load lewat Google Fonts.

body.elementor-page-86 h1, body.elementor-page-86 h2,
body.elementor-page-86 h3, body.elementor-page-86 h4,
body.elementor-page-86 h5, body.elementor-page-86 h6,
body.elementor-page-86 .elementor-heading-title,
body.elementor-page-86 .elementor-counter-number-wrapper,
.elementor-104 .elementor-nav-menu .elementor-item {
	font-family: "Plus Jakarta Sans", "Archivo", system-ui, sans-serif !important;
}

body.elementor-page-86 .elementor-widget-text-editor,
body.elementor-page-86 .elementor-post__excerpt p,
body.elementor-page-86 .elementor-post__meta-data {
	font-family: "Inter", "Montserrat", system-ui, sans-serif !important;
}
   ========================================================================== */


/* Cetak: buang dekorasi yang tidak perlu. */
@media print {
	#masthead, #colophon,
	body.elementor-page-86 .elementor-element.elementor-element-a248284 {
		display: none !important;
	}
	body.elementor-page-86 .elementor-element.elementor-element-34881a83::before {
		display: none;
	}
}


/* ==========================================================================
   14. HALAMAN PROFIL  (page 57)

   Temuan pada CSS aslinya:
   - Seluruh badan teks `text-align: justify` → membentuk "sungai" spasi,
     paling parah di kolom sempit dan di HP.
   - Paragraf intro 22px weight 700 — seluruh alinea di-bold, bukan lead.
   - Jarak antara sidebar dan konten `gap: 214px` (nilai mati).
   - Sidebar `max-width: 14%`, tidak sticky, item ber-padding kiri-kanan 35px.
   - Warna item sidebar #8D8BA7 = kontras 3.3:1 (gagal WCAG AA).
   - Banner judul: gradien #00C0E8 → putih dengan teks #395A7F, dan
     `background-attachment: fixed` (patah-patah saat scroll).
   - Bagian "Dosen" dipatok `--width: 424px` di <=767px → meluber di HP.

   Header dan footer TIDAK disentuh di seksi ini.
   ========================================================================== */

/* --- Banner judul halaman (#4218fe4) ------------------------------------- */

body.page-id-57 .elementor-57 .elementor-element.elementor-element-4218fe4 {
	--min-height: clamp(170px, 24vh, 280px);
	--display: flex;
	--justify-content: center;
	--align-items: flex-start;
	--padding-top: clamp(32px, 5vw, 56px);
	--padding-bottom: clamp(32px, 5vw, 56px);
	/* Judul sejajar dengan container konten di bawahnya. */
	--padding-left: max(var(--fpsi-gutter), (100% - var(--fpsi-max)) / 2);
	--padding-right: max(var(--fpsi-gutter), (100% - var(--fpsi-max)) / 2);
	position: relative;
	overflow: hidden;
}

/* Overlay diperdalam: dari cyan→putih pucat menjadi gradien brand gelap,
   sehingga judul putih terbaca dan tekstur latar tetap terlihat samar. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-4218fe4::before,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-4218fe4 > .elementor-background-overlay {
	background-image: linear-gradient(115deg,
		rgba(0, 41, 58, .95) 0%,
		rgba(0, 78, 103, .90) 48%,
		rgba(0, 121, 155, .80) 100%);
}

/* `background-attachment: fixed` dimatikan — penyebab scroll patah-patah,
   dan di iOS malah membuat latar melompat. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-4218fe4:not(.elementor-motion-effects-element-type-background) {
	background-attachment: scroll;
}

/* Garis aksen di dasar banner. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-4218fe4::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 4px;
	z-index: 3;
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent), var(--fpsi-primary));
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-d2a0dd4 {
	width: 100%;
	max-width: none;
	margin: 0;
	position: relative;
	z-index: 2;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-d2a0dd4 .elementor-heading-title {
	font-size: clamp(1.9rem, 4.4vw, 3rem);
	line-height: 1.1;
	font-weight: 800;
	letter-spacing: -.015em;
	color: var(--fpsi-white);
	text-shadow: 0 2px 16px rgba(0, 24, 34, .35);
}


/* --- Kerangka: sidebar + konten (#78b623f, e-con-boxed) ------------------ */

body.page-id-57 .elementor-57 .elementor-element.elementor-element-78b623f {
	--content-width: var(--fpsi-max);
	--padding-top: clamp(36px, 5vw, 68px);
	--padding-bottom: clamp(48px, 6vw, 88px);
	--padding-left: var(--fpsi-gutter);
	--padding-right: var(--fpsi-gutter);
}

/* gap 214px → jarak yang menyesuaikan lebar layar. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-78b623f > .e-con-inner {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: clamp(28px, 4vw, 64px);
}

/* Kolom konten */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-a208e36 {
	--width: auto;
	flex: 1 1 auto;
	min-width: 0;
	--gap: 0px;
}


/* --- Sidebar navigasi (#e48410e) ----------------------------------------- */

body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e {
	width: 258px !important;
	max-width: 258px !important;
	--container-widget-width: 258px;
	flex: 0 0 258px;
	position: sticky;
	top: calc(var(--fpsi-header-h) + 20px);
	align-self: flex-start;
}

/* Dibungkus jadi kartu, bukan daftar telanjang. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-widget-container {
	background: var(--fpsi-white);
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-lg);
	box-shadow: var(--fpsi-shadow-1);
	padding: 10px;
}

/* Layout widget-nya "horizontal"; dijadikan kolom untuk sidebar. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	flex-wrap: nowrap;
	gap: 2px;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu li {
	width: 100%;
}

/* Padding 35px kiri-kanan diperkecil; warna #8D8BA7 (3.3:1) dinaikkan. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu--main .elementor-item {
	display: block;
	width: 100%;
	padding: 10px 14px;
	border-radius: var(--fpsi-r-sm);
	border-inline-start: 3px solid transparent;
	color: var(--fpsi-muted);
	fill: var(--fpsi-muted);
	font-size: .95rem;
	font-weight: 500;
	line-height: 1.4;
	transition: color var(--fpsi-fast) var(--fpsi-ease),
	            background-color var(--fpsi-fast) var(--fpsi-ease),
	            border-color var(--fpsi-fast) var(--fpsi-ease);
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu--main .elementor-item:hover,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu--main .elementor-item:focus-visible,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu--main .elementor-item.highlighted {
	color: var(--fpsi-primary-deep);
	background-color: var(--fpsi-tint-8);
	border-inline-start-color: rgba(0, 174, 239, .45);
}

/* Bagian yang sedang dibaca — ditandai oleh scrollspy di design-layer.js. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu--main .elementor-item.fpsi-active {
	color: var(--fpsi-primary-deep);
	background-color: var(--fpsi-tint-14);
	border-inline-start-color: var(--fpsi-primary);
	font-weight: 700;
}

/* Underline bawaan Elementor tidak dipakai di sidebar. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu--main .elementor-item:after,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu--main .elementor-item:before {
	content: none;
}


/* --- Bagian konten -------------------------------------------------------- */

body.page-id-57 .elementor-57 .elementor-element.elementor-element-6f726b1,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-9240a5f,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-e186ba4,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-3071fc4,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-a6d5756,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-7065811,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-1f92968,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-f056e4b,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-3ac195d {
	--width: 100%;          /* membatalkan --width:424px pada #7065811 di HP */
	width: 100%;
	max-width: 100%;
	--padding-top: clamp(32px, 4vw, 52px);
	--padding-bottom: clamp(32px, 4vw, 52px);
	--gap: 14px;
	border-bottom: 1px solid var(--fpsi-line);
	--border-color: var(--fpsi-line);
	scroll-margin-top: calc(var(--fpsi-header-h) + 24px);
}

/* Bagian pertama tidak perlu jarak atas, terakhir tidak perlu garis. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-6f726b1 {
	--padding-top: 0px;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-3ac195d {
	border-bottom: 0;
	--padding-bottom: 0px;
}

/* --- Judul bagian --------------------------------------------------------- */

body.page-id-57 .elementor-57 .elementor-element.elementor-element-3ccbd6e .elementor-heading-title,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-d9c8f20 .elementor-heading-title,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-bfa2865 .elementor-heading-title,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-ae9be91 .elementor-heading-title,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-967937e .elementor-heading-title,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-a533f15 .elementor-heading-title,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-f850b00 .elementor-heading-title,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-226ed95 .elementor-heading-title,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-10562e8 .elementor-heading-title {
	position: relative;
	display: block;
	font-size: clamp(1.4rem, 2.7vw, 1.95rem);
	line-height: 1.2;
	font-weight: 800;
	letter-spacing: .005em;
	color: var(--fpsi-ink);
	padding-top: 16px;
	margin-bottom: .5em;
}

/* Batang aksen kecil di atas tiap judul. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-3ccbd6e .elementor-heading-title::before,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-d9c8f20 .elementor-heading-title::before,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-bfa2865 .elementor-heading-title::before,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-ae9be91 .elementor-heading-title::before,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-967937e .elementor-heading-title::before,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-a533f15 .elementor-heading-title::before,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-f850b00 .elementor-heading-title::before,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-226ed95 .elementor-heading-title::before,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-10562e8 .elementor-heading-title::before {
	content: "";
	position: absolute;
	inset: 0 auto auto 0;
	width: 44px;
	height: 4px;
	border-radius: var(--fpsi-r-pill);
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent));
}

/* Sub-judul Visi / Misi / Tujuan */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-a6221ba .elementor-heading-title,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-85f5861 .elementor-heading-title,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-d3afc78 .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	font-size: clamp(1.1rem, 1.9vw, 1.3rem);
	line-height: 1.3;
	font-weight: 700;
	color: var(--fpsi-primary-deep);
	margin-top: .6em;
	margin-bottom: .1em;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-a6221ba .elementor-heading-title::before,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-85f5861 .elementor-heading-title::before,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-d3afc78 .elementor-heading-title::before {
	content: "";
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	border-radius: var(--fpsi-r-pill);
	background: var(--fpsi-accent);
}

/* --- Badan teks ----------------------------------------------------------- */

body.page-id-57 .elementor-57 .elementor-widget-text-editor {
	/* `justify` diganti rata kiri — perbaikan keterbacaan terbesar di halaman ini. */
	text-align: start;
	font-size: 1.0625rem;
	font-weight: 400;
	line-height: 1.85;
	color: #41556B;              /* kontras 7.6:1 */
	max-width: 74ch;
}

body.page-id-57 .elementor-57 .elementor-widget-text-editor p {
	margin: 0 0 1em 0;
}

body.page-id-57 .elementor-57 .elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

/* Paragraf pembuka jadi "lead", bukan satu alinea penuh yang di-bold. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-2608f55 {
	font-size: clamp(1.1rem, 1.5vw, 1.25rem);
	font-weight: 500;
	line-height: 1.7;
	color: var(--fpsi-ink);
	max-width: 68ch;
}

/* Daftar bernomor / bullet di dalam teks */
body.page-id-57 .elementor-57 .elementor-widget-text-editor ol,
body.page-id-57 .elementor-57 .elementor-widget-text-editor ul {
	display: flex;
	flex-direction: column;
	gap: .45em;
	margin: .9em 0 1.1em;
	padding-inline-start: 1.4em;
}

body.page-id-57 .elementor-57 .elementor-widget-text-editor li {
	padding-inline-start: .2em;
}

body.page-id-57 .elementor-57 .elementor-widget-text-editor li::marker {
	color: var(--fpsi-primary-deep);
	font-weight: 700;
}

/* --- Akreditasi ----------------------------------------------------------- */

body.page-id-57 .elementor-57 .elementor-element.elementor-element-cc97c37 {
	gap: clamp(16px, 2vw, 24px);
	--row-gap: clamp(16px, 2vw, 24px);
	--column-gap: clamp(16px, 2vw, 24px);
	margin-top: 8px;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-cc97c37 > .e-con {
	background: var(--fpsi-white);
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-lg);
	box-shadow: var(--fpsi-shadow-1);
	--padding-top: 18px;
	--padding-bottom: 18px;
	--padding-left: 18px;
	--padding-right: 18px;
	transition: box-shadow var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease);
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-cc97c37 > .e-con:hover {
	box-shadow: var(--fpsi-shadow-2);
	transform: translateY(-3px);
}

/* Keterangan di bawah sertifikat */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-d7a69ad,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-c74156c {
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--fpsi-muted);
	max-width: none;
	text-align: center;
}

/* --- Gambar (sertifikat & bagan organisasi) ------------------------------- */

body.page-id-57 .elementor-57 .elementor-widget-image img {
	border-radius: var(--fpsi-r-md);
	display: block;
}

/* Bagan struktur organisasi itu gambar lebar. Dibungkus wadah yang bisa
   digeser ke samping agar tetap terbaca di layar kecil, bukan diperkecil
   sampai tidak terbaca. */
body.page-id-57 .elementor-57 .elementor-element.elementor-element-097a642 .elementor-widget-container,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-bbbe723 .elementor-widget-container {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: var(--fpsi-r-lg);
	background: var(--fpsi-white);
	scrollbar-width: thin;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-bbbe723 .elementor-widget-container {
	border: 1px solid var(--fpsi-line);
	box-shadow: var(--fpsi-shadow-1);
	padding: 10px;
}

/* --- Tombol "Lihat Selengkapnya" ------------------------------------------ */

body.page-id-57 .elementor-57 .elementor-widget-button .elementor-button {
	background-image: none;
	background-color: var(--fpsi-primary-deep);
	color: var(--fpsi-white);
	border: 0;
	border-radius: var(--fpsi-r-pill);
	padding: 13px 28px;
	font-size: .95rem;
	font-weight: 700;
	letter-spacing: .01em;
	box-shadow: var(--fpsi-shadow-1);
	display: inline-flex;
	align-items: center;
	gap: .5em;
	transition: background-color var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

body.page-id-57 .elementor-57 .elementor-widget-button .elementor-button::after {
	content: "→";
	transition: transform var(--fpsi-fast) var(--fpsi-ease);
}

body.page-id-57 .elementor-57 .elementor-widget-button .elementor-button:hover,
body.page-id-57 .elementor-57 .elementor-widget-button .elementor-button:focus-visible {
	background-color: var(--fpsi-ink);
	color: var(--fpsi-white);
	transform: translateY(-2px);
	box-shadow: var(--fpsi-shadow-2);
}

body.page-id-57 .elementor-57 .elementor-widget-button .elementor-button:hover::after {
	transform: translateX(4px);
}

body.page-id-57 .elementor-57 .elementor-widget-button {
	margin-top: 6px;
}


/* --- Tablet & HP ---------------------------------------------------------- */

@media (max-width: 1024px) {

	/* Sidebar naik ke atas konten sebagai baris chip yang bisa digeser. */
	body.page-id-57 .elementor-57 .elementor-element.elementor-element-78b623f > .e-con-inner {
		flex-direction: column;
		gap: clamp(20px, 3vw, 32px);
	}

	body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e {
		width: 100% !important;
		max-width: 100% !important;
		--container-widget-width: 100%;
		flex: 0 0 auto;
		position: static;
		order: -1;
	}

	body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-widget-container {
		padding: 8px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-widget-container::-webkit-scrollbar {
		display: none;
	}

	body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu {
		flex-direction: row;
		flex-wrap: nowrap;
		gap: 6px;
	}

	body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu li {
		width: auto;
		flex: 0 0 auto;
	}

	body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu--main .elementor-item {
		white-space: nowrap;
		padding: 9px 16px;
		border-inline-start: 0;
		border: 1px solid var(--fpsi-line);
		border-radius: var(--fpsi-r-pill);
	}

	body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e .elementor-nav-menu--main .elementor-item.fpsi-active {
		border-color: var(--fpsi-primary);
		background-color: var(--fpsi-tint-14);
	}

	/* Elementor Pro sticky diaktifkan pada widget ini khusus mobile.
	   Dibatalkan agar tidak melayang menutupi konten; spacer-nya juga
	   disembunyikan supaya tidak meninggalkan ruang kosong. */
	body.page-id-57 .elementor-57 .elementor-element.elementor-element-e48410e {
		position: static !important;
	}

	body.page-id-57 .elementor-57 .elementor-sticky__spacer {
		display: none !important;
	}
}

@media (max-width: 900px) {
	/* Bagan organisasi dijaga tetap terbaca; wadahnya yang digeser. */
	body.page-id-57 .elementor-57 .elementor-element.elementor-element-bbbe723 img {
		min-width: 680px;
	}
}

@media (max-width: 767px) {

	body.page-id-57 .elementor-57 .elementor-widget-text-editor {
		font-size: 1rem;
		line-height: 1.8;
		max-width: none;
	}

	body.page-id-57 .elementor-57 .elementor-element.elementor-element-2608f55 {
		font-size: 1.08rem;
		max-width: none;
	}

	body.page-id-57 .elementor-57 .elementor-widget-button .elementor-button {
		width: 100%;
		justify-content: center;
		min-height: 46px;
	}
}


/* ==========================================================================
   15. HALAMAN PROGRAM STUDI S-1  (page 252)

   Temuan pada halaman aslinya:
   - Container utama `--flex-direction: row`, sehingga blok Visi/Misi/Tujuan
     dan blok KARIER berdiri bersebelahan — padahal urutan bacanya menurun.
   - Tabel kurikulum memakai <style> inline: Arial 15px, border #333 penuh,
     header #a9c6e8, baris #cde3c5. Tampilan spreadsheet, 7 kolom, tanpa
     penanganan layar kecil → meluber di HP.
   - Judul "SEMESTER I..VII" di dalam tabel PERSIS SAMA dengan judul accordion
     tepat di atasnya (7 dari 7 duplikat).
   - Container terakhir (#76fe0a0) berisi widget HTML kosong → ruang mati.
   - Banner judul dan tipografi belum diselaraskan dengan halaman Profil.

   Header dan footer TIDAK disentuh.
   ========================================================================== */

/* --- Banner judul (#4b2e58c) — disamakan dengan halaman Profil ----------- */

body.page-id-252 .elementor-252 .elementor-element.elementor-element-4b2e58c {
	--min-height: clamp(170px, 24vh, 280px);
	--display: flex;
	--justify-content: center;
	--align-items: flex-start;
	--padding-top: clamp(32px, 5vw, 56px);
	--padding-bottom: clamp(32px, 5vw, 56px);
	--padding-left: max(var(--fpsi-gutter), (100% - var(--fpsi-max)) / 2);
	--padding-right: max(var(--fpsi-gutter), (100% - var(--fpsi-max)) / 2);
	position: relative;
	overflow: hidden;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-4b2e58c::before,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-4b2e58c > .elementor-background-overlay {
	background-image: linear-gradient(115deg,
		rgba(0, 41, 58, .95) 0%,
		rgba(0, 78, 103, .90) 48%,
		rgba(0, 121, 155, .80) 100%);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-4b2e58c:not(.elementor-motion-effects-element-type-background) {
	background-attachment: scroll;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-4b2e58c::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 4px;
	z-index: 3;
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent), var(--fpsi-primary));
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-b358d7c {
	width: 100%;
	max-width: none;
	margin: 0;
	position: relative;
	z-index: 2;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-b358d7c .elementor-heading-title {
	font-size: clamp(1.9rem, 4.4vw, 3rem);
	line-height: 1.1;
	font-weight: 800;
	letter-spacing: -.015em;
	color: var(--fpsi-white);
	text-shadow: 0 2px 16px rgba(0, 24, 34, .35);
}


/* --- Kerangka isi --------------------------------------------------------- */

body.page-id-252 .elementor-252 .elementor-element.elementor-element-7a39aaa,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-9131b49 {
	--content-width: var(--fpsi-max);
	--padding-left: var(--fpsi-gutter);
	--padding-right: var(--fpsi-gutter);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-7a39aaa {
	--padding-top: clamp(36px, 5vw, 68px);
	--padding-bottom: 0px;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-9131b49 {
	--padding-top: clamp(32px, 4vw, 52px);
	--padding-bottom: clamp(48px, 6vw, 88px);
}

/* Sidebar + kolom konten, pola yang sama dengan halaman Profil.
   Widget nav #f1a7c20 dan pembungkus #b9d34e6 ditambahkan ke struktur
   halaman (lihat catatan di ringkasan), memakai menu WordPress
   "Sidebar Menu Program Studi". */
body.page-id-252 .elementor-252 .elementor-element.elementor-element-7a39aaa > .e-con-inner {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: clamp(28px, 4vw, 64px);
}

/* Kolom konten: Gambaran Umum/Visi/Misi/Tujuan + Karier menurun di dalamnya. */
body.page-id-252 .elementor-252 .elementor-element.elementor-element-b9d34e6 {
	--width: auto;
	flex: 1 1 auto;
	min-width: 0;
	--display: flex;
	--flex-direction: column;
	--gap: 0px;
}

/* --- Sidebar navigasi (#f1a7c20) — disamakan dengan halaman Profil ------- */

body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 {
	width: 258px !important;
	max-width: 258px !important;
	--container-widget-width: 258px;
	flex: 0 0 258px;
	position: sticky;
	top: calc(var(--fpsi-header-h) + 20px);
	align-self: flex-start;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-widget-container {
	background: var(--fpsi-white);
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-lg);
	box-shadow: var(--fpsi-shadow-1);
	padding: 10px;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	flex-wrap: nowrap;
	gap: 2px;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu li {
	width: 100%;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item {
	display: block;
	width: 100%;
	padding: 10px 14px;
	border-radius: var(--fpsi-r-sm);
	border-inline-start: 3px solid transparent;
	color: var(--fpsi-muted);
	fill: var(--fpsi-muted);
	font-size: .95rem;
	font-weight: 500;
	line-height: 1.4;
	transition: color var(--fpsi-fast) var(--fpsi-ease),
	            background-color var(--fpsi-fast) var(--fpsi-ease),
	            border-color var(--fpsi-fast) var(--fpsi-ease);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item:hover,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item:focus-visible,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item.highlighted {
	color: var(--fpsi-primary-deep);
	background-color: var(--fpsi-tint-8);
	border-inline-start-color: rgba(0, 174, 239, .45);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item.fpsi-active {
	color: var(--fpsi-primary-deep);
	background-color: var(--fpsi-tint-14);
	border-inline-start-color: var(--fpsi-primary);
	font-weight: 700;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item:after,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item:before {
	content: none;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-cabd7d3,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-8efe851 {
	--width: 100%;
	width: 100%;
	max-width: 100%;
	--gap: 12px;
	--padding-top: clamp(28px, 3.5vw, 44px);
	--padding-bottom: clamp(28px, 3.5vw, 44px);
	scroll-margin-top: calc(var(--fpsi-header-h) + 24px);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-cabd7d3 {
	--padding-top: 0px;
	border-bottom: 1px solid var(--fpsi-line);
}

/* #76fe0a0 kini menampung CTA "Bergabunglah" (lihat seksi 16). */


/* --- Judul ---------------------------------------------------------------- */

body.page-id-252 .elementor-252 .elementor-element.elementor-element-105d66a .elementor-heading-title,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-cde128c .elementor-heading-title,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-7af70f6 .elementor-heading-title {
	position: relative;
	display: block;
	font-size: clamp(1.4rem, 2.7vw, 1.95rem);
	line-height: 1.2;
	font-weight: 800;
	letter-spacing: .005em;
	color: var(--fpsi-ink);
	padding-top: 16px;
	margin-bottom: .5em;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-105d66a .elementor-heading-title::before,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-cde128c .elementor-heading-title::before,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-7af70f6 .elementor-heading-title::before {
	content: "";
	position: absolute;
	inset: 0 auto auto 0;
	width: 44px;
	height: 4px;
	border-radius: var(--fpsi-r-pill);
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent));
}

/* Sub-judul VISI / MISI / TUJUAN */
body.page-id-252 .elementor-252 .elementor-element.elementor-element-05f7d1e .elementor-heading-title,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-accd6d4 .elementor-heading-title,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-5e28491 .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	font-size: clamp(1.1rem, 1.9vw, 1.3rem);
	line-height: 1.3;
	font-weight: 700;
	color: var(--fpsi-primary-deep);
	margin-top: .8em;
	margin-bottom: .1em;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-05f7d1e .elementor-heading-title::before,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-accd6d4 .elementor-heading-title::before,
body.page-id-252 .elementor-252 .elementor-element.elementor-element-5e28491 .elementor-heading-title::before {
	content: "";
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	border-radius: var(--fpsi-r-pill);
	background: var(--fpsi-accent);
}


/* --- Badan teks & daftar -------------------------------------------------- */

body.page-id-252 .elementor-252 .elementor-widget-text-editor {
	text-align: start;
	font-size: 1.0625rem;
	font-weight: 400;
	line-height: 1.85;
	color: #41556B;
	max-width: 78ch;
}

body.page-id-252 .elementor-252 .elementor-widget-text-editor p {
	margin: 0 0 1em 0;
}

body.page-id-252 .elementor-252 .elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

body.page-id-252 .elementor-252 .elementor-widget-text-editor ol,
body.page-id-252 .elementor-252 .elementor-widget-text-editor ul {
	display: flex;
	flex-direction: column;
	gap: .5em;
	margin: .8em 0 1em;
	padding-inline-start: 1.4em;
}

body.page-id-252 .elementor-252 .elementor-widget-text-editor li::marker {
	color: var(--fpsi-primary-deep);
	font-weight: 700;
}

/* Paragraf pembuka Gambaran Umum sebagai lead. */
body.page-id-252 .elementor-252 .elementor-element.elementor-element-3dc2ae9 {
	font-size: clamp(1.08rem, 1.4vw, 1.2rem);
	font-weight: 500;
	line-height: 1.75;
	color: var(--fpsi-ink);
	max-width: 70ch;
}


/* --- KARIER: daftar profesi jadi kartu bernomor --------------------------- */

body.page-id-252 .elementor-252 .elementor-element.elementor-element-48222e2 {
	max-width: none;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-48222e2 ol {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(14px, 1.6vw, 20px);
	margin: 12px 0 0;
	padding: 0;
	list-style: none;   /* role="list" tetap ada di markup, semantik terjaga */
	counter-reset: fpsi-karier;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-48222e2 li {
	counter-increment: fpsi-karier;
	position: relative;
	padding: 20px 20px 20px 66px;
	background: var(--fpsi-white);
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-lg);
	box-shadow: var(--fpsi-shadow-1);
	font-size: .98rem;
	line-height: 1.7;
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease),
	            border-color var(--fpsi-base) var(--fpsi-ease);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-48222e2 li:hover {
	transform: translateY(-4px);
	box-shadow: var(--fpsi-shadow-2);
	border-color: rgba(0, 174, 239, .45);
}

/* Nomor urut jadi lencana bulat. */
body.page-id-252 .elementor-252 .elementor-element.elementor-element-48222e2 li::before {
	content: counter(fpsi-karier);
	position: absolute;
	inset: 20px auto auto 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: var(--fpsi-r-pill);
	background: linear-gradient(135deg, var(--fpsi-primary), var(--fpsi-primary-deep));
	color: var(--fpsi-white);
	font-size: .9rem;
	font-weight: 800;
	line-height: 1;
}

/* Nama profesi dinaikkan jadi baris tersendiri. */
body.page-id-252 .elementor-252 .elementor-element.elementor-element-48222e2 li strong {
	display: block;
	margin-bottom: 4px;
	color: var(--fpsi-ink);
	font-size: 1.02rem;
	font-weight: 700;
	line-height: 1.35;
}


/* --- KURIKULUM: accordion ------------------------------------------------- */

body.page-id-252 .elementor-252 .elementor-element.elementor-element-beb4755 .e-n-accordion {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-beb4755 .e-n-accordion-item {
	background: var(--fpsi-white);
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-lg);
	overflow: hidden;
	box-shadow: var(--fpsi-shadow-1);
	transition: border-color var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-beb4755 .e-n-accordion-item[open] {
	border-color: rgba(0, 174, 239, .45);
	box-shadow: var(--fpsi-shadow-2);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-beb4755 summary.e-n-accordion-item-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 16px clamp(16px, 2vw, 22px);
	cursor: pointer;
	list-style: none;
	transition: background-color var(--fpsi-fast) var(--fpsi-ease);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-beb4755 summary.e-n-accordion-item-title::-webkit-details-marker {
	display: none;
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-beb4755 summary.e-n-accordion-item-title:hover {
	background-color: var(--fpsi-surface);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-beb4755 .e-n-accordion-item[open] > summary.e-n-accordion-item-title {
	background-color: var(--fpsi-tint-8);
	border-bottom: 1px solid var(--fpsi-line);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-beb4755 .e-n-accordion-item-title-text {
	font-size: clamp(1rem, 1.6vw, 1.12rem);
	font-weight: 700;
	letter-spacing: .02em;
	color: var(--fpsi-ink);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-beb4755 .e-n-accordion-item-title-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	border-radius: var(--fpsi-r-pill);
	background: var(--fpsi-tint-14);
	color: var(--fpsi-primary-deep);
}

body.page-id-252 .elementor-252 .elementor-element.elementor-element-beb4755 .e-n-accordion-item-title-icon svg {
	width: 13px;
	height: 13px;
	fill: var(--fpsi-primary-deep);
}

/* Panel isi */
body.page-id-252 .elementor-252 .elementor-element.elementor-element-beb4755 .e-n-accordion-item > .e-con {
	--padding-top: clamp(14px, 2vw, 20px);
	--padding-bottom: clamp(14px, 2vw, 20px);
	--padding-left: clamp(14px, 2vw, 20px);
	--padding-right: clamp(14px, 2vw, 20px);
}


/* --- KURIKULUM: tabel ----------------------------------------------------- */

/* Wadah bisa digeser ke samping — tabel 7 kolom mustahil muat di HP. */
body.page-id-252 .elementor-252 .elementor-widget-html .elementor-widget-container {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: var(--fpsi-r-md);
	scrollbar-width: thin;
}

/* Menimpa <style> inline di dalam widget HTML.
   Inline <style> berada di <body> sehingga dimuat SETELAH stylesheet ini —
   karena itu selectornya perlu dinaikkan lewat `body.page-id-252`. */
body.page-id-252 .tabel-kurikulum {
	font-family: inherit;
	font-size: .92rem;
	border-collapse: separate;
	border-spacing: 0;
	width: 100%;
	min-width: 660px;
	margin: 0;
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-md);
	overflow: hidden;
	color: var(--fpsi-text);
}

body.page-id-252 .tabel-kurikulum th,
body.page-id-252 .tabel-kurikulum td {
	/* Kisi garis penuh #333 diganti garis pemisah horizontal saja. */
	border: 0;
	border-bottom: 1px solid var(--fpsi-line);
	padding: 11px 12px;
	text-align: center;
	vertical-align: middle;
	line-height: 1.5;
}

body.page-id-252 .tabel-kurikulum tr:last-child th,
body.page-id-252 .tabel-kurikulum tr:last-child td {
	border-bottom: 0;
}

/* Judul semester di dalam tabel identik dengan judul accordion di atasnya
   (7 dari 7 sama persis), jadi disembunyikan. Hapus blok ini untuk
   memunculkannya kembali. */
body.page-id-252 .tabel-kurikulum .judul-semester {
	display: none;
}

/* Header kolom: dari #a9c6e8 ke tint brand, huruf kecil berspasi. */
body.page-id-252 .tabel-kurikulum .header-biru,
body.page-id-252 .tabel-kurikulum .header-biru th {
	background-color: var(--fpsi-surface-2);
	color: var(--fpsi-ink);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
}

/* Baris bertanda: hijau #cde3c5 dilembutkan, ditambah penanda di tepi kiri. */
body.page-id-252 .tabel-kurikulum .baris-hijau {
	background-color: rgba(46, 160, 106, .09);
}

body.page-id-252 .tabel-kurikulum .baris-hijau td:first-child {
	box-shadow: inset 3px 0 0 rgba(46, 160, 106, .55);
}

/* Zebra halus untuk baris biasa. */
body.page-id-252 .tabel-kurikulum tr:not(.header-biru):not(.baris-hijau):not(.total-row):nth-child(even) {
	background-color: rgba(0, 58, 77, .022);
}

body.page-id-252 .tabel-kurikulum tr:not(.header-biru):hover {
	background-color: var(--fpsi-tint-8);
}

body.page-id-252 .tabel-kurikulum .kiri {
	text-align: start;
	min-width: 220px;
}

body.page-id-252 .tabel-kurikulum .total-row {
	background-color: var(--fpsi-surface);
	font-weight: 800;
	color: var(--fpsi-ink);
}

/* Tanda centang (&radic;) diberi warna brand agar mudah dipindai. */
body.page-id-252 .tabel-kurikulum td:not(.kiri) {
	color: var(--fpsi-primary-deep);
	font-weight: 600;
}

body.page-id-252 .tabel-kurikulum td.kiri {
	color: var(--fpsi-text);
	font-weight: 400;
}


/* --- Tablet & HP ---------------------------------------------------------- */

@media (max-width: 1024px) {
	/* Sidebar naik ke atas konten sebagai baris chip yang bisa digeser. */
	body.page-id-252 .elementor-252 .elementor-element.elementor-element-7a39aaa > .e-con-inner {
		flex-direction: column;
		gap: clamp(20px, 3vw, 32px);
	}

	body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 {
		width: 100% !important;
		max-width: 100% !important;
		--container-widget-width: 100%;
		flex: 0 0 auto;
		position: static !important;
		order: -1;
	}

	body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-widget-container {
		padding: 8px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-widget-container::-webkit-scrollbar {
		display: none;
	}

	body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu {
		flex-direction: row;
		flex-wrap: nowrap;
		gap: 6px;
	}

	body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu li {
		width: auto;
		flex: 0 0 auto;
	}

	body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item {
		white-space: nowrap;
		padding: 9px 16px;
		border-inline-start: 0;
		border: 1px solid var(--fpsi-line);
		border-radius: var(--fpsi-r-pill);
	}

	body.page-id-252 .elementor-252 .elementor-element.elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item.fpsi-active {
		border-color: var(--fpsi-primary);
		background-color: var(--fpsi-tint-14);
	}
}

@media (max-width: 900px) {
	body.page-id-252 .elementor-252 .elementor-element.elementor-element-48222e2 ol {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	body.page-id-252 .elementor-252 .elementor-widget-text-editor {
		font-size: 1rem;
		line-height: 1.8;
		max-width: none;
	}

	body.page-id-252 .elementor-252 .elementor-element.elementor-element-3dc2ae9 {
		font-size: 1.05rem;
		max-width: none;
	}

	body.page-id-252 .elementor-252 .elementor-element.elementor-element-48222e2 li {
		padding: 16px 16px 16px 58px;
	}

	body.page-id-252 .elementor-252 .elementor-element.elementor-element-48222e2 li::before {
		inset: 16px auto auto 16px;
		width: 30px;
		height: 30px;
	}

	body.page-id-252 .tabel-kurikulum {
		font-size: .85rem;
		min-width: 600px;
	}

	body.page-id-252 .tabel-kurikulum th,
	body.page-id-252 .tabel-kurikulum td {
		padding: 9px 10px;
	}
}


/* ==========================================================================
   16. CTA "BERGABUNGLAH BERSAMA PROGRAM STUDI PSIKOLOGI"

   Bagian ini belum pernah ada di situs — hanya muncul di berkas desain.
   Ditambahkan sebagai elemen Elementor sungguhan (bisa disunting di editor)
   pada halaman Profil (57) dan Program Studi S-1 (252), memakai kelas
   `.fpsi-cta` sehingga satu blok gaya ini melayani kedua halaman.

   Kontras: teks #395A7F di atas kuning #FFDD00 = 5.2:1 (lolos WCAG AA),
   teks putih di atas #395A7F = 7.1:1.
   ========================================================================== */

.fpsi-cta {
	--fpsi-cta-yellow: #FFDD00;
	--fpsi-cta-navy:   #395A7F;
	--padding-top: clamp(28px, 4vw, 56px);
	--padding-bottom: clamp(40px, 5vw, 72px);
	--padding-left: var(--fpsi-gutter);
	--padding-right: var(--fpsi-gutter);
	--content-width: var(--fpsi-max);
}

body .fpsi-cta .fpsi-cta__card.e-con {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: clamp(20px, 3vw, 48px);
	width: 100%;
	padding: clamp(26px, 3.4vw, 40px) clamp(24px, 3.6vw, 52px);
	border-radius: var(--fpsi-r-xl);
	background: var(--fpsi-cta-yellow);
	box-shadow: 0 10px 30px rgba(0, 58, 77, .10);
	position: relative;
	overflow: hidden;
}

/* Kilau lembut di sudut kanan supaya tidak terasa datar. */
.fpsi-cta .fpsi-cta__card::before {
	content: "";
	position: absolute;
	inset: -40% -10% auto auto;
	width: 340px;
	height: 340px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 255, 255, .55), transparent 65%);
	pointer-events: none;
}

.fpsi-cta .fpsi-cta__title,
.fpsi-cta .fpsi-cta__actions {
	position: relative;
	z-index: 1;
}

.fpsi-cta .fpsi-cta__title .elementor-heading-title {
	font-size: clamp(1.25rem, 2.4vw, 1.85rem);
	line-height: 1.28;
	font-weight: 800;
	letter-spacing: -.01em;
	color: var(--fpsi-cta-navy);
	/* Dibatasi agar patah jadi dua baris seperti di desain, tanpa <br>
	   yang akan kaku di layar sempit. */
	max-width: 21ch;
	text-wrap: balance;
}

body .fpsi-cta .fpsi-cta__actions.e-con {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: clamp(10px, 1.4vw, 16px);
	flex: 0 0 auto;
	width: auto;
	--width: auto;
}

/* --- Tombol --------------------------------------------------------------- */

.fpsi-cta .fpsi-cta__btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 14px 30px;
	border-radius: var(--fpsi-r-pill);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: .01em;
	white-space: nowrap;
	background-image: none;
	transition: background-color var(--fpsi-base) var(--fpsi-ease),
	            color var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-cta .fpsi-cta__btn--primary .elementor-button {
	background-color: var(--fpsi-cta-navy);
	color: var(--fpsi-white);
	border: 2px solid var(--fpsi-cta-navy);
	box-shadow: 0 6px 18px rgba(0, 58, 77, .22);
}

.fpsi-cta .fpsi-cta__btn--primary .elementor-button:hover,
.fpsi-cta .fpsi-cta__btn--primary .elementor-button:focus-visible {
	background-color: var(--fpsi-ink);
	border-color: var(--fpsi-ink);
	color: var(--fpsi-white);
	transform: translateY(-2px);
	box-shadow: 0 10px 26px rgba(0, 58, 77, .30);
}

.fpsi-cta .fpsi-cta__btn--ghost .elementor-button {
	background-color: transparent;
	color: var(--fpsi-cta-navy);
	border: 2px solid var(--fpsi-cta-navy);
}

.fpsi-cta .fpsi-cta__btn--ghost .elementor-button:hover,
.fpsi-cta .fpsi-cta__btn--ghost .elementor-button:focus-visible {
	background-color: var(--fpsi-cta-navy);
	color: var(--fpsi-white);
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(0, 58, 77, .22);
}

/* Focus ring yang terlihat di atas kuning. */
.fpsi-cta .fpsi-cta__btn .elementor-button:focus-visible {
	outline: 3px solid var(--fpsi-ink);
	outline-offset: 3px;
}

/* --- Tablet & HP ---------------------------------------------------------- */

@media (max-width: 860px) {
	body .fpsi-cta .fpsi-cta__card.e-con {
		flex-direction: column;
		align-items: flex-start;
		text-align: start;
	}

	.fpsi-cta .fpsi-cta__title .elementor-heading-title {
		max-width: none;
	}

	.fpsi-cta .fpsi-cta__actions {
		width: 100%;
		--width: 100%;
	}
}

@media (max-width: 520px) {
	body .fpsi-cta .fpsi-cta__actions.e-con {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}

	.fpsi-cta .fpsi-cta__btn,
	.fpsi-cta .fpsi-cta__btn .elementor-button {
		width: 100%;
	}
}


/* ==========================================================================
   17. POLA HALAMAN DOKUMEN  (.fpsi-page-hero / .fpsi-doc)

   Berbeda dengan seksi 14 & 15 yang menyasar id elemen bawaan halaman Profil
   dan Program Studi, blok ini berbasis KELAS. Halaman baru cukup memakai
   kelas yang sama dan langsung mewarisi seluruh tampilan ini — tidak perlu
   blok CSS baru tiap kali.

   Dipakai pertama kali oleh halaman Riset & Produk (6225).
   ========================================================================== */

/* --- Banner judul --------------------------------------------------------- */

.fpsi-page-hero {
	--min-height: clamp(170px, 24vh, 280px);
	--display: flex;
	--justify-content: center;
	--align-items: flex-start;
	--padding-top: clamp(32px, 5vw, 56px);
	--padding-bottom: clamp(32px, 5vw, 56px);
	--padding-left: max(var(--fpsi-gutter), (100% - var(--fpsi-max)) / 2);
	--padding-right: max(var(--fpsi-gutter), (100% - var(--fpsi-max)) / 2);
	position: relative;
	overflow: hidden;
	background-image: linear-gradient(115deg, #00293A 0%, #004E67 48%, #00799B 100%);
}

.fpsi-page-hero::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 4px;
	z-index: 3;
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent), var(--fpsi-primary));
}

.fpsi-page-hero .fpsi-page-hero__title {
	position: relative;
	z-index: 2;
	width: 100%;
}

.fpsi-page-hero .fpsi-page-hero__title .elementor-heading-title {
	font-size: clamp(1.9rem, 4.4vw, 3rem);
	line-height: 1.1;
	font-weight: 800;
	letter-spacing: -.015em;
	color: var(--fpsi-white);
	text-shadow: 0 2px 16px rgba(0, 24, 34, .35);
}


/* --- Kerangka sidebar + isi ----------------------------------------------- */

.fpsi-doc {
	--content-width: var(--fpsi-max);
	--padding-top: clamp(36px, 5vw, 68px);
	--padding-bottom: clamp(48px, 6vw, 88px);
	--padding-left: var(--fpsi-gutter);
	--padding-right: var(--fpsi-gutter);
}

body .e-con.fpsi-doc > .e-con-inner {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: clamp(28px, 4vw, 64px);
}

body .fpsi-doc .fpsi-doc__body.e-con {
	--width: auto;
	flex: 1 1 auto;
	min-width: 0;
	--display: flex;
	--flex-direction: column;
	--gap: 0px;
}

/* --- Sidebar -------------------------------------------------------------- */

body .fpsi-doc .fpsi-doc__nav.elementor-widget {
	width: 258px !important;
	max-width: 258px !important;
	--container-widget-width: 258px;
	flex: 0 0 258px;
	position: sticky;
	top: calc(var(--fpsi-header-h) + 20px);
	align-self: flex-start;
}

.fpsi-doc .fpsi-doc__nav .elementor-widget-container {
	background: var(--fpsi-white);
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-lg);
	box-shadow: var(--fpsi-shadow-1);
	padding: 10px;
}

.fpsi-doc .fpsi-doc__nav .elementor-nav-menu {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	flex-wrap: nowrap;
	gap: 2px;
}

.fpsi-doc .fpsi-doc__nav .elementor-nav-menu li {
	width: 100%;
}

.fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item {
	display: block;
	width: 100%;
	padding: 10px 14px;
	border-radius: var(--fpsi-r-sm);
	border-inline-start: 3px solid transparent;
	color: var(--fpsi-muted);
	fill: var(--fpsi-muted);
	font-size: .95rem;
	font-weight: 500;
	line-height: 1.4;
	transition: color var(--fpsi-fast) var(--fpsi-ease),
	            background-color var(--fpsi-fast) var(--fpsi-ease),
	            border-color var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item:hover,
.fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item:focus-visible,
.fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item.highlighted {
	color: var(--fpsi-primary-deep);
	background-color: var(--fpsi-tint-8);
	border-inline-start-color: rgba(0, 174, 239, .45);
}

.fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item.fpsi-active {
	color: var(--fpsi-primary-deep);
	background-color: var(--fpsi-tint-14);
	border-inline-start-color: var(--fpsi-primary);
	font-weight: 700;
}

.fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item:after,
.fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item:before {
	content: none;
}

/* --- Bagian --------------------------------------------------------------- */

.fpsi-doc .fpsi-doc__section {
	--width: 100%;
	width: 100%;
	--padding-top: clamp(32px, 4vw, 52px);
	--padding-bottom: clamp(32px, 4vw, 52px);
	--gap: 14px;
	border-bottom: 1px solid var(--fpsi-line);
	scroll-margin-top: calc(var(--fpsi-header-h) + 24px);
}

.fpsi-doc .fpsi-doc__section:first-child {
	--padding-top: 0px;
}

.fpsi-doc .fpsi-doc__section:last-child {
	border-bottom: 0;
	--padding-bottom: 0px;
}

.fpsi-doc .fpsi-doc__title .elementor-heading-title {
	position: relative;
	display: block;
	font-size: clamp(1.4rem, 2.7vw, 1.95rem);
	line-height: 1.2;
	font-weight: 800;
	letter-spacing: .005em;
	color: var(--fpsi-ink);
	padding-top: 16px;
	margin-bottom: .4em;
}

.fpsi-doc .fpsi-doc__title .elementor-heading-title::before {
	content: "";
	position: absolute;
	inset: 0 auto auto 0;
	width: 44px;
	height: 4px;
	border-radius: var(--fpsi-r-pill);
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent));
}

.fpsi-doc .fpsi-doc__text {
	text-align: start;
	font-size: 1.0625rem;
	font-weight: 400;
	line-height: 1.85;
	color: #41556B;
	max-width: 76ch;
}

.fpsi-doc .fpsi-doc__text p { margin: 0 0 1em 0; }
.fpsi-doc .fpsi-doc__text p:last-child { margin-bottom: 0; }

/* Kalimat pembuka tiap bagian ditegaskan — pola yang dipakai di desain. */
.fpsi-doc .fpsi-doc__text > p:first-child > strong:first-child,
.fpsi-doc .fpsi-doc__text > p:first-child > b:first-child {
	font-size: 1.08em;
	font-weight: 700;
	color: var(--fpsi-ink);
}

.fpsi-doc .fpsi-doc__text ol,
.fpsi-doc .fpsi-doc__text ul {
	display: flex;
	flex-direction: column;
	gap: .45em;
	margin: .9em 0 1.1em;
	padding-inline-start: 1.4em;
}

.fpsi-doc .fpsi-doc__text li::marker {
	color: var(--fpsi-primary-deep);
	font-weight: 700;
}

/* Slot teks yang masih kosong tidak boleh menyisakan jarak. */
.fpsi-doc .fpsi-doc__text:empty,
.fpsi-doc .fpsi-doc__text > .elementor-widget-container:empty {
	display: none;
}

/* --- Tombol --------------------------------------------------------------- */

.fpsi-doc .fpsi-doc__btn {
	margin-top: 8px;
}

.fpsi-doc .fpsi-doc__btn .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	background-image: none;
	background-color: var(--fpsi-cta-navy, #395A7F);
	color: var(--fpsi-white);
	border: 0;
	border-radius: var(--fpsi-r-sm);
	padding: 13px 26px;
	font-size: .95rem;
	font-weight: 700;
	box-shadow: var(--fpsi-shadow-1);
	transition: background-color var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-doc .fpsi-doc__btn .elementor-button::after {
	content: "→";
	transition: transform var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-doc .fpsi-doc__btn .elementor-button:hover,
.fpsi-doc .fpsi-doc__btn .elementor-button:focus-visible {
	background-color: var(--fpsi-ink);
	color: var(--fpsi-white);
	transform: translateY(-2px);
	box-shadow: var(--fpsi-shadow-2);
}

.fpsi-doc .fpsi-doc__btn .elementor-button:hover::after {
	transform: translateX(4px);
}


/* --- Kartu kelompok riset -------------------------------------------------- */

.fpsi-doc .fpsi-rgrid {
	--display: grid;
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(10px, 1.2vw, 16px);
	width: 100%;
	margin: 6px 0 4px;
}

.fpsi-doc .fpsi-rcard {
	--width: auto;
	width: auto;
	min-height: 148px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 10px;
	padding: 16px 18px;
	border-radius: var(--fpsi-r-md);
	overflow: hidden;
	position: relative;
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-doc .fpsi-rcard:hover {
	transform: translateY(-4px);
	box-shadow: var(--fpsi-shadow-2);
}

/* Tiap kartu memakai gradien dari warna cerah desain ke versi yang lebih
   pekat di bawah. Alasannya kontras: label kecil di bagian bawah kartu butuh
   4.5:1, dan warna cerah aslinya hanya sekitar 2.5:1 terhadap teks putih.
   Dengan gradien, angka besar tetap duduk di warna cerah (butuh 3:1 saja)
   sementara labelnya jatuh di area gelap yang sudah lolos AA. */
.fpsi-doc .fpsi-rcard--1 { background: linear-gradient(158deg, #35C4A0 0%, #157A60 100%); }
.fpsi-doc .fpsi-rcard--2 { background: linear-gradient(158deg, #A96FE0 0%, #6D3BC4 100%); }
.fpsi-doc .fpsi-rcard--3 { background: linear-gradient(158deg, #F5842B 0%, #B35400 100%); }
.fpsi-doc .fpsi-rcard--4 { background: linear-gradient(158deg, #F4615C 0%, #C6332B 100%); }

.fpsi-doc .fpsi-rcard__num .elementor-heading-title {
	font-size: clamp(1.5rem, 2.4vw, 1.9rem);
	line-height: 1;
	font-weight: 800;
	letter-spacing: -.02em;
	color: var(--fpsi-white);
}

.fpsi-doc .fpsi-rcard__label .elementor-heading-title {
	font-size: .82rem;
	line-height: 1.4;
	font-weight: 500;
	font-style: italic;
	color: rgba(255, 255, 255, .96);
	text-wrap: pretty;
}


/* --- Tablet & HP ----------------------------------------------------------- */

@media (max-width: 1024px) {
	body .e-con.fpsi-doc > .e-con-inner {
		flex-direction: column;
		gap: clamp(20px, 3vw, 32px);
	}

	body .fpsi-doc .fpsi-doc__nav.elementor-widget {
		width: 100% !important;
		max-width: 100% !important;
		--container-widget-width: 100%;
		flex: 0 0 auto;
		position: static !important;
		order: -1;
	}

	.fpsi-doc .fpsi-doc__nav .elementor-widget-container {
		padding: 8px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.fpsi-doc .fpsi-doc__nav .elementor-widget-container::-webkit-scrollbar {
		display: none;
	}

	.fpsi-doc .fpsi-doc__nav .elementor-nav-menu {
		flex-direction: row;
		flex-wrap: nowrap;
		gap: 6px;
	}

	.fpsi-doc .fpsi-doc__nav .elementor-nav-menu li {
		width: auto;
		flex: 0 0 auto;
	}

	.fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item {
		white-space: nowrap;
		padding: 9px 16px;
		border-inline-start: 0;
		border: 1px solid var(--fpsi-line);
		border-radius: var(--fpsi-r-pill);
	}

	.fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item.fpsi-active {
		border-color: var(--fpsi-primary);
		background-color: var(--fpsi-tint-14);
	}

	.fpsi-doc .fpsi-rgrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.fpsi-doc .fpsi-doc__text {
		font-size: 1rem;
		line-height: 1.8;
		max-width: none;
	}

	.fpsi-doc .fpsi-doc__btn .elementor-button {
		width: 100%;
		justify-content: center;
		min-height: 46px;
	}
}

@media (max-width: 440px) {
	.fpsi-doc .fpsi-rgrid {
		grid-template-columns: 1fr;
	}

	.fpsi-doc .fpsi-rcard {
		min-height: 0;
	}
}


/* ==========================================================================
   18. PENANDA "SEDANG DIBACA" DI SIDEBAR — penyelarasan

   Elementor Pro menjalankan scroll-spy-nya sendiri untuk menu anchor
   (modul AnchorLinks) dan menambahkan kelas `elementor-item-active`.
   Warna kelas itu mengambil `--e-global-color-accent` dari Global Kit, yang
   di situs ini bernilai #FFFFFF — sehingga teksnya tak terbaca di atas kartu
   sidebar yang putih.

   Selain itu observer Elementor memakai `toggleClass(..., isIntersecting)`
   per target, sehingga BEBERAPA item bisa aktif sekaligus saat dua bagian
   sama-sama menyentuh pita pengamatan.

   Penyelesaiannya: penanda bawaan Elementor dinetralkan (dikembalikan ke
   tampilan normal), lalu penanda milik kita — `.fpsi-active`, yang selalu
   memilih TEPAT SATU bagian teratas yang terlihat — yang dipakai.

   Urutan blok di bawah ini penting: netral → hover → aktif. Ketiganya
   bespesifisitas sama (0,5,1), jadi yang terakhir menang saat bertumpuk.
   ========================================================================== */

/* 1. Netralkan penanda bawaan Elementor -------------------------------------- */

body .fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
body.page-id-57 .elementor-57 .elementor-element-e48410e .elementor-nav-menu--main .elementor-item.elementor-item-active,
body.page-id-252 .elementor-252 .elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item.elementor-item-active {
	color: var(--fpsi-muted);
	fill: var(--fpsi-muted);
	background-color: transparent;
	border-inline-start-color: transparent;
	font-weight: 500;
}

/* 2. Hover / fokus keyboard --------------------------------------------------- */

body .fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item:hover,
body .fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item:focus-visible,
body.page-id-57 .elementor-57 .elementor-element-e48410e .elementor-nav-menu--main .elementor-item:hover,
body.page-id-57 .elementor-57 .elementor-element-e48410e .elementor-nav-menu--main .elementor-item:focus-visible,
body.page-id-252 .elementor-252 .elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item:hover,
body.page-id-252 .elementor-252 .elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item:focus-visible {
	color: var(--fpsi-primary-deep);
	fill: var(--fpsi-primary-deep);
	background-color: var(--fpsi-tint-8);
	border-inline-start-color: rgba(0, 174, 239, .45);
}

/* 3. Penanda aktif milik kita ------------------------------------------------- */

body .fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item.fpsi-active,
body.page-id-57 .elementor-57 .elementor-element-e48410e .elementor-nav-menu--main .elementor-item.fpsi-active,
body.page-id-252 .elementor-252 .elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item.fpsi-active {
	color: var(--fpsi-primary-deep);
	fill: var(--fpsi-primary-deep);
	background-color: var(--fpsi-tint-14);
	border-inline-start-color: var(--fpsi-primary);
	font-weight: 700;
}

/* Varian chip di tablet & HP: penandanya bingkai, bukan garis tepi kiri. */
@media (max-width: 1024px) {
	body .fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
	body.page-id-57 .elementor-57 .elementor-element-e48410e .elementor-nav-menu--main .elementor-item.elementor-item-active,
	body.page-id-252 .elementor-252 .elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item.elementor-item-active {
		border-color: var(--fpsi-line);
		background-color: transparent;
	}

	body .fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item:hover,
	body.page-id-57 .elementor-57 .elementor-element-e48410e .elementor-nav-menu--main .elementor-item:hover,
	body.page-id-252 .elementor-252 .elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item:hover {
		border-color: rgba(0, 174, 239, .45);
	}

	body .fpsi-doc .fpsi-doc__nav .elementor-nav-menu--main .elementor-item.fpsi-active,
	body.page-id-57 .elementor-57 .elementor-element-e48410e .elementor-nav-menu--main .elementor-item.fpsi-active,
	body.page-id-252 .elementor-252 .elementor-element-f1a7c20 .elementor-nav-menu--main .elementor-item.fpsi-active {
		border-color: var(--fpsi-primary);
		background-color: var(--fpsi-tint-14);
	}
}


/* ==========================================================================
   19. MODAL KELOMPOK RISET

   Kartu 01-04 di bagian "Kelompok Riset" membuka jendela berisi rincian
   kompartemen. Memakai elemen <dialog> bawaan browser, bukan pustaka
   tambahan: tombol Esc, penguncian fokus, dan pengembalian fokus setelah
   ditutup sudah ditangani browser.

   Catatan isi: dokumen sumber baru memuat kompartemen 01 dan 02. Kartu 03
   dan 04 sengaja TIDAK dibuat bisa diklik supaya tidak menjanjikan sesuatu
   yang belum ada — lihat aturan `[data-fpsi-modal]` di bawah.
   ========================================================================== */

/* Widget penampung dialog tidak boleh memakan ruang di aliran halaman. */
.fpsi-rmodals {
	display: contents;
}

.fpsi-modal {
	width: min(760px, calc(100vw - 32px));
	max-height: min(86vh, 900px);
	padding: 0;
	border: 0;
	border-radius: var(--fpsi-r-xl);
	background: var(--fpsi-white);
	box-shadow: 0 24px 70px rgba(0, 30, 42, .35);
	overflow: hidden;
	color: var(--fpsi-text);
}

.fpsi-modal::backdrop {
	background: rgba(0, 26, 36, .55);
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
}

/* Animasi masuk yang halus; dilewati bila pengguna meminta minim gerak. */
@media (prefers-reduced-motion: no-preference) {
	.fpsi-modal[open] {
		animation: fpsi-modal-in .26s var(--fpsi-ease);
	}
	.fpsi-modal[open]::backdrop {
		animation: fpsi-fade-in .26s var(--fpsi-ease);
	}
}

@keyframes fpsi-modal-in {
	from { opacity: 0; transform: translateY(14px) scale(.98); }
	to   { opacity: 1; transform: none; }
}

@keyframes fpsi-fade-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.fpsi-modal .fpsi-modal__panel {
	display: flex;
	flex-direction: column;
	max-height: inherit;
}

/* --- Kepala ---------------------------------------------------------------- */

.fpsi-modal .fpsi-modal__head {
	position: relative;
	padding: clamp(22px, 3vw, 32px) clamp(22px, 3vw, 36px);
	padding-inline-end: 64px;
	color: var(--fpsi-white);
}

/* Warnanya mengikuti kartu asalnya. */
.fpsi-modal .fpsi-modal__head--01 { background: linear-gradient(158deg, #35C4A0 0%, #157A60 100%); }
.fpsi-modal .fpsi-modal__head--02 { background: linear-gradient(158deg, #A96FE0 0%, #6D3BC4 100%); }
.fpsi-modal .fpsi-modal__head--03 { background: linear-gradient(158deg, #F5842B 0%, #B35400 100%); }
.fpsi-modal .fpsi-modal__head--04 { background: linear-gradient(158deg, #F4615C 0%, #C6332B 100%); }

.fpsi-modal .fpsi-modal__num {
	display: inline-block;
	font-size: .95rem;
	font-weight: 800;
	letter-spacing: .12em;
	opacity: .85;
	margin-bottom: 6px;
}

.fpsi-modal .fpsi-modal__title {
	margin: 0 0 6px;
	font-size: clamp(1.15rem, 2.4vw, 1.55rem);
	line-height: 1.25;
	font-weight: 800;
	letter-spacing: -.01em;
	color: var(--fpsi-white);
}

.fpsi-modal .fpsi-modal__tagline {
	margin: 0;
	font-size: clamp(.9rem, 1.5vw, 1rem);
	font-style: italic;
	line-height: 1.5;
	color: rgba(255, 255, 255, .92);
}

.fpsi-modal .fpsi-modal__close {
	position: absolute;
	inset: clamp(16px, 2vw, 22px) clamp(16px, 2vw, 22px) auto auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: var(--fpsi-r-pill);
	background: rgba(255, 255, 255, .18);
	color: var(--fpsi-white);
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color var(--fpsi-fast) var(--fpsi-ease),
	            transform var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-modal .fpsi-modal__close:hover {
	background: rgba(255, 255, 255, .32);
	transform: rotate(90deg);
}

.fpsi-modal .fpsi-modal__close:focus-visible {
	outline: 3px solid var(--fpsi-white);
	outline-offset: 2px;
}

/* --- Isi -------------------------------------------------------------------- */

.fpsi-modal .fpsi-modal__body {
	padding: clamp(20px, 3vw, 30px) clamp(22px, 3vw, 36px) clamp(26px, 3.4vw, 36px);
	overflow-y: auto;
	overscroll-behavior: contain;
}

.fpsi-modal .fpsi-modal__body p {
	margin: 0 0 1.1em;
	font-size: 1.02rem;
	line-height: 1.8;
	color: #41556B;
}

.fpsi-modal .fpsi-modal__subtitle {
	margin: 0 0 12px;
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--fpsi-primary-deep);
}

.fpsi-modal .fpsi-modal__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fpsi-modal .fpsi-modal__list li {
	position: relative;
	padding-inline-start: 22px;
	font-size: .96rem;
	line-height: 1.6;
	color: var(--fpsi-text);
}

.fpsi-modal .fpsi-modal__list li::before {
	content: "";
	position: absolute;
	inset: .58em auto auto 0;
	width: 7px;
	height: 7px;
	border-radius: var(--fpsi-r-pill);
	background: var(--fpsi-accent);
}

@media (max-width: 560px) {
	.fpsi-modal .fpsi-modal__list {
		grid-template-columns: 1fr;
	}
}

/* --- Kartu yang bisa diklik ------------------------------------------------- */

/* Hanya kartu yang benar-benar punya modal (ditandai JS) yang jadi interaktif. */
.fpsi-doc .fpsi-rcard[data-fpsi-modal] {
	cursor: pointer;
}

.fpsi-doc .fpsi-rcard[data-fpsi-modal]::after {
	content: "";
	position: absolute;
	inset: auto 14px 14px auto;
	width: 26px;
	height: 26px;
	border-radius: var(--fpsi-r-pill);
	background: rgba(255, 255, 255, .22) center / 11px 11px no-repeat
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-doc .fpsi-rcard[data-fpsi-modal]:hover::after,
.fpsi-doc .fpsi-rcard[data-fpsi-modal]:focus-visible::after {
	opacity: 1;
	transform: none;
}

.fpsi-doc .fpsi-rcard[data-fpsi-modal]:focus-visible {
	outline: 3px solid var(--fpsi-ink);
	outline-offset: 3px;
}

/* Halaman tidak ikut bergulir saat modal terbuka. */
body.fpsi-modal-open {
	overflow: hidden;
}


/* ==========================================================================
   20. DAFTAR BEASISWA  (halaman Kehidupan Kampus)

   Tombol "Lihat Selengkapnya" membuka daftar kartu beasiswa yang
   dikelompokkan per baris. Tiap kartu membuka modal berisi rinciannya.
   Sumber data: "Salinan Web Psi 2026.docx" bagian Informasi Beasiswa.
   ========================================================================== */

.fpsi-schol-wrap {
	width: 100%;
}

.fpsi-schol {
	margin-top: 10px;
}

/* --- Tombol pembuka -------------------------------------------------------- */

.fpsi-schol .fpsi-schol__toggle {
	display: inline-flex;
	align-items: center;
	gap: .55em;
	background-color: var(--fpsi-cta-navy, #395A7F);
	color: var(--fpsi-white);
	border: 0;
	border-radius: var(--fpsi-r-sm);
	padding: 13px 26px;
	font: inherit;
	font-size: .95rem;
	font-weight: 700;
	cursor: pointer;
	box-shadow: var(--fpsi-shadow-1);
	transition: background-color var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-schol .fpsi-schol__toggle::after {
	content: "▾";
	font-size: .9em;
	transition: transform var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-schol .fpsi-schol__toggle[aria-expanded="true"]::after {
	transform: rotate(180deg);
}

.fpsi-schol .fpsi-schol__toggle:hover,
.fpsi-schol .fpsi-schol__toggle:focus-visible {
	background-color: var(--fpsi-ink);
	transform: translateY(-2px);
	box-shadow: var(--fpsi-shadow-2);
}

/* --- Panel & kelompok ------------------------------------------------------ */

.fpsi-schol .fpsi-schol__panel[hidden] {
	display: none;
}

.fpsi-schol .fpsi-schol__panel {
	margin-top: clamp(22px, 3vw, 32px);
}

@media (prefers-reduced-motion: no-preference) {
	.fpsi-schol .fpsi-schol__panel:not([hidden]) {
		animation: fpsi-schol-in .3s var(--fpsi-ease);
	}
}

@keyframes fpsi-schol-in {
	from { opacity: 0; transform: translateY(-8px); }
	to   { opacity: 1; transform: none; }
}

.fpsi-schol .fpsi-schol__group {
	margin: clamp(20px, 2.6vw, 30px) 0 14px;
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--fpsi-primary-deep);
	display: flex;
	align-items: center;
	gap: 12px;
}

.fpsi-schol .fpsi-schol__group:first-child {
	margin-top: 0;
}

/* Garis penyambung sampai tepi kanan — penanda baris kelompok. */
.fpsi-schol .fpsi-schol__group::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: var(--fpsi-line);
}

.fpsi-schol .fpsi-schol__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(12px, 1.4vw, 18px);
	align-items: stretch;
}

/* --- Kartu ------------------------------------------------------------------ */

.fpsi-schol .fpsi-schol__card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	text-align: start;
	font: inherit;
	cursor: pointer;
	padding: clamp(16px, 1.8vw, 20px);
	background: var(--fpsi-white);
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-lg);
	box-shadow: var(--fpsi-shadow-1);
	position: relative;
	overflow: hidden;
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease),
	            border-color var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-schol .fpsi-schol__card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent));
	opacity: 0;
	transition: opacity var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-schol .fpsi-schol__card:hover,
.fpsi-schol .fpsi-schol__card:focus-visible {
	transform: translateY(-4px);
	box-shadow: var(--fpsi-shadow-2);
	border-color: rgba(0, 174, 239, .45);
}

.fpsi-schol .fpsi-schol__card:hover::before,
.fpsi-schol .fpsi-schol__card:focus-visible::before {
	opacity: 1;
}

.fpsi-schol .fpsi-schol__name {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--fpsi-ink);
}

.fpsi-schol .fpsi-schol__desc {
	font-size: .88rem;
	line-height: 1.6;
	color: var(--fpsi-muted);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.fpsi-schol .fpsi-schol__more {
	margin-top: auto;
	padding-top: 6px;
	font-size: .84rem;
	font-weight: 700;
	color: var(--fpsi-primary-deep);
	display: inline-flex;
	align-items: center;
	gap: .35em;
}

.fpsi-schol .fpsi-schol__more::after {
	content: "→";
	transition: transform var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-schol .fpsi-schol__card:hover .fpsi-schol__more::after {
	transform: translateX(4px);
}

/* --- Modal beasiswa: kepala memakai warna brand ---------------------------- */

.fpsi-modal .fpsi-modal__head--bea {
	background: linear-gradient(158deg, #00799B 0%, #00293A 100%);
}

.fpsi-modal .fpsi-modal__head--bea .fpsi-modal__num {
	font-size: .72rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.fpsi-modal .fpsi-modal__list--single {
	grid-template-columns: 1fr;
}

.fpsi-modal .fpsi-modal__body h4.fpsi-modal__subtitle {
	margin-top: 22px;
}

.fpsi-modal .fpsi-modal__body h4.fpsi-modal__subtitle:first-of-type {
	margin-top: 0;
}

.fpsi-modal .fpsi-modal__source {
	margin: 0;
	font-size: .95rem;
	font-weight: 600;
	color: var(--fpsi-primary-deep);
}

/* Versi bertaut ke portal resmi. Yang belum punya tautan tetap teks biasa,
   jadi tidak ada yang tampak bisa diklik padahal bukan tautan. */
.fpsi-modal a.fpsi-modal__source--link {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	padding: 9px 16px;
	border: 1px solid rgba(0, 174, 239, .45);
	border-radius: var(--fpsi-r-pill);
	background: var(--fpsi-tint-8);
	text-decoration: none;
	transition: background-color var(--fpsi-fast) var(--fpsi-ease),
	            border-color var(--fpsi-fast) var(--fpsi-ease),
	            transform var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-modal a.fpsi-modal__source--link:hover,
.fpsi-modal a.fpsi-modal__source--link:focus-visible {
	background: var(--fpsi-primary-deep);
	border-color: var(--fpsi-primary-deep);
	color: var(--fpsi-white);
	transform: translateY(-2px);
}

.fpsi-modal .fpsi-modal__ext {
	font-size: 1.05em;
	line-height: 1;
	transition: transform var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-modal a.fpsi-modal__source--link:hover .fpsi-modal__ext {
	transform: translate(2px, -2px);
}

/* --- Responsif -------------------------------------------------------------- */

@media (max-width: 1200px) {
	.fpsi-schol .fpsi-schol__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.fpsi-schol .fpsi-schol__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	.fpsi-schol .fpsi-schol__grid { grid-template-columns: 1fr; }
	.fpsi-schol .fpsi-schol__toggle { width: 100%; justify-content: center; min-height: 46px; }
}


/* ==========================================================================
   21. MODAL JURNAL  (halaman Riset & Produk)

   Tombol "Lihat Selengkapnya" pada bagian Jurnal membuka modal berisi dua
   sampul jurnal; masing-masing kartu adalah tautan langsung ke portal
   jurnalnya. Sampul diambil dari dokumen sumber dan diunggah ke Media
   Library, bukan dipotong dari tangkapan layar.
   ========================================================================== */

/* Tombol <button> yang tampilannya menyamai tombol Elementor di halaman ini. */
.fpsi-doc .fpsi-doc__btn-native,
.fpsi-jurnal .fpsi-doc__btn-native {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	margin-top: 8px;
	background-color: var(--fpsi-cta-navy, #395A7F);
	color: var(--fpsi-white);
	border: 0;
	border-radius: var(--fpsi-r-sm);
	padding: 13px 26px;
	font: inherit;
	font-size: .95rem;
	font-weight: 700;
	cursor: pointer;
	box-shadow: var(--fpsi-shadow-1);
	transition: background-color var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-jurnal .fpsi-doc__btn-native::after {
	content: "→";
	transition: transform var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-jurnal .fpsi-doc__btn-native:hover,
.fpsi-jurnal .fpsi-doc__btn-native:focus-visible {
	background-color: var(--fpsi-ink);
	transform: translateY(-2px);
	box-shadow: var(--fpsi-shadow-2);
}

.fpsi-jurnal .fpsi-doc__btn-native:hover::after {
	transform: translateX(4px);
}

/* Modal jurnal sedikit lebih lebar karena isinya dua sampul berdampingan. */
.fpsi-modal.fpsi-modal--wide {
	width: min(880px, calc(100vw - 32px));
}

.fpsi-modal--wide .fpsi-modal__title {
	font-size: clamp(1.05rem, 2vw, 1.3rem);
	line-height: 1.4;
}

/* --- Dua kartu jurnal ------------------------------------------------------- */

.fpsi-jurnal__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 2.4vw, 28px);
}

.fpsi-jurnal__card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: clamp(16px, 2vw, 22px);
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-lg);
	background: var(--fpsi-white);
	box-shadow: var(--fpsi-shadow-1);
	text-decoration: none;
	color: inherit;
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease),
	            border-color var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-jurnal__card:hover,
.fpsi-jurnal__card:focus-visible {
	transform: translateY(-4px);
	box-shadow: var(--fpsi-shadow-3);
	border-color: rgba(0, 174, 239, .5);
}

/* Sampul dijaga rasionya, dengan latar netral bila proporsinya berbeda. */
.fpsi-jurnal__shot {
	display: block;
	border-radius: var(--fpsi-r-md);
	overflow: hidden;
	background: var(--fpsi-surface);
	line-height: 0;
}

.fpsi-jurnal__card img.fpsi-jurnal__cover {
	width: 100%;
	height: auto;
	aspect-ratio: 353 / 505;
	object-fit: contain;
	display: block;
	transition: transform var(--fpsi-slow) var(--fpsi-ease);
}

.fpsi-jurnal__card:hover img.fpsi-jurnal__cover {
	transform: scale(1.03);
}

.fpsi-jurnal__meta {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.fpsi-jurnal__name {
	font-size: .98rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--fpsi-ink);
}

.fpsi-jurnal__badge {
	align-self: flex-start;
	padding: 5px 12px;
	border-radius: var(--fpsi-r-pill);
	background: var(--fpsi-tint-14);
	color: var(--fpsi-primary-deep);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.fpsi-jurnal__go {
	display: inline-flex;
	align-items: center;
	gap: .35em;
	margin-top: 2px;
	font-size: .88rem;
	font-weight: 700;
	color: var(--fpsi-primary-deep);
}

.fpsi-jurnal__card:hover .fpsi-modal__ext {
	transform: translate(2px, -2px);
}

@media (max-width: 620px) {
	.fpsi-jurnal__grid {
		grid-template-columns: 1fr;
	}
	.fpsi-jurnal .fpsi-doc__btn-native {
		width: 100%;
		justify-content: center;
		min-height: 46px;
	}
}


/* ==========================================================================
   22. KARTU BERKAS PDF  (bagian Inovasi & Produk)

   Server ini tidak memiliki Imagick/Ghostscript/Poppler, sehingga WordPress
   tidak bisa membuat pratinjau halaman pertama PDF. Kartu karena itu memakai
   bentuk "dokumen": ikon, judul, metadata berkas (jenis, jumlah halaman,
   ukuran), lalu dua aksi. Kalau nanti Imagick dipasang, gambar pratinjau
   tinggal disisipkan di atas judul tanpa mengubah struktur lain.
   ========================================================================== */

.fpsi-pdf {
	margin-top: 14px;
}

.fpsi-pdf__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(14px, 1.8vw, 22px);
	align-items: stretch;
}

.fpsi-pdf__card {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: clamp(18px, 2.2vw, 24px);
	background: var(--fpsi-white);
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-lg);
	box-shadow: var(--fpsi-shadow-1);
	position: relative;
	overflow: hidden;
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease),
	            border-color var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-pdf__card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent));
	opacity: 0;
	transition: opacity var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-pdf__card:hover {
	transform: translateY(-4px);
	box-shadow: var(--fpsi-shadow-2);
	border-color: rgba(0, 174, 239, .45);
}

.fpsi-pdf__card:hover::before {
	opacity: 1;
}

.fpsi-pdf__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: var(--fpsi-r-md);
	background: linear-gradient(135deg, var(--fpsi-tint-14), var(--fpsi-tint-8));
	color: var(--fpsi-primary-deep);
	flex: 0 0 auto;
}

.fpsi-pdf__icon svg {
	width: 24px;
	height: 24px;
	display: block;
}

.fpsi-pdf__title {
	margin: 4px 0 0;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--fpsi-ink);
}

.fpsi-pdf__desc {
	margin: 0;
	font-size: .9rem;
	line-height: 1.65;
	color: var(--fpsi-muted);
}

.fpsi-pdf__meta {
	margin: 0 0 4px;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--fpsi-muted);
}

/* Aksi menempel di dasar kartu supaya semua kartu rata bawahnya. */
.fpsi-pdf__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: auto;
	padding-top: 6px;
}

.fpsi-pdf__btn {
	display: inline-flex;
	align-items: center;
	gap: .35em;
	padding: 10px 18px;
	border-radius: var(--fpsi-r-pill);
	font-size: .88rem;
	font-weight: 700;
	text-decoration: none;
	transition: background-color var(--fpsi-fast) var(--fpsi-ease),
	            border-color var(--fpsi-fast) var(--fpsi-ease),
	            color var(--fpsi-fast) var(--fpsi-ease),
	            transform var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-pdf__btn--primary {
	background: var(--fpsi-primary-deep);
	color: var(--fpsi-white);
	border: 1px solid var(--fpsi-primary-deep);
}

.fpsi-pdf__btn--primary:hover,
.fpsi-pdf__btn--primary:focus-visible {
	background: var(--fpsi-ink);
	border-color: var(--fpsi-ink);
	color: var(--fpsi-white);
	transform: translateY(-2px);
}

.fpsi-pdf__btn--ghost {
	background: transparent;
	color: var(--fpsi-primary-deep);
	border: 1px solid rgba(0, 174, 239, .45);
}

.fpsi-pdf__btn--ghost:hover,
.fpsi-pdf__btn--ghost:focus-visible {
	background: var(--fpsi-tint-8);
	border-color: var(--fpsi-primary);
	transform: translateY(-2px);
}

.fpsi-pdf__btn--primary:hover .fpsi-modal__ext {
	transform: translate(2px, -2px);
}

@media (max-width: 1024px) {
	.fpsi-pdf__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	.fpsi-pdf__grid { grid-template-columns: 1fr; }
	.fpsi-pdf__btn { flex: 1 1 auto; justify-content: center; min-height: 44px; }
}


/* ==========================================================================
   23. GRID & PROFIL DOSEN  (halaman Profil / Dosen)

   Kartu memakai foto penuh dengan tirai gradien di bawahnya, bukan foto di
   atas + kotak teks putih di bawah — 46 kartu dengan blok teks terasa berat
   dan tidak rata karena panjang nama bergelar sangat bervariasi.

   Data profil (pendidikan, minat riset, email, publikasi) ditanam sekali
   sebagai satu blok JSON, lalu diisikan JS ke SATU dialog bersama. Ini jauh
   lebih ringan daripada 46 dialog atau 46 set atribut data.

   Sumber data: "Profile Lecture Psy UNJ - 08052026.xlsx".
   ========================================================================== */

.fpsi-dosen-wrap { width: 100%; }

.fpsi-dosen__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(12px, 1.4vw, 18px);
	margin-top: 16px;
}

/* --- Kartu ------------------------------------------------------------------ */

.fpsi-dosen__card {
	position: relative;
	display: block;
	padding: 0;
	border: 0;
	border-radius: var(--fpsi-r-lg);
	overflow: hidden;
	cursor: pointer;
	background: var(--fpsi-surface-2);
	aspect-ratio: 3 / 4;
	font: inherit;
	text-align: start;
	box-shadow: var(--fpsi-shadow-1);
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-dosen__card:hover,
.fpsi-dosen__card:focus-visible {
	transform: translateY(-6px);
	box-shadow: var(--fpsi-shadow-3);
}

.fpsi-dosen__photo {
	position: absolute;
	inset: 0;
	display: block;
	line-height: 0;
}

.fpsi-dosen__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	display: block;
	transition: transform var(--fpsi-slow) var(--fpsi-ease);
}

.fpsi-dosen__card:hover .fpsi-dosen__photo img {
	transform: scale(1.06);
}

/* Belum ada fotonya: inisial berlatar gradien, bukan kotak kosong. */
.fpsi-dosen__ini {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(158deg, var(--fpsi-primary) 0%, var(--fpsi-ink) 100%);
	color: var(--fpsi-white);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 800;
	letter-spacing: .04em;
}

/* Tirai gradien menjaga teks tetap terbaca di atas foto apa pun. */
.fpsi-dosen__veil {
	position: absolute;
	inset: 35% 0 0 0;
	pointer-events: none;
	background: linear-gradient(180deg,
		rgba(0, 26, 36, 0) 0%,
		rgba(0, 26, 36, .55) 45%,
		rgba(0, 26, 36, .92) 100%);
	transition: inset var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-dosen__card:hover .fpsi-dosen__veil,
.fpsi-dosen__card:focus-visible .fpsi-dosen__veil {
	inset: 12% 0 0 0;
}

.fpsi-dosen__info {
	position: absolute;
	inset: auto 0 0 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 14px 14px 15px;
	color: var(--fpsi-white);
}

.fpsi-dosen__nama {
	font-size: .84rem;
	font-weight: 700;
	line-height: 1.32;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-shadow: 0 1px 8px rgba(0, 24, 34, .5);
}

.fpsi-dosen__jabatan {
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #7FE3FF;
}

/* Ajakan yang muncul saat hover. */
.fpsi-dosen__cta {
	display: inline-flex;
	align-items: center;
	gap: .35em;
	font-size: .72rem;
	font-weight: 700;
	color: var(--fpsi-accent);
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-height var(--fpsi-base) var(--fpsi-ease),
	            opacity var(--fpsi-base) var(--fpsi-ease),
	            margin-top var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-dosen__card:hover .fpsi-dosen__cta,
.fpsi-dosen__card:focus-visible .fpsi-dosen__cta {
	max-height: 2em;
	opacity: 1;
	margin-top: 4px;
}

.fpsi-dosen__card:focus-visible {
	outline: 3px solid var(--fpsi-ink);
	outline-offset: 3px;
}

/* --- Modal profil ------------------------------------------------------------ */

.fpsi-modal.fpsi-modal--profil {
	width: min(860px, calc(100vw - 32px));
}

.fpsi-dosen__panel {
	display: grid;
	grid-template-columns: 270px 1fr;
	align-items: stretch;
	max-height: inherit;
}

.fpsi-dosen__mphoto {
	background: var(--fpsi-surface-2);
	line-height: 0;
	position: relative;
}

.fpsi-dosen__mphoto img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.fpsi-modal--profil.fpsi-modal--nophoto .fpsi-dosen__panel {
	grid-template-columns: 1fr;
}

.fpsi-dosen__mbody {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: clamp(24px, 3vw, 34px);
	overflow-y: auto;
	overscroll-behavior: contain;
	max-height: min(86vh, 900px);
}

.fpsi-dosen__mprodi {
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--fpsi-primary-deep);
}

.fpsi-modal--profil .fpsi-modal__title {
	margin: 0;
	color: var(--fpsi-ink);
	font-size: clamp(1.15rem, 2.2vw, 1.45rem);
	line-height: 1.3;
	text-wrap: balance;
}

.fpsi-dosen__mjabatan {
	margin: 6px 0 4px;
	align-self: flex-start;
	padding: 6px 14px;
	border-radius: var(--fpsi-r-pill);
	background: var(--fpsi-tint-14);
	color: var(--fpsi-primary-deep);
	font-size: .78rem;
	font-weight: 700;
}

/* --- Daftar keterangan -------------------------------------------------------- */

.fpsi-dosen__facts {
	margin: 10px 0 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.fpsi-dosen__fact dt {
	margin: 0 0 6px;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--fpsi-muted);
}

.fpsi-dosen__fact dd {
	margin: 0;
	font-size: .95rem;
	line-height: 1.65;
	color: var(--fpsi-text);
}

.fpsi-dosen__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.fpsi-dosen__chip {
	padding: 5px 12px;
	border-radius: var(--fpsi-r-pill);
	border: 1px solid var(--fpsi-line);
	background: var(--fpsi-surface);
	font-size: .82rem;
	font-weight: 600;
	color: var(--fpsi-primary-deep);
	line-height: 1.4;
}

.fpsi-dosen__mail {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	color: var(--fpsi-primary-deep);
	font-weight: 700;
	text-decoration: none;
	border-bottom: 1px solid rgba(0, 174, 239, .45);
	transition: color var(--fpsi-fast) var(--fpsi-ease),
	            border-color var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-dosen__mail:hover {
	color: var(--fpsi-ink);
	border-color: var(--fpsi-ink);
}

/* Ikon profil peneliti (menggantikan daftar "Publikasi Terbaru"). */
.fpsi-dosen__ids {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 6px 0 0;
	padding: 0;
	list-style: none;
}

.fpsi-dosen__ids li { margin: 0; }

.fpsi-dosen__id {
	display: block;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	line-height: 0;
	box-shadow: var(--fpsi-shadow-1);
	transition: transform var(--fpsi-fast) var(--fpsi-ease),
	            box-shadow var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-dosen__id--scholar { border-radius: 9px; }

.fpsi-dosen__id svg { width: 100%; height: 100%; display: block; }

.fpsi-dosen__id:hover,
.fpsi-dosen__id:focus-visible {
	transform: translateY(-3px);
	box-shadow: var(--fpsi-shadow-2);
}

.fpsi-dosen__id:focus-visible {
	outline: 3px solid var(--fpsi-ink);
	outline-offset: 3px;
}

.fpsi-modal--profil .fpsi-modal__close {
	background: rgba(0, 41, 58, .6);
	color: var(--fpsi-white);
	z-index: 3;
}

.fpsi-modal--profil .fpsi-modal__close:hover {
	background: var(--fpsi-ink);
}

/* --- Responsif ----------------------------------------------------------------- */

@media (max-width: 1200px) { .fpsi-dosen__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 900px)  { .fpsi-dosen__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

@media (max-width: 720px) {
	.fpsi-dosen__panel { grid-template-columns: 1fr; }
	.fpsi-dosen__mphoto { aspect-ratio: 16 / 10; }
	.fpsi-dosen__mphoto img { object-position: center 18%; }
	.fpsi-dosen__mbody { max-height: none; }
}

@media (max-width: 560px) {
	.fpsi-dosen__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.fpsi-dosen__nama { font-size: .78rem; }
	/* Di layar sentuh tidak ada hover, jadi tirai & ajakan langsung tampil. */
	.fpsi-dosen__veil { inset: 20% 0 0 0; }
}


/* ==========================================================================
   24. HALAMAN TENAGA KEPENDIDIKAN  (page 6356)

   Memakai ulang kartu dari seksi 23 supaya kedua halaman profil terasa satu
   keluarga. Bedanya kartu di sini TIDAK bisa diklik: datanya hanya nama dan
   jabatan, keduanya sudah tampil di muka kartu — modal berisi dua baris yang
   sama justru menipu harapan pengguna.
   ========================================================================== */

/* Tanpa sidebar: kolom isi memakai lebar penuh. */
.fpsi-doc.fpsi-doc--nonav > .e-con-inner {
	display: block;
}

/* Kartu statis: tidak ada kursor pointer maupun ajakan klik. */
.fpsi-dosen__card--static {
	cursor: default;
}

/* Jabatan selalu terbaca tanpa perlu hover, karena tidak ada modal
   yang bisa dibuka untuk melihatnya. */
.fpsi-dosen__card--static .fpsi-dosen__veil {
	inset: 25% 0 0 0;
}

/* Angkat sedikit saja saat disentuh pointer — penanda "ini kartu", bukan
   "ini tombol". */
.fpsi-dosen__card--static:hover {
	transform: translateY(-3px);
	box-shadow: var(--fpsi-shadow-2);
}

.fpsi-dosen__card--static:hover .fpsi-dosen__veil {
	inset: 25% 0 0 0;
}

.fpsi-dosen__card--static:hover .fpsi-dosen__photo img {
	transform: scale(1.03);
}

/* Nama jabatan tendik lebih panjang daripada jabatan akademik. */
.fpsi-dosen__card--static .fpsi-dosen__jabatan {
	font-size: .66rem;
	line-height: 1.4;
	letter-spacing: .05em;
	text-transform: none;
	white-space: normal;
}


/* ==========================================================================
   25. HALAMAN SENAT AKADEMIK  (page 6354)

   Anggotanya adalah dosen yang sama, jadi halaman ini memakai ulang kartu,
   modal, dan berkas foto yang sudah ada — tidak ada gambar ganda di Media
   Library. Bedanya: yang tampil di muka kartu adalah PERAN DI SENAT
   (Ketua / Sekretaris / Anggota Ex-Officio), sementara profil akademik
   lengkapnya muncul di modal.
   ========================================================================== */

/* Anggota hanya 7 orang; kartu dibuat lebih besar agar tidak terlihat
   hilang di tengah grid lebar. */
.fpsi-dosen__grid--senat {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	max-width: 1000px;
}

/* Ketua dan Sekretaris ditonjolkan dengan bingkai aksen. */
.fpsi-dosen__card--lead {
	box-shadow: 0 0 0 2px var(--fpsi-primary), var(--fpsi-shadow-2);
}

.fpsi-dosen__card--lead:hover,
.fpsi-dosen__card--lead:focus-visible {
	box-shadow: 0 0 0 2px var(--fpsi-primary), var(--fpsi-shadow-3);
}

.fpsi-dosen__card--lead .fpsi-dosen__jabatan {
	color: var(--fpsi-accent);
}

/* Peran senat lebih panjang daripada jabatan akademik. */
.fpsi-dosen__grid--senat .fpsi-dosen__jabatan {
	font-size: .66rem;
	line-height: 1.35;
	white-space: normal;
}

@media (max-width: 1000px) { .fpsi-dosen__grid--senat { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px)  { .fpsi-dosen__grid--senat { grid-template-columns: repeat(2, minmax(0, 1fr)); } }


/* ==========================================================================
   26. HALAMAN 404

   Template-nya ada di mu-plugins/fpsi-design/404.php, dipasang lewat filter
   `404_template`. Tautan cepatnya dibangun dari get_permalink() sehingga
   tidak ikut mati kalau slug halaman berubah.
   ========================================================================== */

/* Wadah tema dilebarkan khusus halaman ini agar komposisinya lega. */
body.error404 #site-content .customify-container {
	max-width: min(100%, var(--fpsi-max));
}

body.error404 .content-inner {
	padding: 0;
}

.fpsi-404 {
	padding: clamp(48px, 8vw, 96px) var(--fpsi-gutter) clamp(56px, 8vw, 104px);
}

/* --- Bagian atas ------------------------------------------------------------ */

.fpsi-404__hero {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: clamp(36px, 6vw, 64px) clamp(20px, 4vw, 56px) clamp(40px, 6vw, 64px);
	border-radius: var(--fpsi-r-xl);
	overflow: hidden;
	background:
		radial-gradient(52rem 26rem at 50% -20%, rgba(0, 174, 239, .16), transparent 65%),
		radial-gradient(38rem 22rem at 90% 110%, rgba(255, 176, 32, .12), transparent 62%),
		var(--fpsi-surface);
	border: 1px solid var(--fpsi-line);
}

/* Angka 404 raksasa sebagai latar, bukan sebagai teks yang dibaca. */
.fpsi-404__code {
	margin: 0;
	font-size: clamp(7rem, 26vw, 19rem);
	font-weight: 800;
	line-height: .82;
	letter-spacing: -.05em;
	background: linear-gradient(160deg, rgba(0, 174, 239, .30) 0%, rgba(0, 58, 77, .10) 70%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	user-select: none;
	pointer-events: none;
}

.fpsi-404__eyebrow {
	display: inline-block;
	margin-top: clamp(-2.6rem, -5vw, -1.4rem);
	padding: 7px 16px;
	border-radius: var(--fpsi-r-pill);
	background: var(--fpsi-white);
	border: 1px solid var(--fpsi-line);
	box-shadow: var(--fpsi-shadow-1);
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--fpsi-primary-deep);
}

.fpsi-404__title {
	margin: 18px 0 0;
	font-size: clamp(1.5rem, 4vw, 2.5rem);
	line-height: 1.15;
	font-weight: 800;
	letter-spacing: -.02em;
	color: var(--fpsi-ink);
	text-wrap: balance;
}

.fpsi-404__lead {
	margin: 14px 0 0;
	max-width: 58ch;
	font-size: clamp(1rem, 1.4vw, 1.08rem);
	line-height: 1.75;
	color: var(--fpsi-muted);
	text-wrap: pretty;
}

/* --- Pencarian --------------------------------------------------------------- */

.fpsi-404__search {
	display: flex;
	gap: 8px;
	width: min(100%, 34rem);
	margin-top: clamp(22px, 3vw, 30px);
	padding: 7px;
	background: var(--fpsi-white);
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-pill);
	box-shadow: var(--fpsi-shadow-2);
	transition: border-color var(--fpsi-fast) var(--fpsi-ease),
	            box-shadow var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-404__search:focus-within {
	border-color: rgba(0, 174, 239, .6);
	box-shadow: var(--fpsi-shadow-3);
}

.fpsi-404__search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 0 8px 0 18px;
	font: inherit;
	font-size: 1rem;
	color: var(--fpsi-text);
}

.fpsi-404__search input[type="search"]:focus {
	outline: none;   /* cincin fokus pindah ke wadahnya lewat :focus-within */
}

.fpsi-404__search button {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: .4em;
	padding: 12px 26px;
	border: 0;
	border-radius: var(--fpsi-r-pill);
	background: var(--fpsi-primary-deep);
	color: var(--fpsi-white);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	transition: background-color var(--fpsi-fast) var(--fpsi-ease),
	            transform var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-404__search button:hover,
.fpsi-404__search button:focus-visible {
	background: var(--fpsi-ink);
	transform: translateY(-1px);
}

.fpsi-404__home {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	margin-top: 18px;
	font-size: .95rem;
	font-weight: 700;
	color: var(--fpsi-primary-deep);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color var(--fpsi-fast) var(--fpsi-ease),
	            border-color var(--fpsi-fast) var(--fpsi-ease);
}

.fpsi-404__home:hover {
	color: var(--fpsi-ink);
	border-bottom-color: currentColor;
}

/* --- Tujuan cepat ------------------------------------------------------------- */

.fpsi-404__nav {
	margin-top: clamp(36px, 5vw, 56px);
}

.fpsi-404__navtitle {
	margin: 0 0 18px;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--fpsi-muted);
	display: flex;
	align-items: center;
	gap: 14px;
}

.fpsi-404__navtitle::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: var(--fpsi-line);
}

.fpsi-404__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(12px, 1.6vw, 18px);
}

.fpsi-404__card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: clamp(18px, 2.2vw, 24px);
	background: var(--fpsi-white);
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-lg);
	box-shadow: var(--fpsi-shadow-1);
	text-decoration: none;
	color: inherit;
	overflow: hidden;
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease),
	            border-color var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-404__card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent));
	opacity: 0;
	transition: opacity var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-404__card:hover,
.fpsi-404__card:focus-visible {
	transform: translateY(-4px);
	box-shadow: var(--fpsi-shadow-2);
	border-color: rgba(0, 174, 239, .45);
}

.fpsi-404__card:hover::before,
.fpsi-404__card:focus-visible::before {
	opacity: 1;
}

.fpsi-404__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: var(--fpsi-r-md);
	background: linear-gradient(135deg, var(--fpsi-tint-14), var(--fpsi-tint-8));
	color: var(--fpsi-primary-deep);
}

.fpsi-404__icon svg {
	width: 22px;
	height: 22px;
	display: block;
}

.fpsi-404__cardtitle {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--fpsi-ink);
}

.fpsi-404__cardtext {
	font-size: .88rem;
	line-height: 1.6;
	color: var(--fpsi-muted);
}

.fpsi-404__cardgo {
	margin-top: 2px;
	font-weight: 700;
	color: var(--fpsi-primary-deep);
	transition: transform var(--fpsi-fast) var(--fpsi-ease);
	align-self: flex-start;
}

.fpsi-404__card:hover .fpsi-404__cardgo {
	transform: translateX(5px);
}

/* --- Responsif ----------------------------------------------------------------- */

@media (max-width: 900px) {
	.fpsi-404__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	.fpsi-404__grid { grid-template-columns: 1fr; }

	/* Tombol pindah ke bawah kolom pencarian agar tidak berdesakan. */
	.fpsi-404__search {
		flex-direction: column;
		border-radius: var(--fpsi-r-lg);
		padding: 10px;
	}

	.fpsi-404__search input[type="search"] {
		padding: 10px 12px;
		min-height: 44px;
	}

	.fpsi-404__search button {
		justify-content: center;
		min-height: 46px;
	}
}


/* ==========================================================================
   27. REVISI KLIEN — FOOTER
   Teks diperbesar & ditebalkan, alamat di atas copyright, lencana LAPOR!.
   ========================================================================== */

/* Naik dari .875rem/.95rem — permintaan "diperbesar atau di bold". */
#colophon .elementor-77 .elementor-icon-list-item,
#colophon .elementor-77 .elementor-icon-list-item > a,
#colophon .elementor-77 .elementor-icon-list-text {
	font-size: 1rem;
	font-weight: 500;
	color: rgba(255, 255, 255, .88);
}

#colophon .elementor-77 .elementor-widget-heading h4.elementor-heading-title {
	font-size: .92rem;
	color: rgba(255, 255, 255, .78);
}

/* Alamat & copyright */
#colophon .elementor-77 .fpsi-foot-addr {
	margin: 0 0 10px;
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.7;
	color: rgba(255, 255, 255, .9);
}

#colophon .elementor-77 .fpsi-foot-copy {
	margin: 0;
	font-size: .86rem;
	font-weight: 400;
	line-height: 1.65;
	color: rgba(255, 255, 255, .62);
}

/* --- Lencana LAPOR! ---------------------------------------------------------- */

#colophon .fpsi-lapor-wrap {
	margin-top: 18px;
}

#colophon .fpsi-lapor {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 10px 16px;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: var(--fpsi-r-md);
	background: rgba(255, 255, 255, .07);
	text-decoration: none;
	transition: background-color var(--fpsi-fast) var(--fpsi-ease),
	            border-color var(--fpsi-fast) var(--fpsi-ease),
	            transform var(--fpsi-fast) var(--fpsi-ease);
}

#colophon .fpsi-lapor:hover,
#colophon .fpsi-lapor:focus-visible {
	background: rgba(255, 255, 255, .16);
	border-color: rgba(255, 255, 255, .5);
	transform: translateY(-2px);
}

#colophon .fpsi-lapor__mark {
	flex: 0 0 auto;
	font-size: 1.15rem;
	font-weight: 800;
	letter-spacing: .02em;
	color: var(--fpsi-white);
	line-height: 1;
}

#colophon .fpsi-lapor__mark span {
	color: var(--fpsi-accent);
}

#colophon .fpsi-lapor__txt {
	font-size: .72rem;
	font-weight: 500;
	line-height: 1.4;
	color: rgba(255, 255, 255, .78);
}

@media (max-width: 767px) {
	#colophon .elementor-77 .elementor-icon-list-item,
	#colophon .elementor-77 .elementor-icon-list-item > a,
	#colophon .elementor-77 .elementor-icon-list-text {
		font-size: .95rem;
	}
	#colophon .elementor-77 .fpsi-foot-addr { font-size: .9rem; }
}


/* ==========================================================================
   28. REVISI KLIEN — HALAMAN PROFIL & POLA DOKUMEN

   Catatan soal `text-align: justify`: klien meminta narasi dirata kiri-kanan.
   Rata kiri-kanan tanpa pemenggalan kata menghasilkan celah lebar ("sungai")
   di teks Indonesia, jadi `hyphens: auto` diaktifkan bersamaan untuk
   meredamnya, dan `text-align-last: start` supaya baris terakhir tiap alinea
   tidak ikut direntangkan.
   ========================================================================== */

body.page-id-57 .elementor-57 .elementor-widget-text-editor,
body.page-id-57 .elementor-57 .elementor-widget-text-editor p,
body.page-id-252 .elementor-252 .elementor-widget-text-editor,
body.page-id-252 .elementor-252 .elementor-widget-text-editor p,
.fpsi-doc .fpsi-doc__text,
.fpsi-doc .fpsi-doc__text p {
	text-align: justify;
	text-align-last: start;
	hyphens: auto;
	-webkit-hyphens: auto;
}

/* Daftar & keterangan gambar tetap rata kiri / tengah sesuai perannya. */
body.page-id-57 .elementor-57 .elementor-widget-text-editor li,
body.page-id-252 .elementor-252 .elementor-widget-text-editor li,
.fpsi-doc .fpsi-doc__text li {
	text-align: start;
	hyphens: manual;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-d7a69ad,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-d7a69ad p,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-c74156c,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-c74156c p {
	text-align: center;
	hyphens: manual;
}

/* --- Logo akreditasi: dikecilkan ---------------------------------------------
   Berkasnya SATU gambar berisi dua logo BAN-PT (680x266). Jadi "dua logo"
   sudah terpenuhi; yang diperlukan hanya mengecilkan tampilannya agar tidak
   mendominasi bagian ini. Keterangan di bawahnya diselaraskan lebarnya. */

body.page-id-57 .elementor-57 .elementor-element.elementor-element-c04310a img {
	width: 100%;
	max-width: 440px;
	height: auto;
	margin-inline: auto;
	display: block;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-cc97c37 {
	max-width: 440px;
	margin-inline: auto;
	gap: 0;
	--column-gap: 0px;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-cc97c37 > .e-con {
	border: 0;
	box-shadow: none;
	background: transparent;
	--padding-top: 6px;
	--padding-bottom: 0px;
	--padding-left: 4px;
	--padding-right: 4px;
	transform: none;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-cc97c37 > .e-con:hover {
	transform: none;
	box-shadow: none;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-d7a69ad,
body.page-id-57 .elementor-57 .elementor-element.elementor-element-c74156c {
	font-size: .78rem;
	line-height: 1.45;
	font-weight: 600;
}

/* --- Bagan struktur organisasi: dipaskan ke tepi kanan kolom ---------------- */

body.page-id-57 .elementor-57 .elementor-element.elementor-element-097a642 {
	width: 100%;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-097a642 .elementor-widget-container {
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-lg, 20px);
	background: var(--fpsi-white);
	padding: 10px;
	box-shadow: var(--fpsi-shadow-1);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

body.page-id-57 .elementor-57 .elementor-element.elementor-element-097a642 img {
	width: 100%;
	max-width: none;
	height: auto;
	display: block;
	border-radius: var(--fpsi-r-md);
}


/* ==========================================================================
   29. REVISI KLIEN — CTA "BERGABUNGLAH"
   Judul dibuat memanjang ke samping (satu baris di layar lebar), dan hanya
   tersisa satu tombol setelah "Hubungi Admisi" dihapus.
   ========================================================================== */

body .fpsi-cta .fpsi-cta__title .elementor-heading-title {
	max-width: none;
	text-wrap: nowrap;
	white-space: nowrap;
	font-size: clamp(1.05rem, 2.1vw, 1.7rem);
}

/* Di bawah 900px teks dilepas kembali agar tidak terpotong. */
@media (max-width: 900px) {
	body .fpsi-cta .fpsi-cta__title .elementor-heading-title {
		white-space: normal;
		text-wrap: balance;
	}
}

/* Satu tombol: jangan melar memenuhi baris. */
body .fpsi-cta .fpsi-cta__actions.e-con {
	flex: 0 0 auto;
}

@media (max-width: 860px) {
	body .fpsi-cta .fpsi-cta__actions.e-con {
		width: auto;
		--width: auto;
	}
}


/* ==========================================================================
   30. REVISI KLIEN — BERANDA
   ========================================================================== */

/* --- HERO: ukuran teks diturunkan --------------------------------------------
   Sebelumnya clamp(2.1rem, 5.6vw, 4rem) — di layar 1440px menghasilkan 4rem
   penuh dan terasa berlebihan. Batas atas diturunkan dan lajunya diperlambat. */

body.elementor-page-86 .elementor-86 .elementor-element.elementor-element-709b3414 .elementor-heading-title {
	font-size: clamp(1.75rem, 3.6vw, 2.9rem);
	line-height: 1.14;
	letter-spacing: -.018em;
	max-width: 20ch;
}

body.elementor-page-86 .elementor-element.elementor-element-401b93e2 {
	font-size: clamp(.95rem, 1.15vw, 1.08rem);
	line-height: 1.7;
	max-width: min(100%, 40rem);
}

@media (max-width: 767px) {
	body.elementor-page-86 .elementor-86 .elementor-element.elementor-element-709b3414 .elementor-heading-title {
		font-size: clamp(1.6rem, 7vw, 2.1rem);
		max-width: 100%;
	}
}

/* --- STATISTIK: judul diberi bayangan ---------------------------------------- */

body.elementor-page-86 .elementor-element.elementor-element-6ab5475 h1,
body.elementor-page-86 .elementor-element.elementor-element-6ab5475 h2,
body.elementor-page-86 .elementor-element.elementor-element-6ab5475 h3,
body.elementor-page-86 .elementor-element.elementor-element-6ab5475 .elementor-heading-title {
	text-shadow: 0 2px 14px rgba(0, 58, 77, .22);
}

/* --- QUICK LINKS: lebih kecil, di tengah, jarak seimbang --------------------- */

body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner {
	grid-template-columns: repeat(3, minmax(0, 240px));
	justify-content: center;
	gap: 20px;
}

body.elementor-page-86 .elementor-element.elementor-element-a25ee17,
body.elementor-page-86 .elementor-element.elementor-element-a5b7786,
body.elementor-page-86 .elementor-element.elementor-element-ac04695,
body.elementor-page-86 .elementor-element.elementor-element-049006b,
body.elementor-page-86 .elementor-element.elementor-element-4f3c981,
body.elementor-page-86 .elementor-element.elementor-element-448d835 {
	--padding-top: 22px;
	--padding-bottom: 22px;
	--padding-left: 18px;
	--padding-right: 18px;
	--gap: 10px;
}

/* Ikon ikut mengecil agar proporsinya tetap. */
body.elementor-page-86 .elementor-element.elementor-element-20452ef .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-9b76477 .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-475b650 .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-34fd422 .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-ea9aa2a .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-14f7bf9 .elementor-icon {
	width: 58px;
	height: 58px;
}

body.elementor-page-86 .elementor-element.elementor-element-20452ef .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-9b76477 .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-475b650 .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-34fd422 .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-ea9aa2a .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-14f7bf9 .elementor-icon svg {
	width: 30px;
	height: 30px;
}

body.elementor-page-86 .elementor-element.elementor-element-fe8f202 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-9020d0e .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-13dadd7 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-3f812be .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-547eb09 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-764e344 .elementor-heading-title {
	font-size: 1.02rem;
}

body.elementor-page-86 .elementor-element.elementor-element-8a439ff,
body.elementor-page-86 .elementor-element.elementor-element-d223164,
body.elementor-page-86 .elementor-element.elementor-element-2839db3,
body.elementor-page-86 .elementor-element.elementor-element-538d9a7,
body.elementor-page-86 .elementor-element.elementor-element-ca5e20c,
body.elementor-page-86 .elementor-element.elementor-element-b369bf1 {
	font-size: .86rem;
	line-height: 1.6;
}

/* Kartu yang sudah punya tautan: seluruh kartu jadi area klik. */
body.elementor-page-86 .elementor-element.elementor-element-049006b,
body.elementor-page-86 .elementor-element.elementor-element-4f3c981 {
	cursor: pointer;
}

@media (max-width: 1024px) {
	body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 240px));
	}
}

@media (max-width: 600px) {
	body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner {
		grid-template-columns: minmax(0, 300px);
	}
}

/* --- VIDEO PROFIL: latar gelap, video lebih lebar, teks lebih kecil ---------- */

body.elementor-page-86 .elementor-element.elementor-element-77b4df8 {
	background-image: linear-gradient(115deg, #00293A 0%, #004E67 52%, #00799B 100%);
	--padding-left: var(--fpsi-gutter);
	--padding-right: var(--fpsi-gutter);
}

/* Video diberi porsi lebih besar dari kolom teks. */
body.elementor-page-86 [data-id="0e2f405"] {
	flex: 1 1 560px;
}

body.elementor-page-86 .elementor-element.elementor-element-340c77d {
	flex: 1 1 340px;
}

/* Judul utama: warna & bayangan sesuai permintaan. */
body.elementor-page-86 .elementor-element.elementor-element-8f83735 .elementor-heading-title {
	font-size: clamp(1.35rem, 2.6vw, 1.9rem);
	color: var(--fpsi-white);
	text-shadow: 0 2px 16px rgba(0, 20, 30, .5);
}

/* "Fakultas Psikologi" di dalam judul diberi warna aksen + bayangan.
   Inline style bawaan perlu ditimpa dengan !important. */
body.elementor-page-86 .elementor-element.elementor-element-8f83735 .elementor-heading-title span[style] {
	color: #7FE3FF !important;
	text-shadow: 0 2px 18px rgba(0, 20, 30, .55);
}

body.elementor-page-86 .elementor-element.elementor-element-11d6485 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-9a4747e .elementor-heading-title {
	font-size: clamp(.98rem, 1.5vw, 1.1rem);
	color: #7FE3FF;
}

body.elementor-page-86 .elementor-element.elementor-element-11d6485 .elementor-heading-title::before,
body.elementor-page-86 .elementor-element.elementor-element-9a4747e .elementor-heading-title::before {
	background: var(--fpsi-accent);
}

body.elementor-page-86 .elementor-element.elementor-element-badf635,
body.elementor-page-86 .elementor-element.elementor-element-f790be2 {
	font-size: .92rem;
	line-height: 1.7;
	color: rgba(255, 255, 255, .85);
}

/* --- KABAR PSIKOLOGI: judul berbayang + tombol lihat selengkapnya ------------ */

body.elementor-page-86 .elementor-element.elementor-element-f572a39 .elementor-heading-title {
	text-shadow: 0 2px 14px rgba(0, 58, 77, .22);
}

body.elementor-page-86 .elementor-element.elementor-element-f29234c .fpsi-kabar-more {
	margin-top: clamp(22px, 3vw, 32px);
	text-align: center;
	width: 100%;
}

body.elementor-page-86 .elementor-element.elementor-element-f29234c .fpsi-kabar-more .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	background-color: var(--fpsi-primary-deep);
	background-image: none;
	color: var(--fpsi-white);
	border: 0;
	border-radius: var(--fpsi-r-pill);
	padding: 14px 32px;
	font-size: .98rem;
	font-weight: 700;
	box-shadow: var(--fpsi-shadow-1);
	transition: background-color var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-f29234c .fpsi-kabar-more .elementor-button::after {
	content: "→";
	transition: transform var(--fpsi-fast) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-f29234c .fpsi-kabar-more .elementor-button:hover {
	background-color: var(--fpsi-ink);
	transform: translateY(-2px);
	box-shadow: var(--fpsi-shadow-2);
}

body.elementor-page-86 .elementor-element.elementor-element-f29234c .fpsi-kabar-more .elementor-button:hover::after {
	transform: translateX(4px);
}

/* --- INSTAGRAM: rata kiri, warna judul, tombol diperbesar -------------------- */

body.elementor-page-86 .elementor-element.elementor-element-8bc4412 {
	--justify-content: space-between;
	--align-items: center;
}

body.elementor-page-86 .elementor-element.elementor-element-87ccaef {
	text-align: start;
}

body.elementor-page-86 .elementor-element.elementor-element-87ccaef .elementor-heading-title {
	text-align: start;
	color: var(--fpsi-ink);
}

/* Kata "Instagram" di judul diberi warna brand. */
body.elementor-page-86 .elementor-element.elementor-element-87ccaef .elementor-heading-title span[style] {
	color: var(--fpsi-primary-deep) !important;
}

body.elementor-page-86 .elementor-element.elementor-element-f69c4e8 {
	text-align: start;
	margin-inline: 0;
}

body.elementor-page-86 .elementor-element.elementor-element-4b1fd1a .elementor-button {
	padding: 15px 30px;
	font-size: 1.02rem;
}


/* ==========================================================================
   31. REVISI KLIEN — KARTU RINGKAS PROGRAM STUDI
   Menggantikan narasi "Gambaran Umum": durasi, jenjang, gelar, lokasi.
   ========================================================================== */

.fpsi-fact { margin: 6px 0 4px; }

.fpsi-fact__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(12px, 1.4vw, 18px);
}

.fpsi-fact__card {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: clamp(18px, 2vw, 22px);
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-lg);
	background: var(--fpsi-white);
	box-shadow: var(--fpsi-shadow-1);
	position: relative;
	overflow: hidden;
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease),
	            border-color var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-fact__card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	background: linear-gradient(90deg, var(--fpsi-primary), var(--fpsi-accent));
	opacity: .8;
}

.fpsi-fact__card:hover {
	transform: translateY(-4px);
	box-shadow: var(--fpsi-shadow-2);
	border-color: rgba(0, 174, 239, .45);
}

.fpsi-fact__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	margin-bottom: 6px;
	border-radius: var(--fpsi-r-md);
	background: linear-gradient(135deg, var(--fpsi-tint-14), var(--fpsi-tint-8));
	color: var(--fpsi-primary-deep);
}

.fpsi-fact__icon svg { width: 21px; height: 21px; display: block; }

.fpsi-fact__label {
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--fpsi-muted);
}

.fpsi-fact__value {
	font-size: clamp(1.05rem, 1.8vw, 1.25rem);
	font-weight: 800;
	line-height: 1.25;
	color: var(--fpsi-ink);
}

.fpsi-fact__note {
	font-size: .82rem;
	line-height: 1.5;
	color: var(--fpsi-muted);
}

@media (max-width: 900px) { .fpsi-fact__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .fpsi-fact__grid { grid-template-columns: 1fr; } }

/* --- Kartu quick links beranda yang kini berupa <a> -------------------------- */

body.elementor-page-86 a.elementor-element.e-con {
	text-decoration: none;
	color: inherit;
}

body.elementor-page-86 a.elementor-element.e-con:focus-visible {
	outline: 3px solid var(--fpsi-ink);
	outline-offset: 3px;
}


/* ==========================================================================
   32. HERO BERANDA — disamakan dengan referensi (psikologi.unpad.ac.id)

   Empat perbedaan pokok dengan versi sebelumnya:
   1. Tinggi penuh satu layar, bukan 76vh.
   2. Isi ditambatkan ke BAWAH-KIRI, bukan tengah secara vertikal.
   3. Overlay merata menggelapkan seluruh foto, bukan gradien dari kiri saja
      — pada referensi keseluruhan foto memang digelapkan.
   4. Dua tombol ajakan di bawah subjudul.
   ========================================================================== */

body.elementor-page-86 .elementor-86 .elementor-element.elementor-element-34881a83 {
	/* `svh` menghindari lompatan tinggi saat bilah alamat browser HP
	   muncul-hilang; `vh` tetap sebagai cadangan untuk browser lama. */
	--min-height: 100vh;
	--min-height: 100svh;
	--justify-content: flex-end;
	--align-items: flex-start;
	--padding-top: calc(var(--fpsi-header-h) + 24px);
	--padding-bottom: clamp(72px, 14vh, 150px);
}

/* Overlay: gelap merata, sedikit lebih pekat di bawah tempat teks duduk. */
body.elementor-page-86 .elementor-element.elementor-element-34881a83::before {
	background:
		linear-gradient(180deg,
			rgba(0, 22, 32, .55) 0%,
			rgba(0, 22, 32, .42) 32%,
			rgba(0, 22, 32, .62) 68%,
			rgba(0, 22, 32, .86) 100%),
		linear-gradient(96deg, rgba(0, 22, 32, .55) 0%, rgba(0, 22, 32, .12) 62%, transparent 100%);
}

/* --- Tipografi -------------------------------------------------------------- */

body.elementor-page-86 .elementor-86 .elementor-element.elementor-element-709b3414 .elementor-heading-title {
	/* Jalan tengah: lebih besar dari revisi "kegedean" sebelumnya (2.9rem),
	   masih jauh di bawah versi awal (4rem) yang dinilai berlebihan. */
	font-size: clamp(2rem, 4.4vw, 3.4rem);
	line-height: 1.08;
	letter-spacing: -.022em;
	max-width: 17ch;
}

body.elementor-page-86 .elementor-element.elementor-element-401b93e2 {
	font-size: clamp(.95rem, 1.15vw, 1.1rem);
	line-height: 1.65;
	max-width: min(100%, 44rem);
	margin-bottom: 0;
}

/* --- Tombol ajakan ----------------------------------------------------------- */

body.elementor-page-86 .elementor-element.elementor-element-34881a83 .fpsi-hero__cta {
	--display: flex;
	--flex-direction: row;
	--flex-wrap: wrap;
	--gap: 12px;
	--width: auto;
	width: auto;
	margin-top: clamp(20px, 3vh, 32px);
	position: relative;
	z-index: 2;
}

body.elementor-page-86 .elementor-element.elementor-element-34881a83 .fpsi-hero__btn .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	background-image: none;
	border-radius: var(--fpsi-r-sm);
	padding: 15px 32px;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: .01em;
	transition: background-color var(--fpsi-base) var(--fpsi-ease),
	            border-color var(--fpsi-base) var(--fpsi-ease),
	            color var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-34881a83 .fpsi-hero__btn--primary .elementor-button {
	background-color: var(--fpsi-primary);
	border: 2px solid var(--fpsi-primary);
	color: var(--fpsi-ink);
	box-shadow: 0 10px 30px rgba(0, 174, 239, .28);
}

body.elementor-page-86 .elementor-element.elementor-element-34881a83 .fpsi-hero__btn--primary .elementor-button:hover,
body.elementor-page-86 .elementor-element.elementor-element-34881a83 .fpsi-hero__btn--primary .elementor-button:focus-visible {
	background-color: var(--fpsi-white);
	border-color: var(--fpsi-white);
	color: var(--fpsi-ink);
	transform: translateY(-2px);
	box-shadow: 0 14px 36px rgba(0, 0, 0, .3);
}

/* Tombol kedua transparan berbingkai, seperti pola "Learn More" di referensi. */
body.elementor-page-86 .elementor-element.elementor-element-34881a83 .fpsi-hero__btn--ghost .elementor-button {
	background-color: rgba(255, 255, 255, .10);
	border: 2px solid rgba(255, 255, 255, .65);
	color: var(--fpsi-white);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

body.elementor-page-86 .elementor-element.elementor-element-34881a83 .fpsi-hero__btn--ghost .elementor-button:hover,
body.elementor-page-86 .elementor-element.elementor-element-34881a83 .fpsi-hero__btn--ghost .elementor-button:focus-visible {
	background-color: var(--fpsi-white);
	border-color: var(--fpsi-white);
	color: var(--fpsi-ink);
	transform: translateY(-2px);
}

/* --- Tablet & HP -------------------------------------------------------------- */

@media (max-width: 1024px) {
	body.elementor-page-86 .elementor-86 .elementor-element.elementor-element-34881a83 {
		--min-height: 100vh;
		--min-height: 100svh;
		--padding-bottom: clamp(60px, 12vh, 110px);
	}
}

@media (max-width: 767px) {
	body.elementor-page-86 .elementor-86 .elementor-element.elementor-element-709b3414 .elementor-heading-title {
		font-size: clamp(1.7rem, 8vw, 2.3rem);
		max-width: 100%;
	}

	body.elementor-page-86 .elementor-element.elementor-element-34881a83 .fpsi-hero__cta {
		width: 100%;
		--width: 100%;
	}

	body.elementor-page-86 .elementor-element.elementor-element-34881a83 .fpsi-hero__btn {
		flex: 1 1 100%;
	}

	body.elementor-page-86 .elementor-element.elementor-element-34881a83 .fpsi-hero__btn .elementor-button {
		width: 100%;
		justify-content: center;
		min-height: 48px;
	}
}


/* ==========================================================================
   33. REVISI KLIEN — TAMBAHAN KONTEN BERANDA
   Strip akreditasi setelah hero, strip logo mitra sebelum footer, tata ulang
   Video Profil, dan penyesuaian margin Quick Links.
   ========================================================================== */

/* --- Strip akreditasi (pola: psikologi.unpad.ac.id) -------------------------- */

.fpsi-akr-wrap {
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
}

.fpsi-akr {
	background: var(--fpsi-surface);
	border-bottom: 1px solid var(--fpsi-line);
}

.fpsi-akr__inner {
	max-width: var(--fpsi-max);
	margin-inline: auto;
	padding: clamp(16px, 2vw, 22px) var(--fpsi-gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(16px, 3vw, 40px);
	flex-wrap: wrap;
}

.fpsi-akr__label {
	font-size: clamp(1rem, 1.6vw, 1.25rem);
	font-weight: 800;
	letter-spacing: -.01em;
	color: var(--fpsi-ink);
}

.fpsi-akr__items {
	display: flex;
	align-items: center;
	gap: clamp(20px, 3vw, 44px);
	flex-wrap: wrap;
}

.fpsi-akr__item {
	display: flex;
	align-items: center;
	gap: 12px;
}

.fpsi-akr__item img {
	height: 46px;
	width: auto;
	flex: 0 0 auto;
	object-fit: contain;
}

.fpsi-akr__item span {
	display: flex;
	flex-direction: column;
	font-size: .86rem;
	line-height: 1.4;
	color: var(--fpsi-muted);
}

.fpsi-akr__item strong {
	font-size: .96rem;
	font-weight: 800;
	color: var(--fpsi-ink);
}

@media (max-width: 620px) {
	.fpsi-akr__inner { justify-content: flex-start; }
	.fpsi-akr__items { gap: 18px; }
	.fpsi-akr__item img { height: 38px; }
}

/* --- Strip logo mitra kerja sama --------------------------------------------- */

.fpsi-mitra-wrap {
	--content-width: var(--fpsi-max);
	--padding-top: clamp(48px, 6vw, 80px);
	--padding-bottom: clamp(48px, 6vw, 80px);
	--padding-left: var(--fpsi-gutter);
	--padding-right: var(--fpsi-gutter);
	background-color: var(--fpsi-white);
}

.fpsi-mitra__title {
	margin: 0;
	text-align: center;
	font-size: clamp(1.4rem, 3vw, 2.1rem);
	font-weight: 800;
	letter-spacing: -.015em;
	color: var(--fpsi-ink);
	text-shadow: 0 2px 14px rgba(0, 58, 77, .18);
}

.fpsi-mitra__sub {
	margin: 12px auto 0;
	max-width: 62ch;
	text-align: center;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--fpsi-muted);
}

.fpsi-mitra__grid {
	list-style: none;
	margin: clamp(26px, 3.6vw, 40px) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: clamp(10px, 1.4vw, 18px);
	align-items: stretch;
}

.fpsi-mitra__item {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 96px;
	padding: 14px;
	border: 1px solid var(--fpsi-line);
	border-radius: var(--fpsi-r-md);
	background: var(--fpsi-white);
	transition: transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease),
	            border-color var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-mitra__item img {
	max-width: 100%;
	max-height: 62px;
	width: auto;
	height: auto;
	object-fit: contain;
	/* Logo mitra warna-warni dari banyak sumber akan terlihat ramai kalau
	   ditampilkan penuh berjejer. Abu-abu saat diam, berwarna saat disentuh —
	   pola lazim untuk deretan logo mitra. */
	filter: grayscale(1);
	opacity: .68;
	transition: filter var(--fpsi-base) var(--fpsi-ease),
	            opacity var(--fpsi-base) var(--fpsi-ease);
}

.fpsi-mitra__item:hover {
	transform: translateY(-3px);
	box-shadow: var(--fpsi-shadow-2);
	border-color: rgba(0, 174, 239, .45);
}

.fpsi-mitra__item:hover img {
	filter: grayscale(0);
	opacity: 1;
}

@media (max-width: 1024px) { .fpsi-mitra__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 680px)  { .fpsi-mitra__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 420px)  { .fpsi-mitra__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* --- Video Profil: teks kiri, video kanan ------------------------------------ */

body.elementor-page-86 .elementor-element.elementor-element-340c77d {
	flex: 1 1 420px;
	--gap: 14px;
	--justify-content: center;
}

body.elementor-page-86 [data-id="0e2f405"] {
	flex: 1 1 520px;
}

body.elementor-page-86 .fpsi-vp-body {
	font-size: 1rem;
	line-height: 1.75;
	color: rgba(255, 255, 255, .88);
	max-width: 46ch;
	text-align: start;
	hyphens: manual;
}

body.elementor-page-86 .fpsi-vp-body p { text-align: start; }

body.elementor-page-86 .fpsi-vp-btn {
	margin-top: 6px;
}

body.elementor-page-86 .fpsi-vp-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	background-image: none;
	background-color: var(--fpsi-primary);
	color: var(--fpsi-ink);
	border: 0;
	border-radius: var(--fpsi-r-sm);
	padding: 14px 30px;
	font-size: 1rem;
	font-weight: 700;
	box-shadow: 0 10px 28px rgba(0, 174, 239, .26);
	transition: background-color var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease);
}

body.elementor-page-86 .fpsi-vp-btn .elementor-button::after {
	content: "→";
	transition: transform var(--fpsi-fast) var(--fpsi-ease);
}

body.elementor-page-86 .fpsi-vp-btn .elementor-button:hover {
	background-color: var(--fpsi-white);
	transform: translateY(-2px);
	box-shadow: 0 14px 34px rgba(0, 0, 0, .28);
}

body.elementor-page-86 .fpsi-vp-btn .elementor-button:hover::after {
	transform: translateX(4px);
}

/* --- Quick Links: jarak antar kolom diperlebar ------------------------------- */

body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 1040px;
	margin-inline: auto;
	gap: clamp(24px, 4vw, 56px);
}

@media (max-width: 1024px) {
	body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 680px;
		gap: clamp(20px, 4vw, 36px);
	}
}

@media (max-width: 600px) {
	body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner {
		grid-template-columns: minmax(0, 320px);
		justify-content: center;
	}
}

/* --- Instagram: blok atas sudah dihapus, sisa feed dirapikan ----------------- */

body.elementor-page-86 .elementor-element.elementor-element-caf0c26 {
	--padding-top: clamp(40px, 5vw, 64px);
}


/* ==========================================================================
   34. PERBAIKAN — WIDGET YOUTUBE ADALAH ELEMEN "ATOMIC" ELEMENTOR v4

   Widget ini dirender sebagai:
       <div data-id="0e2f405" class="e-0e2f405-b6f6c5b e-youtube-base">
   TANPA kelas `elementor-element-0e2f405` seperti widget Elementor biasa.

   Akibatnya seluruh aturan yang menyasar `.elementor-element-0e2f405` tidak
   pernah berlaku, termasuk flex-basis-nya — sehingga kolom video tidak punya
   lebar dan terlempar ke baris bawah, bukan berdampingan dengan teks.

   `[data-id]` dipakai karena nilainya stabil, sedangkan kelas ber-hash
   (`e-0e2f405-b6f6c5b`) bisa berubah saat halaman disimpan ulang di editor.
   ========================================================================== */

body.elementor-page-86 .elementor-element.elementor-element-77b4df8 > .e-con-inner > [data-id="0e2f405"] {
	flex: 1 1 520px;
	min-width: 0;
	max-width: 100%;
	align-self: center;
}

body.elementor-page-86 .elementor-element.elementor-element-340c77d {
	flex: 1 1 400px;
	min-width: 0;
}

/* Bingkai video: sudut membulat + bayangan, sekarang menyasar elemen yang benar. */
body.elementor-page-86 [data-id="0e2f405"].e-youtube-base {
	border-radius: var(--fpsi-r-lg);
	overflow: hidden;
	box-shadow: var(--fpsi-shadow-3);
	display: block;
}

body.elementor-page-86 [data-id="0e2f405"] iframe,
body.elementor-page-86 [data-id="0e2f405"] video {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	border: 0;
	border-radius: var(--fpsi-r-lg);
}

/* Di bawah 1024px kembali menumpuk: teks dulu, lalu video. */
@media (max-width: 1024px) {
	body.elementor-page-86 .elementor-element.elementor-element-77b4df8 > .e-con-inner > [data-id="0e2f405"] {
		flex: 0 0 auto;
		width: 100%;
	}
	body.elementor-page-86 .elementor-element.elementor-element-340c77d {
		flex: 0 0 auto;
		width: 100%;
	}
}


/* ==========================================================================
   35. QUICK LINKS — model "tanpa kartu" sesuai referensi

   Pada referensi tidak ada bingkai, latar, maupun bayangan kartu. Yang
   membangun ritme justru: ikon berukuran besar sebagai titik fokus, teks
   rata tengah di bawahnya, dan ruang kosong yang lega antar kolom.

   Blok ini sengaja ditaruh paling akhir agar menang atas gaya kartu
   berbingkai di seksi 06, 30, dan 33 tanpa perlu menaikkan spesifisitas.
   ========================================================================== */

body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 1140px;
	margin-inline: auto;
	/* Kolom renggang, baris sedikit lebih rapat — seperti pada referensi. */
	column-gap: clamp(36px, 6vw, 96px);
	row-gap: clamp(40px, 5vw, 72px);
	justify-content: center;
}

/* --- Kotak kartu dilepas seluruhnya ------------------------------------------ */

body.elementor-page-86 .elementor-element.elementor-element-a25ee17,
body.elementor-page-86 .elementor-element.elementor-element-a5b7786,
body.elementor-page-86 .elementor-element.elementor-element-ac04695,
body.elementor-page-86 .elementor-element.elementor-element-049006b,
body.elementor-page-86 .elementor-element.elementor-element-4f3c981,
body.elementor-page-86 .elementor-element.elementor-element-448d835 {
	background-color: transparent;
	border: 0;
	--border-style: none;
	box-shadow: none;
	--border-radius: 0 0 0 0;
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
	--gap: 14px;
	--align-items: center;
	text-align: center;
	transition: transform var(--fpsi-base) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-a25ee17:hover,
body.elementor-page-86 .elementor-element.elementor-element-a5b7786:hover,
body.elementor-page-86 .elementor-element.elementor-element-ac04695:hover,
body.elementor-page-86 .elementor-element.elementor-element-049006b:hover,
body.elementor-page-86 .elementor-element.elementor-element-4f3c981:hover,
body.elementor-page-86 .elementor-element.elementor-element-448d835:hover {
	transform: translateY(-6px);
	box-shadow: none;
	border-color: transparent;
}

/* --- Ikon jadi titik fokus --------------------------------------------------- */

body.elementor-page-86 .elementor-element.elementor-element-20452ef .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-9b76477 .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-475b650 .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-34fd422 .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-ea9aa2a .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-14f7bf9 .elementor-icon {
	width: clamp(96px, 9vw, 120px);
	height: clamp(96px, 9vw, 120px);
	border-radius: var(--fpsi-r-pill);
	background: linear-gradient(150deg, var(--fpsi-tint-14), rgba(0, 174, 239, .04));
	box-shadow: inset 0 0 0 1px rgba(0, 174, 239, .18);
	transition: background var(--fpsi-base) var(--fpsi-ease),
	            box-shadow var(--fpsi-base) var(--fpsi-ease),
	            transform var(--fpsi-base) var(--fpsi-ease);
}

body.elementor-page-86 .elementor-element.elementor-element-20452ef .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-9b76477 .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-475b650 .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-34fd422 .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-ea9aa2a .elementor-icon svg,
body.elementor-page-86 .elementor-element.elementor-element-14f7bf9 .elementor-icon svg {
	width: clamp(42px, 4vw, 54px);
	height: clamp(42px, 4vw, 54px);
}

body.elementor-page-86 .elementor-element.elementor-element-a25ee17:hover .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-a5b7786:hover .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-ac04695:hover .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-049006b:hover .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-4f3c981:hover .elementor-icon,
body.elementor-page-86 .elementor-element.elementor-element-448d835:hover .elementor-icon {
	background: linear-gradient(150deg, var(--fpsi-primary), var(--fpsi-primary-deep));
	box-shadow: 0 14px 30px rgba(0, 174, 239, .28);
	transform: scale(1.05);
}

/* --- Teks --------------------------------------------------------------------- */

body.elementor-page-86 .elementor-element.elementor-element-fe8f202 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-9020d0e .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-13dadd7 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-3f812be .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-547eb09 .elementor-heading-title,
body.elementor-page-86 .elementor-element.elementor-element-764e344 .elementor-heading-title {
	font-size: clamp(1.05rem, 1.5vw, 1.18rem);
	font-weight: 700;
	line-height: 1.35;
	color: var(--fpsi-ink);
}

body.elementor-page-86 .elementor-element.elementor-element-8a439ff,
body.elementor-page-86 .elementor-element.elementor-element-d223164,
body.elementor-page-86 .elementor-element.elementor-element-2839db3,
body.elementor-page-86 .elementor-element.elementor-element-538d9a7,
body.elementor-page-86 .elementor-element.elementor-element-ca5e20c,
body.elementor-page-86 .elementor-element.elementor-element-b369bf1 {
	font-size: .9rem;
	line-height: 1.65;
	color: var(--fpsi-muted);
	max-width: 30ch;
	margin-inline: auto;
	text-align: center;
}

/* Dua kartu yang sudah bertaut: judulnya ikut berubah warna saat disentuh,
   supaya jelas mana yang bisa diklik. */
body.elementor-page-86 a.elementor-element.elementor-element-049006b:hover .elementor-heading-title,
body.elementor-page-86 a.elementor-element.elementor-element-4f3c981:hover .elementor-heading-title {
	color: var(--fpsi-primary-deep);
}

/* --- Responsif ------------------------------------------------------------------ */

@media (max-width: 1024px) {
	body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 720px;
		column-gap: clamp(28px, 6vw, 56px);
		row-gap: clamp(36px, 5vw, 52px);
	}
}

@media (max-width: 600px) {
	body.elementor-page-86 .elementor-element.elementor-element-eb1f6be > .e-con-inner {
		grid-template-columns: minmax(0, 340px);
		row-gap: 36px;
	}
}
