@charset "utf-8";
/* =============================================================================
   CHLOE SPEAKS — MAIN STYLESHEET ("light" scroll state)
   File: assets/css/main-light.css

   COLOR SCHEME: transparent bar with navy (#242e5a) text initially, then
   on scroll becomes a solid WHITE bar with navy text/social/dropdown and a
   navy call-to-action button — i.e. this file's scrolled state is
   deliberately identical to main-dark.css's scrolled state (see section 0
   below and that file's header comment). The two stylesheets only differ
   in what the bar looks like BEFORE scrolling; once scrolled, both land on
   the same light/white look.

   This is the ACTIVE stylesheet linked from static-page.html. The
   alternate, main-dark.css, is not linked — see the commented-out <link>
   and explanation in the <head> of static-page.html for how to swap
   between the two.

   TABLE OF CONTENTS
     0.  Root variables (color/font state for both scroll states)
     1.  Base reset
     2.  Back to top button
     3.  Nav bar — shell, logo, scroll state
     4.  Nav links
     5.  Dropdown + mega menu ("submenu panel" system)
     6.  Social + call-to-action button
     7.  Hamburger (mobile menu toggle)
     8.  Desktop layout (logo / nav / social+CTA, 3-column grid)
     9.  Responsive — mobile accordion nav (<= 970px)
     10. WordPress content link colors
     11. Background images
     12. Scrollbar
     13. Page layout — footer, sticky sidebar, misc.
   ============================================================================= */

/* =============================================================================
   0. ROOT VARIABLES
   Every nav color is defined once here, then re-defined on .scrolling-active
   for the scrolled state. Because CSS custom properties inherit down the DOM,
   every rule below that reads var(--nav-ink), var(--cta-bg), etc. updates
   automatically in both states — there is no second "scrolled" copy of any
   rule elsewhere in this file.
   ============================================================================= */
:root {
	/* --- Color state: INITIAL (unscrolled) --- */
	--nav-bg:      transparent; /* nav bar background                    */
	--nav-ink:     #242e5a;     /* nav link text + social icon color     */
	--cta-bg:      #242e5a;     /* call-to-action button background      */
	--cta-ink:     #fff;        /* call-to-action button text            */
	--submenu-bg:  #fff;        /* dropdown / mega menu background       */
	                            /* (dropdown / mega text reuses --nav-ink) */

	/* --- Logo (nav.js reads these — see its header comment). Both states
	   use logo.svg here — the scrolled state now matches main-dark.css's
	   scrolled state, which also uses logo.svg, so there's no swap left
	   to make. --logo-swap is kept at 1 for consistency with main-dark.css;
	   it's a no-op while both paths point at the same file.
	   NOTE: these hold FILENAMES only, not paths — see nav.js for why. */
	--logo-initial:  'logo.svg'; /* shown before scrolling */
	--logo-scrolled: 'logo.svg'; /* shown once scrolled    */
	--logo-swap: 1;

	/* --- Structural (same in both scroll states) --- */
	--nav-divider-color: rgba(128, 128, 128, 0.25); /* mega column / social dividers */
	--nav-underline:     rgba(106, 106, 106, 1.0);  /* animated hover underline      */
	--nav-shadow:        rgba(0, 0, 0, 0.22);       /* drop shadow once scrolled     */
	--nav-breakpoint:    970px;                     /* single mobile/desktop split   */

	/* --- Typography --- */
	--font-body: 'Poppins', sans-serif; /* rest of the site   */
	--font-nav:  'Inter', sans-serif;   /* nav bar (see below) */
}

/* --- Color state: SCROLLED —
   matches main-dark.css's .scrolling-active block exactly, on request. --- */
.scrolling-active {
	--nav-bg:     #fff;
	--nav-ink:    #242e5a;
	--cta-bg:     #242e5a;
	--cta-ink:    #fff;
	--submenu-bg: #fff;
}

/* =============================================================================
   1. BASE RESET
   ============================================================================= */
html {
	scroll-behavior: smooth;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: var(--font-body);
}

/* The nav bar (and everything inside it) uses Inter; the rest of the site
   keeps Poppins. "nav *" beats the "*" reset above because it's more
   specific, so this single rule is all that's needed to scope the font. */
