@charset "UTF-8";

/* ---------------------------------------------------------
	CSS Document point
--------------------------------------------------------- */

#point {
	margin-bottom: 140px;
}

#point .text {
	margin-bottom: 70px;
}

#point .text img {
	height: 432px;
}

#point .flex {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	width: 800px;
	margin-bottom: 80px;
}

#point .flex .section {
	width: 350px;
	font-size: 24px;
	line-height: 1.6;
}

#point .flex figure {
	margin-bottom: 0.8em;
	border-radius: 10px;
	box-shadow: 0 0 0 4px #291c14 inset;
	transform: scale(0.8, 0.8);
	transform-origin: bottom right;
	transition: 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) ;
}

#point .flex.active figure {
	transform: scale(1, 1);
}

#point .flex figure img {
	height: 446px;
}

#point .flex .section:nth-of-type(2) figure {
	transition-delay: 0.3s;
}

/* ---------------------------------------------------------
	CSS Document trouble
--------------------------------------------------------- */

#trouble {
	width: 960px;
	margin-bottom: 60px;
}

#trouble h2 {
	margin-bottom: 90px;
}

#trouble h2 img {
	height: 48px;
}

#trouble ul li {
	height: 356px;
	margin-top: -50px;
	position: relative;
	z-index: 5;
}

#trouble ul li:nth-of-type(odd) {
	text-align: left;
}

#trouble ul li:nth-of-type(even) {
	text-align: right;
}

#trouble ul li:nth-of-type(2) {
	height: 240px;
	z-index: 4;
}

#trouble ul li:nth-of-type(3) {
	height: 301px;
	z-index: 3;
}

#trouble ul li:nth-of-type(4) {
	height: 330px;
	z-index: 2;
}

#trouble ul li:nth-of-type(5) {
	height: 220px;
	z-index: 1;
}

#trouble figure {
	margin-top: -200px;
	text-align: right;
}

#trouble figure img {
	height: 320px;
}

/* ---------------------------------------------------------
	CSS Document reason
--------------------------------------------------------- */

#reason {
	width: 960px;
	margin-bottom: 140px;
}

#reason h2 {
	margin-bottom: 50px;
}

#reason h2 img {
	height: 152px;
}

#reason figure {
	margin-bottom: 50px;
	text-align: right;
}

#reason figure img {
	height: 338px;
}

#reason ul li {
	height: 272px;
	margin-bottom: 30px;
}

#reason ul li:nth-of-type(odd) {
	text-align: left;
}

#reason ul li:nth-of-type(even) {
	text-align: right;
}

#reason ul li:nth-of-type(2) {
	height: 228px;
}

#reason ul li:nth-of-type(3) {
	height: 241px;
}

#reason ul li:nth-of-type(4) {
	height: 310px;
	margin-bottom: 0;
}

#reason ul li:nth-of-type(5) {
	height: 253px;
}

#reason ul li:nth-of-type(6) {
	height: 323px;
}

/* ---------------------------------------------------------
	CSS Document case
--------------------------------------------------------- */

#case {
	margin-bottom: 140px;
}

#case h2 {
	margin-bottom: 70px;
}

#case h2 img {
	height: 84px;
}

#case li {
	margin-bottom: 70px;
}

#case li img {
	height: 841px;
}

/* ---------------------------------------------------------
	CSS Document price
--------------------------------------------------------- */

#price {
	margin-bottom: 70px;
	padding: 100px 0;
	background: #fff100;
}

#price h2 {
	margin-bottom: 70px;
	padding: 60px 0 20px;
	border: solid 30px #fff;
}

#price h2 img {
	height: 734px;
}

#price dt {
	margin-bottom: 60px;
}

#price dt img {
	height: 350px;
}

#price dd {
	margin-bottom: 100px;
	padding: 11px 0;
	border-radius: 20px;
	background: #e60012;
	box-shadow: 0 0 1px rgba(0, 0, 0, 0);
	transform: perspective(1px) translateZ(0);
	position: relative;
}

