@charset "UTF-8";

/* TB 768px以下 ------------------*/
.b60 { margin-bottom: 60px; }
.b40 { margin-bottom: 40px; }
.b20 { margin-bottom: 20px; }
.b10 { margin-bottom: 10px; }
.hbn article {
	padding: 20px;
	margin: 0 auto 60px;
	background: var(--white);
	border-radius: 20px;
}
.cont-ttl {
	display: block;
	position: relative;
	top: 0;
	width: 100%;
	height: 200px;
	margin: 60px 0 0;
}
.about .cont-ttl {
	background: url(../image/about/sp-about-bg.jpg) no-repeat center/cover;
}
.faq .cont-ttl {
	background: url(../image/faq/sp-faq-bg.jpg) no-repeat center/cover;
}
.access .cont-ttl {
	background: url(../image/access/sp-access-bg.jpg) no-repeat center/cover;
}
.cont-ttl h2 {
	position: absolute;
	width: 100%;
	max-width: 260px;
	top: 80px;
	left: 0;
	right: 0;
	padding: 10px;
	margin: auto;
	color: var(--main-blue);
	background: rgba(256,256,256,.9);
}
.img-box, .txt-box {
	width: 100%;
	height: auto;
	padding: 10px 0;
}
.innr-box {
	padding: 10px;
	margin: 10px 0;
	background: var(--pale-blue);
}