nav,
nav * {
	font-family: var(--font-nav);
}

ol, ul {
	padding-bottom: 0px !important;
}

/* =============================================================================
   2. BACK TO TOP BUTTON
   ============================================================================= */
#myBtn {
	display: none;
	position: fixed;
	bottom: 20px;
	right: 30px;
	z-index: 99;
	font-size: 1em;
	border: none;
	outline: none;
	cursor: pointer;
	padding: 5px;
	border-radius: 4px;
}

/* Animated bottom-border hover effect, shared by the back-to-top button,
   nav links, the dropdown/mega toggle buttons, and the social icons. */
#myBtn,
.submenu-toggle:after,
.nav-links li > a:after,
.nav-social__icons a:after,
::-webkit-scrollbar-thumb {
	display: block;
	content: '';
	border-bottom: 2px solid var(--nav-underline);
	transform: scaleX(0);
	transition: transform 250ms ease-in-out;
}

#myBtn:hover,
.submenu-toggle:hover:after,
.nav-links li > a:hover:after,
.nav-social__icons a:hover:after {
	transform: scaleX(1);
}

#myBtn:hover {
	background-color: rgba(60, 36, 21, 1.00);
}

/* =============================================================================
   3. NAV BAR — shell, logo, scroll state
   Fluid by default: the same markup renders at every width; only
   position/display/size changes at the breakpoint (see section 9).
   ============================================================================= */
nav {
	background-color: var(--nav-bg);
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 100;
	line-height: 2.5em;
	box-shadow: none;
	transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

/* Toggled by nav.js on scroll (mirrors the pbdowntown theme's onScroll
   pattern): past the threshold, the bar switches from transparent/no-shadow
   to a solid var(--nav-bg) bar with a drop shadow. */
.scrolling-active {
	background-color: var(--nav-bg) !important;
	-webkit-box-shadow: 0px 5px 4px 0px var(--nav-shadow) !important;
	box-shadow: 0px 5px 4px 0px var(--nav-shadow) !important;
}

/* Page scrollbar track color — intentionally NOT tied to the nav's own
   scrolled background; this is a global page style, not a nav state. */
::-webkit-scrollbar-track {
	background-color: #fff !important;
}

::-webkit-scrollbar-thumb:hover {
	-webkit-box-shadow: 0px 5px 4px 0px var(--nav-shadow) !important;
	box-shadow: 0px 5px 4px 0px var(--nav-shadow);
}

nav .wrapper {
	max-width: 100%;
	padding: 0 30px;
	margin: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(10px, 2vw, 30px);
}

nav .logo {
	display: flex;
	align-items: center;
	text-decoration: none;
	flex: 0 0 auto;
}

/* #logoImg's src is swapped between logo.svg / logo2.svg by nav.js on
   scroll, gated by the --logo-swap variable above (see nav.js comments). */
nav .logo-img {
	box-sizing: content-box;
	padding: 10px;
	height: clamp(56px, 8vw, 80px);
	width: auto;
}

/* =============================================================================
   4. NAV LINKS
   Desktop: a single horizontal row, flush against the logo and the
   social/CTA block. Mobile: becomes a panel that drops down directly below
   the bar (see section 9) instead of a full-screen off-canvas drawer.
   ============================================================================= */
.nav-links {
	display: flex;
	align-items: center;
	flex: 1 1 auto;
	flex-wrap: wrap;
	justify-content: flex-end;
	list-style: none;
}

.nav-links li {
	list-style: none;
	cursor: url(../images/cursor-01.png), auto;
}

/* The dropdown anchors to its own <li> (narrow, sits under the trigger).
   The mega menu deliberately has NO local positioning context, so its
   .submenu-panel below falls through to <nav> (which IS positioned) and
   spans the full width of the bar instead — see section 5. */
.has-dropdown {
	position: relative;
}

.nav-links li > a,
.submenu-toggle {
	text-decoration: none;
	background: none;
	border: none;
	color: var(--nav-ink);
	font-size: 1em;
	font-weight: 600;
	letter-spacing: .2rem;
	padding: 5px 1em;
	margin: 0 10px;
	display: inline-block;
	line-height: 3em;
	cursor: pointer;
	transition: all 0.3s ease;
}

.submenu-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	text-align: left;
}