#price dd:before {
	content: '';
	border-radius: 28px;
	border: solid 10px #e60012;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	opacity: 0;
	animation-duration: 3s;
	animation-iteration-count: infinite;
	animation-name: ripple;
}

#price dd img {
	height: 78px;
}

@keyframes ripple {
	0% {
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		opacity: 0;
	}
	70% {
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		opacity: 1;
	}
	100% {
		top: -12px;
		right: -12px;
		bottom: -12px;
		left: -12px;
		opacity: 0;
	}
}

#price .contact_btn a {
	background: #fff;
	color: #e60012;
}

#price .outline {
	margin-bottom: 120px;
}

#price .outline h3 {
	margin-bottom: 70px;
}

#price .outline h3 img {
	height: 112px;
}

#price .outline li {
	height: 88px;
	margin-bottom: 20px;
	background: #e60012;
	font-size: 30px;
	line-height: 88px;
	color: #fff;
}

#price .option {
	margin-bottom: 120px;
	position: relative;
}

#price .option h3 {
	padding-bottom: 10px;
	border-bottom: solid 3px #e60012;
	text-align: right;
}

#price .option h3 img {
	height: 67px;
}

#price .option ul {
	padding: 50px;
	padding-left: 80px;
	border-left: dashed 20px #e60012;
	text-align: left;
	font-size: 24px;
	line-height: 2.3;
}

#price .option figure img {
	height: 612px;
}

#price .option figure {
	position: absolute;
	bottom: 30px;
	right: -110vw;
	transition: .5s;
}

#price .option figure.active {
	right: 0;
}

/* ---------------------------------------------------------
	CSS Document reazon
--------------------------------------------------------- */

#reazon h2 {
	margin-bottom: 30px;
}

#reazon h2 img {
	height: 101px;
}

#reazon .section {
	display: flex;
	justify-content: space-between;
	margin-bottom: 40px;
	padding-bottom: 40px;
	border-bottom: solid 1px #c6c3c2;
}

#reazon .num {
	width: 66px;
	font-family: Lora, serif;
	font-weight: 500;
	font-size: 36px;
	line-height: 66px;
	color: #fff;
	position: relative;
	z-index: 0;
}

#reazon .num:before {
	content: '';
	width: 48px;
	height: 48px;
	border-radius: 3px;
	background: linear-gradient(to right, #7e6010 0%, #c0941e 100%);
	transform: rotate(45deg);
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: -1;
}

#reazon dl {
	width: 410px;
	text-align: left;
	line-height: 1.7;
}

#reazon dt {
	margin-bottom: 20px;
	font-family: "Noto Serif JP", serif;
	font-weight: 700;
	font-size: 30px;
	line-height: 1.2;
	letter-spacing: -0.05em;
	color: #c10000;
}

#reazon dt.line {
	margin-bottom: 0;
	line-height: 66px;
}

#reazon figure img {
	width: 230px;
	height: 150px;
}

/* ---------------------------------------------------------
	CSS Document flow
--------------------------------------------------------- */

#flow {
	margin-bottom: 140px;
}

#flow h2 {
	margin-bottom: 80px;
}

#flow h2 img {
	height: 86px;
}

#flow dl {
	margin-bottom: 70px;
	padding: 30px 3em;
	border: solid 7px #f5cd3b;
	text-align: justify;
	font-size: 24px;
	line-height: 1.5;
	position: relative;
}

#flow dl:after,
#flow dl:before {
	content: '';
	width: 0;
	height: 0;
	margin-left: -16px;
	border: solid 16px transparent;
	border-top: solid 20px #291c14;
	position: absolute;
	bottom: -82px;
	left: 50%;
}

#flow dl:before {
	bottom: -57px;
}

#flow dl:last-of-type:after,
#flow dl:last-of-type:before {
	display: none;
}

#flow dt {
	margin-bottom: 0.8em;
	font-weight: 800;
	font-size: 30px;
	line-height: 1;
}

#flow dd a {
	color: #e60012;
}

