@charset "utf-8";

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,p,blockquote,th,td,main,figure{margin:0;padding:0}table{font-size:100%;font-family:inherit}fieldset,img{border:0}img,svg,video{vertical-align:middle}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%}q:before,q:after{content:''}abbr,acronym{border:0}select,input,textarea{font-size:100%}header,footer,nav,main,section,article,figure,aside,picture{display:block}.clearfix:after,.row:after{content:"";display:table;clear:both}._fl{float:left}._fr{float:right}@media screen and (min-width: 768px),print{._pc_fl{float:left}._pc_fr{float:right}}@media screen and (max-width: 767px){._sp_fl{float:left}._sp_fr{float:right}}._tal{text-align:left!important}._tac{text-align:center!important}._tar{text-align:right!important}@media screen and (min-width: 768px),print{._pc_tal{text-align:left!important}._pc_tac{text-align:center!important}._pc_tar{text-align:right!important}}@media screen and (max-width: 767px){._sp_tal{text-align:left!important}._sp_tac{text-align:center!important}._sp_tar{text-align:right!important}}


/* 変数
====================================================================== */
:root {
	--vw: 1vw;
	--color-base: #000000;
	--color-base-op0: rgba(0,0,0,0);
	--color-theme: #8e7a68;
	--color-theme-light: #dbcfb8;
	--color-red: #e60113;
	--bg-black: #363636;
	--bg-gray: #f2f2f2;
	--color-link: #363636;
	--color-link-op0: rgba(54,54,54,0);
	--base-width: 112rem;
	--base-small-width: 98rem;
	--sp-base-padding: 2rem;
	--font-family-jp: 'Zen Kaku Gothic New', sans-serif;
	--font-family-en: 'Sofia Sans', sans-serif;
	--font-family-en2: 'Jost', sans-serif;
	--font-family-num: 'EB Garamond', serif;
	--font-weight: 400;
	--font-weight-medium: 500;
	--font-weight-bold: 700;
	--transition-duration: .3s;
	--transition: var(--transition-duration) ease-in-out;
	--minimum: max(1px, .1rem);
}

/* ========================================================
	template.css => テンプレート用CSS
======================================================== */
html {
	font-size: 62.5%;
	scroll-behavior: smooth;
}
html.no-scroll-behavior {
	scroll-behavior: auto;
}
@media screen and (min-width: 768px), print {
	html {
		font-size: calc((10 / 1200) * var(--vw) * 100);
	}
}
@media screen and (max-width: 767px) {
	html {
		font-size: calc((10 / 375) * var(--vw) * 100);
	}
}
body {
	background-color: #fff;
	font-size: 1.6rem;
	line-height: calc(30 / 16);
	color: var(--color-base);
	word-wrap: break-word;
	overflow-wrap: break-word;
	letter-spacing: .05em;

	font-family: var(--font-family-jp);
	font-weight: var(--font-weight);
	font-style: normal;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}
:where(address,caption,cite,code,dfn,em,th,var) {
	font-style: normal;
	font-weight: var(--font-weight);
}
:where(h1,h2,h3,h4,h5,h6) {
	font-weight: var(--font-weight-bold);
}
:where(img) {
	max-width: 100%;
	width: 100%;
	height: auto;
}
:where(iframe) {
	max-width: 100%;
	vertical-align: middle;
}
:where(sup) {
	vertical-align: super;
	font-size: 60%;
}
:where(table) {
	border-collapse: collapse;
	border-spacing: 0;
	line-height: inherit;
}
:where(a) {
	color: var(--color-link);
	text-decoration-line: underline;
	text-decoration-style: solid;
	text-decoration-thickness: 1px;
	text-decoration-color: var(--color-link);
	text-underline-offset: .3em;
	outline: none;
	cursor: pointer;
}
:where(a._a_reverse,._a_reverse a) {
	text-decoration-color: var(--color-link-op0);
}
@media (hover) {
	:where(a,button,._basic_trs,._hl),
	:where(a,button,._basic_trs,._hl)::before,
	:where(a,button,._basic_trs,._hl)::after {
		transition: color var(--transition), background var(--transition), border var(--transition), opacity var(--transition), text-decoration-color .2s ease-in-out;
	}
	:where(a svg) {
		transition: fill var(--transition);
	}
	:where(a:hover) {
		text-decoration-color: var(--color-link-op0);
	}
	:where(a._a_reverse, ._a_reverse a):hover {
		text-decoration-color: var(--color-link);
	}
	:where(a._a_reverse.-hvw),
	:where(._a_reverse.-hvw a) {
		text-decoration-color: rgba(255,255,255,0);
	}
	:where(a._a_reverse.-hvw):hover,
	:where(._a_reverse.-hvw a):hover {
		text-decoration-color: #fff;
	}
	:where(a._a_reverse.-hvbk),
	:where(._a_reverse.-hvbk a) {
		text-decoration-color: var(--color-base-op0);
	}
	:where(a._a_reverse.-hvbk):hover,
	:where(._a_reverse.-hvbk a):hover {
		text-decoration-color: var(--color-base);
	}
}

:where(label) {
	cursor: pointer;
}
:where(input, select, textarea, button) {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	max-width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	border-radius: 0;
	vertical-align: middle;
	font-family: inherit;
	font-weight: inherit;
	font-feature-settings: inherit;
	outline: none;
	font-size: 100%;
}
::placeholder {
	color: #ccc;
}
:where(button) {
	cursor: pointer;
}

.hidden {
	display: none;
}
.slick-slider * {
	outline: none;
}

#top {
	display: block;
}

/* pc / sp
====================================================================== */
@media screen and (min-width: 768px), print {
	._sp {
		display: none !important;
	}
	._pc_break {
		position: relative;
		display: block;
		height: 0;
		overflow: hidden;
	}
	._pc_hidden {
		position: relative;
		overflow: hidden;
		display: block;
		height: 0;
	}
}
@media screen and (max-width: 767px) {
	._pc {
		display: none !important;
	}
	._sp_break {
		position: relative;
		display: block;
		height: 0;
		overflow: hidden;
	}
}

/* color
====================================================================== */
._c_base {
	color: var(--color-base) !important;
}
._bg_gray {
	background-color: var(--bg-gray);
}

/* font
====================================================================== */
._ff_en {
	font-family: var(--font-family-en);
	font-weight: 500;
}
._ff_en2 {
	font-family: var(--font-family-en2);
	font-weight: 500;
}
._ff_num {
	font-family: var(--font-family-num);
	font-weight: 400;
}
._fwn {
	font-weight: var(--font-weight);
}
._fwm {
	font-weight: var(--font-weight-medium);
}
._fwb {
	font-weight: var(--font-weight-bold);
}
._wsnw {
	white-space: nowrap;
}
@media screen and (min-width: 768px), print {
	._pc_wsnw {
		white-space: nowrap;
	}
}
@media screen and (max-width: 767px) {
	._sp_wsnw {
		white-space: nowrap;
	}
}

/* display
====================================================================== */
._db {
	display: block;
}
._dib {
	display: inline-block;
}
._dfcc {
	display: flex !important;
	justify-content: center;
	align-items: center;
}
@media screen and (min-width: 768px), print {
	._pc_dib {
		display: inline-block;
	}
	._pc_dfcc {
		display: flex !important;
		justify-content: center;
		align-items: center;
	}
}
@media screen and (max-width: 767px) {
	._sp_dib {
		display: inline-block;
	}
	._sp_dfcc {
		display: flex !important;
		justify-content: center;
		align-items: center;
	}
}

