@charset "utf-8";
/* CSS Document */

/*ベースはじまり*/

body {
  margin: 0;
  padding: 0;
  color: #333;
  background-color: #fff;
  font-size: 1.6rem;
  font-weight: 600;
  font-style: normal;
  font-family: system-ui, sans-serif;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  word-wrap: break-word;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 105px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-size: 62.5%; /*rem算出をしやすくするために*/
}

p,h1,h2,h3,h4,h5,h6 {
  margin-top: 0;
}

table {
  -webkit-text-size-adjust: 100%;
}

img, th, td {
  vertical-align: middle;
}

a {
  color: #0468BF;
  text-decoration: underline;
}

a:hover {
  color: #436073;
}

a img:hover {
  opacity: 0.7;
}

.bold {
  font-weight: 600;
}

.center{
  text-align: center;
}

.right{
  text-align: right;
}

.red {
  color: #DC0509;
}

.marker{
  background: linear-gradient(transparent 50%,  rgba(255, 178, 178, 0.5) 50%) ;
  }

.pc {
  display: initial;
}

.sp {
  display: none;
}

/* Font */
h1, .home-image, .gnavi, .menu, .bot-box {
  font-family: din-2014, sans-serif;
}

h1 {
  font-size: 5.0rem;
  font-weight: 700;
}

h2, .gp-box h4 {
  font-size: 3.0rem;
  font-weight: 600;
}

h3, .gp-box h4 span {
  font-size: 2.5rem;
  font-weight: 600;
}

h4, .main-text h3 span {
  font-size: 2.0rem;
  font-weight: 600;
}

h5{
  font-size: 1.8rem;
  font-weight: 600;
}

/* Font end */

/*ベースおわり*/

/*headerはじまり*/

header {
  position: fixed;
  width: 100%;
  height: auto;
  margin: 0 auto;
  padding-bottom: 0;
  background: url(img/bg3.png) top center/ cover no-repeat;
  top: 0;
  z-index: 2;
}

/* .bg {
  min-height: 100%;
} */

.header{
  display: block;
}

.logo {
  position: relative;
  width: 100%;
  height: auto;
  margin: 0 auto;
  padding: 5px 10px;
}

.logo img {
  justify-content: flex-start;
  position: relative;
  max-width: 320px;
  width: 100%;
}

/* .h-slide{
  display: block;
  text-align: center;
  position: relative;
  width: 100vw;
  height: 100vh;
  margin: 0 auto;
} */

/*headerおわり*/

/*メインコンテンツ（ベース）はじまり*/

#wrap {
  margin: 0;
  padding: 0;
}

.content {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-content: center;
  width: 100%;
  min-height: 100%;
  margin: 0 auto;
}

/*メインコンテンツ（ベース）おわり*/

/*メインコンテンツはじまり*/

#navi {
  display: block;
  position: relative;
  width: 100%;
  height: auto;
  margin: 0 auto;
  padding: 0 auto;
  top: 0;
  left: 0;
}

/* ドロップダウンメニュー */
/*==ナビゲーション全体の設定*/

.gnavi{
  position: fixed;
  width: 100%;
  height: auto;
  z-index: 9999;
  background: #092640;
  color:#fff;
  text-align: center;
  font-weight: 600;
  font-size: 1.8rem;
}

/*ナビゲーションを横並びに*/
.gnavi ul{
  list-style: none;
  display: flex;
  justify-content: center;
}
/*2階層目以降は横並びにしない*/
.gnavi ul ul{
  display: block;
}

/*下の階層のulや矢印の基点にするためliにrelativeを指定*/
.gnavi ul li{
  position: relative;
}

/*ナビゲーションのリンク設定*/
.gnavi ul li a{
  display: block;
  text-decoration: none;
  text-transform: uppercase;  /* 大文字・小文字指定  */
  color: #fff;
  padding: 11.5px 35px;
  transition:all .3s;
}

.gnavi ul li li a{
  padding: 10px 35px;
}

.gnavi ul li a:hover{
  background-color: #0468BF;
}

/*==矢印の設定*/

/*2階層目を持つliの矢印の設定*/
.gnavi ul li.down::before{
  content:'';
  position: absolute;
  left:15px;
  top: 20px;
  width:6px;
  height:6px;
  border-top: 2px solid #fff;
  border-right:2px solid #fff;
  transform: rotate(135deg);
}

/*3階層目を持つliの矢印の設定*/
.gnavi ul ul li.down::before{
  content:'';
  position: absolute;
  left:10px;
  top:15px;
  width:6px;
  height:6px;
  border-top: 2px solid #fff;
  border-right:2px solid #fff;
  transform: rotate(45deg);
}

/*== 2・3階層目の共通設定 */

