@charset "utf-8";
/* CSS Document */
/* ==========================================================================
   MOBILE MENU
   ========================================================================== */

/*
|--------------------------------------------------------------------------
| Mobile Menu Wrapper
|--------------------------------------------------------------------------
*/

.tc-mobile-menu {
	position: fixed;
	inset: 0;

	z-index: 9999;

	pointer-events: none;
	visibility: hidden;
}

/*
|--------------------------------------------------------------------------
| Active State
|--------------------------------------------------------------------------
*/

.tc-mobile-menu.is-open {
	pointer-events: auto;
	visibility: visible;
}

/*
|--------------------------------------------------------------------------
| Overlay
|--------------------------------------------------------------------------
*/

.tc-mobile-menu__overlay {
	position: absolute;
	inset: 0;

	background: rgba(17, 17, 17, .55);

	opacity: 0;

	transition: opacity var(--tc-transition);
}

.tc-mobile-menu.is-open .tc-mobile-menu__overlay {
	opacity: 1;
}

/*
|--------------------------------------------------------------------------
| Panel
|--------------------------------------------------------------------------
*/

.tc-mobile-menu__panel {
	position: absolute;

	top: 0;
	left: 0;

	display: flex;
	flex-direction: column;

	width: min(360px, 90vw);
	height: 100%;

	background: var(--tc-white);

	box-shadow: var(--tc-shadow-lg);

	transform: translateX(-100%);

	transition: transform .35s ease;
}

.tc-mobile-menu.is-open .tc-mobile-menu__panel {
	transform: translateX(0);
}

/*
|--------------------------------------------------------------------------
| Header
|--------------------------------------------------------------------------
*/

.tc-mobile-menu__header {
	display: flex;
	align-items: center;
	justify-content: space-between;

	padding: 1.25rem;

	border-bottom: 1px solid var(--tc-gray-200);
}

.tc-mobile-menu__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 42px;
	height: 42px;

	border-radius: 50%;

	color: var(--tc-gray-700);

	transition:
		background-color var(--tc-transition),
		color var(--tc-transition),
		transform var(--tc-transition);
}

.tc-mobile-menu__close:hover {
	background: var(--tc-gray-100);
	color: var(--tc-primary);
	transform: rotate(90deg);
}

.tc-mobile-menu__close span {
	font-size: 1.75rem;
	line-height: 1;
}

/*
|--------------------------------------------------------------------------
| Navigation
|--------------------------------------------------------------------------
*/

.tc-mobile-menu__navigation {
	flex: 1;
	overflow-y: auto;

	padding: 1rem 0;
}

/*
|--------------------------------------------------------------------------
| Menu
|--------------------------------------------------------------------------
*/

.tc-mobile-nav {
	display: flex;
	flex-direction: column;
}

.tc-mobile-nav > li {
	border-bottom: 1px solid var(--tc-gray-100);
}

.tc-mobile-nav a {
	display: flex;
	align-items: center;
	justify-content: space-between;

	padding: 1rem 1.5rem;

	font-weight: var(--tc-fw-medium);

	color: var(--tc-gray-800);

	transition:
		background-color var(--tc-transition),
		color var(--tc-transition);
}

.tc-mobile-nav a:hover {
	background: var(--tc-gray-50);
	color: var(--tc-primary);
}

/*
|--------------------------------------------------------------------------
| Submenus
|--------------------------------------------------------------------------
*/

.tc-mobile-nav .sub-menu {
	max-height: 0;
	overflow: hidden;
	transition: max-height .3s ease;

	background: var(--tc-gray-50);
}

.tc-mobile-nav .sub-menu.is-open {
	display: block;
	max-height: 1000px;
}

.tc-mobile-nav .sub-menu a {
	padding-left: 2.75rem;

	font-size: var(--tc-text-sm);
}

.tc-mobile-nav .sub-menu .sub-menu a {
	padding-left: 4rem;
}

/*
|--------------------------------------------------------------------------
| Footer
|--------------------------------------------------------------------------
*/

.tc-mobile-menu__footer {
	padding: 1.25rem;

	border-top: 1px solid var(--tc-gray-200);
}

.tc-mobile-menu__cta {
	width: 100%;
}

/*
|--------------------------------------------------------------------------
| Scrollbar
|--------------------------------------------------------------------------
*/

.tc-mobile-menu__navigation::-webkit-scrollbar {
	width: 6px;
}

