/*
 * Teknologi Pangan ITERA — site-wide refresh layer.
 * Restrained, editorial style: flat surfaces, thin rules, small radii.
 * Loaded after OceanWP + Elementor so it can restyle shared parts.
 */

:root {
	--tp-maroon: #680000;
	--tp-maroon-2: #8a0f0f;
	--tp-ink: #1f1a1a;
	--tp-body: #3a3434;
	--tp-muted: #6b6363;
	--tp-paper: #f7f3ee;
	--tp-line: #e6ddd2;
	--tp-r: 6px;
}

/* ---------- Type ---------- */
body,
button,
input,
select,
textarea,
h1, h2, h3, h4, h5, h6,
.page-header-title,
.elementor-heading-title,
.elementor-widget-text-editor,
#site-navigation-wrap .dropdown-menu a,
.elementor-nav-menu .elementor-item,
.elementor-nav-menu .elementor-sub-item,
#top-bar-wrap,
.blog-entry-title,
.blog-entry-title a,
.blog-entry-summary,
.blog-entry .meta,
.single-post-title,
.entry-content,
.sidebar-box,
.widget-title,
#footer-widgets,
#footer-bottom {
	font-family: Poppins, system-ui, -apple-system, "Segoe UI", sans-serif !important;
}

body {
	color: var(--tp-body);
	-webkit-font-smoothing: antialiased;
}

a:focus-visible,
button:focus-visible {
	outline: 2px solid var(--tp-maroon);
	outline-offset: 2px;
}

/* ---------- Top bar ---------- */
#top-bar-wrap {
	background: var(--tp-maroon) !important;
	border: 0 !important;
}

#top-bar-wrap,
#top-bar-wrap a,
#top-bar-social a {
	color: #f1e4e4 !important;
	font-size: 13px;
}

#top-bar-wrap a:hover {
	color: #fff !important;
	text-decoration: underline;
}

#top-bar-nav > ul > li > a {
	padding: 0 8px;
}

/* ---------- Header ---------- */
#site-header {
	background: #fff !important;
	border-bottom: 1px solid var(--tp-line) !important;
}

#site-navigation-wrap .dropdown-menu > li > a {
	color: var(--tp-ink) !important;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	padding: 0 10px !important;
}

#site-header-inner {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

#site-header #site-logo {
	flex: 0 0 auto;
}

#site-header #site-navigation-wrap {
	position: static !important;
	float: none !important;
	margin-left: auto;
}

#site-navigation-wrap .dropdown-menu > li > a:hover,
#site-navigation-wrap .dropdown-menu > li.current-menu-item > a,
#site-navigation-wrap .dropdown-menu > li.current-menu-ancestor > a {
	color: var(--tp-maroon) !important;
}

/* Arkumi: quiet outlined button, vertically centred in the bar */
#site-navigation-wrap .dropdown-menu > li.menu-cta {
	display: flex;
	align-items: center;
	margin-left: 10px;
}

#site-navigation-wrap .dropdown-menu > li.menu-cta > a {
	height: 40px !important;
	line-height: 38px !important;
	padding: 0 16px !important;
	border: 1px solid var(--tp-maroon);
	border-radius: 4px;
	color: var(--tp-maroon) !important;
	font-weight: 600;
	transition: background-color .15s, color .15s;
}

#site-navigation-wrap .dropdown-menu > li.menu-cta > a:hover {
	background: var(--tp-maroon);
	color: #fff !important;
}

#site-navigation-wrap .dropdown-menu > li.menu-cta > a:after,
#site-navigation-wrap .dropdown-menu > li.menu-cta > a .nav-arrow {
	display: none !important;
}

.dropdown-menu .sub-menu {
	border: 1px solid var(--tp-line) !important;
	border-top: 2px solid var(--tp-maroon) !important;
	border-radius: 0 0 var(--tp-r) var(--tp-r);
	padding: 6px 0 !important;
	box-shadow: 0 10px 24px -16px rgba(0, 0, 0, .35) !important;
	min-width: 250px;
}

.dropdown-menu ul li.menu-item {
	border: 0 !important;
}

.dropdown-menu ul li a.menu-link {
	padding: 10px 18px !important;
	color: var(--tp-ink) !important;
	font-size: 14.5px;
}

.dropdown-menu ul li a.menu-link:hover {
	background: var(--tp-paper) !important;
	color: var(--tp-maroon) !important;
}

/* ---------- Page title band ---------- */
.page-header {
	background: var(--tp-paper) !important;
	background-image: none !important;
	border-bottom: 1px solid var(--tp-line);
	padding: 44px 0 36px !important;
}

.page-header .page-header-inner,
.page-header .container {
	display: flex;
	flex-direction: column-reverse;
	align-items: flex-start;
	gap: 8px;
}

.page-header .page-header-title {
	color: var(--tp-maroon) !important;
	font-size: clamp(28px, 3vw, 38px) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-transform: none !important;
}

.page-header .site-breadcrumbs {
	position: static !important;
	transform: none !important;
	margin: 0 !important;
	max-width: none !important;
	font-size: 13.5px !important;
	color: var(--tp-muted) !important;
}

.page-header .site-breadcrumbs a {
	color: var(--tp-muted) !important;
}

.page-header .site-breadcrumbs a:hover {
	color: var(--tp-maroon) !important;
}

/* ---------- Section sidebar (vertical Elementor Nav Menu) ---------- */
.e-con:has(> .elementor-widget-nav-menu) {
	background: #fff !important;
	background-image: none !important;
	border: 1px solid var(--tp-line) !important;
	border-radius: var(--tp-r) !important;
	box-shadow: none !important;
	padding: 8px 0 !important;
	gap: 0 !important;
	position: sticky;
	top: 110px;
	align-self: flex-start;
}

.e-con:has(> .elementor-widget-nav-menu) > .elementor-widget-divider,
.e-con:has(> .elementor-widget-nav-menu) > .elementor-widget-spacer,
.e-con:has(> .elementor-widget-nav-menu) > .elementor-widget-heading {
	display: none !important;
}

.e-con:has(> .elementor-widget-nav-menu) > .elementor-widget-nav-menu {
	width: 100%;
	margin: 0 !important;
}

.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .elementor-nav-menu {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start !important;
	gap: 0;
}

.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .elementor-item {
	justify-content: flex-start !important;
	text-align: left !important;
	padding: 12px 20px !important;
	margin: 0 !important;
	border-left: 3px solid transparent;
	border-radius: 0;
	color: var(--tp-ink) !important;
	background: transparent;
	font-size: 15px !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	transition: background-color .15s, color .15s;
}

.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .elementor-item:before,
.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .elementor-item:after,
.e-con:has(> .elementor-widget-nav-menu) .sub-arrow {
	display: none !important;
}

.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .elementor-item:hover {
	background: var(--tp-paper);
	color: var(--tp-maroon) !important;
}

.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .elementor-item.elementor-item-active,
.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .current-menu-item > .elementor-item {
	border-left-color: var(--tp-maroon);
	background: var(--tp-paper) !important;
	color: var(--tp-maroon) !important;
	font-weight: 600 !important;
}

.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .sub-menu {
	position: static !important;
	display: block !important;
	width: auto !important;
	box-shadow: none !important;
	border: 0 !important;
	background: transparent !important;
	margin: 0 !important;
	padding: 0 !important;
}

.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .sub-menu .elementor-sub-item {
	padding: 9px 20px 9px 36px !important;
	border-left: 3px solid transparent;
	font-size: 14px !important;
	color: var(--tp-muted) !important;
	background: transparent !important;
	border-bottom: 0 !important;
}

.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .sub-menu .elementor-sub-item:hover,
.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .sub-menu .elementor-sub-item.elementor-item-active {
	color: var(--tp-maroon) !important;
	background: var(--tp-paper) !important;
	border-left-color: var(--tp-maroon);
}

/* Sidebar + content row */
.e-con:has(> .e-con > .elementor-widget-nav-menu) {
	gap: 48px !important;
	padding-top: 48px !important;
	padding-bottom: 48px !important;
}

/* ---------- Content ---------- */
.elementor-widget-text-editor {
	color: var(--tp-body) !important;
	font-size: 16px;
	line-height: 1.75 !important;
}

.elementor-widget-text-editor p,
.elementor-widget-text-editor li {
	text-align: left !important;
}

.elementor-widget-text-editor p {
	margin-bottom: 1em;
}

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

.elementor-widget-text-editor a {
	color: var(--tp-maroon) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.elementor-widget-text-editor a:hover {
	color: var(--tp-maroon-2) !important;
}

.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol {
	padding-left: 1.25em;
}

.elementor-widget-text-editor li + li {
	margin-top: .35em;
}

.elementor-widget-text-editor blockquote,
.elementor-widget-blockquote blockquote {
	border-left: 3px solid var(--tp-maroon) !important;
	background: var(--tp-paper);
	border-radius: 0;
	padding: 16px 20px !important;
	font-style: normal;
}

/* Tables */
.elementor-widget-text-editor table,
.entry-content table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--tp-line);
	font-size: 14.5px;
	margin: 12px 0 20px;
}

.elementor-widget-text-editor th,
.entry-content th {
	background: var(--tp-paper);
	color: var(--tp-ink);
	font-weight: 600;
	text-align: left;
	padding: 11px 14px;
	border: 1px solid var(--tp-line);
}

.elementor-widget-text-editor td,
.entry-content td {
	padding: 10px 14px;
	border: 1px solid var(--tp-line);
	vertical-align: top;
}

/* Embedded frames */
.elementor-widget-html iframe,
.elementor-widget-text-editor iframe,
.elementor-widget-video iframe {
	border: 1px solid var(--tp-line) !important;
	max-width: 100%;
}

/* ---------- Buttons ---------- */
.elementor-button {
	border-radius: 4px !important;
	font-weight: 600 !important;
}

/* ---------- Staff cards (PowerPack team member) ---------- */
.pp-tm-wrapper {
	height: 100%;
	padding: 20px 14px 18px !important;
	background: #fff;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	transition: border-color .15s;
}

.pp-tm-wrapper:hover {
	border-color: var(--tp-maroon);
}

.pp-tm-title-divider-wrap,
.pp-tm-position-divider-wrap {
	display: none !important;
}

.pp-tm-image {
	position: relative;
}

/* Role / expertise overlay on photo: solid backing so text stays legible */
.pp-tm-overlay-content-wrap {
	background: rgba(104, 0, 0, .92) !important;
	color: #fff !important;
	border-radius: 50%;
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: 14px;
	text-align: center;
}

.pp-tm-overlay-content-wrap .pp-tm-description,
.pp-tm-overlay-content-wrap .pp-tm-description p {
	color: #fff !important;
	font-size: 13px !important;
	line-height: 1.4 !important;
	margin: 0 !important;
}

.pp-tm-name,
.pp-tm-name a {
	color: var(--tp-maroon) !important;
	font-weight: 600 !important;
	font-size: 16px !important;
	line-height: 1.35 !important;
	margin: 12px 0 4px !important;
}

.pp-tm-position {
	color: var(--tp-muted) !important;
	font-size: 13px !important;
	word-break: break-word;
}

/* ---------- Footer ---------- */
#footer-widgets {
	background: #1e1414 !important;
	background-image: none !important;
	color: #cfc4c4 !important;
}