/*下の階層を持っているulの指定*/
.gnavi li.down ul{
    /*絶対配置で位置を指定*/
  position: absolute;
  left:0;
  top: 50px;
  z-index: 4;
    /*形状を指定*/
   background: url(img/bg3.png) top center/ cover no-repeat;
  width: 250px;
    /*はじめは非表示*/
  visibility: hidden;
  opacity: 0;
    /*アニメーション設定*/
  transition: all .3s;
}

/*hoverしたら表示*/
.gnavi li.down:hover > ul,
.gnavi li.down ul li:hover > ul,
.gnavi li.down:active > ul,
.gnavi li.down ul li:active > ul{
  visibility: visible;
  opacity: 1;
}

/*ナビゲーションaタグの形状*/
.gnavi li.down ul li a{
  color: #fff;
  border-bottom:solid 1px #fff;
}

.gnavi li.down ul li:last-child > a{
 border-bottom:none;
}

.gnavi li.down ul li a:hover,
.gnavi li.down ul li a:active{
  background:#0468BF;
  color: #fff;
}


/*==3階層目*/

/*3階層目の位置*/
.gnavi li.down ul ul{
  top:0;
  left: 250px;
  background:#436073;
}

.gnavi li.down ul ul li a:hover,
.gnavi li.down ul ul li a:active{
  background:#5598D0;
}

/*==スクロール用 */
/* .gnavi .menu-list{
  height: 100%;
  overflow: auto;
} */

/*==1280px以下の形状*/

@media screen and (max-width:1280px){
  .gnavi{
    font-size: 1.4rem;
  }
}

/*==1024px以下の形状*/
@media screen and (max-width:1024px){

  .gnavi{
    height: auto;
    position: relative;
    margin-top: 20px;
    padding: 0;
    z-index: 99;
  }
  
  .gnavi ul{
    display: block;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  .gnavi li.down ul,
  .gnavi li.down ul ul{
  position: relative;
  left:0;
  top:0;
  width:100%;
  visibility:visible;/*JSで制御するため一旦表示*/
  opacity:1;/*JSで制御するため一旦表示*/
  display: none;/*JSのslidetoggleで表示させるため非表示に*/
  transition:none;/*JSで制御するためCSSのアニメーションを切る*/
  }
  
  .gnavi ul li a{
  border-bottom:1px solid #092640;
  }
  
  /*矢印の位置と向き*/
  
  .gnavi ul li.down::before{
  left:20px;  
  }
  
  .gnavi ul ul li.down::before{
    transform: rotate(135deg);
  left:20px;
  }
    
  .gnavi ul li.down.active::before{
    transform: rotate(-45deg);
  }
  
  }

/* ドロップダウンメニュー おわり */

/* 3カラム目はじまり */

#side {
  -webkit-flex: 1;
  flex: 0 0 1;
  width: 100%;
  height: auto;
  margin: 0 auto;
  padding: 0;
  top: 0;
  left: 0;
}

#navi .etc,
#side .etc {
  width: 100%;
  padding: 0;
  text-align: center;
  margin-bottom: 20px;
}

#navi .etc h4,
#side .etc h4 {
  letter-spacing: 1px;
  margin: 15px 0 10px;
  padding: 0 0 5px;
  text-align: center;
  color: #fff;
  border-bottom: 1px solid #fff;
}

#navi .etc img,
#side .etc img {
  max-width: 250px;
  width: 100%;
  margin-bottom: 10px;
  border: 1px solid #fff;
}

/* main start */

.main, .f-main {
  -webkit-flex: 1;
  flex: 1;
  width: 100%;
  margin: 0 auto;
}

/* top image */

.home-image {
  position: relative;
  text-align: center;
  width: 100%;
  height: 100vh;
  margin: 0 auto;
  padding: 0;
  background: url(img/bg1.png) top center / cover no-repeat;
  text-shadow: 0 0 5px #092640;
}

.home-image h1{
  color: #FFF000;
  margin:  10% auto 0;
  padding: 0 20px;
}

.home-image img, .page-image img{
  width: 90%;
  height: auto;
}

.home-text{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-around;
  width: 100%;
  margin: 15% auto 0;
  padding: 0 auto;
  bottom: 0;
}

.h-textbox{
  max-width: 500px;
  width: 100%;
  padding: 0 20px;
  text-align: left;
  margin-bottom: 20px;
}

.home-text h3{
  font-size: 3.5rem;
  font-weight: 700;
  color: #fff;
}

.home-text h4{
  font-size: 2.5rem;
  color: #fff;
}

.home-text h5{
  font-weight: 400;
  color: #FFF000;
}

/* Page image */

.page-image {
  position: relative;
  text-align: center;
  width: 100%;
  height: 30vh;
  margin: 0 auto;
  padding: 0;
  background: url(img/bg2.png) center center / cover no-repeat;
  text-shadow: 0 0 5px #092640;
}

