@charset "utf-8";

/* smart phone */
@media only screen and (max-width: 768px) {
  header .header-top {
    padding: 0 !important;
  }
  header .header-top .wrap {
    display: flex;
    align-items: center;
    height: 50px;
  }
  header .logo {
    max-width: 200px;
    padding: 10px;
  }
  header div.title {
    min-width: 100% !important;
    padding-top: 0;
  }
  header div.title h1 {
    padding: 0 20px;
    font-size: 30px;
  }
  div.title {
  	padding: 70px 0 20px;
  }
  div.title h1:before {
		content: "";
		width: 50%;
		position: absolute;
		bottom: -60px;
		background-size:contain;
		height: 125px;
		left: -20%;
	}
	div.title h1:after {
		content: "";
		width: 50%;
		position: absolute;
		bottom: -60px;
		background-size:contain;
		height: 125px;
		right: -20%;
	}
  #main_kv {
    margin-top: 0;
  }
  /* venue */
  #venue h2 {
    font-size: 22px;
  }
  /* greeting */
  #greeting {
    padding: 55px 0;
    min-width: 100%;
    width: 100%;
  }
  #greeting .wrap {
    width: 98%;
    max-width: 100%;
	  margin: 0 auto;
	  padding: 48px 16px;
	  gap: 16px;
  }
  #greeting h2 {
    font-size: 22px;
    margin: 20px 0 10px;
  }
	
  .about-logo {
	  top: -42px;
	  width: 80%;
	  right: 0;
	  left: 0;
	  margin: auto;
	}
  .about-illust {
	  top: 23px;
	  right: -2%;
	  width: 35%;
	}
	.about-content {
	  padding: 25px 10px;
	}
	p.about-label {
	  font-size: 18px;
	  font-weight: bold;
	}
	#greeting h2.about-heading {
	  font-size: 18px;
	  margin: 0 0 20px;
	}
	.about-content p {
	  margin-bottom: 15px;
	  font-size: 13px;
	}
	
	/* special */
	#special {
		padding: 180px 0 120px;
	}
	#special .wrap {
	  max-width: 100%;
	}
	.special-title {
	  width: 80%;
	  margin: 0 auto 30px;
	  text-align: center;
	}
	.special-title img {
	  height: auto;
	  width: 100%;
	}
	.special-subtitle {
	  font-size: 16px;
	  margin: 10px 0 0;
	}
	/* 東京・大阪ブロック */
	.special-group {
	  flex-wrap: wrap;
	  gap: 30px;
	  margin-bottom: 20px;
	}
	.special-group .guest-list-02 {
		flex-wrap: wrap;
	}
	.special-group .guest-list-01 .guest-item {
		width: 50%;
	}
	.special-group .guest-list-02 .guest-item {
		width: 50%;
	}
	.guest-item.takahashi:before {
		display: none;
	}
	.guest-item .photo {
		margin-bottom: 15px;
	}
	.guest-item.osaka .photo:after {
		background-size: contain;
		width: 85px;
		height: 40px;
		bottom: 0;
	}
	.guest-item.tokyo .photo:after {
		background-size: contain;
		width: 85px;
		height: 40px;
		bottom: 0;
	}
	.guest-item.takahashi .photo:after {
		background-size: contain;
		width: 163px;
		height: 40px;
		bottom: 0;
	}
	.special-group-icon {
	  width: 100%;
	}
	.guest-list {
	  gap: 16px;
	  justify-content: center;
	}
	.osaka .guest-list {
		margin-top: -40px;
	}
	.guest-item {
	  width: 46%;
	}
	.guest-item img {
	  border-radius: 4px;
	  margin-bottom: 10px;
	}
	.guest-item .guest-name {
	  font-size: 18px;
	  padding-left: 10px;
	}
	.osaka .guest-item .guest-name {
		color: var(--orange);
		border-left: 6px solid var(--orange);
	}
	.guest-item .guest-corp {
	  font-size: 13px;
	}
	.guest-item .guest-position {
	  font-size: 13px;
	}
	.guest-item.takahashi:after {
		display: none;
	}

	
	/* 枠外あしらい */
	.special-deco.parts01 {
		width: 45%;
        top: -248px;
		right: 0;
		left: 0;
		margin: auto;
	}
	.special-deco.parts02 {
		width: 30%;
		top: -172px;
		left: -20px;
	}
	.special-deco.parts03 {
		width: 345px;
		top: 30%;
		left: -345px;
	}
	.special-deco.parts04 {
		display: none;
	}
	
  /* outline */
	#outline {
		padding: 70px 0 100px;
	}
	#outline .wrap {
	  width: 90%;
	  max-width: 95%;
	  margin: 0 auto 180px;
	  border-radius: 15px;
	  padding: 10px;
	}
	.outline-title {
	  width: 50%;
	  margin: 0 0 40px 5%;
	}
	.outline-title img {
	  height: auto;
	  width: 100%;
	}
	.outline-subtitle {
	  font-size: 18px;
	  margin: 10px 0 0;
	}
	
	#outline table tr th {
	  width: 25%;
	  padding: 0 0 10px;
	  font-size: 13px;
	}
	#outline table tr th span {
		font-size: 13px;
		padding: 3px 10px;
		width: 80%;
	}
	
	#outline table tr td {
	  padding: 0 0 20px;
	  font-size: 13px;
	}
	.outline-deco.parts01 {
		width: 32%;
        top: -222px;
        left: -50px;
	}
	.outline-deco.parts02 {
		 width: 43%;
        top: -133px;
        right: -61px;
	}
	.outline-deco.parts03 {
		width: 48%;
        bottom: -281px;
        left: -67px;
	}
	.outline-deco.parts04 {
		width: 45%;
        bottom: -280px;
        right: -80px;
	}

  /* venue */
	#venue {
		padding: 0px 0;
	}
	#venue .wrap {
	  max-width: 100%;
	  padding-top: 140px;
	}
	#venue .venue-deco.parts01 {
		width: 48%;
        left: 0;
        right: 0;
        margin: auto;
        top: -147px;
	}
	#venue .venue-deco.parts02{
		display: none;
	}
	/* タイトル */
	.venue_title {
	  width: 40%;
	  margin: 0 auto 40px;
	  max-width: 95%;
	  text-align:center;
	}
	.venue_title img {
	  height: auto;
	  width: 100%;
	}
	.venue-subtitle {
	  font-size: 16px;
	  margin: 10px 0 0;
	}
	.event-container {
	  gap: 12px;
	  max-width: 95%;
	  width: 90%;
	  margin: 0 auto;
	}
	.venue-item a {
	  gap: 16px;
	  flex-wrap: wrap;
	  flex-direction: column;
	}
	.venue-icon {
	  width: 70%;
	  margin: 0 auto;
	}
	.venue-info {
		width: 100%;
		display: block;
		flex: none;
	}
	.venue-date {
	  font-size: 22px;
	  margin-bottom: 8px;
	  text-align: center;
	}
	.venue-date-num {
	  font-size: 35px;
	}
	.venue-date-day {
	  font-size: 18px;
	}
	.venue-place {
	  font-size: 16px;
	  margin-bottom: 16px;
	  text-align: center;
	}
	.venue-link-text {
	  font-size: 16px;
	  gap: 8px;
	  margin: 0 0 10px;
	}
	.venue-link-icon {
	  display: inline-flex;
	  align-items: center;
	  justify-content: center;
	  width: 40px;
	  height: 40px;
	  background: var(--blue);
	  border-radius: 50%;
	  margin-right: 20px;
	}

  .event {
    width: 94% !important;
    margin: 30px auto 60px !important;
  }
  .event thead {
    display: none;
  }
  .event tr:first-child {
    border-top: 1px solid #ccc;
  }
  .event tr {
    display: block;
    padding: 10px 0;
    border-bottom: 1px solid #ccc;
  }
  .event td {
    display: inline-block;
    border: none !important;
  }
  .event td.date {
    border-left: 3px solid #2a73cc !important;
    padding: 2px 4px !important;
  }
  .event td.place {
    padding: 2px 4px !important;
  }
  .event td.title {
    display: block;
  }
  .event td.title h3 {
    font-size: 48px;
    font-weight: bold;
    line-height: 1.2;
    margin: 30px auto;
    border: none;
    padding: 0;
  }
}
@media only screen and (max-width: 480px) {
	#greeting {
        padding: 35px 0;
    }
    .about-logo {
        top: 0;
        width: 80%;
        right: 0;
        left: 0;
        margin: auto;
    }
   .about-illust {
        width: 43%;
    }
     #special {
        padding: 120px 0;
    }
    .special-deco.parts01 {
        width: 60%;
        top: -180px;
    }
    .special-group .guest-list-01 .guest-item {
        width: 80%;
    }
    .special-group .guest-list-02 .guest-item {
		width: 70%;
	}
	#venue .venue-deco.parts01 {
        width: 80%;
        top: -118px;
    }
    #outline .wrap {
        width: 90%;
        max-width: 95%;
        margin: 0 auto 100px;
    }
    .outline-deco.parts01 {
        width: 42%;
        top: -168px;
        left: -50px;
        z-index: 1;
    }
	.outline-deco.parts02 {
        width: 59%;
        top: -133px;
        right: -61px;
    }
    .outline-deco.parts03 {
		width: 71%;
        bottom: -200px;
        left: -67px;
	}
	.outline-deco.parts04 {
		width: 61%;
        bottom: -200px;
        right: -80px;
	}
	#sponsor .wrap:before {
        top: -123px;
        width: 100%;
        height: 44px;
    }
}
