@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;600;700;900&display=swap&subset=japanese');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;600;700;900&display=swap&subset=japanese');
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap');

html {
	font-size: 100%;
}

body {
	margin: 0;
	padding: 0;
	height: 100%;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 14px;
	letter-spacing: .005em;
	line-height: 1.7;
	color: #333333;
	background: #ebeff2;
	-webkit-text-size-adjust:100%;
}

h1,h2,h3,h4,h5,h6 {
    font-size:100%;
    font-weight:normal;
	margin:0;
    padding:0;
}

p,li,dt,dd,th,td,pre {
	-ms-line-break: strict;
	line-break: strict;
	-ms-word-break: break-strict;
	word-break: break-strict;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: top;
	border: 0;
}

ul,ol {
	padding: 0 0 0 2em;
}

dd {
	margin: 0;
}

object,embed {
  vertical-align: top;
}

a,
.hover {
	color: #333;
	text-decoration: none;
	transition: all  0.3s ease;
}

a:not(.false):hover,
.hover:hover {
	opacity: 0.7;
}

a:hover {
	cursor: pointer;
}

a:focus {
	outline: none;
}

p {
	display: block;
	margin: 0 0 1em;
}

.layout {
	padding: 0;
	list-style: none;
}

.cf:before,
.cf:after{
  content:"";
  display: table;
}
.cf:after{
  clear:both;
}

.font {
	font-family: 'Noto Serif JP', serif;
}

.Bebas {
	font-family: 'Bebas Neue', cursive;
}

.flex {
	display: flex;
}

@media all and (min-width: 769px) {
	.tel-link {
		pointer-events: none;
	}

	.sp {
		display: none!important;
	}
}

@media all and (max-width: 768px) {
	.pc {
		display: none!important;
	}

	.flex-column {
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}
}

/* ----------------------------------------
	animation setting
---------------------------------------- */
.list .list-item {
	opacity: 0;
	position: relative;
	transition: all 0.6s ease-out;
	top: 20px;
}

.list .list-item.on {
	opacity: 1;
	top: 0;
}

@media screen and (min-width: 769px) {
	.list .list-item:nth-child(even) {
		transition-delay: .1s;
	}
}

/* ----------------------------------------
	Header
---------------------------------------- */
header {
	width: 100%;
	padding: 16px 0;
	background: #282e39;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 999;
}

.btn-admin {
	position: absolute;
	top: 10px;
	right: 20px;
}

.btn-admin a {
	display: block;
	color: #fff;
	font-weight: 500;
	padding: 5px 0 5px 27px;
	background: url(../images/ico_admin.png) no-repeat left center;
}

@media screen and (max-width: 768px) {
	#logo {
		width: 60%;
	}
}

/* ----------------------------------------
	Footer
---------------------------------------- */
footer {
	padding: 1.5em 0;
	background: #e3e9ed;
}

.footer__copy {
	font-size: 12px;
	text-align: center;
	margin: 0;
}

#pagetop {
	position: fixed;
	bottom: 0;
	right: 0;
	margin: 0;
	z-index: 9;
}

#pagetop a {
	display: block;
	width: 100%;
	height: 100%;
	background: #282e39;
}

@media all and (max-width: 768px) {
	.footer__copy {
		font-size: 10px;
	}

	#pagetop {
		width: 50px;
		height: 50px;
	}
}

/* ----------------------------------------
	home
---------------------------------------- */
body.home {
	background: url(../images/bg.jpg) no-repeat center;
	background-size: cover;
}

.home__flex {
	padding: 0 20px;
	height: calc(100vh - 90px);
	align-items: center;
	justify-content: center;
}

.home__flex__box {
	width: 100%;
	text-align: center;
}

#home_logo {
	margin: 0 0 3em;
}

/* ----------------------------------------
	Contents
---------------------------------------- */
main {
	position: relative;
	margin-top: 55px;
	padding: 3em 0 6em;
}

section {
	position: relative;
}

.section__title {
	font-size: 20px;
	font-weight: 700;
}

.inner {
	max-width: 1100px;
	margin: 0 auto;
	box-sizing: border-box;
}


@media screen and (max-width: 1140px) {
	.inner {
		padding: 0 20px;
	}
}

/* ----------------------------------------
	archive
---------------------------------------- */
.select-flex {
	justify-content: center;
	margin: 0 0 3em;
}

.select {
	width: 48%;
	max-width: 440px;
	position: relative;
}

.select:after {
	display: block;
	content: ">";
	font-size: 80%;
	font-weight: 600;
	color: #878e95;
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translate(0,-50%) rotate(90deg) scale(1,1.5);
	pointer-events: none;
}

.select + .select {
	margin: 0 0 0 40px;
}

