@charset "UTF-8";

/*!
Theme Name: seisakusyo-mokomoko_child
Description: これは seisakusyo-mokomoko の子テーマです。
Theme URI: https://mokomoko.ajax.jp/
Author: 制作所もこもこ
Author URI: https://mokomoko.ajax.jp/
Template:   seisakusyo-mokomoko
Version:    1.1.3
*/

/* ===================
Foundation
====================== */
h1,h2,h3,h4,h5,h6 {
	font-size: 100%;
}
html{
	scroll-behavior: smooth;
	font-size: 62.5%;
}
p,div,ul,li,dd,dt,td,th,a,span {
	font-family: 'Roboto', 'Noto Sans JP', sans-serif;
}
html {
	height: 100%;
}
body {
	position: relative;
	padding-top: 100px;
	height: 100%;
	font-size: 1.6rem;
	background: #fff;
}
@media screen and (max-width: 768px) {
	body {
		padding-top: 64px;
	}
}

/* 共通
---------------------------------- */
:root {
	--con-width: 1280px;
	--area-width: 1180px;
	--mokomoko-gray: #f8f8f8;
}

/* ===================
Layout
====================== */
main {
	position: relative;
	width: 100%;
	height: auto;
	overflow: hidden;
}
footer {
	position: relative;
	width: 100%;
}

/* 文字・改行
---------------------------------- */
h4 {
	font-weight: 500;
	margin-bottom: 10px;
}
/* スマホの時の改行 */
.br_sp {
	display: none;
}
@media screen and (max-width: 500px) {
	.br_sp {
		display: block;
	}
}
/* PCの時の改行 */
.br_pc {
	display: block;
}
@media screen and (max-width: 500px) {
	.br_pc {
		display: none;
	}
}
/* センターを解除 */
.center_lift {
	display: inline-block;
	text-align: initial;
	margin: 0 auto;
}
/* 余白など */
p,
dd {
	line-height: 3.2rem;
}
dd {
	margin-bottom: 50px;
}
dt {
	font-size: 1.8rem;
	font-weight: 500;
	margin-bottom: 25px;
}
.lh5 {
	line-height: 5.0rem;
}
.mg25 {
	margin: 25px 0;
}
.mg5 {
	margin: 0 5px;
}
/* 写真拡大 */
.imgzoom {
	overflow: hidden;
	width: 100%;
}
.imgzoom img {
	display: block;
	width: 100%;
	filter: grayscale(100%);
	transition-duration: 0.5s;
}
.imgzoom img:hover {
	transform: scale(1.1);
	filter: grayscale(0);
	transition-duration: 0.5s;
}

/* header
---------------------------------- */
header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100px;
	padding: 0 4vw;
	z-index: 10;
}
h1 .solo-pro {
	margin-left: 1.8vw;
}
header h1 a:hover {
	opacity: 0.5;
}
#nav_content ul {
	display:flex;
	line-height: 100px;
}
#nav_content ul li{
	margin-left: 4vw;
}
#nav_content ul .ov_line a {
	position: relative;
	display: inline-block;
}
#nav_content ul .ov_line a::after {
	position: absolute;
	bottom: 30px;
	left: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: #000;
	transform: scale(0, 1);
	transform-origin: right top;
	transition: transform .3s;
}
#nav_content ul .ov_line a:hover::after {
	transform-origin: left top;
	transform: scale(1, 1);
}
#nav_content ul .fa-instagram:hover {
	color: #c6529a;
}
#nav_content ul .fa-instagram {
	font-size: 20px;
}
/* ハンバーガーメニュー */
@media screen and (max-width: 1023px) {
	header {
		height: 64px;
	}
	h1 img {
		width: 75px;
		height: auto;
	}
	#nav_content {
		position: fixed;
		top: 0;
		right: -230px;
		width: 230px;
		height: 100%;
		padding-top: 50px;
		background: rgba(0,0,0,0.8);
		box-sizing: border-box;
	}
	#nav_content ul{
		display: block;
	}
	#nav_content ul li{
		margin-left: 50px;
	}
	#nav_content ul li a {
		color: #fff;
	}
	#nav_content ul .ov_line a::after {
		background: #fff;
	}
	.btn_gnavi {
		position: fixed;
		top: 20px;
		right: 4vw;
		width: 30px;
		height: 24px;
		box-sizing: border-box;
		cursor: pointer;
		transition: all 400ms;
		z-index: 2;
	}
	.btn_gnavi span {
		position: absolute;
		width: 30px;
		height: 2px;
		background: #000;
		border-radius: 10px;
		-webkit-transition: all 400ms;
		transition: all 400ms;
	}
	.btn_gnavi span:nth-child(1) {
		top: 0;
	}
	.btn_gnavi span:nth-child(2) {
		top: 10px;
	}
	.btn_gnavi span:nth-child(3) {
		top: 20px;
	}
	.btn_gnavi.open {
		transform: rotate(180deg);
	}
	.btn_gnavi.open span {
		background: #fff;
	}
	.btn_gnavi.open span {
		width: 24px;
	}
}