#flow dd a:hover {
	opacity: 0.6;
}

/* ---------------------------------------------------------
	CSS Document story
--------------------------------------------------------- */

#story {
	margin-bottom: 140px;
}

#story h2 {
	margin-bottom: 40px;
}

#story h2 img {
	height: 92px;
}

#story .container {
	width: 980px;
	margin-bottom: 100px;
	padding-top: 20px;
	position: relative;
	z-index: 0;
}

#story h3 {
	width: 600px;
	height: 58px;
	margin-bottom: 30px;
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: 18px;
	line-height: 58px;
	color: #e60012;
	position: relative;
	z-index: 0;
}

#story .container:nth-of-type(odd) h3 {
	padding-right: 30px;
	text-align: right;
}

#story .container:nth-of-type(even) h3 {
	margin-left: auto;
	padding-left: 30px;
	text-align: left;
}

#story h3:before {
	content: '';
	width: 770px;
	height: 66px;
	position: absolute;
	top: -4px;
	z-index: -1;
}

#story .container:nth-of-type(odd) h3:before {
	background: linear-gradient(to left, #e60012 0%, #fff 100%);
	right: -4px;
}

#story .container:nth-of-type(even) h3:before {
	background: linear-gradient(to right, #e60012 0%, #fff 100%);
	left: -4px;
}

#story h3:after {
	content: '';
	width: 762px;
	height: 58px;
	background: #fff;
	position: absolute;
	top: 0;
	z-index: -1;
}

#story .container:nth-of-type(odd) h3:after {
	right: 0;
}

#story .container:nth-of-type(even) h3:after {
	left: 0;
}

#story .section {
	width: 510px;
	text-align: justify;
}

#story .container:nth-of-type(even) .section {
	margin-left: auto;
}

#story .copy {
	margin-bottom: 20px;
	font-weight: 800;
	font-size: 22px;
	line-height: 1.5;
}

#story strong {
	font-weight: 800;
}

#story .name {
	margin-top: 0.5em;
	text-align: right;
	letter-spacing: 0.1em;
}

#story .name span {
	font-size: 24px;
}

#story figure {
	position: absolute;
	top: 0;
	z-index: -1;
}

#story .container:nth-of-type(odd) figure {
	right: 0;
}

#story .container:nth-of-type(even) figure {
	left: 0;
}

#story figure:before {
	content: '';
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	z-index: 1;
}

#story .container:nth-of-type(odd) figure:before {
	background: linear-gradient(to right, #fff 0%, transparent 50%);
	right: 0;
}

#story .container:nth-of-type(even) figure:before {
	background: linear-gradient(to left, #fff 0%, transparent 50%);
	left: 0;
}

#story figure img {
	height: 770px;
}

/* ---------------------------------------------------------
	CSS Document contact
--------------------------------------------------------- */

#contact {
	margin-bottom: 140px;
	padding-top: 40px;
}

#contact .contact_header {
	width: 720px;
	height: 158px;
	margin: 0 auto 60px;
}

#contact .contact_header h1 {
	margin-bottom: 15px;
	font-weight: 400;
	font-size: 38px;
	line-height: 1;
}

#contact h2 {
	margin-bottom: 1em;
	font-weight: 700;
	font-size: 36px;
	line-height: 1;
	color: #e60012;
}

#contact .em,
#contact em {
	color: #e60012;
}

#contact .notice {
	margin-bottom: 2em;
}

#contact .table {
	display: table;
	width: 100%;
	margin-bottom: 50px;
	text-align: left;
	font-size: 15px;
	position: relative;
}

#contact .table:before {
	content: '';
	width: 100%;
	height: 1px;
	background-image: linear-gradient(90deg, transparent 0%, transparent 80%, #525656 80%, #525656 100%, transparent);
	background-size: 3px 1px;
	position: absolute;
	top: 0;
	left: 0;
}

#contact dl {
	display: table-row;
	position: relative;
}

