.jdw-nav-menu-desktop {
	display: flex;
	flex-direction: row;
	flex: 0 auto;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 2.5rem;
}

.jdw-nav-dropdown {
	position: relative;
	margin-left: 0;
	margin-right: 0;
}

.jdw-nav-dropdown-toggle {
	border-bottom: 3px solid transparent;
	height: 110px;
	padding: 0;
	transition: border-color 0.2s ease;
	overflow: hidden;
	display: flex;
	align-items: stretch;
}

.jdw-nav-dropdown.is-open > .jdw-nav-dropdown-toggle,
.jdw-nav-dropdown-toggle:hover {
	border-bottom-color: #f65e1e;
}

.jdw-nav-dropdown-toggle-wrapper {
	height: 100%;
	color: #161616;
	align-items: center;
	display: flex;
	text-decoration: none;
	cursor: pointer;
}

.jdw-nav-dropdown-toggle-wrapper--secondary {
	color: #161616;
}

.jdw-nav-link {
	height: 110px;
	display: flex;
	align-items: center;
	color: #161616;
	text-decoration: none;
	border-bottom: 3px solid transparent;
	box-sizing: border-box;
}

.jdw-nav-link:hover,
.jdw-nav-link.is-current {
	border-bottom-color: #f65e1e;
}

.jdw-nav-caption {
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.14;
}

.jdw-nav-paragraph {
	margin: 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	text-wrap: balance;
}

.jdw-nav-dropdown-list {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 100;
	/* Target: .w-dropdown-list.w--open { display:block } — stack
	   .nav-dropdown-list-wrapper columns vertically (not side-by-side). */
	background-color: #fff;
	border-right: 1px solid #444;
	border-bottom: 1px solid #444;
	border-left: 1px solid #444;
	overflow: hidden;
	min-width: 100%;
}

/* Visibility is driven only by .is-open (JS hover + keyboard).
   Do not use :hover / :focus-within here: after a level-2 click,
   focus can remain inside the panel and :focus-within would keep
   the mega open after mouseleave even though JS cleared .is-open. */
.jdw-nav-dropdown.is-open > .jdw-nav-dropdown-list {
	display: block;
}

.jdw-nav-dropdown-list-wrapper {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: stretch;
	gap: 0;
	min-width: 23rem;
	padding: 1.25rem 2rem 1rem;
	box-sizing: border-box;
}

.jdw-nav-dropdown-section-heading {
	padding-bottom: 0.5rem;
	color: #161616;
}

.jdw-nav-dropdown-section-heading .jdw-nav-caption {
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-size: 14px;
	font-weight: 600;
}

.jdw-nav-dropdown-link {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	gap: 2rem;
	color: #161616cc;
	margin: 0;
	padding: 0.5rem 0;
	font-weight: 400;
	text-decoration: none;
	transition: color 0.2s ease;
}

.jdw-nav-dropdown-link:hover,
.jdw-nav-dropdown-link:focus,
.jdw-nav-dropdown-link.is-current {
	color: #161616;
}

.jdw-nav-dropdown-link-arrow {
	display: flex;
	align-items: center;
	opacity: 0;
	color: #f65e1e;
	flex-shrink: 0;
	transition: opacity 0.15s ease;
}

.jdw-nav-dropdown-link:hover .jdw-nav-dropdown-link-arrow,
.jdw-nav-dropdown-link:focus .jdw-nav-dropdown-link-arrow {
	opacity: 1;
}

.jdw-nav-dropdown-level-2 {
	margin: 0;
	position: relative;
}

.jdw-nav-dropdown-level-2-toggle {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	gap: 2rem;
	color: #161616cc;
	margin: 0;
	padding: 0.5rem 0;
	cursor: pointer;
	transition: color 0.2s ease;
	user-select: none;
}

.jdw-nav-dropdown-level-2-toggle:hover,
.jdw-nav-dropdown-level-2.is-open > .jdw-nav-dropdown-level-2-toggle {
	color: #161616;
}

.jdw-nav-dropdown-arrow {
	width: 0.55em;
	height: 0.55em;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(-45deg);
	margin-right: 0.15em;
	flex-shrink: 0;
	order: 2;
	transition: transform 0.15s ease;
}

.jdw-nav-dropdown-level-2-toggle .jdw-nav-paragraph {
	order: 1;
	flex: 1;
}

.jdw-nav-dropdown-level-2.is-open > .jdw-nav-dropdown-level-2-toggle .jdw-nav-dropdown-arrow {
	transform: rotate(45deg);
}