/* トップに戻るボタン
---------------------------------- */
#page-top {
	right: 10px;
	z-index: 1;
}
#page-top img {
	right: 10px;
	width: 148px;
}
.neko-text {
	position: absolute;
	top: 10px;
	left: 10px;
	font-size: 0.75em;
}
@media screen and (max-width: 500px) {
	#page-top {
		right: 0;
	}
	#page-top img,
	#page-top a
	#page-top a::before {
		width: 103px;
		height: 87px;
	}
	.neko-text {
		top: 0;
		left: -8px;
	}
}
.mokoneko:hover {
	animation: fuwafuwa 2s infinite;
}
@keyframes fuwafuwa {
	0% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-30px);
	}
	100% {
		transform: translateY(0);
	}
}

/* フッター
---------------------------------- */
footer {
	padding: 10vh 5vw 5vh;
	background: #1c1f22;
	text-align: center;
	margin-top: 100px;
}
#footer_contents,
.contact_tit {
	position: relative;
	color: #fff;
}
#footer_contents .tit_en {
	font-size: 20rem;
	font-family: 'Roboto thin';
	color: rgba(255,255,255,0.2);
}
#footer_contents .contact_tit h2 {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	transform: translateY(-50%);
	font-size: 4.8rem;
	font-weight: 500;
}
.footer-logo {
	width: 160px;
	height: auto;
	margin: 0 auto;
}
.footer-logo a:hover {
	opacity: 0.5;
}
@media screen and (max-width: 1023px) {
	#footer_contents .tit_en {
			font-size: 16rem;
	}
}
@media screen and (max-width: 767px) {
	#footer_contents .tit_en {
		font-size: 7.2rem;
	}
}
@media screen and (max-width: 500px) {
	#footer_contents .contact_tit h2 {
		font-size: 3.5rem;
	}
}
@media screen and (max-width: 320px) {
	#footer_contents .tit_en {
		font-size: 6.5rem;
	}
}
/* フッターボタン */
#footer_contents .button {
	margin-top: 50px;
}
#footer_contents .button a {
	background: #f39800;
}
#footer_contents .button a:hover {
	background: #c30d23;
}
#footer_contents .button a:hover::before {
	content: '';
	width: 2rem;
	border: 2rem solid transparent;
	border-top-color: #c30d23;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 132px;
	margin: auto;
}
/* フッターキャラオレンジ */
#footer_chara {
	position: relative;
	width: 160px;
	height: 120px;
	margin: 23px auto 10px;
}
#footer_chara .fot-chara_or {
	position: absolute;
	top: 15%;
	left: 0;
	width: 50px;
	height: 50px;
	background: #f39800;
	border-radius: 50%;
}
#footer_chara .fot-chara_or_eyes {
	position: absolute;
	top: 10%;
	left: 6%;
	width: 44px;
	height: 26px;
	transform: translate(0, 0);
}
#footer_chara .fot-chara_or_eyesonew {
	position: absolute;
	top: 2%;
	right: 12%;
	width: 15px;
	height: 15px;
	border-radius: 100%;
	background: #fff;
	transform: translate(0, 0);
}
#footer_chara .fot-chara_or_eyestwow {
	position: absolute;
	top: 31%;
	left: 26%;
	width: 15px;
	height: 15px;
	border-radius: 100%;
	background: #fff;
	transform: translate(-30%, 0);
}
#footer_chara .fot-chara_or_eyesoneb {
	position: absolute;
	top: 14%;
	right: 12%;
	width: 6px;
	height: 6px;
	border-radius: 100%;
	background: #673C63;
	transform: translate(-50%, 0);
	animation: fot-chara_eyes 3s infinite linear;
}
#footer_chara .fot-chara_or_eyestwob {
	position: absolute;
	top: 41%;
	right: 52%;
	width: 6px;
	height: 6px;
	border-radius: 100%;
	background: #673C63;
	transform: translate(-50%, 0);
	animation: fot-chara_eyes 3s infinite linear;
}
/* フッターキャラ赤 */
#footer_chara .fot-chara_red {
	position: absolute;
	top: 0;
	right: 0;
	width: 120px;
	height: 120px;
	background: #c30d23;
	border-radius: 50%;
	transform-origin: center bottom;
	z-index: 0;
}
#footer_chara .fot-chara_red_eyes {
	position: absolute;
	top: 0%;
	left: 7%;
	width: 72px;
	height: 46px;
	transform: translate(0, 0);
}
#footer_chara .fot-chara_red_glassone {
	position: absolute;
	top: 0;
	left: 0;
	width: 35px;
	height: 35px;
	border-radius: 100%;
	border: solid 2px #f39800;
	transform: translate(0, 0);
}
#footer_chara .fot-chara_red_glasstwo {
	position: absolute;
	top: 27%;
	left: 61%;
	width: 35px;
	height: 35px;
	border-radius: 100%;
	border: solid 2px #f39800;
	transform: translate(-30%, 0);
}
#footer_chara .fot-chara_red_eyesone {
	position: absolute;
	top: 35%;
	left: 36%;
	width: 7px;
	height: 7px;
	border-radius: 100%;
	background: #000;
	transform: translate(-50%, 0);
	animation: fot-chara_eyes 3s infinite linear;
}
#footer_chara .fot-chara_red_eyestwo {
	position: absolute;
	top: 58%;
	left: 76%;
	width: 7px;
	height: 7px;
	border-radius: 100%;
	background: #000;
	transform: translate(-50%, 0);
	animation: fot-chara_eyes 3s infinite linear;
}
@keyframes fot-chara_eyes {
	0%, 35% {
		opacity: 1;
		transform: translate(-50%, 0%);
	}
	36%, 39% {
		opacity: 0;
		transform: translate(-50%, 0%);
	}
	40% {
		opacity: 1;
		transform: translate(-50%, 0%);
	}
	50%, 65% {
		transform: translate(-100%, 0%);
	}
	66% {
		transform: translate(-50%, 0%);
	}
}
@media screen and (max-width: 768px) {
	.moko-chara_red {
		top: -20%;
	}
}
/* ナビ */
#footer_nav {
	width: 100%;
	margin-top: 0;
	padding-top: 7rem;
	color: #fff;
}
.footer_list ul {
	display: flex;
	justify-content: center;
	line-height: 100px;
}
.footer_list ul li {
	margin-left: 3vw;
}
.footer_list ul .ov_line a {
	position: relative;
	display: inline-block;
}
.footer_list ul .ov_line a::after {
	position: absolute;
	bottom: 30px;
	left: 0;
	content: '';
	width: 100%;
	height: 1px;
	background: #fff;
	transform: scale(0, 1);
	transform-origin: right top;
	transition: transform .3s;
}
.footer_list ul .ov_line a:hover::after {
	transform-origin: left top;
	transform: scale(1, 1);
}
.footer_list ul .fa-instagram:hover {
	color: #c6529a;
}
.footer_list ul .fa-instagram {
	font-size: 20px;
}
.copyright {
	padding-top: 15px;
	font-size: 0.75rem;
	text-align: center;
}
@media screen and (max-width: 767px) {
	.footer_list {
		margin-top: 10vw;
		text-align: center;
	}
	.footer_list ul {
		display: inline-block;
		line-height: 60px;
	}
	.footer_list ul li {
		text-align: left;
		margin-left: 0;
	}
	.footer_list .h-line a::after {
		bottom: 1.5vh;
	}
}

