@charset "utf-8";

/******************/
/* Variable Lists */
/******************/
:root {
	--font_size: 16px;
	--font_color: #333;
	--font_sub_color: #888;
	--font_attention_color: #ec008c;
	--font_link_color: #1a73e8;
	--bg_color: #132e80;
	--bg_sub_color: #f2f4fc;
	--border_color: #d9d9d9;
	--main_color: #03c;
	--sub_color: linear-gradient( #e70066, #db008b );
	--accent_color: #e70066;
	--required_color: #fd5254;
	--transition-time: .25s;
	--easing: ease-in;
	/* lang 属性に依存しないフォントのデフォルト。
	従来 --font_family は :root[lang="ja"] でのみ定義しており、
	英語版（<html lang="en">）では未定義となって body の font-family が
	無効化され、iOS Safari 等で別フォント（ヒラギノ等）に化けていた。
	ここで共通デフォルトを定義し、全言語・全環境で同一フォントを保証する。 */
	--font_family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", sans-serif;
	--content_width: 1000px;
	--header_height: 212px;

	scroll-behavior: smooth;
	interpolate-size: allow-keywords;
}



/***************/
/* Class Lists */
/***************/
.grid {
	display: grid;
}

.flex {
	display: flex;
}

.flex-wrap {
	flex-wrap: wrap;
}

.flex-column {
	flex-direction: column;
}

.flex-row {
	flex-direction: row;
}

.space-between {
	justify-content: space-between;
}

.justify-center {
	justify-content: center;
}

.justify-end {
	justify-content: end;
}

.align-center {
	align-items: center;
}

.align-center {
	align-items: center;
}

.align-start {
	align-items: start;
}

.align-end {
	align-items: end;
}

.relative {
	position: relative;
}

.absolute {
	position: absolute;
}

.fixed {
	position: fixed;
}

.text-center {
	text-align: center;
}

.font-bold {
	font-weight: bold;
}

.font-caution {
	color: var( --accent_color );
}

.font-discontinued {
	color:var(--font_sub_color);
}

.marginLeft-10 {
	margin-left: 10px;
}


/* Info Icon */
.info-icon {
  display: flex;
  flex-direction: column;
  gap: 5px 0 !important;
  visibility: visible;
  min-width: 48px;
  grid-area: icon;

    span {
    display: none;
    place-content: center;
	min-width: 48px;
    width: fit-content;
    height: 25px;
    border: 1px solid var( --font_attention_color );
    color: var( --font_attention_color );
    font-size: 12px;
    font-weight: bold;
	padding: 0 5px;

    &.active {
      display: grid;
    }
  }

  &:has( .active ) {
    visibility: visible;
  }
}

.info .info-icon {
	flex-direction: row;
	gap: 0 5px !important;
}


/* Bread Crumb */
.bread-crumb {
	display: flex;
	font-size: 14px;
	gap: 0 5px;
	margin: 0 0 50px;
	flex-wrap: wrap;

	li {
		display: flex;
		align-items: center;
	}

	li:not( :last-child )::after {
		display: inline;
		content: "＞";
		margin: 0 0 0 5px;
		font-size: 10px;
	}
}


/* Side Menu */
.flex:has( > .side-menu ) {
  display: flex;
  gap: 0 20px;

  *:has( + .side-menu ) {
    width: 750px;
  }

  .side-menu {
    width: 200px;
  }
}


/* Suggest Input */
.suggest-input {
	position: relative;

	& + .suggestions {
		position: absolute;
		z-index: 1;
		overflow-y: auto;
		padding: 0;
		margin: 0;
		list-style: none;
		border-radius: 8px;
		background: #fff;
		color: var( --font_color );
		max-height: 50vh;

		&:has( li ) {
			border: 1px solid var( --border_color );
		}

		& li {
			padding: 8px 10px;
			cursor: pointer;

			&:first-child {
				border-radius: 8px 8px 0 0;
			}

			&:last-child {
				border-radius: 0 0 8px 8px;
			}

			&:last-child {
				border-radius: 0 0 8px 8px;
			}

			&:only-child {
				border-radius: 8px;
			}

			&:hover {
				background: #f2f4fc;
			}
		}
	}
}


/* Pager */
.pager {
	width: fit-content;
	margin: 60px auto 0;
	line-height: 1;

	.prev,
	.next {
		a {
			gap: 0 10px;
			padding: 10px 20px;
			border: 1px solid var( --border_color );
			color: var( --font_color );
			transition:
				background var( --transition-time ) var( --easing ),
				border var( --transition-time ) var( --easing ),
				color var( --transition-time ) var( --easing );

			span {
				font-size: 10px;
			}

			&:hover {
				background: var( --bg_sub_color );
				border: 1px solid var( --main_color );
				color: var( --main_color );
			}
		}

		span.disabled {
			gap: 0 10px;
			padding: 10px 20px;
			border: 1px solid var( --border_color );
			color: var( --font_sub_color );
			cursor: default;
			opacity: 0.4;

			span {
				font-size: 10px;
			}
		}
	}

	ol {
		margin: 0 25px;
		gap: 0 20px;
		font-size: 20px;
		border: none;

		li {
			border: none !important;

			&.active {
				font-weight: bold;
				color: var( --main_color );

				a,
				span {
					color: var( --main_color );
					cursor: default;
				}
			}

			&.ellipsis {
				color: var( --font_sub_color );
			}

			&:not( .active ):not( .ellipsis ) a {
				padding: 0 !important;
				color: var( --font_sub_color ) !important;
				transition: color var( --transition-time ) var( --easing );

				&:hover {
					color: var( --font_link_color ) !important;
				}
			}
		}
	}
}

.pager_wp {
	width: fit-content;
	margin: 40px auto -20px;
    line-height: 3;

	a {
		color: var( --font_sub_color ) !important;

		&:hover {
			color: var( --main_color ) !important;
		}
	}

	span {
		color: var( --font_color );
	}

	.page-numbers {
		margin: 20px 10px;
		font-size: 20px;
		white-space: nowrap;
	}

	a.prev,
	a.next {

			gap: 0 10px;
			padding: 10px 20px;
			border: 1px solid var( --border_color );
			color: var( --font_color ) !important;
			font-size: 16px;
			transition:
				background var( --transition-time ) var( --easing ),
				border var( --transition-time ) var( --easing ),
				color var( --transition-time ) var( --easing );

			span {
				font-size: 10px;
			}

			&:hover {
				background: var( --bg_sub_color );
				border: 1px solid var( --main_color );
				color: var( --main_color ) !important;
			}

	}

	a.prev:before {
		content: "＜";
		color: var( --main_color );
		margin-right: 5px;
	}
	a.next:after {
		content: "＞";
		color: var( --main_color );
		margin-left: 5px;
	}



	ol {
		margin: 0 25px;
		gap: 0 20px;
		font-size: 20px;
		border: none;

		li {
			border: none !important;

			&.active {
				font-weight: bold;

				a {
					color: var( --font_color );
					cursor: default;
				}
			}

			&:first-child::after {
				display: inline;
				content: "…";
				margin: 0 0 0 20px;
			}

			&:last-child::before {
				display: inline;
				content: "…";
				margin: 0 20px 0 0;
			}

			&:not( .active ) a {
				padding: 0 !important;
				color: var( --font_sub_color ) !important;
				transition: color var( --transition-time ) var( --easing );

				&:hover {
					color: var( --font_link_color ) !important;
				}
			}
		}
	}

}


/* Category Icon */
.category-icon {
	display: inline-block;
	padding: 5px 10px;
	line-height: 1;
	border: 1px solid var( --main_color );
	border-radius: 20px;
	color: var( --main_color );
}


/* Card Container */
.card-container {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 40px;
	margin: 50px 0 100px;

	.card {
		display: flex;
		flex-direction: column;
		gap: 30px 0;
		width: calc( ( 100% - 40px ) / 2 );
		max-width: 480px;
		padding: 20px;
		border-radius: 10px;
		box-shadow: 0 0 10px rgba( 0, 51, 204, .25 );
		transition: translate var( --transition-time ) var( --easing );

		p {
			width: fit-content;
			padding: 10px;
			background: #f2f4fc;
			font-size: 20px;
			font-weight: bold;
			color: var( --main_color );
		}

		& > div {
			gap: 15px 0;
		}

		dl div {
			gap: 0 5px;

			dt::after {
				content: ":";
				margin: 0 0 0 5px;
			}

			dd + dd {
				margin: 0 0 0 5px;
			}
		}

		&:hover {
			translate: 0 -10px;
		}
	}
}

/* 適用車両情報（製品種別ラベルと差別化するため、card p の装飾を打ち消す） */
.card-container .card .vehicle-info {
	margin-top: 5px;
	padding-top: 15px;
	/* border-top: 1px dashed var( --border_color, #ccc ); */
	border-top: 1px solid var(--font_sub_color);;
}

.card-container .card .vehicle-info-title {
	width: auto;
	padding: 0 0 8px;
	background: none;
	font-size: 18px;
	font-weight: bold;
	color: var( --font_color, #333 );
}

/* 検索文字が結果アイテム本体に含まれず旧EXEDY No. 等の
  互換情報経由でヒットしたカードに表示する注記文言。
  `.card-container .card p` の青背景・青字・太字装飾を打ち消し、警告色の
  プレーンテキストとしてカード先頭に表示する。 */
.card-container .card p.compat-hit-note {
	width: 100%;
	margin: 0 0 -20px;
	padding: 0;
	background: none;
	font-size: 14px;
	font-weight: normal;
	color: var( --font_color, #333 );
	line-height: 1.5;
}


/**************************/
/* Media Query for Mobile */
/**************************/
@media ( width < 768px ) {
	/* Card Container */
	.card-container {
		justify-content: center;

		.card {
			width: 100%;
		}
	}
}


/* Prev Button */
.prev-button {
	width: fit-content;
	margin: 50px auto 0;

	a {
		display: flex;
		align-items: center;
		gap: 0 10px;
		padding: 10px 20px 10px;
		border: 1px solid var( --border_color );
		line-height: 1;
		font-weight: bold;
		color: var( --font_color );
		transition:
			background var( --transition-time ) var( --easing ),
			border var( --transition-time ) var( --easing ),
			color var( --transition-time ) var( --easing );

		&:hover {
			background: var( --bg_sub_color );
			border: 1px solid var( --main_color );
			color: var( --main_color );
		}
	}
}


/* Button Link */
.button-link {
	display: block;
	width: fit-content;
	margin: 0 auto;
	padding: 15px 25px;
	border-radius: 10px;
	line-height: 1;
	border: 1px solid var( --main_color );
	background: var( --main_color );
	color: #fff !important;
	font-size: 18px;
	transition: background var( --transition-time ) var( --easing );

	&:hover {
		background: var( --font_attention_color );
	}
}


/* Button Link Radius */
.button-link-radius {
	display: grid;
	place-content: center;
	width: 200px;
	height: 48px;
	margin: 0 auto;
	border-radius: 30px;
	text-align: center;
	border: 1px solid var( --main_color );
	border-bottom-width: 5px;
	background: #fff;
	color: var( --main_color );
}


/* Link List */
.link-list {
	display: flex;
	justify-content: center;
	gap: 0 10px;
	margin: 70px 0 50px;

	li {
		a {
			display: block;
			position: relative;
			padding: 15px 40px 15px 20px;
			border: 1px solid var( --main_color );
			border-radius: 5px;
			white-space: nowrap;
			line-height: 1;
			font-weight: bold;
			color: var( --main_color );
			transition:
				background var( --transition-time ) var( --easing );

			img {
				position: absolute;
				top: 50%;
				right: 10px;
				translate: 0 -25%;
			}

			&:hover {
				background: var( --bg_sub_color );
			}
		}
	}
}


/**************************/
/* Media Query for Tablet */
/**************************/
@media ( width < 1024px ) {
	/* Link List */
	.link-list {
		justify-content: flex-start;
		flex-wrap: wrap;
		gap: 10px;

		/*
		overflow-x: auto;
		-ms-overflow-style: none;
		scrollbar-width: none;

		&::-webkit-scrollbar {
			display: none;
		}
		*/
	}
}


/* List Style */
.list-style {
	display: flex;
	align-items: center;
	gap: 0 .25em;
	font-size: 18px;
	font-weight: bold;
	line-height: 1;

	&::before {
		content: "";
		display: inline-block;
		width: 1em;
		height: 1em;
		border-radius: 50%;
		background: var( --main_color );
	}
}


/**************************/
/* Media Query for Mobile */
/**************************/
@media ( width < 768px ) {
	/* List Style */
	.list-style {
		font-size: 16px;
	}
}


/* List Style List */
.list-style-list {
	display: flex;
	flex-direction: column;
	gap: 10px 0;
	margin: 0 0 50px 10px;

	.list-style {
		display: block;
		padding: 0 0 0 1em;
		line-height: 1.5;
		font-weight: normal;

		&::before {
			margin: 0 5px 0 -1.25em;
			translate: 0 .125em;
		}

		a {
			text-decoration: underline;
			color: var( --font_link_color );
		}
	}
}


/* Heading Style */
.heading-style {
	display: flex;
	align-items: center;
	font-weight: bold;
	font-size: 18px;
	line-height: 1;
	gap: 0 .25em;

	&::before {
		content: "";
		display: inline-block;
		width: 10px;
		height: 1.5em;
		background: var( --main_color );
		flex-shrink: 0;
	}
}


/* Confirmation */
.confirmation {
	width: var( --content_width );
	max-width: 900px;
	margin: 0 auto;
	padding: 40px 35px 50px;
	border-radius: 20px;
	text-align: center;
	background: var( --bg_sub_color );

	h3 {
		font-size: 20px;
		margin: 0 0 40px;
	}

	ul {
		margin: 50px 0 0;
		gap: 0 30px;

		li {
			width: calc( ( 100%  ) / 2 );
			max-width: 400px;

			a {
				display: grid;
				place-content: center;
				grid-template-columns: repeat( 2, auto );
				gap: 0 20px;
				height: 100px;
				border-radius: 10px;
				background: #fff;

				img:last-child {
					display: none;
				}

				transition:
					background var( --transition-time ) var( --easing ),
					color var( --transition-time ) var( --easing );

				&:hover {
					background: var( --main_color );
					color: #fff;

					img:first-child {
						display: none;
					}

					img:last-child {
						display: inline-block;
					}
				}
			}
		}
	}
}


/**************************/
/* Media Query for Tablet */
/**************************/
@media ( width < 1024px ) {
	/* Confirmation */
	.confirmation {
		ul {
      li {
        a {
					gap: 0 1.25vw;
					padding: 0 2.5vw;

					img {
						width: 5vw;
					}
				}
			}
		}
	}

	.flex:has( > .side-menu ) {
		display: flex;
		gap: 0 20px;

		*:has( + .side-menu ) {
			width: 100% !important;
		}

		.side-menu {
			width: 100% !important;
			max-width: 750px !important;
		}
	}
/*
	#trouble-shooting .side-menu {
		width: 100% !important;
		max-width: 370px !important;
	}
		*/
}


/**************************/
/* Media Query for Mobile */
/**************************/
@media ( width < 768px ) {
	/* Confirmation */
	.confirmation {
		padding: 40px 5vw 50px;

		& > ul {
			flex-direction: column;
			gap: 2.5vh 0;

			& > li {
				width: 100%;
				padding: 0 5vw;

				& > a {
					& > img {
						width: 100%;
					}
				}
			}
		}
	}
}


/* Tab Select */
.tab-select {
	ul:has( label ) {
		display: flex;
		flex-wrap: wrap;
		gap: 15px;
		margin: 70px 0 50px;
		border-bottom: 1px solid var( --main_color );

		/*
		overflow-x: auto;
		-ms-overflow-style: none;
		scrollbar-width: none;

		&::-webkit-scrollbar {
			display: none;
		}
		*/

		& > li {
			& > label {
				display: grid;
				place-content: center;
				width: 130px;
				height: 52px;
				border: 1px solid var( --main_color );
				border-bottom: none;
				border-radius: 5px 5px 0 0;
				white-space: nowrap;
				line-height: 1;
				background: var( --main_color );
				color: #fff;
				font-weight: bold;
				cursor: pointer;
				transition: background var( --transition-time ) var( --easing );

				&:has( input:checked )  {
					background: #fff;
					color: var( --main_color );
				}

				&:not( :has( input:checked ) ):hover {
					background: rgba( 0, 51, 204, .8 );
				}

				input {
					display: none;
				}
			}
		}
	}

	& > main {
		& > div {
			& > section {
				display: none;

				h3 {
					font-size: 20px;

					&::before {
						background: var( --accent_color );
					}
				}

				& > ul {
					gap: 40px 0;
					margin: 40px 0 120px;
					padding: 0 20px 0;

					& > li {

						dl {
							gap: 30px;
							margin: 20px 0 0;
							padding: 0 0 0 30px;
							justify-content: space-between;

							&:not( :has( > div + div  ) ) {
								justify-content: flex-start;
							}

							& > div {
								gap: 0 20px;
								width: calc(50% - 20px);
								display: flex;
								flex-wrap: wrap;

								#global-list & {
									width: 100%;
								}

								& > dt {
									width: 100%;
                                    margin-bottom: 10px;
								}

								& > dd {
									flex: 1;
                                    margin: 0;
                                    padding-left: 2em;

									& > div {
										display: flex;
										margin: .125em 0 0;

										span {
											display: inline-block;
											flex-shrink: 0;
										}

										span:first-child {
											margin: 0 10px 0 0;
										}
									}
								}
							}
						}
					}

					&:has( > li.heading-style ) {
						gap: 40px;
						margin: 40px 0 50px;
						display: grid;
                        grid-template-columns: max-content max-content 1fr;

						a {
							color: var( --font_color );

							&:hover {
								text-decoration: underline;
							}

							img {
								margin: 0 0 0 5px;
							}
						}
					}

					& a.heading-style {
						color: var( --font_color );
						width: fit-content;

						&:hover {
							text-decoration: underline;
						}

						img {
							margin: 0 0 0 5px;
						}
					}
				}
			}
		}

		& > a {
			display: flex;
			align-items: center;
			width: fit-content;
			padding: 10px 10px 10px 20px;
			margin: 0 auto;
			border: 1px solid var( --border_color );
			line-height: 1;
			background: #fff;
			color: var( --font_color );
			transition:
				background var( --transition-time ) var( --easing ),
				border var( --transition-time ) var( --easing ),
				color var( --transition-time ) var( --easing );

			span {
				margin: 0 0 0 10px;
				color: var( --main_color );
			}

			&:hover {
				background: var( --bg_sub_color );
				border: 1px solid var( --main_color );
				color: var( --main_color );
			}
		}
	}

	&:has( li:first-child input:checked )  {
		& > main {
			& > div {
				& > section:first-child {
					display : block;
				}
			}
		}
	}

	&:has( li:nth-child( 2 ) input:checked )  {
		& > main {
			& > div {
				& > section:nth-child( 2 ) {
					display : block;
				}
			}
		}
	}

	&:has( li:nth-child( 3 ) input:checked )  {
		& > main {
			& > div {
				& > section:nth-child( 3 ) {
					display : block;
				}
			}
		}
	}

	&:has( li:nth-child( 4 ) input:checked )  {
		& > main {
			& > div {
				& > section:nth-child( 4 ) {
					display : block;
				}
			}
		}
	}

	&:has( li:nth-child( 5 ) input:checked )  {
		& > main {
			& > div {
				& > section:nth-child( 5 ) {
					display : block;
				}
			}
		}
	}

	&:has( li:nth-child( 6 ) input:checked )  {
		& > main {
			& > div {
				& > section:nth-child( 6 ) {
					display : block;
				}
			}
		}
	}

	&:has( li:nth-child( 7 ) input:checked )  {

		& > main {
			& > div {
				& > section:nth-child( 7 ) {
					display : block;
				}
			}
		}
	}
}


/**************************/
/* Media Query for Tablet */
/**************************/
@media ( width < 1024px ) {
	/* Tab Select */
	.tab-select {
		& > main {
			& > div {
				& > section {
					& > ul {
							padding: 0 1.25vw;

						& > li {
							dl {
								gap: 30px;

								& > div {
									gap: 0 20px;
									width: calc( ( 100% - 30px ) / 2 );

									& > dd {
										& > div {
											flex-wrap: wrap;
											margin: .25em 0 0;

											span {
												flex-shrink: 1;
											}

											span:first-child {
												margin: 0;
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}

		ul:has( label ) {
			border-bottom: none;

			& > li {
				border-bottom: 1px solid var( --main_color );
			}
		}
	}

	main > div > section > ul{
		&:has( > li.heading-style ) {
			grid-template-columns: max-content 1fr !important;
		}
	}
}



/**************************/
/* Media Query for Mobile */
/**************************/
@media ( width < 768px ) {
	/* Tab Select */
	.tab-select {
		& > main {
			& > div {
				& > section {
					& > ul {
						& > li {
							dl {
								padding: 0 0 0 10px;

								div {
									width: 100%;

									dd {

										div {
											gap: 0 1em;

											span:nth-child( n ) {
												display: block;
												margin: 0;
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}

	main > div > section > ul{
		&:has( > li.heading-style ) {
			grid-template-columns: 1fr !important;
		}
	}
}





.form-style {
	gap: 32px 0;
	padding: 50px 10%;
	background: var( --bg_sub_color );

	dt {
		gap: 0 10px;
		font-weight: bold;
	}

	dd {
		width: 75%;

		input,
		textarea {
			width: 100%;
			border: 1px solid var( --border_color );
			border-radius: 5px;
			background: #fff;
			padding: 8px 10px;
		}

		textarea {
			height: 130px;
		}
	}
}

.pc-view{
	display: block;
}
.sp-view{
	display: none;
}


/**************************/
/* Media Query for Tablet */
/**************************/
@media ( width < 1024px ) {
	.form-style {
		padding: 50px 5vw;
	}
	.pc-view{
		display: none;
	}
	.sp-view{
		display: block;
	}
}



/**************************/
/* Media Query for Mobile */
/**************************/
@media ( width < 768px ) {
	.form-style {
		div:has( dt ) {
				flex-direction: column;
				gap: 1em;
		}
	}
}





/* Side Menu for Trouble Shooting */
#trouble-shooting .side-menu {
	width: 200px;

	p {
		padding: 10px;
		border-top: 1px solid var( --font_color );
		background: var(--bg_sub_color);
	}

	& > ul {
		& > li {
			cursor: pointer;
			border-top: 1px solid var( --border_color );

			&:first-child {
				border: none;
			}

			&.active,
			&.active .active a {
				cursor: default;
				color: var( --font_color );
				font-weight: bold;
			}

			details {
				summary {
					cursor: pointer;
					padding: 1em .125em 1em .5em;

					span:first-child {
						display: inline-block;
					}

					span:last-child {
						display: none;
					}
				}

				&[ open ] {
					summary {
						span:first-child {
							display: none;
						}

						span:last-child {
							display: inline-block;
						}
					}
				}
			}

			ul {
				list-style: disc inside;
				margin: -.5em 0 0 1em;
				padding: 0 0 .5em 1em;
				position: relative;
				list-style: none;
			}

			ul li::before {
				content: "•";
                position: absolute;
                left: 0;
                margin-top: 0.5em;
			}

			a {
				display: inline-block;
				padding: .5em 0;
				color: var( --font_sub_color );
				font-weight: normal;
				overflow-wrap: anywhere;

				&:hover {
					text-decoration: underline;
					color: var( --font_color );
				}
			}
		}
	}
}





/****************/
/* Google Fonts */
/****************/
/* Material Icons */
@import url( https://fonts.googleapis.com/icon?family=Material+Icons );

/* Font family */
@font-face {
	font-family: "Noto Sans JP";
	font-style: normal;
	font-weight: 400;
	src: url( "fonts/Noto_Sans_JP/static/NotoSansJP-Medium.ttf" ) format( "truetype" );
	font-display: swap;
}

@font-face {
	font-family: "Noto Sans JP";
	font-style: normal;
	font-weight: 700;
	src: url( "fonts/Noto_Sans_JP/static/NotoSansJP-Bold.ttf" ) format( "truetype" );
	font-display: swap;
}





/***************************/
/* Element Default Setting */
/***************************/
:root[ lang="ja" ] {
	--font_family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", sans-serif;
}

@media ( hover: none ) {
  *:hover {
    /* all: unset; */
  }
}

body {
	font-family: var( --font_family );
	font-size: var( --font_size );
	color: var( --font_color );
}

:not( .home ) #wrapper {
	background: url( ../img/page_bg.svg ) no-repeat center 164px / contain;
}

img {
	/* width: 100%; */
	max-width: fit-content;
	height: auto;
	vertical-align: bottom;
}

a {
	text-decoration: none;
	color: var( --main_color );
}

ul,
ol {
	list-style: none;
}

main {
	max-width: var( --content_width );
	margin: 0 auto;
}



/**************************/
/* Media Query for Tablet */
/**************************/
@media ( width < 1024px ) {
	:root {
		--content_width: 95%;
	}

	body {
		overflow-x: hidden;

		main {
			max-width: 100%;
		}
	}
}


/**************************/
/* Media Query for Mobile */
/**************************/
@media ( width < 768px ) {
	:root {
		--font_size: 14px;
	}
}





/* header */
header {
	position: sticky;
	top: 0;
	z-index: 2;
	background: #fff;

	input[ type="checkbox" ] {
		display: none;
	}

	& > *:not( nav ) {
		width: 100%;
		max-width: var( --content_width );
		margin: 0 auto;
	}

	& > .info {
    	max-width: none;
	}

	& > div:first-child {
		z-index: 10;
	}

	& > div {
		padding: 10px 0;

		& h1 {
			margin: 10px 0;
		}

		& ul {
			gap: 0 40px;

			li {

				img {
					vertical-align: middle;
				}

				select {
					color: var( --main_color );
					padding: 0 1.5em .125em .5em;
					-webkit-appearance: none;
					-moz-appearance: none;
					appearance: none;
					background: url( ../img/arrow_down.svg ) no-repeat calc( 100% - .5em ) calc( 50% + 2px ) / .75em;
				}
			}
		}

		& .btn_110 {
			background-color: var(--main_color);
			width: 174px;
			height: 74px;
			border-radius: 12px;
			overflow: hidden;
  			transition: all 0.3s ease;
			margin-left: auto;
			position: relative;

			& img {
				width: auto;
				height: 20px;
			}

			& a{
				display: flex;
				flex-direction: column;      /* ← 縦並び */
				align-items: center;         /* 横中央 */
				justify-content: center;     /* 縦中央 */
				gap: 6px;                    /* 画像と文字の間隔 */
				width: 100%;
				height: 100%;
				color: #fff;
				text-decoration: none;
				cursor: pointer;
			}

			&::after {
				content: "";
				position: absolute;
				bottom: 0;
				left: 0;
				width: 100%;
				height: 100%;
				background: linear-gradient(
					to top,
					rgba(255,255,255,0.4),
					rgba(255,255,255,0)
				);
				opacity: 0;
				transition: opacity 0.3s ease;
				pointer-events: none;
			}

			/* ホバー時 */
			&:hover::after {
				opacity: 1;
			}

		}

		& > div select {
			color: var( --main_color );
			cursor: pointer;
			padding: 0 26px 0 0;
			-webkit-appearance: none;
			-moz-appearance: none;
			appearance: none;
			background: url( ../img/arrow_down.svg ) no-repeat calc( 100% - 12px ) calc( 50% + 2px ) / .75em;
		}

		& > ul .flex {
			gap: 0 10px;
		}

		& > div:has( label.flex ) {
			display: none;
		}
	}

	& > nav {
		width: 100%;
		background: var( --main_color );
		z-index: 5;

		&::after {
			content: "";
			display: block;
			width: 100%;
			height: 5px;
			background: linear-gradient( 90deg, var( --main_color ), var( --accent_color ) );
			/*
			position: absolute;
			bottom: 0;
			left: 0;
			*/
		}

		& > ul {
			gap: 0 25px;
			max-width: var( --content_width );
			margin: 0 auto;
			justify-content: space-between;

			& > li {
				padding: 20px 0;
				cursor: pointer;

				& > a,
				& span {
					color: #fff;
				}

				& span,
				& img {
					position: relative;
					z-index: 4;
				}
			}
		}

		& img {
			margin: 0 0 0 .5em;
			vertical-align: middle;
		}

		& .menu_faq_sp{
			display: none;
		}
	}

	& > nav > ul > li,
	& > ul > li {
		position: relative;
	}

	& > nav li ul,
	& li > ul {
		display: none;
		position: absolute;
		top: calc( 100% - .5em );
		left: 0;
	}

	& > nav li ul {
		top: calc( 100% - .5em + 2px );
		left: 50%;
		translate: -50% 0;

		a {
			gap: 0 10px;
			width: 100%;
			padding: 20px 25px 20px 5px;
			line-height: 1;
			background: #222;
		}
		p {
			gap: 0 10px;
			width: 100%;
			padding: 20px 25px 20px 10px;
			line-height: 1;
			background: #222;
			cursor: default;
		}

		a:hover {
			background: #434343;
			text-decoration: underline;
		}

		.level-3 a {
			padding-left: 20px;
		}
	}

	& > nav li ul a,
	& > nav li ul p,
	& li > ul a {
		color: #fff;
		white-space: nowrap;
	}

	/* トップ項目（深さ0）のドロップダウンパネルを、ホバーまたはチェック（クリック）で開く。
	   配下がリーフのみの他メニュー（2階層）も同じ深さ0パネルとして従来どおりの開閉動作を維持する。
	   深さ1グループ見出しの個別ホバー/チェックには依存しない（修正案: e Catalog を開けば中身が一度に見える）。 */
	& > nav > ul > li:hover > ul,
	& > nav > ul > li:has( :checked ) > ul {
		display: flex;
		flex-direction: column;
		width: fit-content;
		min-width: 100%;
		z-index: 3;
		font-size: 14px;
	}

	/* === 深さ1グループ見出し（Vehicle / Motorcycle）と深さ2（配下の検索項目）の常時表示: PC ===
	   修正案では e Catalog（深さ0）パネルを開いた時点で、Vehicle 見出し＋配下、
	   Motorcycle 見出し＋配下が 1 枚の黒パネル内にすべて同時に縦並びで見える。
	   グループ見出しは個別のホバー/クリック展開を要しない。 */

	/* 深さ2の ul（検索項目リスト）は絶対配置せず、パネル内に静的に積み上げる。
	   親パネル（深さ0直下 ul）が開けば常時 flex 表示になり、display:none に巻き込まれない。 */
	& > nav li li > ul {
		display: flex;
		flex-direction: column;
		position: static;
		top: auto;
		left: auto;
		translate: 0;
		min-width: 0;
		width: 100%;
		font-size: inherit;
	}

	/* 深さ2の検索項目リンク: グループ見出しより一段インデントし、chevron 付きリンク行にする。 */
	& > nav li li > ul a {
		gap: 0 10px;
		padding: 12px 25px 12px 22px;
	}

	/* グループ見出し（Vehicle / Motorcycle）の見出しスタイル。展開矢印/シェブロンは付けない。
	   URL なしは <span class="group-heading-label">、URL ありは <a class="group-heading-label">。 */
	& > nav li li > .group-heading-label {
		display: block;
		width: 100%;
		padding: 16px 25px 6px 10px;
		background: #222;
		color: #fff;
		font-weight: bold;
		white-space: nowrap;
	}

	/* グループ見出しがリンク（URL あり）の場合のホバー装飾 */
	& > nav li li > a.group-heading-label:hover {
		text-decoration: underline;
	}

	& div.info {
		padding: 0px !important;
		margin-top: -1px;
	}

	& div.info ul {
		top: 100%;
		right: 0;
		z-index: 3;
		/* width: fit-content; */
		gap: 1em 0;
		display: flex;
  		align-items: center;
		width: 100%;
		background-color: var(--bg_sub_color);

		& > li.info_news{
			flex: 1;
			min-width: 0;
			position: absolute;
            left: calc(100vw / 2 - 525px);
			z-index: 0;

			& > div {
				align-items: center;
				overflow: hidden;
			}

			& > div > p {
				flex-shrink: 0;
			}

			& a{
				color: var(--font_color);
				font-size: 0.9em;
				align-items: center;

				& time {
					flex-shrink: 0;
				}

				& .cate {
                        display: grid;
                        place-content: center;
                        width: 130px;
                        height: 26px;
                        border-radius: 20px;
                        background: var(--main_color);
                        color: #fff;
						font-size: 0.9em;
						flex-shrink: 0;
                    }

				& .ticker {
					position: relative;
					/*width: 200px;*/
					overflow: hidden;
					white-space: nowrap;
					padding-top: 3px;
					min-width: 0;
				}

				& .ticker-text {
					display: inline-block;
					white-space: nowrap;
					will-change: transform;

					animation-name: ticker-scroll;
					animation-timing-function: linear;
					animation-iteration-count: infinite;
				}


			}
		}

		& > li.info_product{
			margin-left: auto;
			min-width: 100px;
			border-left: solid 1px;
			background-color: #FFF;
			position: relative;
			z-index: 1;

			& img {
				height: 30px;
				margin-bottom: -5px;
			}

			& .header-bell-icon {
				position: relative;
				display: block;
				width: 30px;
				height: 30px;
				z-index: 1;
			}

			& .icon-wrap {
				position: relative;
				display: inline-block;
				z-index: 1;
			}

			& #badge {
				position: absolute;
				top: -8px;
				right: -8px;

				min-width: 18px;
				height: 18px;
				padding: 0 0 2px;

				background: var(--font_attention_color);
				color: #fff;
				font-size: 12px;
				font-weight: bold;

				border-radius: 50%;
				display: flex;
				align-items: center;
				justify-content: center;
			}

		}

		& > .info_product.bell_off #badge {
			display: none;
		}

		& > .info_product.bell_off .header-bell-icon {
			content: url("../img/bell_off.svg");
		}

		& > .info_product.bell_off > .icon-wrap {
			cursor: default;
		}

		& > .info_product a,
		& > .info_product > .icon-wrap {
			position: relative;
		}

		& > .info_product [data-tooltip]::after {
			content: attr(data-tooltip);
			position: absolute;
			bottom: 20%; /* 上に表示 */
			left: -30px;
			transform: translateX(-50%);
			z-index: 10;
			background: #333;
			color: #fff;
			font-size: 12px;
			padding: 4px 8px;
			border-radius: 4px;
			white-space: nowrap;

			opacity: 0;
			pointer-events: none;
			transition: opacity 0.2s;
			}

		& > .info_product [data-tooltip]:hover::after {
			opacity: 1;
		}

		& > li.cart_login,
		& > li.cart_stock {
            background: var(--sub_color);
            position: relative;
            height: 50px;
            clip-path: polygon(0px 0px, 100% 0, 100% 100%, 0 100%, 30px 100%);
            padding-left: 50px;
            margin-left: -30px;
            z-index: 4;
		}
		& > li.cart_login {
            background: #0E001A;
            padding-right: 40px;
            margin-right: -4px;
            min-width: 193px;
            clip-path: polygon(0px 0px, 100% 0, 100% 100%, 0 100%, 30px 100%);
            padding-left: 50px;
            z-index: 3;
		}

		& > li > div > a {
			gap: 0 10px;
		}

		& span,
		& img {
			z-index: 2;
			height: 27px;
		}

		& li {
			display: inline-block;
			padding: 10px 20px;

			& a{
				color: #fff;
			}

			&:hover ul {
				width: 100%;
				background: #222;
				top: 100%;
				left: 0;
				display: flex;
				flex-direction: column;
				gap: 0;
				z-index: 1;
			}
			/*
			& li {
				padding: 0;

				&:hover {
					background: #434343;

					&:hover a {
						text-decoration: underline;
					}
				}

				& a {
					padding: 14px 20px;
					gap: 0 12px;
					font-size: 14px;
				}
			}
				*/
		}
	}
}


/**************************/
/* Media Query for Tablet */
/**************************/
@media ( width < 1024px ) {
	:root {
		--header_height: 81px;
	}

	header {
		z-index: 2;

		& > div {
			max-width: none;
			padding: 10px 20px;
			position: relative;
			z-index: 4;
			background: #fff;

			h1 {
				a {
					display: flex;
					align-items: center;

					img {
						vertical-align: middle;
						height: 50px;
					}
				}
			}

			& > div:has( label.flex ) {
				display: flex;
				color: var( --main_color );

				& > label {
					cursor: pointer;
					-webkit-user-select: none;
					user-select: none;

					span {
						font-size: 2em;

						&:nth-child( 2 ) {
							display: none;
						}
					}

					&:has( input[ type="checkbox" ]:checked ) {
						span {
							&:nth-child( 1 ) {
								display: none;
							}

							&:nth-child( 2 ) {
								display: inline-block;
							}
						}
					}
				}
			}

			& .btn_110 {
				display: none;
			}

			& .menu_faq_pc{
				display: none;
			}
		}

		& div.info::before {
			content: "";
			display: block;
			width: 100%;
			height: 5px;
			background: linear-gradient( 90deg, var( --main_color ), var( --accent_color ) );

			/*
			position: absolute;
			bottom: 0;
			left: 0;
			*/
		}

		& > nav {
			position: absolute;
			top: calc( -85vh - var( --header_height ) );
			left: 0;
			width: 100%;
			overflow: auto;
			z-index: 2;
			transition: top var( --transition-time ) var( --easing );

			& > ul {
				flex-direction: column;
				align-items: center;
				justify-content: center;
				gap: 1.5em 0;
				height: 100%;
				min-height: 50vh;
				padding: 10vh 0;

				& > li {
					width: fit-content;
					padding: 0;
					text-align: center;

					> a,
					> label span > a {
						text-decoration: underline;
					}

					ul {
						width: fit-content;
						position: static;
						display: flex;
						/* レスポンシブ（ハンバーガー）メニューの子パネルは常に縦並び（column）で展開する。
						   従来は row + wrap で横並び展開していたが、タップ展開時とホバー時で
						   横並び⇔縦並びが切り替わりチラつく問題があったため縦並びに統一する。 */
						flex-direction: column;
						flex-wrap: nowrap;
						justify-content: center;
						gap: 1.5em;
						translate: 0;
						padding: 0 20vw;
						height: 0;
						overflow: hidden;
						transition:
							padding var( --transition-time ) var( --easing ),
							height var( --transition-time ) .1s var( --easing );

						li {
							a {
								padding: 0;
								background: transparent;
								text-decoration: underline;

								img {
									display: none;
								}

								/* レスポンシブメニューでは子階層リンクのホバー背景（デスクトップ用 #434343 グレー）を
								   出さず透明を維持する（Vehicle / Motorcycle 配下等でグレー背景が出る問題の解消）。 */
								&:hover {
									background: transparent;
								}
							}
							p {
								padding: 0;
								background: transparent;
							}

						}
						li.level-3 a {
							padding-left: 0 !important;
						}
						li:has(p){
							width: 100%;
						}
					}

					/* 従来のリーフのみメニュー（チップ表示）はホバーで横並び（row）に展開する。
					   ただしグループ見出し（.group-heading-label）を含むパネルは対象外とし、
					   スマホでホバーしても縦並びが崩れないようにする。 */
					/* レスポンシブ（ハンバーガー）メニューはタップ（チェックボックス）で開閉する設計のため、
					   ホバーによる展開レイアウト変更は行わない。
					   従来は「リーフのみメニュー（Clutch Knowledge / Trouble Shooting 等）はホバーで横並び（row）」
					   としていたが、ホバーの有無で横並び⇔縦並びが切り替わりチラつく問題があったため、
					   ホバー時も常に縦並び（column）を維持してタップ展開時と同一レイアウトにする。 */
					&:hover > ul:not( :has( .group-heading-label ) ),
					&:hover > ul:has( .group-heading-label ) {
						flex-direction: column;
						flex-wrap: nowrap;

						a {
							background: transparent;
						}
					}

					&:has( :checked ) {
						ul {
							padding: 1.5em 20vw 1em;
							height: auto;
						}
					}

					/* グループ見出し（Vehicle / Motorcycle）を含む深さ0パネルは縦並びにし、
					   Vehicle グループと Motorcycle グループを縦に積み上げる。
					   :has で限定するため、配下がリーフのみの他メニュー（従来の row/wrap チップ）には影響しない。 */
					& > ul:has( .group-heading-label ) {
						flex-direction: column;
						flex-wrap: nowrap;
					}

					/* === 深さ1グループ見出しと深さ2（配下検索項目）の縦並びグループ展開: モバイル ===
					   グループ見出しに個別チェックボックスは付けない。親 e Catalog（深さ0）を
					   タップ展開（:checked）すると、深さ1パネルと共に深さ2の検索項目リストも同時に表示する。 */
					li > ul {
						flex-direction: column;
						flex-wrap: nowrap;
						gap: .25em 0;
						width: 100%;
						padding: 0;
					}

					/* グループ見出し（Vehicle / Motorcycle）の見出しスタイル（モバイルは背景なし・中央寄せ・太字） */
					li > .group-heading-label {
						display: block;
						justify-content: center;
						padding: 0;
						background: transparent;
						/* URL なしの <span> 見出しは color: inherit だと親の黒系を継承して
						   配下リンク（#fff）と色が揃わないため、白に明示する（モバイルメニュー背景は青系）。 */
						color: #fff;
						font-weight: bold;
						text-decoration: none;
					}

					/* 親 e Catalog（深さ0）が開いた（:checked）とき、深さ2の検索項目リストも展開しインデントを付ける。 */
					&:has( :checked ) li > ul {
						height: auto;
						padding: .5em 0 .5em 1em;
					}
				}
			}

			& .menu_faq_sp{
				display: block;
			}
		}

		& > div:has( input[ type="checkbox" ]:checked ) + nav {
			top: var( --header_height );
		}

		& div.info ul {
			& > li.info_news{
				position: unset;
				left: auto;
			}
		}

	}
}


/**************************/
/* Media Query for Mobile */
/**************************/
@media ( width < 768px ) {
	:root {
		--header_height: 67px;
	}

	header {
		& > div {
			padding: 10px 5vw;

			h1 {
				a {
					img {
						height: 25px;
					}
				}
			}

			& > ul {
				gap: 0 5vw;

				& > li {
					& > a {
						display: flex;
						flex-direction: column;
						align-items: center;
						line-height: 1.2;
					}
				}

				& > .flex {
					gap: 0 .5vw;
				}

			}

			& > div:has( label.flex ) {
				& > label {
					line-height: 1;
					margin: 0 0 5px;
				}
			}
		}

		& > ul {
			& > li.cart_login,
			& > li.cart_stock {
				padding: 10px 2.5vw;

				&::before {
					top: -45px;
					left: -44px;
					transform-origin: left bottom;
				}
			}

			& > li.cart_login {
				margin-right: 20px;
			}
		}

		& > nav {
			& > ul {
				& > li {
					ul {
						padding: 0 10vw;
					}

					&:has(:checked) {
						ul {
							padding: 1.5em 10vw 1em;
						}
					}

					/* 深さ2（グループ見出し配下）はスマホ幅でも縦並びを維持し、
					   親 e Catalog 展開時のインデントをスマホ向けに調整する（< 1024px ルールの上書き） */
					li > ul {
						padding: 0;
					}

					&:has( :checked ) li > ul {
						padding: .5em 0 .5em 1em;
					}
				}
			}
		}

		& div.info ul {
			& > li.info_news{
				display: none;
			}
			& > li.cart_login img,
			& > li.cart_stock img {
				height: 20px;
			}
		}

	}
}

@media ( width < 480px ) {
	header {
		& div.info ul {
			& > li.info_product{
				display: none;
			}
			& > li.cart_login{
				margin-left: auto;
			}

			& > li.cart_login,
			& > li.cart_stock {
				height: 42px;
				padding-left: 40px;
				min-width: 50px;
				white-space: nowrap;
			}

		}
	}
}



/* main */
main {
	padding: 0 0 100px;
}

.home main {
	padding: 0;
}




/* footer */
footer {
	padding: 80px 0 50px;
	background: var( --bg_color );
	color: #fff;

	a {
		color: #fff;
	}

	& > div {
		gap: 0 10%;
		margin: 0 10px;

		.footer-navigation {
			font-size: 14px;
			gap: 0 30px;

			/* 1 階層目: e Catalog（最上位見出し・太字） */
			& > ul {
				gap: 30px 0;
				font-weight: bold;

				/* 2 階層目: Vehicle / Motorcycle（小見出し・インデント・太字） */
				& > li > ul {
					font-size: 13px;
					margin: 10px 0 0 15px;
					font-weight: bold;

					& > li {
						margin: 0 0 5px;

						&:last-child {
							margin: 0;
						}

						/* 3 階層目: 各検索項目（さらにインデント・通常ウェイト） */
						& > ul {
							font-size: 12px;
							margin: 5px 0 0 15px;
							font-weight: normal;

							li {
								margin: 0 0 5px;

								&:last-child {
									margin: 0;
								}
							}
						}
					}
				}
			}
		}

		&:last-of-type {
			gap: 20%;
			margin: 50px 0 0;

			ul {
				gap: 0 20px;
			}
		}
	}

	a[ href="#page-top" ] {
		opacity: 0;
		position: fixed;
		display: grid;
		place-content: center;
		width: 50px;
		height: 50px;
		right: clamp( 25px, 5vw, 80px );
		bottom: -50px;
		background: var( --main_color );
		transition:
			opacity var( --transition-time ) var( --easing ),
			bottom var( --transition-time ) var( --easing );

		&.active {
			opacity: 1;
			bottom: clamp( 20px, 7.5vh, 60px );
		}
	}
}


/**************************/
/* Media Query for Tablet */
/**************************/
@media ( width < 1024px ) {
	footer {
		& > div {
			flex-direction: column-reverse;
			align-items: center;
			gap: 50px 0;

			& > div {
				width: 100%;
				padding: 0 5vw;

				&.footer-navigation {
					justify-content: center;
					gap: 0 5vw;
				}

				&:has( .calendar ) {
					h3 {
						text-align: center;
						margin: 0 0 15px;
					}

					div,
					p {
						justify-content: center;
					}

					div {
						gap: 0 2.5vw;
					}

					p {
						margin: 10px 0 0;
					}
				}
			}

			&:last-of-type {
				margin: 50px 0 -25px;
				gap: 25px 0;

				ul {
					gap: 0 2.5vw;
				}
			}
		}

		a[ href="#page-top" ] {
			right: 5vw;
		}
	}
}


/**************************/
/* Media Query for Mobile */
/**************************/
@media ( width < 768px ) {
	footer {
		.footer-navigation {
			display: none;
		}

		& > div {
			&:last-of-type {
				ul {
					flex-wrap: wrap;
					gap: 2.5vh 10vw;

					& > li {
						width: calc( ( 100% - 10vw ) / 2 );

						&:nth-child( 2n + 1 ) {
							text-align: right;
						}
					}
				}
			}
		}

		a[ href="#page-top" ] {
			right: 2.5vw;
			bottom: 2.5vh;
		}
	}
}


/********************************/
/* TOP 最新お知らせアニメーション */
/********************************/
@keyframes ticker-scroll {
	from {
		transform: translateX(var(--ticker-start));
	}
	to {
		transform: translateX(var(--ticker-end));
	}
}