.jdw-nav-dropdown-list-level-2 {
	display: none;
	flex-direction: column;
	background-color: #fff;
	padding-left: 1rem;
	overflow: hidden;
}

.jdw-nav-dropdown-level-2.is-open > .jdw-nav-dropdown-list-level-2 {
	display: flex;
}

/* ---- Widget root (desktop mega + mobile toggle/drawer) ---- */

.jdw-nav-menu {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	position: relative;
	/* Stacking context so the toggle (z 100) stays above the fixed drawer (z 90). */
	z-index: 100;
}

/* ---- Mobile hamburger (hidden on desktop) ---- */
/* Target: <a class="mobile-menu-button"> — no UA button chrome / fill. */

.jdw-mobile-menu-button {
	display: none;
	position: relative;
	/* Above .jdw-nav-mobile-menu (z-index 90) so the X stays clickable. */
	z-index: 100;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	row-gap: 0.25rem;
	padding: 1rem;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	background-color: transparent;
	box-shadow: none;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
	line-height: 0;
	-webkit-tap-highlight-color: transparent;
}

.jdw-mobile-menu-button:hover,
.jdw-mobile-menu-button:focus,
.jdw-mobile-menu-button:focus-visible,
.jdw-mobile-menu-button:active {
	background: transparent;
	background-color: transparent;
	box-shadow: none;
	color: inherit;
	text-decoration: none;
	outline: none;
}

.jdw-mobile-menu-button-dash {
	display: block;
	flex-shrink: 0;
	width: 32px;
	height: 4px;
	padding: 0;
	background-color: #f65e1e;
	border-radius: 0;
	opacity: 1;
	/* Target Webflow: outQuart ~400ms on open, ~500ms reset on close. */
	transition:
		transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1),
		opacity 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
	will-change: transform, opacity;
}

/* Target open (a-8): exact y/rotate/opacity from interactions JSON. */
.jdw-mobile-menu-button.is-open .jdw-mobile-menu-button-dash._1,
.jdw-mobile-menu-button[aria-expanded="true"] .jdw-mobile-menu-button-dash._1 {
	transform: translateY(11px) rotate(45deg);
}

.jdw-mobile-menu-button.is-open .jdw-mobile-menu-button-dash._2,
.jdw-mobile-menu-button[aria-expanded="true"] .jdw-mobile-menu-button-dash._2 {
	transform: translateY(10px) rotate(45deg);
	opacity: 0;
}

.jdw-mobile-menu-button.is-open .jdw-mobile-menu-button-dash._3,
.jdw-mobile-menu-button[aria-expanded="true"] .jdw-mobile-menu-button-dash._3 {
	transform: translateY(-2px) rotate(-45deg);
	opacity: 0;
}

.jdw-mobile-menu-button.is-open .jdw-mobile-menu-button-dash._4,
.jdw-mobile-menu-button[aria-expanded="true"] .jdw-mobile-menu-button-dash._4 {
	transform: translateY(-13px) rotate(-45deg);
}

/* ---- Mobile drawer (height expand like target STYLE_SIZE) ---- */

.jdw-nav-mobile-menu {
	display: block;
	position: fixed;
	left: 0;
	right: 0;
	top: 5.8rem;
	z-index: 90;
	/* Closed: height 0 (target initial a-8-n-3). Open: full remaining viewport. */
	height: 0;
	max-height: none;
	background-color: #fff;
	overflow: hidden;
	box-sizing: border-box;
	visibility: hidden;
	pointer-events: none;
	/* Target open: outQuart 600ms height → AUTO; close: ~500ms → 0. */
	transition:
		height 0.6s cubic-bezier(0.165, 0.84, 0.44, 1),
		visibility 0s linear 0.6s;
}

.jdw-nav-mobile-menu.is-open {
	/* Fallback when JS has not set an inline height yet. */
	height: calc(100svh - 5.8rem);
	visibility: visible;
	pointer-events: auto;
	overflow: auto;
	transition:
		height 0.6s cubic-bezier(0.165, 0.84, 0.44, 1),
		visibility 0s linear 0s;
}

.jdw-nav-mobile-menu-inner {
	padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
	padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
	box-sizing: border-box;
	/* Let content define height for AUTO-like expand; panel scrolls if taller. */
	min-height: 100%;
}

.jdw-nav-mobile-menu-wrapper {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	height: 100%;
	padding: 2rem 0 6rem;
	box-sizing: border-box;
}

.jdw-nav-mobile-menu .jdw-nav-dropdown-list-wrapper {
	min-width: 0;
	padding: 0.2rem 0 1rem;
}