#contact dl:after {
	content: '';
	width: 100%;
	height: 1px;
	background-image: linear-gradient(90deg, transparent 0%, transparent 80%, #525656 80%, #525656 100%, transparent);
	background-size: 3px 1px;
	position: absolute;
	bottom: 0;
	left: 0;
}

#contact dt {
	display: table-cell;
	vertical-align: middle;
	width: 240px;
	height: 67px;
	padding: 20px 0;
	line-height: 18px;
	position: relative;
}

#contact dt em {
	display: inline-block;
	vertical-align: top;
	width: 2.5em;
	height: 19px;
	margin-left: 1em;
	background: #e60012;
	text-align: center;
	font-size: 13px;
	letter-spacing: 0.05em;
	line-height: 18px;
	color: #fff;
}

#contact dd {
	display: table-cell;
	vertical-align: middle;
	padding: 20px 0;
}

#contact dd p {
	margin-top: 10px;
}

#contact dd label {
	display: inline-block;
	vertical-align: middle;
	line-height: 40px;
}

#contact dd label:not(:last-of-type) {
	margin-right: 2.5em;
}

#contact .note {
	margin-top: 30px;
	font-size: 14px;
}

/* ---------------------------------------------------------
	CSS Document input
--------------------------------------------------------- */

input, textarea, select, button {
	outline: 0;
	margin: 0;
	padding: 0;
	border-radius: 0;
	border: 0;
	box-shadow: none;
	box-sizing: border-box;
	-webkit-box-sizing: border-box;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 15px;
	color: #291c14;
}

::-webkit-input-placeholder {
	color: #c8c8c8;
}

::-moz-placeholder {
	opacity: 1;
	color: #c8c8c8;
}

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

#contact input[type='url'],
#contact input[type='tel'],
#contact input[type='email'],
#contact input[type='text'],
#contact select,
#contact textarea {
	padding: 0 0.8em;
	border-radius: 3px;
	border: solid 1px #d5d5d5;
	background: #fff;
	box-shadow: 1px 1px 3px 0 rgba(0, 0, 0, 0.08) inset;
	letter-spacing: 0.05em;
}

#contact select,
#contact input[type='url'],
#contact input[type='tel'],
#contact input[type='email'],
#contact input[type='text']{
	height: 42px;
}

#contact input[type='radio'] {
	vertical-align: -4px;
	width: 20px;
	height: 20px;
	margin: 0 0.2em 0 0;
	padding: 0;
}

#contact textarea {
	vertical-align: top;
	width: 100%;
	padding: 0.8em;
}

#contact select {
	padding: 0 0 0 0.5em;
}

#contact .err {
	box-shadow: 0 0 3px 0 #f00 !important;
}

#contact .w320 {
	width: 320px;
}

#contact .w620 {
	width: 620px;
}

#contact .submit {
	display: flex;
	justify-content: center;
}

#contact .submit .send {
	margin-left: 50px;
}

#contact .submit button {
	vertical-align: top;
	width: 240px;
	height: 70px;
	background: #e60012;
	text-align: center;
	text-decoration: none;
	font-weight: 500;
	font-size: 20px;
	letter-spacing: 0.05em;
	color: #fff;
	cursor: pointer;
}

#contact .submit .back button {
	background: #bbb;
}

/* ---------------------------------------------------------
	CSS Document footer
--------------------------------------------------------- */

#footer .logo {
	width: 720px;
	margin: 0 auto 30px;
	font-size: 38px;
	line-height: 1;
}

#footer .logo p {
	margin-bottom: 15px;
}

#footer .logo figure {
	background: #ddd;
	transform: scale(0.8, 0.8);
	transition: 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

#footer .logo figure.active {
	transform: scale(1, 1);
}

#footer .company {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 720px;
	margin: 0 auto 30px;
	text-align: right;
	font-size: 16px;
	line-height: 1.5;
}

#footer .company img {
	height: 52px;
}

#footer .copy {
	padding: 80px 0;
	background: #fff100;
	font-size: 0;
}

#footer .copy img {
	height: 81px;
}