/* ===================
ページ共通
====================== */
/* 分割コンテンツ
---------------------------------- */
.split {
	overflow: hidden;
}
.split .content {
	position: relative;
	width: 100%;
	max-width: var(--con-width);
	margin: 0 auto;
	padding: 150px 50px;
	display: flex;
	justify-content: space-between;
}
.split .area {
	position: relative;
	max-width: var(--area-width);
	padding: 200px 100px 100px;
}
.split .area p {
	margin-top: 20px;
}
.split .moko-title h2 {
	position: relative;
	font-size: 4.8rem;
	font-weight: 500;
	text-align: left;
}
.split .moko-title h2 span {
	display: block;
	margin: 10px 0 25px 5px;
	font-size: 1.6rem;
	font-family: 'Roboto';
	font-weight: normal;
}
.split .moko-title h2::before {
	position: absolute;
	bottom: -25px;
	display: block;
	width: 39.3vw;
	height: 2px;
	content: "";
	background: #1c1f22;
}
.split .moko-copy h3 {
	margin-top: 75px;
	font-size: 3.2rem;
	font-weight: 500;
}
.split .moko-copy h3 span {
	display: block;
	margin-top: 40px;
}
.split .slogan {
	margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
	.split .content {
		padding: 100px 30px;
	}
	.split .area {
		padding: 200px 0 100px;
	}
}
@media screen and (max-width: 767px) {
	.moko-title h2 {
		font-size: 4.5rem;
	}
	.split .content {
		display: block;
		padding: 100px 30px;
	}
	.split .area {
		padding: 50px 0 100px;
	}
}
/* 背景円 */
.split::before {
	position: absolute;
	top: -10vw;
	left: -38vw;
	border-radius: 0 50% 50% 0;
	content: '';
	width: 95vw;
	height: calc(100% + 30vw);
	background: #4cc940;
	z-index: -1;
}
.split::after {
	position: absolute;
	top: -17vw;
	right: 21vw;
	border-radius: 50%;
	content: '';
	width: 40vw;
	height: 40vw;
	background: rgba(167,248,105,0.8);
	z-index: -1;
}
@media screen and (max-width: 767px) {
	.split::before {
		width: 100vw;
		height: calc(100% + 19vw);
	}
	.split::after {
		width: 65vw;
		height: 65vw;
	}
}

