/* ===========================
   FIMBank Blended Menu Styles - Single Menu for Desktop & Mobile
   Works with <nav class="fimbank-navbar"> structure
   Compatible with Bootstrap 3 existing styles
========================== */

/* ===========================
   ACCESSIBILITY - WCAG AAA COMPLIANCE
========================== */

/* Skip Link for Keyboard Navigation */
.sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border-width: 0 !important;
}

.sr-only-focusable:focus {
	position: static !important;
	width: auto !important;
	height: auto !important;
	padding: 10px 20px !important;
	margin: 0 !important;
	overflow: visible !important;
	clip: auto !important;
	white-space: normal !important;
	background-color: var(--fim-navy) !important;
	color: white !important;
	text-decoration: none !important;
	z-index: 100000 !important;
	display: block !important;
}

/* Focus Visible for Keyboard Navigation */
*:focus-visible {
	outline: 2px solid var(--fim-navy) !important;
	outline-offset: 2px !important;
}

:root {
	--fim-navy: #0b1f42;
	--fim-text: #333333;
	--fim-text-light: #666666;
	--fim-border: #e0e0e0;
	--fim-bg-light: #f9f9f9;
}

/* Reset all Bootstrap 3 defaults that conflict */
* {
	box-sizing: border-box !important;
}

/* Body and typography overrides */
html {
	height: 100% !important;
}

html,
body {
	font-family: "Lato", sans-serif !important;
	font-size: 16px !important;
	line-height: 1.5 !important;
	color: #333333 !important;
	-webkit-font-smoothing: antialiased !important;
	-moz-osx-font-smoothing: grayscale !important;
}

body {
	min-height: 100% !important;
	display: flex !important;
	flex-direction: column !important;
	padding-top: 70px !important;
	background-color: #fff !important;
	overflow-x: hidden !important;
}

	body.blended-body {
		margin: 0 auto;
		width: 100%;
	}

		body.blended-body .container {
			width: 100% !important;
			padding: 0 20px !important;
		}

/* Make main content grow to push footer down */
main,
#main-content {
	flex: 1 0 auto !important;
}

/* Footer stays at bottom */
footer.footer {
	flex-shrink: 0 !important;
}

/* Main Navbar */
.fimbank-navbar {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	background-color: white !important;
	border-bottom: 1px solid var(--fim-border) !important;
	z-index: 1030 !important;
	padding: 0 !important;
}

	.fimbank-navbar .navbar-content {
		max-width: 1400px !important;
		margin: 0 auto !important;
		padding: 0 20px !important;
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		height: 70px !important;
	}

	/* Logo */
	.fimbank-navbar .navbar-logo {
		display: flex !important;
		align-items: center !important;
	}

		.fimbank-navbar .navbar-logo img {
			height: 40px !important;
			width: auto !important;
		}

a.navbar-logo img {
	max-width: 110px;
}

/* Main Menu - Hidden by default, shown on desktop */
.fimbank-navbar .navbar-menu {
	display: none !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	gap: 5px !important;
}

	/* Hide navbar-actions inside menu by default (desktop) */
	.fimbank-navbar .navbar-menu > .navbar-actions {
		display: none !important;
	}

/* Desktop Menu Items */
.fimbank-navbar .menu-item {
	position: relative !important;
}

.fimbank-navbar .menu-link {
	display: flex !important;
	align-items: center !important;
	gap: 5px !important;
	padding: 8px 16px !important;
	color: var(--fim-text) !important;
	text-decoration: none !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	transition: color 0.3s !important;
}

	.fimbank-navbar .menu-link:hover {
		color: var(--fim-navy) !important;
	}

	.fimbank-navbar .menu-link i {
		font-size: 10px !important;
		transition: transform 0.3s !important;
	}

.fimbank-navbar .menu-item.active .menu-link i {
	transform: rotate(180deg) !important;
}

