@charset "UTF-8";
body, h1, h2, h3, h4, p, figure, blockquote, dl, dd {
  margin: 0;
}

.clearfix:before {
  content: " ";
  display: table;
}
.clearfix:after {
  content: " ";
  display: table;
  clear: both;
}

@media screen\0  {
  #content {
    font-family: "メイリオ", Meiryo, sans-serif;
  }
}
body {
  margin: 0;
  padding: 0;
  width: 100%;
  /*overflow-x: hidden;*/
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  margin: 0;
}

#header {
  width: 100%;
  text-align: center;
}
#header img {
  max-width: 100%;
  height: auto;
}

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#container {
  width: 100%;
  box-sizing: border-box;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #333;
}
#container p {
  font-size: 16px;
  line-height: 1.8;
}
#container img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}
#container a {
  text-decoration: none;
  transition: 0.4s;
}
#container .head_wrap {
  width: 100%;
  max-width: 1400px;
  position: relative;
  padding: 0;
  margin: 0 auto 50px;
}
#container .head_wrap .tag {
  width: 13%;
  position: absolute;
  top: 0;
  left: 2%;
  z-index: 1;
}
#container .head_wrap .head-link {
  width: 100%;
  height: 10vw;
  position: relative;
  background-image: url(./bg_sp_main.jpg);
  background-size: cover;
}
#container .head_wrap .head-link a {
  width: 85%;
  height: 10vw;
  display: block;
  margin: 0 0 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#container .head_wrap .head-link a img {
  width: 92%;
  margin: 0 auto;
  display: block;
}
#container .head_img {
  width: min(90%, 1000px);
  margin: 0 auto;
  z-index: 100;
  position: relative;
}
#container .head_inner {
  padding-top: 5.4%;
  background-color: #2d2d2d;
  position: relative;
}
#container .head_inner::before {
  content: " ";
  width: 100%;
  height: 68vw;
  background: url(hd_bg.jpg) no-repeat center top/cover;
  position: absolute;
  top: min(11vw, 75px);
}
#container .head_inner h1 {
  margin-top: -12px;
  z-index: 100;
  position: relative;
}
#container .head_inner h1 img {
  display: block;
}
#container .head_inner .h1_sub {
  width: min(93.3%, 810px);
  margin: 0 auto;
  background-color: #2d2d2d;
}
#container .head_inner .h1_main {
  width: min(100%, 940px);
  margin: 5px auto 0;
  background-color: #d04a02;
}
#container .head_inner .lead {
  width: min(90%, 780px);
  margin: 0 auto;
  padding: 30px 0;
  font-size: 16px;
  line-height: 1.7;
  color: #fff;
}
#container section h2 {
  width: min(90%, 820px);
  margin: 0 auto 45px;
  text-align: center;
  color: #d04a02;
  line-height: 1.6;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  letter-spacing: 0.1em;
  padding: 15px 0;
  font-size: min(5.1vw, 30px);
  position: relative;
}
#container section h2::before, #container section h2::after {
  position: absolute;
  content: " ";
  width: 100%;
  height: 1px;
  background-image: linear-gradient(to right, #d04a02 7px, transparent 7px);
  background-size: 15px 1px;
  background-position: left bottom;
  background-repeat: repeat-x;
  left: 50%;
  transform: translateX(-50%);
}
#container section h2::before {
  top: 0;
}
#container section h2::after {
  bottom: 0;
}
#container section > p {
  width: min(90%, 820px);
  margin: 0 auto 2em;
  font-size: 16px;
  line-height: 1.8;
}
#container section > p .name {
  font-weight: bold;
  color: #d04a02;
  margin-right: 1em;
}
#container section > p.mb50-80 {
  margin-bottom: 50px;
}
#container section > p.indent {
  text-indent: 1em;
}
#container section > p.note {
  font-size: 12px;
  color: #666;
  text-align: center;
}
#container section .speaker_box {
  position: relative;
  background-color: #2d2d2d;
  padding-bottom: 15px;
  margin: 0 auto 50px;
  max-width: 640px;
}
#container section .speaker_box img {
  display: block;
  width: 95%;
  margin: 0 0 0 auto;
  position: relative;
  z-index: 100;
}
#container section .speaker_box::before {
  content: " ";
  position: absolute;
  width: 100%;
  height: 30px;
  background-color: #fff;
  z-index: 10;
  top: 0;
  left: 0;
}
#container section .speaker_box .speaker_text {
  margin: 0 3% 0 5%;
}
#container section .speaker_box .speaker_text p {
  margin-top: 15px;
  font-size: 14px;
  color: #fff;
  line-height: 1.5;
}
#container section .speaker_box .speaker_text p span {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.8;
}
#container section .speaker_box:last-of-type img {
  margin: 0 auto 0 0;
}
#container section .speaker_box:last-of-type::before {
  right: 0;
}
#container section .fig_box {
  width: min(90%, 870px);
  margin: 0 auto 50px;
}
#container section .fig_box img {
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5);
}
#container section .fig_box p {
  font-size: 15px;
  color: #fff;
  padding: 18px;
  background-color: #464646;
  margin-top: 20px;
}
#container .bnr {
  width: 90%;
  max-width: 600px;
  margin: 40px auto 0;
  padding: 2% 0 3%;
  text-align: center;
  display: block;
}
#container .bnr:hover {
  opacity: 0.8;
}
#container .footer {
  background-color: #2d2d2d;
  margin-top: 60px;
  padding: 35px 0;
  text-align: center;
}
#container .footer .next_link a {
  position: relative;
  display: inline-block;
  padding: 2% min(10%, 70px);
  max-width: 530px;
  max-height: 70px;
  color: #2d2d2d;
  background-color: #fff;
  font-size: min(4vw, 20px);
  text-align: left;
  font-weight: 700;
  line-height: 1.4;
}
#container .footer .next_link a::before, #container .footer .next_link a::after {
  content: " ";
  position: absolute;
  background-repeat: no-repeat;
  top: 50%;
  transform: translateY(-50%);
  z-index: 150;
}
#container .footer .next_link a::before {
  background-image: url(next.svg);
  width: min(16vw, 100px);
  height: min(9.3vw, 58px);
  left: -12%;
}
#container .footer .next_link a::after {
  background-image: url(allow.svg);
  width: min(5.3vw, 28px);
  height: min(5.3vw, 28px);
  right: 3%;
}
#container .footer .next_link a span {
  display: block;
}
#container .footer .page_link {
  display: flex;
  justify-content: center;
  padding: 0;
  margin-top: 50px;
}
#container .footer .page_link a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
}
#container .footer .page_link a.passive {
  background-color: #fff;
  color: #2d2d2d;
}
#container .footer .page_link a.active {
  background-color: #d04a02;
  color: #fff;
}
#container .footer .page_link a:nth-of-type(2) {
  margin: 0 35px;
}
#container .footer .page_link a.allow {
  position: relative;
}
#container .footer .page_link a.allow::before {
  content: " ";
  position: absolute;
  width: 10px;
  height: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
  left: 7.5px;
  transition: all 0.4s;
}
#container .footer .page_link a.allow.allow_2::before {
  transform: rotate(-135deg);
  left: 11px;
}
#container.page2 section > p.mb50-100 {
  margin-bottom: 50px;
}
#container.page2 .corp {
  text-align: center;
  margin-top: 100px;
}
#container.page2 .corp a {
  display: inline-block;
}
#container.page2 .corp a img {
  display: block;
  width: 135px;
  margin: 0 auto 50px;
}
#container.page2 .corp a p {
  font-size: 20px;
  font-weight: 500;
  color: #000;
  margin-bottom: 1em;
}
#container.page2 .corp a span {
  font-size: min(3.6vw, 16px);
  font-weight: 400;
  color: #c62218;
}
#container.page2 .footer {
  padding: 55px 0;
  margin-top: 80px;
}
#container.page2 .footer .page_link {
  margin-top: 0;
}

