@charset "UTF-8";
/* ==========================================================================
   Sections
========================================================================== */
.section {
  margin-top: 3rem;
  margin-bottom: 3rem;
}
.section-padding {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.content {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
@media (min-width: 992px) {
  .container, .container-sm, .container-md, .container-lg {
    max-width: 890px;
  }
}
@media (min-width: 1200px) {
  .container, .container-sm, .container-md, .container-lg, .container-xl {
    max-width: 890px;
  }
}
hr {
  border-top: 1px solid var(--border1);
  margin: 20px 0;
}

/* ==========================================================================
   Links
========================================================================== */
a {
  color: inherit;
  text-decoration: none;
  transition: .2s ease-in-out;
  transition-property: opacity, color, background;
}
/* ==========================================================================
   Image
========================================================================== */
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
.fit-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cover {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
svg.icon {
  fill: currentColor;
  width: 1.25em;
  height: 1.25em;
  vertical-align: middle;
}

/* ==========================================================================
   Typography
========================================================================== */
.font1, .en_ttl {
  font-family: var(--font1);
  text-transform: uppercase;
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
  font-weight: 700;
  position: relative;
}
h1 a, .h1 a, h2 a, .h2 a, h3 a, .h3 a, h4 a, .h4 a, h5 a, .h5 a, h6 a, .h6 a {
  text-decoration: none;
}
h1, .h1 {
  font-size: 3em;
  line-height: 1.6;
}
h2, .h2 {
  font-size: 1.875em;
  line-height: 1.65;
}
h3, .h3 {
  font-size: 1.5em;
  line-height: 1.65;
}
h4, .h4 {
  font-size: 1.25em;
  line-height: 1.75;
}
h5, .h5 {
  font-size: 1.125em;
}
h6, .h6 {
  font-size: 1em;
}
p {
  margin-top: 1em;
  margin-bottom: 1em;
}
p:first-child { margin-top: 0; }
p:last-child { margin-bottom: 0; }
small, .small {
  font-size: .857em;
  line-height: 1.8;
  display: inline-block;
}
.xsmall {
  font-size: .75em;
  line-height: 1.75;
  display: inline-block;
}

@media (min-width: 576px) {
  h1, .h1 {
    font-size: 4em;
  }
}

.fw-400, .text-normal { font-weight: 400 !important; }
.fw-500, .text-medium { font-weight: 500 !important; }
.fw-600, .text-semibold { font-weight: 600 !important; }
.fw-700, .text-bold { font-weight: 700 !important; }
.text-italic { font-style: italic; }
.text-justify { text-align: justify; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.text-center { text-align: center !important; }
@media (min-width: 576px) {
  .text-sm-left { text-align: left !important; }
  .text-sm-right { text-align: right !important; }
  .text-sm-center { text-align: center !important; }
}
@media (min-width: 768px) {
  .text-md-left { text-align: left !important; }
  .text-md-right { text-align: right !important; }
  .text-md-center { text-align: center !important; }
}
@media (min-width: 992px) {
  .text-lg-left { text-align: left !important; }
  .text-lg-right { text-align: right !important; }
  .text-lg-center { text-align: center !important; }
}
@media (min-width: 1200px) {
  .text-xl-left { text-align: left !important; }
  .text-xl-right { text-align: right !important; }
  .text-xl-center { text-align: center !important; }
}

/* ==========================================================================
   Button
========================================================================== */
.btn {
  display: inline-block;
  text-align: center;
  font-size: 1.077em;
  font-family: inherit;
  letter-spacing: .05em;
  line-height: 1.2;
  font-weight: 600;
  padding: 1.2em 2em;
  width: 100%;
  max-width: 100%;
  border-radius: 3em;
  background: var(--color7);
  border: 0;
  color: var(--black);
  text-decoration: none;
  outline: none;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: background .3s ease-out;
}
.btn > span {
  display: block;
  position: relative;
}

.btn::after {
  content: '';
  position: absolute;
  top: -60px;
  left: -60px;
  width: 50px;
  height: 50px;
  background-image: linear-gradient(100deg, rgba(255, 255, 255, 0) 10%, rgba(255, 255, 255, 1) 100%, rgba(255, 255, 255, 0) 0%);
}
@keyframes shiny {
  0% {
    transform: scale(0) rotate(25deg);
    opacity: 0;
  }
  20% {
    transform: scale(1) rotate(25deg);
    opacity: .75;
  }
  100% {
    transform: scale(50) rotate(25deg);
    opacity: 0;
  }
}

.btn:hover::after {
  animation: shiny 1s ease-in-out forwards;
}

@media (min-width: 576px) {
  .btn {
    width: auto;
    min-width: 18.75rem;
    padding-right: 3em;
    padding-left: 3em;
  }
}
@media (min-width: 992px) {
  .btn {
    font-size: 1em;
  }
}

.btn.bg5 {
  background: var(--color5);
  color: #FFF;
}
.btn.bg6 {
  background: var(--color6);
  color: #FFF;
}
/* ==========================================================================
   table of content navigation
========================================================================== */
#tocNav ul {
  list-style-type: none;
  display: flex;
  flex-wrap: wrap;
  padding: 0;
  margin: 2rem auto 1rem;
  gap: 6px;
}
#tocNav ul li {
  flex-basis: calc((100% - 12px)/3);
}
#tocNav ul li a {
  display: block;
  text-align: center;
  padding: .75em 0;
  border-radius: .5em;
  background: var(--black);
  color: var(--white);
  font-size: 1rem;
  letter-spacing: .08em;
  font-weight: 700;
}
#tocNav ul li:nth-of-type(1) a:hover { background: var(--color1); }
#tocNav ul li:nth-of-type(2) a:hover { background: var(--color2); }
#tocNav ul li:nth-of-type(3) a:hover { background: var(--color3); }
#tocNav ul li:nth-of-type(4) a:hover { background: var(--color4); }
#tocNav ul li:nth-of-type(5) a:hover { background: var(--color5); }
#tocNav ul li:nth-of-type(6) a:hover { background: var(--color6); }

@media (min-width: 768px) {
  #tocNav ul {
    flex-wrap: nowrap;
  }
  #tocNav li {
    flex-basis: 100%;
  }
  #tocNav ul li a {
    letter-spacing: .16em;
  }
}