/* Pure CSS triangle — no icon font, no "fa-*" class name, so nothing else
   loaded on the live site (a plugin, page builder, or another copy of Font
   Awesome) can ever duplicate it. Rotates 180deg once its menu opens. */
.submenu-toggle .caret {
	display: inline-block;
	width: 0;
	height: 0;
	margin-top: 2px;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid currentColor;
	transition: transform 0.25s ease;
}

.has-submenu.is-open .submenu-toggle .caret {
	transform: rotate(180deg);
}

/* =============================================================================
   5. DROPDOWN + MEGA MENU ("submenu panel" system)
   Desktop: both render as a flyout directly under the nav bar — opened on
   hover, and on click/keyboard via the .is-open class nav.js also toggles.
   ============================================================================= */
.submenu-panel {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	background-color: var(--submenu-bg);
	border-bottom: thin solid var(--nav-divider-color);
	box-sizing: border-box;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease,
		background-color 0.3s ease;
	z-index: 10;
}

.has-submenu:hover .submenu-panel,
.has-submenu.is-open .submenu-panel {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

/* -- Dropdown menu: narrow, anchored under its own trigger -- */
.drop-menu {
	left: 0;
	width: auto;
	min-width: 240px;
	max-width: 320px;
	padding: 20px !important;
	background-color: var(--submenu-bg);
	background-image: url("../images/bkgrnd.svg");
	background-size: contain;
	background-position: bottom right;
	background-repeat: no-repeat;
}

.drop-menu li {
	list-style: none;
}

.drop-menu li a {
	display: block;
	width: 100%;
	padding: 8px 15px;
	font-weight: 400;
	color: var(--nav-ink);
	text-decoration: none;
}

/* -- Mega menu: full width, spans the whole bar -- */
.mega-box {
	padding: 30px clamp(20px, 6vw, 80px);
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	align-items: flex-start;
}

.mega-box__intro {
	flex: 1 1 260px;
	background-image: url("../images/bkgrnd.svg");
	background-size: contain;
	background-position: bottom right;
	background-repeat: no-repeat;
}

.mega-box__intro h2 {
	font-size: 20px;
	font-weight: 500;
	color: var(--nav-ink);
	margin-bottom: 10px;
}

.mega-box__intro p {
	font-size: 1.1em;
	line-height: 1.5;
	color: var(--nav-ink);
}

.mega-box__columns {
	flex: 2 1 400px;
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
}

.mega-box__col {
	flex: 1 1 200px;
	border-left: 1px solid var(--nav-divider-color);
	padding-left: 20px;
}

.mega-box__col:first-child {
	border-left: 0;
	padding-left: 0;
}

.mega-box__col header {
	font-size: 17px;
	font-weight: 500;
	color: var(--nav-ink);
	margin-bottom: 8px;
}

.mega-links {
	list-style: none;
}

.mega-links li a {
	display: block;
	padding: 2px 10px 2px 0;
	font-size: 1em;
	font-weight: 500;
	line-height: 1.5;
	color: var(--nav-ink);
	text-decoration: none;
}

.mega-box__media {
	flex: 1 1 160px;
	max-width: 220px;
}

.mega-box__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* =============================================================================
   6. SOCIAL + CALL-TO-ACTION BUTTON
   Desktop version sits in the bar itself; mobile version lives inside the
   sliding nav-links panel — same two icons + CTA button, restyled per
   breakpoint by the media query in section 9 rather than duplicated markup.
   ============================================================================= */
.nav-social {
	display: flex;
	align-items: center;
	gap: 20px;
}

.nav-social a {
	text-decoration: none;
	color: var(--nav-ink);
}

.nav-social__icons {
	display: flex;
	align-items: center;
	gap: 16px;
}

.nav-social a .fa,
.nav-social__icons a {
	font-size: 1.5em;
	line-height: 1;
}

.btn-cta {
	background-color: var(--cta-bg);
	color: var(--cta-ink) !important;
	font-weight: 600;
	letter-spacing: .15rem;
	text-transform: uppercase;
	font-size: .85em;
	padding: .75em 1.4em;
	border-radius: 0;
	white-space: nowrap;
	transition: background-color 0.3s ease, transform 0.1s ease, filter 0.2s ease;
}

/* brightness(0.9) darkens whichever color --cta-bg currently is, so one
   hover rule works correctly against both the navy and white states. */
.btn-cta:hover {
	filter: brightness(0.9);
	transform: translateY(-1px);
}

.nav-social--desktop {
	border-left: thin solid var(--nav-divider-color);
	padding-left: 20px;
}

.nav-social--mobile {
	display: none; /* shown at the mobile breakpoint, section 9 */
}

/* =============================================================================
   7. HAMBURGER (mobile menu toggle)
   Real animated button, matching pbdowntown's function — replaces the old
   checkbox/label hack.
   ============================================================================= */
.hamburger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 6px;
	flex: 0 0 auto;
}