/* 通常コンテンツ
---------------------------------- */
.content {
	position: relative;
	width: 100%;
	max-width: var(--con-width);
	margin: 0 auto;
	padding: 150px 50px;
}
.area {
	position: relative;
	max-width: var(--area-width);
	padding: 100px 100px 0;
}
.heading h2 {
	position: relative;
	font-size: 4.8rem;
	font-weight: 500;
	text-align: left;
}
@media screen and (max-width: 767px) {
	.heading h2 {
		font-size: 4.5rem;
	}
}
.heading h2 span {
	display: block;
	margin: 10px 0 25px 5px;
	font-size: 1.6rem;
	font-family: 'Roboto';
	font-weight: normal;
}
.heading h2::before {
	position: absolute;
	bottom: -25px;
	display: block;
	width: 39.3vw;
	height: 2px;
	content: "";
	background: #1c1f22;
}
.slogan {
	margin-bottom: 50px;
}
.slogan h3 {
	margin-bottom: 50px;
	font-size: 3.2rem;
	font-weight: 500;
}
@media screen and (max-width: 768px) {
	.content {
		padding: 100px 30px;
	}
	.area {
		padding: 60px 0 0;
	}
}
@media screen and (max-width: 500px) {
	.content {
		padding: 100px 20px;
	}
}

/* ボタン
---------------------------------- */
button a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 auto;
	padding: 1em 2em;
	width: 300px;
	color: #fff;
	background: #000;
	transition: 0.3s;
}
button a::after {
	content: '';
	width: 10px;
	height: 10px;
	background: #fff;
	border-radius: 50%;
	transition: 0.3s;
}
button a:hover::after {
	transform: scale(2);
}
button a:hover {
	background: #c30d23;
}
@media screen and (max-width: 320px) {
	button a {
		width: 260px;
	}
}

