html {
  overflow-x: hidden;
  font-size: 16px;
}

/* Define base font size */
html {
  font-size: 16px;
}

/* Define media queries for various device sizes */
@media (min-width: 576px) {
  /* Small devices (phones) */
  html {
    font-size: 14px;
  }
}

@media (min-width: 768px) {
  /* Small Portable devices (tablets) */
  html {
    font-size: 16px;
  }
}

@media (min-width: 992px) {
  /* Medium size devices (small laptops) */
  html {
    font-size: 18px;
  }
}

@media (min-width: 1200px) {
  /* Extra large devices (larger laptops, some desktops) */
  html {
    font-size: 20px;
  }
}

@media (min-width: 1600px) {
  /* Regular desktops, large laptops */
  html {
    font-size: 22px;
  }
}

/* Fonts -----------------------------------------------------------------*/
.col-xs-5ths,
.col-sm-5ths,
.col-md-5ths,
.col-lg-5ths {
  position: relative;
  min-height: 1px;
  padding-right: 15px;
  padding-left: 15px;
}

.col-xs-5ths {
  width: 20%;
  float: left;
}

@media (min-width: 768px) {
  .col-sm-5ths {
    width: 20%;
    float: left;
  }
}

@media (min-width: 992px) {
  .col-md-5ths {
    width: 20%;
    float: left;
  }
}

@media (min-width: 1200px) {
  .col-lg-5ths {
    width: 20%;
    float: left;
  }
}

@font-face {
  font-family: "新丸ゴ DB";
  src: url("../fonts-science-fair/A-OTF-ShinMGoPro-DeBold.woff")
    format("truetype");
}

@font-face {
  font-family: "新丸ゴ R";
  src: url("../fonts-science-fair/A-OTF-ShinMGoPro-Regular.otf");
}

@font-face {
  font-family: "新丸ゴ U";
  src: url("../fonts-science-fair/A-OTF\ Shin\ Maru\ Go\ Pro\ U.otf");
}

/* Bootstrap 5ths container -----------------------------------------------------------------*/
.col-xs-5ths,
.col-sm-5ths,
.col-md-5ths,
.col-lg-5ths {
  position: relative;
  min-height: 1px;
  padding-right: 15px;
  padding-left: 15px;
}

.col-xs-5ths {
  width: 20%;
  float: left;
}

@media (min-width: 768px) {
  .col-sm-5ths {
    width: 20%;
    float: left;
  }
}

@media (min-width: 992px) {
  .col-md-5ths {
    width: 20%;
    float: left;
  }
}

@media (min-width: 1200px) {
  .col-lg-5ths {
    width: 20%;
    float: left;
  }
}

@font-face {
  font-family: "新丸ゴ DB";
  src: url("../fonts/A-OTF-ShinMGoPro-DeBold.woff") format("truetype");
}

@font-face {
  font-family: "新丸ゴ R";
  src: url("../fonts/A-OTF-ShinMGoPro-Regular.otf");
}

@font-face {
  font-family: "新丸ゴ U";
  src: url("../fonts/A-OTF\ Shin\ Maru\ Go\ Pro\ U.otf");
}
/* SPECIFIC CSS ------------------------------------------------------------------*/
h1 {
  font-family: "noto-sans-cjk-jp", sans-serif;
  color: #fff;
  font-size: 2.5rem;
  text-align: left;
  font-weight: bolder;
}

h2 {
  font-family: "noto-sans-cjk-jp", sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 1.5rem;
  font-weight: bold;
}

h3 {
  font-family: "noto-sans-cjk-jp", sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 1.22rem;
  color: #fff;
}

h4 {
  font-family: "noto-sans-cjk-jp", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: #383537;
  text-align: center;
  color: #fff;
}

h5 {
  font-family: "noto-sans-cjk-jp", sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 1.22rem;
  color: #000;
  text-align: center;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

p {
  font-family: "noto-sans-cjk-jp", sans-serif;
  font-size: 1rem;
  font-weight: lighter;
  color: #1d1d1b;
  line-height: 1.25rem;
}

.container-parent {
  position: relative;
}

.p-sub {
  font-size: 0.75rem;
}

.child-element {
  position: absolute;
}
/*Breakpoints------------------------------------------------------------------*/

@media (max-width: 575px) {
  .pc-display {
    display: none;
  }
}

@media (min-width: 767px) {
  .tablet-display {
    display: none;
  }
}

@media (min-width: 576px) {
  .mobile-display {
    display: none;
  }
}
.padding-band-1rem {
  padding-top: 1rem;
}
.padding-band-2rem {
  padding-top: 2rem;
}
.padding-band-3rem {
  padding-top: 3rem;
}
.padding-band-5rem {
  padding-top: 5rem;
}
.padding-band-7rem {
  padding-top: 7rem;
}
.padding-band-9rem {
  padding-top: 9rem;
}

.padding-0 {
  padding-right: 0;
  padding-left: 0;
}

@media (min-width: 576px) {
  .container-mobile {
    padding-left: 10%;
    padding-right: 10%;
  }
}

/* Alignment & SCALE CONTROLS------------------------------------------------------------------*/

.Anchor-Point-Top-Left {
  transform: translate(0%, 0%);
}

.Anchor-Point-Top-Center {
  transform: translate(-50%, 0%);
}

.Anchor-Point-Top-Right {
  transform: translate(-100%, 0%);
}

.Anchor-Point-Center-Left {
  transform: translate(0%, -50%);
}

.Anchor-Point-Center {
  transform: translate(-50%, -50%);
}

.Anchor-Point-Center-Right {
  transform: translate(0%, -50%);
}

.Anchor-Point-Bottom-Left {
  transform: translate(0%, -100%);
}

.Anchor-Point-Bottom-Center {
  transform: translate(-50%, -100%);
}

.Anchor-Point-Bottom-Right {
  transform: translate(-100%, -100%);
}

.vertical-center {
  margin: 0;
  position: relative;
  top: 50%;
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

.horizontal-center {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.Align-Right {
  display: block;
  margin-left: auto;
  margin-right: 10%;
}