.select select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	width: 100%;
	font-size: 16px;
	padding: 15px;
	border: 1px solid #ced4da;
	border-radius: 4px;
	background: #fff;
}

.list {
	flex-wrap: wrap;
	justify-content: space-between;
}

.list li {
	width: calc(50% - 20px);
	margin: 0 0 30px;
}

.list li a {
	display: block;
	padding: 15px 20px 25px;
	background: #fff;
	border-radius: 10px;
	overflow: hidden;
	position: relative;
	z-index: 1;
}

.list li a:before {
	display: block;
	content: "";
	width: 100%;
	height: 150px;
	background: #282e39;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}

.list__cat {
	font-size: 24px;
	font-weight: 600;
	text-align: center;
	color: #fff;
	margin: 0 0 .7em;
}

.list__thumb {
	width: 150px;
	height: 150px;
	margin: 0 auto 20px;
	border-radius: 50%;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

.list__name {
	font-size: 24px;
	text-align: center;
	margin: 0 0 .1em;
}

.list__company {
	text-align: center;
}

.list__text {
	overflow: hidden;
}

.list__text p {
	margin: 0;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.newicon {
	width: 70px;
	color: #fff;
	font-weight: 600;
	text-align: center;
	padding: 2px 0;
	background: #cc0000;
	position: absolute;
	top: 100px;
	left: 20px;
}

@media screen and (max-width: 768px) {
	.select {
		width: 100%;
	}
	
	.select + .select {
		margin: 20px 0 0;
	}

	.list {
		justify-content: center;
	}

	.list li {
		width: 100%;
		max-width: 530px;
	}
	
	.list li a:before {
		height: 115px;
	}
	
	.list__cat {
		font-size: 20px;
	}
	
	.list__thumb {
		width: 130px;
		height: 130px;
	}
	
	.list__name {
		font-size: 20px;
	}

	.newicon {
		width: 60px;
		font-size: 13px;
		top: 70px;
	}
}

/* ----------------------------------------
	single
---------------------------------------- */
.main__container {
	padding: 20px 0 0;
	background: #fff;
	position: relative;
	z-index: 1;
	border-radius: 10px;
	overflow: hidden;
}

.main__container:before {
	display: block;
	content: "";
	width: 100%;
	height: 150px;
	background: #282e39;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}

.main__container__inner {
	padding: 0 40px;
}

.container__box__name {
	font-size: 30px;
	text-align: center;
	line-height: 1.4;
	margin: 0;
}

.container__box__company {
	font-size: 18px;
	text-align: center;
	margin: 0 0 1.5em;
}

.container__box__logo {
	text-align: center;
	margin: 0 0 1.5em;
}

.container__box__logo img {
	width: auto;
	height: auto;
	max-width: 400px;
	max-height: 235px;
}

.container {
	padding: 0 0 5em;
}

.container__title {
	display: flex;
	align-items: center;
	font-size: 48px;
	text-align: center;
	color: #282e39;
	margin: 0 0 1em;
	position: relative;
}

.container__title:before,
.container__title:after {
	content: "";
	height: 1px;
	flex-grow: 1;
	background-color: #282e39;
}

.container__title:before {
	margin-right: 25px;
}

.container__title:after {
	margin-left: 25px;
}

.container__title span {
	display: block;
	font-size: 14px;
	font-weight: 600;
	margin: auto;
	position: absolute;
	bottom: -.5em;
	right: 0;
	left: 0;
}

.container__profile__text {
	font-size: 16px;
	line-height: 1.8;
	margin: 0 0 3em;
	padding: 30px;
	background: #f7f7f7;
	border: 1px solid #dfdfdf;
	border-radius: 20px;
}

.container__profile__detail {
	flex-wrap: wrap;
	margin: 0 0 2em;
	border-top: 1px solid #cccccc;
}

.container__profile__detail li {
	width: 100%;
	font-size: 16px;
	padding: 1em 0 1em 50px;
	border-bottom: 1px solid #cccccc;
	position: relative;
	box-sizing: border-box;
}

.container__profile__detail li:before {
	display: block;
	content: "";
	width: 22px;
	height: 22px;
	background-repeat: no-repeat;
	background-position: center;
	position: absolute;
	top: 18px;
	left: 16px;
}

.container__profile__detail li.col--2 {
	width: 50%;
}

.container__profile__detail li.name:before {
	background-image: url(../images/ico_name.png);
}

.container__profile__detail li.address:before {
	background-image: url(../images/ico_address.png);
}

.container__profile__detail li.tel:before {
	background-image: url(../images/ico_tel.png);
}

.container__profile__detail li.mobile:before {
	background-image: url(../images/ico_mobile.png);
}

.container__profile__detail li.site:before {
	background-image: url(../images/ico_site.png);
}

.container__profile__detail li.mail:before {
	background-image: url(../images/ico_mail.png);
}

.container__profile__sns {
	justify-content: center;
	align-items: center;
}

.container__profile__sns li + li {
	margin-left: 23px;
}

.business-card__list {
	flex-wrap: wrap;
	justify-content: center;
	margin: 0 0 -2em;
}

.business-card__list li {
	width: calc(50% - 20px);
	max-width: 400px;
	text-align: center;
	margin: 0 0 2em;
}

.business-card__list li:nth-child(even) {
	margin-left: 40px;
}

.business-card__list__img {
	margin: 0 0 20px;
}

.business-card__list__img a {
	display: block;
}

.business-card__list__img img {
	border: 1px solid #cccccc;
	max-width: 400px;
	max-height: 400px;
}

.movie__list {
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 0 0 -2em;
}

.movie__list li {
	width: calc(50% - 20px);
	margin: 0 0 2em;
}

.movie-wrap {
	width: 100%;
	height: 300px;
}

.movie-wrap iframe,
.movie-wrap video {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.contents__list {
	flex-wrap: wrap;
	margin: 0 0 -3em;
}

.contents__list li {
	width: calc(20% - 16px);
	margin: 0 0 3em;
}

.contents__list li:not(:nth-child(5n)) {
	margin-right: 20px;
}

.contents__list__img {
	width: 100%;
	height: 185px;
	margin: 0 0 10px;
}

.contents__list__img img {
	max-width: none;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.download-btn {
	width: 100%;
	max-width: 185px;
	margin: 0 auto;
}

.download-btn img {
	max-width: none;
	width: 100%;
}

.contents__list__title {
	margin: 5px 0 0;
}

.contents__list__title iframe {
	width: 100%;
}

.recom__list {
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 0 0 -2em;
}

.recom__list li {
	width: calc(50% - 20px);
	margin: 0 0 2em;
}

.recom__list__img {
	width: 100%;
	height: 300px;
	margin: 0 0 10px;
	border: 1px solid #ccc;
}

.recom__list__img img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.back {
	text-align: center;
	margin: 0;
}

.back a {
	display: block;
	color: #fff;
	font-size: 16px;
	text-decoration: none;
	padding: 1.8em 0;
	background: #282e39;
}

.back a span {
	display: inline-block;
	padding: 0 0 0 60px;
	background: url(../images/ico_arrow.png) no-repeat left 9px;
}

.btns {
	justify-content: space-between;
	max-width: 184px;
	margin: 0 auto;
}

.btns > div {
	max-width: calc(50% - 5px);
}

.btns > div a {
	display: block;
}

.btns.center {
	max-width: 160px;
	justify-content: center;
}

.btns.center > div {
	width: 32%;
	text-align: center;
}

@media screen and (max-width: 1120px) {
	.business-card__list li {
		width: calc(50% - 10px);
	}
	
	.business-card__list li:nth-child(even) {
		margin-left: 20px;
	}
	
	.business-card__list__img img {
		width: 100%;
		max-width: 50vw;
		max-height: 100%;
	}

	.movie__list li {
		width: calc(50% - 10px);
	}
	
	.contents__list__img {
		height: 16vw;
	}

	.recom__list__img {
		height: 26vw;
	}
}

@media screen and (max-width: 768px) {
	.main__container {
		padding: 20px 0 0;
	}

	.main__container:before {
		height: 120px;
	}

	.main__container__inner {
		padding: 0 20px;
	}

	.container__title {
		font-size: 26px;
	}

	.container__title:before {
		margin-right: 10px;
	}
	
	.container__title:after {
		margin-left: 10px;
	}

	.container__title span {
		font-size: 12px;
		bottom: -.9em;
	}

	.container__profile__detail li {
		width: 100%!important;
	}

	.container__profile__sns li {
		width: 35px;
	}

	.container__profile__sns li + li {
		margin-left: 20px;
	}

	.business-card__list li {
		width: 100%;
		margin: 0 0 3em!important;
	}
	
	.business-card__list__img img {
		max-width: 100%;
	}

	.movie__list li {
		width: 100%;
		margin: 0 0 2em;
	}

	.contents__list {
		justify-content: space-between;
	}

	.contents__list li {
		width: calc(50% - 10px);
		margin: 0 0 3em!important;
	}

	.contents__list__img {
		height: 36.7vw;
	}

	.download-btn {
		max-width: 100%;
		text-align: center;
		background: #282e39;
	}

	.download-btn img {
		max-width: 185px;
	}

	.recom__list li {
		width: 100%;
		max-width: 480px;
	}

	.recom__list__img {
		height: 48vw;
		max-height: 300px;
	}

	.back a {
		padding: 1.2em 0;
	}

}