/* object-fit
====================================================================== */
img._of {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
img._of.-abs {
	position: absolute;
	top: 0;
	left: 0;
}
img._of.-bg {
	pointer-events: none;
	user-select: none;
	z-index: -1;
}
img._of.-top {
	object-position: 50% 0;
}
img._of.-bottom {
	object-position: 50% 100%;
}
@media screen and (min-width: 768px), print {
	img._of.-pc_none {
		object-fit: none;
	}
	img._of.-pc_top {
		object-position: 50% 0 ;
	}
	img._of.-pc_bottom {
		object-position: 50% 100%;
	}
	img._pc_of {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	img._pc_of.-abs {
		position: absolute;
		top: 0;
		left: 0;
	}
	img._pc_of.-bg {
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
	img._pc_of.-top {
		object-position: 50% 0;
	}
	img._pc_of.-none {
		object-fit: none;
	}
}
@media screen and (max-width: 767px) {
	img._of.-sp_top {
		object-position: 50% 0 ;
	}
	img._of.-sp_bottom {
		object-position: 50% 100%;
	}
	img._sp_of {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	img._sp_of.-abs {
		position: absolute;
		top: 0;
		left: 0;
	}
	img._sp_of.-bg {
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
	img._sp_of.-top {
		object-position: 50% 0 ;
	}
}

/* hover
====================================================================== */
@media (hover) {
	a ._hv_op {
		transition: opacity var(--transition);
	}
	a._hv_op:hover,
	a:hover ._hv_op,
	button._hv_op:hover,
	._hv_op a:hover {
		opacity: 0.5;
	}
	a._hv_op.-a30:hover,
	a:hover ._hv_op.-a30,
	._hv_op.-a50 a:hover {
		opacity: 0.7;
	}
	a._hv_op.-a20:hover,
	a:hover ._hv_op.-a20,
	._hv_op.-a20 a:hover {
		opacity: 0.8;
	}
	a._hv_op.-a10:hover,
	a:hover ._hv_op.-a10,
	._hv_op.-a10 a:hover {
		opacity: 0.9;
	}

	a._hv_wh {
		position: relative;
		display: block;
	}
	a._hv_wh::after {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background-color: #fff;
		opacity: 0;
	}
	a._hv_wh:hover::after {
		opacity: 0.3;
	}
}

._hv_zoom {
	position: relative;
	display: block;
	overflow: hidden;
}
._hv_zoom > * {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	background-repeat: no-repeat;
	background-position: 50%;
	background-size: cover;
}
._hv_zoom.-static > * {
	position: relative;
}
@media (hover) {
	a[href]._hv_zoom > *,
	a[href] ._hv_zoom > * {
		transition: transform 0.5s, opacity .3s;
	}
	a[href]:hover ._hv_zoom.-s > * {
		transform: scale(1.03);
	}
	a[href]:hover ._hv_zoom.-l > * {
		transform: scale(1.1);
	}
	a[href]:hover._hv_zoom > *,
	a[href]:hover ._hv_zoom > * {
		transform: scale(1.05);
	}
}


/* target
====================================================================== */
[id] {
	/* scroll-margin-top: 4rem; */
}

/* w
====================================================================== */
._w {
	position: relative;
}
@media screen and (min-width: 768px), print {
	._w {
		width: var(--base-width);
		margin-inline: auto;
	}
	._w.-s {
		width: var(--base-small-width);
	}
}
@media screen and (max-width: 767px) {
}

/* spパディング
====================================================================== */
@media screen and (max-width: 767px) {
	._sp_pd {
		padding-inline: var(--sp-base-padding) !important;
	}
	._sp_mg {
		margin-inline: var(--sp-base-padding) !important;
	}
	._sp_full {
		margin-inline: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_full_l {
		margin-left: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_full_r {
		margin-right: calc(var(--sp-base-padding) * -1) !important;
	}
}

/* keyframes
====================================================================== */
@keyframes rotate {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}
@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}
@keyframes updown {
	from {
		transform: translateY(-.3rem);
	}
	to {
		transform: translateY(.3rem);
	}
}

/* header
====================================================================== */
#header {
	position: relative;
}
#header .logo {
	margin-bottom: 5.2rem;
}
#header .logo a {
	display: flex;
	align-items: center;
	width: 14rem;
	height: 6rem;
}
#header h1 {
	padding-left: 0.3rem;
	font-size: 4.9rem;
	line-height: 1.2;
}
#header h1 .lead {
	display: block;
	margin-bottom: 2.4rem;
	font-size: 2.5rem;
}
#header h1 .lead .m {
	font-size: 3rem;
}
#header h1 .title {
	display: block;
}
#header h1 .red {
	color: var(--color-red);
	font-size: 6.1rem;
}
#header h1 .l {
	display: block;
	font-size: 8.1rem;
}
#header .point {
	display: flex;
	gap: 2.5rem;
	margin: 1.8rem .6rem;
}
#header .point li {
	position: relative;
	padding: 0 .3em;
	border: var(--minimum) solid;
	color: var(--color-theme);
	font-size: 2.4rem;
	line-height: 1.5;
	font-weight: var(--font-weight-bold);
}
#header .point li + li::before,
#header .point li + li::after {
	content: "";
	position: absolute;
	top: 50%;
	left: -2.5rem;
	width: 1.1rem;
	margin-inline: 0.7rem;
	border-top: var(--minimum) solid;
	transform: rotate(45deg);
}
#header .point li + li::after {
	transform: rotate(-45deg);
}
@media screen and (min-width: 768px), print {
	#header {
		height: 48.4rem;
	}
}
@media screen and (max-width: 767px) {
	#header {
		overflow: hidden;
	}
	#header .logo {
		margin-bottom: .5rem;
	}
	#header .logo a {
		width: 10.6rem;
	}
	#header h1 {
		padding-left: 0;
		font-size: 3rem;
		line-height: 1.2;
	}
	#header h1 .lead {
		margin-bottom: 0.6rem;
		font-size: 1.7rem;
	}
	#header h1 .lead .m {
		font-size: 2rem;
	}
	#header h1 .red {
		font-size: 3.8rem;
	}
	#header h1 .l {
		font-size: 3.8rem;
	}
	#header .point {
		gap: 1.6rem;
		margin: 1.8rem 0;
	}
	#header .point li {
		padding: .1em .4em;
		font-size: 1.5rem;
	}
	#header .point li + li::before,
	#header .point li + li::after {
		left: calc(-1.6rem - var(--minimum));
		width: 0.8rem;
		margin-inline: 0.4rem;
	}
}

#header .btn {
	position: absolute;
	z-index: 10;
}
#header .btn a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 10.8rem;
	height: 10.8rem;
	padding-bottom: 1.5rem;
	background: linear-gradient(to bottom right, #AC927C, #74604F);
	border-radius: 100%;
	text-decoration: none;
	color: #fff;
	text-align: center;
	font-size: 1.4rem;
	font-weight: var(--font-weight-bold);
	line-height: calc(17 / 14);
}
#header .btn a::before {
	content: "";
	position: absolute;
	top: calc(50% - 13rem / 2);
	left: calc(50% - 13rem / 2);
	width: 13rem;
	height: 13rem;
	background: url(../img/main-btn-en.svg) no-repeat 50%;
	background-size: 100%;
	pointer-events: none;
	animation: rotate 20s linear infinite;
}
#header .btn a::after {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	bottom: 0.6rem;
	width: 1.6rem;
	height: 1.6rem;
	margin-inline: auto;
	background: url(../img/ico-arrow.svg) no-repeat 50%;
	background-size: 100%;
	transform: rotate(90deg);
}
#header .btn a > span {
	padding-top: 2.8rem;
	background: url(../img/main-btn-ico.svg) no-repeat 50% 0;
	background-size: 2.6rem;
}
#header .btn a .l {
	font-size: 1.6rem;
	letter-spacing: 0;
}
@media screen and (min-width: 768px), print {
	#header .btn {
		left: 37.6rem;
		top: 27.8rem;
	}
}
@media screen and (max-width: 767px) {
	#header .btn {
		right: 2.2rem;
		top: 15.6rem;
	}
	#header .btn a {
		width: 9.1rem;
		height: 9.1rem;
		padding-bottom: 1.5rem;
		font-size: 1.3rem;
		line-height: calc(16 / 13);
	}
	#header .btn a::before {
		top: calc(50% - 11rem / 2);
		left: calc(50% - 11rem / 2);
		width: 11rem;
		height: 11rem;
	}
	#header .btn a::after {
		width: 1.4rem;
		height: 1.4rem;
	}
	#header .btn a > span {
		padding-top: 2.2rem;
		background-size: 2.2rem;
	}
	#header .btn a .l {
		font-size: 1.4rem;
	}
}

#header .images {
	position: relative;
	pointer-events: none;
}
#header .images .image {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	opacity: 0;
}
#header .images .image.show {
	transition: opacity 1.5s, transform 7s linear;
	opacity: 1;
}
#header .images .image.top {
	z-index: 3;
}
#header .images .deco::before,
#header .images .deco::after {
	content: "";
	position: absolute;
	border-width: 0;
	border-style: solid;
	border-color: #fff;
	z-index: 5;
}
#header .images .deco::before {
	border-left-width: var(--minimum);
}
#header .images .deco::after {
	border-top-width: var(--minimum);
}
@media screen and (min-width: 768px), print {
	#header .images {
		overflow: hidden;
		position: absolute;
		top: 0;
		right: 0;
		width: calc(50% + 2.4rem);
		height: 100%;
	}
	#header .images img {
		position: relative;
		top: -10%;
		width: auto;
		max-width: none;
		height: 120%;
	}
	#header .images .deco.-deco01::before {
		top: 0;
		left: 2.5rem;
		height: 5.1rem;
	}
	#header .images .deco.-deco01::after {
		top: 2.5rem;
		left: 0;
		width: 13.9rem;
	}
	#header .images .deco.-deco02::before {
		bottom: 0;
		right: 2.5rem;
		height: 13.2rem;
	}
	#header .images .deco.-deco02::after {
		bottom: 2.2rem;
		right: 0;
		width: 14rem;
	}
}
@media screen and (max-width: 767px) {
	#header .images {
		height: 34.4rem;
	}
	#header .images img {
		width: auto;
		max-width: none;
		height: 100%;
	}
	#header .images::before {
		content: "";
		position: absolute;
		top: -1rem;
		right: 0;
		width: 14.4rem;
		height: calc(2rem + 1rem);
		background-color: #fff;
		z-index: 5;
	}
	#header .images .deco.-deco01::before {
		top: 0;
		left: 2rem;
		height: 5.5rem;
	}
	#header .images .deco.-deco01::after {
		top: 2.4rem;
		left: 0;
		width: 12.4rem;
	}
	#header .images .deco.-deco02::before {
		bottom: 0;
		left: 2rem;
		height: 7rem;
	}
	#header .images .deco.-deco02::after {
		bottom: 2.4rem;
		left: 0;
		width: 3.7rem;
	}
}

#header .nav_btn {
	position: fixed;
	right: 3rem;
	top: 0.5rem;
	width: 6rem;
	height: 6rem;
	z-index: 999;
}
#header .nav_btn a {
	position: relative;
	display: block;
	overflow: hidden;
	padding-top: 3.8rem;
	text-decoration: none;
	font-size: 1.3rem;
	line-height: 1;
	font-weight: 500;
	text-align: center;
	letter-spacing: 0;
	cursor: pointer;
	color: var(--color-base);
}
#header .nav_btn a::before,
#header .nav_btn a::after {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	top: calc(50% - .3rem);
	width: 3.6rem;
	margin-inline: auto;
	border-top: var(--minimum) solid;
	transition: transform var(--transition);
}
#header .nav_btn a::before {
	transform: translateY(-.4rem);
}
#header .nav_btn a::after {
	transform: translateY(.4rem);
}
#header.-open .nav_btn a::before {
	transform: rotate(20deg);
}
#header.-open .nav_btn a::after {
	transform: rotate(-20deg);
}
#header .nav_btn a > span {
	position: relative;
	display: block;
	transition: transform var(--transition);
}
#header .nav_btn a > span::after {
	content: "CLOSE";
	position: absolute;
	width: 100%;
	left: 100%;
}
#header.-open .nav_btn a > span {
	transform: translateX(-100%);
}
@media screen and (max-width: 767px) {
	#header .nav_btn {
		right: 0;
		top: 0;
		width: 8rem;
	}
}
#header .nav_cover {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 120lvh;
	background-color: #000;
	opacity: 0;
	z-index: 3;
	pointer-events: none;
	transition: opacity var(--transition);
	z-index: 990;
}
#header.-open .nav_cover {
	opacity: 0.8;
	pointer-events: auto;
}

