@charset "UTF-8";

/*-------------------------
全体
-------------------------*/
html{
	height: 100%;
}

body{
	font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Meiryo", "Noto Sans JP", sans-serif;
	overflow-wrap:break-word;
	display: flex;
    flex-direction: column;
    min-height: 100vh; /* ページ全体を少なくとも1画面分の高さに設定 */
    margin: 0;
}

main{
	flex: 1; /* コンテンツエリアがフッターの上に自動で調整 */
}

#main-img-pc{
	display: block;
}

#main-img-sp{
	display: none;
}

.content-wrap{
	display: flex;
	justify-content: space-between;
	align-items: center;

}

h2.content-title{
	font-size: 60px;
	line-height: 1.2em;
	position: relative;
	padding-left: 45px;
	z-index: 1;
}

h2.content-title svg{
	position: absolute;
	z-index: -1;
	left: 0;
	top: -35px;
}

h2.content-title.moved svg circle {
    stroke-dasharray:400; /* 円周 */
    stroke-dashoffset: 400; /* 初期状態は非表示 */
    animation: draw .5s linear forwards; /* 描画アニメーション */
}

@keyframes draw {
    to {
        stroke-dashoffset: 0; /* 最終状態で全て描かれる */
    }
}

.content-more{
	text-decoration: none;
	color: #000;
	text-align: center;
}

.content-more:after{
	display: block;
	content: "";
	width: 150px;
	height: 8px;
	border-bottom: 1px solid #000;
	border-right: 1px solid #000;
	transform: skew(45deg);
	transition: .5s;
}

.content-more:hover:after{
	width: 200px;
}

.more-pc{
	display: inline-block;
}

.more-sp{
	display: none;
}

/*ページャー*/

.pagenation .wp-pagenavi{
	text-align: center;
}

.pagenation .wp-pagenavi span,
.pagenation .wp-pagenavi a{
	height: 30px;
	min-width: 30px;
	display: inline-block;
	border-radius: 10px;
	text-align: center;
	line-height: 2em;
	margin:5px;
	transition: .5s;
}

.wp-pagenavi .pages{
	border-radius: 10px;
}

.wp-pagenavi a{
	color: #000;
}

.wp-pagenavi a:hover,
.wp-pagenavi span.current{
	background: #FF97B5;
	border:1px solid #FF97B5 !important;
	color: #fff;
}


/*-------------------------
ヘッダー
-------------------------*/
header{
	display: flex;
	justify-content: flex-end;
	align-items: center;
	background:rgba(255,255,255,0.7);
	position: fixed;
	padding:15px 0;
	top:0;
	width: 100%;
	z-index: 100;
}

h1#site-title-sp{
	display: none;
}

#sp-menu-list{
	display: none;
}

header ul.global-menu{
	display: flex;
	list-style: none;
	font-size: 20px;
}

header ul.global-menu li{
	margin:0 1.5em 0 0;
	opacity: 1;
}

header ul.global-menu li a{
	text-decoration: none;
	color: #000;
	position: relative;
	transform: scale(1, 1);
}

header ul.global-menu li a:after{
	position: absolute;
	left: 0;
	content: "";
	width: 100%;
	height: 2px;
	background: #FF97B5;
	bottom: -1px;
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .3s;
}

header ul.global-menu li a:hover:after{
	transform: scale(1,1);
}

header a#global-menu-contact{
	background: #FF97B5;
	font-size: 32px;
	color: #fff;
	border-radius: 10px;
	text-decoration: none;
	font-weight: bold;
	transition: .5s;
	padding: 5px 30px;
	margin-right: 30px;
}

header a#global-menu-contact:hover{
	opacity: .5;
}

header a#global-menu-contract{
	background: #9AC8E7;
	font-size: 32px;
	color: #fff;
	border-radius: 10px;
	text-decoration: none;
	font-weight: bold;
	transition: .5s;
	padding: 5px 30px;
	margin-right: 30px;
}

header a#global-menu-contract:hover{
	opacity: .5;
}

#works, #info-box{
	max-width: 1200px;
	margin: 0 auto;
}

