@charset "utf-8";
@font-face {
	font-family: 'Oswald';
	src: url('./Oswald-Light.ttf') format('truetype');
	font-weight: 300;
	font-style: normal;
}
@font-face {
	font-family: 'Oswald';
	src: url('./Oswald-Regular.ttf') format('truetype');
	font-weight: 400;
	font-style: normal;
}
@font-face {
	font-family: 'Oswald';
	src: url('./Oswald-Medium.ttf') format('truetype');
	font-weight: 500;
	font-style: normal;
}
@font-face {
	font-family: 'Oswald';
	src: url('./Oswald-SemiBold.ttf') format('truetype');
	font-weight: 600;
	font-style: normal;
}

:root {
	--c_rd:#DF0B20;
	--c_gy:#f1f1f1;
}
.fonts-loaded {
	visibility: visible;
}

.clr-rd {color: var(--c_rd)!important;}
.clr-gy {color: var(--c_gy)!important;}
.clr-wh {color: #fff!important;}
.clrbkh {color: #000!important;}
.bg-rd {background-color: var(--c_rd)!important;}
.bg-gy {background-color: var(--c_gy)!important;}
.bg-wh {background-color: #fff!important;}
.bg-bk {background-color: #000!important;}

.fo-oswald {
	font-family: "Oswald", sans-serif;
	font-weight: 400;
	font-style: normal;
	line-height: 1;
	font-feature-settings: "liga" 0, "kern" 0;
}
.fz14 {
	font-size: 1.4rem;
}
.txt-lh {
	line-height: 1.8;
}
h2 {
	font-size: 3.6rem;
}
.ttlBox {
	margin-bottom: 4rem;
}
.ttlBox .fo-oswald {
	color: var(--c_rd);
	font-size: 1.8rem;
	margin-top: 1.5rem;
	letter-spacing: .07em;
}
section {
	background: #fff;
}
body.active {
	overflow: hidden;
}
.bnr01 {
	max-width: 890px;
	margin: 0 auto;
}
.bnr01Lft {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: url(../img/bnr01_bg.png) top left no-repeat;
	background-size: cover;
	position: relative;
	overflow: hidden;
	padding: 1rem 3.5rem;
	text-align: left;
}
.bnr01Lft .ttl {
	color: #5F5F5F;
	font-size: 1.4rem;
	font-weight: 500;
	gap: .5rem 2rem;
	margin-bottom: 1rem;
}
.bnr01Lft .ttl .fo-oswald {
	font-size: 5rem;
	color: var(--c_rd);
	margin-bottom: .2em;
}
.bnr01Lft .txt-lh {
	max-width: 31.5rem;
	font-size: 1.5rem;
}
.bnr01Lft figure {
	max-width: 26rem;
	position: absolute;
	right: 0;
	top: 5rem;
}
.bnrBtn {
	gap: .5rem 2rem;
	margin-top: 2rem;
}
.bnrBtn a {
	display: block;
	border: 1px solid var(--c_rd);
	background: #fff;
	color: var(--c_rd);
	font-weight: 600;
	text-align: center;
	padding: 1rem;
	width: 21rem;
}
.bnrBtn ._02 a {
	background: var(--c_rd);
	color: #fff;
}
.bnrBtn a:hover {
	background: #000!important;
	color: #fff!important;
	border-color: #000!important;
}
.bnr01Rht {
	width: 30rem;
}
.bnr02 {
	max-width: 890px;
	margin: 0 auto;
	background: url(../img/bnr02_bg.jpg) center center no-repeat;
	background-size: cover;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 500;
	padding: 3.5rem 1rem;
}
.bnr02 dl {
	gap: .5rem 2.5rem;
	text-align: left;
}
.bnr02 dt {
	font-size: 1.4rem;
	gap: .5rem 2rem;
	border-right: 1px solid #fff;
	padding-right: 2.5rem;
}
.bnr02 dt .fo-oswald {
	font-size: 5rem;
	margin-bottom: .2em;
}
.eventBnr {
	text-align: center;
	margin: 0 auto;
}
.eventBnr li:not(:last-of-type) {
	margin-bottom: 4rem;
}


/*header
---------------------------------------------------------*/
#header {
	position: absolute;
	z-index: 99;
	top: 0;
	left: 0;
	right: 0;
	text-align: left;
	padding: 2rem;
}
.hLogo img {
	max-height: 4rem;
}

/*nav
---------------------------------------------------------*/
#navArea {
	position: fixed;
}
.menuIconWrap {
	position: fixed;
	top: 3rem;
	right: 3rem;
	width: 8rem;
	height: 8rem;
	z-index: 9999;
	cursor: pointer;
	transition: .4s;
	color: #fff;
	background: var(--c_rd);
	margin-left: auto;
}
.menuIconWrap.active {
	background: #fff;
}
.menuIconWrap .fo-oswald {
	font-size: 1.6rem;
	font-weight: 400;
	transition: .4s;
	bottom: 1.2rem;
	position: absolute;
	left: 0;
	right: 0;
	z-index: 1;
}
.menuIcon {
	position: absolute;
	top: 1.8rem;
	left: 50%;
	transform: translateX(-50%);
	width: 2.5rem;
	height: 2.2rem;
	z-index: 1;
}
.menuIconWrap.active .menuIcon {
	top: 2.75rem;
}
.menuIconWrap.active .fo-oswald {
	opacity: 0;
}
.menuIcon span {
	position: absolute;
	left: 0;
	margin: 0 auto;
	width: 100%;
	height: .2rem;
	background:#fff;
	z-index: 10;
	transition: .4s;
	transform-origin: center;
}
.menuIcon span:nth-of-type(1) {top: 0;}
.menuIcon span:nth-of-type(2) {
	top: 47%;
	top: calc(50% - .1rem);
	clip-path: inset(0% 45% 0% 0%);
}
.menuIcon span:nth-of-type(3) {bottom: 0;}
.menuIconWrap.active span {
	background: #000;
}
.menuIconWrap.active span:nth-of-type(1) {
	transform: translateY(1rem) rotate(45deg);
}
.menuIconWrap.active span:nth-of-type(3) {
	transform: translateY(-1rem) rotate(-45deg);
}
.menuIconWrap.active span:nth-of-type(2) {
	left: 80%;
	opacity: 0;
	pointer-events: none;
}
.menuIconWrap:not(.active):hover .menuIcon span:nth-of-type(2) {
	clip-path: inset(0% 0% 0% 0%);
}
#navArea {
	position: fixed;
	top: 0;
	bottom: 0;
	right: 0;
	width: 65%;
	max-width: 820px;
	background: var(--c_gy) url(../img/logomark.svg) right -3rem bottom 20rem no-repeat;
	background-size: 35% auto;
	text-align: left;
	overflow: auto;
	transition: .4s;
	padding: 16.5vh 4rem 4rem 6%;
	box-shadow: 0 0 10px rgba(0,0,0,.1);
	pointer-events: none;
	clip-path: inset(0% 0% 0% 100%);
	opacity: 0;
}
#navArea.active {
	opacity: 1;
	visibility: visible;
	pointer-events: all;
	z-index: 9990;
	clip-path: inset(0% 0% 0% 0%)
}
body::after {
	opacity: 0;
	visibility: hidden;
	transition: .2s;
	content: "";
	background: rgba(0, 0, 0, .5);
	backdrop-filter: blur(10px);
	display: block;
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	z-index: 9500;
}
body.active::after {
	opacity: 1;
	visibility: visible;
	transition: .4s;
	pointer-events: none;
}
.navtop .sub {
	font-size: 2rem;
	font-weight: 600;
	margin-bottom: 1.5rem;
	letter-spacing: .1em;
	color: #5f5f5f;
}
.navtop .ttl {
	gap: 0 2rem;
}
.navtop .ttl .logo img {
	max-height: 15vh;
}
.navtop .ttl .logo02 {
	max-width: 11.2rem;
}
.navtop {
	margin-bottom: 7vh;
}
.nav li + li {
	margin-top: 2.2vh;
}
.nav li a {
	display: flex;
	align-items: center;
	text-align: left;
	gap: .5rem 10rem;
	color: #5F5F5F;
	font-weight: 700;
	font-size: 2rem;
}
.nav li a .fo-oswald {
	display: block;
	width: 15rem;
	font-size: 1.6rem;
	letter-spacing: .05em;
	white-space: nowrap;
	text-align: center;
	color: var(--c_rd);
	padding: 1rem 0;
	position: relative;
	transition: .4s;
}
.nav li a .fo-oswald::after,
.nav li a .fo-oswald::before {
	content: "";
	display: block;
	width: 5rem;
	height: 1px;
	background: var(--c_rd);
	position: absolute;
	left: 100%;
	top: 50%;
	transform: translateY(-50%);
	transition: .4s;
	opacity: 0;
}
.nav li a .fo-oswald::after {
	border-radius: 50%;
	width: 1rem;
	height: 1rem;
	left: 133%;
	left: calc(100% + 5rem);
}
.nav li a:hover {
	color: var(--c_rd);
}
.nav li a:hover .fo-oswald {
	background: var(--c_rd);
	color: #fff;
}
.nav li a:hover .fo-oswald::before,
.nav li a:hover .fo-oswald::after {
	opacity: 1;
}
.nabTn {
	gap: .5rem;
	margin-top: 7vh;
}
.nabTn li {
	width: 21rem;
}
.btns a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0 1rem;
	height: 100%;
	background: #fff;
	font-size: 1.4rem;
	line-height: 1.2;
	font-weight: 500;
	text-align: left;
	padding: 1rem 1.5rem;
}
.nabTn a {
	border: 2px solid #fff;
}
.nabTn a:hover {
	border-color: var(--c_rd);
}
.btns li._03 a {
	font-size: 2.1rem;
}
.btns li._03 .fo-oswald {
	display: inline-block;
}
.btns img {
	display: block;
	max-height: 2.5rem;
}