.header_nav {
	position: fixed;
	top: 0;
	right: 0;
	background-color: #fff;
	transition: transform var(--transition);
	z-index: 998;
}
.header_nav li {
	border-bottom: var(--minimum) solid;
}
.header_nav .gnav a {
	padding: 2rem;
}
.header_nav .hnav a {
	padding: 2.3rem 2rem;
}
@media screen and (min-width: 768px), print {
	.header_nav {
		width: 78.4rem;
		padding: 0 8.4rem 6rem 4rem;
		transform: translateX(100%);
	}
	.header_nav .logo {
		margin-bottom: 4rem;
	}
	.header_nav .nav {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.header_nav .gnav {
		width: 33.5rem;
	}
	.header_nav .hnav {
		width: 27.5rem;
	}
	.-open .header_nav {
		transform: translateX(0%);
	}
}
@media screen and (max-width: 767px) {
	.header_nav {
		left: 0;
		transform: translateY(-110%);
	}
	.-open .header_nav {
		transform: translateY(0%);
	}
	.header_nav .logo {
		margin: 0;
		padding: 0 var(--sp-base-padding);
	}
	.header_nav .nav {
		max-height: calc(100dvh - 6rem);
		padding: 2rem var(--sp-base-padding) 6rem;
		overflow-y: scroll;
		overscroll-behavior-y: contain;
	}
	.header_nav .gnav a {
		padding: 1.5rem 2rem;
	}
	.header_nav .hnav a {
		padding: 2.2rem 2rem;
	}
}

#header .scroll {
	position: absolute;
	pointer-events: none;
	font-size: 1.2rem;
	line-height: 1;
	z-index: 8;
}
#header .scroll::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 1rem;
	border-left: var(--minimum) solid;
}
#header .scroll::after {
	content: "";
	position: absolute;
	top: 0;
	width: 1.1rem;
	height: 1.1rem;
	border: var(--minimum) solid;
	border-radius: 100%;
	left: calc(1rem - 1.1rem / 2);
	animation: scroll 1.2s ease-in-out infinite, scroll_opacity 1.2s ease-out infinite;
}
@keyframes scroll{
  0%{ top: calc(-1.1rem / 2); }
  100%{ top: calc(100% - 1.1rem / 2); }
}
@keyframes scroll_opacity{
	0% { opacity:0 }
	50% { opacity:1; }
	80% { opacity:0.9; }
	100% { opacity:0; }
}
@media screen and (min-width: 768px), print {
	#header .scroll {
		bottom: -4rem;
		left: calc((100% - var(--base-width)) / 2 + .6rem - 1rem);
		height: 9rem;
	}
	#header .scroll .txt {
		display: flex;
		align-items: center;
		height: 5rem;
		padding-left: 2.6rem;
	}
}
@media screen and (max-width: 767px) {
	#header .scroll {
		bottom: 0;
		right: 0;
		height: 6rem;
		font-size: 1.1rem;
		color: #fff;
	}
	#header .scroll::before {
		right: 1.9rem;
		left: auto;
	}
	#header .scroll::after {
		right: calc(2rem - 1.1rem / 2);
		left: auto;
		animation-duration: 1.4s;
	}
	#header .scroll .txt {
		display: block;
		padding: 4rem 3rem 0 0;
	}
}

/* nav
====================================================================== */
.gnav a {
	position: relative;
	display: block;
	color: var(--color-base);
	text-decoration: none;
	font-weight: var(--font-weight-medium);
	font-size: 1.6rem;
	line-height: 1.5;
}
.gnav a b {
	display: block;
	font-weight: var(--font-weight-medium);
	font-size: 2.4rem;
}
.gnav a .c {
	color: var(--color-theme);
}
.gnav a .more {
	position: absolute;
	right: 2rem;
	top: calc(50% - 2rem);
	width: 4rem;
	height: 4rem;
	background: linear-gradient(to bottom, #AC927C, #74604F);
	border-radius: 100%;
}
.gnav a .more::before {
	content: "MORE";
	position: absolute;
	right: 0;
	left: 0;
	top: calc((100% + .5rem));
	font-size: 1rem;
	line-height: 1;
	letter-spacing: .03em;
	text-align: center;
}
.gnav a .more::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 50%;
	width: .8rem;
	height: .8rem;
	border-top: var(--minimum) solid #fff;
	border-right: var(--minimum) solid #fff;
	transform-origin: 100% 0;
	transform: translateX(.3rem) rotate(45deg);
}
.hnav a {
	position: relative;
	display: block;
	color: var(--color-base);
	text-decoration: none;
	font-weight: var(--font-weight-medium);
	font-size: 1.8rem;
	line-height: 1.5;
}
.hnav a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 2.6rem;
	width: 1.2rem;
	height: 1.2rem;
	border-top: var(--minimum) solid;
	border-right: var(--minimum) solid;
	transform-origin: 100% 0;
	transform: rotate(45deg);
}


/* main_nav
====================================================================== */
.main_nav {
	background-color: var(--bg-gray);
}
.main_nav .gnav a .more::after {
	transform: translateY(.3rem) rotate(135deg);
}
.main_nav .hnav a::after {
	transform: translateY(.5rem) rotate(135deg);
}
@media screen and (min-width: 768px), print {
	.main_nav {
		padding: 4rem 0 4.8rem;
	}
	.main_nav ul {
		display: flex;
		justify-content: center;
	}
	.main_nav ul + ul {
		margin-top: 4rem;
	}
	.main_nav li + li {
		border-left: var(--minimum) solid;
	}
	.main_nav .gnav a {
		padding: 0 9rem 0 4rem;
	}
	.main_nav .gnav a .more {
		right: 4rem;
		top: calc(50% - 2rem - .5rem);
	}
	.main_nav .hnav a {
		padding: .6rem 8rem .6rem 4rem;
	}
	.main_nav .hnav a::after {
		right: 5rem;
	}
}
@media screen and (max-width: 767px) {
	.main_nav {
		padding: 1rem 0 4rem;
	}
	.main_nav li {
		border-bottom: var(--minimum) solid;
	}
	.main_nav .gnav a {
		padding: 1.5rem 2rem;
	}
	.main_nav .hnav a {
		padding: 2.2rem 2rem;
	}
	.main_nav .hnav a::after {
		right: 4rem;
	}
}


/* footer
====================================================================== */
#footer {
	position: relative;
	padding-top: 10rem;
	padding-bottom: 14rem;
}
#footer .logo {
	width: 38.8rem;
	margin-inline: auto;
}
#footer .nav {
	margin-top: 10rem;
	font-size: 1rem;
	line-height: 1.5;
	letter-spacing: 0.05em;
}
#footer .nav ul {
	display: flex;
}
#footer .nav li + li {
	margin-left: 1.5rem;
	padding-left: 1.5rem;
	border-left: 1px solid;
}
#footer small {
	display: block;
	font-size: 100%;
	font-weight: var(--font-weight-bold);
	letter-spacing: 0.05em;
}
@media screen and (min-width: 768px), print {
	#footer .nav {
		display: flex;
		justify-content: space-between;
	}
}
@media screen and (max-width: 767px) {
	#footer {
		padding-top: 7rem;
		padding-bottom: calc(4rem + 7.6rem);
	}
	#footer .logo {
		width: 23.2rem;
	}
	#footer .nav {
		margin-top: 6rem;
	}
	#footer .nav ul {
		justify-content: center;
	}
	#footer small {
		margin-top: 2rem;
		text-align: center;
	}
}

#pagetop {
	position: fixed;
	overflow: hidden;
	right: 2rem;
	bottom: 10.5rem;
	width: 5.2rem;
	height: 5.2rem;
	padding-top: 2.8rem;
	background: #fff;
	border: 1px solid var(--color-theme);
	border-radius: 100%;
	color: var(--color-theme);
	font-size: 1rem;
	line-height: 1;
	text-align: center;
	opacity: 0;
	pointer-events: none;
	text-decoration: none;
	letter-spacing: 0;
	box-shadow: 0 .2rem .6rem rgba(0,0,0,.16);
	z-index: 900;
}
#pagetop::after {
	content: "";
	position: absolute;
	top: 1.5rem;
	right: 50%;
	width: 1rem;
	height: 1rem;
	border-top: 1px solid;
	border-right: 1px solid;
	transform-origin: 100% 0;
	transform: rotate(-45deg);
	transition: none;
}
#pagetop.-show {
	opacity: 1;
	pointer-events: auto;
}
@media print {
	#pagetop {
		display: none;
	}
}
@media (hover) {
	#pagetop:hover {
		background-color: var(--color-theme);
		color: #fff;
	}
}
@media screen and (max-width: 767px) {
	#pagetop {
		right: 1rem;
		bottom: 9rem;
		width: 4.5rem;
		height: 4.5rem;
		padding-top: 2.4rem;
	}
	#pagetop::after {
		top: 1.2rem;
	}
}

#fix_bnr {
	position: fixed;
	right: 2rem;
	bottom: 1rem;
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--transition);
	z-index: 900;
}
#fix_bnr a {
	width: 37.5rem;
	font-size: 2rem;
	padding-left: 2.5rem;
	box-shadow: .2rem .3rem .6rem rgba(0,0,0,.33);
}
#fix_bnr img {
	position: absolute;
	left: -0.5rem;
	top: 0;
	width: 10.6rem;
	pointer-events: none;
	z-index: 5;
}
#pagetop.-show + #fix_bnr {
	opacity: 1;
	pointer-events: auto;
}
@media screen and (max-width: 767px) {
	#fix_bnr {
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 900;
	}
	#fix_bnr a {
		width: 100%;
		padding-left: 1rem;
		font-size: 1.6rem;
		border-radius: 0;
	}
	#fix_bnr img {
		width: 12.0rem;
		top: -0.5rem;
		left: 0;
	}
	#fix_bnr .fix_bnr_txt {
		padding-left: 2rem;
	}
}
@media print {
	#fix_bnr {
		display: none;
	}
}


/* box_btn
====================================================================== */
.box_btn {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 33.5rem;
	max-width: 100%;
	min-height: 7.6rem;
	margin-inline: auto;
	background: linear-gradient(
		to bottom,
		#fff 30%,
		#ffefde 100%
	);
	border-radius: 10rem;
	color: var(--color-base);
	font-size: 1.8rem;
	line-height: calc(26 / 18);
	font-weight: var(--font-weight-bold);
	text-align: center;
	text-decoration: none;
	z-index: 2;
}
.box_btn::before {
	content: "";
	position: absolute;
	left: 2rem;
	top: calc(50% - 1.5rem);
	width: 3rem;
	height: 3rem;
	background-position: 50%;
	background-repeat: no-repeat;
	background-size: 100%;
}
.box_btn.-catalog::before {
	background-image: url(../img/ico-catalog.svg);
}
.box_btn.-modelhouse::before {
	background-image: url(../img/ico-modelhouse.svg);
}
.box_btn::after {
	content: "";
	position: absolute;
	right: 2rem;
	bottom: calc(50% - .2rem);
	width: 4.2rem;
	height: .8rem;
	background: url(../img/ico-arrow-btn.svg) no-repeat 50%;
	background-size: 100%;
}
.box_btn .s {
	font-size: 1.6rem;
}
.box_btn.-dark {
	background: linear-gradient(
		to bottom,
		#AC927C 30%,
		#74604F 100%
	);
	color: #fff;
}
.box_btn.-dark::before {
	filter: brightness(0) invert(1);
}
.box_btn.-dark::after {
	filter: brightness(0) invert(1);
	/* background-image: url(../img/ico-arrow-btn-white.svg); */
}