#site-title{
	display: inline-block;
	transform: rotate(-30deg);
	position: absolute;
	z-index: 101;
}

#site-title h1{
	width: 220px;
	position: absolute;
	top:45px;
	left: -40px;
	transform: rotate(30deg);
}

#site-title h1 img{
	height: auto;
	width: 100%;
}

#site-title-back{
	display: inline-block;
	background: rgba(255, 255, 255, 0.5);
	transform: rotate(-30deg);
	padding: 150px 50px 150px 150px;
	width: 500px;
	position: absolute;
	top: -120px;
	left: -150px;
	z-index: 1;
}

/*-------------------------
フッター
-------------------------*/
footer{
	background:#FDE7A9;
	color:#FF97B5;
	text-align: center;
	margin-top: 50px;
}

footer p{
	margin: 0;
}

#scroll-top{
	content: '';
	background: #FDE7A9;
	width: 50px;
	height: 50px;
	position: fixed;
	bottom: 30px;
	right: 10px;
	border-radius: 50%;
	display: none;
}

#scroll-top:after{
	content: '';
	width: 20px;
	height: 20px;
	border-right: 3px solid #FF97B5;
	border-top: 3px solid #FF97B5;
	margin: auto;
	top: 10px;
	bottom: 0;
	right: 0;
	left: 0;
	position: absolute;
	transform: rotate(-45deg);
}

/*-------------------------
メインイメージ
-------------------------*/
section#main-img #main-img-pc{
	height: 1000px;
	/*display: flex;
	align-items: center;*/
}

section#main-img{
	position: relative;
	overflow: hidden;
}

section#main-img img{
	width: 100%;
	height: auto;
}

section#main-img #main-scroll-wrap{
	position: absolute;
	display: inline-block;
	bottom: 150px;
	right: 15px;
	text-align: center;
	color: #fff;
	font-weight: bold;
	font-size: 24px;
	transform: rotate(90deg);
	text-shadow: 0 0 8px #000;
}

section#main-img p#main-scroll{
	animation: bounce 1s infinite;
}

section#main-img p#main-scroll:after{
	display: block;
    content: "";
    width: 150px;
    height: 8px;
    border-bottom: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: skew(45deg);
    margin: 0 auto;
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateX(0);
    }
    40% {
        transform: translateX(-10px);
    }
    60% {
        transform: translateX(-5px);
    }
}

/*-------------------------
works
-------------------------*/
ul#list-works{
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-content: flex-start;
	/*justify-content: space-between;*/
	width: 100%;
	padding: 0;
}

ul#list-works li{
	width: 24%;
	height: auto;
	overflow: hidden;
	aspect-ratio: 1/1;
	border-radius: 20px;
	margin: 0 1% 1% 0;
	position: relative;
}

ul#list-works li:nth-child(4n){
	margin-right: 0;
}

ul#list-works li a{
	width: 100%;
	height: 100%;
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	transform-style: preserve-3d;
	transition: .5s;
	border-radius: 10px;
	text-align: center;
	background: #ccc;
}

ul#list-works li:hover a{
	transform: rotateY(180deg);
}

ul#list-works li a img{
	height: 100%;
	width: auto;
}

ul#list-works li a span.works-author{
	background: #000;
	color: #fff;
	font-weight: bold;
	position: absolute;
	display: inline-block;
	padding: 5px 30px;
	bottom: 25px;
	right: 0;
}

ul#list-works li a span.works-character{
	position: absolute;
	width: 100%;
	height: 100%;
	backface-visibility: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	font-size: 22px;
	transition: .5s;
	opacity: 0;
	transform: scaleX(-1);
	text-align: center;
	box-sizing: border-box;
	padding:15px;
}

ul#list-works li:hover a span.works-character{
	background: rgba(0,0,0,.8);
	opacity: 1;
}

ul#works-btn{
	display: flex;
	list-style: none;
	justify-content: space-between;
	font-size: 32px;
	padding: 0;
}

ul#works-btn li a{
	display: block;
	transition: .5s;
	font-weight: bold;
}

ul#works-btn li#works-contact{
	width: 70%;
	position: relative;
}

