/* ==========================================================================
   New Header — PC / SP
   ========================================================================== */

:root {
	--nh-red: #db0038;
	--nh-red-dark: #b8002e;
	--nh-blue: #1e3a6e;
	--nh-blue-btn: #0b4da5;
	--nh-promo: #e40038;
	--nh-promo-dark: #aa001f;
	--nh-research: #f98400;
	--nh-research-dark: #c16900;
	--nh-analytics: #70b705;
	--nh-analytics-dark: #5a9800;
	--nh-industry-retail: #19bdc3;
	--nh-industry-retail-light: #7ddadd;
	--nh-industry-finance: #1983e2;
	--nh-industry-finance-light: #58a6e9;
	--nh-industry-public: #54c328;
	--nh-industry-public-light: #a0de86;
	--nh-gray: #efefef;
	--nh-gray-2: #aaa;
	--nh-text: #3e3a39;
	--nh-text-muted: #666;
	--nh-border: #e0e0e0;
	--nh-header-h-pc: 90px;
	--nh-header-h-sp: 64px;
	--nh-font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
#wrapper header.new-header,
header.new-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 300;
	background-color: #fff;
	font-family: var(--nh-font);
	color: var(--nh-text);
	transition: box-shadow 0.25s ease;
	padding: 0;
	height: var(--nh-header-h-pc);
}

@media screen and (max-width: 1024px) {

	#wrapper header.new-header,
	header.new-header {
		height: var(--nh-header-h-sp);
	}
}

#wrapper header.new-header *:before,
#wrapper header.new-header *:after {
	box-sizing: border-box;
}

#wrapper header.new-header.act,
#wrapper header.new-header.is-scrolled,
header.new-header.is-scrolled {
	background-color: #fff !important;
}

header.new-header a {
	color: inherit;
	text-decoration: none;
}

header.new-header button {
	font-family: inherit;
	background-color: transparent;
	border: 0;
	padding: 0;
	cursor: pointer;
	color: inherit;
}

.new-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin: 0 auto;
	padding-left: 28px;
	height: var(--nh-header-h-pc);
	box-sizing: border-box;
}

@media screen and (max-width: 1024px) {
	.new-header__inner {
		padding-left: 16px;
		height: var(--nh-header-h-sp);
		gap: 12px;
	}
}

.new-header__logo a {
	display: block;
	line-height: 0;
}

.new-header__logo img {
	display: block;
	height: 48px !important;
	width: auto !important;
}

@media screen and (max-width: 1024px) {
	.new-header__logo img {
		height: 40px !important;
	}
}

/* --------------------------------------------------------------------------
   Menu (PC bar / SP drawer)
   -------------------------------------------------------------------------- */
.new-header__menu {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex: 1;
	gap: 20px;
	min-width: 0;
}

@media screen and (max-width: 1024px) {
	.new-header__menu {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		position: fixed;
		inset: var(--nh-header-h-sp) 0 0 0;
		z-index: 315;
		gap: 0;
		padding-block: 0 24px;
		padding-inline: 20px;
		background-color: #fff;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
		transform: translateX(100%);
		visibility: hidden;
		pointer-events: none;
		transition: transform 0.3s ease, visibility 0.3s;

	}

	header.new-header.is-drawer-open .new-header__menu {
		transform: translateX(0);
		visibility: visible;
		pointer-events: auto;
	}
}

.new-header__nav-area {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	height: var(--nh-header-h-pc);
}

@media screen and (max-width: 1024px) {
	.new-header__nav-area {
		flex-direction: column-reverse;
		justify-content: flex-end;
		align-items: stretch;
		height: auto;
		flex: none;
	}
}

.new-header__utility {
	display: flex;
	align-items: center;
	flex: 1;
	gap: 20px;
	padding-right: 18px;
}

@media screen and (max-width: 1024px) {
	.new-header__utility {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		flex: none;
		padding-right: 0;
		margin-top: 15px;
	}
}

.new-header__utility a {
	font-size: 14px;
	font-weight: 400;
	color: var(--nh-text);
	letter-spacing: 0.02em;
	transition: color 0.2s;
}

@media screen and (max-width: 1024px) {
	.new-header__utility a {
		display: flex;
		align-items: center;
		width: 100%;
		padding-block: 8px;
		padding-inline: 30px 0;
		font-size: 16px;
		line-height: 1.3;
		letter-spacing: normal;
	}
}