.hamburger span {
	display: block;
	width: 26px;
	height: 3px;
	background: var(--nav-ink);
	border-radius: 2px;
	transition: 0.3s ease;
}

.hamburger.active span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.hamburger.active span:nth-child(2) { opacity: 0; }
.hamburger.active span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* =============================================================================
   8. DESKTOP LAYOUT — Logo (left) / Nav (center) / Social + CTA (right)
   A 3-column grid guarantees the nav block sits truly centered between the
   logo and the social/CTA block, regardless of either one's width. Mobile
   keeps the simpler flex row from section 3 (logo + hamburger) — this
   override only applies above the breakpoint.
   ============================================================================= */
@media screen and (min-width: 971px) {
	nav .wrapper {
		display: grid;
		grid-template-columns: auto 1fr auto;
		align-items: center;
	}

	.nav-links {
		justify-content: center;
	}
}

/* =============================================================================
   9. RESPONSIVE — mobile accordion nav (<= 970px)
   This is the ONLY breakpoint the nav needs: one query, one source of
   truth, instead of scattered mobile overrides.
   ============================================================================= */
@media screen and (max-width: 970px) {

	nav .wrapper {
		padding: 15px 20px;
	}

	.hamburger {
		display: flex;
	}

	/* Panel drops down and lives BELOW the bar (pbdowntown behavior),
	   instead of sliding in from the right as a full-screen drawer.
	   position:absolute (not fixed) so "top:100%" resolves against
	   <nav>'s own height, not the viewport. */
	.nav-links {
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		max-height: 0;
		overflow-y: auto;
		flex-direction: column;
		flex-wrap: nowrap; /* prevents content taller than max-height from
		                      silently wrapping into a hidden 2nd column */
		align-items: stretch;
		justify-content: flex-start;
		background-color: var(--submenu-bg);
		box-shadow: 0 15px 15px rgba(0, 0, 0, 0.15);
		transition: max-height 0.3s ease;
	}

	.nav-links.open {
		max-height: 80vh;
	}

	.nav-links::-webkit-scrollbar {
		width: 0px;
	}

	.nav-links li {
		width: 100%;
		margin: 0;
	}

	.nav-links li > a,
	.submenu-toggle {
		display: flex;
		align-items: center;
		width: 100%;
		margin: 0;
		padding: 16px 24px;
		font-size: 1.1em;
		line-height: normal;
		border-top: 1px solid var(--nav-divider-color);
	}

	.submenu-toggle {
		justify-content: flex-start;
		gap: 6px;
	}

	/* Dropdown / mega now expand in place (accordion), on CLICK only —
	   hover has no meaning on a touch panel. */
	.submenu-panel {
		position: static;
		width: 100%;
		opacity: 1;
		visibility: visible;
		transform: none;
		max-height: 0;
		overflow: hidden;
		background: none; /* blends into the opaque .nav-links panel behind it */
		border-bottom: none;
		transition: max-height 0.3s ease;
	}

	.drop-menu {
		padding: 0 !important;
		background-image: none;
	}

	/* Every dropdown / mega link matches the same "nav button" format as
	   Home / About exactly — same padding, size, weight, height and
	   divider, flush at the same left edge (sub-items are NOT indented
	   relative to the top-level items). Selectors are written to match
	   the specificity of the desktop-only ".drop-menu li a" /
	   ".mega-links li a" rules above, so this override actually wins
	   instead of silently losing to them. */
	.drop-menu li a,
	.mega-links li a {
		display: flex;
		align-items: center;
		width: 100%;
		padding: 16px 24px;
		margin: 0;
		font-size: 1.1em;
		font-weight: 600;
		letter-spacing: .2rem;
		line-height: normal;
		color: var(--nav-ink);
		text-decoration: none;
		border-top: 1px solid var(--nav-divider-color);
	}

	.mega-box__col header {
		padding: 16px 24px 4px 24px;
		font-size: 1em;
	}

	.mega-box__intro {
		padding: 12px 24px 4px 24px;
		background-image: none;
	}

	.has-submenu:hover .submenu-panel {
		/* Cancel the desktop hover-open behavior on touch/mobile. */
		max-height: 0;
	}

	.has-submenu.is-open .submenu-panel {
		/* Generously high so nothing ever clips — measured mega content
		   (two columns + image) runs ~790px; this leaves plenty of
		   headroom for future content without needing readjustment. The
		   open/close transition timing is fixed at 0.3s regardless of
		   this value, so smaller panels (the dropdown) animate the same
		   as before. */
		max-height: 3000px;
	}

	.mega-box {
		flex-direction: column;
		flex-wrap: nowrap;
		padding: 0;
		gap: 0;
	}

	.mega-box__columns {
		flex-direction: column;
		flex-wrap: nowrap;
		width: 100%;
		gap: 0;
	}

	.mega-box__col {
		flex: 1 1 auto;
		width: 100%;
		border-left: 0;
		padding-left: 0;
	}

	.mega-box__media {
		max-width: 140px;
		width: 140px;
		margin: 16px auto 20px;
	}

	/* Social/CTA swaps from the bar (desktop) to inside the panel
	   (mobile), but keeps the same "icons + CTA in one row" arrangement
	   as desktop instead of duplicating markup. */
	.nav-social--desktop {
		display: none;
	}

	.nav-social--mobile {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		padding: 20px 24px;
	}

	.nav-social__cta {
		width: auto;
		flex: 0 0 auto;
	}

	.nav-social--mobile .btn-cta {
		display: inline-block;
		width: auto;
		text-align: center;
	}
}

