@charset "utf-8";

html, body                 {width:100%;margin:0 auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
body                       {-webkit-text-size-adjust:100%;}
div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
table, caption, tbody, tfoot, thead, tr, th, td, p,
fieldset, form, label, legend, input,
article, aside, canvas, figure, figcaption,
footer, header, nav, section,
b, u, i                    {margin:0;padding:0;list-style:none;font-style:normal;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
main                       {display: block;}
a                          {outline:none;}
img                        {border:0 none;vertical-align:top;max-width:100%;height:auto;}
em                         {font-style:normal;font-weight:bold;}
nav ul, nav li             {list-style:none;}
.h a, .f a,
nav a, nav span            {text-decoration:none;}
table                      {border-collapse:collapse;}
p, li                      {line-height: 1.8;}

/* ----------------------------------------------- font */
html                       {font-size:62.5%;}
body                       {font-size:16px;font-size:1.6rem;font-family: 'Noto Sans JP', "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ ゴシック", sans-serif;}
h1, h2,  h3                {font-weight:normal;}

/* ============================================================== base */
html, body                 {height:100%;}
body                       {-webkit-text-size-adjust:100%;}
.no-br                     {display:none;}
@media (min-width: 751px){
	a[href*="tel:"]            {pointer-events: none;cursor: default;text-decoration: none;}
}
@media screen and (min-width: 1000px){
	.no-br                     {display:inline;}
}
/* ============================================================== common */
.sct {
	position: relative;
	font-size: clamp(12px, 4vw, 15px);
	z-index: 2;
	padding: 3em 0;
}
.sct_inr {
	position: relative;
	z-index: 3;
	margin: 0 auto;
	width: 95%;
	max-width: 1280px;
}
.sct_box {
	position: relative;
	display: block;
}
.sct a > img {
	transition: 0.3s;
}
.sct a:hover > img {
	opacity: 0.7;
}
/* ----------------- title */
.sct_ttl {
	position: relative;
	font-size: 3vw;
	font-weight: bold;
	line-height: 1;
	padding-bottom: 1.6em;
	margin-bottom: 3.4em;
}
.sct_ttl::before,
.sct_ttl::after {
	content: "";
	display: block;
	position: absolute;
	height: 3px;
	bottom: 0;
}
.sct_ttl::before {
	z-index: 3;
	width: 100%;
	left: 0;
	background-color: #eeeeee;
}
.sct_ttl::after {
	z-index: 4;
	width: 33%;
	left: 33%;
	background-color: #e50022;
}
.sct_ttl span {
	display: inline-block;
}
.sct_ttl .ja {
	position: relative;
	z-index: 3;
	letter-spacing: 0.1em;
}
.sct_ttl .en {
	position: absolute;
	bottom: -0.11em;
	line-height: 1;
	display: block;
	font-size: 580%;
	font-family: 'Roboto', sans-serif;
	color: #f4f4f4;
}
@media screen and (min-width: 500px){
	.sct_ttl {
		padding-top: 3.2em;
		font-size: 15px;
	}
	.sct_ttl .en {
		font-size: 733%;
	}
}

/* ----------------------------------------------- button */
.btns {
	padding: 1em 0;
	text-align: center;
}
button::-moz-focus-inner {
	border: 0;
	padding: 0;
	margin-top: -2px;
}
a.btn, a:link.btn, a:visited.btn,
.btn                       {
	padding: 0 1.6em;
	line-height: 2.8em;
	border: 0 none;
	display: inline-block;
	text-align: center;
	text-decoration: none;
	vertical-align: top;
	cursor: pointer;
	transition: all 0.2s;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border-radius: 2em;
}
.nv_btn a.btn {
	background-color: #fff;
	color: #e50022;
	padding: 0.25em 1.3em;
}
.nv_btn .btn span {
	font-weight: 700;
	padding-left: 1.8em;
	letter-spacing: 0.05em;
	background-repeat: no-repeat;
	background-size: 1.2em auto;
	background-position: 0 50%;
	background-image: url("../images/ico_mail.png")
}
@media screen and (min-width: 1000px){
	.nv_btn a.btn {
		transition: 0.3s;
	}
	.nv_btn a.btn:hover {
		background-color: #fff100;
	}
}
/* ----------------- overlay */
.overlay {
	position: fixed;
	z-index: 99999;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(to bottom right, rgba(238,238,238,0.01), rgba(238,238,238,1));
	background-color: #fff;
	background-repeat: no-repeat;
	background-position: 50% 50%;
	background-image: url("../images/loading-05.gif");
	opacity: 1;
	transition: 3s;
	pointer-events: none;
}
.overlay.show {
	opacity: 0;
}
/* ----------------- inview */
.fadein {
	opacity : 0;
	transform : translate(0, 10px);
	transition : all 0.5s;
}
.fadein.is-show{
	opacity : 1;
	transform : translate(0, 0);
}
/* ----------------- video */
.video {
	position: relative;
	width: 100%;
	height: 0;
	padding-top: 56.25%;
}
.video video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0 none;
	vertical-align: top;
}

/* ============================================================== header */
.h_before {
	content: "";
	display: block;
	position: relative;
	width: 100px;
	opacity: 0;
	pointer-events: none;
}
.sct.h {
	font-size: 100%;
	position: fixed;
	z-index: 10000;
	width: 100%;
	top: 0;
	left: 0;
	background: #e50022;
	color: #fff;
	padding: 0;
}
.anchor {
	position: absolute;
	height: 0;
	font-size: 0;
	margin-top: -54px;
}
.h_before,
.sct.h {
	height: 60px;
}
/* ----------------- logo */
.h_logo {
	font-size: 100%;
	display: inline-block;
	padding: 0.9em 0.4em 0 0.4em;
	position: relative;
}
.h_logo a {
	display: block;
	width: 12em;
}
@media screen and (min-width: 1000px){
	.h_before,
	.sct.h {
		height: 100px;
	}
	.anchor {
		margin-top: -100px;
	}
	.h_logo {
		padding: 1.8em 0.4em 0 0.4em;
	}
	.h_logo a {
		width: 229px;
	}
}
/* ============================================================== gn */
.gn_set {
	position: fixed;
	z-index: 9999;
	top: 0;
	right: 0;
	transition: 0.3s;
}
@media screen and (min-width: 1000px){
	.gn_set {
		position: absolute;
		right: 0;
		top: 0;
	}
}
/* ----------------------------------------------- hamburger */
.gn_btn {
	font-size: 14px;
	width: 3em;
	height: 3em;
	aspect-ratio: 1 / 1;
	top: 0.6em;
	right: 0.6em;
	line-height: 1;
	position: absolute;
	text-align: center;
	z-index: 3;
	cursor: pointer;
	background: #fff;
	border-radius: 50%;
}
.gn_btn i {position: absolute;display: block;text-align: center;top: 0;left: 0;width: 100%;height:100%;}
.gn_btn:before,
.gn_btn:after,
.gn_btn i:after {background: #e50022;width: 1.6em;height: 1px;left: calc(50% - 0.8em);position: absolute;content: "";display: block;transition: 0.2s;}
.gn_btn:before  {top:calc(50% - 0.5em - 1px);}
.gn_btn i:nth-of-type(1):after {top:calc(50% - 1px);width: 1.2em;left: calc(50% - 0.6em);}
.gn_btn:after   {top:calc(50% + 0.5em - 1px);}

.gn_show .gn_btn           {border-color:transparent; position: fixed;}
.gn_show .gn_btn:before,
.gn_show .gn_btn:after     {top:1.5em;height:2px;box-shadow: 0 0 0 transparent;}
.gn_show .gn_btn:before    {transform:rotate(45deg);}
.gn_show .gn_btn:after     {transform:rotate(-45deg);}
.gn_show .gn_btn i:after   {display:none;}
@media screen and (min-width: 1000px){
	.gn_btn  {
		display: none;
	}
}
/* ----------------------------------------------- navigation */
.gn {
	background: #fff;
	width: 100%;
	height: auto;
	top: -100vh;
	right: 0;
	position: fixed;
	z-index: 2;
	overflow: scroll;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling:touch;
	transition:0.2s;
	padding: 6.4em 1em 3em;
	box-shadow: 0 0.5em 0.5em rgba(0,0,0,0.2);
	opacity: 0;
}
.gn_show .gn {
	opacity: 1;
	top: 0;
}
.gn::after {
	content: "";
	display: block;
	position: absolute;
	width: 75px;
	height: 30px;
	top: 16px;
	left: 16px;
	background-repeat: no-repeat;
	background-size: 100% auto;
	background-image: url("../images/logo_weibo.png");
}
@media screen and (min-width: 1000px){
	.gn_show .gn,
	.gn {
		opacity: 1;
		position: absolute;
		position: relative;
		display: flex;
		justify-content: flex-end;
		align-items: center;
		background: transparent;
		top: auto;
		right: auto;
		width: 100%;
		max-width: 1400px;
		height: auto;
		margin: 0 auto;
		padding: 1.2em 0 0;
		overflow: visible;
		overflow-x: visible;
		overflow-y: visible;
		box-shadow: 0 0.5em 0.5em rgba(0,0,0,0);
	}
	.gn::after {
		display: none;
	}
}
/* ----------------------------------------------- list */
.gn_lst li  {
	position: relative;
	border-top: 1px solid #ccc;
}
.gn_lst li:last-child  {
	border-bottom: 1px solid #ccc;
}
.gn_lst li a {
	color: #0b0b0b;
	position:relative;
	line-height:1.3em;
	padding: 1.6em 1em;
	white-space:nowrap;
	display: block;
	text-align: center;
}
@media screen and (min-width: 1000px){
	.gn_lst {
		display: flex;
		justify-content: space-between;
		margin: 0;
		width: auto;
		text-align: center;
	}
	.gn_lst li:last-child,
	.gn_lst li {
		border: 0 none;
		margin-left: 0.8em;
	}
	.gn_lst li a {
		transition: 0.3s;
		padding: 1em 0.5em;
		color: #fff;
	}
	.gn_lst li a::before {
		content: "";
		display: block;
		position: absolute;
		left: 50%;
		width: 0;
		bottom: 0.4em;
		height: 1px;
		background-color: #fff;
		transition: 0.2s;
	}
	.gn_lst li a:hover::before {
		left: 1em;
		width: calc(100% - 2em);
	}
	.gn_lst li span {
		display: block;
		position: relative;
		z-index: 3;
	}
	.gn_lst li a i {
		display: block;
	}
}
.h .nv_btn {
	margin-top: 2em;
	text-align: center;	
}
.h .nv_btn a.btn {
	width: 19em;
}
@media screen and (min-width: 1000px){
	.h .nv_btn {
		margin-top: 0;
		margin-left: 1.8em;
	}
	.h .nv_btn a.btn {
		width: auto;
	}
}

/* ============================================================== footer */
.sct.f {
	background: #e50022;
	color: #fff;
	padding: 2em 0 2.5em;
}
.f .sct_inr {
	display: flex;
	justify-content: space-between;
	margin-bottom: 2em;
}
.f_logo a {
	width: 48vw;
	max-width: 229px;
	display: block;
}
.fn {
	text-align: right;
}
.fn ul {
	margin-bottom: 1em;
}
.fn li {
	margin-bottom: 0.5em;
}
.fn a {
	color: #fff;
}
.f_copyright {
	text-align: center;
	font-size: 80%;
}
.f_copyright i {
	display: inline-block;
}
@media screen and (min-width: 1000px){
	.f .sct_inr {
		margin-bottom: 6em;
	}
	.fn {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.fn ul {
		display: flex;
		margin-bottom: 0;
	}
	.fn li {
		margin-right: 2em;
	}
}

.ptop {
	font-size: 4vw;
	box-shadow: 0 0 2px rgba(0,0,0,0.2);
	background: rgba(255,255,255,0.5);
	color: #111;
	width:3em;
	height:3em;
	line-height:3em;
	text-align:center;
	position:fixed;
	z-index:79;
	right:0.5em;
	bottom:1em;
	cursor:pointer;
	border-radius:50%;
	transition:0.2s;
	opacity:0;
	transform: translate(0,30px);
	display:block;
}
.ptop:before {
	color:#c30d23;
	font-size:140%;
	content:"↑";
	display:block;
	transition:0.3s;
}
.ptop:hover {
	box-shadow: 0 0 2px rgba(169,139,84,0.5);
	background:rgba(255,255,255,0.8);
}
.ptop:hover:before {
	color: #e32d43;
}
.ptop i {
	display:none;
}
.scrl_bgn .ptop {
	opacity:1;
	transform: translate(0,0);
}
@media screen and (min-width: 500px){
	.ptop                      {font-size:20px;}
}

/* ============================================================== kv */
.sct_kv {
	padding: 1em 0;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	background-image: url("../images/kv_bg.png");
	background-size: cover;
	border-radius: 4em;
}
.sct_kv .sct_inr {
	max-width: 1180px;
	background-image: url("../images/kv_fig.png");
	background-repeat: no-repeat;
	background-size: 50% auto;
	background-position: calc(100% - 1em) calc(100% + 1em);
}
.kv_lead {
	line-height: 1;
	margin-bottom: 1em;
	max-width: 692px;
}
.kv_ttl {
	max-width: 700px;
	display: flex;
	align-items: center;
	margin-bottom: 0.5em;
}
.kv_logo {
	width: 44%;
	max-width: 326px;
}
.kv_desc {
	font-size: clamp(10px, 3.2vw, 19.58px);
	margin-left: 1em;
	flex: 1;
}
.kv_desc span {
	font-weight: bold;
	display: block;
	color: #e50022;
}
.kv_desc span i {
	color: #1f1f1f;
}
.kv_badge {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	column-gap: 1em;
	margin-bottom: 0;
	max-width: 596px;
}
.kv_chara {
	width: 40%;
	margin: 0 50vw 0 auto;
	max-width: 190px;
}
@media screen and (min-width: 750px){
	.sct_kv .sct_inr {
		background-size: 423px auto;
	}
	.kv_desc {
		letter-spacing: 0.15em;
	}
}
@media screen and (min-width: 1100px){
	.sct_kv .sct_inr {
		padding: 100px 0 110px;
		background-position: 100% calc(100% - 100px);
	}
	.kv_lead {
		margin-bottom: 55px;
	}
	.kv_ttl {
		margin-bottom: 45px;
	}
	.kv_chara {
		position: absolute;
		margin: 0;
		right: 300px;
		bottom: 50px;
	}
}

/* ============================================================== about */
.sct_about .sct_ttl {
	width: 95%;
	margin-left: auto;
	margin-right: auto;
	max-width: 1048px;
}
.sct_about .sct_ttl .ja {
	font-size: 240%;
	color: #e50022;
}
.sct_about .sct_ttl .en {
	right: 0;
}
.sct_about .sct_ttl::after {
	width: 40%;
	left: 0;
}
.sct_about .sct_inr {
	max-width: 1048px;
}
.about_txt p {
	margin-bottom: 1.5em;
}
@media screen and (max-width: 749px) {
	.about_fig {
		width: 80%;
		max-width: 400px;
		margin: 0 auto;
	}
}
@media screen and (min-width: 750px){
	.sct_about .sct_inr {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.about_txt {
		flex: 1;
		font-size: calc((16 / 15) * 100%);
		margin-right: 2em;
	}
	.about_txt p {
		margin-bottom: 2em;
	}
	.about_fig {
		width: 50%;
	}
}
/* ============================================================== feature */
.sct_feat {
	background-color: #e50022;
	padding: clamp(3em, 8vw, 6em) 0;
}
.sct_feat .sct_inr {
	background-color: #fff;
	border-radius: 1em;
	padding: 2em 1em;
	max-width: 1122px;
}
.sct_feat .sct_ttl {
	text-align: center;
}
.sct_feat .sct_ttl .ja {
	font-size: 240%;
	color: #e50022;
}
.sct_feat .sct_ttl .en {
	right: 0;
}
.sct_feat .sct_ttl::after {
	width: 22em;
	left: calc(50% - 11em);
}
.feat_sct {
	position: relative;
}
.feat_sct:not(:last-child) {
	margin-bottom: 3em;
}
.feat_ttl {
	font-size: 160%;
	margin: 0 0 1em;
}
.feat_ttl span {
	display: inline-block;
	position: relative;
	color: #fff;
	background-color: #e50022;
	padding: 1em;
	font-weight: bold;
	border-radius: 0.7em;
}
.feat_ttl span::after {
	content: "";
	display: block;
	position: absolute;
	left: 2em;
	bottom: -0.7em;
	width: 2em;
	height: 2em;
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: 100% 100%;
	background-image: url("../images/feat_ttl_deco.png");
}
.feat_ttl span em {
	display: flex;
	align-items: center;
}
.feat_ttl span i {
	display: block;
}
.feat_ttl span i:nth-of-type(1) {
	width: 1.6em;
	height: 1.6em;
	line-height: 1.3;
	text-align: center;
	border-radius: 50%;
	border: 3px solid #fff;
	margin-right: 0.5em;
}
.feat_ttl span i:nth-of-type(2) {
	flex: 1;
}
.sct_feat .sct_txt p {
	margin-bottom: 2em;
}
@media screen and (min-width: 1000px){
	.sct_feat .sct_inr {
		border-radius: 1.5em;
		padding: 4em;
	}
	.feat_sct:not(:last-child) {
		margin-bottom: 6em;
	}
	.sct_feat .sct_txt p {
		font-size: calc((16 / 15) * 100%);
	}
}

/* --------------------------------- 01 */
.feat_01 ul {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	column-gap: 1.5em;
	counter-reset: featnum 0;
}
.feat_01 li {
	position: relative;
	border-radius: 1em;
	border: 3px solid #e50022;
	box-shadow: 0 0.25em 0 #e50022;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1em 0;
}
.feat_01 li::before {
	position: absolute;
	top: 0.5em;
	left: 0.5em;
	counter-increment: featnum 1;
	content: counter(featnum) " ";
	width: 1.4em;
	height: 1.4em;
	line-height: 1.3;
	text-align: center;
	border-radius: 50%;
	color: #fff;
	background-color: #e50022;
	font-weight: bold;
}
.feat_01 li:not(:last-child)::after {
	position: absolute;
	content: "";
	display: block;
	width: 1em;
	height: 2em;
	top: calc(50% - 1em);
	right: -1em;
	background-repeat: no-repeat;
	background-size: 100% auto;
	background-position: 0 50%;
	background-image: url("../images/feat_arrow.png");
}
.feat_01 li span {
	display: block;
	width: 45%;
}
.feat_01 li:nth-of-type(3) span {
	width: 60%;
}
@media screen and (min-width: 1000px){
	.feat_01 {
		display: grid;
		grid-template-columns: 240px 1fr;
	}
	.feat_01 .feat_ttl {
		grid-column: 1 / 2;
		grid-row: 1 / 2;
	}
	.feat_01 .sct_txt {
		grid-column: 2 / 3;
		grid-row: 1 / 2;
	}
	.feat_01 ul {
		grid-column: 1 / 3;
		grid-row: 2 / 3;
		column-gap: 2.5em;
	}
	.feat_01 li {
		padding: 1.5em 0;
	}
	.feat_01 li::before {
		top: 0.5em;
		left: 0.5em;
		width: 1.8em;
		height: 1.8em;
		line-height: 1.6;
		font-size: 110%;
	}
	.feat_01 li:not(:last-child)::after {
		width: 1.8em;
		height: 3.6em;
		top: calc(50% - 1.8em);
		right: -1.8em;
	}
}
/* --------------------------------- 02 */
@media screen and (max-width: 749px) {
	.feat_02 .feat_fig {
		width: 80%;
		max-width: 360px;
		margin: 0 auto;
	}
}
@media screen and (min-width: 750px){
	.feat_02 {
		display: grid;
		grid-template-columns: 50% 50%;
	}
	.feat_02 .feat_ttl {
		grid-column: 1 / 3;
		grid-row: 1 / 2;
		margin-bottom: 3em;
	}
	.feat_02 .sct_txt {
		grid-column: 2 / 3;
		grid-row: 2 / 3;
	}
	.feat_02 .feat_fig {
		grid-column: 1 / 2;
		grid-row: 2 / 3;
	}
}
/* --------------------------------- 03 */
.feat_03::before {
	pointer-events: none;
	content: "";
	display: block;
	position: absolute;
	z-index: 3;
	width: 20vw;
	max-width: 120px;
	aspect-ratio: 1 / 2;
	bottom: clamp(20px, 25vw, 100px);
	right: calc(50% - 36vw);
	background-repeat: no-repeat;
	background-size: 100% auto;
	background-position: 0 0;
	background-image: url("../images/chara_01.png");
}
@media screen and (max-width: 749px) {
	.feat_03 .feat_fig {
		width: 80%;
		max-width: 360px;
		margin: 0 auto;
	}
}
@media screen and (min-width: 750px){
	.feat_03 {
		display: grid;
		grid-template-columns: 60% 40%;
	}
	.feat_03::before {
		max-width: 180px;
		bottom: auto;
		top: -70px;
		right: 0;
		width: 18vw;
	}
	.feat_03 .feat_ttl {
		grid-column: 1 / 3;
		grid-row: 1 / 2;
		margin-bottom: 3em;
	}
	.feat_03 .sct_txt {
		grid-column: 1 / 2;
		grid-row: 2 / 3;
		padding-right: 3em;
	}
	.feat_03 .feat_fig {
		margin-top: -3em;
		grid-column: 2 / 3;
		grid-row: 2 / 3;
	}
}
.feat_tbl table {
	width: 100%;
	font-size: 75%;
}
.feat_tbl table i {
	display: inline-block;
}
.feat_tbl th,
.feat_tbl td {
	padding: 1em 0;
	border: 1px solid #d1d1d1;
	text-align: center;
	font-weight: bold;
	position: relative;
}
.feat_tbl td em {
	display: block;
	width: 2em;
	margin: 0 auto 0.4em;
}
.feat_tbl thead,
.feat_tbl tbody tr:nth-of-type(2n) {
	background-color: #f9f9f9;
}
.feat_tbl tbody th {
	color: #e50022;
}
.feat_tbl thead th:nth-of-type(3),
.feat_tbl td:nth-of-type(2) {
	background-color: #e50022;
	color: #fff;
	border-top: 1px solid #e50022;
	border-bottom: 1px solid #e50022;
}
.feat_tbl thead th:nth-of-type(3)::after,
.feat_tbl tbody tr:last-child td:nth-of-type(2)::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 1em;
	left: 0;
	background-color: #e50022;
}
.feat_tbl thead th:nth-of-type(3)::after {
	top: -1em;
}
.feat_tbl tbody tr:last-child td:nth-of-type(2)::after {
	bottom: -1em;
}
@media screen and (min-width: 750px){
	.feat_tbl table {
		font-size: 100%;
	}
	.feat_tbl td em {
		width: 3em;
	}
	.feat_tbl thead th,
	.feat_tbl tbody td:nth-of-type(2) {
		font-size: calc((18 / 15) * 100%);
	}
	.feat_tbl thead th:nth-of-type(3) {
		font-size: calc((22 / 15) * 100%);
	}
	.feat_tbl tbody th {
		font-size: calc((16 / 15) * 100%);
	}
	.feat_tbl tbody td i {
		display: block;
	}
	.feat_tbl tbody tr:nth-of-type(1) td:nth-of-type(1) i,
	.feat_tbl tbody tr:nth-of-type(1) td:nth-of-type(3) i,
	.feat_tbl tbody tr:nth-of-type(1) td:nth-of-type(2) i,
	.feat_tbl tbody tr:nth-of-type(2) td:nth-of-type(3) i {
		display: inline-block;
	}
}

/* ============================================================== strength */
.sct_strng {
	padding: 3em 0 clamp(3em, 8vw, 6em);
}
.sct_strng .sct_ttl {
	margin: 0 0 clamp(3.4em, 8vw, 6em);
}
.sct_strng .sct_ttl .ja {
	font-size: 240%;
	color: #e50022;
}
.sct_strng .sct_ttl .en {
	right: 0;
}
.sct_strng .sct_ttl::after {
	width: 20em;
	left: 0;
}
.strng_h {
	max-width: 1004px;
}
.strng_h_lst .sct_box {
	margin: 0 auto 2em;
	max-width: 287px;
}
.strng_h_lst h3 {
	font-size: calc((24 / 15) * 100%);
	font-weight: bold;
	text-align: center;
	color: #e50022;
	width: 10em;
	margin: 0 auto 0.7em;
	position: relative;
}
.strng_h_lst h3::before,
.strng_h_lst h3::after {
	content: "";
	display: block;
	position: absolute;
	height: 1.8em;
	width: 2px;
	background-color: #e50022;
	bottom: -0.3em;
}
.strng_h_lst h3::before {
	left: 0;
	transform: rotate(-25deg);
}
.strng_h_lst h3::after {
	right: 0;
	transform: rotate(25deg);
}
.strng_h_lst figure {
	margin: 0 auto 1em;
	width: 100%;
}
.strng_h_lst p {
	margin: 0 1em;
}
@media screen and (min-width: 560px){
	.strng_h_lst {
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 2em;
	}
}
@media screen and (min-width: 1000px){
	.strng_h_lst {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		column-gap: 2em;
	}
}
.strng_ttl {
	font-size: 160%;
	margin: 0 0 1.8em;
}
.strng_ttl span {
	display: inline-block;
	position: relative;
	color: #fff;
	background-color: #ac001a;
	padding: 0.8em 2em;
	font-weight: bold;
	border-radius: 0.7em;
}
.strng_ttl span::after {
	content: "";
	display: block;
	position: absolute;
	left: 2em;
	bottom: -0.7em;
	width: 2em;
	height: 2em;
	background-size: 100% auto;
	background-repeat: no-repeat;
	background-position: 100% 100%;
	background-image: url("../images/strng_ttl_deco.png");
}
.strng_sct .sct_inr {
	z-index: 2;
	max-width: 1004px;
}
/* --------------------------------- 01 */
.strng_sct_01 {
	position: relative;
	padding: clamp(2em, 4vw, 6em) 0 clamp(140px, 31vw, 280px);
	margin-bottom: 4em;
	background: linear-gradient(to bottom, #f9f5f2 0, #f9f5f2 70%, transparent 70%, transparent 100%);
}
.strng_sct_01::before,
.strng_sct_01::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	background-repeat: no-repeat;
}
.strng_sct_01::before {
	height: 100%;
	bottom: 0;
	left: 0;
	background-size: 100% auto;
	background-position: 0 100%;
	background-image: url("../images/strng_01_bg.png");
}
.strng_sct_01::after {
	bottom: clamp(5px, 8vw, 80px);
	height: clamp(20px, 20vw, 132px);
	background-size: auto 100%;
	background-position: 50% 50%;
	background-image: url("../images/strng_kira.png");
}
.strng_lst {
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 1.2em;
	row-gap: 1.2em;
}
.strng_lst .sct_box {
	background-color: #e50022;
	border: 3px solid #e50022;
	box-shadow: 0 0.25em 0 #e50022;
	border-radius: 0.8em;
	max-width: 560px;
	margin: 0 auto;
}
@media screen and (min-width: 750px){
	.strng_sct_01 {
		margin-bottom: 0;
	}
	.strng_lst {
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 1.2em;
	}
	.strng_lst .sct_box {
		margin: 0;
	}
}
.strng_lst .sct_box dt {
	font-size: calc((26 / 15) * 100%);
	text-align: center;
	font-weight: bold;
	color: #fff;
	padding: 0.9em 0 1em;
}
.strng_lst .sct_box dd {
	background-color: #fff;
	padding: 1em;
}
.strng_lst .sct_box dd li {
	background: #ffebee;
	margin-bottom: 0.3em;
	font-weight: 500;
	display: flex;
	align-items: center;
	padding: 0.4em 0.8em;
	border-radius: 0.8em;
}
.strng_lst .sct_box dd li span {
	font-size: calc((16 / 15) * 100%);
	display: block;
	width: 7em;
	margin-right: 1em;
	text-align: center;
	background-color: #e50022;
	color: #fff;
	font-weight: 700;
	border-radius: 0.3em;
	padding: 0.2em 0 0.3em;
}
.strng_lst .sct_box dd li em {
	font-size: calc((16 / 15) * 100%);
	display: block;
	width: 4em;
	color: #e50022;
	font-weight: 700;
}
.strng_lst .sct_box dd li i {
	display: block;
	flex: 1;
}
.strng_lst .sct_box figure {
	margin-top: 0.8em;
	border-radius: 0.8em;
	overflow: hidden;
}
.strng_01_chara {
	position: absolute;
	width: 100%;
	text-align: center;
	left: 0;
	bottom: clamp(-20px, -14vw, -150px);
}
.strng_01_chara span {
	display: inline-block;
	width: 24vw;
	max-width: 200px;
}
.strng_tbl table {
	width: 100%;
	font-size: 75%;
}
.strng_tbl table i {
	display: inline-block;
}
.strng_tbl th,
.strng_tbl td {
	padding: 1em 0;
	border: 1px solid #d1d1d1;
	text-align: center;
	font-weight: bold;
	position: relative;
}
.strng_tbl thead,
.strng_tbl tbody tr:nth-of-type(2n) {
	background-color: #f9f9f9;
}
.strng_tbl thead {
	font-size: calc((16 / 15) * 100%);
}
.strng_tbl tbody th {
	color: #e50022;
	font-size: calc((16 / 15) * 100%);
}
.strng_tbl tbody tr:nth-of-type(2) th,
.strng_tbl tbody tr:nth-of-type(2) td {
	background-color: #e50022;
	border-left: 1px solid #e50022;
	border-right: 1px solid #e50022;
}
.strng_tbl tbody tr:nth-of-type(2) th {
	color: #fff;
	font-size: calc((18 / 15) * 100%);
}
.strng_tbl tbody tr:nth-of-type(2) td {
	color: #fff100;
	font-size: calc((22 / 15) * 100%);
}
.strng_tbl tbody tr:nth-of-type(2) th::after,
.strng_tbl tbody tr:nth-of-type(2) td:last-child::after {
	content: "";
	display: block;
	position: absolute;
	height: 100%;
	width: 0.6em;
	top: 0;
	background-color: #e50022;
}
.strng_tbl tbody tr:nth-of-type(2) th::after {
	left: -0.5em;
}
.strng_tbl tbody tr:nth-of-type(2) td:last-child::after {
	right: -0.5em;
}
@media screen and (min-width: 1000px){
	.strng_tbl table {
		font-size: 100%;
	}
	.strng_tbl th {
		width: 20%;
	}
	.strng_tbl tbody tr:nth-of-type(2) th::after,
	.strng_tbl tbody tr:nth-of-type(2) td:last-child::after {
		width: 1.6em;
	}
	.strng_tbl tbody tr:nth-of-type(2) th::after {
		left: -1.5em;
	}
	.strng_tbl tbody tr:nth-of-type(2) td:last-child::after {
		right: -1.5em;
	}
}
/* ============================================================== service */
.sct_service {
	background-color: #e50022;
	color: #fff;
	padding: 3em 0 clamp(3em, 8vw, 6em);
}
.sct_service .sct_inr {
	max-width: 1000px;
}
.sct_service .sct_ttl {
	text-align: center;
}
.sct_service .sct_ttl::before {
	background-color: #ac001a;
}
.sct_service .sct_ttl .ja {
	font-size: 186%;
	color: #fff;
}
.sct_service .sct_ttl .en {
	right: 0;
	color: #ac001a;
}
.sct_service .sct_ttl::after {
	display: none;
}
.sct_service .sct_lead {
	margin: 0 auto 2em;
	font-size: calc((16 / 15) * 100%);
	text-align: center;
}
.service_lst {
	display: grid;
	gap: 1em;
}
.service_lst a {
	height: 5em;
	background-color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 0.5em;
	font-weight: bold;
	color: #e50022;
	border: 3px solid #ac001a;
	box-shadow: 0 0.25em 0 #ac001a;
	border-radius: 1em;
	pointer-events: none;
}
.service_lst a span {
	display: block;
	line-height: 1.2;
	text-align: center;
	font-size: calc((16 / 15) * 100%);
}
.service_lst a span i {
	display: inline-block;
}
@media screen and (min-width: 750px){
	.service_lst {
		grid-template-columns: repeat(2, 1fr);
	}
	.service_lst a {
		transition: 0.3s;
	}
	.service_lst a:hover {
		background-color: #fff100;
	}
}

/* ============================================================== price */
.sct_price {
	background-repeat: no-repeat;
	background-size: cover;
	background-image: url("../images/price_bg.jpg");
	background-position: 0 50%;
	padding: clamp(3em, 8vw, 7em) 0 clamp(5em, 10vw, 9em);
}
.sct_price .sct_inr {
	max-width: 990px;
	border-radius: 0.8em;
	background-color: #fff;
	border: 3px solid #e50022;
	box-shadow: 0 0.25em 0 #e50022;
	padding-bottom: 8em;
}
@media screen and (min-width: 1000px){
	.sct_price .sct_inr {
		padding-bottom: 2em;
	}
}
.sct_price .sct_ttl {
	text-align: left;
	background-color: #e50022;
	margin-bottom: 1em;
	padding: 1.5em 2em;
	overflow: hidden;
}
.sct_price .sct_ttl .ja {
	font-size: 213%;
	color: #fff;
}
.sct_price .sct_ttl .en {
	left: 0.6em;
	bottom: -0.14em;
	color: #ac001a;
}
.sct_price .sct_ttl::before,
.sct_price .sct_ttl::after {
	display: none;
}
@media screen and (min-width: 500px){
	.sct_price .sct_ttl {
		padding: 2.4em 3em 2em;
	}
	.sct_price .sct_ttl .en {
		bottom: -0.16em;
	}
}
@media screen and (min-width: 1000px){
	.sct_price .sct_ttl {
		margin-bottom: 2.5em;
	}
}
.sct_price ul {
	margin: 1em 1em 0.5em;
	max-width: 607px;
}
.sct_price li {
	background: #ffebee;
	margin-bottom: 0.5em;
	font-weight: 500;
	display: flex;
	align-items: center;
	padding: 0.4em 0.8em;
	border-radius: 0.8em;
}
.sct_price li span {
	display: block;
	width: 7em;
	margin-right: 1em;
	text-align: center;
	background-color: #e50022;
	color: #fff;
	font-weight: 700;
	border-radius: 0.3em;
	padding: 0.2em 0 0.3em;
}
.sct_price li em {
	display: block;
	color: #e50022;
	flex: 1;
	line-height: 1.2;
}
.sct_price .sct_desc {
	font-size: calc((18 / 15) * 100%);
	font-weight: bold;
	margin: 0 1em;
	color: #e50022;
}
@media screen and (min-width: 750px){
	.sct_price li span {
		font-size: calc((16 / 15) * 100%);
	}
	.sct_price li em {
		font-size: calc((18 / 15) * 100%);
	}
	.sct_price li em i {
		font-size: 167%;	
	}
}
@media screen and (min-width: 1000px){
	.sct_price ul {
		margin: 1em 3em 0.5em;
	}
	.sct_price li {
		letter-spacing: 0.1em;
	}
	.sct_price .sct_desc {
		margin: 0 3em;
	}
}
.price_fig {
	position: absolute;
	width: 26%;
	max-width: 219px;
	right: 1em;
	bottom: -4em;
}
.price_chara {
	position: absolute;
	z-index: 2;
	width: 20%;
	max-width: 176px;
	bottom: -4.5em;
	right: 6em;
}
@media screen and (min-width: 1000px){
	.price_fig {
		right: 3em;
	}
	.price_chara {
		right: 14em;
	}
}

/* ============================================================== flow */
.sct_flow {
	padding: 3em 0 0;
	background-color: #f7f7f7;
	overflow: hidden;
}
.sct_flow .sct_ttl {
	text-align: center;
}
.sct_flow .sct_ttl .ja {
	font-size: 187%;
}
.sct_flow .sct_ttl::after {
	width: 20em;
	left: calc(50% - 10em);
}
.sct_flow .sct_inr {
	max-width: 1000px;
	padding: 0 0 clamp(5em, 10vw, 8em);
}
.sct_flow .sct_inr::before {
	content: "FLOW";
	display: block;
	position: absolute;
	font-family: 'Roboto', sans-serif;
	font-weight: 700;
	bottom: -0.12em;
	right: 0;
	color: #fff;
	line-height: 1;
	font-size: 580%;
}
@media screen and (min-width: 500px){
	.sct_flow .sct_inr::before {
		bottom: -0.15em;
		font-size: 733%;
	}
}
.flow_lst {
	display: grid;
	gap: 1.2em;
}
.flow_lst .sct_box {
	position: relative;
	background-color: #fff;
	border: 3px solid #e50022;
	box-shadow: 0 0.25em 0 #e50022;
	padding: 1em;
	border-radius: 0.8em;
}
.flow_lst .sct_box:not(:last-child)::before {
	content: "";
	display: block;
	position: absolute;
	width: 1em;
	height: 1em;
	background-color: #fff;
	border-right: 3px solid #e50022;
	border-bottom: 3px solid #e50022;
	right: calc(50% - 0.5em);
	bottom: -0.75em;
	transform: rotate(45deg);
	border-radius: 0.2em;
}
.flow_lst .sct_box h3 {
	text-align: center;
	margin: 0 0 1em;
	font-weight: bold;
	font-size: calc((18 / 15) * 100%);
}
.flow_lst .sct_box h3 > i {
	display: block;
	color: #e50022;
	border: 2px solid #000000;
	width: 1.8em;
	height: 1.8em;
	text-align: center;
	line-height: 1.5;
	border-radius: 50%;
	margin: 0 auto 0.8em;
}
.flow_lst .sct_box h3 span {
	color: #e50022;
}
.flow_lst .sct_box:last-child {
	background: #e50022;
	color: #fff;
}
.flow_lst .sct_box:last-child h3 > i {
	color: #fff;
	border-color: #fff;
}
.flow_lst .sct_box:last-child h3 span {
	color: #fff;
}

@media screen and (min-width: 1000px){
	.flow_lst {
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}		
	.flow_lst .sct_box {
		padding: 2em 1em;
	}
	.flow_lst .sct_box:not(:last-child)::before {
		bottom: calc(50% - 0.5em);
		right: -0.7em;
		transform: rotate(-45deg);
	}
	.flow_lst .sct_box p {
		margin: 0 1em;
	}
	.flow_lst .sct_box:nth-of-type(1)::after {
		content: "";
		display: block;
		position: absolute;
		width: 168px;
		height: 400px;
		bottom: -250px;
		left: 20px;
		background-repeat: no-repeat;
		background-size: 100% auto;
		background-position: 0 0;
		background-image: url("../images/chara_04.png");
	}
}

/* ============================================================== contact */
.sct_contact .sct_inr {
	max-width: 985px;
}
.sct_contact .sct_ttl {
	text-align: center;
}
.sct_contact .sct_ttl .ja {
	font-size: 187%;
}
.sct_contact .sct_ttl .en {
	left: 0;
}
.sct_contact .sct_ttl::after {
	width: 40%;
	left: 30%;
}
.sct_contact .frm {
	background-color: #e50022;
	color: #fff;
	padding: 2em;
	border-radius: 1em;
}
.sct_contact .ErrorMessage {
	font-size: 100%;
	background: transparent;
}
.sct_contact dl {
	margin-bottom: 1em;
}
.sct_contact dt {
	font-weight: bold;
	font-size: calc((16 / 15) * 100%);
}
.sct_contact .error {
	color: #fff;
}
.sct_contact .frm input[type=text],
.sct_contact .frm input[type=password],
.sct_contact .frm input[type=date],
.sct_contact .frm input[type=time],
.sct_contact .frm input[type=email],
.sct_contact .frm select,
.sct_contact .frm textarea {
	border-radius: 0.3em;
	border-color: #e50022;
}
.sct_contact .btns {
	margin: 2em 0 0;
	padding: 0;
}
.sct_contact .btn {
	font-size: 100%;
	background-color: #fff;
	color: #e50022;
	font-weight: bold;
	padding: 0.5em;
	padding: 0;
	width: 50%;
	max-width: 305px;
}
.sct_contact .btn:hover {
    transition: 0.3s;
    background-color: #fff100;
}
.sct_contact .btn input {
	font-size: 100%;
	color: #e50022;
	background-color: #fff;
	font-weight: bold;
	border: none;
	padding: 0.5em;
    line-height: 2.8em;
	width: 100%;
    border-radius: 2em;
}
.sct_contact .btn input:hover {
    transition: 0.3s;
    background-color: #fff100;
}
.mw_wp_form .error {
    color: #fff!important;
	}
@media screen and (min-width: 750px){
	.sct_contact .frm {
		padding: 4em 4em 2.5em;
	}	
	.sct_contact dl {
		display: flex;
		margin-bottom: 1.5em;
	}
	.sct_contact dt {
		width: 9em;
		padding-top: 1em;
	}
	.sct_contact dd {
		flex: 1;
	}
	.sct_contact .frm input[type=text],
	.sct_contact .frm input[type=password],
	.sct_contact .frm input[type=date],
	.sct_contact .frm input[type=time],
	.sct_contact .frm input[type=email],
	.sct_contact .frm select,
	.sct_contact .frm textarea {
		padding: 1em;
	}
	.sct_contact .btns {
		margin: 2.5em 0 0;
	}
}
