@charset "utf-8";

/*~~*/

header {
	background: var(--bg-exhibitors);
	.logo::before,
	.menu,
	.deco::before {
		background: var(--bg-exhibitors);
	}
	.menu li.exhibitors {
		background: #000;
		a {
			color: #fff;
		}
	}
}

/*~~*/

main {
	.head {
		.name {
			padding-bottom: 5px;
			margin-bottom: 5px;
			font-size: var(--fs-h1);
			line-height: var(--lh-h1);
			font-weight: 500;
			border-bottom: 1px solid var(--bd-base);
		}
		.ename {
			font-size: var(--fs-h2);
			line-height: var(--lh-h2);
			color: #666;
		}
		.summary {
			margin-top: 5px;
			font-size: var(--fs-lead);
			line-height: var(--lh-lead);
		}
	}

	.body {
		margin-top: 20px;
	}

	#profile {
		.about {
			dt {
				margin-top: 5px;
			}
			dt:first-child {
				margin-top: 0;
			}
			dt::before {
				content: "●";
				color: var(--cl-bullet);
			}
			dd {
				padding-left: 1.4rem;
				text-align: justify;
				/*
				text-align: justify;
				text-justify: inter-ideograph;
				*/
			}
		}

		.links div {
			margin-top: 20px;
			dt {
				padding: 7px;
				background-color: var(--bg-footer);
				border-radius: 5px;
				border-left: 1.2rem solid var(--cl-bullet);
				font-size: 1.2rem;
				line-height: 1;
				color: #fff;
			}
			dd {
				text-align: center;
			}
			dd.hp {
				margin-top: 5px;
				a {
					display: block;
					padding: 3px;
					font-size: 1.4rem;
				}
			}
			dd.hp:hover {
				background-color: var(--bg-base);
				border-radius: 5px;
			}
			dd.sns {
				ul {
					margin-top: 10px;
					display: flex;
					justify-content: center;
					gap: 10px;
				}
				.icon {
					width: 30px;
					height: 30px;
					display: flex;
					align-items: center;
					justify-content: center;
					background-color: #000;
					border-radius: 50%;
					font-size: 16px;
					color: #fff;
				}
				.icon-facebook2 { background-color: #1877F2; }
				.icon-youtube { background-color: #FF0000; }
				.icon-x { background-color: #000; }
				.icon-instagram { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); }
			}
		}
		.links div.sub {
			margin-top: 15px;
			dt {
				padding: 5px;
				background-color: var(--bg-base);
				border-radius: 5px;
				border-left: none;
				/*
				border-left: 1.2rem solid var(--bg-footer);
				*/
				font-size: 1.2rem;
				line-height: 1;
				color: #000;
			}
			dt:before {
				content: "●";
				margin-right: 2px;
				color: var(--bg-footer);
			}
		}
		.links div.solid {
			border-top: 1px solid var(--bd-base);
			dt {
				display: none;
			}
		}
		.links div.dotted {
			border-top: 1px dotted var(--bd-base);
			dt {
				display: none;
			}
		}
	}

	:is(#ichioshi, #boothmap, #timetable) {
		background: color(from var(--bg-base) srgb r g b / 80%);
		border-radius: 10px;
		h3 .icon { color: var(--cl-icon); }
		> div { padding: 0 15px 15px; }
	}

	#ichioshi > div,
	#boothmap > div,
	#timetable > div { display: none; }

	#ichioshi + #boothmap,
	#ichioshi + #timetable,
	#boothmap + #timetable { margin-top: 15px; }

	:is(#ichioshi, #boothmap, #timetable) .icon-circle-down {
		display: inline-block;
		transition: transform .3s ease;
	}
	:is(#ichioshi, #boothmap, #timetable) .icon-circle-down.open {
		transform: rotate(180deg);
	}

	:is(#ichioshi, #boothmap, #timetable) h3 {
		padding: 15px;
		display: flex;
		justify-content: space-between;
		font-size: 2rem;
		line-height: 1;
		font-weight: 500;
		border: 1px solid #ccc;
		border-radius: 10px;
		.icon { margin-right: 5px; }
		+ div { padding-top: 15px; }
	}
	:is(#ichioshi, #boothmap, #timetable) h3:hover,
	:is(#ichioshi, #boothmap, #timetable) h3[aria-expanded="true"] {
		cursor: pointer;
		background-color: var(--bg-exhibitors);
		color: #fff;
		.icon { color: #fff; }
		transition: background-color .3s, color .3s;
	}

	#ichioshi {
		grid-area: ichioshi;
		.name {
			margin: 10px 0;
			padding-bottom: 10px;
			font-size: var(--fs-head);
			font-weight: 500;
			border-bottom: 1px solid #000;
		}
		.head {
			margin-top: 10px;
			font-size: var(--fs-head);
			line-height: var(--lh-head);
		}
		.text {
			margin-top: 10px;
			font-size: var(--fs-body);
			text-align: justify;
			text-justify: inter-ideograph;
		}
	}

	#boothmap {
		grid-area: boothmap;

		#map-6号館A, #map-6号館B, #map-3号館, #map-4号館 {
			margin: 0 auto;
			svg {
				width: 100%;
			}
		}

		#booth {
			display: none;
		}

		#floor3号館 rect {
			fill: var(--bg-fmap3);
		}
		#floor4号館 rect {
			fill: var(--bg-fmap4);
		}
		#floor6号館A rect {
			fill: var(--bg-fmap6a);
		}
		#floor6号館B rect {
			fill: var(--bg-fmap6b);
		}

		g.active:not([id$="-frame"]) > * {
			fill: #fdd000;
			stroke: #333 !important;
			stroke-width: 0.5px;
			animation: colorFade 1.0s infinite;
		}
		g[id$="-frame"].active > * {
			fill: transparent;
			stroke: var(--cl-bullet) !important;
			animation: zoomOutFade 1.0s infinite;
			transform-origin: center;
			transform-box: fill-box;
			position: absolute;
			z-index:1000;
		}

	}

	#timetable {
		grid-area: timetable;
		dt {
			padding: 7px 10px;
			font-size: 1.6rem;
			line-height: 1;
			color: #fff;
			background-color: var(--bg-exhibitors);
			border-radius: 5px 5px 0 0;
		}
		table {
			width: 100%;
			border-collapse: separate;
			border-spacing: 0;
		}
		th {
			padding: 5px 10px;
			border-right: 1px solid #000;
			background-color: var(--bg-exhibitors-light);
			font-size: 1.2rem;
			text-align: center;
			&:last-of-type { border-right: 0; }
		}
		tr:nth-child(even) { background-color: var(--bg-base); }
		tr:nth-child(odd) { background-color: #fff; }
		td {
			padding: 7px 10px;
			font-size: 1.2rem;
			color: #000;
			border-right: 1px solid #000;
			border-bottom: 1px solid #000;
			&:last-of-type { border-right: 0; }
			&:first-of-type { white-space: nowrap; }
		}
		.note {
			margin-top: 5px;
			font-size: 1.2rem;
			line-height: 130%;
		}
		.event + .event { margin-top: 20px; }
	}

	#followpage {
		margin-top: 15px;
		padding: 15px;
		.fpart { margin: 0; }
		.fwrap {
			padding: 0;
			background-color: transparent;
			.name {
				width: 100%;
				min-width: 0;
				margin-right: 5px;
				span {
					display: block;
					overflow: hidden;
					white-space: nowrap;
					text-overflow: ellipsis;
					max-width: 100%;
				}
			}
			form {
				border-radius: 5px;
				background: var(--bg-base);
				border: 1px solid #999;
			}
		}
		div.fwrap {
			background: var(--bg-exhibitors);
			color: #fff;
			border-radius: 5px;
			a:hover { border-radius: 5px; }
		}
		div.fwrap span:hover { color: #fff; }
		.awrap:hover {
			background-color: #000;
			color: #fff;
		}
		.awrap a:hover { background: transparent; }
	}

	#followpage .followpage-head h1 span::before {
		content: "12-BOOKMARK";
	}
	#followpage .followpage-head .nt { display: none; }
}