/* Desktop Mega Menu */
.fimbank-navbar .mega-menu {
	position: fixed !important;
	top: 70px !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	background: white !important;
	border-top: 1px solid var(--fim-border) !important;
	border-bottom: 1px solid var(--fim-border) !important;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1) !important;
	opacity: 0 !important;
	visibility: hidden !important;
	transition: opacity 0.3s, visibility 0.3s !important;
	z-index: 999 !important;
}

.fimbank-navbar .menu-item.active .mega-menu,
.fimbank-navbar .menu-item:hover .mega-menu {
	opacity: 1 !important;
	visibility: visible !important;
}

.fimbank-navbar .mega-menu-content {
	max-width: 1400px !important;
	margin: 0 auto !important;
	padding: 40px 20px !important;
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 40px !important;
}

.fimbank-navbar .mega-menu-two-column .mega-menu-content {
	grid-template-columns: repeat(2, 1fr) !important;
	max-width: 900px !important;
}

.fimbank-navbar .mega-menu-column h4 {
	color: var(--fim-navy) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	margin: 0 0 8px 0 !important;
}

.fimbank-navbar .mega-menu-column .menu-description {
	color: var(--fim-text-light) !important;
	font-size: 13px !important;
	margin-bottom: 16px !important;
	line-height: 1.4 !important;
	font-weight: 400 !important;
}