/*footer
---------------------------------------------------------*/
#footer {
	background: #D2D2D2 url(../img/logomark.svg) right 18% top 2rem no-repeat;
	background-size: 24.5rem auto;
	padding: 4rem 0;
	position: relative;
}
.fLogo {
	max-width: 27.6rem;
	margin-right: 4rem;
}
.footBox {
	font-size: 1.2rem;
	text-align: left;
	line-height: 1.6
}
.footBox big {
	font-size: 142%;
}
.copyRight {
	color: #000;
	font-size: 1.2rem;
	font-weight: 300;
	text-align: right;
	letter-spacing: .07em;
	margin-top: -1rem;
}
.goTop {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 10;
	width: 6rem;
	height: 6rem;
}
.goTop a {
	display: block;
}

.sideFix {
	position: fixed;
	bottom: 1rem;
	right: 0;
	z-index: 990;
	width: 27.5rem;
	border-radius: 2rem 0 0 2rem;
	overflow: hidden;
	transition: .4s;
	display: flex;
	flex-direction: column;
}
.sideFix.hide {
	opacity: 0;
	right: -5rem;
	pointer-events: none;
}
.sideFix li {
	width: 100%;
}
.sideFix.btns a {
	font-size: 1.8rem;
	justify-content: flex-start;
	padding: 1.5rem 1.5rem 1.5rem 2.5rem;
	position: relative;
}

.sideFix.btns ._01 a {
	background: var(--c_rd);
	color: #fff;
}
.sideFix.btns ._02 a {
	background: #000;
	color: #fff;
}
.sideFix.btns ._03 a {
	font-size: 2.8rem;
}
.sideFix.btns ._04 {
	order: -1;
}
.sideFix.btns ._04 a {
	background: #FFDC2B;
}
.sideFix.btns a::after {
	content: "";
	display: block;
	width: 2rem;
	aspect-ratio: 1;
	position: absolute;
	background: #fff url(../img/arrow_bk.svg) center center no-repeat;
	background-size: 30% auto;
	position: absolute;
	right: 1.5rem;
	top: 50%;
	transform: translateY(-50%);
	border-radius: 50%;
}
.sideFix.btns ._01 a::after {
	background-image: url(../img/arrow_rd.svg);
}