@keyframes colorFade {
	0% {
		fill: #fdd000;
	}
	70% {
		fill: #fdd000;
	}
	100% {
		fill: #ff0000;
	}
}

@keyframes zoomOutFade {
	0% {
		transform: scale(1);
		opacity: 1;
	}
	70% {
		opacity: 1;
	}
	100% {
		transform: scale(1.5);
		opacity: 0;
	}
}

/*SP*/
@media screen and (max-width: 768px) {
/*~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~**********/
	main > .wrap {
		padding: 15px;
		.body {
			display: flex;
			flex-direction: column;
			#profile { margin-top: 15px; order: 4; }
			#ichioshi { order: 1; }
			#boothmap { order: 2; }
			#timetable {
				order: 3;
				dd { overflow-x: auto; display: block; }
				table { min-width: 500px; }
			}
		}
	}
	#followpage { background-color: var(--bg-base); }
	footer { margin-top: 0; }
/*~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~**********/
}

/*PC*/
@media screen and (min-width: 769px) {
/*~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~**********/
	header .menu li.exhibitors { background: #000; }
	main {
		padding-top: 20px;
		.head .name { padding-bottom: 5px; margin-bottom: 5px; }
		.body {
			display: flex;
			margin-top: 30px;
			#profile {
				width: 280px;
				padding-right: 20px;
				border-right: 1px solid var(--bd-base);
			}
			#profile + div { margin-left: 20px; flex: 1; }
			#ichioshi h3,
			#boothmap h3,
			#timetable h3 {
				font-size: 2.8rem;
				.btn { display: none; }
			}
			#ichioshi > div > span {
				display: flex;
				align-items: flex-start;
				gap: 15px;
				img { width: 50%; }
			}
			#timetable {
				dd { overflow-x: auto; }
				table {
					width: 100%;
					min-width: 500px;
					border-collapse: separate;
					border-spacing: 0;
				}
				th, td { font-size: 1.4rem; }
			}
		}
		#followpage { margin-top: 50px; padding: 0; }
	}
/*~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~*********~**********/
}