.new-header__utility a:hover {
	text-decoration: underline;
	text-underline-offset: 5px;
	text-decoration-color: var(--nh-red);
	text-decoration-thickness: 2px;
}

@media screen and (max-width: 1024px) {
	.new-header__utility a:hover {
		text-decoration: none;
	}
}

.new-header__nav {
	flex: 1;
}

@media screen and (max-width: 1024px) {
	.new-header__nav {
		flex: none;
	}
}

.new-header__nav-list {
	display: flex;
	align-items: stretch;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0;
}

@media screen and (max-width: 1024px) {
	.new-header__nav-list {
		flex-direction: column;
		align-items: stretch;
	}
}

.new-header__nav-item {
	position: static;
}

header.new-header .new-header__nav-trigger {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 14px 18px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	border-style: solid;
	border-width: 0 0 3px;
	border-color: transparent;
	transition: background-color 0.2s, border-color 0.2s;
}

@media screen and (max-width: 1024px) {
	header.new-header .new-header__nav-trigger {
		display: flex;
		width: 100%;
		padding-block: 10px;
		padding-inline: 0;
		font-size: 16px;
		line-height: 1.3;
		white-space: normal;
		border-width: 0;
		text-align: left;
		gap: 0px;
	}
}

header.new-header .new-header__nav-item--mega.is-open>.new-header__nav-trigger,
header.new-header .new-header__nav-item--mega:hover>.new-header__nav-trigger,
header.new-header .new-header__nav-item:hover>.new-header__nav-trigger {
	background-color: var(--nh-gray);
}

@media screen and (max-width: 1024px) {

	header.new-header .new-header__nav-item:hover>.new-header__nav-trigger,
	header.new-header .new-header__nav-item--mega.is-open>.new-header__nav-trigger,
	header.new-header .new-header__nav-item--mega:hover>.new-header__nav-trigger {
		background-color: transparent;
	}

	header.new-header a.new-header__nav-trigger {
		padding-left: 30px;
	}
}

.new-header__nav-trigger .nh-caret {
	display: inline-block;
	width: 11px;
	height: auto;
	margin-top: 1px;
	vertical-align: middle;
	transition: transform 0.2s;
}

@media screen and (max-width: 1024px) {
	header.new-header .new-header__nav-trigger .nh-caret {
		order: -1;
		width: 30px;
		margin-top: 0;
		flex-shrink: 0;
		height: .9em;
		object-fit: contain;
	}
}

.new-header__nav-item--mega.is-open>.new-header__nav-trigger .nh-caret {
	transform: rotate(180deg);
}

/* CTAs */
.new-header__ctas {
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
}

@media screen and (max-width: 1024px) {
	.new-header__ctas {
		display: grid;
		gap: 10px;
		padding-inline: 20px;
		margin-top: 20px;
	}
}

.new-header__cta {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 45px;
	padding-inline: 15px;
	font-size: 14px;
	font-weight: 700;
	color: #fff !important;
	letter-spacing: 0.02em;
	transition: opacity 0.2s, background-color 0.2s;
}

@media screen and (max-width: 1024px) {
	.new-header__ctas .new-header__cta {
		height: 48px;
		min-width: 0;
		width: 100%;
		font-size: 15px;
	}
}

.new-header__cta:hover {
	background-color: #fff;
}

.new-header__cta--download {
	background-color: var(--nh-blue-btn);
	border: 3px solid var(--nh-blue-btn);
}

.new-header__cta--download:hover {
	color: var(--nh-blue-btn) !important;
}

.new-header__cta--contact {
	background-color: var(--nh-red);
	border: 3px solid var(--nh-red);
}

.new-header__cta--contact:hover {
	color: var(--nh-red) !important;
}

/* Hamburger (SP) */
.new-header__hamburger {
	display: none;
	position: relative;
	width: 32px;
	height: 26px;
	margin-right: 15px;
	flex-shrink: 0;
	z-index: 320;
}

@media screen and (max-width: 1024px) {
	.new-header__hamburger {
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
	}
}

.new-header__hamburger span {
	width: 100%;
	height: 4px;
	transition: transform 0.25s, opacity 0.25s, top 0.25s;
}

.new-header__hamburger span:nth-child(1) {
	background-color: #3E3A39;
}

.new-header__hamburger span:nth-child(2) {
	background-color: #9C9A99;
}

.new-header__hamburger span:nth-child(3) {
	background-color: var(--nh-red);
}

header.new-header.is-drawer-open .new-header__hamburger span:nth-child(1) {
	transform: rotate(-45deg);
	transform-origin: top right;
}

