@charset "utf-8";

@media only screen and (max-width: 768px) {
	header div.title {
		min-width: 100% !important;
		padding-top: 50px;
		background: url(../../images/common/mv_bg_sp.jpg) no-repeat center/cover;
		align-items: flex-start;
		min-height: auto;
	}
	header div.title .wrap {
		align-items: flex-start;
		padding-bottom: 67%;
	}
	header div.title .tagline {
		font-size: 19px;
		margin: 30px auto 0;
	}
	header div.title h1 {
		font-size: 28px;
		margin: 0;
		width: 100%;
		margin-top: 155px;
		position: relative;
		z-index: 3;
	}
	header div.title .subtitle {
		font-size: 18px;
	}
	header div.title .info {
		font-size: 16px;
		margin: 10px auto 30px;
	}
	header div.title .info span {
		display: block;
		margin: 6px auto 0;
	}
	header div.title .left_symbol {
		width: 80%;
	    left: 0;
	    top: -70px;
	    bottom: 0;
	    margin: auto;
	    right: 0;
	}
	header div.title .right_symbol {
		display: none;
	}
	header div.title .linkbtn {
	  width: 60%;
	  margin: 10px auto 0;
	  position: relative;
		z-index: 4;
	}
	header div.title .keynote {
		width: 100%;
	    left: 0;
	    margin: auto;
	    bottom: 0;
	}
	header .date_sp {
		width: 47%;
		margin: 10px auto 0;
	}
	header .date_sp img {
		width: 100%;
		height: auto;
	}
	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;*/
	/*}*/
	/* supporter */
	#supporter {
		padding: 20px 0;
	}
	.d-demo__list {
		gap:15px;
	}
	
	.d-demo__list-left {
		animation :infinity-scroll-left 30s infinite linear 0.5s both;
	}
	
	/*.d-demo__item {*/
	/*	width: calc(100vw / 4);*/
	/*	height: 90px;*/
	/*}*/
	/* speaker */
	
	#speaker {
		padding: 40px 0 150px;
		margin-bottom: -100px;
	}
	#speaker .keynote_speaker {
		flex-wrap: wrap;
		gap: 40px;
		/*flex-direction: column-reverse;*/
	}
	#speaker .keynote_speaker li {
		width: 100%;
	}
	#speaker .keynote_speaker li:nth-child(1) {
		margin-top: 0;
	}
	#speaker .keynote_speaker li:nth-child(1) p {
		/*margin-top: 0px;*/
		top: 30%;
	}
	#speaker .keynote_speaker li:nth-child(2) p {
		left: auto;
		right: 0;
		top: 40%;
	}
	#speaker .keynote_speaker li p {
		font-size: 13px;
		top: 327px;
		left: 0;
	}
	#speaker .keynote_speaker li p.name {
		font-size: 20px;
		padding: 7px 18px;
		position: relative;
	    top: 0;
	    left: 0;
	    right: 0;
	    margin: auto;
	    width: 80%;
	    text-align: center;
	    margin-top: -15px;
	}
	#speaker .keynote_speaker li p.name span {
		font-size: 14px;
	}
	#speaker .keynote_speaker li .linkbtn {
		margin: 10px auto 0;
	}
	#speaker .keynote_speaker li .linkbtn a {
	    font-size: 20px;
	    padding: 10px 0px;
	    border-radius: 30px;
	}
	#speaker .keynote_speaker li p.position {
		font-size: 16px;
	}
	
	/* message */
	#message {
		width: 94%;
		padding: 65px 2% 0;
		white-space: normal;
	}
	#message p {
		font-size: 13px;
	}

	/* greeting */
	#greeting {
		width: 90%;
		min-width: 90%;
		margin: 0 auto;
		padding: 40px 0 20px;
	}
	#greeting p {
		font-size: 13px;
		line-height: 1.8;
	}

	/* outline */
	#outline {
		min-width: 100%;
		padding: 0 0 30px;
	}
	#outline .wrap {
		padding: 30px 0;
	}
	#outline table {
		width: 90%;
		font-size: 13px;
	}
	#outline table tr th {
		width: 27%;
		padding: 15px 0 15px 10px;
		font-weight: normal;
	}
	#outline table tr td {
		padding: 15px 0;
		font-weight: normal;
	}
	
	/* access */
	
	#access {
		padding: 0 10px 30px;
		background: var(--white);
	}
	#access h2 {
		font-size: 20px;
		text-align: left;
		margin: 0 0 30px;
	}
	.access_inner {
		width: 100%;
	}
	.access_inner p {
		font-size: 13px;
	}
	.access_inner ul li {
		font-size: 13px;
		width: 100%;
	}
	#access .map {
		width: 100%;
		border-radius: 0px;
		padding: 15px;
		margin: 20px 0 0;
	}
	#access .map iframe {
		height: 230px;
	}

	/* topics */
	#topics {
	    padding-bottom: 60px;
	  }
	
	  #topics::before {
	    clip-path: polygon(0 var(--diagonal-depth-sp, var(--diagonal-depth)), 100% 0, 100% 100%, 0 100%);
	  }
	
	  .overflow-piece {
	    margin-top: -30px; 
	  }
	#topics .wrap .topic_parts.parts01 {
	  width: 30%;
	  top: -100px;
	  right: 0;
	}
	#topics .wrap {
		padding: 20px auto;
		width: 95%;
		padding-top: 45px;
	}
	#topics .head_txt {
	  font-size: 13px;
	  margin: 10px 0 20px;
	  text-align: left;
	}
	ul.topics {
		gap: 20px;
	}
	ul.topics li {
		width: 100%;
		padding-bottom: 60px;
		border-bottom: 1px solid #778eb8;
	}
	ul.topics li:last-child {
		border-bottom: none;
	}
	ul.topics li .description {
		font-size: 13px;
	}
	ul.topics li .description h3 {
		font-size: 16px;
		margin-bottom: 15px;
	}
	ul.topics li .description p {
		font-size: 13px;
	}
	ul.topics li a:after {
		width: 75%;
		height: 41px;
	    font-size: 16px;
	    border-radius: 30px;
	    padding: 10px 0 0;
	    bottom: 15px;
	}
	#topics .wrap .topic_parts.parts02,
	#topics .wrap .topic_parts.parts03 {
		display: none;
	}
	ul.topics li a.topics-link {
		bottom: 10px;
	}
	/* voice */
	#voice {
		padding: 80px 0 40px;
	}
	#voice::before {
	  clip-path: polygon(0 var(--diagonal-depth-sp, var(--diagonal-depth)), 100% 0, 100% 100%, 0 100%);
	  background: url(../../images/top/voice_bg_sp.png) no-repeat center/cover;
	}

	#voice h2, #voice h2 span {
	  filter: none;
	}
	#voice h2 span {
	  font-size: 38px;
	  color: #009dfe;
	}
	#voice p {
	  font-size: 20px;
	}
	#voice p span.manzoku {
		width: 47%;
	  margin: 0 auto;
	  display: block;
	  font-size: 40px;
	}
	.voice_img {
	  margin-bottom: 0;
	}
	
	/* 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;
	}
	
	/* partners */
	#partners {
		padding: 40px 0px;
	}
	#partners h2 {
	  width: 100%;
	  margin: 0 auto 20px;
	  max-width: 90%;
	}
	
	#partners h3 {
		padding: 8px 0;
		margin: 0 0 20px;
		display: flex;
	    justify-content: center;
	    align-items: center;
	}
	#partners h3 span {
		font-size: 16px;
		font-weight: bold;
		margin: 0;
	}
	#partners ul.sponsor_list {
		gap: 10px;
		margin: 0 0 40px;
	}
	#partners ul.sponsor_list li {
		width: 33%;
		padding: 15px;
		height: 90px;
	}
	/* fase series */
	
	#fastseries {
		background: url(../../images/top/fastseries_bg_sp.png) no-repeat center/cover;
		padding: 30px 0;
	}
	#fastseries h3 {
		font-size: 16px;
		margin: 0 0 10px;
	}
	#fastseries .logo {
		width: 60%;
		margin: 20px auto;
	}
	#fastseries p {
		font-size: 13px;
	}
	
	
	/* faq */
	#faq {
		padding: 0;
	}
	#faq .wrap {
		padding: 30px 10px;
		border-radius: 0px;
	}
	#faq h2 {
		font-size: 22px;
	}
	
	.faq_list {
	  gap: 8px;
	}
	
	.faq_item .question {
	  padding: 10px 30px;
	}
	
	.faq_item .question p {
	  font-size: 16px;
	}
	
	.faq_item .question .icon {
	  right: 24px;
	  width: 20px;
	  height: 20px;
	}

	.faq_item .answer-content {
	  gap: 8px;
	  border-radius: 24px;
	  padding: 15px 20px;
	  margin-top: 8px;
	  display: block;
	}
	
	.faq_item .a-icon {
	  flex-shrink: 0;
	  width: 30px;
	  height: 30px;
	  font-size: 22px;
	  margin: 0 auto;
	}
	
	.faq_item .answer p {
	  font-size: 13px;
	}
	
	#faq .other_btn {
		width: 55%;
		margin: 30px auto 0;
	}
	#faq .other_btn a {
		padding: 15px 0;
		font-size: 16px;
	}
	#faq .other_txt {
		font-size: 11px;
	}

	/* register */
	div.register {
		padding: 50px 0;
	}
	div.register a.box-button {
		width: 60%;
		font-size: 22px;
		padding: 12px 0;
	}
}
@media only screen and (max-width: 480px) {
	header div.title .wrap {
		padding-bottom: 240px;
	}
	#topics .wrap .topic_parts.parts01 {
	  width: 45%;
	  top: -100px;
	  right: 0;
	}
	#voice {
		padding: 40px 0;
	}
}
@media (max-width: 600px) {
	#partners ul.sponsor_list li {
		width: 40%;
		padding: 15px;
		height: 90px;
	}
}