.page-image h1{
  color: #fff;
  margin:  0 auto;
  padding: 8% 18% 0;
  text-align: left;
}

@media screen and (max-width:1280px){
  .page-image h1{
    padding: 10% 5% 0;
  }
}

/* section start */

section {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto 50px;
  padding: 50px 0;
  border-radius: 0;
}

section a img {
  border: 1px solid #fff;
}

/* 見出し */

section h2 {
  letter-spacing: 1px;
  margin-bottom: 20px;
  padding: 0;
  color: #023E73;
  border-bottom: 3px solid #74A1D5;
}

section h3 {
  letter-spacing: 1px;
  padding: 10px 0 5px 10px;
  margin-bottom: 10px;
  border-bottom: 2px solid #ABD5E7;
}

section h4 {
  letter-spacing: 1px;
  padding: 5px 0 5px 10px;
  margin-bottom: 3px;
  color: #000;
  border-left: 6px solid #436073;
}

/* ◆不要 */

.gp-box h4::before,
.p-section h4::before,
.fee .important h4::before {
  content: "";
}

/* Top page */

.info h2{
  position: relative;
  letter-spacing: 1px;
  text-align: center;
  margin: 0 auto 20px;
  padding: 10px 20px;
  border-radius: 50%;
  border-bottom: none;
  color: #092640;
}