@media screen and (max-width: 767px) {
	.box_btn {
		width: auto;
	}
}
@media (hover) {
	.box_btn {
		overflow: hidden;
	}
	.box_btn .hv {
		position: absolute;
		overflow: hidden;
		top: var(--minimum);
		right: var(--minimum);
		left: var(--minimum);
		bottom: var(--minimum);
		top: 1px;
		right: 1px;
		left: 1px;
		bottom: 1px;
		border-radius: 10rem;
		z-index: -1;
	}
	.box_btn .hv::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		width: 120%;
		/* background-color: var(--color-theme); */
		background: linear-gradient(
			to bottom,
			#AC927C 30%,
			#74604F 100%
		);
		transform-origin: 0 0;
		transform: translateX(-100%) skewX(-45deg);
		transition: transform .3s ease-in-out;
	}
	.box_btn:hover {
		color: #fff;
	}
	.box_btn:hover .hv::before {
		transform: translateX(0) skewX(-45deg);
	}
	.box_btn::before,
	.box_btn::after {
		transition: filter .3s linear;
	}
	.box_btn:hover::before,
	.box_btn:hover::after {
		filter: brightness(0) invert(1);
	}
	.box_btn.-dark .hv::before {
		background: linear-gradient(
			to bottom,
			#fff 30%,
			#ffefde 100%
		);
	}
	.box_btn.-dark:hover {
		color: var(--color-base);
	}
	.box_btn.-dark:hover::before,
	.box_btn.-dark:hover::after {
		filter: brightness(1) invert(0);
	}
}


/* ul / ol
====================================================================== */
.dot_li > li {
	position: relative;
	padding-left: 1em;
}
.dot_li > li::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
}

.circle_li > li {
	position: relative;
	padding-left: 1em;
}
.circle_li > li::before {
	content: "";
	position: absolute;
	top: .6em;
	left: 0;
	width: 8px;
	height: 8px;
	background-color: #005f8b;
	border-radius: 100%;
}

.parentheses_li > li {
	position: relative;
	padding-left: 2.8em;
}
.parentheses_li > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}

.parentheses_li_h > li {
	position: relative;
	padding-left: 1.6em;
}
.parentheses_li_h > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}
.parentheses_li_hh > li {
	position: relative;
	padding-left: 2.2em;
}
.parentheses_li_hh > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}

.point_li > li {
	position: relative;
	padding-left: 1.2em;
}
.point_li > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}

.square_li > li {
	position: relative;
	padding-left: 0.8em;
}
.square_li > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .8em;
	width: 5px;
	height: 5px;
	background-color: #14143c;
}
@media screen and (max-width: 767px) {
	.square_li > li::before {
		top: 0.6em;
	}
}

.num_li {
	margin-left: 1.8em;
	list-style: decimal;
}
.alphabet_li {
	margin-left: 1.8em;
	list-style: lower-latin;
}

.mt_li > li + li {
	margin-top: 0.8em;
}
@media screen and (max-width: 767px) {
	.sp_mt_li > li + li {
		margin-top: 0.8em;
	}
}

.inline_li > li {
	display: inline-block;
	margin-right: 0.3em;
}

@media screen and (min-width: 768px), print {
	.column_li {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.column_li > li {
		width: 48%;
	}
	.column_li > li:nth-child(n + 3) {
		margin-top: 0.25em;
	}
}
@media screen and (max-width: 767px) {
	.column_li > li + li {
		margin-top: 0.25em;
	}
}

.dl_table {
	display: table;
}
.dl_table > * {
	display: table-row;
}
.dl_table > * > * {
	display: table-cell;
}
.dl_table dt {
	white-space: nowrap;
}
.dl_table.-dt_pr dt {
	padding-right: 1em;
}



/* ideal_section
====================================================================== */
.ideal_section {
	position: relative;
	padding-top: 11rem;
	z-index: 2;
}
.ideal_section > header {
	display: flex;
	margin-bottom: 5rem;
	letter-spacing: 0;
}
.ideal_section > header .q > span {
	display: block;
	width: fit-content;
	padding: 0.4rem 1rem;
	background-color: var(--bg-black);
	color: #fff;
	font-weight: var(--font-weight-bold);
	font-size: 1.2rem;
	line-height: 1.2;
}
.ideal_section > header .q > span.l {
	padding: 0.3rem .5rem 0.3rem 1rem;
	font-size: 2rem;
}
.ideal_section > header h2 {
	font-size: 4.2rem;
	line-height: 1.4;
}
.ideal_section > header h2 .box {
	margin-right: 0.2em;
	padding: 0 0.2em .1em;
	background-color: var(--color-theme);
	color: #fff;
}
@media screen and (min-width: 768px), print {
	.ideal_section::after {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: url(../img/ideal_bg.webp) no-repeat 50% 100%;
		background-size: 100%;
		z-index: -1;
	}
	.ideal_section::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: linear-gradient(
			to bottom,
			rgba(255, 247, 239, 0) 0%,
			rgba(255, 247, 239, 1) 30.39%,
			rgba(255, 247, 239, 0) 44.54%
		);
		z-index: -1;
	}
	.ideal_section > header {
		justify-content: center;
		align-items: center;
		gap: 3.2rem;
	}
}
@media screen and (max-width: 767px) {
	.ideal_section {
		padding-top: 7rem;
		background: var(--bg-gray);
	}
	.ideal_section::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 31.2rem;
		background: linear-gradient(
			to bottom,
			#fff 0%,
			#fff7ef 100%
		);
		z-index: -1;
	}
	.ideal_section > header {
		gap: 2rem;
	}
	.ideal_section > header .q > span {
		padding: 0.2rem 0.6rem;
		font-size: 0.9rem;
	}
	.ideal_section > header .q > span.l {
		padding: 0.2rem .3rem 0.2rem 0.6rem;
		font-size: 1.5rem;
	}
	.ideal_section > header h2 {
		margin-top: -0.2em;
		font-size: 3.1rem;
		line-height: 1.4;
	}
	.ideal_section > header h2 .box {
		display: inline-block;
		margin-right: 0.1em;
		padding: 0 0.2em .1em;
		line-height: 1.2;
	}
}
.ideal_image .ideal_slide {
	position: relative;
	overflow: hidden;
}
.ideal_image h3 {
	width: fit-content;
	padding: 0.1em 1.5rem;
	background-color: var(--bg-black);
	color: #fff;
	font-size: 2.2rem;
	line-height: 1.5;
}
.ideal_image h3 span {
	margin-right: 0.2em;
	color: var(--color-theme-light);
}
.ideal_image .lead {
	position: relative;
	margin-bottom: -1.2rem;
	font-weight: var(--font-weight-bold);
	color: var(--color-theme);
	font-size: 2.9rem;
	line-height: 1.5;
	letter-spacing: 0;
	white-space: nowrap;
	z-index: 3;
}
.ideal_image picture {
	display: block;
	position: relative;
}
.ideal_image .slide-arrows > * {
	position: absolute;
	bottom: calc(48.5rem / 2 - 12.6rem / 2);
	width: 12.6rem;
	height: 12.6rem;
	border-radius: 100%;
	background-color: rgba(0,0,0,.4);
}
.ideal_image .slide-arrows > *::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 2.2rem;
	width: 2.4rem;
	height: 2.4rem;
	border-top: var(--minimum) solid #fff;
	border-right: var(--minimum) solid #fff;
	transform-origin: 100% 0;
	transform: rotate(45deg);
}
.ideal_image .slide-arrows .arrow-prev {
	left: calc(-12.6rem / 2);
	transform: scaleX(-1);
}
.ideal_image .slide-arrows .arrow-next {
	right: calc(-12.6rem / 2);
}
.ideal_image .thumbs a {
	display: block;
	position: relative;
	cursor: pointer;
}
.ideal_image .thumbs a::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000;
	opacity: 0.7;
}
.ideal_image .thumbs a.is-active::after {
	opacity: 0;
}
@media (hover) {
	.ideal_image .thumbs a:hover::after {
		opacity: 0;
	}
	.ideal_image .slide-arrows > *:hover {
		background-color: rgba(0,0,0,.8);
	}
}
@media screen and (min-width: 768px), print {
	.ideal_image {
		display: flex;
		align-items: end;
		gap: 0.5rem;
	}
	.ideal_image .ideal_slide {
		width: 85.7rem;
	}
	.ideal_image .lead {
		width: fit-content;
		padding: 0.3em 0 0.3em 1.5rem;
		background-color: #fff;
	}
	.ideal_image picture {
		height: 48.5rem;
	}
	.ideal_image .thumbs {
		width: 23.3rem;
		height: 48.5rem;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
	}
}
@media screen and (max-width: 767px) {
	.ideal_image h3 {
		padding: 0.05em 1rem;
		font-size: 1.5rem;
	}
	.ideal_image .lead {
		margin-bottom: -1rem;
		font-size: 2rem;
		line-height: 1.6;
	}
	.ideal_image .lead > span {
		display: block;
		width: fit-content;
		padding: 0.2em 0 0.2em 1.5rem;
		background-color: #fff;
	}
	.ideal_image .lead > span + span {
		margin-top: -0.4em;
	}
	.ideal_image picture {
		height: 25rem;
	}
	.ideal_image .slide-arrows > * {
		bottom: calc(25rem / 2 - 6.6rem / 2);
		width: 6.6rem;
		height: 6.6rem;
	}
	.ideal_image .slide-arrows > *::after {
		left: 1.2rem;
		width: 1.2rem;
		height: 1.2rem;
	}
	.ideal_image .slide-arrows .arrow-prev {
		left: calc(-6.6rem / 2);
	}
	.ideal_image .slide-arrows .arrow-next {
		right: calc(-6.6rem / 2);
	}
	.ideal_image .thumbs {
		display: flex;
		gap: .5rem;
		margin-top: 1rem;
	}
	.ideal_image .thumbs > * {
		width: 100%;
	}
}