/*contents
---------------------------------------------------------*/
.mainArea {
	background: url(../img/main01.jpg) center center no-repeat;
	background-size: cover;
	position: relative;
	height: 85rem;
	padding-top: 10rem;
	transition: .4s;
	opacity: 0;
}
.mainArea.act {
	opacity: 1;
}
.mainArea .container {
	max-width: 1420px;
	color: #fff;
}
.mainBox {
	position: relative;
}
.mainCont {
	position: relative;
	z-index: 2;
	color: #ffffff;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1rem 5rem;
}
.mainBox h1 {
	opacity: 0;
	transform: translateY(1rem);
	transition: .6s .2s;
}
.act .mainBox h1 {
	opacity: 1;
	transform: translateY(0);
}
.mainBox h1 span {
	display: block;
	font-size: 2.4rem;
	font-weight: 700;
	letter-spacing: .07em;
	margin-bottom: 1.5rem;
}
.mainBox h1 .logo {
	width: 47rem;
}
.mainBox h1 .logo img {
	width: 100%;
}
.mvTxtImg {
	max-width: 57.4rem;
}
.mainBox dl {
	gap: 0 1.5rem;
	letter-spacing: .1em;
}
.mainBox dt {
	display: flex;
	align-items: center;
	font-size: 5rem;
	font-weight: 600;
	gap: .5rem 1.5rem;
	line-height: 1.1;
	margin-bottom: 1rem;
	text-shadow: 0 .5rem .5rem rgba(0,0,0,.1);
}
.mainBox dt small {
	width: 14rem;
	font-size: 2.4rem;
	display: block;
	text-align: center;
	border-top: 2px solid #fff;
	border-bottom: 2px solid #fff;
	padding: .6rem;
	margin-bottom: -0.5rem;
}
.mainBox dd {
	flex: 1;
}
.mainBox dd > *:not(.fvtxt) {
	text-shadow: 0 .5rem .5rem rgba(0,0,0,.1);
}
.mainPrice {
	font-size: 4.4rem;
	font-weight: 800;
}
.mainPrice .fvtxt {
	display: inline-block;
	line-height: 1.2;
	position: relative;
	background: -o-linear-gradient(290deg, #FBE67B 15.07%, #FCFBE7 45.38%, #F7D14E 70.42%, #FCFBE7 98.09%);
	background: linear-gradient(173deg, #FBE67B 24.07%, #FCFBE7 56.38%, #F7D14E 70.42%, #FCFBE7 98.09%);
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
.mainPrice .fvtxt::before {
	content: "";
	display: block;
	background: var(--c_rd);
	position: absolute;
	left: 0;
	right: 0;
	bottom: -.3rem;
	height: 15%;
	z-index: -1;
	transition: .7s .2s ease-in-out;
	clip-path: inset(0% 100% 0% 0%);
}
.act .mainPrice .fvtxt::before {
	clip-path: inset(0% 0% 0% 0%);
}
.mainPrice .fo-oswald {
	font-size: 220%;
	font-weight: 500;
	line-height: .8;
	vertical-align: -.025em;
}
.mainPrice small {
	font-size: 43%;
	font-weight: 600;
	text-align: right;
	display: block;
}
.topTxt h2 {
	margin-bottom: 4rem;
}
.plxImg {
	height: 45rem;
	background: transparent;
}
.plxImg .img {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	overflow: hidden;
	opacity: 0;
	z-index: -999;
	filter: blur(10px);
	transition: 1.4s;
}
.act.plxImg .img {
	filter: blur(0);
}
.plxImg .img img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}
.plxImg.act .img {
	opacity: 1;
}
#news {
	background: url(../img/recommend_bg.jpg) top center no-repeat;
	background-size: cover;
}
.newsArea {
	text-align: left;
	background: #fff;
	padding: 6rem 2rem;
}
.newsBox {
	max-width: 80rem;
	margin: 0 auto;
}
.newsBox li {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 2rem;
	padding: 2rem;
	border-bottom: 1px solid #ddd;
}
.newsBox li .box {
	display: flex;
	align-items: center;
	gap: .5rem 2rem;
}
.newsBox li .tag {
	text-align: center;
	background: var(--c_rd);
	color: #fff;
	font-size: 85%;
	line-height: 1;
	padding: .5rem 1rem;
}
.newsBox li .tag._stay {
	background: #FFDC2B;
	color: #000;
}
.newsBox li .date {
	color: #5f5f5f;
}
.newsBox li a {
	display: block;
	flex: 1;
	position: relative;
	padding-right: 2rem;
}
.newsBox li a::after {
	content: "";
	display: block;
	width: 2rem;
	aspect-ratio: 1;
	position: absolute;
	background: var(--c_rd) url(../img/arrow_wh.svg) center center no-repeat;
	background-size: 30% auto;
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%) rotate(90deg);
	border-radius: 50%;
}
.newsBox li a:hover {
	color: var(--c_rd);
}
#recommend {
	background: url(../img/recommend_bg.jpg) top center no-repeat;
	background-size: cover;
}
.recommendWrap {
	padding: 6rem 2rem;
	background: #fff;
}
.recommendWrap ul {
	display: inline-block;
	text-align: left;
}
.recommendWrap li {
	display: flex;
	gap: 0 1.5rem;
	font-size: 1.8rem;
	font-weight: 500;
}
.recommendWrap li + li {
	margin-top: 2.5rem;
}
.recommendWrap li::before {
	content: "";
	display: block;
	background: url(../img/icon_check.svg) center center no-repeat;
	background-size: contain;
	width: 2rem;
	aspect-ratio: 1;
}
#pageAnchor {
	background: var(--c_rd);
}
.pageAnchor {
	gap: 1rem 5rem;
}
.pageAnchor a {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 0 1.2rem;
	padding-bottom: 0.5rem;
	color: #fff;
	position: relative;
	font-size: 2rem;
	letter-spacing: .05em;
	font-weight: 600;
}
.pageAnchor a::after {
	content: "";
	display: block;
	background: url(../img/arrow_wh.svg) center center no-repeat;
	background-size: contain;
	width: 0.82rem;
	aspect-ratio: 5/9;
	transform: rotate(90deg);

}
.pageAnchor a::before {
	content: "";
	display: block;
	background: #fff;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1.5px;
	transition: .6s ease-out;
	clip-path: inset(0% 0% 0% 0%);
}
.pageAnchor a:hover:before {
	clip-path: inset(0% 100%);
}
.pointsSlider {
	width: 90%;
	max-width: 900px;
	background: #fff;
	padding: 4rem 2rem;
	margin: 0 auto 4rem;
	opacity: 0;
}
.pointsSlider .pointsWrap:not(:first-of-type) {
	display: none;
}
.pointsSlider.slick-initialized .pointsWrap:not(:first-of-type) {
	display: block;
}
.pointsWrap .img {
	max-width: 700px;
	margin: 0 auto;
}
.pointsWrap dl {
	max-width: 700px;
	margin: 2rem auto 0;
	text-align: left;
}
.pointsWrap dt {
	gap: 0 2rem;
}
.pointsWrap dt .num {
	font-size: 3rem;
	font-weight: 500;
	color: #fff;
	background: url(../img/num_bg.svg) top center no-repeat;
	background-size: contain;
	text-align: center;
	width: 9.1rem;
	aspect-ratio: 13/7;
	display: flex;
	justify-content: center;
	align-items: center;
	padding-top: .5rem;
}
.pointsWrap dt h3 {
	flex: 1;
	font-size: 2.4rem;
	padding-top: 1.2rem;
}
.pointsWrap dd {
	padding-left: 11.1rem;
	letter-spacing: .05em;
	margin-top: .5rem;
}
.slick-dots {
	position: absolute;
	bottom: -4rem;
	left: 0;
	right: 0;
	margin: 0 auto;
}
.slick-dots li.slick-active button::before {
	color: var(--c_rd)!important;
}
.slick-dots li {
	margin: 0 1.2rem!important;
}
.slick-arrow {
	width: 5rem;
	height: 5rem;
	position: absolute;
	top: 45%;
	right: -7rem;
	background: url("../img/slider_arrow.svg") center center no-repeat;
	background-size: contain;
	border-radius: 50%;
	cursor: pointer;
	z-index: 5;
	transition: .5s;
}
.slick-arrow.prev {
	left: -7rem;
	transform: rotate(180deg);
	right: auto;
}
.slick-arrow:hover {
	opacity: .3
}
#column {
	padding: 0;
}
.columnHeader {
	position: relative;
	overflow: hidden;
	z-index: 1;
	color: #fff;
	padding: 6.5rem 0 5rem;
}
.columnHeader .bg {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: -1;
}
.columnHeader .bg li {
	width: 50%;
	position: relative;
	overflow: hidden;
}
.columnHeader .bg li img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}
.columnHeader .eng {
	width: 25rem;
	padding: 1rem 0;
	background: var(--c_rd);
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	margin: 0 auto;
}
.columnTtl {
	font-size: 2rem;
	font-weight: 600;
	text-align: left;
	letter-spacing: .1em;
}
.columnTtl strong {
	font-size: 300%;
	font-weight:500;
	line-height: 1.2;
	letter-spacing: .075em;
}
.lifeEventMap {
	padding: 6rem 0;
}
.lewTtl {
	font-size: 1.2rem;
	font-weight: 600;
	letter-spacing: .07em;
	margin-bottom: 4rem;
}
.lewTtl h3 {
	font-size: 2.6rem;
	font-weight: 600;
	margin-bottom: 1rem;
}
.scrlImg .img {
	margin-right: -1.5rem;
}
.planHeader {
	padding: 9rem 0 3rem;
	margin-bottom: 5rem;
	background: var(--c_rd);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(60%, var(--c_rd)),color-stop(60%, #fff));
	background: -o-linear-gradient(top, var(--c_rd) 60%,#fff 60%);
	background: linear-gradient(180deg, var(--c_rd) 60%,#fff 60%);
	color: #fff;
}
.planTtl {
	margin-bottom: 5rem;
	gap: 1rem 3rem;
}
.planTtl dt {
	max-width: 40.2rem;
}
.planTtl dd {
	text-align: left;
}
.planTtl dd h2 {
	font-size: 2.8rem;
	line-height: 1.4;
	margin-bottom: .5rem;
}
.planAnchor {
	gap: 2rem 3.5%;
}
.planAnchor li {
	flex: 1;
	color: #000;
	background: #f1f1f1;
	padding: 0 3rem 4.5rem;
	position: relative;
}
.planAnchor li::after {
	content: "";
	display: block;
	background: url(../img/arrow_rd.svg) center center no-repeat;
	background-size: contain;
	width: 1rem;
	aspect-ratio: 5/9;
	transform: rotate(90deg);
	position: absolute;
	left: 0;
	right: 0;
	margin: 0 auto;
	bottom: 1.5rem;
}
.planAnchor .num {
	background: var(--c_rd);
	color: #fff;
	font-size: 4.2rem;
	font-weight: 500;
	padding: 1rem 0;
	margin: 0 -3rem;
}
.planAnchor li .img {
	margin: 0 -3rem 3rem;
}
.planAnchor li h3 {
	font-size: 2rem;
	margin-bottom: 2rem;
}
.price {
	font-size: 2rem;
	font-weight: 600;
}
.price .fo-oswald {
	font-size: 210%;
	font-weight: 500;
}
.price small {
	font-size: 1.6rem;
	font-weight: 400;
	margin-left: .5em;
}
.moreBtn a {
	display: block;
	max-width: 24rem;
	margin: 1.5rem auto 0;
	color: var(--c_rd);
	padding: 1.5rem 0;
	font-size: 1.4rem;
	letter-spacing: .07rem;
	border: 1px solid var(--c_rd);
}
.moreBtn a:hover {
	background: #fff;
}
.planArea {
	display: flex;
	flex-direction: column;
	gap: 8rem 0;
}
.planArea + .planArea {
	margin-top: 8rem;
}
.caseWrap {
	gap: 2rem 10rem;
}
.caseWrap .img {
	width: 50%;
}
.caseWrap .img:hover img {
	opacity: .6;
}
.caseWrap dl {
	text-align: left;
	flex: 1;
}
.caseWrap .num {
	font-size: 6rem;
	font-weight: 500;
	color: var(--c_rd);
	margin-bottom: 2rem;
}
.caseWrap h2 {
	font-size: 2.4rem;
	margin-bottom: 2rem;
}
.caseWrap .price {
	margin-top: 5rem;
	font-size: 2.4rem;
}
.caseWrap .note {
	font-size: 112.5%;
}
.planImg {
	gap: 2rem 4%;
}
.planImg li {
	width: 48%;
}
.planBoxWrap {
	padding: 4rem 2rem;
	position: relative;
}
.planBoxWrap .eng {
	position: absolute;
	top: 0;
	left: 0;
	background: var(--c_rd);
	color: #fff;
	padding: .8rem;
	width: 9rem;
	z-index: 1;
}
.planBtmArea {
	position: relative;
	z-index: 1;
	padding: 6rem 0;
}
.planBtmArea::before {
	content: "";
	display: block;
	background: var(--c_gy);
	position: absolute;
	top: 0;
	bottom: 0;
	right: calc(-50vw + 50%);
	left: calc(-50vw + 50%);
	z-index: -1;
}
.planBtmArea h3 {
	font-size: 2rem;
	margin-bottom: 3rem;
	letter-spacing: 0.07em;
}
.planPointArea {
	padding: 6rem 8rem;
	background: #fff;
	margin-top: 3rem;
}
.planPointMain {
	margin-bottom: 6rem;
}
.planBtmWrap {
	gap: 3rem 5rem;
}
.planBtmWrap .img {
	max-width: 45rem;
}
.planPoint dt {
	display: flex;
	align-items: center;
	color: var(--c_rd);
	font-size: 3.2rem;
	gap: 0 2rem;
	text-align: left;
	margin-bottom: 2rem;
}
.planPoint dt::after {
	content: "";
	display: block;
	flex-grow: 1;
	height: 1px;
	background: #ddd;
}
.planPoint .recommendWrap {
	padding: 0;
	background: transparent;
}
.planPoint dd figure {
	max-width: 40rem;
	margin-top: 2rem;
}
.planPointArea h4 {
	background: var(--c_gy);
	padding: 1.5rem 1rem;
	font-size: 2rem;
	margin-bottom: 4rem;
}
.planBox h3 {
	font-size: 2rem;
	letter-spacing: .07em;
	margin-bottom: 2.5rem;
}
.planContImg {
	gap: 5rem;
}
.planContImg li {
	max-width: 58rem;
	position: relative;
	border: 1px solid #f1f1f1;
}
/* .planContImg li:first-of-type::after {
	content: "";
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-color: transparent transparent transparent #000;
	border-width: 1.5rem 0 1.5rem 2rem;
	position: absolute;
	top: 50%;
	right: -4rem;
	transform: translateY(-50%);
	z-index: 1;
} */
.planCont {
	display: inline-block;
}
.planBox .note {
	margin-top: 2rem;
	text-align: right;
	font-size: 87.5%;
}
.lifeTtl {
	font-size: 3.6rem;
	font-weight: 700;
	letter-spacing: .07em;
	margin-bottom: 5rem;
}
.lifeTtl small {
	font-size: 66%;
	font-weight: 400;
	letter-spacing: .05em;
	display: block;
}
.lifeWrap {
	gap: 3rem 3%;
}
.lifeWrap dl {
	background: var(--c_gy);
	width: 48.5%;
	padding: 2rem;
	text-align: left;
}
.lifeWrap dt {
	margin-bottom: 2rem;
}
.lifeWrap .num {
	width: 3.6rem;
	aspect-ratio: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	letter-spacing: .15em;
	text-indent: .15em;
	font-weight: 500;
	background: var(--c_rd);
	text-align: center;
	margin-right: 1.5rem;
}
.lifeWrap h3 {
	font-size: 1.7rem;
	font-weight: 600;
}
.lifeWrap dd .img {
	width: 13rem;
	margin-right: 2rem;
}
.lifeWrap dd .txt-lh {
	font-size: 1.4rem;
	letter-spacing: .07em;
	flex: 1;
}
.voiceSlider {
	opacity: 0;
	margin: 0 -1.5rem;
}
.voiceSlider .pointsWrap:not(:first-of-type) {
	display: none;
}
.voiceSlider.slick-initialized .pointsWrap:not(:first-of-type) {
	display: block;
}
.voiceSlider .slick-track {
	display: flex!important;
}
.voiceBox {
	background: var(--c_gy);
	height: auto!important;
	margin: 0 1.5rem;
	padding: 2.5rem;
	font-size: 1.4rem;
	text-align: left;
}
.voiceBox dt figure {
	width: 8.5rem;
	margin-right: 1.5rem;
}
.voiceBox dt {
	margin-bottom: 2rem;
}
.voiceBox dt h3 {
	flex: 1;
	font-weight: 500;
}
.featureArea {
	gap: 3rem 8%;
}
.featureArea + .featureArea {
	margin-top: 8rem;
}
.featureArea:nth-of-type(odd) {
	flex-direction: row-reverse;
}
.featureArea dl {
	width: 42%;
	text-align: left;
}
.featureArea figure {
	flex: 1;
	height: 43.5rem;
	position: relative;
	overflow: hidden;
	margin-left: calc(-50vw + 50%);
	transition: .6s .4s ease-out;
	clip-path: inset(0% 100% 0% 0%);
}
.featureArea.act figure {
	clip-path: inset(0% 0% 0% 0%)!important;
}
.featureArea figure img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}
.featureArea:nth-of-type(odd) figure {
	margin-left: 0;
	margin-right: calc(-50vw + 50%);
	clip-path: inset(0% 0% 0% 100%);
}
.featureArea .num {
	margin-bottom: 1rem;
}
.featureArea .num span {
	background: var(--c_rd);
	color: #fff;
	padding: .8rem .5rem;
	margin-right: 1rem;
	display: block;
	letter-spacing: .07em;
}
.featureArea .num strong {
	font-size: 8rem;
	font-weight: 500;
	margin-top: -.1em;
}
.featureArea h3 {
	font-size: 2.4rem;
	margin-bottom: 2rem;
}
.designTop {
	gap: 2rem 4rem;
	margin-bottom: 6rem;
}
.designTop h2 {
	max-width: 37.4rem;
}
.designTop dl {
	text-align: left;
}
.designTop dt {
	font-size: 2.4rem;
	letter-spacing: .07em;
	font-weight: 600;
	margin-bottom: 1rem;
}
.designArea li {
	width: 50%;
	position: relative;
	overflow: hidden;
	z-index: 1;
}
.designArea li .img {
	overflow: hidden;
	position: relative;
	aspect-ratio: 7/4;
}
.designArea li .img img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}
.designArea li .txtWrap {
	height: 5rem;
	background: #fff;
	font-weight: 600;
	letter-spacing: .07em;
	position: relative;
	z-index: 10;
}
.designArea li .txtWrap .fo-oswald {
	font-size: 2rem;
	font-weight: 500;
	margin-right: 1.5rem;
	color: var(--c_rd);
}
.designWrap {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 5rem;
	color: #fff;
	background: rgba(0, 0, 0, 0.50);
	backdrop-filter: blur(5px);
	z-index: 5;
	padding: 5em 3.57em 1.45em 14.2em;
	font-size: 1.4rem;
	font-size: clamp(1.2rem,.833333vw,1.6rem);
	transition: .8s .1s;
	opacity: 0;
	transform: scale(1.05);
	filter: blur(5px);
}
.designArea li:hover > .designWrap {
	opacity: 1;
	transform: scale(1);
	filter: blur(0px);
}
.designWrap .eng {
	background: var(--c_rd);
	color: #fff;
	padding: 1rem 1rem 1rem .5rem;
	margin-right: 1rem;
	display: block;
	letter-spacing: .07em;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	font-size: 1.8rem;
}
.designWrap .num {
	font-size: 750%;
	font-weight: 500;
	letter-spacing: .07em;
	opacity: .3;
	position: absolute;
	top: 4rem;
	left: 5rem;
	z-index: 1;
}
.designBox {
	text-align: left;
	max-width: 550px;
}
.designBox .ttl {
	font-size: 112.5%;
	font-weight: 600;
	padding-bottom: 0.5rem;
	display: inline-block;
	letter-spacing: .2em;
	border-bottom: 1px solid #fff;
	margin-bottom: 1.875em;
}
.designBox h3 {
	font-size: 170%;
	letter-spacing: .1em;
	margin-bottom: 2rem;
}
#cpTop {
	background: url(../img/cp_bg.jpg) center center no-repeat;
	background-size: cover;
	padding: 5rem 0;
}
.cpttl {
	font-size: 2.4rem;
	font-weight: 700;
	margin-bottom: 3rem;
}
.cpttl .sub {
	display: inline-block;
	font-size: 2.4rem;
	margin-bottom: 2rem;
	line-height: 1.2;
	position: relative;
}
.cpttl .sub::before,.cpttl .sub::after {
	content: "";
	display: block;
	width: 1.5px;
	height: 100%;
	background: #fff;
	position: absolute;
	bottom: 0;
	left: -1.5rem;
	transform: skew(20deg);
}
.cpttl .sub::after {
	left: auto;
	right: -1.5rem;
	transform: skew(-20deg);
}
.cpttl .eng {
	background: var(--c_rd);
	color: #fff;
	font-size: 2rem;
	font-weight: 400;
	padding: 1rem;
	display: inline-block;
	margin-bottom: 1rem;
}
.cpttl h2 {
	font-size: 5.2rem;
}
.cpTxt .sub {
	display: block;
	max-width: 30rem;
	margin: 0 auto 1rem;
	padding: .5rem 0 .8rem;
	font-size: 2.8rem;
	font-weight: 700;
	color: #fff;
	line-height: 1;
	border-top: 1px solid #fff;
	border-bottom: 1px solid #fff;
	margin-bottom: 1.5rem;
}
.cpTxt h3 {
	font-size: 4.2rem;
	letter-spacing: .05em;
}
.cpTxt h3 em {
	background: linear-gradient(148deg, #FBE67B 15.07%, #FCFBE7 45.38%, #F7D14E 70.42%, #D4A041 98.09%);
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
.cpTxt h3 .fo-oswald {
	font-size: 166%;
	font-weight: 500;
	vertical-align: -.14em;
}
.cpTxt .note {
	font-size: 1.4rem;
	margin-top: 2rem;
}
#presentArea {
	padding: 5rem 0;
	background-color: var(--c_rd);
	color: #fff;
	position: relative;
}
.preImg li {
	position: absolute;
	z-index: 1;
}
.preImg li img {
	width: 100%;
}
.preImg li:nth-of-type(1) {
	width: 23%;
	max-width: 350px;
	right: 12.5rem;
	bottom: 0;
	z-index: 2;
}
.preImg li:nth-of-type(2) {
	width: 30%;
	max-width: 420px;
	top: 0;
	left: 0;
}
.preImg li:nth-of-type(3) {
	width: 30%;
	max-width: 420px;
	right: 0;
	bottom: 0;
}
.presentWrap .eng {
	background: #000;
	color: #fff;
	font-size: 2rem;
	font-weight: 400;
	padding: 1rem;
	display: inline-block;
}
.presentWrap h2 {
	font-size: 5.2rem;
}
.presentWrap h2 small {
	font-size: 70%;
}
.presentTxt {
	font-size: 4.8rem;
	font-weight: 600;
	margin-top: 1rem;
}
.presentTxt small {
	display: block;
	font-size: 62.5%;
}
.presentTxt .fo-oswald {
	font-size: 191%;
	font-weight: 500;
	margin-bottom: 0.1em;
}
.presentWrap {
	position: relative;
	z-index: 10;
}
.presentWrap figure {
	position: absolute;
	width: 21.4rem;
	height: 21.4rem;
	background: #B10919;
	display: flex;
	justify-content: center;
	align-items: center;
	padding-bottom: 2rem;
	border-radius: 50%;
	position: absolute;
	bottom: 0;
	left: 0;
}
.presentWrap figure img {
	max-height: 17.9rem;
}
.termsWrap {
	border: 2px solid var(--c_rd);
}
.termsWrap h2 {
	text-align: center;
	color: #fff;
	background: var(--c_rd);
	font-weight: 600;
	font-size: 3rem;
	padding: .5rem 1rem 1rem;
}
.termsBox {
	width: 90%;
	max-width: 770px;
	margin: 0 auto;
	padding: 5rem 0;
}
.termsWrap .sub {
	color: #bd272d;
	text-align: center;
	font-size: 2.4rem;
	font-weight: 600;
	margin-bottom: 4rem;
}
.termsWrap ol li {
	font-size: 2.2rem;
	font-weight: 600;
	margin-bottom: 1.5rem;
	text-align: left;
	position: relative;
}
.termsWrap ol li span {
	display: inline-block;
	margin-right: 0.2em;
}
.termsWrap .note {
	text-align: left;
	font-size: 87.5%;
}
.termsWrap .note p {
	display: block;
	padding-left: 1em;
	text-indent: -1em;
	margin-top: .3em;
}
.termsBtn {
	margin: 3rem auto 0;
	max-width: 24rem;
	color: var(--c_rd);
	letter-spacing: .1em;
	text-indent: .1em;
	border: 1px solid var(--c_rd);
	padding: 1.5rem;
	position: relative;
	font-size: 1.4rem;
	font-weight: 600;
	cursor: pointer;
	text-align: center;
	transition: .4s;
}
.termsBtn::after {
	content: "";
	display: block;
	background: url("../img/arrow_rd.svg") center center no-repeat;
	background-size: contain;
	width: .9rem;
	height: 1.5rem;
	position: absolute;
	top: 50%;
	transform: translateY(-50%) rotate(90deg);
	right: 3rem;
}
.termsBtn:hover {
	background: #f1f1f1;
}
.termsBtn.active::after {
	transform: translateY(-50%) rotate(-90deg);
}
.contactTop {
	margin-bottom: 6rem;
}
.contactTop .txt {
	font-size: 2rem;
	font-weight: 500;
}
.telArea {
	max-width: 470px;
	margin: 2.5rem auto 0;
}
.telArea .ttl {
	background: #50504A;
	color: #fff;
	font-size: 1.8rem;
	padding: .8rem 0 1rem;
	margin-bottom: 1.5rem;
}
.telArea .telnum a {
	display: inline-block;
	font-size: 4.6rem;
	font-weight: 500;
	color: var(--c_rd);
	background: url(../img/icon_tel2.svg) left bottom no-repeat;
	background-size: 3.5rem auto;
	padding-left: 4rem;
	margin-bottom: .5rem;
}
/*form
---------------------------------------------------------*/
.contBox {
	padding: 8rem 10rem;
	background: #fff;
	text-align: left;
}
.formTxt {
	font-size: 115%;
	font-weight: 600;
	margin-bottom: 4rem;
	text-align: center;
}
.formBox dl {
	display: flex;
}
.formBox dl.hide {
	display: none;
}
.formBox dt,.formBox dd {
	font-weight: 400;
	padding: 2.5rem 0;
	text-align: left;
	border-top: 1px solid #e2e2e2;
}
.formBox dt::after {
	content: "任意";
	font-size: 75%;
	font-weight: 400;
	width: 5.5rem;
	border-radius: .5rem;
	padding: .5rem 0;
	text-align: center;
	display: inline-block;
	background: #D2D2D2;;
	line-height: 1;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 0;
}
.formBox dt.req::after {
	content: "必須";
	background: #000;
	color: #fff;
}
.formBox dt {
	display: flex;
	justify-content: center;
	flex-direction: column;
	width: 27rem;
	position: relative;
	padding-right: 6rem;
	border-color: #000
}
.formBox dt small {
	color: #969696;
	font-size: 75%;
}
.formBox dd {
	flex: 1;
	padding-left: 2.5rem
}
.formBox dd .note {
	font-size: 85%;
	margin-top: 1rem;
	letter-spacing: .1em;
	font-weight: 500;
}
.formBox dd > p + p{
	padding-top: 1rem;
}
.formName > .txt {
	width: 40%;
}
.formName > .txt:first-of-type {
	margin-right: 2rem;
}
.formName .txt span {
	display: block;
	white-space: nowrap;
	margin-right: 1rem;
}
.formBox dd .txt b {
	white-space: nowrap;
	font-weight: 400;
}
.ui-datepicker-trigger {
	margin-left: 1rem;
	cursor: pointer;
}
.form-address p {
	text-align: left;
}
.formBox input[type="text"],.formBox input[type="tel"],.formBox input[type="email"],.formBox select,.formBox textarea {
	font-family: 'Noto Sans JP', sans-serif, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS P Gothic", Verdana;
	width: 100%;
	padding: .575em;
	border: 1px solid #ccc;
	border-radius: 3px;
	background: #F5F5F5;
}
.formBox input[type="text"].size-s {
	max-width: 30rem;
}
.dateWrap input[type="text"] {
	max-width: 32rem;
}
.datepicker {
	position: relative;
	display: inline-block;
	cursor: pointer;
}
.datepicker img {
	display: none;
}
.datepicker::before {
	content: "";
	display: block;
	position: absolute;
	right: 1rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1.5rem;
	height: 1.7rem;
	background: url(../img/ico-cal.svg) 0 0 / contain no-repeat;
	z-index: 2;
	pointer-events: none;
}
.form-address input[type="text"] {
	max-width: 42.5rem;
}
.form-address span {
	display: inline-block;
	margin-right: 1rem;
}
.formBox select {
	width: auto;
	background: #fff;
	color: #000
}
.formBox option:first-of-type {
	background: #b3b3b3;
	color: #fff;
}
.formBox textarea {
	height: 10rem;
}
.formBox .disabled input {
	pointer-events: none;
	border: none;
}
.zipBtn {
	display: inline-block;
	font-size: 87.5%;
	padding: 1rem;
	margin-left: 1rem;
	border: none;
	cursor: pointer;
	line-height: 1.1;
	background: #000;
	color: #fff;
}
.zipBtn:hover {
	background: #999
}
.formBtn {
	margin-top: 3rem;
}
._confirm button.button._grey {
	display: block!important;
}
.formWrap input[type="submit"],.formWrap input[type="button"],.formWrap button.button._grey {
	font-family: 'Noto Sans JP', sans-serif ,"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS P Gothic", Verdana;
	color: var(--c_rd);
	font-size: 115%;
	font-weight: 500;
	letter-spacing: .075em;
	text-indent: .075em;
	min-width: 35rem;
	display: block;
	border: 1px solid var(--c_rd);
	padding: 1.5rem 1.5rem;
	margin: 1rem;
	transition: .2s;
	cursor: pointer;
}
.formWrap .btnCont.btn_back,
.formWrap button.button._grey {
	background: #4d4d4d;
	color: #fff;
	border-color: #4d4d4d;
}
.formWrap input[type="submit"]:hover,.formWrap input[type="button"]:hover,.formWrap button.button._grey:hover {
	opacity: .8;
}
.formWrap input[disabled] {
	opacity: .2;
	pointer-events: none;
	filter: grayscale(100%);
	background: #4d4d4d;
	color: #fff;
}
.formWrap select {
	background: #F5F5F5 url(../img/arrow_bk2.svg) right 1rem center no-repeat;
	background-size: 1rem auto;
	min-width: 32rem;
	position: relative;
	padding: 1rem 6rem 1rem 1rem;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
.formWrap select option {
	background-color: #fff;
	color: #333;
}
.formWrap .dateWrap select {
	min-width: 202px;
}
select + select {
	margin-top: 1rem;
}
.onlyconf,button.button._grey {
	display: none;
}
._confirm button.button._grey,
._confirm .onlyconf,
#confirm .onlyconf {
	display: block!important;
}
.mw_wp_form .horizontal-item + .horizontal-item {
	margin-left: 0!important;
}
._confirm .formBox dt::after,
._confirm .privacyBox,
._confirm .formBox dt::before,
._confirm .zipBtn,
._confirm .formName .txt span,
._confirm .policyTxt {
	display: none!important;
}
._confirm .formName > .txt {
	width: auto;
}
.mw_wp_form .error {
	font-size: 85%!important;
}
.formName .error {
	min-width: 50%;
}
.formName .error + .error {
	display: none;
}
#reserve,#confirm {
	padding-top: 10rem;
}
.thxBox {
	padding: 6rem 1.5rem;
	background: #fff;
	line-height: 1.8;
}
.thxBox a {
	display: inline-block;
	background: #4d4d4d;
	padding: .5rem 2rem;
	color: #fff;
	border-radius: 10rem;
}
._confirm .ankeForm {
	display: block !important;
	margin-top: 5rem;
}
._confirm .ankeTop,
._confirm .termsWrap,
._confirm .ankeBtn,
._confirm .ankeBtn,
._confirm .ankeBtn,
._confirm .ankeBtn {
	display: none !important;
}
.radio-bukken {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem
}
.radioTxt {
	background: #c3936a;
	color: #fff;
	margin: 3rem 0 2rem;
	font-size: 90%;
	padding: .5rem;
	text-align: center;
}
.radio-bukken label {
	height: 100%;
	font-size: 97%;
	position: relative;
	margin: 0;
	background: #eee;
	max-width: 30rem;
	padding: 2.5rem;
	padding-top: 21rem;
}
.radio-bukken label::before {
	content: "";
	display: block;
	position: absolute;
	background: url("../img/form_radio01.jpg") center center no-repeat;
	background-size: cover;
	height: 17.5rem;
	margin: 0 auto;
	top: 2.5rem;
	left: 2.5rem;
	right: 2.5rem
}
.radio-bukken._02 span label::before {background-image:url("../img/form_radio02.jpg")}
.radio-bukken._02 span:nth-of-type(2) label::before {background-image:url("../img/form_radio03.jpg")}
.ankeBtn {
	display: flex;
	align-items: center;
	background: var(--c_rd);
	color: #fff;
	position: relative;
	padding: 3rem 3.5rem;
	gap: .5rem 2rem;
	cursor: pointer;
	font-weight: 500;
	margin: 4rem 0 2rem;
	transition: .4s;
}
.ankeBtn:hover {
	background: #000;
}
.dateWrap >div {
	width: 30rem;
	gap: .5rem 1rem;
}
.dateWrap >div >span {
	white-space: nowrap;
}
.date02 {
	flex: 1;
}
.ankeBtn::after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	right: 3.5rem;
	background: url(../img/arrow_wh.svg) center center no-repeat;
	background-size: contain;
	width: 1.3rem;
	height: 2.8rem;
	transform: translateY(-50%) rotate(90deg);
	z-index: 1;
}
.ankeBtn.active::after {
	transform: translateY(-50%) rotate(-90deg);
}
.ankeBtn p {
	font-size: 150%;
}
.ankeForm .ttl {
	font-size: 3rem;
	font-weight: 600;
	color: #515862;
	text-align: center;
	margin-bottom: 3rem;
}
.ankeForm dt {
	padding-left: 0;
}
.radioWrap label {
	display: block;
	margin-right: 0;
	border: 1px solid #e2e2e2;
	padding: 1rem;
}
.radioWrap label.act {
	background-color: #e6d9ce;
}
.checkWrap {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 4%;
}
.checkWrap > span {
	display: block;
	width: 48%;
}
.checkWrap._mid > span {
	width: 32%;
}
.checkWrap > span label {
	padding-left: 1.2em;
	text-indent: -1.2em;
}
.checkWrap.col-3 > span {
	width: auto;
}
.checkRow{
	gap:1rem;
	align-items: center;
}
.checkRow > span {
	white-space: nowrap;
	margin-right: 1em;
	min-width: 9rem;
}
.formBox .checkRow .checkTxt{
	width: 50rem;
	max-width: 100%;
}