.info h2::after{
  position: absolute;
  bottom: 0;
  left: calc(50% - 50px);
  width: 100px;
  height: 5px;
  content: '';
  border-radius: 3px;
  background: linear-gradient(to right,#f59090,#fcd7a1,#fff9b1,#a5d4ad,#a3bce2,#a59aca,#cfa7cd);
}

/* INFORMATION */

.scroll {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  height: 300px;
  margin: 0 auto;
  padding: 10px 20px;
  outline: 1px solid #ABD5E7;
}

.scroll h2 {
  width: 250px;
  margin: 0 20px 0 0;
}

.scroll-box{
  position: relative;
  width: 900px;
  height: 100%;
  overflow-y: scroll;
  padding: 0 40px;
  border-left: 1px solid #ABD5E7;
}

.scroll-box dl{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  width: 100%;
  margin: 10px 0 0;
  padding: 5px 0 5px;
  line-height: 2;
  border-bottom: 1px solid #5598D0;
}

.scroll-box dt{
  display: inline-block;
  width: auto;
  height: 40px;
  padding: 5px 10px;
  font-weight: 600;
  text-align: center;
  vertical-align: middle;
}

.scroll-box dd{ 
  width: auto;
  margin: 0 0 0 10px;
  padding: 5px 5px;
  vertical-align: middle;
}

/* 注意・案内 */

.info-plus{
  max-width: 800px;
  width: 100%;
  border: 3px solid #74A1D5;
  margin: 10px auto;
  padding: 10px 15px;
} 

 /* 日付・大会長名（あるとき） */

.info-plus p{
  padding: 0 10px;
  margin: 0;
}

.info-plus.red{
  border: 3px solid #DC0509;
}

/* list */

section li p{
  margin-left: 0;
}

section li .plus{
  margin-left: 10px;
}

.list ul,
.list ol {
  list-style-position: inside;
  margin: 10px 0 20px;
}

.list li{
  margin-left: 40px;
}

/* ● */

ul.disc li {
  list-style: none;
  text-indent: -10px;
}

ul.disc li::before {
  content: "\025cf";  /* 空の要素作成 */
  display: inline-block;  /* インラインブロックにする */
  color: #ABD5E7; /* 背景色指定 */
  position: relative;  /* 位置調整 */
  top: 1px;  /* 位置指定 */
  left: -5px;
  border-radius: 100%;  /* 要素を丸くする */
}

/* 1) */

ol.kakko li {
  list-style-type: none;
  counter-increment: cnt;
}

ol.kakko li:before {
  content: "" counter(cnt) ")";
  display: inline-block;
  text-align: right;
  position: relative;
  top: 0;
  left: -5px;
  color: #333;
}

/* (1) */

ol.cnt li {
  list-style-type: none;
  counter-increment: cnt;
}

ol.cnt li:before {
  content: "(" counter(cnt) ")";
  display: inline-block;
  text-align: right;
  position: relative;
  color: #333;
}

/* 1. */

ol.decimal li{
  list-style-type: none;
  counter-increment: cnt;
}

ol.decimal li::before{
  content: counter(cnt)".";
  display: inline-block;
  text-align: right;
  position: relative;
  top: 0;
  left: -5px;
  color: #333;
}

/* text */

section p {
  margin-bottom: 10px;
  padding: 0 40px;
}

section p.top {
  margin-top: -15px;
}

section p.bottom {
  margin-bottom: 20px;
}

section .plus,
section .plus.p1,
section .plus.p2,
section .plus.p3 {
  position: relative;
  margin: 0 0 0 40px;
}

section .plus::before,
section .plus.p1::before,
section .plus.p2::before,
section .plus.p3::before {
  position: absolute;
  top: 0;
  left: 0;
}

section .plus{
  padding-left: 10px;
}

section .plus.p1,
section .plus.p2,
section .plus.p3 {
  padding-left: 20px;
}

section .plus::before{
  content: "*";
}

section .plus.p1::before {
  content: "*1";
}

section .plus.p2::before {
  content: "*2";
}

section .plus.p3::before {
  content: "*3";
}

td p.plus{ margin-left: 0;}

/*メインコンテンツおわり*/

/*ボタン設定--まずはお決まりのボックスサイズ算出をborer-boxに */
*,
*:before,
*:after {
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}

.btn,
a.btn,
button.btn {
  font-size: 2.0rem;
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  padding: 1rem 4rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
}

.btn:hover,
a.btn:hover,
button.btn:hover{
  filter: grayscale(50%);
}

.btn-box, .bot-box {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  align-items: center;
  margin: 20px auto 20px;
}

.btn-box .btn-w {
  width: 250px;
}

.btn-box a {
  margin-bottom: 10px;
  border-radius: 50px;
}

.btn-box img {
  max-width: 250px;
  width: 100%;
  margin-bottom: 10px;
}

.btn-box a img {
  border: 1px solid #fff;
}

/* ボタン設定詳細 */

.btn-1,
a.btn-1,
button.btn-1 {
  background: linear-gradient(to right,#0F53A2,#5598D0,#ABD5E7);
  color: #fff;
  text-shadow: 0 0 5px #092640;
}

.btn-2,
a.btn-2,
button.btn-2 {
  background: linear-gradient(to right,#4E7FBF,#74A1D5,#87B0DD);
  color: #fff;
  text-shadow: 0 0 5px #092640;
}

.btn-3,
a.btn-3,
button.btn-3 {
  background: linear-gradient(to right,#023E73,#034C8C,#0468BF);
  color: #fff;
  text-shadow: 0 0 5px #092640;
}

.btn-4,
a.btn-4,
button.btn-4 {
  background: linear-gradient(to bottom right,#f59090,#fcd7a1,#fff9b1,#a5d4ad,#a3bce2,#a59aca,#cfa7cd);
  color: #fff;
  text-shadow: 0 0 5px #092640;
}

.btn-login,
a.btn-login {
  width: 650px;
  font-size: 3.0rem;
  padding: 2rem 1rem;
  margin: 50px auto 0;
}

.btn-login span,
a.btn-login span {
  display: inline-block;
  font-size: 1.6rem;
  line-height: 2.5rem;
}

.btn-login .red,
a.btn-login .red{
  text-shadow: 0 0 5px #fff;
}

/* deadline */

/* button type */

.bot-box a{
  border-radius: 50px;
}

.btn-bot,
a.btn-bot{
  width: 250px;
  height: 250px;
  vertical-align: middle;
  padding: 1rem 2rem 3rem;
  background: linear-gradient(to bottom,#5598D0,#ABD5E7);
  color: #FFF000;
  text-shadow: 0 0 5px #092640;
}

.btn-bot .date,
a.btn-bot .date{
  font-size: 3.2rem;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 0 5px #092640;
}

/* ボタン設定 おわり */

/* icon */

.material-symbols-outlined {
  font-variation-settings:
  'FILL' 0,
  'wght' 400,
  'GRAD' 0,
  'opsz' 24;
  vertical-align: middle;
}

/* アイコン装飾用css */
.icon{
  margin: 0 10px;
  padding: 5px;
  color: #fff;
}

a .icon.i-c:hover{
  background-color: #436073;
}

.icon.i-c{
  background-color: #0468BF;
  border-radius: 50%;
}

/* アイコン横並び */

.icon-box{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  margin: 0 auto 20px;
  padding: 0 30px;
}

/* 特定の拡張子の場合自動で表示 */
.btn-box a[href$=".docx"]::after,
.btn-box a[href$=".doc"]::after {
  padding-left: 10px;
  display: inline-block;
  content: url("img/word_icon.png");
  vertical-align: middle;
}

.btn-box a[href$=".pdf"]::after {
  padding-left: 10px;
  display: inline-block;
  content: url("img/pdf_icon.png");
  vertical-align: middle;
}

.btn-box a[href$=".xlsx"]::after {
  padding-left: 10px;
  display: inline-block;
  content: url("img/excel_icon.png");
  vertical-align: middle;
}

.btn-box a[href$=".pptx"]::after,
.btn-box a[href$=".ppt"]::after {
  padding-left: 10px;
  display: inline-block;
  content: url("img/pptx_icon.png");
  vertical-align: middle;
}

/* General info & Contact */

#gi table, #contact table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 auto 30px;
  border-spacing: 0;
}

#gi table tr {
  border-bottom: 2px solid #ABD5E7;
}

#gi table th, #contact table th {
  text-align: center;
  padding: 20px 10px;
  color: #333;
}

#gi table th:first-child, #contact table th:first-child{
  width: 30%;
}

#gi table td, #contact table td {
  width: auto;
  text-align: left;
  padding: 20px 10px;
}

#contact table tr{
  border-bottom: 2px solid rgba(4, 104, 191, 0.2);
}