/* キャラクター
---------------------------------- */
/* オレンジ */
.moko-chara_or {
	position: absolute;
	right: 41%;
	bottom: 2%;
	width: 120px;
	height: 120px;
	background: #f39800;
	border-radius: 50%;
	animation: moko-chara_or 3s linear infinite;
}
@keyframes moko-chara_or {
	0% , 100% {
		transform: rotate(10deg);
	}
	50%{
		transform: rotate(-10deg);
	}
}
.moko-chara_or_eyes {
	position: absolute;
	top: 10%;
	right: 17%;
	width: 72px;
	height: 46px;
	transform: translate(0, 0);
}
.moko-chara_or_eyesonew {
	position: absolute;
	top: 0;
	right: 0;
	width: 26px;
	height: 26px;
	border-radius: 100%;
	background: #fff;
	transform: translate(0, 0);
}
.moko-chara_or_eyestwow {
	position: absolute;
	top: 40%;
	right: 30%;
	width: 26px;
	height: 26px;
	border-radius: 100%;
	background: #fff;
	transform: translate(-30%, 0);
}
.moko-chara_or_eyesoneb {
	position: absolute;
	top: 11%;
	right: -5%;
	width: 10px;
	height: 10px;
	border-radius: 100%;
	background: #673C63;
	transform: translate(-70%, 0);
	animation: moko-chara_eyes 3s infinite linear;
}
.moko-chara_or_eyestwob {
	position: absolute;
	top: 51%;
	right: 37%;
	width: 10px;
	height: 10px;
	border-radius: 100%;
	background: #673C63;
	transform: translate(-70%, 0);
	animation: moko-chara_eyes 3s infinite linear;
}
/* 赤 */
.moko-chara_red {
	position: absolute;
	top: -13%;
	right: 1%;
	width: 120px;
	height: 120px;
	background: #c30d23;
	border-radius: 50%;
	z-index: -1;
}
.moko-chara_red_eyes {
	position: absolute;
	top: 0%;
	left: 7%;
	width: 72px;
	height: 46px;
	transform: translate(0, 0);
}
.moko-chara_red_glassone {
	position: absolute;
	top: 0;
	left: 0;
	width: 35px;
	height: 35px;
	border-radius: 100%;
	border: solid 2px #f39800;
	transform: translate(0, 0);
}
.moko-chara_red_glasstwo {
	position: absolute;
	top: 27%;
	left: 61%;
	width: 35px;
	height: 35px;
	border-radius: 100%;
	border: solid 2px #f39800;
	transform: translate(-30%, 0);
}
.moko-chara_red_eyesone {
	position: absolute;
	top: 35%;
	left: 36%;
	width: 7px;
	height: 7px;
	border-radius: 100%;
	background: #000;
	transform: translate(-70%, 0);
	animation: moko-chara_eyes 3s infinite linear;
}
.moko-chara_red_eyestwo {
	position: absolute;
	top: 58%;
	left: 76%;
	width: 7px;
	height: 7px;
	border-radius: 100%;
	background: #000;
	transform: translate(-70%, 0);
	animation: moko-chara_eyes 3s infinite linear;
}
@keyframes moko-chara_eyes {
	0%, 35% {
		opacity: 1;
		transform: translate(-70%, 0%);
	}
	36%, 39% {
		opacity: 0;
		transform: translate(-70%, 0%);
	}
	40% {
		opacity: 1;
		transform: translate(-70%, 0%);
	}
	50%, 65% {
		transform: translate(-140%, 0%);
	}
	66% {
		transform: translate(-70%, 0%);
	}
}
@media screen and (max-width: 768px) {
	.moko-chara_red {
		top: -17%;
		left: 61%;
	}
}


/* ===================
メインビジュアル
====================== */
#main_visual {
	position: relative;
	width: 100%;
	height: 100%;
}

