/* Shared navy / yellow / white theme for departments, fees, tables */
:root {
	--pm-navy: #144181;
	--pm-navy-deep: #1a365d;
	--pm-navy-hover: #2c5282;
	--pm-yellow: #f1c40f;
	--pm-lime: #d6e64c;
	--pm-ink: #14201a;
	--pm-mute: #333333;
	--pm-paper: #ffffff;
	--pm-sand: #f4f6f9;
	--pm-zebra: #e6e6e6;
	--pm-zebra-alt: #d1d5d8;
	--pm-border: #95a5a6;
}

.pm-underline {
	position: relative;
	display: inline-block;
}
.pm-underline::after {
	content: "";
	display: block;
	width: 4.5rem;
	height: 3px;
	margin-top: 0.55rem;
	background: linear-gradient(90deg, var(--pm-navy), var(--pm-yellow));
	border-radius: 2px;
}

.pm-section-title {
	font-family: "Abhaya Libre", Georgia, "Palatino Linotype", serif;
	font-size: 2rem;
	font-weight: 700;
	color: var(--pm-navy);
	margin-bottom: 0.45rem;
	letter-spacing: -0.01em;
}
.pm-section-title.pm-underline::after {
	margin-top: 0.55rem;
}

/* Pacesetters-style floating contact */
.floating-contact-button {
	position: fixed;
	right: 18px;
	bottom: 22px;
	z-index: 1000000000;
	background: var(--pm-navy-deep);
	border: 2px solid var(--pm-lime);
	border-radius: 14px;
	box-shadow: 0 10px 28px rgba(26, 54, 93, 0.35);
	overflow: hidden;
	min-width: 220px;
	animation: floatButton 3.2s ease-in-out infinite;
}
.floating-button-content {
	display: flex;
	flex-direction: column;
}
.float-call-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	padding: 0.85rem 1.1rem 0.7rem;
	background: var(--pm-navy-deep);
	color: var(--pm-lime);
	text-decoration: none !important;
	border-bottom: 1px solid rgba(214, 230, 76, 0.55);
}
.float-call-btn:hover,
.float-call-btn:focus {
	background: var(--pm-navy-hover);
	color: var(--pm-lime);
	text-decoration: none !important;
}
.float-call-icon {
	color: #fff;
	font-size: 1.1rem;
}
.float-call-number {
	color: var(--pm-lime);
	font-weight: 800;
	font-size: 1.05rem;
	letter-spacing: 0.02em;
	white-space: nowrap;
}
.float-apply-btn {
	display: block;
	text-align: center;
	padding: 0.85rem 1.1rem 0.95rem;
	color: var(--pm-lime) !important;
	font-weight: 800;
	font-size: 1.1rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none !important;
	background: var(--pm-navy-deep);
}
.float-apply-btn:hover,
.float-apply-btn:focus {
	background: var(--pm-navy-hover);
	color: var(--pm-lime) !important;
	text-decoration: none !important;
}
@keyframes floatButton {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-8px); }
}
@media (max-width: 768px) {
	.floating-contact-button {
		right: 10px;
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		min-width: 200px;
	}
	.float-call-number { font-size: 0.98rem; }
	.float-apply-btn { font-size: 1.02rem; }
}

/* Fee tables — yellow header, navy labels, zebra amounts */
.dept-hub-fees .fees-section-title,
.dept-hub-fees .fees-session-title {
	color: var(--pm-navy) !important;
	text-decoration: none !important;
}
.dept-hub-fees .fees-section-title.pm-underline::after {
	content: "";
	display: block;
	width: 4.5rem;
	height: 3px;
	margin-top: 0.55rem;
	background: linear-gradient(90deg, var(--pm-navy), var(--pm-yellow));
}
.dept-hub-fees .fees-session-title {
	font-size: 2.15rem !important;
	margin: 0 0 0.55rem !important;
}
.dept-hub-fees .fees-stream-heading {
	color: var(--pm-navy) !important;
	text-transform: none !important;
	font-size: 1.45rem !important;
	margin: 0 0 0.45rem !important;
}
.dept-hub-fees .fees-stream-card {
	background: #eef2f8 !important;
	margin: 1.75rem 0 1.25rem !important;
}
.dept-hub-fees .fees-stream-card.jan-feb {
	background: #f7f9fc !important;
}
.dept-hub-fees th.amount,
.dept-hub-fees td.amount {
	text-align: right;
}
.dept-hub-fees .fees-prereq {
	background: #eef2f8 !important;
	border-color: #c5d0e0 !important;
	color: var(--pm-ink);
}
.dept-hub-fees .fees-prereq h4,
.dept-hub-fees .fees-prereq strong {
	color: var(--pm-navy);
}
.dept-hub-fees th {
	background: var(--pm-yellow) !important;
	color: #000 !important;
	border-color: var(--pm-border) !important;
	font-size: 1.05rem !important;
}
.dept-hub-fees td {
	font-size: 1.05rem !important;
	color: var(--pm-ink);
	border-color: var(--pm-border) !important;
}
.dept-hub-fees td.amount,
.dept-hub-fees .fee-amt {
	font-size: 1.35rem !important;
	font-weight: 800;
}
.dept-hub-fees tbody tr:nth-child(even) td {
	background: var(--pm-zebra);
}
.dept-hub-fees tbody tr:nth-child(odd) td {
	background: #fff;
}
.dept-hub-fees .fees-extra-note {
	font-size: 1.25rem !important;
	font-weight: 800 !important;
	color: var(--pm-navy) !important;
}
@media (max-width: 768px) {
	.dept-hub-fees table.fees-compare td:first-child {
		background: var(--pm-navy) !important;
		color: #fff !important;
		font-size: 1.05rem !important;
	}
	.dept-hub-fees table.fees-compare td.amount,
	.dept-hub-fees table.fees-compare .fee-amt {
		font-size: 1.28rem !important;
		font-weight: 800;
	}
	.dept-hub-fees table.fees-compare td.amount::before {
		font-size: 0.78rem !important;
		color: #555 !important;
	}
}