/*メインコンテンツ（gakkai）おわり*/

/*メインコンテンツ（greeting）はじまり*/

#greeting p {
  line-height: 25px;
}

.g-box {
  display: block;
  margin: 10px 0;
  padding: 0;
  text-align: right;
}

.g-box img {
  max-width: 160px;
  width: 100%;
  margin: 0 40px 10px;
  border-radius: 50%;
}

.gp-box h4{
  color: #333;
  border-bottom: 2px solid #333;
}

.main-text {
  margin: 20px auto;
  text-align: justify;
}

.main-text p{
  margin-bottom: 20px;
}

/*メインコンテンツ（greeting）おわり*/

/*メインコンテンツ（program）はじまり*/

#program table {
  width: 100%;
  border-collapse: separate;
  margin: 0 auto 30px;
  border-spacing: 10px;
}

#program table tr:nth-child(odd) {
  background-color: rgba(171, 213, 231, 0.2);
}

#program table th {
  text-align: center;
  padding: 20px 10px;
  color: #333;
  background-color: rgba(171, 213, 231, 0.5);
}

#program table th:first-child{
  width: 30%;
}

#program table td{
  width: auto;
  text-align: left;
  padding: 20px;
  border-right: 1px solid #ABD5E7;
}

#program table td:last-child{
  border-right: none;
}

/* Program box */

.p-section {
  margin-bottom: 40px;
}

/* 演題名 */

.p-section .p-title {
  font-weight: 600;
  color: #0468BF;
}

/* 座長・演者 */

.p-section dl{
  display: flex;
  flex-wrap: wrap;
  max-width: 900px;
  width: 100%;
  margin: 10px 0 0;
  padding: 5px 0 5px 40px;
  line-height: 2;
}

.p-section dt{
  display: inline-block;
  max-width: 240px;
  width: auto;
  height: 40px;
  padding: 5px 10px;
  font-weight: 600;
  text-align: center;
  background-color: #fff;
  color: #436073;
  border: 1px solid #fff;
}

.p-section dd{ 
  max-width: 660px;
  width: 100%;
  margin: 0 0 0 10px;
  padding: 5px 5px;
}

.p-section dd .p-title{
  padding-left: 0;
}

/* 演者・演題名複数 */

.p-box {
  margin: 10px 0;
  padding: 10px 20px;
  background-color: rgba(116, 161, 213, 0.2);
  border: 1px solid #fff;
  border-radius: 10px;
}

.p-box dl{
  padding: 5px 0 5px;
  border-bottom: 1px solid #fff;
}

/* 顔写真 */

.p-photo {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  text-align: center;
  align-items: center;
  margin: 10px auto 0;
}

.photo-box{
  max-width: 160px;
  width: 100%;
  margin-bottom: 10px;
}

.p-photo img {
  max-width: 160px;
  width: 80%;
  padding: 0 5px;
  border-radius: 50%;
}

.p-photo p{
  margin: 10px 0; /* HP毎に調整 */
  padding: 0;
}

/* 企業展示 */

.ex-box {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  align-items: center;
  margin: 0 auto 40px;
}

.ex-section {
  max-width: 700px;
  width: 100%;
  margin: 0 auto;
  padding: 0 10px;
  vertical-align: middle;
}

.ex-img {
  max-width: 200px;
  width: 100%;
  margin: 10px auto;
  padding: 0 10px;
  vertical-align: middle;
  text-align: center;
}

.ex-img img {
  max-width: 160px;
  width: 100%;
}

/* 時計アイコン */

.time{
  text-align: right;
  font-weight: 600;
  vertical-align: middle;
}

.time span{
  color: #0468BF;
  margin-right: 5px;
}

/*メインコンテンツ（program）おわり*/

/*メインコンテンツ（jizen）はじまり*/

.fee table {
  max-width: 900px;
  width: 100%;
  border-collapse: collapse;
  margin: 50px auto;
  border-spacing: 0;
}

.fee table tr {
  border-bottom: 1px solid #fff;
  background-color: rgba(3, 76, 140, 0.3);
}

.fee table th {
  position: relative;
  width: 200px;
  padding: 20px;
  text-align: center;
  color: #fff;
  background-color: rgba(2, 62, 115, 0.5);
  border-left: 1px solid #fff;
}