ul#works-btn li#works-contact a{
	background: #FF97B5;
	text-align: center;
	text-decoration: none;
	color: #fff;
	padding: 15px;
	border-radius: 10px;
}

ul#works-btn li#works-contact:before{
	content:"";
	width: 100%;
	height: 100%;
	display: block;
	background: #FFB6CB;
	position: absolute;
	transition: .5s;
	z-index: -1;
	border-radius: 10px;
}

ul#works-btn li#works-contact:hover:before{
	opacity: .5;
	transform: rotate(5deg);
}

ul#works-btn li#works-plan{
	width: 28%;
}

ul#works-btn li#works-plan a{
	background: #9AC8E7;
	text-align: center;
	text-decoration: none;
	color: #fff;
	padding: 15px;
	border-radius: 10px;
}

ul#works-btn li#works-plan a:hover{
	opacity: 0.5;	
}

#entry-footer ul#prevNext{
	display: flex;
	justify-content: space-between;
	list-style: none;
	padding: 0;
}

#entry-footer ul#prevNext li a{
	text-decoration: none;
	color: #000;
	transition: .5s;
}

#entry-footer ul#prevNext li a:hover{
	opacity: 0.5;
}

#entry-footer ul#prevNext li.prevNext_item-prev a:after{
	display: block;
    content: "";
    width: 100%;
    height: 8px;
    border-bottom: 1px solid #000;
    border-right: 1px solid #000;
    transform: skew(45deg);
}

#entry-footer ul#prevNext li.prevNext_item-next a:after {
    display: block;
    content: "";
    width: 100%; /* 初期幅を0に設定 */
    height: 8px;
    border-bottom: 1px solid #000;
    border-left: 1px solid #000;
    transform: skew(-45deg);
}


/*-------------------------
info
-------------------------*/
section#info{
	background:#FDE7A9;
	padding-bottom: 50px;
}

section#info h2.content-title:after{
	border: 6px solid #fff;
}


#info-box{
	display: flex;
	justify-content: space-between;
}

/*News*/
#news-wrap{
	width: 55%;
}

#youtube-wrap{
	width: 40%;
}

#info-box #news-wrap dl{
	display: block;
}

.news-wrap-inside{
	margin-bottom: 16px;
}

.news-wrap-inside dl{
	margin: 0 10px;
}

.news-wrap-inside dl a{
	margin:0 10px;
}

#news-wrap dl a,
.news-wrap-inside dl a{
	display: block;
	padding: 20px 10px;
	border-top: solid 1px;
	text-decoration: none;
	transition: .5s;
	color: #000;
}

#news-wrap dl a:hover{
	background: rgba(255, 255, 255, 0.5);
}

.news-wrap-inside dl a:hover{
	background: rgba(253, 231, 169, 1);
}

#news-wrap dl:last-child a,
.news-wrap-inside dl:last-child a{
	border-bottom: solid 1px;
}

#news-wrap dl a,
.news-wrap-inside dl a{
	margin: 0;
	display: flex;
}

#news-wrap dl dt,
.news-wrap-inside dl dt{
	/*margin: 0 1em 0 0;*/
}

#news-wrap dl dd,
.news-wrap-inside dl dd{
	margin: 0 0 0 1em;
}

#news-wrap .content-wrap a.content-more{
	border-top:none;
}

#info-top{
	height: 53px;
	background-size: auto 100% !important;
	background: url(../img/wabe-top.svg) repeat-x;
	animation: wave-top 8s infinite linear;
}

@keyframes wave-top{
	from{
		background-position: 0 0;
	}
	to{
		background-position: 633px 0;
	}
}

#info-bottom{
	height: 53px;
	margin-bottom: 50px;
	background: url(../img/wabe-bottom.svg) repeat-x;
	background-size: auto 100%;
	animation: wave-bottom 8s infinite linear;
}

@keyframes wave-bottom{
	from{
		background-position: 0 0;
	}
	to{
		background-position: -633px 0;
	}
}

/*-------------------------
links
-------------------------*/
section#links h2.content-title{
	color:#E48DBD;
	text-align: center;
	padding: 0;
}