/* ==========================================================================
   Page header
========================================================================== */
.headline {
  text-align: center;
}
.headline .en_ttl {
  display: block;
  font-size: 4.5rem;
  color: var(--l-gray);
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase;
  margin-bottom: -.5em;
}
.headline .ttl {
  color: var(--color1);
  font-weight: 900;
  letter-spacing: .06em;
}

/* ==========================================================================
   hr
========================================================================== */
/*
main > section ~ section::before {
  content: '';
  display: block;
  height: 8px;
  background-image: repeating-linear-gradient(45deg, #111 0, #111 2px, transparent 0, transparent 50%);
  background-size: 8px 8px;
}*/

/* ==========================================================================
   Read
========================================================================== */
.read {
  font-size: 1.286em;
}

/* ==========================================================================
   Box
========================================================================== */
.box {
  background: var(--white);
  border-radius: 1rem;
  padding: 2.5rem 4.348%;
}

.box .headline + *,
.box .headline + * ~ * {
  margin-top: 1.5rem;
}

.box a:not(.btn) {
  text-decoration: underline;
  color: var(--color5);
}

.box h3 {
  background: var(--gray);
  color: var(--white);
  border-radius: 3em;
  padding: .25em 2em;
  margin: 2.5rem 0 1rem;
  text-align: center;
  font-size: 1rem;
  letter-spacing: .16em;
}

.box ul {
  padding-left: 1.5em;
}
.box ul li {
  margin-bottom: .25em;
}
.box table th {
  text-align: left;
  white-space: nowrap;
  padding-right: 2em;
  padding-bottom: .25em;
}
.box table td {
  padding-bottom: .25em;
}
@media (max-width: 575px) {
  .box table th,
  .box table td {
    display: block;
  }
  .box table th {
    padding-bottom: 0;
  }
  .box table td {
    padding-bottom: .5em;
  }
}