/*---- about 2023/11/10 追加 ----*/
.feature-item {
	margin: 1em 0 2em;
}
.feature .point {
	position: relative;
	z-index: 1;
	margin: 0.5em 0;
	padding-left: 0.5em;
	color: var(--main-blue);
	font-weight: bold;
	line-height: 40px;
}
.feature .point::before {
	content: '';
	display: block;
	position: absolute;
	z-index: -1;
	top: 0;
	left: 0;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 40px 40px 0 0;
	border-color: var(--yellow) transparent transparent transparent;
	border-radius: 5px;
}
.feature .point span {
	display: inline-block;
	margin-left: 0.2em;
	font-size: 22px;
}
.feature .point-ttl {
	display: block;
	position: relative;
	margin: -2em 0 1em;
}
.feature .point-ttl span {
	display: inline-block;
	padding: 0.5em 1em;
	margin: 0;
	color: var(--white);
	font-size: 18px;
	font-weight: bold;
	background: var(--main-blue);
	border-radius: 2em;
}
.feature h4 {
	color: var(--black);
	text-align: left;
	line-height: 1.4em;
}
.feature h4 .dot {
	display: inline;
  padding: 0 1px 4px;
	color: var(--main-blue);
	background-image : linear-gradient(to right, #69C6DB 3px, transparent 3px);
	background-size: 6px 3px;
	background-repeat: repeat-x;
	background-position: left bottom;
}
.feature .innr-box {
	border-radius: 5px;
	background: var(--pale-yellow);
}
.feature-2 .innr-box {
	margin: 30px 0;
}
.feature .support .q {
	position: relative;
	padding: 0 30px;
	margin-bottom: 0;
}
.feature .support .q::before {
	content: '';
	display: block;
	position: absolute;
	left: 0;
	bottom: 1em;
	width: 30px;
	height: 4px;
	transform: rotate(45deg);
	background: var(--yellow);
	border-radius: 2px;
}
.feature .support .q::after {
	content: '';
	display: block;
	position: absolute;
	right: 0;
	bottom: 1em;
	width: 30px;
	height: 4px;
	transform: rotate(-45deg);
	background: var(--yellow);
	border-radius: 2px;
}
.feature .support .a {
	position: relative;
	padding: 20px 10px 10px;
	margin: 1em 0;
	background: var(--white);
	border: 3px solid var(--main-blue);
	border-radius: 5px;
}
.feature .support .a::before {
	content: '';
	display: block;
	position: absolute;
	top: -10px;
	left: 0;
	right: 0;
	width: 20px;
	height: 20px;
	margin: auto;
	background: url(../image/icon-check.svg) no-repeat center/cover;
}
.feature .support .a p {
	margin: 0;
	text-align: left;
	font-weight: bold;
}
.work figure {
	margin: 0 0 1em;
	text-align: center;
}
.work figcaption {
	margin: 1em 0;
	text-align: center;
	font-size: 12px;
	line-height: 1.2em;
}
.work-detail figcaption span {
	display: block;
	font-size: 16px;
	font-weight: bold;
}
.work-box {
	position: relative;
  padding: 20px 10px 10px;
  margin: 3em 0;
  background: var(--white);
  border: 3px solid var(--main-blue);
  border-radius: 5px;
}
.work-ttl {
	display: block;
  margin: -3em 0 0;
	text-align: center;
}
.work-box h4 {
	display: inline-block;
  padding: 0.5em 1em;
  margin: 0;
  color: var(--white);
  font-size: 18px;
  font-weight: bold;
  background: var(--main-blue);
  border-radius: 2em;
}
.work-detail h5 {
	color: var(--main-blue);
	text-align: center;
	font-size: 18px;
}
.work-list {
	flex-direction: column;
	gap: 20px 0;
}
.work-item {
	position: relative;
	padding: 10px;
	background: var(--pale-blue);
	border-radius: 5px;
}
.work-item::after {
	content: '';
	display: block;
	position: absolute;
	left: 0;
	right: 0;
	bottom: -10px;
	width: 15px;
	height: 12px;
	margin: auto;
	background: url(../image/icon-arrow.svg) no-repeat center/cover;
	transform: rotate(90deg);
}
.work-item:last-of-type::after {
	display: none;
}
.work-item h5 {
	color: var(--main-blue);
	text-align: center;
}
.work-item h5::before {
	content: '';
	display: inline-block;
	width: 20px;
	height: 20px;
	margin: 0 5px 0 0;
	vertical-align: middle;
}
.work-item.story h5::before {
	background: url(../image/icon-story.svg) no-repeat center/cover;
}
.work-item.storyboard h5::before {
	background: url(../image/icon-storyboard.svg) no-repeat center/cover;
}
.work-item.illust h5::before {
	background: url(../image/icon-illust.svg) no-repeat center/cover;
}
.work-item.anime h5::before {
	background: url(../image/icon-anime.svg) no-repeat center/cover;
}
.work-item.audio h5::before {
	background: url(../image/icon-audio.svg) no-repeat center/cover;
}
.work-item.movie h5::before {
	background: url(../image/icon-movie.svg) no-repeat center/cover;
}
.work-item p {
	margin: 0;
}
.youtube {
	margin: 0 auto;
}

/*---- faq ----*/
ul.faq-list li {
	position: relative;
	padding: 10px;
	border-radius: 10px;
}
.f-q {
	margin: 0 60px 1em 10px;
	background: var(--pale-blue);
}
.f-q span {
	color: var(--main-blue);
	font-size: 24px;
	font-weight: bold;
}
.f-q::before {
	content: '';
	display: block;
	position: absolute;
	top: 15px;
	left: -5px;
	width: 10px;
	height: 10px;
	background: var(--pale-blue);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}
.f-a {
	margin: 0 10px 1em 60px;
	background: #ffdbdb;
}
.f-a span {
	color: var(--salmon-pink);
	font-size: 24px;
	font-weight: bold;
}
.f-a::after {
	content: '';
	display: block;
	position: absolute;
	top: 15px;
	right: -5px;
	width: 10px;
	height: 10px;
	background: #ffdbdb;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

/*---- 交通案内 ----*/
.map {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
}
.map iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/*---- パンくずリスト ----*/
.breadcrumbs {
	position: relative;
    margin: 10px auto;
}
.breadcrumbs ul {
	position: relative;
	display: block;
}
.breadcrumbs ul li {
	display: inline-block;
    margin: 0 5px 0 0;
    font-size: 12px;
}
.breadcrumbs ul li::before {
	content: '';
	display: inline-block;
	width: 5px;
	height: 5px;
	margin: 0.1em;
	border-bottom: 1px solid var(--white);
	border-right: 1px solid var(--white);
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
}
.breadcrumbs ul li a {
	color: var(--white);
	text-decoration: underline !important;
}

/* SP 428px ------------------*/
@media screen and (min-width:428px) {
	/*---- about 2023/11/10 追加 ----*/
	.feature .sp-container {
		justify-content: space-between;
	}
	.feature .box-item {
		width: 47%;
	}
	.feature .box-item p {
		margin-bottom: 0;
	}
}

/* TB 768px ------------------*/
@media screen and (min-width:768px) {
	.cont-ttl {
		top: 0;
	}
	.supporter .cont-ttl h2 {
		max-width: 400px;
		top: 45px;
	}
	.img-box {
		width: 40%;
		height: auto;
		padding: 0;
	}
	.txt-box {
		width: 60%;
		height: auto;
		padding: 0 0 0 40px;
	}
	.innr-box {
		padding: 20px;
		margin: 20px 0;
	}

	/*---- about 2023/11/10 追加 ----*/
	.feature-ttl {
		display: flex;
		align-items: center;
		gap: 0 20px;
	}
	.feature .point {
		line-height: 50px;
	}
	.feature h4 {
		width: calc(100% - 120px);
		margin: 0;
	}
	.feature .point::before {
		border-width: 50px 50px 0 0;
	}

	.work-detail {
		align-items: center;
	}
	.work-detail h5 {
		text-align: left;
	}
	.work-detail figure {
		margin: 0;
	}
	.work-detail figcaption {
		font-size: 12px;
		line-height: 1.2em;
	}
	.work-detail figcaption span {
		display: block;
		font-size: 16px;
		font-weight: bold;
	}
	.work-box:last-of-type .work-detail .img-box {
		gap: 0 20px;
	}
	.work-box:last-of-type .work-detail .img-box figure {
		width: calc(50% - 10px);
	}
	.work-box {
	  padding: 40px 20px 20px;
	}
	.work-ttl {
	  margin: -4em 0 1em;
	}
	.work-box h4 {
	  font-size: 20px;
	}
	.work-list {
		flex-direction: row;
		gap: 20px 20px;
	}
	.work-item {
		width: calc(33.33% - 13.33px);
		padding: 20px;
		margin: 0;
	}
	.work-item::after {
		left: auto;
		right: -10px;
		bottom: calc(50% - 6px);
		margin: 0;
		transform: rotate(0deg);
	}
	.work-item h5 {
		font-size: 18px;
		letter-spacing: 0;
	}
	.work-item h5::before {
		width: 30px;
		height: 30px;
	}

	/*---- パンくずリスト ----*/
	.breadcrumbs {
	    margin: 20px auto;
	}
}

/* PC 1024px ------------------*/
@media screen and (min-width:1024px) {
	.hbn article {
		padding: 20px 40px;
	}
	.cont-ttl {
		height: 300px;
		margin: 0;
	}
	.about .cont-ttl {
		background: url(../image/about/about-bg.jpg) no-repeat center/cover;
	}
	.faq .cont-ttl {
		background: url(../image/faq/faq-bg.jpg) no-repeat center/cover;
	}
	.access .cont-ttl {
		background: url(../image/access/access-bg.jpg) no-repeat center/cover;
	}
	.cont-ttl h2 {
		max-width: 400px;
		top: 120px;
	}

	/*---- about 2023/11/10 追加 ----*/
	.feature .support .q {
		position: relative;
		padding: 0 50px;
		margin-bottom: 0;
	}
	.feature .support .q::before {
		left: 20px;
	}
	.feature .support .q::after {
		right: 20px;
	}
	.feature .support .a {
		padding: 30px 20px 20px;
	}
	.feature .support .a::before {
		top: -15px;
		width: 30px;
		height: 30px;
	}


	/*---- faq ----*/
	.f-q {
		margin: 0 240px 2em 10px;
	}
	.f-a {
		margin: 0 10px 2em 240px;
	}

	/*---- パンくずリスト ----*/
	.breadcrumbs ul li {
	    font-size: 14px;
	}
}