.jdw-nav-mobile-menu .jdw-nav-dropdown-section-heading.is-title {
	padding-bottom: 0.75rem;
	color: #161616;
}

.jdw-nav-mobile-menu .jdw-nav-header {
	display: block;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.03em;
	text-transform: none;
}

.jdw-nav-mobile-menu .jdw-nav-dropdown-list-level-2 {
	position: static;
}

/* Theme flag 「使用按钮样式」: never show in desktop mega bar. */
.jdw-nav-menu-desktop .jdw-nav-menu-item-button,
.jdw-nav-menu-desktop a.jdw-nav-menu-item-button {
	display: none !important;
}

/* Mobile drawer: menu items flagged as buttons (order: outline then solid). */
.jdw-nav-mobile-menu a.jdw-nav-menu-item-button {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	text-decoration: none;
	font-weight: 700;
	font-size: 18px;
	line-height: 1.2;
	padding: 1rem 1.5rem;
	box-sizing: border-box;
	flex-shrink: 0;
	color: #161616;
	background-color: #fff;
	border: 2px solid #161616;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.jdw-nav-mobile-menu a.jdw-nav-menu-item-button .jdw-nav-paragraph {
	font-weight: 700;
	font-size: 18px;
	line-height: 1.2;
	color: #161616;
}

.jdw-nav-mobile-menu-wrapper > a.jdw-nav-menu-item-button {
	margin-top: auto;
}

.jdw-nav-mobile-menu-wrapper > a.jdw-nav-menu-item-button ~ a.jdw-nav-menu-item-button {
	margin-top: 0;
}

.jdw-nav-mobile-menu a.jdw-nav-menu-item-button:hover,
.jdw-nav-mobile-menu a.jdw-nav-menu-item-button:focus {
	border-color: #f65e1e;
}

.jdw-nav-mobile-menu a.jdw-nav-menu-item-button:hover .jdw-nav-paragraph,
.jdw-nav-mobile-menu a.jdw-nav-menu-item-button:focus .jdw-nav-paragraph {
	color: #161616;
}

.jdw-nav-mobile-menu a.jdw-nav-menu-item-button + a.jdw-nav-menu-item-button {
	color: #fff;
	background-color: #f65e1e;
	border-color: #f65e1e;
}

.jdw-nav-mobile-menu a.jdw-nav-menu-item-button + a.jdw-nav-menu-item-button .jdw-nav-paragraph {
	color: #fff;
}

.jdw-nav-mobile-menu a.jdw-nav-menu-item-button + a.jdw-nav-menu-item-button:hover,
.jdw-nav-mobile-menu a.jdw-nav-menu-item-button + a.jdw-nav-menu-item-button:focus {
	background-color: #b84c16;
	border-color: #b84c16;
	color: #fff;
}

.jdw-nav-mobile-menu a.jdw-nav-menu-item-button + a.jdw-nav-menu-item-button:hover .jdw-nav-paragraph,
.jdw-nav-mobile-menu a.jdw-nav-menu-item-button + a.jdw-nav-menu-item-button:focus .jdw-nav-paragraph {
	color: #fff;
}

body.jdw-nav-mobile-open {
	overflow: hidden;
}

@media screen and (max-width: 991px) {
	/* Sit next to the phone icon; parent Header row should justify flex-end. */
	.jdw-nav-menu {
		justify-content: flex-end;
		flex: 0 0 auto;
		width: auto;
		margin-left: auto;
	}

	.jdw-nav-menu-desktop {
		display: none;
	}

	.jdw-mobile-menu-button {
		display: flex;
	}
}

@media screen and (max-width: 767px) {
	.jdw-mobile-menu-button {
		padding: 0.8rem;
	}

	.jdw-mobile-menu-button-dash {
		width: 24px;
	}

	.jdw-nav-mobile-menu {
		top: 5.3rem;
	}

	.jdw-nav-mobile-menu.is-open {
		height: calc(100svh - 5.3rem);
	}
}

@media screen and (max-width: 479px) {
	.jdw-mobile-menu-button {
		padding: 0.5rem;
	}

	.jdw-nav-mobile-menu {
		top: 4.4rem;
	}

	.jdw-nav-mobile-menu.is-open {
		height: calc(100svh - 4.4rem);
	}

	.jdw-nav-mobile-menu-wrapper {
		padding-bottom: 6rem;
	}

	.jdw-nav-mobile-menu .jdw-nav-header {
		font-size: 20px;
	}
}