section#links h2.content-title:after{
	content: none;
}

ul#links-wrap{
	list-style: none;
	display: flex;
	justify-content: space-between;
	width: 300px;
	margin: 0 auto;
	padding: 0;
}

ul#links-wrap li{
	height: 80px;
	width: auto;
}

ul#links-wrap li a{
	transition: .5s;
	text-decoration: none;
	color: #E48DBD;
}

ul#links-wrap li a:hover{
	opacity: 0.5;
}

ul#links-wrap li a img{
	width: auto;
	height: 100%;
}

a#link-tel{
	height: 80px;
	display: flex;
	justify-content: center;
    align-items: center;
	background: #E48DBD;
	font-size: 40px;
	padding: 15px;
	text-align: center;
	text-decoration: none;
	color: #fff;
	margin-top: 30px;
	margin-bottom: -50px;
}


a#link-tel img{
	height: 100%;
}

a#link-tel p{
	font-size: 16px;
	text-align: left;
	margin: 0 0 0 30px;
	display: inline-block;
}

#tel-text{
	display: flex;
	align-items: center;
	height: 100%;
}


/*タブレット*/

@media (min-width: 1025px) and (max-width: 1420px) {
	header a#global-menu-contact,
	header a#global-menu-contract{
		font-size: 18px;
		padding-right:15px ;
		padding-left: 15px;
	}

	#site-title h1 img{
		position: absolute;
		top:25px;
		left: 50px;
		width: 70%;
	}

	body section#main-img #main-img-pc{
		height: 600px;
	}

}


/*-------------------------
ページ「Works」
-------------------------*/
header h1#site-title-menu{
	width: 100px;
	position: fixed;
	margin: 0 0 0 30px;
	top:10px;
	left: 0;
}

header h1#site-title-menu a,
header h1#site-title-menu a img{
	width: 100%;
}

header ul#global-menu{
	margin-left:40% ;
}

.content-menu-title{
	padding-top:150px;
	padding-bottom: 50px;
	background: #FDE7A9;
}

.content-menu-title h2.content-title{
	width: 1200px;
	margin:0 auto;
	box-sizing: border-box;
}

#breadcrumb-wrap{
	position: relative;
	max-width: 1200px;
	margin:0 auto;
	display: block;
	height: 3em;
	white-space: nowrap; /* テキストを折り返さない */
    overflow: hidden; /* はみ出した部分を隠す */
}

ul#breadcrumb{
	position: absolute;
	display: flex;
	list-style: none;
	padding: 0;

}

ul#breadcrumb li a:after{
	content:"";
	border-bottom: 1px solid #000;
	border-right: 1px solid #000;
	display: inline-block;
	width: 8px;
	height: 8px;
	transform: rotate(-45deg);
	margin:0 10px;
}

ul#breadcrumb li:last-child:after{
	content: none;
}

ul#breadcrumb li a{
	color: #000;
}

#works{
	margin-top: 50px;
	margin-bottom: 100px;
}

ul#list-category{
	list-style: none;
	padding-left: 0;
	display: flex;
	max-width: 1200px;
	margin: 15px auto;
}

ul#list-category li a{
	color: #000;
	padding:10px;
	margin-right: 10px;
	border:1px solid #000;
	border-radius: 10px;
	min-width: 150px;
	display: block;
	text-decoration: none;
	text-align: center;
	transition: .5s;
}

ul#list-category li a:hover{
	background: #000;
	color: #fff;
}

/*-------------------------
ページ「News」
-------------------------*/
#info.info-list{
	background: none;
}

.info-list #news-wrap{
	width: 100%;
}

/*ニュース記事*/
h2.content-title-entry.content-title{
	font-size: 30px;
	padding-left: 30px;
	line-height: 1.5em;
}

h2.content-title-entry.content-title svg{
	display:flex;
	top:-30px;
}

h2.content-title-entry.content-title span{
	position: relative;
	top: -10px;
}

section#news-entry{
	max-width: 1200px;
	margin:0 auto;
}

section#news-entry #news-wrap{
	width: 100%;
}

