@charset "UTF-8";
/* CSS Document */
/*リセットCSS*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1.5; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after, q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/*clearfix*/
.clear-fix::after {
  content: "";
  display: block;
  clear: both; }

/*hide-contents*/
.pc-hide {
  display: none; }

.sp-hide {
  display: block; }

@media screen and (max-width: 1000px) {
  .pc-hide {
    display: block; }

  .sp-hide {
    display: none; } }
.img-fluid {
  max-width: 100%;
  height: auto; }

.container {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto; }

@media (min-width: 576px) {
  .container {
    max-width: 540px; } }
@media (min-width: 768px) {
  .container {
    max-width: 720px; } }
@media (min-width: 1080px) {
  .container {
    max-width: 1000px; } }
@media (min-width: 1200px) {
  .container {
    max-width: 1140px; } }
.text-left {
  text-align: left !important; }

.text-right {
  text-align: right !important; }

.text-center {
  text-align: center !important; }

@media screen and (max-width: 1000px) {
  	/*============
  nav
  =============*/
  nav {
    display: block;
    position: fixed;
    top: 0;
    left: -300px;
    bottom: 0;
    width: 300px;
    background: #ffffff;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transition: all .5s;
    z-index: 3;
    opacity: 0; }

  .open nav {
    left: 0;
    opacity: 1; }

  nav .inner {
    padding: 25px; }

  nav .inner ul {
    list-style: none;
    margin: 0;
    padding: 0; }

  nav .inner ul li {
    position: relative;
    margin: 0;
    border-bottom: 1px solid #333; }

  nav .inner ul li a {
    display: block;
    color: #333;
    font-size: 14px;
    padding: 1em;
    text-decoration: none;
    transition-duration: 0.2s; }

  nav .inner ul li a:hover {
    background: #e4e4e4; } }
@media screen and (max-width: 767px) {
  nav {
    left: -220px;
    width: 220px; } }
/*============
.toggle_btn
=============*/
.toggle_btn {
  display: block;
  position: fixed;
  top: 30px;
  right: 30px;
  width: 30px;
  height: 30px;
  transition: all .5s;
  cursor: pointer;
  z-index: 3; }

.toggle_btn span {
  display: block;
  position: absolute;
  left: 0;
  width: 30px;
  height: 2px;
  background-color: #333;
  border-radius: 4px;
  transition: all .5s; }

.toggle_btn span:nth-child(1) {
  top: 4px; }

.toggle_btn span:nth-child(2) {
  top: 14px; }

.toggle_btn span:nth-child(3) {
  bottom: 4px; }

.open .toggle_btn span {
  background-color: #fff; }

.open .toggle_btn span:nth-child(1) {
  -webkit-transform: translateY(10px) rotate(-315deg);
  transform: translateY(10px) rotate(-315deg); }

.open .toggle_btn span:nth-child(2) {
  opacity: 0; }

.open .toggle_btn span:nth-child(3) {
  -webkit-transform: translateY(-10px) rotate(315deg);
  transform: translateY(-10px) rotate(315deg); }

/*============
#mask
=============*/
#mask {
  display: none;
  transition: all .5s; }

.open #mask {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: .8;
  z-index: 2;
  cursor: pointer; }

/*============
main
=============*/
main h1 {
  font-family: 'Open Sans', sans-serif;
  font-weight: 400;
  text-align: center; }

/*============
body
=============*/
body {
  font-family: 'Open Sans', sans-serif;
  font-weight: 400;
  background-color: #fbf8f0; }

.mainvisual {
  margin: 0 auto;
  text-align: center;
  background: url("./img/bg01.webp") repeat-y center center transparent fixed;
  padding: 50px 0;
  box-sizing: border-box;
  background-size: contain; }

h2 {
  position: relative;
  padding: 1rem 2rem;
  border: 4px solid #000;
  font-size: 24px;
  font-weight: bold;
  margin: 2rem auto 1rem; }

h2:before {
  position: absolute;
  top: 4px;
  left: 4px;
  width: calc(100% - 8px);
  height: calc(100% - 8px);
  content: '';
  border: 2px solid #000; }

h3 {
  padding: .5rem 2rem;
  border-top: 3px dashed #909090;
  border-bottom: 3px dashed #909090;
  font-size: 20px;
  font-weight: bold;
  margin: 2rem 0 .5rem; }

h4 {
  padding: 0 1rem;
  border-left: 4px dotted #909090;
  font-weight: bold;
  margin: 2rem 0 .5rem;
  font-size: 18px; }

section .container {
  padding: 50px;
  background-color: rgba(255, 255, 255, 0.9);
  box-sizing: border-box; }
  section .container p {
    font-size: 16px;
    line-height: 2; }

#about {
  background: url("./img/about_bg.webp") no-repeat center center transparent fixed;
  padding: 100px 0;
  box-sizing: border-box;
  background-size: cover; }
  #about .container {
    padding: 50px;
    background-color: rgba(255, 255, 255, 0.9);
    box-sizing: border-box; }
    #about .container p {
      font-size: 20px;
      line-height: 2; }

#merit .container {
  padding: 50px;
  background-color: rgba(255, 255, 255, 0.9);
  box-sizing: border-box; }
  #merit .container ul {
    font-size: 20px;
    line-height: 2; }
    #merit .container ul li {
      margin-bottom: 1rem;
      text-indent: -1.5rem;
      margin-left: 2rem; }
      #merit .container ul li::before {
        content: '◉';
        margin-right: 0.5rem; }