.box dl {
  margin: 0 auto 1.5rem;
}
.box dl dt {
  font-size: 1.286em;
  font-weight: 700;
  line-height: 1.375;
  color: var(--color1);
  border-left: 3px solid currentColor;
  padding-left: .5em;
  white-space: nowrap;
  font-feature-settings: "palt";
}
.box dl dd {
  flex-basis: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.box dl dd .btn {
  font-size: .813em;
  padding: .6em 1.5em;
  width: auto;
  min-width: inherit;
}
@media (min-width: 768px) {
  .box dl {
    display: flex;
    align-items: flex-start;
  }
}

/* ==========================================================================
   youtube
========================================================================== */
.youtube {
  width: 100%;
  aspect-ratio: 16 / 9;
}
.youtube iframe {
  width: 100%;
  height: 100%;
}

/* ==========================================================================
   flow
========================================================================== */
ol.flow {
  list-style-type: none;
  max-width: 466px;
  margin-right: auto;
  margin-left: auto;
}
ol.flow li {
  background: var(--l-gray);
  border-radius: 3em;
  padding: .5em 2em;
  margin: .5rem 0;
  text-align: center;
  font-size: .875rem;
  font-weight: 500;
  letter-spacing: .08em;
}
ol.flow li:nth-of-type(1) { background: rgba(235,103,53,.1); }
ol.flow li:nth-of-type(2) { background: rgba(235,103,53,.3); }
ol.flow li:nth-of-type(3) { background: rgba(235,103,53,.5); }
ol.flow li:nth-of-type(4) { background: rgba(235,103,53,.7); }
ol.flow li:nth-of-type(5) { background: rgba(235,103,53,.9); }

/* ==========================================================================
   card
========================================================================== */
ul.cards {
  list-style-type: none;
  padding-left: 0;
  row-gap: 30px;
}
ul.cards .card {
  display: block;
}
ul.cards .card .ttl {
  font-size: 1rem;
  margin-top: .25rem;
  text-align: center;
}
ul.cards .card p {
  font-size: .813rem;
  margin-top: .25rem;
}

/* ==========================================================================
   FAQ
========================================================================== */
.faq-list {
  counter-reset: faqcounter 0;
  padding-bottom: .5em;
}
.faq-list > div {
  counter-increment: faqcounter;
  padding: 1rem 0;
  margin-bottom: .5em;
  border-bottom: 1px solid var(--border1);
  position: relative;
}
.faq-list .faq--q {
  display: flex;
  font-weight: 600;
  padding-right: 2.5em;
}
.faq-list .faq--q::before {
  content: "Q"counter(faqcounter);
  color: var(--color1);
  font-family: var(--font1);
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.25;
  margin-right: 1em;
}
.faq-list .faq--q::after {
  content: '';
  display: block;
  width: .6em;
  height: .6em;
  color: var(--color1);
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  position: absolute;
  top: 1.5em;
  right: 1em;
  transform: rotate(45deg);
}
.faq-list .on .faq--q::after {
  transform: translateY(50%) rotate(-135deg);
}
.faq-list .faq--a {
  padding-top: 1rem;
  padding-bottom: .5rem;
}
.faq-list .faq--a a {
  text-decoration: underline;
}
@media (min-width: 768px) {
  .faq-list .faq--q {
    font-size: 1.143em;
  }
}
@media (min-width: 992px) {
  .faq-list {
    font-size: 1rem;
  }
}

/* ==========================================================================
   Color
========================================================================== */
.black { color: var(--black); }
.white { color: var(--white); }
.color1 { color: var(--color1); }
.color2 { color: var(--color2); }
.color3 { color: var(--color3); }
.color4 { color: var(--color4); }
.color5 { color: var(--color5); }
.color6 { color: var(--color6); }
.red { color: var(--red); }
.gray { color: var(--gray); }
.bg-white { background-color: var(--white); }
.bg-color1 { background-color: var(--color1); color: var(--white); }