.tc-mobile-menu__navigation::-webkit-scrollbar-thumb {
	background: var(--tc-gray-400);
	border-radius: var(--tc-radius-full);
}

/*
|--------------------------------------------------------------------------
| Body Lock
|--------------------------------------------------------------------------
*/

body.tc-menu-open {
	overflow: hidden;
}

/*
|--------------------------------------------------------------------------
| Desktop
|--------------------------------------------------------------------------
*/

@media (min-width: 992px) {

	.tc-mobile-menu {
		display: none;
	}

}


/* Premium mobile navigation */
.tc-mobile-menu__panel { width: min(390px, 92vw); background: linear-gradient(180deg, #fff 0%, #fffaf7 100%); }
.tc-mobile-menu__header { padding: 1rem 1.25rem; background: #fff; border-bottom-color: rgba(15,23,42,.08); }
.tc-mobile-menu__header .tc-logo__image { max-height: 52px; }
.tc-mobile-menu__close { width: 40px; height: 40px; border: 1px solid rgba(15,23,42,.1); background: #fff; }
.tc-mobile-menu__navigation { padding: .75rem 1rem; }
.tc-mobile-nav > li { border-bottom: 1px solid rgba(15,23,42,.08); }
.tc-mobile-nav > li:last-child { border-bottom: 0; }
.tc-mobile-nav a { padding: 1rem .5rem; color: #263244; font-size: 1rem; font-weight: 700; }
.tc-mobile-nav a:hover { background: transparent; color: var(--tc-primary); }
.tc-mobile-nav .sub-menu { margin: 0 -.5rem; background: rgba(236,105,31,.06); border-radius: 12px; }
.tc-mobile-nav .sub-menu a { padding: .8rem 1rem .8rem 1.25rem; font-size: .9rem; }
.tc-mobile-nav .menu-item-has-children { position: relative; }
.tc-submenu-toggle { position: absolute; top: .6rem; right: .25rem; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(236,105,31,.08); color: var(--tc-primary); }
.tc-submenu-toggle span { width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .3s ease; }
.tc-mobile-nav .is-expanded > .tc-submenu-toggle span { transform: rotate(225deg) translate(-1px, -1px); }
.tc-mobile-menu__footer { padding: 1.25rem; border-top-color: rgba(15,23,42,.08); }
/* Mobile menu reliability and touch refinement */
.tc-mobile-menu {
	z-index: 10000;
	isolation: isolate;
}

.tc-mobile-menu__panel {
	top: 0;
	bottom: 0;
	height: 100dvh;
	max-height: 100dvh;
	overflow: hidden;
	-webkit-overflow-scrolling: touch;
}

.tc-mobile-menu__overlay {
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.tc-mobile-menu__navigation {
	min-height: 0;
	overscroll-behavior: contain;
}

.tc-mobile-nav a,
.tc-submenu-toggle,
.tc-mobile-menu__close,
.tc-mobile-menu__cta {
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
}

.tc-mobile-nav > li > a {
	min-height: 52px;
}

.tc-mobile-nav .sub-menu {
	visibility: hidden;
}

.tc-mobile-nav .sub-menu.is-open,
.tc-mobile-nav .is-expanded > .sub-menu {
	visibility: visible;
}

@media (max-width: 991px) {
	.tc-header.is-hidden:has(.tc-mobile-menu.is-open) {
		transform: none;
	}
}
/* Final mobile header fixes */
@media (max-width: 991px) {
	.tc-header-actions__toggle {
		display: inline-flex !important;
		flex: 0 0 42px;
		width: 42px;
		height: 42px;
		min-width: 42px;
		padding: 0;
		border: 1px solid rgba(15,23,42,.14);
		border-radius: 50%;
		background: #fff;
		color: #263244 !important;
		box-shadow: 0 4px 12px rgba(15,23,42,.06);
	}

	.tc-header-actions__toggle span {
		display: block !important;
		width: 18px !important;
		height: 2px !important;
		margin: 2px auto !important;
		border: 0 !important;
		border-radius: 999px !important;
		background: #263244 !important;
		opacity: 1 !important;
		visibility: visible !important;
	}

	/* The circular submenu button is the only arrow on mobile. */
	.tc-mobile-nav .menu-item-has-children > a::after {
		display: none !important;
		content: none !important;
	}
}