.fee table th:first-child{
  text-align: left;
}

.fee table td {
  width: 200px;
  padding: 20px;
  text-align: center;
  color: #333;
  border-left: 1px solid #fff;
}

.fee table tr:nth-child(even) {
  background-color: rgba(135, 176, 221, 0.2);
}

.fee.ac table{
  max-width: 400px;
}

/* box */

.box{
  width: 100%;
  padding: 10px 40px;
  margin: 50px auto;
  background-color: rgba(4, 104, 191, 0.2);
}

.box h4{
  font-size: 2.3rem;
  padding: 0;
  border-left: none;
  text-align: center;
}

/*メインコンテンツ（jizen）おわり*/

/* 登録期間はじまり  */
.period{
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  margin: 10px 20px;
  padding-bottom: 5px;
  line-height: 2;
  font-weight: 600;
}

.period dl{
  margin: 5px 0; /* 左寄せの場合はauto→0 */
  padding: 0;
}

.period dt{
  display: inline-block;
  padding: 5px 10px;
  border-radius: 0;
  vertical-align: middle;
  background-color: #fff;
  border: 1px solid #fff;
  color: #436073;
}

.period dd{
  display: inline-block;
  margin-left: 0;
  padding: 5px 20px;
  vertical-align: top;
}

#registration .period dt{
  width: 60px;
}

/* 登録期間おわり  */

/* 参加登録フロー はじまり */

/* お願い */

.important{
  max-width: 650px;
  width: 100%;
  margin: 20px auto 10px;
  padding: 10px 20px;
  border: 2px solid #DC0509;
  background-color: rgba(255, 255, 255, 0.5);
  display: block;
  word-break: break-all;
  border-radius: 10px;
}

.important .center{
  display: block;
  color: #DC0509;
  text-align: center;
  margin-bottom: -20px;
}

.important ul{
  margin: 10px auto;
  line-height: 1.5;
}

.important li{
  color: #DC0509;
  padding: 0;
  margin: 0 20px 0 25px;
  font-weight: bold;
}

.important p{
  padding: 0;
  margin: 0;
  font-weight: bold;
  color: #DC0509;
}

/* ※＜重要＞ */

.imp-box{
  max-width: 1000px;
  width: 100%;
  padding: 5px 20px 5px;
  line-height: 2;
  border-radius: 10px;
  background-color: rgba(255, 255, 255, 0.5);
}

.imp-box dl{
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  margin: 0;
}

.imp-box dt{
  display: inline-block;
  width: 120px;
  height: auto;
  padding: 0;
  font-weight: 600;
  vertical-align: middle;
}

.imp-box dd{
  /* imp-boxのmax-widthに合わせて調整 */
  width: 780px;
  margin-left: 10px;
  padding: 0;
  vertical-align: middle;
}

@media screen and (max-width: 750px) {

  .imp-box dl{
    flex-wrap: wrap;
  }

  .imp-box dt,.imp-box dd{
    display: block;
    width: 100%;
    height: auto;
  }

}

/* フロー */

.flow p{
  line-height: 1.5;
}

.flow{
  width: 100%;
  margin: 50px auto;
}

.flow h4{
  border-left: none;
}

.flow-box{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: left;
  width: 100%;
  margin: 10px auto 20px;
}

.flow-arrow{
  display: inline-block;
  vertical-align: middle;
  color: #020873;
  line-height: 1;
  width: 2em;
  height: 2em;
  border: 0.3em solid currentColor;
  border-left: 0;
  border-bottom: 0;
  box-sizing: border-box;
  transform: translateY(-25%) rotate(135deg);
  margin: 10px auto 20px;
}

.btn-flow,
a.btn-flow,
button.btn-flow{
	background-color: #020873;
  border: none;
  max-width: 450px;
  width: 100%;
  height: 70px;
  font-size: 1.7rem;
  border-radius: 1.0rem;
  font-weight: 600;
  line-height: 20px;
  cursor: default;
}

.btn-flow span,
a.btn-flow span,
button.btn-flow span{
  font-size: 1.3rem;
  font-weight: 500;
}

/* 参加登録フロー おわり */

/*メインコンテンツ（endai）はじまり*/

.e_table {
  padding-left: 25px;
  margin-bottom: 20px;
}

.e_table table {
  border-collapse: collapse; /* セルの線を重ねる */
}

.e_table tr:nth-child(odd) {
  background-color: rgba(171, 213, 231, 0.5); /* 背景色指定 */
}

.e_table th,
td {
  border: none;
  padding: 5px 10px; /* 余白指定 */
}

/*メインコンテンツ（endai）おわり*/

/*メインコンテンツ（chair）はじまり*/

