/* Nakayama Plus Ultra: core WordPress navigation keeps keyboard, focus and modal behavior. */
.site-header.npu-header {
	--npu-ink: #121313;
	--npu-paper: #f7f5ef;
	--npu-red: #da312b;
	background: var(--npu-ink);
	border-bottom: 1px solid rgb(247 245 239 / 15%);
	color: var(--npu-paper);
	padding: 0 clamp(1.25rem, 3.4vw, 3.5rem);
}
.npu-header .npu-header-inner {
	gap: 1.5rem;
	margin-inline: auto;
	max-width: 90rem;
	min-height: 4.75rem;
}
.npu-header .npu-brand {
	align-items: flex-start;
	flex: 0 1 auto;
	flex-direction: column;
	gap: .15rem;
	padding-block: .5rem;
}
.npu-header .npu-brand > * { margin-block: 0; }
.npu-header .wp-block-site-logo { line-height: 0; }
.npu-header .wp-block-site-logo a { display: block; }
.npu-header .wp-block-site-logo img {
	height: auto;
	max-height: 2.4rem;
	max-width: min(43vw, 10.75rem);
	width: auto;
}
.npu-header .wp-block-site-title {
	color: var(--npu-paper);
	font-family: var(--wp--preset--font-family--sans, system-ui, sans-serif);
	font-size: 1.2rem;
	font-weight: 800;
	letter-spacing: -.04em;
}
.npu-header .npu-brand-location {
	color: rgb(247 245 239 / 65%);
	font-size: .56rem;
	font-weight: 700;
	letter-spacing: .19em;
	line-height: 1.3;
	text-transform: uppercase;
}
.npu-header .npu-header-actions {
	flex: 0 1 auto;
	gap: clamp(1rem, 2vw, 2rem);
	margin: 0;
}
.npu-header .npu-navigation {
	color: #f7f5ef;
	font-size: .79rem;
	font-weight: 650;
	letter-spacing: -.015em;
}
.npu-header .npu-navigation > .wp-block-navigation__container,
.npu-header .npu-navigation .wp-block-navigation__responsive-container-content > .wp-block-navigation__container {
	gap: clamp(.85rem, 1.35vw, 1.4rem);
}
.npu-header .npu-navigation .wp-block-navigation-item__content {
	color: inherit;
	line-height: 1.2;
	min-height: 2.75rem;
}
.npu-header .npu-navigation .wp-block-navigation-item__label { white-space: nowrap; }
.npu-header .npu-navigation .wp-block-navigation-submenu__toggle {
	margin-left: 0;
	min-height: 2.75rem;
	min-width: 0;
	width: auto;
}
.npu-header .npu-navigation .wp-block-navigation__submenu-icon {
	flex: 0 0 .7rem;
	margin-left: .25rem;
	width: .7rem;
}
.npu-header .npu-navigation .wp-block-navigation__submenu-icon svg {
	height: .7rem;
	width: .7rem;
}
.npu-header .npu-navigation .wp-block-navigation-item__content:hover,
.npu-header .npu-navigation .current-menu-item > .wp-block-navigation-item__content,
.npu-header .npu-navigation .current-menu-ancestor > .wp-block-navigation-item__content {
	text-decoration-color: var(--npu-red);
	text-decoration-thickness: 2px;
	text-underline-offset: .5em;
}
.site-header.npu-header .npu-navigation .wp-block-navigation__submenu-container {
	background: #1a1b1b;
	border: 1px solid rgb(247 245 239 / 17%);
	box-shadow: 0 14px 40px rgb(0 0 0 / 16%);
	color: #f7f5ef;
	min-width: 15rem;
	padding: .5rem;
}
.npu-header .npu-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item {
	font-size: .83rem;
	width: 100%;
}
.npu-header .npu-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: .65rem .8rem;
	width: 100%;
}
.npu-header .npu-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__label { white-space: normal; }
/* Core supplies a white modal when the navigation has no explicit block colors.
 * Keep our coordinated dark modal even when its block stylesheet loads later. */
.site-header.npu-header .wp-block-navigation.npu-navigation .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) {
	background: #121313;
	color: #f7f5ef;
}
.npu-header .npu-header-cta .wp-block-button__link {
	align-items: center;
	background: var(--npu-red);
	border: 1px solid var(--npu-red);
	border-radius: 2px;
	color: #fff;
	display: inline-flex;
	font-size: .76rem;
	font-weight: 750;
	gap: 1.25rem;
	min-height: 2.65rem;
	padding: .75rem 1rem;
}
.npu-header .npu-header-cta .wp-block-button__link:hover {
	background: #b52420;
	border-color: #b52420;
	text-decoration: none;
}
.npu-header :where(a, button):focus-visible,
.npu-footer :where(a, button):focus-visible {
	outline: 2px solid #f7f5ef;
	outline-offset: 5px;
}

