@charset "utf-8";
#wrap {
	margin-top: 30px;
	padding: 30px;
	background: #fff;
	border-radius: 5px;
}
#page_ttl {
	margin-bottom: 30px;
	padding-bottom: 15px;
	font-size: 3rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	color: var(--base-color);
	border-bottom: var(--base-color) 3px solid;
}
#under {
	margin: 100px 0 200px 100px;
}
.page_height {
	margin-bottom: 100px;
}
@media only screen and (max-width : 768px) {
	#wrap {
		margin: 0;
		padding: 15px;
		border-radius: 0;
	}
	#page_ttl {
		margin-bottom: 20px;
		padding-bottom: 10px;
		font-size: 2.2rem;
		border-bottom: var(--base-color) 2px solid;
	}
	#under {
		margin: 100px 0 200px 0;
		text-align: center;
	}
	.page_height {
		margin-bottom: 50px;
	}
}

/***** タイトル *****/
.ttl_box {
	margin: 30px 0 15px;
	padding: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
	background: var(--base-color2);
	border-radius: 5px;
}
.ttl {
	margin: 30px 0 15px;
	padding: 15px;
	font-size: 2.1rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--base-color);
	background: var(--base-color2);
	border-radius: 5px;
}
.ttl_box .ttl {
  margin: 0;
  padding: 0;
}
.caption {
	margin: 20px 0 10px;
	padding-left: 10px;
	font-size: 1.9rem;
	font-weight: 500;
	color: var(--base-color);
	border-left: var(--base-color) 4px solid;
}
.sub_caption {
	margin: 15px 0 10px;
  padding-bottom: 5px;
	font-size: 1.8rem;
	font-weight: 500;
	border-bottom: var(--base-color) 1px solid;
}
@media only screen and (max-width : 768px) {
  .ttl_box {
		margin: 20px 0 10px;
		padding: 10px;
    display: block;
  }
	.ttl {
		margin: 20px 0 10px;
		padding: 10px;
		font-size: 1.9rem;
	}
  .ttl_box .ttl {
    margin: 0;
    padding: 0;
  }
	.caption {
		font-size: 1.7rem;
	}
}

/***** ボックス *****/
.box {
	margin: 20px 0;
	padding: 20px;
}
.box_bd_rg {
	border: #cc0000 2px solid;
}
.box_bk_gry {
	background: #f5f5f5;
}
@media only screen and (max-width : 768px) {
	.box {
		margin: 15px 0;
		padding: 10px;
	}
}

/***** テーブル *****/
.base_tb th {
  color: #fff;
  background: var(--base-color);
  border: var(--tb-border);
}
.base_tb td {
  border: var(--tb-border);
}
.nowrap_tb {
  margin: 15px 0;
}
.nowrap_tb th {
  padding-right: 15px;
  white-space: nowrap;
  vertical-align: top;
}
@media only screen and (max-width : 768px) {
  .js-scrollable table {
    width: 800px;
  }
}

/***** 挨拶 *****/
#message_ph {
	margin: 30px 0;
	display: flex;
	justify-content: center;
}
#message_ph figure {
	width: 200px;
	margin: 0 40px;
}
#message_ph2 {
	margin: 30px 0;
	display: flex;
	justify-content: space-between;
}
#message_ph2 figure {
	width: 18%;
}
#message_ph figure img,
#message_ph2 figure img {
	width: 100%;
}
.message_com {
	margin-top: 15px;
	text-indent: 1em;
}
.message_right {
	margin-top: 15px;
	text-align: right;
}
@media only screen and (max-width : 768px) {
  #message_ph {
    margin: 20px 0 0;
  }
  #message_ph2 {
    margin: 20px 0 0;
    flex-wrap: wrap;
    justify-content: space-between;
  }
	#message_ph figure,
  #message_ph2 figure {
		width: 40%;
		margin: 0 5%;
	}
  #message_ph2 figure {
		margin-top: 5%;
	}
	.message_com {
		margin-top: 15px;
		text-indent: 0;
	}
	.message_right {
		margin-top: 15px;
		text-align: left;
	}
}

/***** 概要 *****/
.general_dl {
	width: 100%;
	margin-bottom: 20px;
	display: table;
}
.general_dl dt {
	width: 180px;
	padding-bottom: 20px;
	color: var(--base-color);
	display: table-cell;
	border-bottom: var(--base-color) 2px solid;
}
.general_dl dd {
	padding: 0 0 20px 20px;
	display: table-cell;
	border-bottom: #ddd 2px solid;
}
@media only screen and (max-width : 768px) {
	.general_dl {
		margin-bottom: 15px;
		display: block;
	}
	.general_dl dt {
		width: 100%;
		margin-bottom: 5px;
		padding: 0;
		display: block;
		border-bottom: none;
	}
	.general_dl dd {
		width: 100%;
		padding: 0;
		display: block;
		border-bottom: none;
	}
}

