@charset 'UTF-8';
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

/* reset & base
 ----------------------------------------------------------------- */
	html, body, div, span, object, iframe,
	h1, h2, h3, h4, h5, h6, p, blockquote, pre,
	abbr, address, cite, code,
	del, dfn, em, img, ins, kbd, q, samp,
	small, strong, sub, sup, var,
	b, i,
	dl, dt, dd, ol, ul, li,
	fieldset, form, label, legend,
	table, caption, tbody, tfoot, thead, tr, th, td,
	article, aside, canvas, details, figcaption, figure,
	footer, header, hgroup, menu, nav, section, summary,
	time, mark, audio, video {
		margin: 0;
		padding: 0;
		vertical-align: baseline;
		border: 0;
		outline: 0;
		background: transparent;
	}
	article, aside, details, figcaption, figure,
	footer, header, hgroup, menu, nav, section {
		display: block;
	}
	nav ul {
		list-style:none;
	}
	blockquote, q {
		quotes:none;
	}
	blockquote::before, blockquote::after,
	q::before, q::after {
		content: '';
		content: none;
	}
	a {
		margin: 0;
		padding: 0;
		vertical-align: baseline;
		background: transparent;
	}
	ins {
		text-decoration: none;
		color: #333;
		background-color: #ff9;
	}

	mark {
		font-weight: bold;
		font-style: italic;
		color: #333;
		background-color: #ff9;
	}
	del {
		text-decoration: line-through;
	}
	abbr[title], dfn[title] {
		cursor: help;
		border-bottom: 1px dotted;
	}
	table {
		border-spacing: 0;
		border-collapse: collapse;
	}

	hr {
		display: block;
		height: 1px;
		margin: 1em 0;
		padding: 0;
		border: 0;
		border-top: 1px solid #ccc;
	}
	input, select {
		vertical-align: middle;
	}

	html {
		font-size: 62.5%;
	}
	body {
		font-family: 'Noto Sans JP', 'ヒラギノ角ゴ Pro', 'Hiragino Kaku Gothic Pro', '游ゴシック体', YuGothic, '游ゴシック', 'Yu Gothic', 'Helvetica Neue', 'Arial', 'ＭＳ Ｐゴシック', 'MS PGothic' , sans-serif;
		font-size: 1.6rem;
		font-weight: 400;
		line-height: 1.75;
		height: 100%;
		letter-spacing: .05em;
		color: #333;
		overflow-y: scroll;
	}
	@media screen and (max-width:599px) {
		body {
			font-size: 1.4rem;
		}
	}
	img {
		width: 100%;
		height: auto;
		vertical-align: top;
	}
	a {
		display: block;
		text-decoration: none;
		color: #333;
	}
	a:hover {
		text-decoration: underline;
	}
	a.hover:hover {
		transition: opacity .3s ease;
		opacity: .8;
	}
	*,
	*::before,
	*::after {
		box-sizing: content-box;
	}
	.clearfix::after {
		display: block;
		clear: both;
		content: '';
	}
	.sp_tab-only,
	.sp-only {
		display: none!important;
	}
	.pc-only ,
	.pc_tab-only {
		display: block!important;
	}
	@media screen and (max-width:1024px) {
		.sp_tab-only {
			display: block!important;
		}
		.pc-only {
			display: none!important;
		}
	}
	@media screen and (max-width:599px) {
		.pc_tab-only {
			display: none!important;
		}
		.sp-only {
			display: block!important;
		}
	}