.coi {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  text-align: center;
  align-items: center;
  margin: 0 auto;
}

.coi-box {
  max-width: 250px;
  width: 100%;
  margin-bottom: 10px;
}

.coi img {
  max-width: 250px;
  width: 100%;
}

.coi p {
  font-weight: 600;
  text-decoration: underline;
  margin-bottom: -5px;
  /* HP毎に調整 */
  margin-left: -20px;
  /* HP毎に調整 */
}

/*メインコンテンツ（chair）おわり*/

/*メインコンテンツ（access）はじまり*/

.map {
  display: block;
  margin: 10px auto;
  text-align: center;
}

.map iframe {
  width: 90%;
  height: 450px;
}

/*メインコンテンツ（guide）おわり*/

/*メインコンテンツ（sp-link）はじまり*/

.sp-bn {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  text-align: center;
  align-items: center;
  margin: 20px auto;
}

.bn-box {
  max-width: 200px;
  width: 100%;
  margin-bottom: 10px;
}

.sp-bn img {
  max-width: 200px;
  width: 100%;
  margin-bottom: 10px;
}

.sp-bn p {
  font-weight: 600;
  margin-bottom: 10px;  /* HP毎に調整 */
  margin-left: -10px;  /* HP毎に調整 */
}

/*メインコンテンツ（sp-link）おわり*/

/* link はじまり */

.link a {
  text-decoration: none;
}

.link ul {
  margin: 20px 0 20px -40px;
}

.link li {
  list-style-type: none;
  position: relative;
  margin: 0;
  padding: 5px 10px 5px 15px;
  border-bottom: 2px solid rgba(171, 213, 231, 0.5);
}

/* link おわり */

/* arrowはじまり */

/*リンクを右下に固定*/
#arrow {
  position: fixed;
  bottom: 8%;
  right: 1%;
  z-index: 2;
   /*はじめは非表示*/
  opacity: 0;
  transform: translateY(100px);
}

#arrow a {
  /*天地中央にテキストを配置*/
  display: flex;
  align-items: center;
  justify-content: center;
  /*円の形状（spは50px）*/
  width: 60px;
  height: 60px;
  box-sizing: border-box;
  padding: 0 20px;
  line-height: 80px;
  text-align: center;
  text-decoration: none;
  border-radius: 50%;
  filter: brightness(1.5);
  background: linear-gradient(to bottom,#092640,#023E73,#034C8C);
  color: rgba(4, 104, 191, 0.9);
}

#arrow a:hover {
  filter: brightness(2);
}

/*　上に上がる動き　*/

#arrow.upmove{
  animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
  from {
    opacity: 0;
  transform: translateY(100px);
  }
  to {
    opacity: 1;
  transform: translateY(0);
  }
}

/*　下に下がる動き　*/

#arrow.downmove{
  animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
    opacity: 1;
  transform: translateY(0);
  }
  to {
    opacity: 1;
  transform: translateY(100px);
  }
}

/* arrowおわり */

/*footerはじまり*/

footer {
  width: 100%;
  text-align: center;
  padding: 20px 0;
  left: 0;
  bottom: 0;
  background: url(img/bg3.png) bottom center/ cover no-repeat;
  color: #fff;
}

footer small {
  font-size: 1.5rem;
}

.f-main{
  background-color: rgba(2, 62, 115, 0.2);
}

.f-main section{
  margin-bottom: 0;
}

/*footerおわり*/

@media screen and (max-width: 1024px) {

  .pc {
    display: none;
  }

  .sp {
    display: initial;
  }

  .content {
    flex-direction: column;
    height: 100%;
  }

  /* menu */

  #navi {
    flex: 1 0 1000;
    margin: 0 auto;
    align-self: stretch;
  }

/* main */

  .main, .f-main {
    align-self: stretch;
    margin: 0 auto;
    padding: 0 10px;
  }

  h1{
    margin: 100px auto 0;
  }

  h2, .gp-box h4 {
    font-size: 2.3rem;
  }
  
  h3, .gp-box h4 span,.iin caption {
    font-size: 2.0rem;
  }
  
  h4, h5, .main-text h3 span {
    font-size: 1.8rem;
  }

  /* home image */

  .home-image{
    height: auto;
  }

  .home-image h1{
    margin: 15% auto 0;
  }

  .home-image img {
    width: 100%;
  }

  .home-text{
    margin: 10% auto 0;
  }

  .home-text h3{
    font-size: 2.5rem;
  }

  .home-text h4{
    font-size: 2.0rem;
  }

  .home-text h5{
    font-size: 1.8rem;
  }

  .page-image{
    height: 30vw;
  }

  .page-image h1{
    padding: 20% 5% 0;
  }

  section{
    padding: 20px;
  }

  section p{
    padding: 0 40px;
  }

  /* 登録期間 */

  .btn-bot,
  a.btn-bot{
    width: 200px;
    height: 200px;
    padding: 3rem 1rem 1rem;
  }

  .btn-bot .date,
  a.btn-bot .date{
    font-size: 2.5rem;
  }

  /* ボタン */

  .btn,
  a.btn,
  button.btn {
    font-size: 1.8rem;
  }

  .btn-login,
  a.btn-login {
    font-size: 2.3rem;
    padding: 2rem 1rem;
    margin: 10px 10px 30px;
  }

  .btn-login span,
  a.btn-login span{
    font-size: 1.4rem;
    line-height: 2.5rem;
  }

  .btn-bot,
  a.btn-bot{
    padding: 1rem 2rem;
  }

  /* プログラム */
  .p-section dl{
    padding: 5px 0 5px 20px;
  }

  .p-box {
    padding: 10px 0;
  }
}

