@charset "utf-8";
@import url("https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@400;500;600;700&display=swap");

/*~~*/

html {
	font-size: 62.5%;
}

body {
	font-size: 1.4rem;
	font-family: 'M PLUS 1p', sans-serif;
	font-weight: 400;
	line-height: 160%;
	color: #000000;
	overflow-wrap: anywhere;
}

/*~~*/

header {
	background: var(--bg-header);
	.logo {
		width: 100%;
		padding: 15px;
		svg {
			fill: var(--cl-header);
		}
	}
	.pankuzu {
		color: var(--cl-header);
	}
	.pankuzu a {
		color: var(--cl-header);
	}
}

/*~~*/

main {
	.head.-menu {

	}
	.head.-cnte {
		padding: 15px;
		background: #000;
		display: grid;
		gap: 0;
		grid-template-columns: 50% 50%;
		grid-template-rows: auto auto;
		grid-template-areas:
			"left-top right-top"
			"btm btm";
		h1 {
			grid-area: right-top;
			display: flex;
			align-items: end;
		}
		h2 {
			grid-area: btm;
			margin-top: 10px;
			font-size: 1.4rem;
			color: #fff;
		}
		p {
			grid-area: left-top;
			display: flex;
			font-size: 12px;
			line-height: 1;
			color: #fff;
			.row {
				display: flex;
				align-items: flex-end;
			}
		}
	}
	.head.-cnte.-page {
		h2 {
			font-size: 2.8rem;
			line-height: 110%;
		}
	}
}

/*~~*/

footer {
	margin-top: 20px;
	#footername {
		fill: var(--bg-footer);
	}
	.footer {
		padding: 20px;
		background: var(--bg-footer);
		font-size: var(--fs-footer);
		line-height: var(--lh-footer);
		color: var(--cl-footer);
	}
	.logo svg * {
		fill: var(--cl-footer);
	}
	.nav li:before {
		margin-right: 5px;
		content: "▶";
		color: var(--cl-footer-icon);
	}
	.nav li a {
		color: var(--cl-footer);
	}
	.info > div {
		margin-top: 10px;
	}
	.info > div:first-child {
		margin-top: 0px;
	}
	.info dd {
		margin-left: calc(var(--fs-footer)*1.15);
	}
	.info .icon {
		margin-right: 2px;
		font-size: calc(var(--fs-footer)*1.15);
		line-height: var(--ln-footer);
		color: var(--cl-footer-icon);
	}
	.copyright {
		margin-top: 20px;
		font-size: var(--fs-footer);
		line-height: 120%;
	}
	.sns ul {
		display: flex;
	}
	.sns .icon {
		font-size: 35px;
		color: #fff;
	}
}

/*~~*/

.awrap {
	position: relative;
}

.awrap a {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 100;
	display: block;
}

/*~~*/

.tx-head {
	font: var(--tx-head); text-align: justify; text-justify: inter-ideograph;
}

.tx-lead {
	font: var(--tx-lead); line-height: 145%; text-align: justify; text-justify: inter-ideograph;
}

.tx-body {
	font: var(--tx-body); line-height: 145%; text-align: justify; text-justify: inter-ideograph;
}

.tx-note {
	font: var(--tx-note); line-height: 135%; text-align: justify; text-justify: inter-ideograph;
}

.tx-capt {
	font: var(--tx-capt); line-height: 130%; text-align: justify; text-justify: inter-ideograph;
}

/*SP*/
@media screen and (max-width: 768px) {
/*~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~**********/

.-pc {
	display: none;
}

header {
	.logo {
		width: 50%;
		padding: 15px 0 15px 15px;
	}
	#nav-btn {
		position: absolute;
		top: 0px;
		right: 15px;
		padding: 10px;
		background-color: #000;
		border: none;
		border-radius: 0 0 5px 5px ;
		cursor: pointer;
		z-index: 1000;
		.bar {
			position: relative;
			display: block;
			width: 35px;
			height: 2px;
			background: #fff;
			border-radius: 2px;
			transition: transform .25s ease, opacity .2s ease, width .2s ease;
		}
		.bar + .bar { margin-top: 7px; }
		.bar:nth-child(1),
		.bar:nth-child(3) { transform-origin: 50% 50%; }
		&[aria-expanded="true"] {
			.bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
			.bar:nth-child(2) { opacity: 0; transform: scaleX(.5); }
			.bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
		}
	}
	.menu {
		nav {
			max-height: 0;
			overflow: hidden;
			background: #f5f5f5;
			transition: max-height .6s ease;
		}
		nav.open {
			max-height: 100vh;
		}
		nav li {
			border-top: 1px solid #ccc;
		}
		nav li a {
			padding: 10px 0 10px 5px;
			display: block;
		}
		nav li.admission {
			border-left: 10px solid var(--bg-admission);
		}
		nav li.access {
			border-left: 10px solid var(--bg-access);
		}
		nav li.events {
			border-left: 10px solid var(--bg-events);
		}
		nav li.exhibitors {
			border-left: 10px solid var(--bg-exhibitors);
		}
		nav li.floormap {
			border-left: 10px solid var(--bg-floormap);
		}
		nav li:nth-of-type(odd) {
			display: none;
		}
	}
	.deco {
		display: none;
	}
	.pankuzu {
		padding: 5px 15px;
		background: var(--bg-header);
	}
}
h1.pname {
	padding: 15px;
	display: flex;
	align-items: end;
	gap: 10px;
	background: #000;
	img {
		width: calc((100% - 10px) / 2);
	}
}