/*ieハック*/
@media screen\0  {
}

/*********************************/
/* タブレット用のスタイル記述 */
/*********************************/
@media screen and (max-width: 1250px) {
	html {
		font-size: .8vw;
	}
}

/*********************************/
/* スマートフォン用のスタイル記述 */
/*********************************/
@media screen and (max-width: 780px) {
/*全体レイアウト
---------------------------------------------------------*/
	html {
		font-size: 2.7777777vw;
	}
	body {
		font-size: 1.4rem;
		line-height: 1.5
	}
	body.active {
		overflow: hidden;
	}
	article > section {
		padding: 4rem 0;
	}
	h2 {
		font-size: 2.4rem;
	}
	/*header
	-------------------------------------------------------*/

	/*nav
	-------------------------------------------------------*/
	.menuIconWrap {
		top: 1rem;
		right: 1rem;
		width: 5.4rem;
		height: 5.4rem;
	}
	.menuIconWrap .fo-oswald {
		font-size: 1.2rem;
		bottom: .3rem;
	}
	.menuIcon {
		top: 1rem;
	}
	.menuIconWrap.active .menuIcon {
		top: 1.6rem;
	}
	#navArea {
		width: 90%;
		padding: 4rem 2rem 3rem;
		background-position: right -3rem top 32rem;
		background-size: 40% auto;
	}
	.navtop .ttl .logo img {
		max-height: 6.5rem;
	}
	.navtop .sub {
		font-size: 1.1rem;
		margin-bottom: 1rem;
	}
	.nav li a {
		font-size: 1.4rem;
		gap: 1rem
	}
	.nav li a .fo-oswald::after,
	.nav li a .fo-oswald::before {
		display: none;
	}
	.nabTn {
		flex-direction: column;
	}
	.nabTn li {
		width: 100%;
	}
	.nabTn a {
		font-size: 1.4rem;
	}
	.nabTn a br {
		display: none;
	}

	/*footer
	-------------------------------------------------------*/
	#footer {
		padding-bottom: 4rem;
		background-position: right -3% bottom -1rem;
		background-size: 50% auto;
	}
	.footWrap {
		display: block;
		padding-bottom: 2rem;
	}
	.footBox big {
		display: block;
	}
	.fLogo {
		text-align: left;
		margin: 0 0 1.5rem
	}
	.fLogo img {
		max-height: 4rem;
	}
	.copyRight {
		text-align: center;
		margin-top: 2rem;
	}
	.sideFix.btns {
		display: flex;
		flex-direction: row;
		bottom: 0;
		left: 0;
		width: 100%;
		border-radius: 0;
	}
	.sideFix.btns li {
		flex-grow: 1;
	}
	.sideFix.btns a {
		padding: 1rem .5rem;
		gap: 0 .5rem;
		font-size: 1rem;
		justify-content: center;
		white-space: nowrap;
	}
	.sideFix.btns ._03 a {
		font-size: 1.5rem;
		white-space: nowrap;
	}
	.sideFix.btns img {
		max-height: 1.5rem;
	}
	.sideFix.btns a::after {
		display: none;
	}
	.bnr01 {
		flex-direction: column;
		width: 90%;
		margin: 0 auto;
	}
	.bnr01Lft {
		padding: 2rem 1.5rem;
	}
	.bnr01Lft .ttl {
		display: block;
		margin-bottom: 1.5rem;
	}
	.bnr01Lft .ttl .fo-oswald {
		font-size: 3.2rem;
	}
	.bnr01Lft figure {
		max-width: 18rem;
		top: .5rem;
	}
	.bnr01Lft .txt-lh {
		font-size: 1.4rem;
		line-height: 1.5;
	}
	.bnrBtn {
		gap: .5rem 1.4rem
	}
	.bnrBtn li {
		flex: 1;
		max-width: 20rem;
	}
	.bnrBtn a {
		width: 100%;
		line-height: 1.2;
	}
	.bnr01Rht {
		width: 100%;
	}
	.bnr02 {
		padding: 2rem 3rem;
		font-size: 1.4rem;
	}
	.bnr02 dl {
		flex-direction: column;
	}
	.bnr02 dt {
		border-right: none;
		border-bottom: 1px solid #fff;
		padding: 0 0 .5rem 0;
		margin-bottom: 1rem;
	}
	.bnr02 dt .fo-oswald {
		font-size: 3.2rem;
	}

	/*contents
	-------------------------------------------------------*/
	.mainArea {
		background: url(../img/main01_sp.jpg) bottom center no-repeat;
		background-size: cover;
		height: 45rem;
		padding-top: 10rem;
	}
	.mainCont {
		flex-direction: column;
		gap: 18rem 5rem;
	}
	.mvTxtImg {
		max-width: 28rem;
	}
	.mainBox dl {
		margin: 0;
	}
	.mainBox h1 span {
		font-size: 1.6rem;
	}
	.mainBox h1 .logo {
		width: 100%;
	}
	.mainBox h1 .logo img {
		max-height: 6.5rem;
	}
	.mainPrice {
		font-size: 2.4rem;
		padding-top: .5rem;
	}
	.mainPrice p {
		padding-bottom: 0;
	}
	.mainBox dt {
		font-size: 2.4rem;
		white-space: nowrap;
		text-shadow: 0 0 .5rem rgba(0,0,0,.8);
		justify-content: center;
		margin-bottom: 0.5rem;
	}
	.mainBox dt small {
		font-size: 1.6rem;
		width: 8rem;
		margin-bottom: -0.2rem;
		border-width: 1px;
	}
	.mainPrice .fo-oswald {
		font-size: 175%;
	}
	.mainPrice .fvtxt::before {
		height: 20%;
	}
	.topTxt h2 {
		font-size: 1.8rem;
		margin-bottom: 2rem;
	}
	.txt-lh {
		text-align: left;
	}
	.plxImg {
		height: 18.6rem;
	}
	.plxImg .img {
		position: relative;
		height: 100%!important;
	}
	.newsArea {
		padding: 3rem 2rem;
	}
	.newsBox li {
		display: block;
		padding: 1.5rem 1rem;
	}
	.newsBox li .box {
		margin-bottom: 0.8rem;
		gap: .5rem 1rem;
	}
	.recommendWrap {
		padding: 3rem 2rem;
	}
	.recommendWrap li + li {
		margin-top: 1rem;
	}
	.recommendWrap li {
		text-align: left;
		font-size: 1.4rem;
		gap: 0 1rem
	}
	.recommendWrap li::before {
		min-width: 2rem;
	}
	.planPoint dd figure {
		max-width: 100%;
	}
	.pageAnchor {
		gap: 1.2rem 3rem
	}
	.pageAnchor a {
		font-size: 1.6rem;
	}
	.slick-arrow {
		width: 3rem;
		height: 3rem;
		right: -3.5rem;
	}
	.slick-arrow.prev {
		left: -3.5rem;
	}
	.pointsSlider {
		padding: 3rem 2rem;
	}
	.pointsWrap dt {
		gap: 0 1rem
	}
	.pointsWrap dt h3 {
		font-size: 1.6rem;
		padding-top: 0.7rem;
		margin-bottom: 1rem;
	}
	.pointsWrap dd {
		padding-left: 0;
	}
	.pointsWrap dt .num {
		font-size: 2rem;
		width: 5rem;
		height: 3.3rem;
		padding-top: .3rem;
		background-size: 100% 100%;
		margin: 0 auto;
	}
	.columnHeader {
		padding: 5rem 0 2.5rem;
	}
	.columnHeader .bg {
		flex-direction: column;
	}
	.columnHeader .bg li {
		width: 100%;
		height: 50%;
	}
	.columnTtl {
		text-align: center;
	}
	.columnTtl strong {
		font-size: 250%;
	}
	.lewTtl h3 {
		font-size: 3.2rem;
	}
	.scrlImg {
		overflow: auto;
	}
	.scrlImg .img {
		margin: 0;
		width: 62rem;
	}
	.planTtl {
		flex-direction: column;
		text-align: center;
	}
	.planTtl dd {
		text-align: center;
		margin-top: 1rem;
	}
	.planTtl dt img {
		max-height: 6.5rem;
	}
	.planTtl dd h2 {
		font-size: 2rem;
	}
	.planHeader {
		padding: 4rem 0;
		margin-bottom: 4rem;
		background: var(--c_rd);
	}
	.planAnchor {
		flex-direction: column;
	}
	.planAnchor li .img {
		margin-bottom: 1.5rem;
		overflow: hidden;
	}
	.planAnchor li .img img {
		margin-top: -5rem;
	}
	.planAnchor li h3 {
		font-size: 1.6rem;
		text-align: center;
	}
	.price {
		font-size: 1.2rem;
	}
	.price .fo-oswald {
		font-size: 300%;
	}
	.planAnchor .num {
		font-size: 3.2rem;
	}
	.planArea {
		gap: 3rem 0;
	}
	.caseWrap {
		flex-direction: column;
	}
	.caseWrap dl {
		text-align: center;
	}
	.caseWrap .num {
		font-size: 3.2rem;
		margin-bottom: 1rem;
	}
	.caseWrap h2 {
		font-size: 1.8rem;
	}
	.caseWrap dd .txt-lh {
		text-align: center;
	}
	.caseWrap .price {
		margin-top: 3rem;
		font-size: 1.4rem;
	}
	.caseWrap .img {
		width: 100%;
		margin-top: 1rem;
	}
	.planBtmArea {
		padding: 4rem 0;
	}
	.planBtmArea h3 {
		font-size: 1.6rem;
		margin-bottom: 1rem;
	}
	.planPointArea {
		padding: 3rem 2rem;
	}
	.planPointArea h4 {
		font-size: 1.6rem;
		margin-bottom: 2px;
	}
	.planPointMain {
		margin-bottom: 3rem;
	}
	.planBtmWrap {
		flex-direction: column;
	}
	.planBtmWrap .img {
		max-width: 100%;
	}
	.planPoint dt {
		font-size: 2.8rem;
	}
	.planBox h3 {
		font-size: 1.6rem;
	}
	.planContImg li {
		width: 100%;
		max-width: 100%;
	}
	.planContImg li:first-of-type::after {
		transform: rotate(90deg);
		top: auto;
		left: 0;
		right: 0;
		bottom: -4rem;
		margin: 0 auto;
	}
	.planBox .note {
		text-align: left;
	}
	.lifeTtl {
		font-size: 2.4rem;
	}
	.lifeWrap {
		row-gap: 1rem;
	}
	.lifeWrap dl {
		padding: 1rem;
	}
	.lifeWrap dt {
		flex-direction: column;
		margin-bottom: 1rem;
		text-align: justify;
	}
	.lifeWrap .num {
		font-size: 2rem;
		margin: 0 auto 1rem;
	}
	.lifeWrap h3 {
		font-size: 1.4rem;
		min-height: 6.3rem;
	}
	.lifeWrap dd {
		flex-direction: column;
	}
	.lifeWrap dd .img {
		width: 100%;
		margin-bottom: 1rem;
	}
	.lifeWrap dd .txt-lh {
		display: none;
		font-size: 1.2rem;
		letter-spacing: normal;
		line-height: 1.6;
	}
	.voiceSlider {
		width: 90%;
		margin: 0 auto;
	}
	.voiceBox dt h3 br {
		display: none;
	}
	.voiceBox {
		padding: 1.5rem;
	}
	.voiceBox .txt-lh {
		text-align: justify;
	}
	.voiceSlider {
		margin-bottom: 4rem;
	}
	.featureArea {
		display: block;
	}
	.featureArea figure {
		height: 14rem;
		margin-bottom: 2rem;
	}
	.featureArea .num {
		justify-content: center;
	}
	.featureArea dl {
		width: 100%;
	}
	.featureArea dt {
		text-align: center;
	}
	.featureArea h3 {
		font-size: 1.8rem;
	}
	.featureArea .num strong {
		font-size: 5.5rem;
	}
	.designTop {
		flex-direction: column;
	}
	.designTop h2 {
		max-width: 20rem;
	}
	.designTop dt {
		font-size: 1.8rem;
		text-align: center;
	}
	.designArea li {
		width: 100%;
	}
	.designArea li .txtWrap {
		position: relative;
	}
	.designArea li .txtWrap::after {
		content: "";
		display: block;
		background: url(../img/arrow_rd.svg) center center no-repeat;
		background-size: contain;
		width: 1rem;
		aspect-ratio: 5 / 9;
		transform: rotate(90deg) translateX(-50%);
		position: absolute;
		top: 45%;
		right: 5%;
  	}
	.designArea li .txtWrap.active::after {
		transform: scale(-1,1) rotate(-90deg) translateX(50%);
	}
	.designWrap {
		display: none;
		opacity: 1;
		bottom: auto;
		position: relative;
		filter: none;
		transform: none;
		background: var(--c_gy);
		padding: 5em 2rem 3rem;
		font-size: 1.4rem;
		transition: none;
		color: #000;
	}
	.designWrap .num {
		font-size: 8.5rem;
		top: 1rem;
		left: auto;
		right: 1rem;
		opacity: .15;
	}
	.designBox h3 {
		font-size: 1.8rem;
	}
	.designBox .ttl {
		font-size: 1.6rem;
		border-bottom-color: #000;
		margin-bottom: 1.5rem;
	}
	.cpttl .sub {
		font-size: 1.8rem;
	}
	.cpttl .eng {
		width: 100%;
	}
	.cpttl h2 {
		font-size: 2.6rem;
		white-space: nowrap;
	}
	.cpTxt .sub {
		font-size: 2rem;
	}
	.cpTxt h3 {
		font-size: 2.6rem;
	}
	.cpTxt .note {
		font-size: 1rem;
		text-align: left;
	}
	#presentArea {
		padding: 4rem 0 9rem;
	}
	.presentWrap .eng {
		margin-bottom: 2rem;
	}
	.presentWrap {
		display: flex;
		flex-direction: column;
	}
	.presentWrap figure {
		width: 7rem;
		height: 7rem;
		padding-bottom: 1rem;
		top: 9.5rem;
	}
	.presentWrap figure img {
		max-height: 5.5rem;
	}
	.presentWrap h2 {
		font-size: 2.4rem;
		white-space: nowrap;
	}
	.presentTxt {
		font-size: 2rem;
		white-space: nowrap;
		margin-top: 1rem;
		text-align: left;
		padding-left: 8rem;
	}
	.presentTxt small {
		font-size: 1.4rem;
		margin-bottom: 0.5rem;
	}
	.preImg li:nth-of-type(2),.preImg li:nth-of-type(3) {
		width: 55%;
	}
	.preImg li:nth-of-type(1) {
		width: 62%;
		right: 10%;
	}
	.presentWrap .note {
		text-align: left;
	}
	.termsWrap h2 {
		font-size: 1.8rem;
	}
	.termsBox {
		padding: 3rem 0;
	}
	.termsWrap .sub {
		font-size: 1.8rem;
		margin-bottom: 2rem;
	}
	.termsWrap ol li {
		font-size: 1.6rem;
	}
	.contactTop .txt {
		font-size: 1.6rem;
	}
	.telArea .ttl {
		font-size: 1.4rem;
		padding: .5rem;
	}
	.telArea .telnum a {
		font-size: 3.6rem;
		white-space: nowrap;
		background-size: 3rem auto;
	}
	.contactTop {
		margin-bottom: 4rem;
	}