/* 円
---------------------------------- */
#main_visual .moko_main-chara {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 400px;
	height: 350px;
}
#main_visual .moko_main-or {
	position: absolute;
	top: 15%;
	left: 10%;
	width: 100px;
	height: 100px;
	background: #f39800;
	border-radius: 50%;
	animation: moko_main-or 10s linear;
}
@keyframes moko_main-or {
	0%, 15% {
		transform: scale(1.0, 1.0) translate(100%, 50%);
		background: #c30d23;
	}
	18% {
		transform: scale(1.1, 0.9)  translate(-30%, -30%);
	}
	40% {
		transform: scale(1, 1) translate(-20%, 15%);
	}
	50% {
		transform: scale(1.05, 0.95) translate(0%, -10%);
	}
	60% {
		transform: scale(1, 1)  translate(0%, -30%);
	}
	75% {
		transform: translate(0%, 5%);
	}
	85% {
		transform: translate(-30%, -30%);
	}
	100% {
		transform: translate(0, 0);
	}
}
#main_visual .moko_main-or_eyes {
	position: absolute;
	top: 15%;
	left: 14%;
	width: 50px;
	height: 33px;
	transform: translate(0, 0);
}
#main_visual .moko_main-or_eyesonew {
	position: absolute;
	top: 0;
	left: 31%;
	width: 21px;
	height: 21px;
	border-radius: 100%;
	background: #fff;
	transform: translate(-70%, 0);
}
#main_visual .moko_main-or_eyestwow {
	position: absolute;
	top: 32%;
	left: 85%;
	width: 21px;
	height: 21px;
	border-radius: 100%;
	background: #fff;
	transform: translate(-70%, 0);
}
#main_visual .moko_main-or_eyesoneb {
	position: absolute;
	top: 22%;
	left: 32%;
	width: 8px;
	height: 8px;
	border-radius: 100%;
	background: #673C63;
	transform: translate(-70%, 0);
	animation: mainring_eyes 3s infinite linear;
}
#main_visual .moko_main-or_eyestwob {
	position: absolute;
	top: 54%;
	left: 85%;
	width: 8px;
	height: 8px;
	border-radius: 100%;
	background: #673C63;
	transform: translate(-70%, 0);
	animation: mainring_eyes 3s infinite linear;
}
#main_visual .moko_main-red {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 300px;
	height: 300px;
	background: #c30d23;
	border-radius: 50%;
	transform: translate(0, 0);
	animation: moko_main-red 3s linear;
}
@keyframes moko_main-red {
	0%, 40% {
		transform: scale(1, 1) translate(0, 0);
	}
	45%, 55% {
		transform: scale(1.1, 1.1) translate(-5%, -8%);
	}
	60% {
		transform: scale(0.89, 0.89) translate(-5%, -5%);
	}
	65% {
		transform: scale(1, 1) translate(-5%, -5%);
	}
	70% {
		transform: scale(0.95, 0.95) translate(0, 0);
	}
	75% {
		transform: scale(1, 1) translate(0, 0);
	}
}
#main_visual .moko_main-red_eyes {
	position: absolute;
	top: 10%;
	left: 30%;
	width: 170px;
	height: 100px;
	transform: translate(-50%, 0%);
}
#main_visual .moko_main-red_glassone {
	position: absolute;
	top: 0;
	left: 0;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	border: solid 3px #f39800;
}
#main_visual .moko_main-red_glasstwo {
	position: absolute;
	top: 20%;
	left: 47%;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	border: solid 3px #f39800;
}
#main_visual .moko_main-red_eyesone {
	position: absolute;
	top: 35%;
	left: 36%;
	width: 10px;
	height: 10px;
	border-radius: 100%;
	background: #000;
	transform: translate(-70%, 0%);
	animation: mainring_eyes 3s infinite linear;
}
#main_visual .moko_main-red_eyestwo {
	position: absolute;
	top: 47%;
	left: 64%;
	width: 10px;
	height: 10px;
	border-radius: 100%;
	background: #000;
	transform: translate(-70%, 0%);
	animation: mainring_eyes 3s infinite linear;
}
@keyframes mainring_eyes {
	0%, 35% {
		opacity: 1;
		transform: translate(-70%, 0%);
	}
	36%, 39% {
		opacity: 0;
		transform: translate(-70%, 0%);
	}
	40% {
		opacity: 1;
		transform: translate(-70%, 0%);
	}
	50%, 65% {
		transform: translate(-140%, 0%);
	}
	66% {
		transform: translate(-70%, 0%);
	}
}
#main_visual .moko_main-red_mouth {
	position: absolute;
	top: 40%;
	left: 30%;
	width: 0;
	height: 0;
	border-radius: 20px;
	background: #673C63;
	transform: translate(-50%, -50%);
	animation: mainring_mouth 3s linear;
}
@keyframes mainring_mouth {
	0%, 40% {
		width: 0;
		height: 0;
	}
	45%, 54% {
		width: 15px;
		height: 15px;
		left: 25%;
	}
	59% {
		width: 5px;
		height: 5px;
		left: 15%;
	}
	62% {
		width: 2px;
		height: 2px;
		left: 15%;
	}
	70% {
		width: 0;
		height: 0;
		left: 25%;
	}
}
@media screen and (max-width: 420px) {
	#main_visual .moko_main-chara {
		width: 320px;
		height: 267px;
	}
	#main_visual .moko_main-or {
		width: 84px;
		height: 84px;
	}
	#main_visual .moko_main-red {
		width: 230px;
		height: 230px;
	}
	#main_visual .moko_main-red_eyes {
		width: 138px;
	}
	#main_visual .moko_main-red_glasses {
		top: 9%;
		left: 1%;
		width: 130px;
		height: 100px;
	}
	#main_visual .moko_main-red_glassone {
		width: 65px;
		height: 65px;
	}
	#main_visual .moko_main-red_glasstwo {
		width: 65px;
		height: 65px;
	}
}

