@charset "utf-8";
/**
 * NAZ Framework - Navigation Styles
 *
 * Purpose: Core navigation CSS for desktop and mobile menus.
 *          This is a FRAMEWORK file — deployed to all client sites.
 *          Do NOT put site-specific styles here; override via master CSS
 *          or by redefining the CSS custom properties below.
 *
 * File Type: FRAMEWORK - Always overwritten during upgrades.
 *
 * @package    NAZ Framework
 * @version    1.1.0
 * @date       2026-03-10
 *
 * CUSTOMIZATION:
 * Override these CSS variables in your site's master CSS to change
 * nav colors without editing this file:
 *
 *   :root {
 *       --naz-nav-link-color: #ffffff;
 *       --naz-nav-hover-border: #1377b8;
 *       --naz-nav-dropdown-bg: #ffffff;
 *       --naz-nav-dropdown-link-color: #000000;
 *       --naz-nav-dropdown-hover-border: #1377b8;
 *       --naz-nav-mobile-bg: #ffffff;
 *       --naz-nav-mobile-link-color: #000000;
 *       --naz-nav-mobile-border-color: #cccccc;
 *       --naz-nav-active-border: #1377b8;
 *   }
 */

/* ============================================================================
   CSS CUSTOM PROPERTIES — Override these in your site's master CSS
   ============================================================================ */
:root {
	--naz-nav-link-color: rgba(255,255,255,1);
	--naz-nav-link-shadow: 0 2px 2px rgba(0,0,0,1);
	--naz-nav-hover-border: #1377b8;
	--naz-nav-active-border: #1377b8;
	--naz-nav-dropdown-bg: rgba(255,255,255,1);
	--naz-nav-dropdown-shadow: 0px 5px 5px rgba(0,0,0,.5);
	--naz-nav-dropdown-link-color: rgba(0,0,0,1);
	--naz-nav-dropdown-hover-border: #1377b8;
	--naz-nav-mobile-bg: rgba(255,255,255,1);
	--naz-nav-mobile-link-color: rgba(0,0,0,1);
	--naz-nav-mobile-border-color: #cccccc;
	--naz-nav-overlay-bg: rgba(0,0,0,.6);
}

/* ============================================================================
   MOBILE-FIRST BASE STYLES (300px+)
   ============================================================================ */
@media (min-width: 300px) {

	/* ---- Hide desktop nav on mobile, show hamburger ---- */
	.full-nav {
		display: none;
	}

	/* ---- Hamburger / Open Button ---- */
	.open-nav {
		padding-top: 15px;
	}
	.open-nav .fas {
		font-size: 30px;
		cursor: pointer;
	}

	/* ---- Shared Nav List ---- */
	.navbar-nav .nav {
		display: flex;
	}
	.navbar-nav {
		flex-direction: row;
	}
	.navbar-nav li {
		list-style: none;
		flex-grow: 1;
		width: 100%;
		text-align: left;
	}
	.navbar-nav li a {
		margin: 0;
		display: block;
		letter-spacing: 0px;
		margin-bottom: 2px;
		font-weight: 400;
		padding: 10px 10px;
		text-decoration: none !important;
		color: var(--naz-nav-mobile-link-color);
	}
	.navbar-nav ul li a:hover {
		margin-bottom: 0px;
		border-bottom: solid 2px var(--naz-nav-hover-border);
	}
	.navbar-nav .dropdown-menu a:hover {
		margin-bottom: 0px;
		border-bottom: solid 2px #FFFFFF;
	}

	/* ---- Active State ---- */
	.nb-active {
		border-bottom: solid 2px var(--naz-nav-active-border);
	}
	.sub-dropdown .nb-active {
		border-bottom: solid 2px #FFFFFF;
	}

	/* ---- Mobile Slide-Out Nav ---- */
	.mobile-nav {
		background: var(--naz-nav-mobile-bg);
		position: absolute;
		z-index: 250;
		top: 0;
		left: 0;
		display: none;
		overflow: hidden;
		width: 90%;
		height: auto;
		padding-right: 5px;
		padding-left: 5px;
		padding-bottom: 15px;
		border-bottom-right-radius: 5px;
		box-shadow: 0 2px 4px rgba(0,0,0,.3);
	}
	.mobile-nav ul {
		width: 100%;
	}
	.mobile-nav li {
		padding: 10px;
		border-bottom: solid 1px var(--naz-nav-mobile-border-color);
	}
	.mobile-nav li a,
	.mobile-contact-button {
		font-size: 5vw;
	}
	.mobile-nav li a span {
		font-size: 16px;
		padding-left: 15px;
	}
	.mobile-nav li a i {
		font-size: 16px;
		padding-left: 15px;
		width: 25px;
		text-align: center;
	}

	/* ---- Mobile Nav Header (close button, phone) ---- */
	.mobile-nav-top .close-nav {
		cursor: pointer;
		text-align: right;
		padding-right: 5px;
		padding-top: 5px;
	}
	.mobile-nav-top .close-nav i {
		font-size: 25px;
		font-weight: bold;
	}
	.mobile-nav-phone {
		padding-left: 30px;
		padding-top: 4px;
	}
	.mobile-nav-phone a {
		text-decoration: none;
		color: var(--naz-nav-mobile-link-color);
		font-size: 19px;
	}

	/* ---- Overlay (behind mobile nav) ---- */
	.site-cover {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 149;
		width: 100%;
		height: 100vh;
		background: var(--naz-nav-overlay-bg);
		display: none;
	}
}