.ideal_section .bottom_lead {
	font-weight: var(--font-weight-bold);
	font-size: 3.3rem;
	line-height: 1.6;
}
.ideal_section .bottom_lead .s {
	font-size: 2.9rem;
}
.ideal_section .bottom_lead strong {
	font-size: 3.7rem;
	color: var(--color-red);
}
@media screen and (min-width: 768px), print {
	.ideal_section .bottom_lead {
		display: flex;
		align-items: center;
		width: 97rem;
		height: 35rem;
		margin-inline: auto;
	}
}
@media screen and (max-width: 767px) {
	.ideal_section .bottom_lead {
		position: relative;
		height: 41.6rem;
		margin-top: 1rem;
		padding-top: 4rem;
		text-align: center;
		font-size: 2.9rem;
		line-height: 1.8;
		z-index: 1;
	}
	.ideal_section .bottom_lead::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: url(../img/ideal_bg_sp.webp) no-repeat 50% 0;
		background-size: cover;
		z-index: -1;
	}
	.ideal_section .bottom_lead .s {
		font-size: 2.6rem;
	}
	.ideal_section .bottom_lead strong {
		margin-right: 0.2em;
		padding: 0 .2em;
		background-color: #fff;
		font-size: 3.3rem;
	}
}

/* base_section
====================================================================== */
.base_section {
	position: relative;
}

/* section_title
====================================================================== */
.section_title {
	position: relative;
	margin-bottom: 6rem;
	padding-top: 10rem;
	padding-left: 14rem;
	font-size: 3.4rem;
	line-height: 1.5;
	letter-spacing: 0.06em;
	font-weight: var(--font-weight-bold);
	z-index: 1;
}
.section_title::before,
.section_title::after {
	content: "";
	position: absolute;
	border-width: 0;
	border-style: solid;
}
.section_title::before {
	left: 8.2rem;
	top: 10rem;
	height: 11rem;
	border-left-width: var(--minimum);
}
.section_title::after {
	left: 0;
	top: 12rem;
	width: 11.2rem;
	border-top-width: var(--minimum);
}
.section_title h2 {
	margin-top: 1rem;
	font-size: 7.5rem;
	line-height: calc(118 / 75);
}
.section_title h2 .box {
	display: inline-block;
	margin-right: 0.1em;
	padding: 0 0.2em .1em;
	background-color: var(--color-theme);
	color: #fff;
	line-height: 1.3;
}
.section_title .eng {
	position: absolute;
	top: 0;
	right: 0;
	width: 86rem;
	pointer-events: none;
	user-select: none;
	z-index: -1;
}
@media screen and (max-width: 767px) {
	.section_title {
		margin-bottom: 5rem;
		padding-top: 8rem;
		padding-left: 6rem;
		font-size: 2.3rem;
		letter-spacing: 0;
		white-space: nowrap;
	}
	.section_title::before {
		left: 1.5rem;
		top: 8rem;
		height: 8.4rem;
	}
	.section_title::after {
		top: 9.4rem;
		width: 3.8rem;
	}
	.section_title h2 {
		margin-top: 0.4rem;
		font-size: 4.9rem;
		letter-spacing: 0.1em;
	}
	.section_title h2 .box {
		line-height: 1.2;
	}
	.section_title.-sp_s h2 {
		font-size: 3.1rem;
		letter-spacing: 0;
	}
}


/* conversion_block
====================================================================== */
.conversion_block {
	position: relative;
	margin-top: 9rem;
	padding-block: 7.5rem 6rem;
	background-color: var(--bg-black);
	font-weight: var(--font-weight-medium);
	color: #fff;
	text-align: center;
	z-index: 2;
}
.conversion_block::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image:
		linear-gradient(to right, rgba(255, 255, 255, 0.03) var(--minimum), transparent var(--minimum)),
		linear-gradient(to bottom, rgba(255, 255, 255, 0.03) var(--minimum), transparent var(--minimum));
	background-size: 1.6rem 1.6rem;
	z-index: -1;
}
.conversion_block .title {
	position: absolute;
	top: -3rem;
	right: 0;
	left: 0;
	width: fit-content;
	height: 6rem;
	margin-inline: auto;
	padding-inline: 5rem;
	font-size: 2.2rem;
	font-weight: var(--font-weight-bold);
	color: #fff;
	z-index: 3;
}
.conversion_block .title::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	background-color: var(--color-theme);
	transform: skewX(-19deg);
	z-index: -1;
}
.conversion_block .title .l {
	font-size: 3.1rem;
}
.conversion_block .title .m {
	font-size: 2.5rem;
}
.conversion_block header .lead {
	margin-bottom: 1.5rem;
	font-size: 2.8rem;
	line-height: 1.3;
	color: var(--color-theme-light);
	letter-spacing: 0.1em;
}
.conversion_block header .lead strong {
	font-size: 3.4rem;
	font-weight: inherit;
}
.conversion_block header h3 {
	position: relative;
	width: fit-content;
	margin-inline: auto;
	font-size: 5.1rem;
	line-height: 1.3;
	letter-spacing: 0.01em;
}
.conversion_block header h3::before,
.conversion_block header h3::after {
	content: "";
	position: absolute;
	bottom: 1rem;
	height: 9.5rem;
	border-left: var(--minimum) solid;
	transform-origin: 50% 100%;
}
.conversion_block header h3::before {
	left: -3rem;
	transform: rotate(-30deg);
}
.conversion_block header h3::after {
	right: -3rem;
	transform: rotate(30deg);
}
.conversion_block header .img {
	margin-top: 1rem;
}
.conversion_block .request {
	margin-top: 4rem;
}
.conversion_block .visit {
	margin-top: 2rem;
	line-height: 1;
}
.conversion_block .visit a {
	position: relative;
	display: inline-block;
	padding: .2em 3.8rem .2em 2rem;
	border: var(--minimum) solid #fff;
	border-radius: 10rem;
	color: #fff;
	text-decoration: none;
	font-weight: var(--font-weight-medium);
	font-size: 1.4rem;
	line-height: 1.4;
}
.conversion_block .visit a::after {
	content: "";
	position: absolute;
	right: .6rem;
	bottom: 50%;
	width: 2.2rem;
	height: .5rem;
	background: url(../img/ico-arrow-btn-white.svg) no-repeat 50%;
	background-size: 100%;
}
@media (hover) {
	.conversion_block .visit a:hover {
		background-color: var(--color-theme);
	}
}
@media screen and (min-width: 768px), print {
	.conversion_block {
		display: flex;
		justify-content: center;
		font-size: 2rem;
		line-height: 1.9;
	}
	.conversion_block header {
		width: 49rem;
		padding-left: 4rem;
	}
	.conversion_block .txt {
		width: 49rem;
		padding-top: 11rem;
	}
}
@media screen and (max-width: 767px) {
	.conversion_block {
		margin-top: 2rem;
		padding-block: 3.5rem 8rem;
		display: flex;
		flex-direction: column;
		letter-spacing: 0;
	}
	.conversion_block .title {
		top: -1.9rem;
		min-width: 25rem;
		height: 3.8rem;
		padding-inline: 1.5rem;
		font-size: 1.4rem;
	}
	.conversion_block .title .l {
		font-size: 2rem;
	}
	.conversion_block .title .m {
		font-size: 1.6rem;
	}
	.conversion_block .txt {
		display: contents;
	}
	.conversion_block header {
		order: 2;
	}
	.conversion_block .request,
	.conversion_block .visit {
		order: 4;
	}
	.conversion_block header {
		overflow: hidden;
		margin-top: 2rem;
	}
	.conversion_block header::before {
		content: "";
		display: block;
		width: 1.2rem;
		margin-inline: auto;
		margin-bottom: 2.5rem;
		border-top: .4rem solid #fff;
	}
	.conversion_block header .lead {
		margin-bottom: .5rem;
		font-size: 1.9rem;
	}
	.conversion_block header .lead strong {
		font-size: 2.3rem;
	}
	.conversion_block header h3 {
		font-size: 3.4rem;
	}
	.conversion_block header h3::before,
	.conversion_block header h3::after {
		bottom: 0.6rem;
		height: 6rem;
	}
	.conversion_block header h3::before {
		left: -2rem;
	}
	.conversion_block header h3::after {
		right: -2rem;
	}
	.conversion_block header .img {
		margin: 0 -3rem;
	}
	.conversion_block .request {
		margin-top: 2rem;
	}
}

/* case
====================================================================== */
.case_contents section + section {
	margin-top: 4rem;
}
.case_contents h3 {
	margin-bottom: 1.6rem;
	font-size: 3.6rem;
	line-height: calc(57 / 36);
	font-weight: var(--font-weight-medium);
	letter-spacing: 0.05em;
}
.case_contents h3::after {
	content: "";
	display: block;
	width: 1.2rem;
	margin-top: 2rem;
	border-top: .4rem solid var(--color-theme);
}
.case_contents .info {
	font-size: 1.4rem;
	line-height: calc(24 / 14);
}
.case_contents .info dl {
	display: flex;
}
.case_contents .info dl dt {
	flex-shrink: 0;
}
.case_contents .info dl dt::after {
	content: "：";
	padding: 0 .3em;
}
.case_contents .more {
	margin-top: 3rem;
}
.case_contents .more a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 9.4rem;
	height: 9.4rem;
	background: linear-gradient(to bottom right, #AC927C, #74604F);
	border-radius: 100%;
	text-decoration: none;
	color: #fff;
	text-align: center;
	font-size: 1.4rem;
	font-weight: var(--font-weight-bold);
	line-height: calc(18 / 14);
}
.case_contents .more a::before {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	top: 1rem;
	width: 1.5rem;
	height: 1.5rem;
	margin-inline: auto;
	background: url(../img/ico-modal.svg) no-repeat 50%;
	background-size: 100%;
}
.case_contents .more a::after {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	bottom: 1rem;
	width: 1.2rem;
	height: 1.2rem;
	margin-inline: auto;
	background: url(../img/ico-arrow.svg) no-repeat 50%;
	background-size: 100%;
}
@media screen and (min-width: 768px), print {
	.case_contents section {
		display: flex;
		align-items: center;
		gap: 2rem;
	}
	.case_contents section:nth-child(2n + 1) {
		flex-direction: row-reverse;
	}
	.case_contents section .ph {
		position: relative;
		flex-shrink: 0;
		width: calc(50% - 2rem);
		z-index: 2;
	}
	.case_contents section .contents {
		width: 50%;
		padding-inline: 4rem;
	}
	.case_contents h3 > span {
		position: relative;
		display: inline-block;
	}
	.case_contents h3 > span::after {
		content: "";
		position: absolute;
		top: 0.5lh;
		width: 50vw;
		border-top: var(--minimum) solid #000;
	}
	.case_contents section:nth-child(2n + 1) h3 > span::after {
		left: calc(100% + 2rem);
	}
	.case_contents section:nth-child(2n) h3 > span::after {
		right: calc(100% + 3rem);
	}
}
@media screen and (max-width: 767px) {
	.case_contents section + section {
		margin-top: 0;
	}
	.case_contents .contents {
		position: relative;
		padding-block: 4rem 8rem;
	}
	.case_contents h3 {
		margin-bottom: 2rem;
		font-size: 2.8rem;
		line-height: calc(44 / 28);
	}
	.case_contents .more {
		position: absolute;
		right: var(--sp-base-padding);
		bottom: 6rem;
	}
}