/*form
	------------------------------------------------------*/
	.reserveTtl .ttl {
		font-size: 2rem;
	}
	.telWrap .txt {
		font-size: 1.6rem
	}
	.telWrap a {
		font-size: 2.4rem;
		padding: 1.5rem;
		max-width: 25rem
	}
	.contBox {
		padding: 4rem 2rem 3rem
	}
	.formBox dl {
		display: block;
	}
	.formBox dt, .formBox dd {
		padding: 1rem;
	}
	.formBox dt {
		width: 100%;
		min-height: inherit;
		padding-right: 5rem;
	}
	.formBox dt::after {
		width: 4rem;
		font-size: 80%
	}
	.formBox dd {
		border-top: none;
		margin-bottom: 2rem;
	}
	.formWrap select {
		min-width: 25rem
	}
	.zipBtn {
		font-size: 1rem;
		white-space: nowrap;
	}
	.form-zip input[type="text"].size-s {
		max-width: 10rem;
	}
	.formBox textarea {
		height: 12rem;
	}
	.checkWrap {
		gap: 1rem 2%;
	}
	.checkWrap._sp100 >span {
		width: 100%;
	}
	.checkWrap > span,
	.checkWrap._mid > span {
		width: 49%;
	}
	.formBox .checkRow .checkTxt{
		width: 24rem;
	}
	.checkWrap > span label {
		padding-left: 1.3em;
		text-indent: -1.3em;
	}
	.ankeBtn {
		display: block;
		padding: 1rem 2rem;
		font-size: 1.2rem;
	}
	.ankeBtn::after {
		right: 2.5rem;
		width: 1rem;
		height: 2.5rem;
	}
	.ankeForm .ttl {
		font-size: 2rem;
		margin-bottom: 2rem;
	}
	.ankeTtl {
		display: block;
		font-size: 1.5rem
	}
	.ankeTtl .sub {
		font-size: 1.4rem;
		max-width: 8rem;
		margin: 0 auto 1rem;
		padding: .5rem 0;
	}
	.ankeTtl .sub::after {
		transform: rotate(90deg);
		right: 0;
		left: 0;
		margin: 0 auto;
		top: auto;
		bottom: -.8rem
	}
	.pointCont {
		padding: 0 2rem;
		flex-direction: column;
	}
	.contactArea .termsWrap {
		padding: 0 0 4rem
	}
	.formWrap input[type="submit"], .formWrap input[type="button"], .formWrap button.button._grey {
		min-width: 28rem;
		font-size: 100%;
		padding: 1.5rem 0
	}
	.formName > .txt {
		width: 45%;
	}
	.radio-bukken label {
		padding-top: 18.5rem;
	}
	.radio-bukken label::before {
		height: 14.5rem;
	}
	.btmTel .ttl {
		font-size: 1.6rem
	}
	.btmTel a {
		font-size: 3.5rem;
	}
	.dateWrap input[type="text"] {
		max-width: 21rem;
	}
	.checkRow {
		flex-wrap: wrap;
		gap: .4rem 1rem;
	}
	.dateWrap {
		display: block;
	}
	.date02 {
		margin-top: 1.5rem;
	}
	.date02 > span {
		display: block;
		margin-bottom: 0.5rem;
	}
	.formBtn {
		margin-top: 0;
	}
}