/* キャッチコピー
---------------------------------- */
#main_visual h1 {
	position: absolute;
	left: 50%;
	top: 60%;
	transform: translate(-50%, -50%);
	width: 240px;
	height: 110px;
	font-size: 4.8rem;
	text-align: center;
	opacity: 0;
	animation: getout 4s 7.4s forwards;
}
@keyframes getout {
	100% {
		opacity: 1;
	}
}
#main_visual .text-bound span {
	position:relative;
	animation: text-bound 0.8s 8s forwards;
	color: #fff;
}
#main_visual .text-bound span:nth-child(1) {
	animation: text-bound 0.8s 8s 1;
}
#main_visual .text-bound span:nth-child(2) {
	animation: text-bound 0.8s 8.1s 1;
}
#main_visual .text-bound span:nth-child(3) {
	animation: text-bound 0.8s 8.2s 1;
}
@keyframes text-bound {
	0% {
		top: 0;transform: scale(1);
	}
	30% {
		top: -25%;
	}
	50% {
		transform: scale(1);
	}
	90% {
		top: 0;transform: scale(1.2,0.8);
	}
	100% {
		top: 0;transform: scale(1);
	}
}
@media screen and (max-width: 500px) {
	#main_mokoring h1 {
		top: -7.5rem;
		line-height: 6.2rem;
	}
}

/* スクロールボタン
---------------------------------- */
#scroll {
	position: absolute;
	bottom: 0;
	left: 50%;
}
#scroll span {
	position: absolute;
	left: 10px;
	bottom: 6.2px;
	font-size: 0.8em;
	letter-spacing: 0.2em;
	-ms-writing-mode: tb-rl;
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-lr;
}
#scroll:before {
	content: "";
	position: absolute;
	z-index: 5;
	bottom: 0;
	left: -4px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #c30d23;
	animation: circlemove 2.0s ease-in-out infinite,
	cirlemovehide 2.0s ease-out infinite;
}
@keyframes circlemove {
	0% {
		bottom: 55px;
	}
	100% {
		bottom: -5px;
	}
}
@keyframes cirlemovehide {
	0% {
		opacity:0
	}
	50% {
		opacity: 1;
	}
	80% {
		opacity: 0.9;
	}
	100% {
		opacity: 0;
	}
}
#scroll:after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 2px;
	height: 60px;
	background: #f39800;
}

/* ===================
コンテンツ
====================== */
/* about
---------------------------------- */
#about {
	width: 100%;
	position: relative;
}

/* service
---------------------------------- */
#service {
	width: 100%;
	position: relative;
	z-index: 0;
}
#service .beside2 {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
#service .beside2 li {
	width: calc(100% / 2 - 25px);
	position: relative;
}
#service .detail {
	margin-top: 25px;
	margin-bottom: 60px;
}
#service .button {
	text-align: right;
}
@media screen and (max-width: 1180px) {
	#service .beside2 li {
		width: calc(100% / 2 - 12.5px);
	}
}
@media screen and (max-width: 500px) {
	#service .beside2 {
		display: inline-block;
		}
	#service .beside2 li {
		width: 100%;
		max-width: 100%;
	}
}