/* technology
====================================================================== */
.technology_contents section + section {
	margin-top: 5rem;
}
.technology_contents section {
	position: relative;
	background-color: #fff;
	z-index: 3;
}
.technology_contents h3 {
	padding-block: 4rem 6rem;
	text-align: center;
	font-size: 2rem;
	line-height: 1.5;
}
.technology_contents h3 > span {
	display: block;
	margin-bottom: 3rem;
}
.technology_contents .lead {
	margin-bottom: 3rem;
	font-size: 3rem;
	line-height: 1.6;
	font-weight: var(--font-weight-medium);
}
.technology_contents .list li {
	position: relative;
	padding-left: 1.2em;
}
.technology_contents .list li::before {
	content: "■";
	position: absolute;
	top: 0;
	left: 0;
	color: var(--color-theme);
}
.technology_contents .ribbon {
	position: relative;
	padding: 1rem 1.5rem;
	background-color: var(--color-theme);
	color: #fff;
	font-size: 1.4rem;
	line-height: 1.1;
	font-weight: var(--font-weight-bold);
	text-align: center;
	letter-spacing: 0;
}
.technology_contents .ribbon > span {
	display: block;
}
.technology_contents .ribbon .num {
	margin-bottom: -0.3em;
	font-size: 2.5rem;
}
.technology_contents .ribbon .num b {
	margin-right: -.1em;
	font-size: 4.7rem;
}
.technology_contents .ribbon .notes {
	font-size: 1rem;
	font-weight: var(--font-weight);
}
.technology_contents .aerotech {
	border-color: #0197d0;
}
.technology_contents .aerotech h3 {
	padding-block: 6.5rem 9rem;
}
.technology_contents .aerotech h3 img {
	width: 33rem;
}
.technology_contents .twoxnext {
	border-color: #ffba00;
}
.technology_contents .twoxnext h3 img {
	width: 29rem;
}
.technology_contents .hometact {
	border-color: transparent;
}
.technology_contents .hometact h3 img {
	width: 42.2rem;
}
@media screen and (min-width: 768px), print {
	.technology_contents {
		margin-bottom: 13rem;
	}
	.technology_contents section {
		display: flex;
		flex-direction: row-reverse;
		border-left: 1.2rem solid;
		box-shadow: .3rem .3rem .6rem rgba(0,0,0,.16);
	}
	.technology_contents section .ph {
		position: relative;
		flex-shrink: 0;
		width: 52.7rem;
	}
	.technology_contents section .ph picture {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
	.technology_contents section .ph img {
		object-fit: cover;
		width: 100%;
		height: 100%;
	}
	.technology_contents section .txt {
		flex-grow: 1;
		padding: 0 4rem 4rem;
	}
	.technology_contents .list {
		padding: 3.5rem 4rem;
		background-color: #f8f6f1;
		font-size: 2rem;
		line-height: 2;
	}
	.technology_contents .ribbon {
		padding-right: 3rem;
		clip-path: polygon(0 0, 100% 0, calc(100% - 2.4rem) 50%, 100% 100%, 0 100%)
	}
	.technology_contents .aerotech .lead {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.technology_contents .hometact::before {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: -1.2rem;
		width: 1.2rem;
		background: linear-gradient(to bottom,
			#744099 11.11%,
			#ec699d 11.11%,
			#ec699d 22.22%,
			#e94078 22.22%,
			#e94078 33.33%,
			#e9001e 33.33%,
			#e9001e 44.44%,
			#ef8229 44.44%,
			#ef8229 55.55%,
			#fce438 55.55%,
			#fce438 66.66%,
			#a8eafd 66.66%,
			#a8eafd 77.77%,
			#45b6e4 77.77%,
			#45b6e4 88.88%,
			#00acec 88.88%
		);
	}
	.technology_contents .hometact h3 {
		padding-block: 6rem 6.5rem;
	}
}
@media screen and (max-width: 767px) {
	.technology_section {
		background-color: #fff;
	}
	.technology_contents section + section {
		margin-top: 7rem;
	}
	.technology_contents section {
		border-top: 1rem solid;
	}
	.technology_contents h3 {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		padding-block: 2.5rem;
		line-height: 1.8;
		color: #fff;
	}
	.technology_contents section .ph {
		position: relative;
	}
	.technology_contents section .ph > div {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
	.technology_contents section .ph > div.-bottom {
		top: auto;
		height: auto;
		bottom: 0;
	}
	.technology_contents .lead {
		position: relative;
		margin-bottom: 2rem;
		padding-top: 2.5rem;
		font-size: 2.4rem;
		line-height: calc(38 / 24);
	}
	.technology_contents .ribbon {
		position: absolute;
		top: 0;
		right: calc(var(--sp-base-padding) * -1);
		padding-left: 3rem;
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 2.4rem 50%);
		transform: translateY(-50%);
	}
	.technology_contents .aerotech h3 {
		padding-block: 2.2rem;
	}
	.technology_contents .aerotech h3 img {
		width: 24.1rem;
	}

	.technology_contents .twoxnext h3 img {
		width: 22.35rem;
	}
	.technology_contents .hometact::before {
		content: "";
		position: absolute;
		top: -1rem;
		width: 100%;
		height: 1rem;
		background: linear-gradient(to right,
			#744099 11.11%,
			#ec699d 11.11%,
			#ec699d 22.22%,
			#e94078 22.22%,
			#e94078 33.33%,
			#e9001e 33.33%,
			#e9001e 44.44%,
			#ef8229 44.44%,
			#ef8229 55.55%,
			#fce438 55.55%,
			#fce438 66.66%,
			#a8eafd 66.66%,
			#a8eafd 77.77%,
			#45b6e4 77.77%,
			#45b6e4 88.88%,
			#00acec 88.88%
		);
	}
	.technology_contents .hometact h3 {
		display: none;
	}
}

/* about
====================================================================== */
.about_contents .about + .about {
	margin-top: 4rem;
}
.about_contents .about h3 {
	position: relative;
	margin-bottom: 4rem;
	padding: 0rem 0 0.2rem 1.5rem;
	border-left: .8rem solid var(--color-theme);
	font-size: 3rem;
	line-height: calc(52 / 30);
	font-weight: var(--font-weight-medium);
	letter-spacing: 0.05em;
}
.about_contents .about .contents p + p {
	margin-top: 1.8em;
}
@media screen and (min-width: 768px), print {
	.about_contents .about {
		display: flex;
		align-items: center;
		gap: 2rem;
	}
	.about_contents .about:nth-child(2n) {
		flex-direction: row-reverse;
	}
	.about_contents .about .ph {
		position: relative;
		flex-shrink: 0;
		width: calc(50% - 2rem);
		z-index: 2;
	}
	.about_contents .about .contents {
		width: 50%;
		padding-inline: 4rem;
	}
	.about_contents .about h3 > span {
		position: relative;
		display: inline-block;
	}
	.about_contents .about h3 > span::after {
		content: "";
		position: absolute;
		top: 0.5lh;
		width: 50vw;
		border-top: var(--minimum) solid #000;
	}
	.about_contents .about:nth-child(2n + 1) h3 > span::after {
		left: calc(100% + 2rem);
	}
	.about_contents .about:nth-child(2n) h3 > span::after {
		right: calc(100% + 3rem);
	}
}
@media screen and (max-width: 767px) {
	.about_contents .about + .about {
		margin-top: 8rem;
		padding-top: 8rem;
		border-top: var(--minimum) solid var(--color-theme);
	}
	.about_contents .about h3 {
		margin-bottom: 3rem;
		margin-left: calc(var(--sp-base-padding) * -1);
		padding: 0rem 0 0.2rem 1.2rem;
		font-size: 2.4rem;
		line-height: calc(42 / 24);
	}
	.about_contents .about .ph {
		margin-top: 4rem;
	}
}

.about_contents .evaluation {
	margin-top: 8rem;
	color: var(--color-theme);
}
.about_contents .evaluation h3 {
	margin-bottom: 3rem;
	text-align: center;
	font-size: 2.4rem;
	line-height: calc(42 / 24);
}
.about_contents .evaluation .box {
	position: relative;
	background-color: #f6f5f3;
}
.about_contents .evaluation .box::before,
.about_contents .evaluation .box::after {
	content: "";
	position: absolute;
	width: 2rem;
	height: 2rem;
	background-color: var(--color-theme);
}
.about_contents .evaluation .box::before {
	left: 0;
	top: 0;
	clip-path: polygon(0 0, 100% 0, 0 100%);
}
.about_contents .evaluation .box::after {
	right: 0;
	bottom: 0;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.about_contents .evaluation .title {
	text-align: center;
	font-weight: var(--font-weight-medium);
}
.about_contents .evaluation .title strong {
	margin-left: 0.8em;
	font-size: 3rem;
}
.about_contents .evaluation .rank {
	display: flex;
	align-items: end;
	gap: 2rem;
}
.about_contents .evaluation .rank ul {
	border: 1px solid;
	font-size: 1.5rem;
}
.about_contents .evaluation .rank li + li {
	border-top: 1px solid;
}
.about_contents .evaluation .rank li {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.5rem;
	padding: .3rem 2.2rem .3rem 1rem;
}
.about_contents .evaluation .rank li strong {
	font-size: 2.5rem;
	line-height: 1.5;
	font-weight: var(--font-weight-medium);
}
.about_contents .evaluation .rank li sup {
	position: absolute;
	top: 0.3rem;
	right: 0.5rem;
	font-size: 100%;
}
.about_contents .evaluation .ranking {
	position: relative;
	padding: 0 1rem .3rem;
	font-size: 4.2rem;
	line-height: 1.2;
	font-weight: var(--font-weight-medium);
	z-index: 1;
}
.about_contents .evaluation .ranking::before {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	bottom: 0;
	height: 2.4rem;
	background-color: #fff;
	transform: skewX(-15deg);
	z-index: -1;
}
.about_contents .evaluation .ranking .num {
	position: relative;
	font-size: 12.2rem;
	line-height: 0.8;
}
.about_contents .evaluation .notes {
	font-size: 1rem;
	text-align: center;
}
@media screen and (min-width: 768px), print {
	.about_contents .evaluation .box {
		width: 98rem;
		margin-inline: auto;
		padding-block: 3rem 1.5rem;
	}
	.about_contents .evaluation .contents {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 5.5rem;
		margin: 2.5rem 0 2rem;
	}
	.about_contents .evaluation .img {
		width: 28.6rem;
	}
}
@media screen and (max-width: 767px) {
	.about_contents .evaluation {
		margin-top: 8rem;
		padding-top: 8rem;
		border-top: var(--minimum) solid var(--color-theme);
	}
	.about_contents .evaluation h3 {
		margin-bottom: 3rem;
	}
	.about_contents .evaluation .box {
		padding: 3rem 0 2rem;
	}
	.about_contents .evaluation .title strong {
		display: block;
		margin-left: 0;
		font-size: 100%;
	}
	.about_contents .evaluation .img {
		width: 28.6rem;
		margin: 2rem auto;
	}
	.about_contents .evaluation .rank {
		margin: 0 0 2rem;
		justify-content: center;
		gap: .8rem;
		white-space: nowrap;
	}
	.about_contents .evaluation .rank ul {
		font-size: 1.2rem;
		letter-spacing: 0;
	}
	.about_contents .evaluation .rank li {
		gap: .8rem;
		padding: .1rem 1.6rem .1rem 0.8rem;
	}
	.about_contents .evaluation .rank li strong {
		font-size: 2rem;
	}
	.about_contents .evaluation .rank li sup {
		top: 0.2rem;
		right: 0.3rem;
	}
	.about_contents .evaluation .ranking {
		padding: 0 .5rem .2rem;
		font-size: 3.3rem;
	}
	.about_contents .evaluation .ranking .num {
		font-size: 9.4rem;
		line-height: 0.8;
	}
	.about_contents .evaluation .notes {
		line-height: 1.8;
	}
}

/* voice_section
====================================================================== */
.voice_contents {
	position: relative;
	padding-bottom: 8rem;
	z-index: 3;
}
.voice_contents strong {
	color: var(--color-theme);
}
.voice_contents .voice_main {
	background-color: #fcfcfc;
}
.voice_contents .voice_main h3 {
	position: relative;
	padding-top: 9rem;
	background: url(../img/ico-voice.svg) no-repeat;
	background-size: 5.5rem;
	font-weight: var(--font-weight-medium);
	font-size: 3rem;
	line-height: calc(40 / 30);
}
.voice_contents .voice_main h3 b {
	font-weight: var(--font-weight-medium);
	color: var(--color-theme);
}
@media screen and (min-width: 768px), print {
	.voice_contents .voice_main {
		display: flex;
		align-items: start;
		padding: 6rem 5rem 6rem 7rem;
	}
	.voice_contents .voice_main h3 {
		width: 29.5rem;
		flex-shrink: 0;
	}
}
@media screen and (max-width: 767px) {
	.voice_contents {
		padding-bottom: 6rem;
	}
	.voice_contents .voice_main {
		padding: 5rem 4rem 6rem;
	}
	.voice_contents .voice_main h3 {
		margin-bottom: 3rem;
		padding-top: 8rem;
		font-size: 2.4rem;
	}
}
.voice_contents .voice_other {
	margin-top: 4rem;
}
.voice_contents .voice_other h3 {
	margin-bottom: 2rem;
	text-align: center;
	font-size: 2rem;
	line-height: calc(35 / 20);
	color: var(--color-theme);
}
.voice_contents .voice_other h3 b {
	color: var(--color-red);
}
.voice_contents .voice_other ul li {
	padding: 3rem 2rem 3rem 6rem;
	background: #fcfcfc url(../img/ico-voice.svg) 1rem 3rem no-repeat;
	background-size: 2.9rem;
}
@media screen and (min-width: 768px), print {
	.voice_contents .voice_other ul {
		display: flex;
		flex-wrap: wrap;
		gap: 1rem;
	}
	.voice_contents .voice_other ul li {
		width: calc(50% - .5rem);
	}
}
@media screen and (max-width: 767px) {
	.voice_contents .voice_other h3 {
		margin-bottom: 3rem;
	}
	.voice_contents .voice_other ul li {
		margin-top: 2rem;
		letter-spacing: 0;
	}
}


/* ico_title
====================================================================== */
.ico_title {
	margin-bottom: 4rem;
	text-align: center;
}
.ico_title .ico {
	position: relative;
	width: 10rem;
	margin: 0 auto 4rem;
	z-index: 2;
}
.ico_title .ico::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-position: 50%;
	background-repeat: no-repeat;
	background-size: 100%;
	animation: rotate 20s linear infinite;
	z-index: -1;
}
.catalog_section .ico_title .ico::before {
	background-image: url(../img/catalog_ico_en.svg);
}
.modelhouse_section .ico_title .ico::before {
	background-image: url(../img/modelhouse_ico_en.svg);
}
.ico_title h2 {
	font-size: 3.6rem;
	line-height: 1.5;
	font-weight: var(--font-weight-medium);
}
.ico_title h2 .lead {
	display: block;
	margin-bottom: 3rem;
	font-size: 2.4rem;
}
.ico_title h2 .box {
	display: inline-block;
	margin-right: 1.5rem;
	padding: 0 1.5rem .1em;
	font-size: 6.1rem;
	line-height: 1.3;
}
.catalog_section .ico_title h2 .box {
	background-color: var(--color-theme);
	color: #fff;
}
.modelhouse_section .ico_title h2 .box {
	background-color: #fff;
	color: var(--color-theme);
}
@media screen and (max-width: 767px) {
	.ico_title {
		margin-bottom: 2.5rem;
	}
	.ico_title .ico {
		width: 6.2rem;
		margin-bottom: 2rem;
	}
	.ico_title h2 {
		font-size: 2.2rem;
		line-height: 1.5;
	}
	.ico_title h2 .lead {
		margin-bottom: 2rem;
		font-size: 1.7rem;
		line-height: calc(24 / 17);
	}
	.ico_title h2 .box {
		margin-right: .5rem;
		margin-bottom: 0.3rem;
		padding: 0 .5rem .1em;
		font-size: 4.1rem;
		line-height: 1.1;
	}
}


/* catalog_section
====================================================================== */
.catalog_section {
	position: relative;
	padding: 6rem 0 8rem;
	background: url(../img/catalog_bg.webp) no-repeat 50%;
	background-size: cover;
	z-index: 1;
}
.catalog_section::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image:
		linear-gradient(to right, rgba(255, 255, 255, 0.06) var(--minimum), transparent var(--minimum)),
		linear-gradient(to bottom, rgba(255, 255, 255, 0.06) var(--minimum), transparent var(--minimum));
	background-size: 1.6rem 1.6rem;
	z-index: -1;
}
.catalog_section .ico_title {
	color: #fff;
}
.catalog_contents {
	padding: 6rem 3rem 4rem;
	background-color: rgba(255, 255, 255, 0.9);
}
.catalog_contents .content h3 {
	margin-bottom: 1rem;
	color: var(--color-theme);
}
.catalog_contents .content li {
	position: relative;
	padding-left: 1.1em;
}
.catalog_contents .content li::before {
	content: "●";
	position: absolute;
	top: 0;
	left: 0;
	color: var(--color-theme);
}
.catalog_section .more {
	margin-top: 4.8rem;
}
@media screen and (min-width: 768px), print {
	.catalog_contents .main {
		display: flex;
		align-items: center;
		flex-direction: row-reverse;
		margin-bottom: 3.5rem;
	}
	.catalog_contents .main .img {
		width: 45rem;
		flex-shrink: 0;
	}
	.catalog_contents .main .lead {
		flex-grow: 1;
		font-weight: var(--font-weight-medium);
		font-size: 2.9rem;
		line-height: calc(50 / 29);
	}
	.catalog_contents .content {
		display: flex;
	}
	.catalog_contents .content section {
		width: 29.5rem;
		box-sizing: content-box;
	}
	.catalog_contents .content section + section {
		border-left: var(--minimum) solid #fff;
		padding-left: 1.7rem;
	}
	.catalog_contents .content h3 span {
		display: block;
		font-size: 2rem;
		line-height: 1.5;
	}
	.catalog_contents .content ul {
		margin-right: 1em;
		font-size: 1.3rem;
		line-height: calc(22 / 13);
	}
}
@media screen and (max-width: 767px) {
	.catalog_section {
		padding: 4rem 0 8rem;
		background-image: url(../img/catalog_bg_sp.webp);
	}
	.catalog_contents {
		padding: 4rem 0 4rem;
		font-size: 1.3rem;
		line-height: calc(22 / 13);
	}
	.catalog_contents .main .img {
		width: calc(100% - 4rem);
		margin: 0 auto;
	}
	.catalog_contents .main .lead {
		margin: 3rem 0 3rem;
		text-align: center;
		font-size: 1.7rem;
		line-height: calc(26 / 17);
		font-weight: var(--font-weight-medium);
	}
	.catalog_contents .main .lead::after {
		content: "";
		display: block;
		width: 5rem;
		margin: 2rem auto 0;
		border-top: var(--minimum) solid var(--color-theme);
	}
	.catalog_contents .content section + section {
		margin-top: 2rem;
	}
	.catalog_contents .content h3 {
		margin-bottom: .5rem;
	}
	.catalog_section .more {
		margin-top: 3rem;
	}
}

/* modelhouse_bg_block
====================================================================== */
.modelhouse_bg_block {
	position: relative;
	background: url(../img/modelhouse_bg.webp) no-repeat 50%;
	background-size: cover;
	z-index: 1;
}
.modelhouse_bg_block::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image:
		linear-gradient(to right, rgba(255, 255, 255, 0.06) var(--minimum), transparent var(--minimum)),
		linear-gradient(to bottom, rgba(255, 255, 255, 0.06) var(--minimum), transparent var(--minimum));
	background-size: 1.6rem 1.6rem;
	z-index: -1;
}
@media screen and (max-width: 767px) {
	.modelhouse_bg_block {
		background-image: url(../img/modelhouse_bg_sp.webp);
	}
}