/* ============================================================================
   SMALL TABLETS (576px+)
   ============================================================================ */
@media (min-width: 576px) {
	.mobile-nav li a {
		font-size: 3vw;
	}
}

/* ============================================================================
   DESKTOP NAV (768px+)
   ============================================================================ */
@media (min-width: 768px) {

	/* Hide mobile nav elements on desktop, show desktop nav */
	.site-nav-mobile {
		display: none;
	}
	.full-nav {
		display: block;
	}
	.open-nav {
		display: none;
	}

	/* ---- Site Nav Container ---- */
	.site-nav {
		display: flex;
		padding-top: 15px;
		padding-bottom: 15px;
		position: absolute;
		top: 0;
		width: 100%;
	}

	/* ---- Desktop Nav Holder ---- */
	.dnh {
		padding-top: 15px;
	}
	.full-nav {
		z-index: 25;
	}
	.full-nav ul li {
		width: auto;
		text-align: center;
	}
	.full-nav span {
		font-size: inherit;
	}

	/* ---- Top-Level Links ---- */
	.full-nav ul li a {
		font-size: 1vw;
		font-weight: 200;
		padding: 10px 10px;
		margin: 0 0 2px 0;
		display: block;
		letter-spacing: 0px;
		text-align: center;
		color: var(--naz-nav-link-color);
		text-shadow: var(--naz-nav-link-shadow);
	}
	.full-nav ul li a:hover {
		margin-bottom: 0px;
		border-bottom: solid 2px var(--naz-nav-hover-border);
	}

	/* ---- Active States ---- */
	.full-nav ul li .active {
		border-bottom: solid 2px var(--naz-nav-active-border);
	}
	.full-nav .sub-dropdown ol li .active {
		border-bottom: solid 2px #FFFFFF;
	}

	/* ---- Dropdown Menus ---- */
	.sub-dropdown ol {
		display: none;
		min-width: 15rem;
		background-color: var(--naz-nav-dropdown-bg);
		box-shadow: var(--naz-nav-dropdown-shadow);
		position: absolute;
	}
	.sub-dropdown ol li a {
		color: var(--naz-nav-dropdown-link-color);
	}
	.full-nav ul ol {
		padding: 2px;
		list-style: none;
	}
	.full-nav ul ol a {
		margin-bottom: 2px;
	}
	.full-nav ul ol a:hover {
		margin-bottom: 0px;
		border-bottom: solid 2px var(--naz-nav-dropdown-hover-border);
	}

	/* ---- Dropdown Link Styles ---- */
	.full-nav .sub-dropdown ol li a {
		color: var(--naz-nav-dropdown-link-color);
		text-align: left;
		margin-bottom: 2px;
		white-space: nowrap;
		overflow: hidden;
		text-shadow: none;
	}
	.full-nav .sub-dropdown ol li a:hover {
		border-bottom: solid 2px var(--naz-nav-dropdown-hover-border);
	}

	/* ---- Nested Dropdown (3rd level) ---- */
	.sub-dropdown ol .sub-dropdown ol {
		margin-top: -12%;
		left: 75%;
		overflow: hidden;
		position: absolute;
	}
}