#footer-widgets,
#footer-widgets p,
#footer-widgets li,
#footer-widgets a {
	color: #cfc4c4 !important;
	font-size: 14px;
	line-height: 1.7;
}

#footer-widgets a:hover {
	color: #fff !important;
}

#footer-widgets .widget-title {
	color: #fff !important;
	border-color: var(--tp-maroon) !important;
	font-size: 13px !important;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

#footer-bottom {
	background: #160e0e !important;
	color: #a99c9c !important;
	font-size: 13px;
}

#footer-bottom a {
	color: #e3d7d7 !important;
}

/* ---------- Blog archive & single ---------- */
.blog-entry.grid-entry .blog-entry-inner,
.blog-entry .blog-entry-inner {
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	overflow: hidden;
	background: #fff;
	padding: 0 0 18px !important;
}

.blog-entry .blog-entry-inner > *:not(.thumbnail) {
	padding-left: 18px;
	padding-right: 18px;
}

.blog-entry .thumbnail {
	margin-bottom: 14px !important;
}

.blog-entry-header {
	margin-bottom: 8px !important;
}

.blog-entry-title {
	font-size: 17px !important;
	line-height: 1.4 !important;
}

.blog-entry-title a {
	color: var(--tp-ink) !important;
}

.blog-entry-title a:hover {
	color: var(--tp-maroon) !important;
}

.blog-entry .meta,
.blog-entry ul.meta {
	font-size: 12.5px !important;
	color: var(--tp-muted) !important;
	margin: 6px 0 10px !important;
}

.blog-entry-summary {
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--tp-body);
	margin-bottom: 0 !important;
}

.blog-entry-readmore {
	margin-top: 10px;
}

.blog-entry-readmore a {
	color: var(--tp-maroon) !important;
	font-weight: 600;
	font-size: 14px;
}

#blog-entries .blog-entry.grid-entry {
	margin-bottom: 24px !important;
}

.page-numbers a,
.page-numbers span.current {
	border-radius: 4px !important;
	border: 1px solid var(--tp-line) !important;
}

.page-numbers span.current {
	background: var(--tp-maroon) !important;
	color: #fff !important;
	border-color: var(--tp-maroon) !important;
}

/* Blog sidebar widgets */
#right-sidebar .sidebar-box,
#left-sidebar .sidebar-box {
	margin-bottom: 32px !important;
	padding: 0 !important;
	border: 0 !important;
}

#right-sidebar .widget-title,
#left-sidebar .widget-title {
	font-size: 13px !important;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--tp-ink) !important;
	border-left: 3px solid var(--tp-maroon) !important;
	padding-left: 10px !important;
	margin-bottom: 14px !important;
}

#right-sidebar li,
#left-sidebar li {
	border-color: var(--tp-line) !important;
	padding: 8px 0 !important;
	font-size: 14.5px;
}

#right-sidebar a,
#left-sidebar a {
	color: var(--tp-ink) !important;
}

#right-sidebar a:hover,
#left-sidebar a:hover {
	color: var(--tp-maroon) !important;
}

.single-post .entry-content {
	font-size: 17px;
	line-height: 1.8;
	color: var(--tp-body);
}

/* ---------- Click-to-load document cards ---------- */
.tp-embed {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 16px;
	padding: 16px 18px;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
	max-width: 760px;
	margin: 0 auto;
}

.tp-embed__icon {
	width: 48px;
	height: 48px;
	border-radius: 4px;
	display: grid;
	place-items: center;
	background: var(--tp-paper);
	color: var(--tp-maroon);
}

.tp-embed__body strong {
	display: block;
	color: var(--tp-ink);
	font-size: 15.5px;
}

.tp-embed__body span {
	color: var(--tp-muted);
	font-size: 13.5px;
}

.tp-embed__actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: flex-end;
}

.tp-embed__actions button,
.tp-embed__actions a {
	border-radius: 4px;
	padding: 10px 14px;
	font: 600 14px/1 Poppins, system-ui, sans-serif;
	cursor: pointer;
	text-decoration: none !important;
}

.tp-embed__actions button {
	border: 1px solid var(--tp-maroon);
	background: var(--tp-maroon);
	color: #fff;
}

.tp-embed__actions a {
	border: 1px solid var(--tp-line);
	background: #fff;
	color: var(--tp-maroon) !important;
}

.tp-embed-frame {
	display: block;
	width: 100%;
	height: min(80vh, 900px);
	border: 1px solid var(--tp-line) !important;
}

/* ---------- Tablet / mobile ---------- */
@media (max-width: 1024px) {
	.e-con:has(> .elementor-widget-nav-menu) {
		position: static;
	}

	#site-navigation-wrap .dropdown-menu > li > a {
		font-size: 14.5px;
		padding: 0 9px !important;
	}
}

@media (max-width: 767px) {
	.page-header {
		padding: 30px 0 24px !important;
	}

	/* Section menu stays on phones as a swipeable row */
	.e-con:has(> .elementor-widget-nav-menu) {
		padding: 0 !important;
		width: 100% !important;
		border: 0 !important;
		border-bottom: 1px solid var(--tp-line) !important;
		border-radius: 0 !important;
		background: transparent !important;
	}

	.e-con:has(> .elementor-widget-nav-menu) > .elementor-widget-nav-menu.elementor-hidden-mobile {
		display: block !important;
	}

	.e-con:has(> .elementor-widget-nav-menu) > .elementor-widget-nav-menu {
		width: 100% !important;
		max-width: 100%;
		min-width: 0;
	}

	.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main {
		display: block !important;
		max-width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main::-webkit-scrollbar {
		display: none;
	}

	.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .elementor-nav-menu {
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		justify-content: flex-start !important;
		width: max-content;
	}

	.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .elementor-item {
		white-space: nowrap;
		border-left: 0;
		border-bottom: 2px solid transparent;
		padding: 12px 14px !important;
		font-size: 14.5px !important;
		background: transparent !important;
	}

	.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .elementor-item.elementor-item-active,
	.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .current-menu-item > .elementor-item {
		border-bottom-color: var(--tp-maroon);
	}

	.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .sub-menu {
		display: none !important;
	}

	.e-con:has(> .e-con > .elementor-widget-nav-menu) {
		gap: 24px !important;
		padding-top: 0 !important;
	}

	.tp-embed {
		grid-template-columns: auto 1fr;
	}

	.tp-embed__actions {
		grid-column: 1 / -1;
		justify-content: flex-start;
	}
}

@media (prefers-reduced-motion: reduce) {
	* {
		transition: none !important;
	}
}

/* ---------- Fixes: header row, anchors, archive cards ---------- */
#site-navigation-wrap .dropdown-menu {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: center;
}

#site-navigation-wrap .dropdown-menu > li {
	float: none !important;
	flex: 0 0 auto;
}

#site-navigation-wrap .dropdown-menu > li > a {
	font-size: 15px;
	padding: 0 9px !important;
}

/* Same-page anchor links (#visi, #misi) should not look like the current page */
.e-con:has(> .elementor-widget-nav-menu) .elementor-nav-menu--main .elementor-item-anchor.elementor-item-active {
	border-left-color: transparent;
	background: transparent !important;
	color: var(--tp-ink) !important;
	font-weight: 500 !important;
}

/* Archive grid: equal rows, quieter meta */
#blog-entries.blog-grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin: 0 !important;
}

#blog-entries.blog-grid .blog-entry.grid-entry {
	position: static !important;
	width: auto !important;
	transform: none !important;
	left: auto !important;
	top: auto !important;
	padding: 0 !important;
	margin: 0 !important;
}

.blog-entry .thumbnail img {
	aspect-ratio: 16 / 10;
	object-fit: cover;
	width: 100%;
}

.blog-entry-title,
.blog-entry-title a {
	font-size: 17px !important;
	font-weight: 600 !important;
	line-height: 1.45 !important;
}

.blog-entry .meta li:not(.meta-date),
.blog-entry .meta li.meta-date ~ li {
	display: none !important;
}

.blog-entry .meta li.meta-date {
	display: inline !important;
}

.blog-entry .meta li.meta-date i,
.blog-entry .meta li.meta-date .owp-icon {
	display: none;
}

@media (max-width: 767px) {
	#blog-entries.blog-grid {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================
 * Front page (page 492). Elementor widgets carry tp- classes;
 * spacing and colour live here so editors only touch content.
 * ========================================================== */

/* Shared section parts */
.tp-eyebrow .elementor-heading-title {
	margin: 0 0 12px;
	color: var(--tp-maroon) !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	letter-spacing: .14em !important;
	line-height: 1.4 !important;
	text-transform: uppercase;
}

.tp-h2 .elementor-heading-title {
	margin: 0;
	color: var(--tp-ink) !important;
	font-size: 34px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: -.01em;
	text-transform: none !important;
}

.tp-lead {
	max-width: 62ch;
	margin-top: 16px;
	font-size: 17px;
	line-height: 1.7;
}

.tp-head {
	margin-bottom: 40px;
}

.tp-head-row {
	margin-bottom: 36px;
}

.tp-head-row .tp-head {
	margin-bottom: 0;
}

.tp-more .elementor-heading-title {
	font-size: 15px !important;
	font-weight: 600 !important;
	white-space: nowrap;
}

.tp-more .elementor-heading-title a,
.tp-card__more .elementor-heading-title a,
.tp-note .elementor-heading-title a {
	color: var(--tp-maroon) !important;
}

.tp-more .elementor-heading-title a::after,
.tp-card__more .elementor-heading-title a::after {
	content: " \2192";
}

.tp-more .elementor-heading-title a:hover,
.tp-note .elementor-heading-title a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.tp-band--paper {
	background: var(--tp-paper);
	border-top: 1px solid var(--tp-line);
	border-bottom: 1px solid var(--tp-line);
}

/* Buttons */
.tp-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	padding: 13px 22px !important;
	border: 1px solid transparent;
	border-radius: 4px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	box-shadow: none !important;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.tp-btn .elementor-button-icon {
	font-size: .85em;
}

.tp-btn .elementor-button-icon svg {
	width: 1em;
	fill: currentColor !important;
}

.tp-btn--primary .elementor-button {
	background: var(--tp-maroon) !important;
	color: #fff !important;
}

.tp-btn--primary .elementor-button:hover {
	background: var(--tp-maroon-2) !important;
}

.tp-btn--outline .elementor-button {
	background: #fff !important;
	border-color: var(--tp-line);
	color: var(--tp-ink) !important;
}

.tp-btn--outline .elementor-button:hover {
	border-color: var(--tp-maroon);
	color: var(--tp-maroon) !important;
}

.tp-btn--light .elementor-button {
	background: #fff !important;
	color: var(--tp-maroon) !important;
}

.tp-btn--light .elementor-button:hover {
	background: var(--tp-paper) !important;
}

.tp-btn--ghost-light .elementor-button {
	background: transparent !important;
	border-color: rgba(255, 255, 255, .6);
	color: #fff !important;
}

.tp-btn--ghost-light .elementor-button:hover {
	border-color: #fff;
	background: rgba(255, 255, 255, .08) !important;
}

/* 1. Hero */
.tp-hero .tp-hero__badge img {
	width: 112px;
	height: auto;
	margin-bottom: 20px;
}

.tp-hero__kicker .elementor-heading-title {
	margin: 0 0 10px;
	color: rgba(255, 255, 255, .78) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	letter-spacing: .12em !important;
	text-transform: uppercase;
}

.tp-hero__title .elementor-heading-title {
	margin: 0;
	color: #fff !important;
	font-size: 64px !important;
	font-weight: 700 !important;
	line-height: 1.05 !important;
	letter-spacing: -.02em;
}

.tp-hero__tagline .elementor-heading-title {
	margin: 12px 0 0;
	color: #f1e4d6 !important;
	font-size: 22px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
}

.tp-hero__actions {
	margin-top: 32px;
}

.tp-hero__actions > .elementor-widget {
	width: auto;
}

/* 2. Quick access, overlapping the hero */
.tp-quick {
	position: relative;
	z-index: 2;
	margin-top: -64px;
}

.tp-quick__grid {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	overflow: hidden;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
}

.tp-quick__item {
	position: relative;
	padding: 24px 22px;
	transition: background-color .15s ease;
}

.tp-quick__item + .tp-quick__item {
	border-left: 1px solid var(--tp-line);
}

.tp-quick__item:hover {
	background: var(--tp-paper);
}

.tp-quick__item .elementor-icon-box-wrapper {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	text-align: left !important;
}

.tp-quick__item .elementor-icon-box-icon {
	margin: 0 !important;
}

.tp-quick__item .elementor-icon {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 4px;
	background: var(--tp-paper);
	color: var(--tp-maroon) !important;
	fill: var(--tp-maroon) !important;
	font-size: 18px !important;
}

.tp-quick__item .elementor-icon svg {
	width: 18px;
	height: 18px;
}

.tp-quick__item .elementor-icon-box-title {
	margin: 2px 0 4px !important;
	color: var(--tp-ink) !important;
	font-size: 16.5px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
}

.tp-quick__item .elementor-icon-box-title a {
	color: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;
}

/* Whole cell is the link target */
.tp-quick__item .elementor-icon-box-title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.tp-quick__item .elementor-icon-box-description {
	margin: 0;
	color: var(--tp-muted) !important;
	font-size: 13.5px !important;
	line-height: 1.5 !important;
}

/* 3. Visi (reused block) */
.tp-visi .tp-visi__img img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--tp-r);
}