main {
	.head.-cnte {
		h2 {
			border-top: 1px solid #fff;
			margin-top: 15px;
			padding-top: 15px;
		}
		p {
			display: flex;
			flex-direction: column;
			justify-content: flex-end;
			margin-right: 16px;
			.row {
				display: flex;
				justify-content: space-between;
			}
		}
	}
}

footer {
	.name {
		display: none;
	}
	.footer .wrap {
		display: grid;
		grid-template-columns: calc(100% - 35px) 35px repeat(3, auto);
		grid-template-rows: repeat(5, auto);
		grid-column-gap: 0px;
		grid-row-gap: 0px;
		.logo {
			grid-area: 1 / 1 / 2 / 3;
			text-align: center;
			svg {
				width: 50%;
			}
		}
		.sns {
			grid-area: 2 / 1 / 3 / 3;
			margin-top: 15px;
			ul {
				margin: 0 auto;
				justify-content: center;
				gap: 20px;
			}
		}
		.nav {
			grid-area: 3 / 1 / 4 / 3;
			margin: 15px 0;
			padding: 15px 0;
			border-top: 1px solid #ccc;
			border-bottom: 1px solid #ccc;
		}
		.info {
			grid-area: 4 / 1 / 5 / 3;
		}
		.copyright {
			grid-area: 5 / 1 / 6 / 2;
		}
		.top {
			grid-area: 5 / 2 / 6 / 3;
			margin-bottom: -20px;
			a {
				background: var(--cl-footer-icon);
				border-radius: 35px 35px 0 0;
				display: flex;
				align-items: center;
				height: 100%;
				span {
					margin-left: 5px;
					font-size: 24px;
					color: #fff;
				}
			}
		}
	}
}

/*~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~**********/
}

/*PC*/
@media screen and (min-width: 769px) {
/*~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~**********/

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

/**/

.-sp {
	display: none;
}

.wrap {
	min-width: 1000px;
	width: 70%;
	margin: 0 auto;
}

/**/

#nav-btn {
	display: none;
}

/**/

header {
	margin-top: 20px;
	.wrap {
		display: grid;
		grid-template-columns: 280px 1fr 35px;
		grid-template-rows: 1fr 1fr;
		grid-template-areas: "left center-t right"
		                     "left center-b right";
	}
	.logo {
		grid-area: left;
		padding: 15px 15px 15px 0;
		background: #fff;
		position: relative;
		z-index: 0;
		svg {
			position: relative;
			z-index: 1;
		}
	}
	.logo:before {
		position: absolute;
		content: "";
		inset: 0;
		width: 100%;
		height: 100%; 
		background: var(--bg-header);
		border-radius: 0 20px 0 0;
		z-index: 0;
	}

	.menu {
		grid-area: center-t;
		display: flex;
		flex: 1;
		flex-direction: column;
		background: var(--bg-header);
		nav {
			background: #fff;
			border-radius: 0 0 10px 10px;
			ul {
				display: flex;
				border-bottom: 10px solid #000;
			}
			li {
				margin-bottom: -10px;
				width: calc((100% - 60px) / 5);
				border-bottom: 10px solid #000;
				border-radius: 10px 10px 0 0;
				background: #f5f5f5;
				font-size: var(--fs-body);
				text-align: center;
				a {
					padding: 5px;
					display: block;
					width: 100%;
					height: 100%;
				}
			}
			li:nth-child(odd) {
				width: 10px;
				background: transparent;
			}
			.admission {
				border-color: var(--bg-admission);
			}
			.admission:hover {
				background: var(--bg-admission);
				a {
					color: #fff;
				}
			}
			.access {
				border-color: var(--bg-access);
			}
			.access:hover {
				background: var(--bg-access);
				a {
					color: #fff;
				}
			}
			.events {
				border-color: var(--bg-events);
			}
			.events:hover {
				background: var(--bg-events);
				a {
					color: #fff;
				}
			}
			.exhibitors {
				border-color: var(--bg-exhibitors);
			}
			.exhibitors:hover {
				background: var(--bg-exhibitors);
				a {
					color: #fff;
				}
			}
			.floormap {
				border-color: var(--bg-floormap);
			}
			.floormap:hover {
				background: var(--bg-floormap);
				a {
					color: #fff;
				}
			}
			/*ENGLISH*/
			.enoverview {
				border-color: var(--bg-en);
			}
			.enoverview:hover {
				background: var(--bg-en);
				a {
					color: #fff;
				}
			}
			.enapplication {
				border-color: var(--bg-en);
			}
			.enapplication:hover {
				background: var(--bg-en);
				a {
					color: #fff;
				}
			}
			.enschedule {
				border-color: var(--bg-en);
			}
			.enschedule:hover {
				background: var(--bg-en);
				a {
					color: #fff;
				}
			}
			.enaccess {
				border-color: var(--bg-access);
			}
			.enaccess:hover {
				background: var(--bg-access);
				a {
					color: #fff;
				}
			}
			.japanese {
				border-color: var(--bg-jp);
			}
			.japanese:hover {
				background: var(--bg-jp);
				a {
					color: #fff;
				}
			}
		}
	}
	.deco {
		grid-area: right;
		width: 35px;
		background: #fff;
		position: relative;
		z-index: 0;
	}
	.deco::before {
		position: absolute;
		content: "";
		inset: 0;
		width: 100%;
		height: 100%; 
		background: var(--bg-header);
		border-radius: 20px 0 0 0;
		z-index: 0;
	}
	.pankuzu {
		grid-area: center-b;
		display: flex;
		align-items: end;
		padding-bottom: 15px;
	}
}