.fimbank-navbar .mega-menu-column ul {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

	.fimbank-navbar .mega-menu-column ul li {
		margin-bottom: 8px !important;
	}

		.fimbank-navbar .mega-menu-column ul li a {
			color: var(--fim-text) !important;
			font-size: 14px !important;
			font-weight: 400 !important;
			text-decoration: none !important;
			transition: color 0.2s !important;
			display: block !important;
		}

			.fimbank-navbar .mega-menu-column ul li a:hover {
				color: var(--fim-navy) !important;
				text-decoration: underline !important;
			}

/* Desktop Actions - Search and Login */
.fimbank-navbar .navbar-actions {
	display: none !important;
	align-items: center !important;
	gap: 15px !important;
}

.fimbank-navbar .search-box {
	display: flex !important;
	align-items: center !important;
	border: 1px solid var(--fim-border) !important;
	border-radius: 4px !important;
	padding: 0 !important;
	background: white !important;
}

.fimbank-navbar .search-input {
	border: none !important;
	outline: none !important;
	padding: 8px 12px !important;
	font-size: 14px !important;
	width: 180px !important;
	background: transparent !important;
}

	.fimbank-navbar .search-input::placeholder {
		color: #999 !important;
	}

.fimbank-navbar .search-button {
	background: transparent !important;
	border: none !important;
	padding: 8px 12px !important;
	cursor: pointer !important;
	color: var(--fim-text) !important;
	transition: color 0.3s !important;
}

	.fimbank-navbar .search-button:hover {
		color: var(--fim-navy) !important;
	}

.fimbank-navbar .btn-login {
	background-color: var(--fim-navy) !important;
	color: white !important;
	padding: 10px 24px !important;
	border-radius: 4px !important;
	text-decoration: none !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	transition: background-color 0.3s !important;
	display: inline-block !important;
}

	.fimbank-navbar .btn-login:hover {
		background-color: #1a3b70 !important;
		color: white !important;
	}

/* Mobile Menu Toggle */
.fimbank-navbar .mobile-menu-toggle {
	display: flex !important;
	flex-direction: column !important;
	justify-content: space-between !important;
	width: 24px !important;
	height: 18px !important;
	background: transparent !important;
	border: none !important;
	cursor: pointer !important;
	padding: 0 !important;
}

	.fimbank-navbar .mobile-menu-toggle .hamburger-icon {
		width: 100% !important;
		height: 2px !important;
		background-color: var(--fim-navy) !important;
		transition: all 0.3s !important;
		border-radius: 2px !important;
	}

	.fimbank-navbar .mobile-menu-toggle.active .hamburger-icon:nth-child(1) {
		transform: rotate(45deg) translate(6px, 6px) !important;
	}

	.fimbank-navbar .mobile-menu-toggle.active .hamburger-icon:nth-child(2) {
		opacity: 0 !important;
	}

	.fimbank-navbar .mobile-menu-toggle.active .hamburger-icon:nth-child(3) {
		transform: rotate(-45deg) translate(6px, -6px) !important;
	}

/* Mobile Overlay */
.fimbank-navbar .mobile-overlay {
	display: none !important;
	position: fixed !important;
	top: 70px !important;
	left: 0 !important;
	width: 100% !important;
	height: calc(100vh - 70px) !important;
	background-color: rgba(0, 0, 0, 0.5) !important;
	z-index: 998 !important;
	opacity: 0 !important;
	transition: opacity 0.3s !important;
}

	.fimbank-navbar .mobile-overlay.active {
		display: block !important;
		opacity: 1 !important;
	}

/* Desktop Breakpoint (992px and above) */
@media (min-width: 992px) {
	.fimbank-navbar .navbar-menu {
		display: flex !important;
	}

	.fimbank-navbar .navbar-actions {
		display: flex !important;
	}

	.fimbank-navbar .mobile-menu-toggle {
		display: none !important;
	}
}

/* Mobile and Tablet Styles (below 992px) */
@media (max-width: 991px) {
	/* Fix horizontal scrolling */
	html,
	body {
		overflow-x: hidden !important;
		max-width: 100vw !important;
	}

	body {
		padding-top: 60px !important;
	}

	.fimbank-navbar .navbar-content {
		height: 60px !important;
		padding: 10px 20px !important;
	}

	.fimbank-navbar .navbar-logo img {
		height: 26px !important;
	}

	/* Hide desktop actions on mobile */
	.fimbank-navbar .navbar-content > .navbar-actions {
		display: none !important;
	}

	/* Transform Main Menu for Mobile */
	.fimbank-navbar .navbar-menu {
		display: flex !important;
		position: fixed !important;
		top: 60px !important;
		left: -100% !important;
		width: 350px !important;
		max-width: 85vw !important;
		height: calc(100vh - 60px) !important;
		background-color: white !important;
		flex-direction: column !important;
		justify-content: flex-start !important;
		gap: 0 !important;
		overflow-y: auto !important;
		overflow-x: hidden !important;
		transition: left 0.3s ease-in-out !important;
		z-index: 999 !important;
		padding: 0 !important;
		box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1) !important;
	}

		.fimbank-navbar .navbar-menu.active {
			left: 0 !important;
		}

		/* Show navbar-actions inside mobile menu */
		.fimbank-navbar .navbar-menu > .navbar-actions {
			display: flex !important;
			flex-direction: column !important;
			gap: 15px !important;
			padding: 20px !important;
			border-bottom: 1px solid var(--fim-border) !important;
			order: -1 !important; /* Place at top */
			width: 100% !important;
		}

		.fimbank-navbar .navbar-menu .search-box {
			width: 100% !important;
		}

		.fimbank-navbar .navbar-menu .search-input {
			width: 100% !important;
			flex: 1 !important;
		}

		.fimbank-navbar .navbar-menu .btn-login {
			width: 100% !important;
			text-align: center !important;
		}

	/* Mobile Menu Items */
	.fimbank-navbar .menu-item {
		width: 100% !important;
		border-bottom: 1px solid var(--fim-border) !important;
	}

	.fimbank-navbar .menu-link {
		width: 100% !important;
		padding: 18px 20px !important;
		justify-content: space-between !important;
		font-size: 16px !important;
		font-weight: 500 !important;
	}

		.fimbank-navbar .menu-link i {
			font-size: 12px !important;
			margin-left: auto !important;
		}

	/* Mobile Mega Menu Transform */
	.fimbank-navbar .mega-menu {
		position: static !important;
		display: none !important;
		width: 100% !important;
		background-color: var(--fim-bg-light) !important;
		border: none !important;
		box-shadow: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		padding: 15px 20px !important;
		top: auto !important;
	}

	.fimbank-navbar .menu-item.active .mega-menu {
		display: block !important;
	}

	.fimbank-navbar .mega-menu-content {
		display: flex !important;
		flex-direction: column !important;
		gap: 20px !important;
		padding: 0 !important;
		grid-template-columns: none !important;
	}

	.fimbank-navbar .mega-menu-column h4 {
		font-size: 14px !important;
		margin-bottom: 10px !important;
	}

	.fimbank-navbar .menu-description {
		display: none !important;
	}

	.fimbank-navbar .mega-menu-column ul li {
		margin-bottom: 8px !important;
	}

		.fimbank-navbar .mega-menu-column ul li a {
			font-size: 13px !important;
			padding: 4px 0 !important;
		}
}