/*-------------------------


SP版


-------------------------*/
@media (max-width: 1024px) {
	/*共通*/
	/*メインイメージ
	#main-img-pc{
		display: none;
	}

	#main-img-sp{
		display: block;
	}
	*/

	section#main-img #main-img-pc{
		height: 600px;
	}

	.content-menu-title{
		padding-top: 100px;
	}

	h2.content-title{
		font-size: 45px;
		line-height: 1.4em;
	}

	#x-wrap{
		display: none;
	}

	#x-wrap h2.content-title{
		padding-left: 49px;
		margin-left: 20px;
	}

	.content-more{
		float: right;
		margin-right: 10px;
		margin-bottom: 30px;
	}

	.more-pc{
		display: none;
	}

	.more-sp{
		display: block;
		float: none;
		padding-top: 20px;
		padding-bottom: 40px;
	}

	.more-sp:after{
		margin: 0 auto;
	}

	section#main-img{
		padding-top:80px;
	}

	/*ヘッダー*/

	header{
		display: flex;
		height:50px;
		justify-content: center;
		align-items: center;
	}

	header ul.global-menu, #global-menu-contact ,#site-title,#site-title-back,header a#global-menu-contract{
		display: none;
	}

	h1#site-title-sp{
		width: 100px;
		margin: 0;
		display:block;
	}

	h1#site-title-sp a{
		display: flex;
		vertical-align: middle;
	}

	h1#site-title-sp a img{
		width: 100%;
		height: auto;
	}

	h1#site-title-menu{
		display: none;
	}

	/*メニュー*/

	#sp-menu{
		display: inline-block;
		width: 50px;
		height: 50px;
		float: right;
		position: fixed;
		top: 10px;
		right: 10px;
		z-index: 100;
		transition: .5s;
	}

	#sp-menu span{
		border-top: 1px solid #000;
		display: block;
		padding-bottom: 10px;
		transition: .5s;
	}

	#sp-menu span:first-child{
		margin-top: 20px;
	}

	#sp-menu span:last-child{
		padding-bottom: 0;
	}

	#sp-menu.menu-toggle{
		top: 7px;
	}

	#sp-menu.menu-toggle span:first-child{
		transform: rotate(45deg);
		position: relative;
		top: 10px;
		right: 3px;
	}

	#sp-menu.menu-toggle span:nth-child(2){
		opacity: 0;
	}

	#sp-menu.menu-toggle span:last-child{
		transform: rotate(-45deg);
		position: relative;
		top: -10px;
	}

	#sp-menu-list{
		position: fixed;
		background: #FF97B5;
		width: 100%;
		height: 100%;
		z-index: 2;
		top:-100%;
		transition: .5s;
		display: block;
		overflow: scroll;
	}

	#sp-menu-list.menu-toggle{
		top:0;
	}

	#sp-menu-list ul{
		list-style: none;
		padding: 64px 0 0 0;
	}

	#sp-menu-list ul li a{
		color: #fff;
		text-decoration:none;
		display: block;
		padding: 20px 50px;
		border-top: solid 1px #fff;
	}

	#sp-menu-list ul li:last-child a{
		border-bottom: 1px solid #fff;
	}

	#sp-menu-list a#sp-menu-contact{
		border-radius: 5px;
		padding: 20px 50px;
		display: block;
		margin:20px 50px 0 50px;
		color: #333;
		text-decoration: none;
		text-align: center;
		font-size: 20px;
		font-weight: bold;
		background: #FDE7A9;
	}

	#sp-menu-list a#sp-menu-contract{
		border-radius: 5px;
		padding: 5px 50px;
		display: block;
		margin:20px 50px 0 50px;
		color: #333;
		text-decoration: none;
		text-align: center;
		font-size: 20px;
		font-weight: bold;
		background: #9AC8E7;
		color: #fff;
	}

	#breadcrumb-wrap{
		padding-right: 10px;
		padding-left: 10px;
	}

	#breadcrumb-wrap ul li{
		line-height: 0.7em;
	}

	#breadcrumb-wrap ul li a{
		display: inline-block;
	}

	#breadcrumb-wrap ul li span{
		float: left;
	}

	#breadcrumb-wrap ul li a span{
		text-decoration: underline;
	}

	#breadcrumb-wrap ul li span.current-item{
		display: inline-block;
	    white-space: nowrap;
	    overflow: hidden;
	    text-overflow: ellipsis;
	    max-width: 100px;
	    line-height: 1em;
	}

	/*スクロールガイド*/
	section#main-img #main-scroll-wrap{
		right: -40px;
		bottom: 180px;
		display: none;
	}

	/*カテゴリーページ*/
	.content-wrap{
		display: block;
		padding-right: 10px;
		padding-left: 10px;
		padding-top: 20px;
	}

	.content-menu-title.content-wrap{
		padding-top:130px;
	}

	.content-wrap h2.content-title{
		width: 100%;
		position: relative;
		margin-right:10px;
		margin-left: 10px;
		box-sizing: border-box;
	}

	h2.content-title svg{
		position: absolute;
	}

	ul#list-works ,ul#list-works li{
		box-sizing: border-box;
	}

	ul#list-works{
		padding: 10px;
	}

	ul#list-works li{
		width: 49%;
		margin: 0 1% 1% 0;
	}

	ul#list-works li:nth-child(4n){
		margin-right: 0;
	}

	ul#list-works li:nth-child(2n){
		margin-right: 0;
	}

	ul#works-btn{
		display: block;
		padding: 0 10px;
	}

	ul#works-btn li#works-contact,
	ul#works-btn li#works-plan{
		width: 100%;
	}

	ul#works-btn li#works-plan{
		font-size: 24px;
	}

	ul#works-btn li#works-contact a{
		margin-bottom: 15px;
	}

	ul#works-btn li#works-plan a{
		padding:10px 0;		
	}

	/*News*/
	section#info{
		padding-top: 50px;
	}

	#info.info-list{
		padding-top: 0;
	}

	#info-box{
		display: block;
		padding: 0 10px;
	}

	#news-wrap,
	#youtube-wrap{
		width: 100%;
	}

	#youtube-wrap div{
		margin-top: 70px;
	}

	#news-wrap .content-wrap a.content-more{
		float: right;
	}

	#news-wrap .content-wrap{
		margin-bottom: 70px;
	}

	#youtube-wrap h2{
		margin-left: 10px;
	}

	.twitter-timeline.twitter-timeline-rendered{
		width: 300px !important;
		margin:0 auto;
	}

	ul#list-category{
		padding: 0 10px;
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
	}

	ul#list-category li{
		margin:0 0 1% 0 ;
		width: 49%;
	}

	ul#list-category li a{
		width: 100%;
		margin: 0;
		box-sizing: border-box;
	}

	/*LINKS*/
	ul#links-wrap{
		width: 20%;
		padding: 0;
	}

	ul#links-wrap li{
		height: 50px;
	}

	a#link-tel{
		height: auto;
		line-height: .5em;
		display: flex;
		align-items: center;
		font-size: 30px;
	}

	a#link-tel img{
		height: 100%;
	}

	a#link-tel #tel-text{
		display: block;
		height: 2em;
	}

	a#link-tel p{
		line-height: 1.3em;
		margin-left: 30px;
		display: inline-block;
	}

	section#news-entry #news-wrap{
		padding-right: 10px;
		padding-left: 10px;
		box-sizing: border-box;
	}

	#entry-footer ul#prevNext{
		display: block;
	}

	#entry-footer ul#prevNext li a{
		display: block;
		margin: 0 10px;
	}

	#entry-footer ul#prevNext li.prevNext_item-next a{
		margin-bottom: 15px;
	}

	#entry-footer p{
		margin: 0 10px 15px 10px;
	}

}

@media (max-width: 540px) {
	section#main-img #main-img-pc{
		height: 300px;
	}

	ul#links-wrap{
		width: 50%;
	}

	a#link-tel{
		display: block;
	}

	a#link-tel img{
		margin-left: 0;
	}

	a#link-tel p{
		margin-top: 15px;
		margin-left: 0;
	}
}