/* 変数
 ----------------------------------------------------------------- */
	:root {
		--color-green: #009260;

		--bgcolor-cream: #FFF9D6;
		--bgcolor-green: #E8F7EE;

		--color-ch1: #8dc21f;
		--color-ch2: #00b9ee;
		--color-ch3: #eebe00;

		--bgcolor-booth1: #e2f0c7;
		--bgcolor-booth2: #e4e4e4;
		--bgcolor-booth3: #d5efec;
		--bgcolor-booth4: #fbd9db;
		--bgcolor-booth5: #d9f4fc;
		--bgcolor-booth6: #feefdd;
		--bgcolor-booth7: #ccd6ea;

		--color-booth1:#8bc020;
		--color-booth2:#666666;
		--color-booth3:#02b8a9;
		--color-booth4:#e40211;
		--color-booth5:#00b9ee;
		--color-booth6:#f5911e;
		--color-booth7:#003194;


		--font-en: din-2014, sans-serif;

		--nav-width: 228px;
	}

/* layout
 ----------------------------------------------------------------- */
	.wrapper-full {
		display: flex;
		overflow-x: hidden;
		width: 100%;
	}
	.header {
		position: relative;
		z-index: 10;
		width: var(--nav-width);
		background: #fff;
		box-shadow: 0 3px 10px -5px rgb(0 0 0 / 50%);

		flex: 0 0 var(--nav-width);
	}
	.wrapper-r {
		width: calc(100% - var(--nav-width));

		flex: 1 1 auto;
	}
	.inner {
		overflow: hidden;
		max-width: 1020px;
		margin-left: auto;
		margin-right: auto;
		padding-right: 40px;
		padding-left: 40px;
	}
	.inner-s {
		overflow: hidden;
		max-width: 830px;
		margin-left: auto;
		margin-right: auto;
		padding-right: 40px;
		padding-left: 40px;
	}
	@media screen and (min-width: 600px) and (max-width: 1024px) {
		.inner ,.inner-s {
			padding-left: 30px;
			padding-right: 30px;
		}
	}