/***** 演題 *****/
.abs_tb1 {
  width: 100%;
  margin: 10px 0;
}
.abs_tb1 th {
  padding: 15px;
}
.abs_tb1 td {
  padding: 15px;
}
.abs_tb1 tr td:nth-child(1) {
  width: 20%;
  text-align: center;
  background: var(--td-bk-gry);
}
.abs_tb2 {
  width: 100%;
  margin: 10px 0;
}
.abs_tb2 th {
  width: 20%;
  padding: 15px;
}
.abs_tb2 td {
  padding: 15px;
}
.abs_tb3 {
  width: 100%;
  margin: 10px 0;
}
.abs_tb3 th {
  padding: 15px;
}
.abs_tb3 td {
  width: 17%;
  padding: 15px;
  text-align: center;
}
.abs_tb3 tr td:nth-child(1) {
  width: 15%;
  text-align: left;
  background: var(--td-bk-gry);
}
@media only screen and (max-width : 768px) {
  .abs_tb1 th {
    padding: 5px;
  }
  .abs_tb1 td {
    padding: 5px;
  }
  .abs_tb1 tr td:nth-child(1) {
    width: 15%;
  }
  .abs_tb2 th {
    width: 25%;
    padding: 5px;
  }
  .abs_tb2 td {
    padding: 5px;
  }
  .abs_tb3 {
    width: 100%;
    margin: 10px 0;
  }
  .abs_tb3 th {
    padding: 5px;
  }
  .abs_tb3 td {
    width: 17%;
    padding: 5px;
  }
  .abs_tb3 tr td:nth-child(1) {
    width: 15%;
  }
}

/***** リンク *****/
.link_dl dt {
	margin-bottom: 5px;
	font-weight: 700;
}
.link_dl dd {
	margin-bottom: 15px;
	padding-bottom: 15px;
	border-bottom: #000 1px dotted;
}

/***** 協賛 *****/
.sponsor_tb {
  width: 100%;
}
.sponsor_tb th {
  padding: 15px;
  font-weight: 700;
  text-align: left;
  background: #f5f5f5;
  border: #ddd 1px solid;
}
.sponsor_tb td {
  width: 35%;
  padding: 15px;
  border: #ddd 1px solid;
}
.sponsor_tb td a {
  padding: 7px 0;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  color: #fff;
  border-radius: 100px;
  border: var(--base-color) 2px solid;
  display: block;
  background: var(--base-color);
  transition: 0.5s;
}
.sponsor_tb td a:hover {
  color: var(--base-color);
  background: #fff;  
}
@media only screen and (max-width : 768px) {
  .sponsor_tb tr {
    display: block;
  }
  .sponsor_tb th {
    margin-bottom: 10px;
    padding: 5px;
    text-align: center;
    display: block;
    border: none;
  }
  .sponsor_tb td {
    width: auto;
    margin-bottom: 25px;
    padding: 0;
    display: block;
    border: none;
  }
  .sponsor_tb tr:last-child td {
    margin-bottom: 0;
  }
  .sponsor_tb td a {
    padding: 7px 0;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    color: #fff;
    border-radius: 100px;
    border: var(--base-color) 2px solid;
    display: block;
    background: var(--base-color);
    transition: 0.5s;
  }
  .sponsor_tb td a:hover {
    color: var(--base-color);
    background: #fff;  
  }
}

/***** ハンズオン *****/
.handson_icon {
  padding: 10px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  border-radius: 5px;
}
.handson_icon1 {
  background-color: var(--base-color);  
}
.handson_icon2 {
  background-color: var(--point-color2);  
}
.handson_dl {
  margin-top: 15px;
}
.handson_dl dt {
  width: 5.5em;
  color: var(--base-color);
  float: left;
  clear: left;
}
.handson_dl dd {
  margin-bottom: 15px;
  padding: 0 0 15px 5.5em;
  border-bottom: var(--point-color2) 1px solid;
}
.qrcode {
  text-align: center;
}
.qrcode img {
  width: 150px;
}
@media only screen and (max-width : 768px) {
  .handson_icon {
    margin-top: 10px;
    padding: 7px;
    text-align: center;
  }
  .handson_dl dt {
    width: 100%;
    margin-bottom: 5px;
    float: none;
  }
  .handson_dl dd {
    padding-left: 0;
  }
  .qrcode img {
    width: 100px;
  }
}

/***** 参加登録 *****/
.reg_tb {
  width: 100%;
}
.reg_tb th {
  padding: 5px;
}
.reg_tb td {
  padding: 10px;
  text-align: center;
}
.reg_tb td:nth-child(1) {
  text-align: left;
  background: #f5f5f5;
}