@charset "UTF-8";
@import url('slick.css');

/* ==================================================

WEB FONT

*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&display=swap');

/* EN Font */
@font-face {
	font-family: 'DIN';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url("../fonts/DIN-Light.woff") format("woff");
}
@font-face {
	font-family: 'DIN';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/DIN-Regular.woff") format("woff");
}
@font-face {
	font-family: 'DIN';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("../fonts/DIN-Medium.woff") format("woff");
}

/* ==================================================

RESET

*/
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	background-color: transparent;
	background-repeat: no-repeat;
	text-decoration: none;
	text-indent: 0;
	text-transform: none;
	font-style: normal;
	font-size: inherit;
	font-family: inherit;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
}
html, body {
	width: 100%;
}
body {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}
ul, ol {
	list-style-type: none;
}
table {
	border-collapse: collapse;
}
a, button {
	cursor: pointer;
}
img {
	vertical-align: top;
	width: 100%;
	height: auto;
}
input, select, textarea, button {
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	border: 0;
	border-radius: 0;
	resize: none;
}

::placeholder {
	color: #ccc;
}
::-ms-input-placeholder {
	color: #ccc;
}
:-ms-input-placeholder {
	color: #ccc;
}

/* ==================================================

ICON FONT

*/
@font-face {
	font-family: 'icon';
	src: url('../fonts/icon.woff') format('woff');
	font-weight: normal;
	font-style: normal;
	font-display: block;
}
[class^="icon-"], [class*=" icon-"] {
	font-family: 'icon' !important;
	speak: never;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.icon-arrow:before {
  content: "\e900";
}
.icon-close:before {
  content: "\e901";
}
.icon-gallery-next:before {
  content: "\e902";
}
.icon-gallery-prev:before {
  content: "\e903";
}
.icon-hamburger:before {
  content: "\e904";
}
.icon-mail:before {
  content: "\e905";
}
.icon-pagination-next:before {
  content: "\e906";
}
.icon-pagination-prev:before {
  content: "\e907";
}

/* ==================================================

HTML

*/
html {
	background-color: #f9f9f9;
	/* 1rem = 10px */
	font-size: 62.5%;
}
@media screen and (max-width: 980px) {
	html {
		/* 幅980px 1rem = 10px */
		font-size: 1.0204vw;
	}
}
@media screen and (max-width: 768px) {
	html {
		/* 幅375px 1rem = 10px */
		font-size: 2.666vw;
	}
}

body {
	position: relative;
	font-family: 'DIN', "Noto Sans JP", sans-serif;
	font-weight: 400;
	font-size: 1.4rem;
	line-height: 2;
	color: #000;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
@media screen and (max-width: 980px) {
	body {

	}
}
@media screen and (max-width: 768px) {
	body {
		font-size: 1.2rem;
	}
}

main {
	overflow: hidden;
	padding-top: 10rem;
}
main.has-main-kv {
	padding-top: 0;
}

section {
	margin-top: 10rem;
}
@media screen and (max-width: 768px) {
	main {
		padding-top: 6rem;
	}
	section {
		margin: 4rem 0;
	}
}

input:-webkit-autofill {
	box-shadow: 0 0 0 1000px #fff inset !important;
	-webkit-text-fill-color: #000 !important;
}

/* ==================================================

RESPONSIVE CHECKER

*/
@media screen and (max-width: 768px) {
	.responsive-checker {
		display: none;
	}
}

/* ==================================================

	[ INPUT ]

*/
input[type="checkbox"] {
	display: block;
	margin-right: 0.3em;
	width: 2rem;
	height: 2rem;
	border: 1px solid #000;
	border-radius: 0.4rem;
	flex-shrink: 0;
}
input[type="checkbox"]:checked {
	background-color: #000;
	background-image: url(../img/input-checkbox.svg);
	background-size: contain;
}

/* ==================================================

	[ UTILITY ] VISIBLE

*/
@media screen and (min-width: 769px) {
	.u-visible-sp {
		display: none;
	}
}
@media screen and (max-width: 768px) {
	.u-visible-pc {
		display: none;
	}
}

/* ==================================================

	[ UTILITY ] EN

*/
.u-en {
	font-family: "Teko", sans-serif;
	font-weight: 400;
}

/* ==================================================

	[ COMPONENT ] HEADING

*/
.c-heading {
	margin-bottom: 4rem;
	text-align: center;
}
.c-heading__lg {
	display: block;
	font-size: 3.6rem;
	line-height: 1.2;
}

@media screen and (max-width: 768px) {
	.c-heading {
		margin-bottom: 2rem;
	}
	.c-heading__lg {
		font-size: 2.4rem;
	}
}

/* ==================================================

	[ COMPONENT ] HEADLINE

*/
.c-headline {
	text-align: center;
	line-height: 1.4;
}
.c-headline span {
	display: block;
	margin-top: 1rem;
}
.c-headline__lg {
	display: block;
	font-weight: 500;
	font-size: 4.8rem;
	line-height: 1.2;
}

@media screen and (max-width: 768px) {
	.c-headline__lg {
		font-size: 3rem;
	}
}

/* ==================================================

	[ COMPONENT ] BUTTON

*/
.c-button-wrap {
	display: flex;
	justify-content: center;
}
.c-headline + .c-button-wrap {
	margin-top: 5rem;
}
.c-button-normal,
.c-button-reverse {
	position: relative;
	display: block;
	box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.25);
}
.c-button-normal::before,
.c-button-reverse::before {
	content: '';
	display: block;
	position: absolute;
	inset: 0;
	background-color: #b70826;
	opacity: 0;
}
.c-button-normal span,
.c-button-reverse span {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	padding: 1rem 2rem;
	min-width: 30rem;
	min-height: 6rem;
	font-size: 1.6rem;
	line-height: 1.5;
}
.c-button-normal i,
.c-button-reverse i {
	display: block;
	margin-left: 0.6rem;
}
.c-button-normal {
	background-color: #000;
	background-image: linear-gradient(125deg,#222 0%, #000 100%);
	color: #fff;
}
.c-button-reverse {
	background-color: #fff;
	background-image: linear-gradient(125deg,#ddd 0%, #fff 100%);
	color: #000;
}

@media (any-hover: hover) {
	.c-button-normal,
	.c-button-reverse {
		transition: color 0.3s ease;
	}
	.c-button-normal::before,
	.c-button-reverse::before {
		transition: opacity 0.3s ease;
	}
	.c-button-normal:hover,
	.c-button-reverse:hover {
		color: #fff;
	}
	.c-button-normal:hover::before,
	.c-button-reverse:hover::before {
		opacity: 1;
	}
}

@media screen and (max-width: 768px) {
	.c-button-normal span,
	.c-button-reverse span {
		min-width: 30rem;
		min-height: 5rem;
		font-size: 1.4rem;
	}
}

/* ==================================================

	[ COMPONENT ] TAB

*/
.c-tab {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2rem;
	margin-bottom: 4rem;
	font-size: 2rem;
	line-height: 1.1;
}
.c-tab a {
	display: block;
	padding: 1.2rem 1.6rem;
	background-color: #fff;
}
.c-tab .current {
	background-color: #000;
	color: #fff;
	pointer-events: none;
}

@media (any-hover: hover) {
	.c-tab a {
		transition: bacground-color 0.3s ease, color 0.3s ease;
	}
	.c-tab a:hover {
		background-color: #b70826;
		color: #fff;
	}
}

@media screen and (max-width: 768px) {
	.c-tab {
		gap: 1rem;
		margin-bottom: 2rem;
		font-size: 1.4rem;
	}
	.c-tab a {
		padding: 1rem 1.2rem;
	}
}

/* ==================================================

	[ LAYOUT ] HEADER

*/
.l-header {
	position: fixed;
	z-index: 100;
	top: 0;
	left: 0;
	width: 100%;
}
.l-header__content {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 10rem;
	background-color: rgba(255,255,255,0.8);
	box-shadow: 0 0 1rem rgba(0,0,0,0.15);
}
.l-header__logo {
	width: 11.4rem;
}
.l-header__logo a,
.l-header__logo img {
	display: block;
}
.l-header__toggle {
	position: absolute;
	z-index: 110;
	top: 0;
	left: 0;
	width: 10rem;
	height: 100%;
	background-color: #000;
	font-size: 3.6rem;
	color: #fff;
}
.l-header__toggle i {
	display: block;
}
.l-header__toggle .icon-close {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	opacity: 0;
}
.l-header__toggle[aria-expanded='true'] {
	background-color: #fff;
	color: #000;
}
.l-header__toggle[aria-expanded='true'] .icon-hamburger {
	opacity: 0;
}
.l-header__toggle[aria-expanded='true'] .icon-close {
	opacity: 1;
}

@media screen and (max-width: 768px) {
	.l-header__content {
		height: 6rem;
	}
	.l-header__logo {
		width: 10rem;
	}
	.l-header__toggle {
		width: 6rem;
		font-size: 2.6rem;
	}
}

/* ==================================================

	[ LAYOUT ] MEGAMENU

*/
.l-megamenu {
	overflow: hidden;
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	width: 30rem;
	background-color: #fff;
	box-shadow: 0 0 1rem rgba(0,0,0,0.25);
	font-size: 2.2rem;
	line-height: 1.2;
	transform: translateX(-105%);
}
.loaded .l-megamenu {
	transition: transform 0.3s ease-in-out;
}
.l-megamenu[aria-hidden='false'] {
	transform: translateX(0);
}
.l-megamenu nav {
	margin-right: -5rem;
	padding: 12rem 0 5rem 5rem;
	height: 100%;
	overflow-y: scroll;
	text-align: left;
}
.l-megamenu nav > ul {
	width: 20rem;
}
.l-megamenu nav ul li {
	margin-bottom: 2rem;
}
.l-megamenu nav ul ul {
	padding: 2rem 0 1rem 2rem;
	font-size: 1.6rem;
}
.l-megamenu nav ul ul li {
	margin-bottom: 2.4rem;
}
.l-megamenu nav ul ul li:last-child {
	margin-bottom: 0;
}
.l-megamenu nav button {
	display: block;
	width: 100%;
	position: relative;
	text-align: left;
}
.l-megamenu nav button i {
	display: block;
	position: absolute;
	top: 50%;
	left: 18.2rem;
	margin-top: -1rem;
	width: 1.6rem;
	height: 1.6rem;
}
.l-megamenu nav button i::before,
.l-megamenu nav button i::after {
	content: '';
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 2px;
	background-color: #666;
	border-radius: 99rem;
}
.l-megamenu nav button i::after {
	transform: rotate(90deg);
}
.l-megamenu nav button[aria-expanded="true"] i::after {
	opacity: 0;
}
.l-megamenu nav button + div {
	overflow: hidden;
	height: 0;
}
@media screen and (max-width: 768px) {
	.megamenu {
		display: block;
	}
}

/* ==================================================

	[ LAYOUT ] FOOTER

*/
.l-footer {
	padding: 10rem 0 6rem 0;
	line-height: 1.2;
}
.l-footer button {
	cursor: default;
}
.l-footer__logo {
	margin: 0 auto;
	width: 15rem;
}
.l-footer nav {
	margin-top: 3rem;
}
.l-footer nav > ul {
	display: flex;
	justify-content: center;
	gap: 3rem;
	font-weight: 500;
	font-size: 1.6rem;
}
.l-footer__subnav--pc {
	display: table;
	margin-top: 1.5rem;
	font-weight: 400;
	font-size: 1.4rem;
	white-space: nowrap;
}
.l-footer__subnav--pc ul {
	display: table-row;
}
.l-footer__subnav--pc li {
	display: table-cell;
	padding-bottom: 1.5rem;
}
.l-footer__subnav--pc li:first-child {
	padding-right: 2rem;
}
.l-footer small {
	display: block;
	margin: 4rem 0 0 0;
	text-align: center;
	font-size: 1.4rem;
}

.l-footer__subnav--sp {
	display: none;
}

@media screen and (min-width: 769px) {
	.l-footer__subnav {
		height: auto !important;
	}
}
@media screen and (max-width: 768px) {
	.l-footer {
		padding: 5rem 1rem 4rem 1rem;
	}
	.l-footer nav > ul {
		display: block;
	}
	.l-footer nav > ul > li {
		padding-bottom: 2rem;
	}
	.l-footer nav button {
		display: block;
		width: 100%;
		position: relative;
		text-align: left;
	}
	.l-footer nav button i {
		position: absolute;
		top: 50%;
		right: 0;
		width: 1.6rem;
		height: 1.6rem;
		transform: translateY(-50%);
	}
	.l-footer nav button i::before,
	.l-footer nav button i::after {
		content: '';
		display: block;
		position: absolute;
		top: 50%;
		left: 0;
		width: 100%;
		height: 2px;
		background-color: #666;
    border-radius: 99rem;
	}
	.l-footer nav button i::after {
		transform: rotate(90deg);
	}
	.l-footer nav button[aria-expanded="true"] i::after {
		opacity: 0;
	}
	.l-footer__subnav {
		overflow: hidden;
		height: 0;
	}
	.l-footer__subnav--pc {
		display: none;
	}
	.l-footer__subnav--sp {
		display: block;
		padding-left: 2rem;
		font-size: 1.4rem;
	}
	.l-footer__subnav--sp li {
		padding-top: 1.5rem;
	}
	.l-footer small {
		margin: 2rem 0 0 0;
	}
}

/* ==================================================

	[ LAYOUT ] CONTAINER

*/
.l-container {
	position: relative;
	margin: 0 auto;
	padding: 0 5rem;
	max-width: 118rem;
}

@media screen and (max-width: 768px) {
	.l-container {
		padding: 0 1rem;
		max-width: initial;
	}
}

/* ==================================================

	[ LAYOUT ] BREADCRUMBS

*/
.l-breadcrumbs {
	position: relative;
	z-index: 50;
	width: 100%;
	padding: 2rem 10rem;
	line-height: 1.5;
}
main.has-main-kv .l-breadcrumbs {
	position: absolute;
	top: 10rem;
}
.l-breadcrumbs--white {
	text-shadow: 0 0 1rem #000;
	color: #fff;
}
.l-breadcrumbs + section {
	margin-top: 2rem;
}
.l-breadcrumbs ul {
	display: flex;
}
.l-breadcrumbs ul li {
	display: flex;
	align-items: center;
}
.l-breadcrumbs ul li::after {
	content: '';
	display: block;
	margin: 0.1em 0.5em 0 0.5em;
	width: 0.8em;
	height: 0.8em;
	background-repeat: no-repeat;
	background-position: center;
	background-image: url(../img/arrow-breadcrumbs.svg);
	background-size: contain;
}
.l-breadcrumbs--white ul li::after {
	background-image: url(../img/arrow-breadcrumbs-white.svg);
}
.l-breadcrumbs ul li:last-child::after {
	content: none;
}

@media screen and (max-width: 768px) {
	.l-breadcrumbs {
		padding: 1.5rem 1rem 0 1rem;
	}
	main.has-main-kv .l-breadcrumbs {
		top: 6rem;
	}
}

/* ==================================================

	[ LAYOUT ] PAGINATION

*/
.l-pagination ul {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1.5rem;
	font-size: 1.6rem;
	line-height: 1.2;
	color: #666;
}
.l-pagination .disabled {
	opacity: 0.2;
}
.l-pagination i {
	font-size: 1.4rem;
	color: #000;
}
.l-pagination .current {
	font-weight: 700;
	color: #000;
}

@media (any-hover: hover) {
	.l-pagination a:hover {
		color: #000;
	}
}

/* ==================================================

	[ LAYOUT ] FOOT MENU

*/
.l-foot-menu {
	display: flex;
	margin-top: 10rem;
}
.l-foot-menu section {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-basis: 50%;
	margin: 0;
	height: 30rem;
	background-position: center;
	background-size: cover;
	color: #fff;
}
.l-foot-menu .c-heading {
	margin-bottom: 1.5rem;
}
.l-foot-menu--about {
	background-image: url(../img/nav-about.jpg);
}
.l-foot-menu--dealer {
	background-image: url(../img/nav-dealer.jpg);
}

@media screen and (max-width: 768px) {
	.l-foot-menu {
		display: block;
		margin-top: 4rem;
	}
	.l-foot-menu section {
		height: 20rem;
	}
}

/* ==================================================

	[ LAYOUT ] ARCHIVE

*/
.l-archive {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -2rem;
}
.l-archive__item {
	flex-basis: 33.333%;
	margin-bottom: 4rem;
	padding: 0 2rem;
}
.l-archive__card {
	position: relative;
	display: block;
	height: 100%;
	background-color: #fff;
}
.l-archive__thumb {
	overflow: hidden;
	width: 100%;
	aspect-ratio: 330 / 220;
}
.l-archive__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.l-archive__detail {
	padding: 3rem 3.5rem 7rem 3.5rem;
}
.l-archive__detail p {
	margin: 0.5rem 0;
	line-height: 1.5;
}
.l-archive__title {
	margin-top: 0.5rem;
	font-weight: 500;
	font-size: 2rem;
	line-height: 1.5;
}
.l-archive__price {
	font-weight: 500;
	font-size: 2rem;
	line-height: 1.5;
	text-align: right;
}
.l-archive__link {
	position: relative;
	padding-right: 2rem;
	font-weight: 500;
	font-size: 2rem;
	line-height: 1.5;
}
.l-archive__link i {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	font-size: 1.6rem;
}
.l-archive__date {
	margin-top: 0.6rem;
	font-weight: 300;
}
.l-archive__lead {
	margin-top: 0.6rem;
	overflow: hidden;
	display: -webkit-box;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
}
.l-archive__foot {
	position: absolute;
	bottom: 3rem;
	right: 3.5rem;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	font-weight: 500;
	font-size: 1.6rem;
}
.l-archive__foot i {
	margin-left: 0.6rem;
}

@media (any-hover: hover) {
	a.l-archive__card {
		transition: box-shadow 0.3s ease;
	}
	a.l-archive__card:hover {
		box-shadow: 0 0 3rem rgba(0,0,0,0.2);
	}
}

@media screen and (max-width: 768px) {
	.l-archive {
		display: block;
		flex-wrap: wrap;
		margin: 0;
	}
	.l-archive__item {
		margin-bottom: 2rem;
		padding: 0;
	}
	.l-archive__detail {
		padding: 1.8rem 2rem 1.5rem 2rem;
	}
	.l-archive__title {
		font-size: 1.6rem;
	}
	.l-archive__link {
		font-size: 1.6rem;
		line-height: 1.5;
	}
	.l-archive__link i {
		font-size: 1.4rem;
	}
	.l-archive__foot {
		position: static;
		margin-top: 0.6rem;
		font-weight: 500;
		font-size: 1.4rem;
	}
	.l-archive__foot i {
		margin-left: 0.6rem;
	}
}

/* ==================================================

	[ LAYOUT ] MAIN SLIDER

*/
.l-main-slider {
	position: relative;
	max-height: 100vh;
	margin: 0;
	background-color: #000;
}
.l-main-slider__item {
	overflow: hidden;
	position: absolute;
	inset: 0;
	z-index: 10;
	opacity: 0;
	transition: opacity 1s ease;
}
.l-main-slider__item[aria-hidden="false"] {
	z-index: 20;
}
.l-main-slider__item.show {
	opacity: 1;
}
.l-main-slider__kv {
	position: absolute;
	inset: 0;
}
.l-main-slider__kv > div {
	width: 100%;
	height: 100%;
}
.l-main-slider__kv > div[aria-hidden="true"] {
	display: none;
}
.l-main-slider__kv img,
.l-main-slider__kv video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.l-main-slider__ctr {
	position: absolute;
	z-index: 21;
	bottom: 2rem;
	left: 0;
	display: flex;
	justify-content: center;
	gap: 1rem;
	width: 100%;
}
.l-main-slider__ctr button {
	display: block;
	width: 2rem;
	height: 0.2rem;
	background-color: #ccc;
	transition: background-color 0.2s ease;
}
.l-main-slider__ctr button.current {
	background-color: #c00;
	pointer-events: none;
}

/* ==================================================

	[ LAYOUT ]  KV

*/
.l-kv {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1s ease;
}
.l-kv.active {
	opacity: 1;
}
.l-kv > div {
	width: 100%;
	height: 100%;
}
.l-kv > div[aria-hidden="true"] {
	display: none;
}
.l-kv img,
.l-kv video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ==================================================

	[ LAYOUT ] GALLERY

*/
.l-gallery__item {
	padding: 0 3px;
	height: 30.47vw;
}
.l-gallery img {
	width: auto;
	height: 100%;
}
.l-gallery .slick-arrow {
	position: absolute;
	z-index: 1;
	top: 50%;
	font-size: 4.8rem;
	color: #fff;
	transform: translateY(-50%);
	text-shadow: 0 0 0.5rem rgba(0,0,0,0.6);
}
.l-gallery .slick-prev {
	left: 8rem;
}
.l-gallery .slick-next {
	right: 8rem;
}
.l-gallery-single {
	display: flex;
	justify-content: center;
}

@media screen and (max-width: 768px) {
	.l-gallery__item {
		padding: 0;
		height: 68vw;
	}
	.l-gallery .slick-arrow {
		padding: 0.5rem;
		font-size: 2.4rem;
	}
	.l-gallery .slick-prev {
		left: 0;
	}
	.l-gallery .slick-next {
		right: 0;
	}
}

/* ==================================================

	[ HOME ]

*/
.p-home .l-foot-menu section {
	height: 46.875vw;
	max-height: 60rem;
}

@media screen and (max-width: 768px) {
	.p-home .l-foot-menu section {
		height: 20rem;
		max-height: initial;
	}
}

/* ==================================================

	[ HOME ] MAIN

*/
.p-home-main {
	max-height: 100vh;
	height: 62.5vw;
}
.p-home-main__wrap {
	position: relative;
	z-index: 10;
	display: flex;
	align-items: flex-end;
	padding: 5rem 10rem;
	width: 100%;
	height: 100%;
}
.p-home-main__title {
	margin-bottom: 2rem;
	font-weight: 500;
	font-size: 4.8rem;
	line-height: 1.2;
	color: #fff;
}
.p-home-main__foot {
	display: flex;
}

@media screen and (max-width: 768px) {
	.p-home-main {
		max-height: 100vh;
		height: 100dvh;
	}
	.p-home-main__wrap {
		padding: 4rem 2rem;
	}
	.p-home-main__title {
		margin-bottom: 2rem;
		font-size: 2.4rem;
	}
	.p-home-main__foot a span {
		min-width: initial;
	}
}

/* ==================================================

	[ HOME ] NEWS

*/
.p-home-news {

}

/* ==================================================

	[ HOME ] PRODUCTS

*/
.p-home-products {
	margin-bottom: -4rem;
}

@media screen and (max-width: 768px) {
	.p-home-products {
		margin-bottom: 0;
	}
}

/* ==================================================

	[ HOME ] COMPLETE CAR MAIN

*/
.p-home-complete-car-main {
	position: relative;
	margin-bottom: 4.4rem;
	padding: 7rem 0 8rem 0;
	background-color: #000;
	color: #fff;
}
.p-home-complete-car-main .l-container {
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	min-height: 45rem;
}
.p-home-complete-car-main__wrap {
	width: 46rem;
}
.p-home-complete-car-main__wrap h3 {
	font-size: 6.4rem;
	line-height: 1.2;
}
.p-home-complete-car-main__lead {
	margin: 1.5rem 0 3rem 0;
}
.p-home-complete-car-main__foot {
	display: flex;
}

@media screen and (max-width: 768px) {
	.p-home-complete-car-main {
		margin-bottom: 4.4rem;
		padding: 1rem 0 1rem 0;
	}
	.p-home-complete-car-main .l-container {
		min-height: 100dvh;
	}
	.p-home-complete-car-main__wrap {
		width: auto;
	}
	.p-home-complete-car-main__wrap h3 {
		font-size: 3.2rem;
	}
	.p-home-complete-car-main__lead {
		margin: 1.5rem 0 2rem 0;
	}
	.p-home-complete-car-main__foot {
		display: block;
	}
	.p-home-complete-car-main__foot a {
		min-width: initial;
	}
}

/* ==================================================

	[ NEWS ] ARCHIVE

*/
.p-news-archive .l-archive {
	padding-top: 4rem;
}

@media screen and (max-width: 768px) {
	.p-news-archive .l-archive {
		padding-top: 2rem;
	}
}

/* ==================================================

	[ NEWS ] MAIN

*/
.p-news-main {
	max-height: 100vh;
	height: 62.5vw;
}
.p-news-main img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.p-news-main-null {
	height: 10rem;
}

@media screen and (max-width: 768px) {
	.p-news-main {
		max-height: 100dvh;
		height: 100dvh;
	}
}

/* ==================================================

	[ NEWS ] ARTICLE

*/
.p-news-article__gallery,
.p-news-article__text {
	margin: 5rem 0;
}

@media screen and (max-width: 768px) {
	.p-news-article__gallery,
	.p-news-article__text {
		margin: 2rem 0;
	}
}

/* ==================================================

	[ PRODUCTS ] ARCHIVE

*/
.p-products-archive {
}
.p-products-archive .l-archive {
	padding-top: 4rem;
}
.p-products-archive .l-archive__detail {
	padding-top: 2.5rem;
	padding-bottom: 3rem;
}

/* ==================================================

	[ PRODUCTS ] KV

*/
.p-products-kv {
	position: relative;
	height: 50rem;
	background-color: #000;
}

@media screen and (max-width: 768px) {
	.p-products-kv {
		height: 100dvh;
	}
}

/* ==================================================

	[ PRODUCTS ] MAIN

*/
.p-products-main {
	margin-bottom: 0rem;
}
.p-products-main__image {
	margin-top: 5rem;
	mix-blend-mode: multiply;
}

/* ==================================================

	[ PRODUCTS ] ITEM

*/
.p-products-items {
	margin-top: 6rem;
}
.p-products-items .l-gallery {
	padding-bottom: 4rem;
}
.p-products-items .l-archive__detail {
	padding-bottom: 3rem;
}

/* ==================================================

	[ PRODUCTS ] FOOT

*/
.p-products-foot {
	margin: 6rem auto 0 auto;
	padding: 0 5rem;
	max-width: 118rem;
}

/* ==================================================

	[ ABOUT ] MAIN

*/
.p-about-main {
	position: relative;
	height: 60rem;
	background-color: #000;
}

@media screen and (max-width: 768px) {
	.p-about-main {
		height: 100dvh;
	}
}

/* ==================================================

	[ ABOUT ] DETAIL

*/
.p-about-detail .c-headline {
	margin-bottom: 4rem;
}
.p-about-detail .l-gallery {
	margin: 5rem 0;
}
.p-about-detail .l-gallery__item {
	height: 60rem;
}

@media screen and (max-width: 768px) {
	.p-about-detail .c-headline {
		margin-bottom: 2rem;
	}
	.p-about-detail .l-gallery {
		margin: 2rem 0;
	}
	.p-about-detail .l-gallery__item {
		height: 100vw;
	}
}

/* ==================================================

	[ COMPLETE CAR ] MAIN

*/
.p-complete-car-main {
	position: relative;
	height: 53.125vw;
	max-height: 68rem;
	background-color: #000;
}

@media screen and (max-width: 768px) {
	.p-complete-car-main {
		height: 100dvh;
	}
}

/* ==================================================

	[ COMPLETE CAR ] ARCHIVE

*/
.p-complete-car-archive {
	margin-bottom: -4rem;
}
.p-complete-car-archive__lead {
	margin: 4rem 0 5rem 0;
	text-align: center;
}
.p-complete-car-archive .l-archive__detail {
	padding-top: 2.5rem;
	padding-bottom: 3rem;
}

@media screen and (max-width: 768px) {
	.p-complete-car-archive {
		margin-bottom: 0;
	}
	.p-complete-car-archive__lead {
		margin: 2rem 0 2rem 0;
	}
}

/* ==================================================

	[ COMPLETE CAR ] DETAIL KV

*/
.p-complete-car-detail-kv {
	position: relative;
	height: 50rem;
	background-color: #000;
}

@media screen and (max-width: 768px) {
	.p-complete-car-detail-kv {
		height: 100dvh;
	}
}

/* ==================================================

	[ COMPLETE CAR ] DETAIL MAIN

*/
.p-complete-car-detail-main {

}

/* ==================================================

	[ COMPLETE CAR ] DETAIL DATA

*/
.p-complete-car-detail-data {
	margin-top: 10rem;
	padding: 6rem 0;
	background-color: #eee;
	text-align: center;
	font-size: 2rem;
	line-height: 1;
}
.p-complete-car-detail-data ul {
	display: flex;
	justify-content: center;
	gap: 10rem;
}
.p-complete-car-detail-data__number {
	margin: 0.5rem 0;
	font-size: 9.6rem;
	color: #c00;
}

@media screen and (max-width: 768px) {
	.p-complete-car-detail-data {
		margin-top: 3rem;
		padding: 1rem 0;
		font-size: 1.6rem;
	}
	.p-complete-car-detail-data ul {
		flex-wrap: wrap;
		gap: 0;
	}
	.p-complete-car-detail-data li {
		flex-basis: 50%;
		padding: 1.5rem 0;
	}
	.p-complete-car-detail-data__number {
		margin: 0.5rem 0;
		font-size: 6.4rem;
	}
}

/* ==================================================

	[ COMPLETE CAR ] DETAIL SECTION

*/
.p-complete-car-detail-section {
	
}

/* ==================================================

	[ COMPLETE CAR ] GALLERY

*/
.p-complete-gallery {
	margin-top: 10rem;
}
@media screen and (max-width: 768px) {
	.p-complete-gallery {
		margin-top: 4rem;
	}
}

/* ==================================================

	[ CONTACT ] MAIN

*/
.p-contact-main {
	margin-bottom: 4rem;
}
.p-contact-main .c-heading {
	margin-top: 4rem;
}
.p-contact-main__message {
	padding-bottom: 5rem;
}
@media screen and (max-width: 768px) {
	.p-contact-main {
		margin-bottom: 2rem;
	}
	.p-contact-main__message {
		padding-bottom: 3rem;
	}
}

/* ==================================================

	[ CONTACT ] COMPANY

*/
.p-contact-company {
	margin: 0;
	padding: 4rem 0;
	background-color: #666;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	line-height: 1.5;
	color: #fff;
}
.p-contact-company h2 {
	font-size: 2rem;
}

@media screen and (max-width: 768px) {
	.p-contact-company {
		padding: 3rem 0;
		font-size: 1.4rem;
	}
	.p-contact-company h2 {
		font-size: 1.6rem;
	}
}

/* ==================================================

	[ CONTACT ] INPUT

*/
.p-contact-input {
	font-family: "Noto Sans JP", sans-serif;
}
.p-contact-input input[type="text"],
.p-contact-input textarea {
	display: block;
	width: 100%;
	border-bottom: 1px solid #999;
	font-size: 2rem;
	outline: none;
}
.p-contact-input input[type="text"]:focus,
.p-contact-input textarea:focus {
	border-bottom-color: #000;
}
.p-contact-input textarea {
	height: 14rem;
}
.p-contact-input__frame {
	padding: 8rem 10rem;
	background-color: #fff;
}
.p-contact-input__frame h2 {
	margin-bottom: 3rem;
	font-size: 2rem;
}
.p-contact-input__inline {
	display: flex;
	flex-wrap: wrap;
	gap: 0 3rem;
	margin-bottom: 1.5rem;
	font-size: 1.6rem;
}
.p-contact-input__inline label {
	display: flex;
	align-items: center;
}
.p-contact-input__items {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -2rem;
	padding-bottom: 1rem;
}
.p-contact-input__items > div {
	flex-basis: 50%;
	padding: 0 2rem 2rem 2rem;
}
.p-contact-input__items > div:last-child {
	flex-basis: 100%;
}
.p-contact-input__submit {
	display: flex;
	justify-content: center;
}
.p-contact-input__submit button {
	display: block;
	position: relative;
	background-color: #000;
	background-image: linear-gradient(125deg,#222 0%, #000 100%);
	box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.25);
}
.p-contact-input__submit button::before {
	content: '';
	display: block;
	position: absolute;
	inset: 0;
	background-color: #b70826;
	opacity: 0;
}
.p-contact-input__submit button span {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	min-width: 30rem;
	height: 6rem;
	color: #fff;
	font-size: 1.6rem;
}
.p-contact-input__submit button i {
	display: block;
	margin-left: 0.6rem;
	font-size: 2.2rem;
}
.p-contact-input .alert {
	flex-basis: 100%;
	width: 100%;
	font-size: 1.6rem;
	font-weight: 700;
	color: #f00;
}

@media (any-hover: hover) {
	.p-contact-input__submit button {
		transition: color 0.3s ease;
	}
	.p-contact-input__submit button:hover {
		color: #fff;
	}
	.p-contact-input__submit button::before {
		transition: opacity 0.3s ease;
	}
	.p-contact-input__submit button:hover::before {
		opacity: 1;
	}
}

@media screen and (max-width: 768px) {
	.p-contact-input input[type="text"],
	.p-contact-input textarea {
		padding-top: 0.5rem;
		padding-bottom: 0.5rem;
		font-size: 1.6rem;
	}
	.p-contact-input textarea {
		height: 14rem;
	}
	.p-contact-input__frame {
		padding: 3rem 2rem;
	}
	.p-contact-input__frame h2 {
		margin-bottom: 1rem;
		font-size: 1.6rem;
	}
	.p-contact-input__inline {
		display: block;
		margin-bottom: 0;
		padding-bottom: 1rem;
		font-size: 1.4rem;
	}
	.p-contact-input__inline div {
		margin-bottom: 0.5rem;
	}
	.p-contact-input__items {
		display: block;
		margin: 0;
		padding-bottom: 0;
	}
	.p-contact-input__items > div {
		margin-bottom: 1rem;
		padding: 0;
	}
	.p-contact-input__submit {
		margin-top: 2rem;
	}
	.p-contact-input__submit button span {
		height: 5rem;
		font-size: 1.4rem;
	}
	.p-contact-input__submit button i {
		font-size: 2rem;
	}
	.p-contact-input .alert {
		font-size: 1.4rem;
	}
}

/* ==================================================

	[ DEALER ] MAIN

*/
.p-dealer-main {
}

@media screen and (max-width: 768px) {
	.p-dealer-main {
		margin-bottom: 2rem;
	}
}

.p-dealer-category {
	margin-top: 5rem;
	text-align: center;
	font-weight: 500;
	font-size: 3.6rem;
	line-height: 1.2;
}
@media screen and (max-width: 768px) {
	.p-dealer-category {
		margin: 3rem 0 2rem 0;
		font-size: 2.6rem;
	}
}

/* ==================================================

	[ DEALER ] LIST

*/
.p-dealer-list {
	margin: 4rem 0 -4rem 0;
}
.p-dealer-list__list {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -2.2rem;
}
.p-dealer-list__list li {
	flex-basis: 33.333%;
	padding: 0 2.2rem 4.5rem 2.2rem;
}
.p-dealer-list__card {
	display: block;
	padding: 3rem 3.5rem;
	height: 100%;
	background-color: #fff;
	line-height: 1.5;
}
.p-dealer-list__name {
	margin-bottom: 0.5rem;
	font-size: 2rem;
	line-height: 1.5;
}
.p-dealer-list__foot {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	margin-top: 0.5rem;
	font-size: 1.6rem;
}
.p-dealer-list__foot i {
	display: block;
	margin-left: 0.6rem;
}

@media screen and (max-width: 768px) {
	.p-dealer-list {
		margin: 0;
	}
	.p-dealer-list__list {
		margin: 0 -1rem;
	}
	.p-dealer-list__list li {
		flex-basis: 50%;
		padding: 0 1rem 2rem 1rem;
	}
	.p-dealer-list__card {
		padding: 1.8rem 2rem;
	}
	.p-dealer-list__name {
		margin-bottom: 0.5rem;
		font-size: 1.6rem;
	}
	.p-dealer-list__foot {
		margin-top: 0.8rem;
		font-size: 1.4rem;
	}
}