@media screen and (min-width: 641px) {
  #container .head_wrap {
    margin-bottom: 100px;
  }
  #container .head_wrap .head-link {
    height: min(8.57vw, 120px);
  }
  #container .head_wrap .head-link div {
    display: flex;
    width: 100%;
    justify-content: center;
    height: 100%;
    margin: auto;
  }
  #container .head_wrap .head-link .tag {
    position: relative;
    width: auto;
    height: 120%;
    margin-right: 20px;
  }
  #container .head_wrap .head-link a {
    margin: 0;
    box-sizing: border-box;
    height: auto;
  }
  #container .head_inner {
    padding-top: min(3.6%, 37px);
  }
  #container .head_inner::before {
    height: min(58vw, 584px);
  }
  #container .head_inner h1 {
    margin-top: -39px;
  }
  #container .head_inner .lead {
    padding: 50px 0;
  }
  #container .footer .next_link a::before {
    transition: all 0.4s;
  }
  #container .footer .next_link a:hover {
    box-shadow: 9px 9px 15px #000;
  }
  #container .footer .next_link a:hover::before {
    left: -40px;
  }
  #container .footer .page_link a:hover.passive {
    background-color: #d04a02;
    color: #fff;
  }
  #container .footer .page_link a:hover.allow::before {
    border-color: #d04a02;
  }
  #container.page2 .head_img {
    width: min(45%, 540px);
    margin: 0 1% 0 0;
  }
  #container.page2 .head_inner {
    display: flex;
    justify-content: center;
    align-items: center;
    padding-bottom: 3%;
  }
  #container.page2 .head_inner::before {
    top: min(5vw, 60px);
    height: min(22.5vw, 270px);
  }
  #container.page2 .head_inner h1 {
    width: min(49%, 590px);
    margin-top: 0;
  }
  #container.page2 .head_inner .h1_sub {
    width: 100%;
  }
  #container.page2 section > p.mb50-100 {
    margin-bottom: 100px;
  }
  #container.page2 .corp a span {
    position: relative;
  }
  #container.page2 .corp a span::after {
    position: absolute;
    left: 0;
    content: "";
    width: 100%;
    height: 1px;
    background: #e0301e;
    bottom: -2px;
    transform: scale(0, 1);
    transform-origin: center top;
    transition: transform 0.3s;
  }
  #container.page2 .corp a:hover {
    opacity: 0.8;
  }
  #container.page2 .corp a:hover span::after {
    transform: scale(1, 1);
  }
}
@media screen and (min-width: 768px) {
  #container section h2 {
    margin: 0 auto 80px;
  }
  #container section .speaker_box {
    max-width: 960px;
    margin: 0 auto 100px;
    padding-bottom: 40px;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
  }
  #container section .speaker_box img {
    width: min(63%, 600px);
  }
  #container section .speaker_box .speaker_text {
    margin-top: 10%;
  }
  #container section .speaker_box .speaker_text p {
    margin-top: 0;
    font-size: min(1.4vw, 14px);
  }
  #container section .speaker_box .speaker_text p + p {
    margin-top: 50px;
  }
  #container section .speaker_box .speaker_text p span {
    font-size: min(2.4vw, 20px);
  }
  #container section .speaker_box::after {
    content: " ";
    position: absolute;
    width: 40px;
    height: 40px;
    background-color: #fff;
    right: 0;
    bottom: 0;
  }
  #container section .speaker_box.right {
    flex-direction: row-reverse;
  }
  #container section .speaker_box.right .speaker_text {
    margin-left: 3%;
  }
  #container section .speaker_box.left .speaker_text {
    margin-right: 3.2%;
    margin-left: 2.2%;
  }
  #container section .speaker_box.left::after {
    right: calc(100% - 40px);
  }
  #container section > p.mb50-80 {
    margin-bottom: 80px;
  }
  #container section .fig_box {
    margin-bottom: 80px;
  }
  #container section .fig_box p {
    font-size: 16px;
    color: #fff;
    padding: 20px;
  }
  #container .footer {
    margin-top: 120px;
    padding: 55px 0 70px;
  }
  #container .footer .next_link a {
    padding: 20px 65px;
  }
  #container .footer .next_link a span {
    display: inline;
  }
  #container .footer .next_link a::before {
    left: -50px;
  }
  #container .footer .page_link ul {
    margin-top: 60px;
  }
  #container.page2 #container .footer {
    margin-top: 80px;
  }
}