.tp-quote {
	margin-top: 4px;
	padding-left: 20px;
	border-left: 2px solid var(--tp-maroon);
}

.tp-quote p {
	margin: 0;
	color: var(--tp-ink);
}

.tp-visi .tp-btn {
	margin-top: 12px !important;
}

/* 4. Bidang keilmuan cards */
.tp-cards {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
}

.tp-card {
	position: relative;
	padding: 26px 24px 24px !important;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
	transition: border-color .15s ease;
}

.tp-card:hover {
	border-color: var(--tp-maroon);
}

.tp-card__no .elementor-heading-title {
	margin: 0 0 28px;
	color: var(--tp-maroon) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: .08em;
}

.tp-card__title .elementor-heading-title {
	margin: 0 0 10px;
	font-size: 19px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
}

.tp-card__title .elementor-heading-title a {
	color: var(--tp-ink) !important;
}

.tp-card__title .elementor-heading-title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.tp-card__text p {
	margin: 0;
	color: var(--tp-muted);
	font-size: 15px;
	line-height: 1.6;
}

.tp-card__more {
	margin-top: auto;
	padding-top: 20px;
}

.tp-card__more .elementor-heading-title {
	font-size: 14px !important;
	font-weight: 600 !important;
}

/* 5. Arkumi */
.tp-arkumi {
	background: var(--tp-maroon);
	color: #fff;
}

.tp-split__main {
	flex: 1 1 56% !important;
}

.tp-arkumi .tp-eyebrow .elementor-heading-title {
	color: #e9c9c3 !important;
}

.tp-arkumi .tp-h2 .elementor-heading-title {
	color: #fff !important;
}

.tp-arkumi .tp-lead p {
	color: rgba(255, 255, 255, .86);
}

.tp-arkumi .tp-btn,
.tp-pmb .tp-split__main .tp-btn {
	margin-top: 28px !important;
}

.tp-checklist {
	flex: 1 1 44% !important;
}

.tp-checklist .elementor-icon-list-item {
	padding: 15px 0 !important;
	border-top: 1px solid rgba(255, 255, 255, .2);
	margin: 0 !important;
}

.tp-checklist .elementor-icon-list-item:last-child {
	border-bottom: 1px solid rgba(255, 255, 255, .2);
}

.tp-checklist .elementor-icon-list-text {
	padding-left: 12px !important;
	color: #fff !important;
	font-size: 16px !important;
}

.tp-checklist .elementor-icon-list-icon i,
.tp-checklist .elementor-icon-list-icon svg {
	color: #e9c9c3 !important;
	fill: #e9c9c3 !important;
	font-size: 14px;
	width: 14px;
}

/* 6. Berita */
.tp-posts .elementor-post {
	overflow: hidden;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
	transition: border-color .15s ease;
}

.tp-posts .elementor-post:hover {
	border-color: var(--tp-maroon);
}

.tp-posts .elementor-post__thumbnail__link {
	margin-bottom: 0 !important;
}

.tp-posts .elementor-post__thumbnail {
	border-radius: 0 !important;
}

.tp-posts .elementor-post__text {
	padding: 18px 20px 22px;
}

.tp-posts .elementor-post__title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	margin: 0 0 10px !important;
	font-size: 17.5px !important;
	line-height: 1.4 !important;
}

.tp-posts .elementor-post__title a {
	color: var(--tp-ink) !important;
	font-family: Poppins, system-ui, sans-serif !important;
	font-size: inherit !important;
	font-weight: 600 !important;
	line-height: inherit !important;
}

.tp-posts .elementor-post__title a:hover {
	color: var(--tp-maroon) !important;
}

.tp-posts .elementor-post__meta-data {
	margin-bottom: 8px;
	color: var(--tp-muted) !important;
	font-size: 13px !important;
}

.tp-posts .elementor-post__excerpt p {
	margin: 0;
	color: var(--tp-body);
	font-size: 14.5px;
	line-height: 1.6;
}

/* 7. Pendaftaran */
.tp-actions {
	flex: 0 0 340px !important;
	max-width: 100%;
}

.tp-actions .elementor-button-wrapper,
.tp-actions .elementor-button {
	width: 100%;
}

.tp-actions .elementor-button {
	justify-content: space-between;
}

.tp-actions .elementor-button .elementor-button-content-wrapper {
	flex: 1;
	justify-content: space-between;
}

.tp-note .elementor-heading-title {
	margin-top: 6px;
	font-size: 14px !important;
	font-weight: 500 !important;
}

/* 8. Instagram + partners */
.tp-ig-wrap .tp-ig {
	margin: 0 auto !important;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r) !important;
	box-shadow: none !important;
}

.tp-partners .e-con {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.tp-partners .tp-logos {
	padding-top: 24px;
	border-top: 1px solid var(--tp-line);
}

.tp-partners .tp-logos img {
	max-height: 64px;
	width: auto !important;
	margin: 0 auto;
	object-fit: contain;
}

@media (max-width: 1024px) {
	.tp-hero__title .elementor-heading-title {
		font-size: 52px !important;
	}

	.tp-quick__grid,
	.tp-cards {
		grid-template-columns: repeat(2, 1fr);
	}

	.tp-quick__item:nth-child(3) {
		border-left: 0;
	}

	.tp-quick__item:nth-child(n + 3) {
		border-top: 1px solid var(--tp-line);
	}
}

@media (max-width: 767px) {
	.tp-h2 .elementor-heading-title {
		font-size: 26px !important;
	}

	.tp-lead {
		font-size: 16px;
	}

	.tp-hero .tp-hero__badge img {
		width: 88px;
	}

	/* Text spans the full width on phones: darken from the bottom instead of the left */
	.tp-hero.e-con::before {
		background-image: linear-gradient(0deg, rgba(26, 10, 10, .9) 0%, rgba(26, 10, 10, .55) 60%, rgba(26, 10, 10, .25) 100%) !important;
		opacity: 1 !important;
	}

	.tp-hero__kicker .elementor-heading-title {
		font-size: 11.5px !important;
	}

	.tp-hero__actions > .elementor-widget,
	.tp-hero__actions .elementor-button {
		width: 100%;
		justify-content: center;
	}

	.tp-posts .elementor-post__excerpt {
		display: none;
	}

	.tp-hero__title .elementor-heading-title {
		font-size: 40px !important;
	}

	.tp-hero__tagline .elementor-heading-title {
		font-size: 18px !important;
	}

	.tp-quick {
		margin-top: -48px;
	}

	.tp-quick__item {
		padding: 18px 14px;
	}

	.tp-quick__item .elementor-icon-box-wrapper {
		flex-direction: column;
		gap: 10px;
	}

	.tp-quick__item .elementor-icon {
		width: 36px;
		height: 36px;
	}

	.tp-quick__item .elementor-icon-box-title {
		font-size: 15px !important;
	}

	.tp-quick__item .elementor-icon-box-description {
		font-size: 12.5px !important;
	}

	.tp-cards {
		grid-template-columns: 1fr;
		gap: 12px !important;
	}

	.tp-card__no .elementor-heading-title {
		margin-bottom: 14px;
	}

	.tp-head-row {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 8px !important;
	}

	.tp-actions {
		flex-basis: auto !important;
		width: 100%;
	}
}

/* ==========================================================
 * Penelitian + KK pages (722, 5093, 5105, 5106).
 * Lists come from inc/tp-research.php shortcodes.
 * ========================================================== */
.tp-rs-main {
	gap: 56px !important;
	min-width: 0;
}

.tp-rs-hero img {
	width: 100%;
	aspect-ratio: 21 / 9;
	object-fit: cover;
	border-radius: var(--tp-r);
}

.tp-rs-intro .tp-lead p {
	margin: 0 0 12px;
}

.tp-rs-head {
	margin-bottom: 20px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--tp-line);
}

.tp-rs-title .elementor-heading-title {
	margin: 0;
	color: var(--tp-ink) !important;
	font-size: 22px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
}

.tp-rs-split > .e-con {
	flex: 1 1 0 !important;
	min-width: 0;
}

.tp-rs-source {
	margin: 14px 0 0;
	color: var(--tp-muted);
	font-size: 12.5px;
}

.tp-rs-source a {
	color: var(--tp-maroon);
}

.tp-rs-empty {
	margin: 0;
	padding: 16px;
	border: 1px dashed var(--tp-line);
	border-radius: var(--tp-r);
	color: var(--tp-muted);
	font-size: 14px;
}

