@charset "utf-8";

@media only screen and (max-width: 768px) {
	header div.title {
		min-width: 100% !important;
		padding-top: 50px;
		background: url(../../images/common/mainvisual_sp.png)no-repeat center bottom/cover;
		min-height: 540px;
	}
	header div.title .tagline {
		font-size: 19px;
		margin: 30px auto 0;
	}
	header div.title h1 {
		width: 100%;
		max-width: 75%;
	}
	header div.title .top_title {
		font-size: 24px;
		font-weight: bold;
	}
	header div.title .top_title span {
		font-size: 13px;
		font-weight: bold;
	}
	.top_cv_btn {
		width: 80%;
		margin: 0 auto 10px;
	}
	.top_cv_btn a {
		font-size: 18px;
		padding: 15px 10px;
	}
	.calendar_btn {
		flex-wrap: wrap;
		gap: 10px;
	}
	.calendar_btn li {
		width: 67%;
	}
	.calendar_btn li a {
		font-size: 13px;
		padding: 10px 30px 10px 10px;
	}
	.calendar_btn li a:after {
		content: "";
		width: 15px;
		height: 15px;
		right: 10px;
	}
	.top_title_text01 {
		font-size: 13px;
	}
	.top_place {
		flex-wrap: wrap;
	}
	.top_place li {
		width: 100%;
	}
	.top_place li:first-child p{
		font-size: 18px;
		letter-spacing: 0.1rem;
	}
	.top_place li:first-child p span {
		font-size: 30px;
	}
	.top_place li:last-child p {
		font-size: 16px;
	}


	h3 {
		font-size: 22px;
		margin-bottom: 40px;
	}
	h3:before {
		top: 30px;
		width: 140px;
	}
	h3 > span {
		font-size: 14px;
		margin-top: 20px;
	}

	.all-wrap {
		margin-top: 0;
		padding-top: 0;
	}

	/* for fixed nav */
	#greeting::before,
	#outline::before,
	#topics::before,
	#live::before,
	#faq::before {
		height: 0;
		margin-top: 0;
	}

	/* message */
	#message {
		width: 94%;
		padding: 65px 2% 0;
		white-space: normal;
	}
	#message p {
		font-size: 13px;
	}

	/* greeting */
	#greeting {
		width: 100%;
		min-width: 100%;
		margin: 0 auto;
		padding: 40px 5% 20px;
		background: url(../../images/common/greeting_bg_sp.jpg)no-repeat center/cover;
	}
	#greeting p {
		font-size: 13px;
		line-height: 1.8;
	}
	#greeting .movie iframe {
		height: 240px;
	}
	/* speaker */
	#speaker {
		width: 100%;
		min-width: 100%;
		padding: 40px 0;
	}
	#speaker h2 {
		margin: 30px 0;
	}
	#speaker h3 {
		font-family: "AribauGrotesk",sans-serif;
		font-size: 22px;
		margin: 20px 0 40px;
		font-weight: 400;
	}
	#speaker ul.speaker_list {
		gap: 20px 10px;
	}
	#speaker ul.speaker_list:first-of-type {
		gap: 20px 10px;
	}
	#speaker ul.speaker_list li {
		width: 45%;
	}
	#speaker ul.speaker_list li .speaker_thumbnail {
		margin: 0 0 10px;
	}
	#speaker ul.speaker_list li p.name {
		font-size: 16px;
	}
	#speaker ul.speaker_list li p.name span {
		font-size: 13px;
	}
	#speaker ul.speaker_list li p.position {
		font-size: 13px;
	}

	/* outline */
	#outline {
		min-width: 100%;
		padding: 40px 0;
	}
	#outline .wrap {
		width: 94%;
		padding: 40px 0 30px;
		flex-wrap: wrap;
		justify-content: center;
	}
	#outline .txt {
		width: 95%;
	}
	#outline table {
		width: 100%;
		margin: 0 auto 36px;
	}
	#outline table tr th {
		font-size: 13px;
	}
	#outline table tr td {
		font-size: 14px;
	}
	#outline table tr th {
		width: 20%;
		min-width: 62px;
		text-align: left;
	}
	#outline table tr td {
		padding: 8px 0;
	}
	#outline table tr td div {
		border-left: 2px solid #c1d42f;
		padding: 0 10px;
	}
	#outline table tr td div p.address {
		font-size: 10px;
		padding: 0;
		margin: 12px 0 0 0;
	}
	#outline .map {
		width: 95%;
	}
	#outline .map iframe {
		width: 100%;
		border-radius: 20px;
	}
	#outline .wrap.faq {
		display: block;
	}

	/* topics */
	#topics {
		padding: 0 10px;
	}
	#topics .wrap {
		padding: 40px 0;
	}
	ul.topics li {
		min-height: auto;
	}
	ul.topics li .description {
		font-size: 13px;
	}

	/* live */
	#program {
		padding: 40px 10px;
		min-width: 90%;
	}
	#program .wrap .title-container {
		padding: 40px 0 40px;
		min-width: 90%;
	}

	/* live tab-menu */
	#program .tab-menu-wrapper {
		overflow-x: auto;
	}
	#program .tab-menu-container {
		margin: 0;
		justify-content: flex-start;
		overflow: visible;
		width: 100%;
	}
	#program .tab-menu-container li {
		min-width: 40%;
		flex-shrink: 0;
		flex-grow: 2;
	}
	#program .tab-menu-container li a:hover {
		border: 2px solid #fff;
	}
	#program .tab-menu-container li.selected a {
		border: 2px solid #555;
	}
	/* expo */
	#expo{
		min-width: 100%;
		width: 100%;
		padding: 40px 0;
	}
	#expo .wrap {
		width: 95%;
	}
	#expo h2 {
		margin: 0 0 40px;
	}
	#expo p {
		font-size: 13px;
	}
	.d-demo__item {
		width: calc(100vw / 3);
		height: 95px;
	}
	
	/* sponsor */
	#sponsor{
		min-width: 100%;
		width: 100%;
		background: url(../../images/common/sponsor_bg_sp.jpg) no-repeat center /cover;
	}
	#sponsor h3 {
		max-width: 80%;
		font-size: 22px;
	}
	#sponsor h3:before {
		content: "";
		width: 50px;
		height: 1px;
		bottom: 0;
		top: 0;
		margin: auto;
		background: var(--purple);
	}
	#sponsor h3:after{
		content: "";
		width: 50px;
		height: 1px;
		bottom: 0;
		top: 0;
		margin: auto;
		background: var(--purple);
	}
	#sponsor ul.sponsor_list {
		gap: 40px;
		margin: 30px 0;
	}
	#sponsor ul.sponsor_list.platinum {
		gap: 60px 30px;
		padding: 0 20px;
	}
	#sponsor ul.sponsor_list.silver {
		padding: 0 20px;
	}
	#sponsor ul.sponsor_list.bronze {
		padding: 0 20px;
		gap: 40px;
	}
	#sponsor ul.sponsor_list.media {
		padding: 0 20px;
		gap: 40px;
	}
	#sponsor ul.sponsor_list.platinum li {
		width: 50%;
	}
	#sponsor ul.sponsor_list.gold li {
		width: 32%;
	}
	#sponsor ul.sponsor_list.silver {
		gap: 80px 20px;
	}
	#sponsor ul.sponsor_list.silver li {
		width: 40%;
		text-align: center;
	}
	#sponsor ul.sponsor_list.bronze li {
		width: 23%;
	}
	#sponsor ul.sponsor_list.media li {
		width: 23%;
	}
	
	/* faq */
	#faq {
		margin: 20px 0 0;
	}
	#faq h2 {
		font-size: 22px;
		margin: 0 0 40px;
	}
	#faq .wrap {
		width: 94%;
		padding: 40px 0 30px;
	}
	#faq .faq_list {
		padding: 0;
		width: 95%;
		margin: 0 auto;
	}
	#faq .faq_list .faq_item {
		padding:0 5px;
	}
	#faq .faq_list .faq_item p {
		font-size: 13px;
	}
	#faq .faq_list .faq_item ul li {
		padding-left: 18px;
		font-size: 13px;
	}

	/* register */
	div.register {
		padding: 50px 0;
	}
	div.register a.box-button {
		width: 60%;
		font-size: 22px;
		padding: 12px 0;
	}
}