/* page共通 section共通
 ----------------------------------------------------------------- */
	.page-ttl {
		font-size: 3.4rem;
		font-size: clamp(2.8rem, 3.22vw, 3.4rem);
		font-weight: 800;
		display: flex;
		width: 100%;
		height: 360px;
		color: var(--color-green);
		background-image: url('./../img/common/img_second_mv.svg'),
		linear-gradient(180deg, #e5f8fd 0%, #e5f8fd 75%, #fff 75%, #fff 100%);
		background-repeat: no-repeat;
		background-position: bottom 35% center;
		background-size: cover;

		justify-content: center;
		align-items: center;
	}
	.page-ttl span {
		padding-top: 2.5em;
	}

	.sec-cont {
		padding: 76px 0;
	}
	.sec-title {
		font-size: 4.0rem;
		font-weight: 800;
		font-style: normal;
		position: relative;
		margin-bottom: 64px;
		text-align: center;
		line-height: 1.125;
		font-feature-settings: 'palt';
	}
	.sec-title::after {
		position: absolute;
		left: 50%;
		display: block;
		width: 60px;
		height: 5px;
		content: '';
		transform: translateX(-50%);
		background: var(--color-green);
		bottom: -18px;
	}
	.sec-lead {
		text-align: center;
		font-size: 1.8rem;
		font-weight: 500;
	}
	.-inBlock {
		display: inline-block;
	}
	.f-en {
		font-family: var(--font-en);
	}
	a.txt-link {
		display: inline-block;
		text-decoration: none;
		color: var(--color-green);
	}
	a.txt-link:hover {
		text-decoration: underline;
	}

/* header
 ----------------------------------------------------------------- */
	.header-inner {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		overflow-x: hidden;
		overflow-y: auto;
		width: var(--nav-width);

		-ms-overflow-style: none;
		scrollbar-width: none;
		background: #FFF;
	}
	.header-inner::-webkit-scrollbar {
		display: none;
	}
	.header-logo {
		padding: 26px 15px 18px;
		background: var( --color-green);
	}
	.header-menu {
		font-size: 1.6rem;
		font-weight: 700;
		margin: 15px 0 30px;
		position: relative;
	}
	@media screen and (min-width:1025px) {
		#nav-menu {
			display: block!important;
		}
	}
	.header-menu::after {
    position: absolute;
    bottom: -8px;
    left: 5px;
    width: calc(100% - 10px);
    height: 1px;
    content: '';
    background: var(--color-green);
	}
	.header-menu a:hover {
		text-decoration: none;
	}
	.header-item {
		line-height: 1.5;
		height: 60px;
	}
	.header-lnk {
		position: relative;
		display: flex;
		height: 100%;
		padding-left: 20px;
		cursor: pointer;

		align-items: center;
	}
	.header-icon {
		width: 36px;
		height: 36px;
		margin-right: 16px;
	}
	#menber-aco-cont,
	.js-aco-cont {
		display: none;
	}
	.menber-item {
		height: 40px;
		border-bottom: 1px solid #fff;
	}
	.menber-item:last-child {
		border-bottom: none;
	}
	.menber-lnk {
		position: relative;
		display: flex;
		height: 100%;
		color: #fff;

		align-items: center;
		justify-content: center;
	}
	.header-lnk::before,
	.menber-lnk::before,
	.header-sns-list > a::before {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		content: '';
		transition: background .3s;
	}
	.header-lnk:hover::before,
	.menber-lnk:hover::before {
		background: rgba(0,0,0,.05);
	}
	.header-sns-list > a:hover::before {
		background: rgba(0,0,0,.35);
	}
	.header-item-arrow {
		position: absolute;
		right: 30px;
		width: 20px;
		height: 20px;
	}
	.header-item-arrow::after,
	.header-item-arrow::before {
		position: absolute;
		top: 50%;
		left: 50%;
		display: block;
		width: 100%;
		height: 3px;
		content: '';
		transition: transform .4s;
		transform: translate(-50%, -50%);
		border-radius: 2px;
		background: var( --color-green);
	}
	.header-item-arrow::before {
		width: 3px;
		height: 100%;
	}
	.menber-open .header-item-arrow::before,
	.js-open .header-item-arrow::before {
		transform: translate(-50%, -50%) rotate(90deg);
	}
	#menber-aco-cont.menber-open,
	.js-aco-cont.js-open {
		display: block;
	}
	.present-color {
		background-color: #f7931d;
	}
	@media screen and (min-width:1025px) {
		.menber-item.booth-color03 .menber-lnk {
			letter-spacing: -.05em;
		}
	}
	.header-item-bordertop {
		position: relative;
		margin-top: 15px;
		padding-top: 15px;
	}
	.header-item-bordertop::before {
		position: absolute;
		top: 0;
		left: 5px;
		width: calc(100% - 10px);
		height: 1px;
		content: '';
		background: var(--color-green);
	}
	.header-sns-list {
		display: flex;
		height: 76px;

		justify-content: center;
		align-items: center;
	}
	.header-sns-list > a {
		position: relative;
		width: 46px;
		height: 46px;
		margin: 0 8px;
	}
	.header-sns-list > a:hover img {
		transition: opacity .3s;
		opacity: .6;
	}
	.header-sns-list > a::before {
		position: absolute;
		width: 100%;
		height: 100%;
		border-radius: 50%;
	}

/* sponsor
 ----------------------------------------------------------------- */
	.sponsor-list {
		padding-bottom: 15px;
		/* padding-top: 15px; */
	}
	.sponsor-wrap {
		text-align: center;
	}
	.sponsor-ttl {
		display: inline-block;
		font-size: 1.3rem;
		font-weight: 700;
		line-height: 19px;
		text-align: center;
		/* letter-spacing: .2em; */
		background: #000;
		color: #FFF;
		padding: 0 .5em;
	}
	.sponsor-img a {
		padding: 0 40px;
		position: relative;
		transition: background .3s;
	}
	.sponsor-img a::after {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		right: 0;
		left: 0;
		transition: background .3s;
	}
	.sponsor-img a:hover::after {
		background: rgba(0,0,0,.05);
	}
	.sponsor-wrap + .sponsor-wrap {
		margin-top: 25px;
	}