#summary .container dl,
#schedule .container dl,
#flow .container dl {
  display: flex;
  margin: 1rem 0;
  border-bottom: 1px solid #909090;
  line-height: 2; }
  #summary .container dl dt,
  #schedule .container dl dt,
  #flow .container dl dt {
    width: 200px;
    margin-right: 20px;
    font-weight: bold;
    border-left: 2px solid #909090;
    border-right: 2px dashed #909090;
    padding: 1rem;
    box-sizing: border-box; }
  #summary .container dl dd,
  #schedule .container dl dd,
  #flow .container dl dd {
    padding: 1rem;
    box-sizing: border-box;
    max-width: 800px; }
#summary .container ul,
#schedule .container ul,
#flow .container ul {
  font-size: 16px;
  line-height: 1; }
  #summary .container ul li,
  #schedule .container ul li,
  #flow .container ul li {
    margin-bottom: 1rem;
    text-indent: -1.5rem;
    margin-left: 2rem; }
    #summary .container ul li::before,
    #schedule .container ul li::before,
    #flow .container ul li::before {
      content: '◉';
      margin-right: 0.5rem; }
#summary .container .step,
#schedule .container .step,
#flow .container .step {
  border: 2px solid #909090;
  padding: 20px;
  box-sizing: border-box;
  margin-bottom: 1rem; }
#summary .container .arrow,
#schedule .container .arrow,
#flow .container .arrow {
  width: 30px;
  height: 30px;
  border: 5px solid;
  border-color: transparent transparent #565656 #565656;
  transform: rotate(-45deg);
  margin: 0 auto 30px; }
#summary table,
#schedule table,
#flow table {
  width: 100%;
  max-width: 650px;
  margin: 0 auto; }
  #summary table th, #summary table td,
  #schedule table th,
  #schedule table td,
  #flow table th,
  #flow table td {
    border: 1px solid;
    padding: 1rem; }
  #summary table th,
  #schedule table th,
  #flow table th {
    font-weight: bold; }

@media screen and (max-width: 980px) {
  #about {
    padding: 50px 10px; }

  section .container,
  #about .container,
  #merit .container {
    padding: 15px; }

  #summary .container dl, #schedule .container dl, #flow .container dl {
    display: block; }

  #summary .container dl dt, #schedule .container dl dt, #flow .container dl dt {
    border-right: none; } }