header.new-header.is-drawer-open .new-header__hamburger span:nth-child(2) {
	opacity: 0;
}

header.new-header.is-drawer-open .new-header__hamburger span:nth-child(3) {
	transform: rotate(45deg);
	transform-origin: bottom right;
}

/* --------------------------------------------------------------------------
   Mega menu (PC / SP accordion panel)
   -------------------------------------------------------------------------- */
.new-header__mega {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	background-color: var(--nh-gray);
	z-index: 310;
}


.new-header__nav-item.is-open>.new-header__mega {
	display: block;
}

@media screen and (max-width: 1024px) {
	.new-header__mega {
		display: grid;
		grid-template-rows: 0fr;
		position: relative;
		width: auto;
		z-index: auto;
		background-color: transparent;
		transition: grid-template-rows 0.35s ease;
	}

	.new-header__nav-item.is-open>.new-header__mega {
		display: grid;
		grid-template-rows: 1fr;
	}
}


.new-header__mega-inner {
	max-width: 1300px;
	margin: 0 auto;
	padding: 28px 40px 32px;
}

.new-header__mega-clip {
	min-height: 0;
}

@media screen and (max-width: 1024px) {
	.new-header__mega-clip {
		overflow: hidden;
		min-height: 0;
	}

	.new-header__mega-inner {
		max-width: none;
		padding: 20px;
		background-color: var(--nh-gray);
	}
}

.new-header__mega--service .new-header__cats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 25px;
	margin-bottom: 28px;
}

@media screen and (max-width: 1024px) {
	.new-header__mega--service .new-header__cats {
		display: flex;
		flex-direction: column;
		gap: 16px;
		margin-bottom: 16px;
	}
}

.new-header__cat-title {
	position: relative;
	display: block;
	margin-bottom: 14px;
	padding-block: 5px;
	padding-inline: 28px 12px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	color: #fff;
}

@media screen and (max-width: 1024px) {
	.new-header__cat-title {
		margin-bottom: 10px;
	}
}

.new-header__cat-title::before {
	content: "";
	position: absolute;
	left: -3px;
	top: -3px;
	height: calc(100% + 6px);
	width: 20px;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
}

header.new-header a.new-header__cat-title--promo,
.new-header__cat-title--promo {
	background-color: var(--nh-promo);
	border: 3px solid var(--nh-promo);
	color: #fff;
}

header.new-header a.new-header__cat-title--promo::before,
.new-header__cat-title--promo::before {
	background-color: var(--nh-promo-dark);
}

header.new-header a.new-header__cat-title--promo:hover,
.new-header__cat-title--promo:hover {
	background-color: #fff;
	color: var(--nh-promo);
}

header.new-header a.new-header__cat-title--promo:hover::before,
.new-header__cat-title--promo:hover::before {
	background-color: var(--nh-promo);
}

header.new-header a.new-header__cat-title--research,
.new-header__cat-title--research {
	background-color: var(--nh-research);
	border: 3px solid var(--nh-research);
	color: #fff;
}

header.new-header a.new-header__cat-title--research::before,
.new-header__cat-title--research::before {
	background-color: var(--nh-research-dark);
}

header.new-header a.new-header__cat-title--research:hover,
.new-header__cat-title--research:hover {
	background-color: #fff;
	color: var(--nh-research);
}

header.new-header a.new-header__cat-title--research:hover::before,
.new-header__cat-title--research:hover::before {
	background-color: var(--nh-research);
}

header.new-header a.new-header__cat-title--analytics,
.new-header__cat-title--analytics {
	background-color: var(--nh-analytics);
	border: 3px solid var(--nh-analytics);
	color: #fff;
}

header.new-header a.new-header__cat-title--analytics::before,
.new-header__cat-title--analytics::before {
	background-color: var(--nh-analytics-dark);
}

header.new-header a.new-header__cat-title--analytics:hover,
.new-header__cat-title--analytics:hover {
	background-color: #fff;
	color: var(--nh-analytics);
}

header.new-header a.new-header__cat-title--analytics:hover::before,
.new-header__cat-title--analytics:hover::before {
	background-color: var(--nh-analytics);
}

.new-header__cat-links {
	list-style: none;
}

.new-header__cat-links li+li {
	margin-top: 10px;
}

.new-header__cat-links a {
	position: relative;
	display: inline-block;
	padding-left: 16px;
	font-size: 14px;
	font-weight: 500;
	color: var(--nh-text);
	line-height: 1.5;
	transition: color 0.15s;
}