/* footer
 ----------------------------------------------------------------- */
	#page_top {
		z-index: 4;
		position: fixed;
		width: 72px;
		height: 72px;
		background: url('../img/common/icn_backtop.svg') no-repeat;
		background-size: contain;
		bottom: 50px;
		right: -73px;
		opacity: 0;
		transition: opacity 1s, right .5s;
		border-radius: 50%;
	}
	#page_top::after {
		position: absolute;
		content: "";
		top: 0;
		bottom: 0;
		right: 0;
		left: 0;
		background: url('../img/common/icn_backtop_hov.svg') no-repeat;
		background-size: contain;
		opacity: 0;
		transition: opacity .3s;
		border-radius: 50%;
	}
	#page_top.show {
		opacity: 1;
		right: 25px;
	}
	#page_top:hover::after {
		opacity: 1;
	}
	.footer {
		background: #191919;
	}
	.footer-ttl {
		padding: 110px 40px 70px;
    margin: auto;
    max-width: 760px;
	}
	.footer-menu {
		font-size: 1.4rem;
		display: flex;
		margin: 0 auto 40px;
		flex-wrap: wrap;
		justify-content: space-evenly;
		max-width: 800px;
	}
	.footer-lnk {
		margin: 0 12px 30px;
	}
	.footer-lnk a {
		text-decoration: underline;
		color: #fff;
	}
	.footer-lnk a:hover {
		text-decoration: none;
	}
	.copyright {
		font-size: 1.2rem;
		padding: 5px 0;
		text-align: center;
		color: #fff;
		background: var(--color-green);
	}

/* booth-color
 ----------------------------------------------------------------- */
	.booth-color01, .booth-bgcolor01 .company-item-cate, .booth-bgcolor01 .company-item-link a {background-color: var(--color-booth1);}
	.booth-color02, .booth-bgcolor02 .company-item-cate, .booth-bgcolor02 .company-item-link a {background-color: var(--color-booth2);}
	.booth-color03, .booth-bgcolor03 .company-item-cate, .booth-bgcolor03 .company-item-link a {background-color: var(--color-booth3);}
	.booth-color04, .booth-bgcolor04 .company-item-cate, .booth-bgcolor04 .company-item-link a {background-color: var(--color-booth4);}
	.booth-color05, .booth-bgcolor05 .company-item-cate, .booth-bgcolor05 .company-item-link a {background-color: var(--color-booth5);}
	.booth-color06, .booth-bgcolor06 .company-item-cate, .booth-bgcolor06 .company-item-link a {background-color: var(--color-booth6);}
	.booth-color07, .booth-bgcolor07 .company-item-cate, .booth-bgcolor07 .company-item-link a {background-color: var(--color-booth7);}

	.booth-bgcolor01 .company-item-link a, .booth-bgcolor01 .company-item-link a:hover::after, .anchor-list a.booth-color01 {border-color: var(--color-booth1);}
	.booth-bgcolor02 .company-item-link a, .booth-bgcolor02 .company-item-link a:hover::after, .anchor-list a.booth-color02 {border-color: var(--color-booth2);}
	.booth-bgcolor03 .company-item-link a, .booth-bgcolor03 .company-item-link a:hover::after, .anchor-list a.booth-color03 {border-color: var(--color-booth3);}
	.booth-bgcolor04 .company-item-link a, .booth-bgcolor04 .company-item-link a:hover::after, .anchor-list a.booth-color04 {border-color: var(--color-booth4);}
	.booth-bgcolor05 .company-item-link a, .booth-bgcolor05 .company-item-link a:hover::after, .anchor-list a.booth-color05 {border-color: var(--color-booth5);}
	.booth-bgcolor06 .company-item-link a, .booth-bgcolor06 .company-item-link a:hover::after, .anchor-list a.booth-color06 {border-color: var(--color-booth6);}
	.booth-bgcolor07 .company-item-link a, .booth-bgcolor07 .company-item-link a:hover::after, .anchor-list a.booth-color07 {border-color: var(--color-booth7);}

	.booth-bgcolor01, .anchor-list a.booth-color01:hover {background-color: var(--bgcolor-booth1);}
	.booth-bgcolor02, .anchor-list a.booth-color02:hover {background-color: var(--bgcolor-booth2);}
	.booth-bgcolor03, .anchor-list a.booth-color03:hover {background-color: var(--bgcolor-booth3);}
	.booth-bgcolor04, .anchor-list a.booth-color04:hover {background-color: var(--bgcolor-booth4);}
	.booth-bgcolor05, .anchor-list a.booth-color05:hover {background-color: var(--bgcolor-booth5);}
	.booth-bgcolor06, .anchor-list a.booth-color06:hover {background-color: var(--bgcolor-booth6);}
	.booth-bgcolor07, .anchor-list a.booth-color07:hover {background-color: var(--bgcolor-booth7);}

	.booth-bgcolor-able {background-color: var(--color-green);}