/**/

header + main {
	border-top: 5px solid #000;
}

/**/

main {
	margin-top: 3px;
	margin-bottom: -25px;
	padding-bottom: 100px;
	flex: 1;
	background-image: url("../img/fshow2026-bgimg-page.jpg");
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100% auto;
	.home {
		border-top: none;
	}
	h1.pname {
		display: flex;
		flex-direction: column;
		width: 280px;
		padding: 15px;
		background: #000;
		border-radius: 10px 0 0 10px;
		.jp {
			margin-top: auto;
		}
	}

	.head.-cnte {
		margin: 0 -15px;
		border-radius: 0 0 15px 15px;
		display: grid;
		grid-template-columns: 280px minmax(0, 1fr);
		grid-template-rows: auto auto;
		grid-template-areas:
			"left right-top"
			"left right-btm";
		gap: 0;
		h1 {
			grid-area: left;
			padding-right: 15px;
		}
		h2 {
			grid-area: right-top;
			font-size: 1.8rem;
		}
		p {
			justify-content: right;
			font-size: 16px;
			grid-area: right-btm;
			gap: 15px;
			padding-bottom: 5px;
			.space {
				flex: 1;
				border-bottom: 1px solid #fff;
			}
			.row {
				gap: 10px;
			}
		}
	}
	.head.-cnte.-page {
		h2 {
			font-size: 4.2rem;
			line-height: 110%;
		}
	}

	.head.-menu {
		display: flex;
		background: var(--bg-base);
		border-radius: 10px;
		.label{
			width: 150px;
			padding: 15px 0 15px 15px;
			display: flex;
			align-items: flex-end;
		}
		.search {
			form {
				margin-top: 20px;
			}
		}
	}

}

/**/

footer {
	margin-top: auto;
	z-index: 100;
	.name {
		/*margin-bottom: -3px;*/
		transform: translateY(3px);
	}
	.footer {
		padding: 20px 0 0;
		.wrap {
			display: grid;
			grid-template-columns: 180px calc(100% - 215px) 35px repeat(2, 1fr);
			grid-template-rows: repeat(3, auto) repeat(2, 1fr);
			grid-column-gap: 0px;
			grid-row-gap: 0px;
		}
		.logo {
			grid-area: 1 / 1 / 2 / 3;
			padding-bottom: 15px;
			svg {
				width: 180px;
			}
		}
		.nav {
			grid-area: 2 / 1 / 3 / 2;
			li {
				margin-top: 5px;
			}
			li:first-child {
				margin-top: 0px;
			}
		}
		.info {
			grid-area: 2 / 2 / 3 / 3;
			div {
				display: flex;
			}
		}
		.sns {
			grid-area: 1 / 3 / 4 / 4;
			ul {
				display: flex;
				flex-direction: column;
				justify-content: space-between;
				height: 100%;
			}
			.icon {
				font-size: 35px;
			}
		}
		.copyright {
			padding: 20px 0;
			grid-area: 3 / 1 / 4 / 3;
		}
		.top {
			background: var(--cl-footer-icon);
			border-radius: 35px 35px 0 0;
			.icon {
				display: inline-block;
				padding: 5px 0 15px;
			}
		}
	}
}

/*~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~**********/
}