@media screen and (max-width: 750px) {

  body{
    font-size: 1.4rem;
  }

  h1 {
    font-size: 2.3rem;
  }
  
  h2, .gp-box h4 {
    font-size: 1.8rem;
  }
  
  h3, .gp-box h4 span,.iin caption {
    font-size: 1.6rem;
  }
  
  h4, h5, .main-text h3 span {
    font-size: 1.4rem;
  }

  .home-image{
    height: auto;
  }
  
  .home-image h1{
    margin: 150px auto 0;
    padding: 0 20px;
  }

  .home-text{
    margin: 10px auto 0;
  }

  .home-text h3{
    font-size: 2.0rem;
  }

  .home-text h4{
    font-size: 1.8rem;
  }

  .home-text h5{
    font-size: 1.6rem;
  }

  .page-image{
    height: 50vw;
  }

  .page-image h1{
    padding: 35% 5% 0;
  }

  #side .etc h4{
    font-size: 1.4rem;
  }

   /* 登録期間 */

   .btn-bot,
   a.btn-bot{
     width: 180px;
     height: 180px;
     padding: 1.5rem 2rem;
     margin-bottom: 5px;
   }

   .btn-bot .date,
   a.btn-bot .date{
     font-size: 2.0rem;
   }

   /*  main */

  .main, .f-main {
    padding: 0 20px;
  }

  section{
    padding: 20px 0;
  }

  section p{
    padding: 0 20px;
  }

  .info h2{
    margin: 0 auto 20px;
    padding: 10px 0;
  }

  .scroll{
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    padding: 0;
  }

  .scroll-box{
    padding: 0;
    border-left: none;
  }

  .scroll-box dl{
    height: auto;
  }

  .scroll-box dt{
    width: auto;
    height: auto;
    padding: 0 10px;
  }

  .scroll-box dd{
    width: 100%;
    margin: 0;
    padding: 0 10px;
  }

  /* text */

  section h4 {
    padding: 5px;
  }

  section ul,
  section ol {
    margin: 10px 10px;
  }

  ol.de li{
    margin-left: 30px;
  }

  section p {
    padding: 0;
  }

  section .plus,
  section .plus.p1,
  section .plus.p2,
  section .plus.p3 {
    position: relative;
    margin: 0 0 0 20px;
  }

  /* ボタン */

  .btn,
  a.btn,
  button.btn {
    font-size: 1.6rem;
  }

  .btn-login,
  a.btn-login {
    font-size: 2.0rem;
    margin: 20px 10px 30px;
  }

  /* greeting */

  .g-box, .g-box .gp-box {
    padding: 0;
  }

  .g-box img {
    max-width: 120px;
  }

  /* gakkai */

  #gi table th:first-child {
    display: block;
    width: 100%;
  }
  
  #gi table td {
    display: block;
    width: 100%;
  }

  .iin table th:first-child{
    width: auto;
  }

  /* プログラム */

  .p-section dl{
    padding: 5px;
  }

  /* 参加登録 */

  .period dl{
    padding: 10px 20px;
  }

  .period dt{
    display: inline-block;
    float: none;
  }

  .period dd{ 
    margin-left: 0;
  }

  .fee .tri {
    margin: 0 0 0 20px;
  }

  .fee .imp-box dt{
    float: none;
  }

  .fee .imp-box dd{
    margin: 0 0 10px 10px;
  }

  .flow {
    margin: 30px auto 20px;
  }

  .btn-flow,
  a.btn-flow,
  button.btn-flow{
    height: auto;
    padding: 2rem 4rem;
  }

  /* endai */

  ol.kakko li:before,
  ol.cnt li:before{
    margin-left: -45px;
  }

  ul.disc li::before{
    margin-left: -20px;
  }

  /* リンク */

  .link ul {
    margin: 20px 0 20px -40px;
  }

  /* arrow */

  #arrow a {
    width: 50px;
    height: 50px;
  }

}