@charset "utf-8";

@media only screen and (max-width: 768px) {
	header div.title {
		min-width: 100% !important;
		padding-top: 60px;
	}
	header div.title .tagline {
		font-size: 19px;
		margin: 30px auto 0;
	}
	header div.title h1 {
		font-size: 28px;
		margin: 0;
	}
	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 .top_btn {
	    width: 90%;
	    margin: -20px auto 40px;
	}
	h3 {
		font-size: 16px;
		margin-bottom: 40px;
	}
	h3:before {
		top: 30px;
		width: 140px;
	}
	h3 > span {
		font-size: 14px;
		margin-top: 20px;
	}

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

	/* 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 0 20px;
	}
	#greeting .wrap {
		width: 85%;
	}
	#greeting h2 {
		margin: 0 0 30px;
	}
	#greeting h3 {
	    margin-bottom: 15px;
	    font-size: 18px;
	}
	#greeting p {
		font-size: 13px;
		line-height: 1.8;
	}
	#greeting { min-width: 0; }
	.greeting-content {
		padding-left: 0;
		padding-bottom: 15px;
		min-height: 0;
	}
	.greeting-content::before {
		bottom: 4%;
        left: -10%;
		width: 240px;
		height: 280px;
		transform: translateX(-50%);
		top: auto;
	}
	.greeting-content::after {
		background-size: 400px auto;
		bottom: -55%;
        right: -15%;
        background-position: right top;
	}
	#greeting .parts img {
		width: 100%;
		height: auto;
	}
	#greeting .parts.parts01 {
		bottom: 11%;
        right: -9%;
        width: 30%;
	}
	#greeting .parts.parts02 {
		top: -3%;
        left: 10%;
        width: 20%;
	}
	#greeting .parts.parts03 {
		top: 1%;
		right: 10%;
		width: 15%;
	}
	#greeting .parts.parts04 {
		top: 10%;
		left: -15%;
		width: 15%;
	}
	#greeting .parts.parts05 {
		top: -3%;
        right: 18%;
        width: 11%;
	}
	#greeting .parts.parts06 {
		top: 0%;
        left: 16%;
        width: 15%;
	}
	.prologue {
	  padding:0px 0 20px;
	}
	.prologue h3 {
	  font-size: 22px;
	}
	.prologue p {
	  font-size: 13px;
	}

	
	/* ============================
	story 
	============================*/
	#story {
		padding: 30px 0 80px;
		min-width: 100%;
	}
	#story h2 span:before {
		content: "";
		width: 74%;
		height: 70px;
		position: absolute;
		top: -70px;
		left:0;
	}
	.story_list {
		gap: 40px;
		margin: 60px 0 0;
	}
	.story_list li {
		width: 85%;
	}
	.story_list li .movie_title .title {
		font-size: 18px;
		padding-left: 42%;
		padding-bottom: 10px;;
	}
	.story_list li .movie_title.ootaki:before {
        width: 50%;
        height: 136px;
        left: -5%;
        top: -34px;
	}
	.story_list li .movie_title.shirakuma:before {
		width: 46%;
        height: 132px;
        left: 23px;
        top: -28px;
	}
	.story_list li .movie_title.segawa:before {
		width: 50%;
		height: 133px;
		left: -25px;
	    top: -37px;
	}
	.story_list li .movie_title.kataura:before {
		width: 50%;
        height: 98px;
        left: 10px;
        top: -28px;
	}
	.story_list li .movie {
		position: relative;
		z-index: 2;
	}
	.story_list li .movie img {
		width: 100%;
		height: auto;
	}
	#story .parts img {
		width: 100%;
		height: auto;
	}
	#story .parts.parts01 {
		top: -2%;
        left: 2%;
        width: 22%;
	}
	#story .parts.parts02 {
		top: 0;
        right: 0;
        width: 20%;
	}
	#story .parts.parts03 {
		top: 34%;
        left: 0;
        width: 14%;
	}
	#story .parts.parts04 {
		top: 50%;
        right: -19%;
        width: 30%;
	}
	#story .parts.parts05 {
		bottom: 2%;
        left: 0;
        width: 30%;
	}

	/* outline */
	#outline {
		min-width: 100%;
		padding: 40px 0;
	}
	#outline .wrap {
		width: 94%;
		padding: 40px 0 30px;
	}
	#outline table {
		width: 96%;
		margin: 0 auto 36px;
	}
	#outline table tr th {
		font-size: 13px;
		border-bottom: 1px solid #333;
	}
	#outline table tr td {
		font-size: 14px;
		border-bottom: 1px solid #333;
	}
	#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 dl {
	    grid-template-columns: 1fr;
	    padding: 0 15px;
	}
	#outline dt {
	    padding: 15px 0;
	    font-size: 16px;
	}
	#outline dd {
	    padding: 0 0 15px;
	    padding-left: 0px;
	    font-size: 14px;
	}
	#outline dd:nth-of-type(n+2) {
	    border-top: none;
	}
	
	#outline .parts img{
		width: 100%;
		height: auto;
	}
	#outline .parts.parts01 {
		top: 14%;
        left: -8%;
        width: 20%;
	}
	#outline .parts.parts02 {
		top: 14%;
	    left: 0%;
	    width: 20%;
	}
	#outline .parts.parts03 {
		top: -2%;
        left: -1%;
        width: 20%;
	}
	#outline .parts.parts04 {
		top: 15%;
        right: 0%;
        width: 14%;
	}
	#outline .parts.parts05 {
		top: 51%;
        right: 0;
        width: 15%;
	}
	#outline .parts.parts06 {
	    bottom: -25%;
	    left: -23%;
	    z-index: 0;
	    width: 20%;
	}

	/* topics */
	#topics {
		padding: 0 10px;
	}
	#topics .wrap {
		padding: 40px 0;
	}
	#topics h2 span:before {
        width: 74%;
        height: 70px;
        top: -70px;
        left: 0;
	}
	ul.topics li:first-child {
	  width: 100%;
	  padding-left: 0;
	  min-height: auto;
	}
	ul.topics li:first-child .thumbnail {
	  position: relative;
	    left: -8%;
	    width: 120%;
	    max-width: 120%;
	    z-index: 1;
	}
	ul.topics li {
		min-height: auto;
		width: 100%;
	}
	ul.topics li .description {
		font-size: 13px;
	}
	ul.topics li .description:after {
		width: 30px;
		height: 30px;
		bottom: -35px;
	}
	ul.topics li .description h3 {
	  font-size: 30px;
	  margin: 0 0 10px;
	}
	ul.topics li .description p.orange {
	  font-size: 16px;
	  margin: 0 0 10px;
	}
	ul.topics li .description .subtitle {
	  padding: 10px 0;
	  font-size: 16px;
	  margin: 10px 0;
	}
	ul.topics li .description p {
	  font-size: 16px;
	  margin: 10px 0;
	  line-height: 1.4;
	}
	ul.topics li .description h3 span {
	  font-size: 18px;
	}
	#topics .parts img {
		width: 100%;
		height: auto;
	}
	#topics .parts.parts01 {
		top: 7%;
	    right: 0;
	    width: 15%;
	}
	#topics .parts.parts02 {
		top: 7%;
	    left: -7%;
	    z-index: 0;
	    width: 26%;
	}
	#topics .parts.parts03 {
		top: 44%;
	    right: -9%;
	    z-index: 0;
	    width: 31%;
	}
	#topics .parts.parts04 {
		top: -3%;
        right: -20%;
        z-index: 0;
        width: 50%;
	}
	#topics .parts.parts05 {
		bottom: 0;
	    right: -10%;
	    width: 30%;
	}

	/* live */
	#program {
		padding: 40px 0px;
		min-width: 100%;
	}
	#program h2 {
		margin-bottom: 20px;
	}
	#program h2 span:before {
        width: 74%;
        height: 70px;
        top: -70px;
        left: 0;
	}
	#program .wrap .title-container {
		padding: 40px 0 0;
		min-width: 100%;
	}
	/* ==========================
	attraction
	============================*/

	#attraction {
		padding: 60px 0 35px;
	}
	#attraction h2 span::before {
	  width: 100%;
	  height: 85px;
	  top: -80px;
	}
	#attraction .main-title {
	  gap: 20px;
	  font-size: 28px;
	  margin: 10px 0;
	  flex-wrap: wrap;
	}
	#attraction .main-title .time {
		padding: 0 15px;
		font-size: 18px;
	}
	.attraction-content {
		min-height: 0;
		margin-top: 20px;
	}
	.attraction-photo {
		position: relative;
	    width: 100%;
	    margin-bottom: 10px;
	    left: -8%;
	}
	.attraction-text {
		margin-left: 0;
	}
	.attraction-text h3 {
		font-size: 22px;
		margin: 0 0 10px;
		text-align: center;
	}
	.attraction-text p {
	  font-size: 13px;
	  margin: 0 0 10px;
	  padding: 0 20px;
	}
	.attraction-text p br {
		display: none;
	}
	.pdf-link {
	  display: block;
	  text-align: center;
		width: 100%;
	  font-size: 13px;
	}
	.attraction-banner {
		margin-top: 24px;
	    border-radius: 10px;
	    padding: 15px 30px 15px;
	    width: 90%;
	    margin: 20px auto 0;
	}
	.banner-title {
	    font-size: 18px;
	    margin: 0 0 15px;
	}
	.banner-title br {
		display: none;
	}
	.banner-cards {
		flex-direction: column;
	}
	.banner-cards li {
	    border-radius: 4px;
	    font-size: 13px;
	    padding: 15px 10px 15px;
	}
	.banner-cards li br {
		display: none;
	}
	.banner-cards li em {
	  font-size: 18px;
	  display: block;
	}
	.attraction-note {
	    font-size: 18px;
	    margin: 56px 0 15px;
	}
	.attraction-btn {
	    width: 85%;
	}
	.presented-box {
	    border-radius: 12px;
	    width: 95%;
	    margin: 30px auto 0;
	}
	.presented-label {
	    font-size: 16px;
	    padding: 15px 10px;
	}
	.presented-card {
	    padding: 15px;
	}
	.presented-card-inner {
	    gap: 10px;
	    margin-bottom: 16px;
	}
	.presented-body {
		flex-direction: column;
		padding: 15px;
	}
	.presented-photo {
		flex: none;
	}
	.presented-logo {
	    width: 40px;
	}
	.presented-card-text h4 {
	    margin: 0 0 10px;
	    font-size: 20px;
	}
	.presented-card-text p {
	    font-size: 13px;
	    line-height: 1.4;
	}
	.presented-btn a, .presented-btn a:visited {
	    font-size: 13px;
	    padding: 8px;
	}
	#attraction .parts img {
		width: 100%;
		height: auto;
	}
	#attraction .parts.parts01 {
	    top: 34%;
        left: -7%;
        width: 20%;
	}
	#attraction .parts.parts02 {
	  top: 7%;
	  right: 0%;
	  width: 17%;
	}
	#attraction .parts.parts03 {
		top: 6%;
		right: auto;
		left: 0;
		width: 19%;
	}
	#attraction .parts.parts04 {
	    bottom: 33%;
        right: -10%;
        width: 20%;
	}
	#attraction .parts.parts05 {
	    bottom: 24%;
        left: -6%;
        width: 20%;
	}
	#attraction .parts.parts06 {
	    bottom: -2%;
        right: -6%;
        width: 20%;
	}
	#attraction .parts.parts07 {
	    bottom: 77%;
        right: 0%;
        width: 15%;
	}
	/* okyaku */
	#okyaku {
	    padding: 100px 0 75px;
	    min-width: 100%;
	}
	#okyaku h2 span {
		font-size: 14px;
	}
	#okyaku h2 span:before {
		width: 74%;
        height: 70px;
        top: -83px;
        left: 0;
	}
	#okyaku .time {
	    padding: 0 15px;
        font-size: 18px;
        width: 40%;
	}
	.okyaku-content {
	    min-height: auto;
	    margin-top: 20px;
	}
	.okyaku-text {
	    margin-left: 0;
        padding-top: 20px;
	}
	.okyaku-text h3 {
	    font-size: 18px;
	    margin: 0 0 10px;
	    text-align: center;
	}
	.okyaku-text p {
	    font-size: 13px;
	    line-height: 1.6;
	    margin: 0 0 10px;
	    text-align: left;
	}
	.okyaku-text h3 br {
		display: none;
	}
	.okyaku-photo {
	    left: -8%;
        width: 120%;
        position: relative;
	}
	.presented-box.okyaku-box {
	    border-radius: 12px;
	    margin: 0px auto 0;
	}
	.presented-box.okyaku-box .presented-card-text h4 {
	    font-size: 18px;
	}
	.presented-box.okyaku-box .presented-card-text h4 br {
		display: none;
	}
	#okyaku .parts img {
		width: 100%;
		height: auto;
	}
	#okyaku .parts.parts01 {
	    top: -6%;
        right: -11%;
        width: 20%;
	}
	#okyaku .parts.parts02 {
	    top: 14%;
        right: 0;
        width: 26%;
	}
	#okyaku .parts.parts03 {
	    top: -10%;
        right: 3%;
        width: 20%;
	}
	#okyaku .parts.parts04 {
	    top: 10%;
        left: -2%;
        width: 17%;
	}
	#okyaku .parts.parts05 {
	    bottom: 44%;
        right: -7%;
        width: 20%;
	}
	#okyaku .parts.parts06 {
	    bottom: -5%;
        left: 1%;
        width: 14%;
	}
	
	/* 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;
	}
	
	#session-catch {
	    padding: 100px 0;
	}
	#session-catch .wrap {
	    max-width: 100%;
	    padding: 0;
	}
	.session-catch-deco.left {
	    left: -33%;
        width: 64%;
	}
	.session-catch-deco.right {
	    right: -35%;
	    width: 64%;
	}
	.title-group {
		display: none;
	}
	.session-catch-btn {
	    width: 90%;
	}
	.session-catch-btn a, .session-catch-btn a:visited {
	    font-size: 18px;
	    padding: 15px 0;
	}
	.session-catch-content .note {
	    margin: 10px 0 0;
	}

	/* faq */
	#faq .wrap {
		width: 94%;
		padding: 40px 0 30px;
	}
	#faq .faq_list {
		padding: 0;
	}
	#faq .faq_list .answer {
		align-items: baseline;
	}
	#faq .faq_list .faq_item {
		padding: 0;
	}
	#faq .faq_list .faq_item p {
		font-size: 16px;
	}

	/* register */
	div.register {
		padding: 50px 0;
	}
	div.register a.box-button {
		width: 60%;
		font-size: 22px;
		padding: 12px 0;
	}
	#organizer {
	    padding: 0 0 40px;
	}
	#organizer .wrap {
	    max-width: 100%;
	    padding: 0 10px;
	}
	.organizer-box {
	    border-radius: 12px;
	}
	.organizer-col h3 {
	    font-size: 18px;
	    padding: 10px 0 0;
	}
	.host-body {
	    padding: 12px;
	}
	.host-card {
	    border-radius: 12px;
	    padding: 12px;
	}
	.host-card img {
	    max-width: 100%;
	    height: 110px;
	}
	.host-card .company-name {
	    margin: 10px 0 0;
	    font-size: 10px;
	}
	.support-body {
	    padding: 12px;
	}
	.support-inner {
	    padding: 12px;
	    flex-wrap: wrap;
	    gap: 10px;
	}
	.support-card {
	    width: 100px;
	    height: 100px;
	    border-radius: 6px;
	    padding: 10px;
	}
	#about {
	    padding: 50px 0 40px;
	}
	#about .wrap {
		max-width: 100%;
		padding: 0 10px;
	}
	#about p {
		font-size: 13px;
	}
	
	.about_link {
		margin: 20px 0 0;
		flex-wrap: wrap;
		gap: 20px;
		position: relative;
		z-index: 2;
	}
	.about_link li {
		width: 100%;
	}
	.about_link li img {
		width: 100%;
		height: auto;
	}
	.about_link a .link {
		font-size: 13px;
	}
	
	#about .parts img{
		width: 100%;
		height: auto;
	}
	#about .parts.parts01 {
		top: -5%;
        right: 0;
        width: 20%;
	}
	#about .parts.parts02 {
		top: -5%;
        left: -5%;
        width: 20%;
	}
	#about .parts.parts03 {
		top: 0;
        left: -2%;
        width: 10%;
	}
	#about .parts.parts04 {
		top: 4%;
        right: -6%;
        width: 20%;
	}
	#about .parts.parts05 {
		bottom: 1%;
        right: -11%;
        width: 20%;
        z-index: 0;
	}
	#about .parts.parts06 {
		bottom: 61%;
        left: -5%;
        width: 20%;
	}

}
@media only screen and (max-width: 480px) {
	.greeting-content::after {
		background-size: 400px auto;
		bottom: -51%
        right: -15%;
	}
}