/* for tablet */
@media screen and (max-width:1024px) {
/* layout
 ----------------------------------------------------------------- */
	.wrapper-full {
		display: block;
	}
	.header {
		width: 100%;
		box-shadow: none;
		border-bottom: 1px solid #e5e5e5;
	}
	.wrapper-r {
		width: 100%;
	}

/* page共通 section共通
 ----------------------------------------------------------------- */
	.page-ttl {
		height: 300px;
	}

/* header
 ----------------------------------------------------------------- */
	#nav-menu {
		display: none;
		position: fixed;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		overflow: hidden;
	}
	.header-inner {
		position: relative;
		width: 100%;
		max-height: 100%;
		overflow-y: auto;
		background: #fff;
		height: 100vh;
		-ms-overflow-style: none;
		scrollbar-width: none;
	}
	.header-inner::-webkit-scrollbar {
		display:none;
	}
	.header-logo-wrap {
		display: flex;
		width: 100%;
		height: 70px;
		background: var(--color-green);

		align-items: center;
	}
	.header-logo {
		width: min(72.53vw, 272px);
		margin-left: 23px;
		padding: 0;
	}
	.header-menu {
		margin: 0 20px;
	}
	.header-lnk {
		padding-left: 16px;
	}
	.header-item,
	.menber-item {
		height: 68px;
	}
	.header-item {
		position: relative;
	}
	.header-item::after {
		display: block;
		content: "";
		margin: 0;
		height: 1px;
		background: var(--color-green);
	}
	.header-item-bordertop {
		margin-top: 0;
		padding-top: 0;
	}
	.header-menu::after,
	.header-item-bordertop br,
	.header-item-bordertop::before {
		display: none;
	}
	.header-sns-list {
		height: 100px;
		justify-content: flex-start;
		margin-left: 7px;
	}
	.header-icon {
		width: 36px;
		height: 36px;
		margin-right: 16px;
	}
	.header-item-arrow {
		left: 11em;
	}
	.header-item-arrow .header-lnk::after {
		width: 10px;
		height: 10px;
	}
	.menber-lnk {
		padding-left: 20px;
		justify-content: flex-start;
	}
	.memu-btn {
		position: fixed;
		z-index: 20;
		top: 0;
		right: 0;
		width: 52px;
		height: 52px;
		cursor: pointer;
		background: var(--color-green);
	}
	.memu-btn-menu,
	.memu-btn-close {
		line-height: 8px;
		position: absolute;
		bottom: 7px;
		left: 50%;
		width: 32px;
		margin-left: -16px;
		transition: opacity .4s;
	}
	.memu-btn-close {
		opacity: 0;
	}
	.memu-btn-line,
	.memu-btn-line::after,
	.memu-btn-line::before {
		position: absolute;
		left: 50%;
		display: block;
		width: 32px;
		height: 2px;
		margin-left: -16px;
		background: #fff;
	}
	.memu-btn-line {
		top: 19px;
		transition: background .2s;
	}
	.memu-btn-line::before {
		top: -9px;
		content: '';
		transition: transform .4s;
	}
	.memu-btn-line::after {
		top: 9px;
		content: '';
		transition: transform .4s;
	}
	.memu-btn.nav-open .memu-btn-menu {
		opacity: 0;
	}
	.memu-btn.nav-open .memu-btn-close {
		opacity: 1;
	}
	.memu-btn.nav-open .memu-btn-line {
		background: none;
	}
	.memu-btn.nav-open .memu-btn-line::before {
		transform: translateY(9px) rotate(45deg);
	}
	.memu-btn.nav-open .memu-btn-line::after {
		transform: translateY(-9px) rotate(-45deg);
	}

	.sponsor-list {
		display: flex;
		max-width: 520px;
		margin: 60px auto 0;

		justify-content: center;
	}
	.sponsor-wrap {
		display: flex;

		flex-wrap: wrap;
		justify-content: center;
	}
	.sponsor-wrap + .sponsor-wrap {
		margin-top: 0;
	}
	.sponsor-ttl {
		position: relative;
		font-size: 1.1rem;
		flex-basis: 100%;
		background: none;
		height: 18px;
		z-index: 1;
	}
	.sponsor-ttl::after {
		position: absolute;
		content: "";
		display: block;
		width: 32px;
		top: 0;
		bottom: 0;
		background: #000;
		left: calc(50% - 16px);
		z-index: -1;
	}
	.sponsor-img {
		max-width: 120px;

		flex-basis: 23.47vw;
	}
	.sponsor-img a {
		padding: 0;
	}