/* =============================================================================
   10. WORDPRESS CONTENT LINK COLORS
   ============================================================================= */
.my-footer a, .my-container a {
	color: #cc9900;
}

/* =============================================================================
   11. BACKGROUND IMAGES
   ============================================================================= */
.my-container {
	background: url("../images/bottom-pic.png");
	background-position: bottom center;
	background-repeat: no-repeat;
}

/* =============================================================================
   12. SCROLLBAR
   ============================================================================= */
::-webkit-scrollbar {
	width: .5em !important;
	z-index: 2;
}

/* =============================================================================
   13. PAGE LAYOUT — footer, sticky sidebar, misc.
   Unrelated to the nav bar; carried over unchanged from the original theme.
   ============================================================================= */
html, body {
	height: 100%;
	margin: 0;
}

.my-container {
	width: 100%;
	min-height: 100%;
	margin: 0 auto -150px;
	position: relative;
	clear: both;
}

.my-footer,
.my-container::after {
	height: 350px;
}

.my-container::after {
	content: "";
	display: block;
}

.my-footer {
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	padding: 20px 40px 60px 40px;
	height: 350px;
	margin-top: 150px;
}

.my-footer a {
	font-weight: bolder;
}

.my-footer li,
.my-footer .title {
	list-style-type: none;
	text-align: left;
}

.title {
	padding: 10px 0px 10px 0px !important;
	font-weight: 600 !important;
}

.my-footer .left {
	text-align: left;
	display: block;
	box-sizing: border-box;
	border-right: thin solid rgba(0, 0, 0, 0.1);
}

.my-footer .right {
	text-align: right;
}

.my-footer .center {
	padding-bottom: 20px;
	padding-top: 20px;
}

.my-footer .btn {
	margin-top: 5px;
}

.my-footer .fa {
	padding: 5px;
	font-size: 1.3em !important;
}

/* --- Sticky sidebar --- */
.sticky {
	position: -webkit-sticky !important;
	position: sticky !important;
	top: 140px;
	float: right;
}

/* --- Mobile-hidden elements --- */
@media screen and (max-width: 970px) {
	.qr-code {
		display: none;
	}
}