/* modelhouse_section
====================================================================== */
.modelhouse_section {
	position: relative;
	padding: 6rem 0 0;
}
.modelhouse_contents {
	text-align: center;
}
.modelhouse_contents .lead {
	font-weight: var(--font-weight-medium);
	font-size: 1.8rem;
	line-height: calc(34 / 18);
}
.modelhouse_contents .content {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 4rem 3rem;
	margin: 5rem auto;
	font-size: 1.4rem;
	line-height: calc(22 / 14);
	z-index: 2;
}
.modelhouse_contents .content .caption {
	display: block;
	margin-top: 1rem;
}
@media screen and (min-width: 768px), print {
	.modelhouse_contents .content {
		width: 70.8rem;
	}
	.modelhouse_contents .content::before {
		content: "";
		position: absolute;
		top: 9.5rem;
		bottom: 12.5rem;
		left: -5.4rem;
		right: -5.4rem;
		border: var(--minimum) solid var(--color-theme);
		z-index: -1;
	}
	.modelhouse_contents .content li {
		width: 21.6rem;
	}
}
@media screen and (max-width: 767px) {
	.modelhouse_section {
		padding: 4rem 0 0;
	}
	.modelhouse_contents .lead {
		font-weight: var(--font-weight);
		text-align: left;
		font-size: 1.6rem;
		line-height: calc(30 / 16);
	}
	.modelhouse_contents .content {
		gap: 2rem 1.5rem;
		margin: 4rem auto;
	}
	.modelhouse_contents .content li {
		width: calc((100% - 1.5rem) / 2);
		letter-spacing: 0;
	}
	.modelhouse_contents .lead.-bottom {
		text-align: center;
	}
}