/* footer
 ----------------------------------------------------------------- */
	#page_top {
		width: 40px;
		height: 40px;
		right: -41px;
	}
	#page_top.show {
		right: 10px;
	}
	.footer-menu {
		max-width: 675px;
		margin-left: auto;
		margin-right: auto;
		flex-wrap: wrap;
	}

}


/* for sp */
@media screen and (max-width:599px) {
/* layout
 ----------------------------------------------------------------- */
	.inner,
	.inner-s {
		padding: 0 12px;
		padding: 0 3.2vw;
	}
	.inner-s {

	}

/* page共通 section共通
 ----------------------------------------------------------------- */
	.page-ttl {
		font-size: 2.4rem;
		font-size: 6.4vw;
		height: 260px;
		height: 69.33vw;
		align-items: flex-end;
		background-position: top center;
		background-size: contain;
	}
	.page-ttl span {
    padding-top: 0;
    line-height: 1;
        padding-bottom: 8vw;
	}
	.sec-cont {
		padding: 35px 0;
		padding: 9.33vw 0;
	}
	.sec-title {
		font-size: 2.3rem;
		font-size: 6.13vw;
		margin-bottom: 30px;
		margin-bottom: 8vw;
	}
	.sec-title::after {
		width: 30px;
		width: 8vw;
		height: 2px;
		bottom: -9px;
		bottom: -2.4vw;
	}
	.sec-lead {
		font-size: 1.4rem;
		font-size: 3.73vw;
	}

/* footer
 ----------------------------------------------------------------- */
	#page_top {
		bottom: 40px;
	}
	.footer-ttl {
		padding-top: 30px;
		padding-bottom: 15px;
	}
	.footer-menu {
		font-size: 1.2rem;
		margin: 0 auto 10px;
		padding: 0;
		max-width: 248px;
		justify-content: center;
	}
	.footer-lnk {
		margin: 5px 10px;
		margin: 5px 3.73vw;
	}
	.copyright {
		font-size: 1.1rem;
	}

}