.new-header__cat-links a::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 10px;
	height: 2px;
}

.new-header__cat-title--promo+.new-header__cat-links a::before {
	background-color: var(--nh-promo);
}

.new-header__cat-title--research+.new-header__cat-links a::before {
	background-color: var(--nh-research);
}

.new-header__cat-title--analytics+.new-header__cat-links a::before {
	background-color: var(--nh-analytics);
}

.new-header__cat-title--promo+.new-header__cat-links a:hover {
	color: var(--nh-promo);
}

.new-header__cat-title--research+.new-header__cat-links a:hover {
	color: var(--nh-research);
}

.new-header__cat-title--analytics+.new-header__cat-links a:hover {
	color: var(--nh-analytics);
}

.new-header__mega--service .new-header__sol-strip {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	padding-block: 18px;
	padding-inline: 24px;
	background-color: var(--nh-gray-2);
}

@media screen and (max-width: 1024px) {
	.new-header__mega--service .new-header__sol-strip {
		grid-template-columns: 1fr;
		gap: 12px;
		padding-block: 14px;
		padding-inline: 12px;
	}
}

.new-header__mega--service .new-header__sol-card {
	display: flex;
	flex-direction: column;
	align-items: start;
	justify-content: flex-start;
	gap: 10px;
}

.new-header__mega--service .new-header__sol-card img {
	transition: opacity 0.2s;
}

@media screen and (max-width: 1024px) {
	.new-header__mega--service .new-header__sol-card img {
		max-width: 100%;
		height: auto;
	}
}

.new-header__mega--service .new-header__sol-card:hover img {
	opacity: 0.5;
}

.new-header__mega--service .new-header__sol-card-label {
	display: block;
	font-size: min(16px, 1.3vw);
	font-weight: 700;
	color: #fff;
	line-height: 1.3;
}

@media screen and (max-width: 1024px) {
	.new-header__mega--service .new-header__sol-card-label {
		font-size: 16px;
	}
}

/* Solution mega */
.new-header__mega--solution .new-header__sol-groups {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

@media screen and (max-width: 1024px) {
	.new-header__mega--solution .new-header__sol-groups {
		display: flex;
		flex-direction: column;
		gap: 16px;
	}
}

.new-header__mega--solution .new-header__sol-col {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 28px;
	min-width: 0;
}

@media screen and (max-width: 1024px) {
	.new-header__mega--solution .new-header__sol-col {
		display: contents;
	}
}

.new-header__mega--solution .new-header__sol-group-title {
	display: block;
	margin-bottom: 14px;
	padding-block: 8px;
	padding-inline: 12px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	background-color: var(--nh-gray-2);
	color: #fff;
}

@media screen and (max-width: 1024px) {
	.new-header__mega--solution .new-header__sol-group-title {
		margin-bottom: 8px;
		font-size: 14px;
	}
}

.new-header__mega--solution .new-header__sol-items {
	list-style: none;
}

.new-header__mega--solution .new-header__sol-items li+li {
	margin-top: 14px;
}

.new-header__mega--solution .new-header__sol-item {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 10px;
	align-items: center;
	transition: opacity 0.15s;
}

@media screen and (max-width: 1024px) {
	.new-header__mega--solution .new-header__sol-item {
		grid-template-columns: 56px 1fr;
		gap: 10px;
	}
}

.new-header__mega--solution .new-header__sol-item:hover {
	opacity: 0.5;
}

.new-header__mega--solution .new-header__sol-item-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}

.new-header__mega--solution .new-header__sol-item-logo img {
	display: block;
	width: 64px;
	height: 64px;
	object-fit: contain;
}

@media screen and (max-width: 1024px) {
	.new-header__mega--solution .new-header__sol-item-logo img {
		max-width: 48px;
		max-height: 48px;
	}
}

.new-header__mega--solution .new-header__sol-item-body {
	min-width: 0;
}

.new-header__mega--solution .new-header__sol-item-name {
	display: block;
	margin-bottom: 2px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--nh-text);
}

.new-header__mega--solution .new-header__sol-item-desc {
	display: block;
	font-size: 14px;
	font-weight: 400;
	color: var(--nh-text);
	line-height: 1.45;
}

@media screen and (max-width: 1024px) {
	.new-header__mega--solution .new-header__sol-item-desc {
		font-size: 12px;
	}
}