.modelhouse_section .more {
	margin-top: 3rem;
}



/* modal
====================================================================== */
#overlay {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	margin: 0;
	background-color: #000;
	transition: opacity .5s;
	opacity: 0;
	z-index: 1010;
}
#overlay.-show {
	opacity: .8;
}
#overlay.-showed {
	bottom: 0;
}

.modal_contents {
	position: fixed;
	top: 0;
	bottom: 0;
	left: -9999em;
	width: 100%;
	opacity: 0;
	transition: opacity .5s;
	color: #fff;
	text-align: center;
	font-weight: var(--font-weight-medium);
	pointer-events: none;
	z-index: 1500;
}
.modal_contents .modal_in {
	width: 100%;
	max-height: 100%;
	overflow-y: auto;
	overscroll-behavior-y: contain;
	padding-block: 8rem;
}
.modal_contents .modal_phs {
	width: 98rem;
	margin-inline: auto;
}
.modal_contents .modal_phs figure {
	margin-bottom: 4rem;
}
.modal_contents .modal_phs figcaption {
	display: block;
	margin-top: 2rem;
}
.modal_contents.-show {
	pointer-events: auto;
	opacity: 1;
	left: 0;
}
@media screen and (min-width: 768px), print {
	.modal_contents .modal_phs .portrait img {
		width: 43.5rem;
	}
}
@media screen and (max-width: 767px) {
	.modal_contents .modal_in {
		padding-block: 6rem;
	}
	.modal_contents .modal_phs {
		width: calc(100% - 2rem);
	}
}

.modal_contents .close_top {
	position: absolute;
	top: 2rem;
	right: calc((100% - 98rem) / 2);
	width: 4.6rem;
	height: 4.6rem;
	z-index: 5;
}
.modal_contents .close_top::before,
.modal_contents .close_top::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 141.4213%;
	border-top: var(--minimum) solid #fff;
	transform: translateX(-50%) rotate(45deg);
}
.modal_contents .close_top::after {
	transform: translateX(-50%) rotate(-45deg);
}
.modal_contents .close a {
	position: relative;
	display: inline-block;
	margin-inline: auto;
	padding-left: 3rem;
	font-weight: var(--font-weight-bold);
	color: #fff;
	cursor: pointer;
}
.modal_contents .close a::before,
.modal_contents .close a::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 2rem;
	border-top: var(--minimum) solid;
	transform: rotate(45deg);
}
.modal_contents .close a::after {
	transform: rotate(-45deg);
}
@media screen and (max-width: 767px) {
	.modal_contents .close_top {
		right: 1rem;
		width: 2.2rem;
		height: 2.2rem;
	}
}


/* mov show
====================================================================== */
@media screen {
	._mov_fadeup {
		opacity: 0;
		transform: translateY(3rem);
	}
	._mov_fadeup._mov_showed {
		transition: transform .6s cubic-bezier(0.5, 1, 0.89, 1), opacity .6s linear;
		opacity: 1;
		transform: translateY(0);
	}

	._mov_fadeup_b {
		opacity: 0;
		transform: translateY(5rem);
	}
	._mov_fadeup_b._mov_showed {
		transition: transform .7s cubic-bezier(0.34, 1.56, 0.64, 1), opacity .7s linear;
		opacity: 1;
		transform: translateY(0);
	}

	._mov_fadeleft {
		opacity: 0;
		transform: translateX(-3rem);
	}
	._mov_fadeleft._mov_showed {
		transition: transform .6s cubic-bezier(0.5, 1, 0.89, 1), opacity .6s linear;
		opacity: 1;
		transform: translateX(0);
	}

	._mov_faderight {
		opacity: 0;
		transform: translateX(3rem);
	}
	._mov_faderight._mov_showed {
		transition: transform .6s cubic-bezier(0.5, 1, 0.89, 1), opacity .6s linear;
		opacity: 1;
		transform: translateX(0);
	}

	._mov_zoomin {
		opacity: 0;
		transform: scale(.2);
	}
	._mov_zoomin.-zomms {
		transform: scale(.6);
	}
	._mov_zoomin._mov_showed {
		transition: transform .6s cubic-bezier(0.34, 1.56, 0.64, 1), opacity .6s linear;
		opacity: 1;
		transform: scale(1);
	}

	._mov_zoomout {
		opacity: 0;
		transform: scale(3);
		display: inline-block;
	}
	._mov_zoomout._mov_showed {
		transition: transform .6s cubic-bezier(0.5, 1, 0.89, 1), opacity .6s linear;
		opacity: 1;
		transform: scale(1);
	}

	._mov_delay1 {
		transition-delay: .2s !important;
	}
	._mov_delay2 {
		transition-delay: .4s !important;
	}
	._mov_delay3 {
		transition-delay: .6s !important;
	}
	._mov_delay4 {
		transition-delay: .8s !important;
	}
	._mov_delay5 {
		transition-delay: 1s !important;
	}
	._mov_delay6 {
		transition-delay: .2s !important;
	}
	._mov_delay1s {
		transition-delay: .1s !important;
	}
	._mov_delay2s {
		transition-delay: .2s !important;
	}
	._mov_delay3s {
		transition-delay: .3s !important;
	}
	._mov_delay4s {
		transition-delay: .4s !important;
	}
	._mov_delay5s {
		transition-delay: .5s !important;
	}
	._mov_delay6s {
		transition-delay: .6s !important;
	}
	@media screen and (min-width: 768px), print {
		._mov_pc_delay1 {
			transition-delay: .2s !important;
		}
		._mov_fadeup.-sp-mov_show {
			opacity: 1;
			transform: translateY(0);
		}
	}
	._mov_showed + ._mov_fadeup._mov_before {
		transition: transform .6s cubic-bezier(0.5, 1, 0.89, 1), opacity .6s linear;
		transition-delay: .4s !important;
		opacity: 1;
		transform: translateY(0);
	}

	#header h1 .lead {
		opacity: 0;
		transform: translateY(1rem);
	}
	#header h1 .title {
		opacity: 0;
		transform: translateY(1rem);
	}
	#header .images {
		opacity: 0;
	}
	#header .point {
		opacity: 0;
		transform: translateY(1rem);
	}
	#header .btn {
		opacity: 0;
	}
	#header .scroll {
		opacity: 0;
	}
	#header.-show .images {
		opacity: 1;
		transition: opacity 1s linear;
	}
	#header.-show h1 .lead {
		opacity: 1;
		transform: translateY(0);
		transition: opacity 1s linear, transform .5s ease-out;
	}
	#header.-show h1 .title {
		opacity: 1;
		transform: translateY(0);
		transition: opacity 1s .3s linear, transform .5s .3s ease-out;
	}
	#header.-show .point {
		opacity: 1;
		transform: translateY(0);
		transition: opacity 1s .5s linear, transform .5s .5s ease-out;
	}
	#header.-show .btn {
		opacity: 1;
		transition: opacity 1s 1s linear;
	}
	#header.-show .scroll {
		opacity: 1;
		transition: opacity 1s 1s linear;
	}

	.ideal_section > header .q {
		clip-path: inset(0 100% 0 0);
	}
	.ideal_section > header h2 {
		clip-path: inset(0 100% 0 0);
	}
	.ideal_section > header._mov_showed .q {
		transition: clip-path .3s cubic-bezier(0.5, 1, 0.89, 1);
		clip-path: inset(0 0 0 0);
	}
	.ideal_section > header._mov_showed h2 {
		transition: clip-path .5s .3s cubic-bezier(0.5, 1, 0.89, 1);
		clip-path: inset(0 0 0 0);
	}
/*
	.ideal_image h3 {
		opacity: 0;
		transform: translateY(1rem);
	}
	.ideal_image .lead {
		opacity: 0;
		transform: translateY(1rem);
	}
	.ideal_image._mov_showed section.is-active h3 {
		opacity: 1;
		transform: translateY(0);
		transition: opacity 1s .2s linear, transform .5s .2s ease-out;
	}
	.ideal_image._mov_showed section.is-active .lead {
		opacity: 1;
		transform: translateY(0);
		transition: opacity 1s .2s linear, transform .5s .2s ease-out;
	}
*/

	.ideal_section::after {
		opacity: 0;
	}
	.ideal_section:has(.bottom_lead._mov_showed)::after {
		transition: opacity 1s .3s linear;
		opacity: 1;
	}
	.ideal_section .bottom_lead::before {
		opacity: 0;
	}
	.ideal_section .bottom_lead._mov_showed::before {
		transition: opacity 1s .3s linear;
		opacity: 1;
	}

	.section_title .lead {
		width: fit-content;
		clip-path: inset(0 100% 0 0);
	}
	.section_title h2 {
		width: fit-content;
		clip-path: inset(0 100% 0 0);
	}
	.section_title .lead._mov_showed {
		transition: clip-path .3s cubic-bezier(0.5, 1, 0.89, 1);
		clip-path: inset(0 0 0 0);
	}
	.section_title .lead._mov_showed + h2 {
		transition: clip-path .5s .3s cubic-bezier(0.5, 1, 0.89, 1);
		clip-path: inset(0 0 0 0);
	}

	.case_contents section {
		overflow: hidden;
	}
	.about_contents .about {
		overflow: hidden;
	}
	@media screen and (max-width: 767px) {
		.-sp_updown {
			animation: updown 1.6s infinite ease-in-out alternate;
		}
		.-sp_updown.-t2 {
			animation-delay: -.8s;
		}
		.-sp_updown.-t3 {
			animation-delay: -.4s;
		}
		.-sp_updown.-t4 {
			animation-delay: -1.2s;
		}
	}

}