/* news
---------------------------------- */
#news {
	position: relative;
	width: 100%;
	background: var(--mokomoko-gray);
}
.moko-news_container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: nowrap;
}
.moko-news_article {
	position: relative;
	display: inline-flex;
	width: calc(100% / 3 - 20px);
	height: auto;
}
.moko-news_article a {
	background: #fff;
	padding: 20px 56px 20px 23px;
}
.moko-news_article a::after {
	position: absolute;
	top: calc(100% / 2 - 5px);
	right: 23px;
	content: '';
	display: block;
	width: 10px;
	height: 10px;
	background: #000;
	border-radius: 50%;
	transition: 0.3s;
}
.moko-news_article a:hover::after {
	transform: scale(2);
	background: #c30d23;
}
#news .button {
	text-align: center;
	margin-top: 60px;
}
@media screen and (max-width: 767px) {
	.moko-news_container {
		display: block;
	}
	.moko-news_article,
	.moko-news_article a {
		width: 100%;
	}
	.mg30 {
		margin: 30px 0 30px;
	}
}

/* blog
---------------------------------- */
#blog {
	position: relative;
	width: 100%;
}
.moko-blog_container {
	display: flex;
	justify-content: space-between;
}
.moko-blog_article {
	width: calc(100% / 3 - 20px);
	max-width: 313px;
}
.moko-blog_tit {
	padding-top: 15px;
}
@media screen and (max-width: 500px) {
	#blog {
		padding-bottom: 50px;
	}
	.moko-blog_container {
		display: block;
	}
	.moko-blog_article {
		width: 100%;
		margin: 0 auto;
	}
	.b-mg30 {
		margin-top: 30px;
		margin-bottom: 30px;
	}
}
/* スライド内の円 */
#blog_contents {
	position: relative;
	width: 100%;
	height: auto;
	padding-bottom: 100px;
}
.ygreen-ring {
	position: absolute;
	top: 18px;
	right: -100px;
	width: 350px;
	height: 350px;
	background: #4CC940;
	border-radius: 50%;
	z-index: -1;
}
.green-ring {
	position: absolute;
	top: 49.5%;
	left: -10%;
	width: 400px;
	height: 400px;
	background: #81F52A;
	border-radius: 50%;
	z-index: -1;
}
#blog .moko-chara_red {
	top: 0;
	left: 0
}
#blog .moko-chara_or {
	right: 5%;
	bottom: 0;
}
@media screen and (max-width: 767px) {
	#blog .moko-chara_red {
		top: -15%;
		left: 35%;
	}
	#blog .moko-chara_or {
		bottom: -1%;
	}
}
@media screen and (max-width: 500px) {
	.green-ring {
		top: 79%;
		left: -36%;
	}
}
/* 吹き出し */
.moko-message {
	position: relative;
	top: 5%;
	right: 66%;
	display: inline-block;
	min-width: 10em;
	max-width: 100%;
	margin: 0 1.5em;
	padding: 0.6em;
	background: #fff;
	border: solid 1px #4CC940;
	border-radius: 0.3em;
}
.moko-message::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 100%;
	margin-top: -10px;
	border: 10px solid transparent;
	border-left: 15px solid #fff;
	z-index: 2;
}
.moko-message::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 100%;
	margin-top: -11px;
	border: 11px solid transparent;
	border-left: 17px solid #4CC940;
	z-index: 1;
}

@media screen and (max-width: 768px) {
	.moko-message {
		top: -35%;
		right: 16%;
		margin: 1.5em 0;
	}
	.moko-message::before {
		top: auto;
		bottom: -22px;
		left: 44.5%;
		transform:rotate(90deg)
	}
	.moko-message::after {
		top: auto;
		bottom: -25px;
		left: 44%;
		transform:rotate(90deg)
	}
}
@media screen and (max-width: 767px) {
	.moko-message {
		top: -51%;
		right: -25%;
	}

}
#blog .button {
	text-align: center;
	margin-top: 60px;
}