/* Shared sol item base */
.new-header__sol-group-title {
	display: block;
	margin-bottom: 10px;
	padding-block: 6px;
	font-size: 16px;
	font-weight: 700;
	background-color: var(--nh-gray-2);
	color: var(--nh-text);
}

.new-header__sol-items li+li {
	margin-top: 10px;
}

.new-header__sol-item {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 14px;
	align-items: center;
	transition: background 0.15s;
}

.new-header__sol-item-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
}

.new-header__sol-item-logo img {
	display: block;
	max-width: 56px;
	max-height: 56px;
	width: auto;
	height: auto;
}

.new-header__sol-item-body {
	min-width: 0;
}

.new-header__sol-item-name {
	display: block;
	margin-bottom: 2px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
}

.new-header__sol-item-desc {
	display: block;
	font-size: 11px;
	color: var(--nh-text-muted);
	line-height: 1.45;
}

/* Industry mega */
.new-header__industry-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	list-style: none;
}

@media screen and (max-width: 1024px) {
	.new-header__industry-list {
		grid-template-columns: 1fr;
		gap: 12px;
	}
}

.new-header__mega--industry .new-header__industry-item a {
	position: relative;
	display: block;
	padding-block: 5px;
	padding-inline: 28px 12px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	color: #fff;
	transition: background-color 0.15s, color 0.15s;
}

.new-header__mega--industry .new-header__industry-item a::before {
	content: "";
	position: absolute;
	left: -3px;
	top: -3px;
	height: calc(100% + 6px);
	width: 20px;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	transition: background-color 0.15s;
}

header.new-header .new-header__mega--industry .new-header__industry-item--retail a,
.new-header__mega--industry .new-header__industry-item--retail a {
	background-color: var(--nh-industry-retail);
	border: 3px solid var(--nh-industry-retail);
	color: #fff;
}

header.new-header .new-header__mega--industry .new-header__industry-item--retail a::before,
.new-header__mega--industry .new-header__industry-item--retail a::before {
	background-color: var(--nh-industry-retail-light);
}

header.new-header .new-header__mega--industry .new-header__industry-item--retail a:hover,
.new-header__mega--industry .new-header__industry-item--retail a:hover {
	background-color: #fff;
	color: var(--nh-industry-retail);
}

header.new-header .new-header__mega--industry .new-header__industry-item--retail a:hover::before,
.new-header__mega--industry .new-header__industry-item--retail a:hover::before {
	background-color: var(--nh-industry-retail);
}

header.new-header .new-header__mega--industry .new-header__industry-item--finance a,
.new-header__mega--industry .new-header__industry-item--finance a {
	background-color: var(--nh-industry-finance);
	border: 3px solid var(--nh-industry-finance);
	color: #fff;
}

header.new-header .new-header__mega--industry .new-header__industry-item--finance a::before,
.new-header__mega--industry .new-header__industry-item--finance a::before {
	background-color: var(--nh-industry-finance-light);
}

header.new-header .new-header__mega--industry .new-header__industry-item--finance a:hover,
.new-header__mega--industry .new-header__industry-item--finance a:hover {
	background-color: #fff;
	color: var(--nh-industry-finance);
}

header.new-header .new-header__mega--industry .new-header__industry-item--finance a:hover::before,
.new-header__mega--industry .new-header__industry-item--finance a:hover::before {
	background-color: var(--nh-industry-finance);
}

header.new-header .new-header__mega--industry .new-header__industry-item--public a,
.new-header__mega--industry .new-header__industry-item--public a {
	background-color: var(--nh-industry-public);
	border: 3px solid var(--nh-industry-public);
	color: #fff;
}

header.new-header .new-header__mega--industry .new-header__industry-item--public a::before,
.new-header__mega--industry .new-header__industry-item--public a::before {
	background-color: var(--nh-industry-public-light);
}

header.new-header .new-header__mega--industry .new-header__industry-item--public a:hover,
.new-header__mega--industry .new-header__industry-item--public a:hover {
	background-color: #fff;
	color: var(--nh-industry-public);
}

header.new-header .new-header__mega--industry .new-header__industry-item--public a:hover::before,
.new-header__mega--industry .new-header__industry-item--public a:hover::before {
	background-color: var(--nh-industry-public);
}

/* Body lock when drawer open (page scroll を伝播させない) */
html.nh-drawer-open,
body.nh-drawer-open {
	overflow: hidden;
	overscroll-behavior: none;
}

body.nh-drawer-open {
	position: fixed;
	inset-inline: 0;
	width: 100%;
}