/* Lecturer cards */
.tp-people {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tp-person {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin: 0 !important;
	padding: 14px;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
}

.tp-person img {
	flex: none;
	width: 64px;
	height: 64px;
	border-radius: 4px;
	object-fit: cover;
	object-position: top;
	background: var(--tp-paper);
}

.tp-person strong {
	display: block;
	color: var(--tp-ink);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.35;
}

.tp-person span {
	display: block;
	margin-top: 3px;
	color: var(--tp-muted);
	font-size: 13px;
	line-height: 1.4;
}

.tp-person__links {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	margin: 8px 0 0;
	font-size: 12.5px;
	font-weight: 600;
}

.tp-person__links a {
	color: var(--tp-maroon);
}

.tp-person__links a:hover {
	text-decoration: underline;
}

.tp-people--compact {
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}

.tp-people--compact .tp-person img {
	width: 52px;
	height: 52px;
}

/* Publications */
.tp-pubs {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tp-pubs li {
	display: grid;
	grid-template-columns: 52px 1fr;
	gap: 16px;
	margin: 0 !important;
	padding: 16px 0;
	border-bottom: 1px solid var(--tp-line);
}

.tp-pubs li:first-child {
	padding-top: 0;
}

.tp-pubs__year {
	color: var(--tp-maroon);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
}

.tp-pubs__title {
	color: var(--tp-ink) !important;
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.45;
}

.tp-pubs__title:hover {
	color: var(--tp-maroon) !important;
}

.tp-pubs__authors,
.tp-pubs__meta {
	margin: 6px 0 0;
	color: var(--tp-muted);
	font-size: 13px;
	line-height: 1.5;
}

.tp-pubs__authors b {
	color: var(--tp-ink);
	font-weight: 600;
}

/* Grants and IPR */
.tp-grants {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tp-grants li {
	margin: 0 !important;
	padding: 14px 0;
	border-bottom: 1px solid var(--tp-line);
}

.tp-grants li:first-child {
	padding-top: 0;
}

.tp-grants strong {
	display: block;
	color: var(--tp-ink);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.45;
}

.tp-grants__tags {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 6px;
	color: var(--tp-muted);
	font-size: 12.5px;
	font-weight: 500;
}

.tp-tag {
	padding: 2px 8px;
	border-radius: 4px;
	background: var(--tp-paper);
	color: var(--tp-maroon);
	font-size: 12px;
	font-weight: 600;
}

.tp-grants__meta {
	margin: 6px 0 0;
	color: var(--tp-muted);
	font-size: 13px;
	line-height: 1.5;
}

/* Manually kept archive lists */
.tp-archive > .e-con {
	flex: 1 1 0 !important;
	min-width: 0;
}

.tp-archive__title .elementor-heading-title {
	margin: 0 0 10px;
	color: var(--tp-maroon) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.tp-archive__list ol,
.tp-archive__list ul {
	margin: 0;
	padding-left: 18px;
}

.tp-archive__list li {
	margin: 0 0 8px !important;
	color: var(--tp-body);
	font-size: 13.5px;
	line-height: 1.55;
}

/* KK cards on the landing page */
.tp-kk-cards {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
}

.tp-kk-card {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
	transition: border-color .15s ease;
}

.tp-kk-card:hover {
	border-color: var(--tp-maroon);
}

.tp-kk-card__img img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.tp-kk-card__body {
	flex: 1 1 auto !important;
	padding: 18px 18px 20px !important;
}

.tp-kk-card__title .elementor-heading-title {
	margin: 0 0 8px;
	font-size: 17px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
}

.tp-kk-card__title .elementor-heading-title a {
	color: var(--tp-ink) !important;
}

.tp-kk-card__title .elementor-heading-title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.tp-kk-card__text p {
	margin: 0;
	color: var(--tp-muted);
	font-size: 14px;
	line-height: 1.55;
}

.tp-kk-card .tp-card__more {
	padding-top: 14px;
}

.tp-kk-sum {
	margin-top: 14px;
}

.tp-kk-sum__faces {
	display: flex;
	padding-left: 6px;
}

.tp-kk-sum__faces img {
	width: 32px;
	height: 32px;
	margin-left: -6px;
	border: 2px solid #fff;
	border-radius: 50%;
	object-fit: cover;
	object-position: top;
	background: var(--tp-paper);
}

.tp-kk-sum p {
	margin: 8px 0 0;
	color: var(--tp-muted);
	font-size: 12.5px;
	font-weight: 500;
}

.tp-posts--sm .elementor-post__title {
	font-size: 15px !important;
}

@media (max-width: 1024px) {
	.tp-kk-cards {
		grid-template-columns: 1fr;
	}

	.tp-kk-card {
		display: grid !important;
		grid-template-columns: 220px 1fr;
	}

	.tp-kk-card__img img {
		height: 100%;
		aspect-ratio: auto;
	}
}

@media (max-width: 767px) {
	.tp-rs-main {
		gap: 44px !important;
	}

	.tp-rs-hero img {
		aspect-ratio: 16 / 10;
	}

	.tp-kk-card {
		display: flex !important;
	}

	.tp-kk-card__img img {
		aspect-ratio: 16 / 9;
	}

	.tp-pubs li {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.tp-people {
		grid-template-columns: 1fr;
	}
}

/* ---------- Kurikulum + Prosedur ---------- */
/* Long breadcrumbs (e.g. KK pages) must wrap on phones */
.page-header .site-breadcrumbs {
	max-width: 100%;
	white-space: normal !important;
}

.page-header .site-breadcrumbs .trail-items {
	display: flex;
	flex-wrap: wrap;
}

.tp-prose p,
.tp-prose li {
	font-size: 15.5px;
	line-height: 1.7;
}

.tp-kk-links .elementor-icon-list-item {
	margin: 0 !important;
	padding: 12px 0 !important;
	border-bottom: 1px solid var(--tp-line);
}

.tp-kk-links .elementor-icon-list-item:first-child {
	padding-top: 0 !important;
}

.tp-kk-links .elementor-icon-list-text {
	color: var(--tp-ink) !important;
	font-size: 15.5px !important;
	font-weight: 500;
}

.tp-kk-links a:hover .elementor-icon-list-text {
	color: var(--tp-maroon) !important;
}

.tp-kk-links .elementor-icon-list-icon svg {
	width: 12px;
	fill: var(--tp-maroon) !important;
}

/* Course search (OceanWP ajax search) */
.tp-mk-search .oew-search-wrap {
	position: relative;
	width: 260px;
	max-width: 100%;
}

.tp-mk-search input.field {
	width: 100%;
	height: 40px;
	padding: 0 40px 0 12px !important;
	border: 1px solid var(--tp-line) !important;
	border-radius: 4px !important;
	background: #fff !important;
	font-size: 14px;
}

.tp-mk-search .search-submit {
	position: absolute;
	top: 0;
	right: 0;
	width: 40px;
	height: 40px;
	background: transparent !important;
	color: var(--tp-muted) !important;
}

/* Semester tabs (OceanWP tabs widget) */
.tp-tabs .oew-tabs-wrap {
	display: flex !important;
	flex-wrap: nowrap;
	overflow-x: auto;
	border-bottom: 1px solid var(--tp-line);
	scrollbar-width: none;
}

.tp-tabs .oew-tabs-wrap::-webkit-scrollbar {
	display: none;
}

.tp-tabs .oew-tab-title {
	flex: none;
	margin: 0 0 -1px !important;
	padding: 10px 14px !important;
	border: 0 !important;
	border-bottom: 2px solid transparent !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--tp-muted) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	white-space: nowrap;
	cursor: pointer;
}

.tp-tabs .oew-tab-title:hover {
	color: var(--tp-ink) !important;
}

.tp-tabs .oew-tab-title.oew-active {
	border-bottom-color: var(--tp-maroon) !important;
	color: var(--tp-maroon) !important;
}

.tp-tabs .oew-tab-title .oew-icon-align-left {
	display: none;
}

.tp-tabs .oew-tab-mobile-title {
	display: none !important;
}

.tp-tabs .oew-tabs-content-wrap {
	margin-top: 20px;
	border: 0 !important;
}

.tp-tabs .oew-tab-content {
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}

/* Roadmap board */
.tp-miro__frame {
	overflow: hidden;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: var(--tp-paper);
}

.tp-miro__frame iframe {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	border: 0;
}

/* Accordion (Prosedur and other pages) */
.elementor-accordion .elementor-accordion-item {
	margin-bottom: -1px;
	border: 1px solid var(--tp-line) !important;
}

.elementor-accordion .elementor-accordion-item:first-child {
	border-radius: var(--tp-r) var(--tp-r) 0 0;
}

.elementor-accordion .elementor-accordion-item:last-child {
	border-radius: 0 0 var(--tp-r) var(--tp-r);
}

.elementor-accordion .elementor-tab-title {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 18px !important;
	border: 0 !important;
	background: #fff;
}

.elementor-accordion .elementor-tab-title .elementor-accordion-title {
	color: var(--tp-ink) !important;
	font-size: 15.5px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
}

.elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-title {
	color: var(--tp-maroon) !important;
}

.elementor-accordion .elementor-accordion-icon {
	order: 2;
	margin-left: auto;
	width: auto !important;
}

.elementor-accordion .elementor-accordion-icon svg {
	width: 12px;
	fill: var(--tp-muted) !important;
}

.elementor-accordion .elementor-tab-content {
	padding: 0 18px 18px !important;
	border: 0 !important;
	background: #fff;
	color: var(--tp-body) !important;
	font-size: 15px !important;
	line-height: 1.7 !important;
}

.elementor-accordion .elementor-tab-content a {
	color: var(--tp-maroon);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 767px) {
	.tp-mk-search,
	.tp-mk-search .oew-search-wrap {
		width: 100% !important;
	}

	.tp-miro__frame iframe {
		aspect-ratio: 4 / 5;
	}
}

.page-header .site-breadcrumbs .trail-items li {
	white-space: normal;
}

.tp-rs-intro > .elementor-widget:not(:last-child) {
	margin-bottom: 0;
}

.tp-rs-intro .elementor-widget-text-editor p {
	margin: 0 0 14px;
}

.tp-service-list .elementor-icon-list-items {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px 24px;
	margin: 16px 0 20px !important;
}

.tp-service-list .elementor-icon-list-item {
	margin: 0 !important;
	padding: 0 !important;
}

.tp-service-list .elementor-icon-list-text {
	padding-left: 10px !important;
	color: var(--tp-ink) !important;
	font-size: 15px !important;
}

.tp-service-list .elementor-icon-list-icon svg {
	width: 13px;
	fill: var(--tp-maroon) !important;
}

@media (max-width: 767px) {
	.tp-service-list .elementor-icon-list-items {
		grid-template-columns: 1fr;
	}
}

/* ---------- Course catalogue (inc/tp-courses.php) ---------- */
.tp-mk__controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-bottom: 8px;
}

.tp-mk__search {
	flex: 1 1 260px;
	margin: 0;
}

.tp-mk__search input,
.tp-mk-cari input {
	width: 100%;
	height: 44px;
	padding: 0 14px !important;
	border: 1px solid var(--tp-line) !important;
	border-radius: 4px !important;
	background: #fff !important;
	color: var(--tp-ink);
	font-size: 15px;
}

.tp-mk__search input:focus,
.tp-mk-cari input:focus {
	border-color: var(--tp-maroon) !important;
	outline: none;
}

.tp-mk__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.tp-mk__filters button {
	padding: 8px 12px !important;
	border: 1px solid var(--tp-line) !important;
	border-radius: 4px !important;
	background: #fff !important;
	color: var(--tp-body) !important;
	font-size: 13.5px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
}

.tp-mk__filters button.is-active {
	border-color: var(--tp-maroon) !important;
	background: var(--tp-maroon) !important;
	color: #fff !important;
}

.tp-mk__count {
	margin: 0 0 8px;
	color: var(--tp-muted);
	font-size: 13px;
}

.tp-mk__sem {
	margin-top: 24px;
}

.tp-mk__sem h3 {
	margin: 0 0 10px;
	color: var(--tp-ink);
	font-size: 16px;
	font-weight: 600;
}

.tp-mk__sem h3 span {
	margin-left: 6px;
	color: var(--tp-muted);
	font-size: 13px;
	font-weight: 500;
}

.tp-mk__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tp-mk__list li {
	margin: 0 !important;
}

.tp-mk__list a {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 2px 12px;
	height: 100%;
	padding: 12px 14px;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
	transition: border-color .15s ease;
}

.tp-mk__list a:hover {
	border-color: var(--tp-maroon);
}

.tp-mk__code {
	grid-column: 1;
	color: var(--tp-muted);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .02em;
}

.tp-mk__list strong {
	grid-column: 1;
	color: var(--tp-ink);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
}

.tp-mk__meta {
	grid-column: 1;
	color: var(--tp-muted);
	font-size: 12.5px;
	line-height: 1.45;
}

.tp-mk__kind {
	grid-column: 2;
	grid-row: 1 / span 3;
	align-self: start;
	padding: 2px 8px;
	border-radius: 4px;
	background: var(--tp-paper);
	color: var(--tp-maroon);
	font-size: 11.5px;
	font-weight: 600;
	white-space: nowrap;
}

.tp-mk__kind--pilihan {
	background: #fff;
	box-shadow: inset 0 0 0 1px var(--tp-line);
	color: var(--tp-muted);
}

.tp-mk__none {
	margin: 16px 0 0;
	color: var(--tp-muted);
}

.tp-mk__list--compact {
	grid-template-columns: repeat(3, 1fr);
}

/* Single course */
.tp-mk-facts {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	margin: 8px 0 0;
	border-top: 1px solid var(--tp-line);
}

.tp-mk-facts > div {
	display: grid;
	grid-template-columns: 150px 1fr;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--tp-line);
}

.tp-mk-facts > div:nth-child(odd) {
	padding-right: 24px;
}

.tp-mk-facts dt {
	color: var(--tp-muted);
	font-size: 13.5px;
	font-weight: 500;
}

.tp-mk-facts dd {
	margin: 0;
	color: var(--tp-ink);
	font-size: 14.5px;
	font-weight: 600;
}

.tp-mk-h {
	margin: 40px 0 12px;
	color: var(--tp-ink);
	font-size: 22px;
	font-weight: 600;
}

.tp-mk-silabus p {
	max-width: 72ch;
	font-size: 15.5px;
	line-height: 1.75;
	text-align: left;
}

/* Front page finder */
.tp-mk-cari {
	display: flex;
	gap: 8px;
	max-width: 520px;
	margin: 24px 0 16px;
}

.tp-mk-cari label {
	flex: 1;
	margin: 0;
}

.tp-mk-cari button {
	padding: 0 20px !important;
	border-radius: 4px !important;
	background: var(--tp-maroon) !important;
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 600 !important;
}

.tp-mk-cari button:hover {
	background: var(--tp-maroon-2) !important;
}

.tp-links {
	flex: 0 0 380px !important;
	max-width: 100%;
}

.tp-links__title .elementor-heading-title {
	margin: 0 0 14px;
	color: var(--tp-maroon) !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	letter-spacing: .14em;
	text-transform: uppercase;
}

@media (max-width: 1024px) {
	.tp-mk__list--compact {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.tp-more .elementor-heading-title {
		white-space: normal;
	}

	.tp-mk__list,
	.tp-mk__list--compact,
	.tp-mk-facts {
		grid-template-columns: 1fr;
	}

	.tp-mk-facts > div {
		grid-template-columns: 130px 1fr;
		padding-right: 0 !important;
	}

	.tp-links {
		flex-basis: auto !important;
		width: 100%;
	}
}

/* ---------- Kurikulum: documents + competence domains ---------- */
.tp-doclist {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tp-doclist li {
	margin: 0 !important;
}

.tp-doclist a {
	display: block;
	height: 100%;
	padding: 14px 16px;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
	transition: border-color .15s ease;
}

.tp-doclist a:hover {
	border-color: var(--tp-maroon);
}

.tp-doclist strong {
	display: block;
	color: var(--tp-ink);
	font-size: 15px;
	font-weight: 600;
}

.tp-doclist span {
	display: block;
	margin-top: 2px;
	color: var(--tp-muted);
	font-size: 13px;
}

.tp-mk-facts__wide {
	grid-column: 1 / -1;
	padding-right: 0 !important;
}

.tp-mk-facts__wide a {
	color: var(--tp-maroon);
}

.tp-mk-cari button {
	text-transform: none !important;
	letter-spacing: 0 !important;
}

@media (max-width: 767px) {
	.tp-doclist {
		grid-template-columns: 1fr;
	}
}

.elementor-widget-text-editor ul.tp-doclist {
	padding-left: 0;
}

.tp-doclist a {
	text-decoration: none !important;
}

.tp-doclist a strong {
	color: var(--tp-ink);
}

.tp-doclist a:hover strong {
	color: var(--tp-maroon);
}

.tp-miro .tp-embed,
.tp-rs-block .tp-embed {
	max-width: none;
	margin: 0;
}

/* ==========================================================
 * Kurikulum page: colourful, interactive (requested by prodi).
 * Families mirror the PATPI competence chart.
 * ========================================================== */
.tp-ranah--sains  { --rc: #2f5aa8; --rb: #e8eefa; --rl: #c9d6f1; }
.tp-ranah--hayati { --rc: #3f7d2f; --rb: #eaf4e4; --rl: #cfe5c4; }
.tp-ranah--gizi   { --rc: #a0661a; --rb: #fdf3dc; --rl: #f3dfb0; }
.tp-ranah--mutu   { --rc: #b4532a; --rb: #fdeadf; --rl: #f6cdb6; }
.tp-ranah--soft   { --rc: #8a5d00; --rb: #fff1c4; --rl: #f5d97a; }

.tp-ranah__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin-top: 18px;
}

.tp-ranah__card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	min-height: 128px;
	padding: 16px 16px 14px !important;
	border: 1px solid var(--rl) !important;
	border-radius: 10px !important;
	background: var(--rb) !important;
	color: var(--tp-ink) !important;
	text-align: left;
	cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.tp-ranah__card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px -10px rgba(31, 26, 26, .35);
}

.tp-ranah__card[aria-expanded="true"] {
	border-color: var(--rc) !important;
	background: #fff !important;
	box-shadow: 0 14px 30px -12px rgba(31, 26, 26, .4), inset 0 4px 0 var(--rc);
	transform: translateY(-3px);
}

.tp-ranah__group {
	color: var(--rc);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.tp-ranah__card strong {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
}

.tp-ranah__nums {
	display: flex;
	align-items: baseline;
	gap: 4px;
	margin-top: auto;
	color: var(--tp-muted);
	font-size: 12.5px;
}

.tp-ranah__nums b {
	color: var(--rc);
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
}

.tp-ranah__nums i {
	width: 1px;
	height: 14px;
	margin: 0 8px;
	background: var(--rl);
}

.tp-ranah__panels {
	margin-top: 14px;
}

.tp-ranah__grid > .tp-ranah__panel {
	grid-column: 1 / -1;
}

.tp-ranah.is-ready .tp-ranah__panel[hidden] {
	display: none;
}

.tp-ranah__panel {
	padding: 18px 20px;
	border: 1px solid var(--rl);
	border-left: 4px solid var(--rc);
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 10px 28px -16px rgba(31, 26, 26, .35);
	animation: tp-rise .2s ease;
}

.tp-ranah:not(.is-ready) .tp-ranah__panel + .tp-ranah__panel {
	margin-top: 10px;
}

@keyframes tp-rise {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}

.tp-ranah__panel h3 {
	margin: 0 0 12px;
	color: var(--rc);
	font-size: 17px;
	font-weight: 600;
}

.tp-ranah__panel h3 span {
	margin-left: 6px;
	color: var(--tp-muted);
	font-size: 13px;
	font-weight: 500;
}

.tp-ranah__panel ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tp-ranah__panel li {
	margin: 0 !important;
}

.tp-ranah__panel a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 12px 7px 8px;
	border-radius: 999px;
	background: var(--rb);
	color: var(--tp-ink);
	font-size: 14px;
	font-weight: 500;
	transition: background-color .15s ease, color .15s ease;
}

.tp-ranah__panel a:hover {
	background: var(--rc);
	color: #fff;
}

.tp-ranah__panel a span {
	flex: none;
	white-space: nowrap;
	padding: 1px 7px;
	border-radius: 999px;
	background: #fff;
	color: var(--rc);
	font-size: 11.5px;
	font-weight: 600;
}

/* Live stats */
.tp-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.tp-stats li {
	margin: 0 !important;
	padding: 14px 16px;
	border-radius: 10px;
	background: var(--tp-paper);
}

.tp-stats__0 { background: #f3e6e6 !important; }
.tp-stats__1 { background: #e8eefa !important; }
.tp-stats__2 { background: #eaf4e4 !important; }
.tp-stats__3 { background: #fff1c4 !important; }

.tp-stats b {
	display: block;
	color: var(--tp-ink);
	font-size: 28px;
	font-weight: 700;
	line-height: 1.1;
}

.tp-stats span {
	color: var(--tp-muted);
	font-size: 13px;
}

.tp-more-text summary {
	display: inline-block;
	color: var(--tp-maroon);
	font-size: 14.5px;
	font-weight: 600;
	cursor: pointer;
}

.tp-more-text[open] summary {
	margin-bottom: 12px;
}

/* KK cards with colour accents */
.tp-kk-cards--color .tp-kk-card {
	border-radius: 10px;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.tp-kk-cards--color .tp-kk-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 32px -16px rgba(31, 26, 26, .4);
}

.tp-kk-card--kimia { --kc: #2f5aa8; }
.tp-kk-card--mikro { --kc: #3f7d2f; }
.tp-kk-card--rekayasa { --kc: #b4532a; }

.tp-kk-cards--color .tp-kk-card {
	border-top: 4px solid var(--kc) !important;
}

.tp-kk-cards--color .tp-kk-card:hover {
	border-color: var(--kc) !important;
}

.tp-kk-cards--color .tp-card__more .elementor-heading-title a {
	color: var(--kc) !important;
}

/* Document cards with type badges */
.tp-doclist a {
	position: relative;
	padding-left: 64px !important;
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.tp-doclist a:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 22px -14px rgba(31, 26, 26, .4);
}

.tp-doclist a::before {
	content: "DOC";
	position: absolute;
	top: 50%;
	left: 14px;
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	margin-top: -19px;
	border-radius: 8px;
	background: #e8eefa;
	color: #2f5aa8;
	font-size: 11px;
	font-weight: 700;
}

.tp-doclist li.is-book a::before {
	content: "PDF";
	background: #f3e6e6;
	color: var(--tp-maroon);
}

/* Course search band */
.tp-mk-band {
	padding: 24px 28px !important;
	border-radius: 12px;
	background: linear-gradient(135deg, #680000 0%, #8a1d1d 100%);
}

.tp-mk-band .tp-rs-title .elementor-heading-title {
	color: #fff !important;
}

.tp-mk-band .tp-prose p {
	margin: 6px 0 0;
	color: rgba(255, 255, 255, .82);
}

.tp-mk-band__text {
	flex: 1 1 260px !important;
}

.tp-mk-band__form {
	flex: 1 1 380px !important;
}

.tp-mk-band .tp-mk-cari {
	margin: 0 0 10px;
}

.tp-mk-band .tp-mk-cari input {
	border-color: transparent !important;
}

.tp-mk-band .tp-mk-cari button {
	background: #fff !important;
	color: var(--tp-maroon) !important;
}

.tp-mk-band .tp-more .elementor-heading-title a {
	color: #fff !important;
}

/* Front page: search beside the pillars heading, quick-link chips */
.tp-bidang__top {
	margin-bottom: 40px;
}

.tp-bidang__top .tp-head {
	margin-bottom: 0;
}

.tp-bidang__search {
	flex: 0 1 440px !important;
	padding: 18px 20px !important;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: var(--tp-paper);
}

.tp-bidang__search-title .elementor-heading-title {
	margin: 0 0 10px;
	color: var(--tp-ink) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
}

.tp-bidang__search .tp-mk-cari {
	margin: 0 0 10px;
}

.tp-chips {
	margin-top: 32px;
}

.tp-chips__title .elementor-heading-title {
	margin: 0 6px 0 0;
	color: var(--tp-maroon) !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.tp-chip .elementor-heading-title {
	font-size: 14px !important;
	font-weight: 500 !important;
}

.tp-chip .elementor-heading-title a {
	display: inline-block;
	padding: 8px 14px;
	border: 1px solid var(--tp-line);
	border-radius: 4px;
	background: #fff;
	color: var(--tp-ink) !important;
	transition: border-color .15s ease, color .15s ease;
}

.tp-chip .elementor-heading-title a:hover {
	border-color: var(--tp-maroon);
	color: var(--tp-maroon) !important;
}

@media (max-width: 1024px) {
	.tp-ranah__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.tp-stats {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.tp-ranah__card {
		min-height: 0;
	}

	.tp-ranah__card {
		padding: 12px !important;
	}

	.tp-ranah__card strong {
		font-size: 14px;
	}

	.tp-ranah__group {
		font-size: 10px;
	}

	.tp-ranah__nums {
		flex-wrap: wrap;
		font-size: 11.5px;
	}

	.tp-ranah__nums b {
		font-size: 17px;
	}

	.tp-ranah__nums i {
		margin: 0 4px;
	}

	.tp-ranah__panel {
		padding: 14px;
	}

	.tp-mk-band {
		padding: 20px !important;
	}

	.tp-mk-band__form,
	.tp-bidang__search {
		flex-basis: auto !important;
		width: 100%;
	}
}

.tp-bidang__top > .tp-head {
	flex: 1 1 auto !important;
	min-width: 0;
}

.tp-bidang__search {
	width: 420px !important;
	flex: 0 0 420px !important;
}

.tp-bidang__search .tp-more .elementor-heading-title {
	white-space: normal;
}

@media (max-width: 767px) {
	.tp-bidang__search {
		width: 100% !important;
		flex: 1 1 auto !important;
	}
}

/* Front page quick links: even grid under the pillars */
.tp-chips__title .elementor-heading-title {
	margin: 0 0 12px !important;
}

.tp-chips__grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
}

.tp-chip .elementor-heading-title,
.tp-chip .elementor-heading-title a {
	display: block;
}

.tp-chip .elementor-heading-title a {
	position: relative;
	padding: 14px 40px 14px 16px;
	border-radius: var(--tp-r);
}

.tp-chip .elementor-heading-title a::after {
	content: "\2192";
	position: absolute;
	top: 50%;
	right: 16px;
	transform: translateY(-50%);
	color: var(--tp-maroon);
	transition: transform .15s ease;
}

.tp-chip .elementor-heading-title a:hover::after {
	transform: translate(3px, -50%);
}

/* Follow us: Instagram + YouTube */
.tp-ig-band .tp-head {
	margin-bottom: 28px;
}

.tp-social > .e-con {
	flex: 1 1 0 !important;
	min-width: 0;
	padding: 20px !important;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
}

/* Equal-height columns: the Instagram frame and the video list share one height */
.tp-social .tp-ig-wrap .tp-ig iframe {
	height: 520px !important;
}

.tp-social--yt .tp-yt {
	flex: 1 1 auto;
}

.tp-social--yt .tp-yt-cta {
	margin-top: auto;
}


.tp-social__head {
	margin-bottom: 16px;
}

.tp-social__label .elementor-heading-title {
	margin: 0;
	color: var(--tp-muted) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.tp-social__name .elementor-heading-title {
	margin: 2px 0 6px;
	color: var(--tp-ink) !important;
	font-size: 19px !important;
	font-weight: 600 !important;
}

.tp-social .tp-ig-wrap .tp-ig {
	max-width: none;
}

.tp-yt__frame {
	overflow: hidden;
	border-radius: var(--tp-r);
	background: #111;
}

.tp-yt__frame iframe {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
}

.tp-yt-cta .elementor-widget-container {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
}

.tp-yt__profile {
	padding: 10px 16px;
	border-radius: 4px;
	font-size: 14.5px;
	font-weight: 600;
}

.tp-yt__profile {
	border: 1px solid var(--tp-line);
	color: var(--tp-ink) !important;
}

.tp-yt__profile:hover {
	border-color: var(--tp-maroon);
	color: var(--tp-maroon) !important;
}

@media (max-width: 1024px) {
	.tp-chips__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.tp-chips__grid {
		grid-template-columns: 1fr;
	}

	.tp-social > .e-con {
		width: 100%;
		padding: 16px !important;
	}
}

.tp-yt,
.tp-yt .elementor-widget-container,
.tp-yt__frame,
.tp-ig-wrap,
.tp-ig-wrap .elementor-widget-container {
	width: 100%;
}

/* Latest YouTube uploads (server-side RSS, no player until clicked) */
.tp-yt-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tp-yt-list li {
	margin: 0 !important;
}

.tp-yt-list li.is-first {
	grid-column: 1 / -1;
}

.tp-yt-list a {
	display: block;
	color: var(--tp-ink) !important;
}

.tp-yt-list__thumb {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--tp-r);
	background: #111;
}

.tp-yt-list__thumb img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	transition: transform .25s ease;
}

.tp-yt-list a:hover .tp-yt-list__thumb img {
	transform: scale(1.04);
}

.tp-yt-list__thumb i {
	display: none;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 44px;
	height: 30px;
	margin: -15px 0 0 -22px;
	border-radius: 8px;
	background: rgba(230, 33, 23, .92);
}

.tp-yt-list__thumb i::after {
	content: "";
	position: absolute;
	top: 9px;
	left: 18px;
	border-style: solid;
	border-width: 6px 0 6px 10px;
	border-color: transparent transparent transparent #fff;
}

.tp-yt-list li:not(.is-first) .tp-yt-list__thumb i {
	transform: scale(.75);
}

.tp-yt-list__text {
	display: block;
	margin-top: 8px;
}

.tp-yt-list__text strong {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.4;
}

.tp-yt-list li.is-first .tp-yt-list__text strong {
	font-size: 15.5px;
}

.tp-yt-list__text > span {
	display: block;
	margin-top: 2px;
	color: var(--tp-muted);
	font-size: 12px;
}

.tp-yt-list a:hover strong {
	color: var(--tp-maroon);
}

/* ---------- Kontak ---------- */
.tp-contact-wrap .tp-head {
	max-width: 720px;
	margin-bottom: 28px;
}

.tp-routes {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin: 0 0 32px !important;
	padding: 0 !important;
	list-style: none;
}

.tp-routes li {
	margin: 0 !important;
}

.tp-routes a {
	display: block;
	height: 100%;
	padding: 16px;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
	text-decoration: none !important;
	transition: border-color .15s ease;
}

.tp-routes a:hover {
	border-color: var(--tp-maroon);
}

.tp-routes strong {
	display: block;
	color: var(--tp-ink);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
}

.tp-routes span {
	display: block;
	margin-top: 4px;
	color: var(--tp-muted);
	font-size: 13px;
	line-height: 1.45;
}

.tp-contact-grid > .tp-contact-card {
	flex: 1 1 62% !important;
}

.tp-contact-grid > .tp-contact-side {
	flex: 1 1 38% !important;
	background: var(--tp-paper);
}

.tp-contact-grid > .e-con {
	min-width: 0;
	padding: 24px !important;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
}

.tp-contact-grid .tp-rs-title .elementor-heading-title {
	margin-bottom: 16px;
}

.tp-contact {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.tp-contact li {
	margin: 0 !important;
	padding: 12px 0;
	border-top: 1px solid var(--tp-line);
}

.tp-contact li:first-child {
	padding-top: 0;
	border-top: 0;
}

.tp-contact span {
	display: block;
	margin-bottom: 2px;
	color: var(--tp-muted);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.tp-contact p {
	margin: 0 !important;
	color: var(--tp-ink);
	font-size: 15px;
	line-height: 1.6;
}

.tp-contact a {
	color: var(--tp-maroon) !important;
	text-decoration: none !important;
}

.tp-contact a:hover {
	text-decoration: underline !important;
}

/* Elementor form */
.tp-form .elementor-field-label {
	color: var(--tp-ink) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
}

.tp-form .elementor-field-textual,
.tp-form select {
	min-height: 44px;
	padding: 10px 12px !important;
	border: 1px solid var(--tp-line) !important;
	border-radius: 4px !important;
	background: #fff !important;
	color: var(--tp-ink) !important;
	font-size: 15px !important;
}

.tp-form .elementor-field-textual:focus,
.tp-form select:focus {
	border-color: var(--tp-maroon) !important;
	box-shadow: none !important;
	outline: none;
}

.tp-form .elementor-button {
	width: auto !important;
	padding: 13px 24px !important;
	background: var(--tp-maroon) !important;
	color: #fff !important;
	font-size: 15px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

.tp-form .elementor-button:hover {
	background: var(--tp-maroon-2) !important;
}

.tp-form .e-form__buttons {
	justify-content: flex-start !important;
}

.tp-map-wrap {
	margin-top: 24px;
}

.tp-map iframe {
	display: block;
	border: 1px solid var(--tp-line) !important;
	border-radius: var(--tp-r);
	filter: saturate(.85);
}

/* ---------- 404 ---------- */
.tp-404 {
	max-width: 760px;
}

.tp-404 .tp-404__search {
	margin: 8px 0 24px;
}

.tp-404 .tp-404__links {
	max-width: 520px;
}

@media (max-width: 1024px) {
	.tp-routes {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.tp-routes {
		grid-template-columns: 1fr;
	}

	.tp-contact-grid > .e-con {
		width: 100%;
		padding: 18px !important;
	}
}

.tp-map,
.tp-map .elementor-widget-container,
.tp-map .elementor-custom-embed,
.tp-map iframe {
	width: 100% !important;
}

/* Course catalogue v2: semester tabs + table-like rows (less scrolling) */
.tp-mk__tabs {
	display: flex;
	gap: 6px;
	margin: 14px 0 10px;
	padding-bottom: 2px;
	overflow-x: auto;
	scrollbar-width: none;
}

.tp-mk__tabs::-webkit-scrollbar {
	display: none;
}

.tp-mk__tabs button {
	flex: none;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 8px 14px !important;
	border: 1px solid var(--tp-line) !important;
	border-radius: 6px !important;
	background: #fff !important;
	color: var(--tp-ink) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
}

.tp-mk__tabs button span {
	color: var(--tp-muted);
	font-size: 11.5px;
	font-weight: 500;
}

.tp-mk__tabs button.is-active {
	border-color: var(--tp-maroon) !important;
	background: var(--tp-maroon) !important;
	color: #fff !important;
}

.tp-mk__tabs button.is-active span {
	color: rgba(255, 255, 255, .8);
}

.tp-mk__sem {
	margin-top: 8px;
}

.tp-mk:not(.is-all) .tp-mk__sem h3 {
	display: none;
}

.tp-mk.is-all .tp-mk__sem {
	margin-top: 20px;
}

.tp-mk__list,
.tp-mk__list--compact {
	display: block;
	overflow: hidden;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
}

.tp-mk__list li + li {
	border-top: 1px solid var(--tp-line);
}

.tp-mk__list a {
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr) minmax(0, 220px) 56px 92px;
	align-items: center;
	gap: 12px;
	height: auto;
	padding: 10px 14px;
	border: 0;
	border-radius: 0;
	background: #fff;
	transition: background-color .12s ease;
}

.tp-mk__list a:hover {
	background: var(--tp-paper);
	border-color: transparent;
}

.tp-mk__list a > * {
	grid-column: auto !important;
	grid-row: auto !important;
}

.tp-mk__list strong {
	font-size: 14.5px;
}

.tp-mk__list .tp-mk__meta {
	overflow: hidden;
	font-size: 12.5px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tp-mk__sks {
	color: var(--tp-body);
	font-size: 13px;
	font-weight: 500;
	white-space: nowrap;
}

.tp-mk__list .tp-mk__kind {
	justify-self: end;
}

@media (max-width: 767px) {
	.tp-mk__list a {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 2px 10px;
		padding: 10px 12px;
	}

	.tp-mk__list .tp-mk__code {
		grid-column: 1 !important;
		grid-row: 1 !important;
	}

	.tp-mk__list strong {
		grid-column: 1 !important;
		grid-row: 2 !important;
	}

	.tp-mk__list .tp-mk__meta {
		display: none;
	}

	.tp-mk__list .tp-mk__sks {
		grid-column: 2 !important;
		grid-row: 2 !important;
		justify-self: end;
		font-size: 12px;
	}

	.tp-mk__list .tp-mk__kind {
		grid-column: 2 !important;
		grid-row: 1 !important;
	}
}

/* Seminar schedule (Arkumi) */
.tp-jadwal__day + .tp-jadwal__day {
	margin-top: 18px;
}

.tp-jadwal__day h3 {
	margin: 0 0 8px;
	color: var(--tp-ink);
	font-size: 15px;
	font-weight: 600;
}

.tp-jadwal__day h3 span {
	margin-left: 6px;
	padding: 2px 8px;
	border-radius: 4px;
	background: var(--tp-maroon);
	color: #fff;
	font-size: 11.5px;
}

.tp-jadwal__day ul {
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	list-style: none;
}

.tp-jadwal__day li {
	display: grid;
	grid-template-columns: 56px 150px minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	margin: 0 !important;
	padding: 10px 14px;
	background: #fff;
}

.tp-jadwal__day li + li {
	border-top: 1px solid var(--tp-line);
}

.tp-jadwal__day.is-today li {
	background: #fffaf5;
}

.tp-jadwal__day time {
	color: var(--tp-maroon);
	font-size: 14px;
	font-weight: 600;
}

.tp-jadwal__day .tp-tag {
	justify-self: start;
}

.tp-jadwal__type--semhas {
	background: #e8eefa;
	color: #2f5aa8;
}

.tp-jadwal__type--sidang {
	background: #eaf4e4;
	color: #3f7d2f;
}

.tp-jadwal__day strong {
	color: var(--tp-ink);
	font-size: 14.5px;
	font-weight: 500;
}

.tp-jadwal__room {
	color: var(--tp-muted);
	font-size: 13px;
	white-space: nowrap;
}

@media (max-width: 767px) {
	.tp-jadwal__day li {
		grid-template-columns: 48px minmax(0, 1fr) auto;
		gap: 2px 10px;
	}

	.tp-jadwal__day .tp-tag {
		grid-column: 2;
		grid-row: 1;
	}

	.tp-jadwal__day time {
		grid-row: 1 / span 2;
	}

	.tp-jadwal__day strong {
		grid-column: 2 / span 2;
		grid-row: 2;
	}

	.tp-jadwal__room {
		grid-column: 3;
		grid-row: 1;
	}
}

@media (min-width: 768px) {
	.tp-mk__tabs {
		flex-wrap: wrap;
		overflow: visible;
	}
}

/* ---------- Perkuliahan ---------- */
.elementor-widget-text-editor ul.tp-stats,
.elementor-widget-text-editor ol.tp-steps,
.elementor-widget-text-editor ul.tp-pl,
.elementor-widget-text-editor ul.tp-facts-inline,
.elementor-widget-text-editor ul.tp-pills,
.elementor-widget-text-editor ul.tp-routes,
.tp-cpl ol {
	padding-left: 0;
	list-style: none;
}

.tp-steps {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	margin: 0;
	counter-reset: none;
}

.tp-steps li {
	position: relative;
	margin: 0 !important;
	padding: 18px 16px 16px;
	border: 1px solid var(--tp-line);
	border-radius: 10px;
	background: #fff;
}

.tp-steps li:nth-child(1) { border-top: 4px solid #2f5aa8; }
.tp-steps li:nth-child(2) { border-top: 4px solid #3f7d2f; }
.tp-steps li:nth-child(3) { border-top: 4px solid #b4532a; }
.tp-steps li:nth-child(4) { border-top: 4px solid var(--tp-maroon); }

.tp-steps b {
	display: block;
	color: var(--tp-muted);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
}

.tp-steps li > div > strong:first-child {
	display: block;
	margin: 2px 0 8px;
	color: var(--tp-ink);
	font-size: 16px;
	font-weight: 600;
	text-transform: capitalize;
}

.tp-steps p {
	margin: 0 !important;
	font-size: 14px;
	line-height: 1.6;
}

.tp-pl {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	margin: 0;
}

.tp-pl li {
	margin: 0 !important;
	padding: 16px 18px;
	border: 1px solid var(--tp-line);
	border-radius: 10px;
	background: var(--tp-paper);
}

.tp-pl li > span {
	display: inline-block;
	padding: 1px 8px;
	border-radius: 4px;
	background: var(--tp-maroon);
	color: #fff;
	font-size: 11.5px;
	font-weight: 600;
}

.tp-pl strong {
	display: block;
	margin: 8px 0 6px;
	color: var(--tp-ink);
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.35;
}

.tp-pl p {
	margin: 0 0 8px !important;
	font-size: 14px;
	line-height: 1.6;
}

.tp-pl em {
	display: block;
	color: var(--tp-muted);
	font-size: 13px;
	font-style: normal;
}

.tp-cpl details {
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
}

.tp-cpl details + details {
	margin-top: 8px;
}

.tp-cpl summary {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 16px;
	cursor: pointer;
}

.tp-cpl summary strong {
	color: var(--tp-ink);
	font-size: 15px;
	font-weight: 600;
}

.tp-cpl summary span {
	flex: none;
	color: var(--tp-muted);
	font-size: 13px;
}

.tp-cpl ol {
	margin: 0;
	padding: 0 16px 8px;
}

.tp-cpl li {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 10px;
	margin: 0 !important;
	padding: 10px 0;
	border-top: 1px solid var(--tp-line);
	font-size: 14.5px;
	line-height: 1.6;
}

.tp-cpl li b {
	color: var(--tp-maroon);
	font-weight: 600;
	white-space: nowrap;
}

.tp-facts-inline {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	margin: 0 0 18px;
}

.tp-facts-inline li {
	margin: 0 !important;
	padding: 12px 14px;
	border-radius: 8px;
	background: var(--tp-paper);
}

.tp-facts-inline span {
	display: block;
	color: var(--tp-muted);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.tp-facts-inline strong {
	color: var(--tp-ink);
	font-size: 14.5px;
	font-weight: 600;
}

.tp-mini-title {
	margin: 0 0 8px !important;
	color: var(--tp-ink);
	font-size: 14px;
	font-weight: 600;
}

.tp-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 14px;
}

.tp-pills li {
	margin: 0 !important;
	padding: 6px 12px;
	border: 1px solid var(--tp-line);
	border-radius: 999px;
	background: #fff;
	color: var(--tp-ink);
	font-size: 13.5px;
}

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

.tp-rs-main .tp-routes {
	grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 1024px) {
	.tp-steps {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.tp-steps,
	.tp-pl,
	.tp-facts-inline,
	.tp-rs-main .tp-routes {
		grid-template-columns: 1fr;
	}

	.tp-cpl li {
		grid-template-columns: 1fr;
		gap: 2px;
	}
}

.tp-steps p strong {
	color: var(--tp-ink);
	font-weight: 600;
}

.tp-prose,
.tp-prose p,
.tp-prose li {
	text-align: left !important;
}

.tp-steps--short li,
.tp-steps li {
	padding: 14px 16px;
}

.tp-pills--lg li {
	padding: 9px 16px;
	border-color: var(--tp-maroon);
	color: var(--tp-maroon);
	font-size: 14.5px;
	font-weight: 600;
}

.tp-mlps .tp-note-text {
	margin: 0 0 12px !important;
	color: var(--tp-body);
	font-size: 15px;
}

@media (min-width: 1025px) {
	.tp-steps {
		grid-template-columns: repeat(4, 1fr);
	}
}

.tp-photos {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
}

.tp-photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--tp-r);
}

@media (max-width: 767px) {
	.tp-photos {
		grid-template-columns: repeat(3, 1fr);
		gap: 6px !important;
	}
}

/* ---------- Info pages: Tentang Kami, Fasilitas, Layanan, PMB ---------- */
.elementor-widget-text-editor ul.tp-svc,
.elementor-widget-text-editor ol.tp-misi {
	padding-left: 0;
	list-style: none;
}

.tp-svc {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	margin: 0;
}

.tp-svc li {
	margin: 0 !important;
}

.tp-svc a,
.tp-svc li > div {
	display: block;
	height: 100%;
	padding: 16px 18px;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
	text-decoration: none !important;
	transition: border-color .15s ease, transform .15s ease;
}

.tp-svc a:hover {
	border-color: var(--tp-maroon);
	transform: translateY(-2px);
}

.tp-svc span {
	display: inline-block;
	margin-bottom: 6px;
	padding: 1px 8px;
	border-radius: 4px;
	background: var(--tp-paper);
	color: var(--tp-maroon);
	font-size: 11.5px;
	font-weight: 600;
}

.tp-svc strong {
	display: block;
	color: var(--tp-ink);
	font-size: 16px;
	font-weight: 600;
}

.tp-svc p {
	margin: 4px 0 0 !important;
	color: var(--tp-body);
	font-size: 14px;
	line-height: 1.55;
}

.tp-svc em {
	display: block;
	margin-top: 10px;
	color: var(--tp-maroon);
	font-size: 13.5px;
	font-style: normal;
	font-weight: 600;
}

.tp-svc em::after {
	content: " \2192";
}

.tp-akre {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 18px 20px;
	border: 1px solid var(--tp-line);
	border-left: 4px solid var(--tp-maroon);
	border-radius: var(--tp-r);
	background: var(--tp-paper);
}

.tp-akre img {
	flex: none;
	width: 88px;
	height: auto;
}

.tp-akre span {
	color: var(--tp-muted);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.tp-akre strong {
	display: block;
	color: var(--tp-maroon);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.2;
}

.tp-akre p {
	margin: 4px 0 6px !important;
	font-size: 14px;
}

.tp-akre a {
	font-size: 14px;
	font-weight: 600;
}

.tp-visi-quote {
	margin: 0;
	padding: 4px 0 4px 20px;
	border-left: 3px solid var(--tp-maroon);
	color: var(--tp-ink);
	font-size: 20px;
	font-weight: 500;
	line-height: 1.55;
}

.tp-misi {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	margin: 0;
}

.tp-misi li {
	margin: 0 !important;
	padding: 16px 18px;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
}

.tp-misi b {
	color: var(--tp-maroon);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
}

.tp-misi strong {
	display: block;
	margin: 6px 0 4px;
	color: var(--tp-ink);
	font-size: 16px;
	font-weight: 600;
}

.tp-misi p {
	margin: 0 !important;
	font-size: 14.5px;
	line-height: 1.6;
}

.tp-gallery {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
}

.tp-gallery__cap .elementor-heading-title {
	margin: 6px 0 0;
	color: var(--tp-muted) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
}

.tp-pmb-cta {
	margin-top: -24px;
}

@media (max-width: 767px) {
	.tp-svc,
	.tp-misi {
		grid-template-columns: 1fr;
	}

	.tp-gallery {
		grid-template-columns: repeat(2, 1fr);
	}

	.tp-akre {
		align-items: flex-start;
	}

	.tp-akre img {
		width: 64px;
	}
}

/* ---------- Icon cards (icons kept from the previous design) ---------- */
.tp-icards {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
}

.tp-icard {
	position: relative;
	padding: 18px !important;
	border: 1px solid var(--tp-line);
	border-radius: var(--tp-r);
	background: #fff;
	transition: border-color .15s ease, transform .15s ease;
}

.tp-icard:has(.tp-icard__title a):hover {
	border-color: var(--tp-maroon);
	transform: translateY(-2px);
}

.tp-icard__icon .elementor-icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin-bottom: 12px;
	border-radius: 8px;
	background: var(--tp-paper);
	color: var(--tp-maroon) !important;
	fill: var(--tp-maroon) !important;
	font-size: 20px !important;
}

.tp-icard__icon .elementor-icon svg {
	width: 20px;
	height: 20px;
}

.tp-icard__tag .elementor-heading-title {
	margin: 0 0 4px;
	color: var(--tp-muted) !important;
	font-size: 11.5px !important;
	font-weight: 600 !important;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.tp-icard__title .elementor-heading-title {
	margin: 0 0 4px;
	color: var(--tp-ink) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
}

.tp-icard__title .elementor-heading-title a {
	color: inherit !important;
}

.tp-icard__title .elementor-heading-title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.tp-icard__text p {
	margin: 0 !important;
	color: var(--tp-body);
	font-size: 14px;
	line-height: 1.55;
}

.tp-icard__more .elementor-heading-title {
	margin: 10px 0 0;
	color: var(--tp-maroon) !important;
	font-size: 13.5px !important;
	font-weight: 600 !important;
}

.tp-icard__more .elementor-heading-title a {
	color: inherit !important;
}

.tp-icard__more .elementor-heading-title a::after {
	content: " \2192";
}

.tp-kk-icon .elementor-icon {
	display: inline-block;
	margin-bottom: 10px;
	font-size: 34px !important;
	line-height: 1;
}

.tp-kk-icon .elementor-icon svg {
	width: 34px;
	height: 34px;
}

@media (max-width: 767px) {
	.tp-icards {
		grid-template-columns: 1fr;
	}
}

/* ---------- Front page: lecturer photo with offset frame ornament ---------- */
.tp-visi .tp-visi__img .elementor-widget-container {
	position: relative;
	margin: 0 18px 18px 0;
}

.tp-visi .tp-visi__img .elementor-widget-container::before {
	content: "";
	position: absolute;
	inset: 18px -18px -18px 18px;
	z-index: 0;
	border: 2px solid #d9a81e;
	border-radius: 18px;
}

.tp-visi .tp-visi__img img {
	position: relative;
	z-index: 1;
	border-radius: 18px;
	box-shadow: 0 22px 40px -18px rgba(104, 0, 0, .35);
}

@media (max-width: 767px) {
	.tp-visi .tp-visi__img .elementor-widget-container {
		margin: 0 12px 12px 0;
	}

	.tp-visi .tp-visi__img .elementor-widget-container::before {
		inset: 12px -12px -12px 12px;
		border-radius: 14px;
	}

	.tp-visi .tp-visi__img img {
		border-radius: 14px;
	}
}

/* ---------- Staff cards: role shown as a tooltip instead of covering the face ---------- */
.pp-tm-image {
	overflow: visible !important;
}

.pp-tm-image img {
	transform: none !important;
	filter: none !important;
	opacity: 1 !important;
}

.pp-tm .pp-tm-overlay-content-wrap {
	position: absolute !important;
	inset: auto auto calc(100% + 8px) 50% !important;
	z-index: 30;
	width: max-content !important;
	max-width: 230px;
	height: auto !important;
	padding: 8px 12px !important;
	border-radius: 6px !important;
	background: var(--tp-ink) !important;
	box-shadow: 0 8px 20px -8px rgba(0, 0, 0, .45);
	opacity: 0 !important;
	visibility: hidden !important;
	transform: translate(-50%, 6px) !important;
	transition: opacity .15s ease, transform .15s ease, visibility .15s !important;
	pointer-events: none;
}

.pp-tm .pp-tm-overlay-content-wrap::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -6px;
	border: 6px solid transparent;
	border-top-color: var(--tp-ink);
}

.pp-tm .pp-tm-overlay-content-wrap .pp-tm-content {
	position: static !important;
	transform: none !important;
	padding: 0 !important;
}

.pp-tm-image:hover .pp-tm-overlay-content-wrap,
.pp-tm-wrapper:focus-within .pp-tm-overlay-content-wrap {
	opacity: 1 !important;
	visibility: visible !important;
	transform: translate(-50%, 0) !important;
}

.pp-tm .pp-tm-overlay-content-wrap .pp-tm-description p {
	font-size: 12.5px !important;
	line-height: 1.45 !important;
	text-align: center;
}

/* Touch screens have no hover: show the role as a caption under the photo instead */
@media (hover: none) {
	.pp-tm .pp-tm-overlay-content-wrap {
		position: static !important;
		width: auto !important;
		max-width: none;
		margin-top: 10px;
		padding: 0 !important;
		background: transparent !important;
		box-shadow: none;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}

	.pp-tm .pp-tm-overlay-content-wrap::after {
		display: none;
	}

	.pp-tm .pp-tm-overlay-content-wrap .pp-tm-description p {
		color: var(--tp-muted) !important;
	}
}

.pp-tm .pp-tm-overlay-content-wrap .pp-tm-content,
.pp-tm .pp-tm-overlay-content-wrap .pp-tm-description,
.pp-tm .pp-tm-overlay-content-wrap::before {
	background: transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.tp-more-pubs summary {
	display: inline-block;
	margin: 12px 0 4px;
	padding: 8px 14px;
	border: 1px solid var(--tp-line);
	border-radius: 4px;
	color: var(--tp-maroon);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.tp-more-pubs[open] summary {
	display: none;
}

.tp-more-pubs .tp-pubs li:first-child {
	padding-top: 16px;
}

/* ---------- Front page social block on phones ---------- */
@media (max-width: 767px) {
	.tp-ig-band .tp-h2 .elementor-heading-title {
		font-size: 24px !important;
	}

	.tp-social > .e-con {
		padding: 16px !important;
	}

	.tp-social__head {
		margin-bottom: 12px;
	}

	.tp-social__name .elementor-heading-title {
		font-size: 17px !important;
	}

	/* Instagram's profile embed is ~190px of header/footer plus a 3×2 grid of squares:
	   size the frame to its content instead of a fixed 520px. */
	.tp-social .tp-ig-wrap .tp-ig iframe {
		height: calc((100vw - 74px) * .667 + 190px) !important;
		min-height: 360px;
	}

	/* Latest videos: one large card, then compact rows (thumbnail + title). */
	.tp-yt-list {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.tp-yt-list li:not(.is-first) a {
		display: grid;
		grid-template-columns: 112px minmax(0, 1fr);
		align-items: center;
		gap: 10px;
	}

	.tp-yt-list li:not(.is-first) .tp-yt-list__text {
		margin-top: 0;
	}

	.tp-yt-list__text strong {
		font-size: 13.5px;
	}

	/* Two equal buttons side by side */
	.tp-yt-cta .elementor-widget-container {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
	}

	.tp-yt__profile {
		padding: 10px 8px;
		font-size: 13.5px;
		text-align: center;
	}
}

@media (max-width: 767px) {
	.tp-yt__profile {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
		line-height: 1.3;
	}
}

/* Phones: stacked columns must size to their content. With Elementor's mobile flex-wrap
   default, a flex-basis of 0/% in a column layout makes WebKit (Safari, iOS Firefox/Chrome)
   cap the height and wrap children into a second column off-screen. */
@media (max-width: 767px) {
	.tp-social > .e-con,
	.tp-rs-split > .e-con,
	.tp-archive > .e-con,
	.tp-contact-grid > .e-con,
	.tp-split > .e-con,
	.tp-split > .elementor-widget,
	.tp-mk-band > .e-con,
	.tp-bidang__top > .e-con {
		flex: 0 0 auto !important;
		width: 100% !important;
	}

	.tp-social,
	.tp-social > .e-con,
	.tp-rs-split,
	.tp-rs-split > .e-con,
	.tp-rs-block,
	.tp-rs-main,
	.tp-rs-intro,
	.tp-split,
	.tp-split__main,
	.tp-contact-grid,
	.tp-contact-grid > .e-con,
	.tp-archive,
	.tp-archive > .e-con,
	.tp-card,
	.tp-icard,
	.tp-kk-card__body,
	.tp-head,
	.tp-bidang__top {
		flex-wrap: nowrap !important;
	}
}

/* OceanWP mobile menu panel: keep its close icon from widening the page while hidden */
.sidr {
	overflow-x: hidden;
}

/* Tables pasted from Excel (lecturer bio data) carry fixed column widths: on phones the table
   scrolls inside its own box instead of widening the page */
@media (max-width: 767px) {
	.elementor-widget-text-editor table {
		display: block;
		max-width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}