/* Compact enough for everyday pages, with the same complete dynamic contact data. */
.site-footer.npu-footer {
	background: #121313;
	border-top: 1px solid rgb(247 245 239 / 14%);
	color: #f7f5ef;
	padding: 3.25rem clamp(1.25rem, 3.4vw, 3.5rem) 0;
}
.npu-footer .npu-footer-main {
	gap: clamp(2rem, 5vw, 5rem);
	margin: 0 auto;
	max-width: 90rem;
}
.npu-footer .npu-footer-main > .wp-block-column { min-width: 0; }
.npu-footer .npu-footer-brand { flex-basis: 34%; }
.npu-footer .npu-footer-explore { flex-basis: 31%; }
.npu-footer .npu-footer-contact { flex-basis: 35%; }
.npu-footer .wp-block-site-logo { margin-bottom: 1.3rem; }
.npu-footer .wp-block-site-logo img {
	height: auto;
	max-height: 3.25rem;
	max-width: 11.25rem;
	object-fit: contain;
	width: auto;
}
.npu-footer .npu-footer-brand:has(.wp-block-site-logo img) .wp-block-site-title { display: none; }
.npu-footer .wp-block-site-title {
	color: #f7f5ef;
	font-family: var(--wp--preset--font-family--sans, system-ui, sans-serif);
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: -.04em;
	margin: 0 0 1.3rem;
}
.npu-footer .npu-footer-statement {
	font-size: clamp(1.35rem, 2vw, 1.8rem);
	font-weight: 700;
	letter-spacing: -.045em;
	line-height: 1.2;
	margin: 0 0 1rem;
}
.npu-footer .npu-footer-description {
	color: rgb(247 245 239 / 65%);
	font-size: .82rem;
	line-height: 1.7;
	margin: 0 0 1rem;
	max-width: 23rem;
}
.npu-footer .npu-footer-label {
	color: #f7f5ef;
	font-family: var(--wp--preset--font-family--sans, system-ui, sans-serif);
	font-size: .65rem;
	font-weight: 750;
	letter-spacing: .13em;
	line-height: 1.4;
	margin: 0 0 1.25rem;
	text-transform: uppercase;
}
.npu-footer .npu-footer-navigation { margin-block: 0; }
.npu-footer .npu-footer-navigation .wp-block-navigation__container {
	align-items: start;
	display: grid;
	gap: .12rem 1.4rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	width: 100%;
}
.npu-footer .npu-footer-navigation .wp-block-navigation-item { min-width: 0; }
.npu-footer .npu-footer-navigation .wp-block-navigation-item a {
	align-items: center;
	color: #f7f5ef;
	display: flex;
	font-size: .8rem;
	font-weight: 500;
	line-height: 1.4;
	min-height: 2.3rem;
	text-decoration: none;
}
.npu-footer a:hover {
	text-decoration: underline;
	text-decoration-color: #da312b;
	text-underline-offset: .3em;
}
.npu-footer .nkym-contact {
	font-size: .83rem;
	font-style: normal;
	line-height: 1.55;
	margin: 0;
}
.npu-footer .nkym-contact p { margin: .45rem 0; }
.npu-footer .nkym-contact p:first-child { color: rgb(247 245 239 / 75%); }
.npu-footer .nkym-contact a { color: #f7f5ef; }
.npu-footer .nkym-contact .nkym-button {
	background: transparent;
	border: 1px solid rgb(247 245 239 / 45%);
	border-radius: 2px;
	color: #f7f5ef;
	display: inline-flex;
	font-size: .75rem;
	font-weight: 650;
	line-height: 1.3;
	margin-top: .4rem;
	min-height: 2.75rem;
	padding: .7rem 1rem;
}
.npu-footer .nkym-contact .nkym-button:hover {
	background: #f7f5ef;
	border-color: #f7f5ef;
	color: #121313;
	text-decoration: none;
}
.npu-footer .nkym-social-links {
	display: flex;
	flex-wrap: wrap;
	font-size: .72rem;
	gap: .5rem 1.3rem;
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
}
.npu-footer .nkym-social-links:empty { display: none; }
.npu-footer .npu-footer-bottom {
	border-top: 1px solid rgb(247 245 239 / 15%);
	color: rgb(247 245 239 / 58%);
	font-size: .68rem;
	gap: .5rem 1.5rem;
	margin: 2.25rem auto 0;
	max-width: 90rem;
	padding-block: 1.15rem max(1.15rem, env(safe-area-inset-bottom));
}
.npu-footer .npu-footer-bottom p { margin: 0; }
.npu-footer .npu-footer-bottom a { color: inherit; }
.npu-footer .nak-legal-links { margin: 0; }

/* The homepage already has complete visit and contact sections immediately above. */
.home .npu-footer .npu-footer-contact { display: none; }
.home .npu-footer .npu-footer-main { justify-content: space-between; }
.home .npu-footer .npu-footer-brand { flex-basis: 48%; max-width: 35rem; }
.home .npu-footer .npu-footer-explore { flex-basis: 38%; max-width: 33rem; }

/* Overlay remains the core navigation modal, with all original submenu links. */
@media (max-width: 73.99rem) {
	.npu-header .npu-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.npu-header .npu-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) {
		align-items: center;
		border: 1px solid rgb(247 245 239 / 25%);
		border-radius: 2px;
		color: #f7f5ef;
		display: inline-flex;
		justify-content: center;
		min-height: 2.75rem;
		min-width: 2.75rem;
	}
	.npu-header .npu-header-cta { display: flex; }
	.npu-header .npu-navigation .wp-block-navigation__responsive-container.is-menu-open {
		background: #121313;
		color: #f7f5ef;
		padding: max(1.5rem, env(safe-area-inset-top)) max(1.5rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1.5rem, env(safe-area-inset-left));
	}
	.npu-header .npu-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		align-items: stretch;
		margin-inline: auto;
		max-width: 50rem;
		padding-top: 4.25rem;
		text-align: left;
	}
	.npu-header .npu-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content > .wp-block-navigation__container {
		align-items: stretch;
		gap: 0;
		justify-content: flex-start;
		width: 100%;
	}
	.npu-header .npu-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
		align-items: flex-start;
		border-bottom: 1px solid rgb(247 245 239 / 18%);
		display: flex;
		flex-direction: column;
		font-size: clamp(1.5rem, 3.6vw, 2.625rem);
		font-weight: 650;
		letter-spacing: -.045em;
		text-align: left;
		width: 100%;
	}
	.npu-header .npu-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item a {
		display: block;
		min-height: 2.75rem;
		padding: .8rem 0;
		width: 100%;
	}
	.npu-header .npu-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content button.wp-block-navigation-item__content {
		font: inherit;
		justify-content: flex-start;
		padding: .8rem 0;
		text-align: left;
		width: 100%;
	}
	.npu-header .npu-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container {
		align-items: flex-start;
		background: transparent;
		border: 0;
		box-shadow: none;
		gap: 0;
		margin: 0;
		min-width: 0;
		padding: 0 0 1rem .1rem;
		text-align: left;
		width: 100%;
	}
	.npu-header .npu-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container .wp-block-navigation-item {
		border: 0;
		font-size: 1rem;
		font-weight: 450;
		letter-spacing: -.015em;
	}
	.npu-header .npu-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container a {
		color: rgb(247 245 239 / 72%);
		padding: .55rem 0;
	}
	.npu-header .npu-navigation .wp-block-navigation__responsive-container-close {
		border: 1px solid rgb(247 245 239 / 25%);
		border-radius: 2px;
		min-height: 2.75rem;
		min-width: 2.75rem;
	}
}
@media (min-width: 74rem) {
	.npu-header .npu-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none; }
	.npu-header .npu-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: block;
		position: relative;
		width: 100%;
		z-index: auto;
	}
	.npu-header .npu-header-cta { display: flex; }
}
@media (max-width: 47.99rem) {
	.npu-header .npu-header-inner { min-height: 4.125rem; }
	.npu-header .npu-header-actions { gap: .75rem; }
	.npu-header .npu-brand-location { font-size: .49rem; }
	.npu-header .wp-block-site-logo img { max-height: 2.15rem; max-width: 8.8rem; }
	.npu-header .npu-header-cta { display: none; }
	.site-footer.npu-footer { padding-top: 2.5rem; }
	.npu-footer .npu-footer-main { flex-direction: column; gap: 2.2rem; }
	.npu-footer .npu-footer-main > .wp-block-column { flex-basis: auto; }
	.npu-footer .npu-footer-brand { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem 1.5rem; }
	.npu-footer .npu-footer-brand .wp-block-site-logo,
	.npu-footer .npu-footer-brand .wp-block-site-title { grid-column: 1 / -1; margin-bottom: .25rem; }
	.npu-footer .npu-footer-statement { font-size: 1.25rem; margin-bottom: 0; }
	.npu-footer .npu-footer-brand .npu-footer-description { font-size: .75rem; margin-bottom: 0; }
	.npu-footer .npu-footer-label { margin-bottom: .9rem; }
	.npu-footer .npu-footer-navigation .wp-block-navigation__container { gap: .05rem 1.5rem; }
	.npu-footer .npu-footer-navigation .wp-block-navigation-item a { min-height: 2.75rem; }
	.npu-footer .npu-footer-bottom { align-items: flex-start; flex-direction: column; margin-top: 2rem; }
	.home .site-footer.npu-footer { padding-top: 2rem; }
	.home .npu-footer .npu-footer-main { gap: 1.75rem; }
	.home .npu-footer .npu-footer-main > .wp-block-column { flex-basis: auto; max-width: none; }
	.home .npu-footer .npu-footer-bottom { margin-top: 1.5rem; }
}
@media (max-width: 23rem) {
	.npu-footer .npu-footer-brand { grid-template-columns: 1fr; }
	.npu-footer .npu-footer-brand .wp-block-site-logo,
	.npu-footer .npu-footer-brand .wp-block-site-title { grid-column: auto; }
}
@media print {
	.site-header.npu-header,
	.site-footer.npu-footer { display: none !important; }
}