/* Prevent body scroll when mobile menu open */
body.menu-open {
	overflow: hidden !important;
}

/* Footer Overrides */
footer.footer {
	background-color: var(--fim-navy) !important;
	color: #fff !important;
	padding: 60px 0 30px 0 !important;
	font-size: 14px !important;
	border: none !important;
	margin: 0 !important;
	width: 100vw !important;
	position: relative !important;
	left: 50% !important;
	right: 50% !important;
	margin-left: -50vw !important;
	margin-right: -50vw !important;
}

	footer.footer .container {
		max-width: 1400px !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
		margin: 0 auto !important;
		width: 100% !important;
	}

	footer.footer a {
		color: #fff !important;
		margin: 0 12px !important;
		transition: color 0.3s;
		text-decoration: none !important;
		font-size: 14px !important;
	}

		footer.footer a:hover,
		footer.footer a:focus {
			color: #e7e7e7 !important;
			text-decoration: underline !important;
		}

/* Cookie Policy Banner */
.cookie-policy-container {
	display: none;
	position: fixed !important;
	bottom: 0 !important;
	left: 0 !important;
	right: 0 !important;
	background-color: white !important;
	border-top: 2px solid var(--fim-border) !important;
	box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1) !important;
	z-index: 1040 !important;
	padding: 20px 0 !important;
}

.cookie-policy-inner {
	max-width: 1400px !important;
	margin: 0 auto !important;
	padding: 0 20px !important;
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.cookie-policy-text {
	margin: 0 !important;
	font-size: 14px !important;
	color: var(--fim-text) !important;
}

.cookie-policy-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

	.cookie-policy-links .cookie-link {
		color: var(--fim-navy) !important;
		text-decoration: none !important;
		font-size: 13px !important;
		transition: color 0.3s;
	}

		.cookie-policy-links .cookie-link:hover {
			color: #1a3b70 !important;
			text-decoration: underline !important;
		}

	.cookie-policy-links .divider {
		color: var(--fim-text-light) !important;
		margin: 0 5px !important;
	}

.cookie-footer {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

	.cookie-footer .btn {
		padding: 10px 24px !important;
		border-radius: 4px !important;
		font-size: 13px !important;
		font-weight: 600 !important;
		border: none !important;
		cursor: pointer;
		transition: background-color 0.3s;
	}

	.cookie-footer .btn-secondary {
		background-color: #6c757d !important;
		color: white !important;
	}

		.cookie-footer .btn-secondary:hover {
			background-color: #5a6268 !important;
		}

	.cookie-footer .btn-primary.cookie-btn {
		background-color: var(--fim-navy) !important;
		color: white !important;
	}

		.cookie-footer .btn-primary.cookie-btn:hover {
			background-color: #1a3b70 !important;
		}

@media (min-width: 768px) {
	.cookie-policy-inner {
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
	}

	.cookie-footer {
		margin-left: auto;
	}
}

@media (max-width: 767px) {
	.cookie-policy-container {
		padding: 15px 0 !important;
	}

	.cookie-policy-inner {
		gap: 12px;
	}

	.cookie-footer .btn {
		width: 100% !important;
	}
}

/* Accessibility */
.fimbank-navbar .menu-link:focus,
.fimbank-navbar .btn-login:focus,
.fimbank-navbar .search-button:focus {
	outline: 2px solid var(--fim-navy) !important;
	outline-offset: 2px !important;
}

/* Print styles */
@media print {
	.fimbank-navbar,
	.cookie-policy-container {
		display: none !important;
	}

	body {
		padding-top: 0 !important;
	}
}
