@charset "UTF-8";

/* ====================================================
  common
  ================================================== */

body {
  font-size: 16px;
  letter-spacing: 1px;
  line-height: 1.7;
  font-family: 'Zen Kaku Gothic New', sans-serif;
  overflow-wrap: break-word;
  background-color: #fff;
  color: #111;
  position: relative;
  margin: 0;
}
section {
  padding: 56px 4%;
}
h2 {
  font-size: clamp(20px, 3vw, 24px);
  margin-bottom: 0;
}
h3, dt {
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 24px;
}
h4 {
  margin-bottom: 24px;
  font-size: 1.2rem;
}
@media only screen and (min-width: 768px) {
  section {
    padding: 96px 12%;
  }
  h3, dt {
    margin-bottom: 20px;
    font-size: 20px;
  }
  h4 {
    margin-bottom: 16px;
    font-size: 1.1rem;
  }
}

p, dd {
  margin: 1.2rem 0;
}
li {
  list-style: none;
  margin: 1rem 0;
}
li p {
  margin: 0;
}
fieldset, abbr {
  border: 0; }

caption, th {
  text-align: left; }

q:before, q:after {
  content: ''; }
figure {
  margin: 0;
}
img {
  max-width: 100%;
  width:100%;
  height: auto;
  vertical-align: bottom;
  border: none;
  vertical-align: bottom; }
.attention {
  font-size: 14px;
}
.caution {
  font-size: 18px;
  font-weight: bold;
}

/* link */
a:link {
  color: #253a6e;
  text-decoration: underline; }

a:visited {
  color: #253a6e;
  text-decoration: underline; }

a:hover {
  color: #cc0000;
  text-decoration: underline;
  filter: saturate(0.3);
 }

/* helper class */
.right {
  text-align: right;
}

.alignleft {
  float: left;
  font-size: 0.9em;
  color: #333;
  margin-top: 0px;
  margin-right: 10px;
  margin-bottom: 0px;
  margin-left: 0px; }

.alignright {
  float: right;
  font-size: 0.9em;
  color: #333;
  margin-top: 0px;
  margin-right: 10px;
  margin-bottom: 0px;
  margin-left: 30px; }

.aligncenter {
  text-align: center !important;
  margin: 0px;
  padding-top: 10px;
  padding-right: 0px;
  padding-bottom: 0px;
  padding-left: 0px; }

.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden; }

.clearfix {
  display: inline-block; }

/* Hides from IE-mac \*/
.clearfix {
  display: block; }

/* End hide from IE-mac */
.clear {
  clear: both;
  margin: 0px;
  padding: 0px; }

/* general purpose margin,padding */
.mt-0 {
  margin-top: 0;
}
.mt-4 {
  margin-top: 4px;
}
.mt-24 {
  margin-top: 24px;
}
.mt-36 {
  margin-top: 36px;
}
.mt-48 {
  margin-top: 48px;
}
.mt-60 {
  margin-top: 60px;
}
.mt-72 {
  margin-top: 72px;
}
.mb-0 {
  margin-bottom: 0;
}
.mb-4 {
  margin-bottom: 4px;
}
.mb-8 {
  margin-bottom: 8px;
}
.mb-24 {
  margin-bottom: 24px;
}
.mb-36 {
  margin-bottom: 36px;
}
.mb-48 {
  margin-bottom: 48px;
}
.mb-72 {
  margin-bottom: 72px;
}
.mtb-0 {
  margin-top: 0;
  margin-bottom: 0;
}
.mtb-36 {
  margin-top: 36px;
  margin-bottom: 36px;
}
.mtb-48 {
  margin-top: 48px;
  margin-bottom: 48px;
}
.mtb-60 {
  margin-top: 60px;
  margin-bottom: 60px;
}

.pt-0 {
  padding-top: 0;
}
.pt-36 {
  padding-top: 36px;
}
.pb-0 {
  padding-bottom: 0;
}

.white {
  background-color: #fff;
}

/* pc_sp_change */
img.img_sp {
  display: none;
}
@media only screen and (max-width: 1100px) {
  img.img_pc {
    display: none;
  }
  img.img_sp {
    display: block;
  }
}

/* button */
.btn, .btn-r {
  margin: 36px 0;
  text-align: center;
}
.btn + .btn, .btn + .btn-r {
  margin: 0 0 36px 0;
}

.btn a, .btn-r a {
  display: inline-block;
  width: 48%;
  border: solid 1px #a90303;
  padding: 16px;
  color: #a90303;
  text-decoration: none;
  transition: 0.4s;
}
.btn-r a {
  background-color: #a90303;
  color: #fff;
}
  @media only screen and (max-width: 1100px) {
    .btn a, .btn-r a {
      width: 80%;
    }
  }

.btn a:hover, .btn-r a:hover {
  display: inline-block;
  border: solid 1px #a90303;
  background-color: #a90303;
  color: #fff;
  text-decoration: none;
}
.btn-r a:hover {
  filter: alpha(opacity=60);
  -moz-opacity: 0.6;
  opacity: 0.6;
}

.arrow_r, .arrow_d {
  position: relative;
  padding-right: 20px;
}
.arrow_r::before {
  content: "";
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 20px;
  width: 13px;    /* 上側 */
  height: 13px;   /* 下側 */
  border-top: 1px solid #a90303;     /* 上側 */
  border-right: 1px solid #a90303;   /* 下側 */
  transform: rotate(45deg);    /* 右向き */
}
.btn-r .arrow_r::before {
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}
.arrow_r:hover::before {
  right: 17px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  /* transform: rotate(45deg); */
}

.arrow_d::before {
  content: "";
  margin: auto;
  position: absolute;
  top: -4px;
  bottom: 0;
  right: 20px;
  width: 13px;    /* 上側 */
  height: 13px;   /* 下側 */
  border-top: 1px solid #a90303;     /* 上側 */
  border-right: 1px solid #a90303;   /* 下側 */
  transform: rotate(135deg);    /* 下向き */
}
.arrow_d:hover::before {
  top: 0;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}

/* js event */
/* to up fade-in */
.scrollEv {
  opacity: 0;
  transition: all .6s ease;
}
.scrollEv_up {
  transform: translate(0, 100px);
}
.scrollEv.show {
  opacity: 1;
  transform: none;
}
.sp_none {
  display: none;
}
.pc_none {
  display: block;
}
.repletion {
  font-size: 16px;
  color: #fff;
  text-shadow: 1px 1px 1px rgba(0,0,0,0.8);
}
.repletion dt {
  font-size: 20px;
}
.repletion dd {
  margin-top: 0;
}
#page-top {
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  width: 60px;
  height: 60px;
  position: fixed;
  right: 15px;
  bottom: 15px;
  color: #fff;
  background: #FFFCB1;
  background: linear-gradient(38deg,rgba(255, 252, 177, 1) 0%, rgba(230, 0, 19, 1) 42%);
  border: 1px solid #fff;
  border-radius: 50%;
  transition: .3s;
  cursor: pointer;
  opacity: 0;
}
#page-top .arrow {
  width: 5px;
  height: 5px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(-45deg);
  margin-bottom: -4px;
}
#page-top:hover {
  filter: drop-shadow(0 0 6px white);
}
@media screen and (min-width:460px) {
  .flow h2 .pc_none {
    display: none;
  }
}
@media screen and (min-width:768px) {
  .sp_none {
    display: block;
  }
  .pc_none {
    display: none;
  }
}

.c-red {
  color: #cc0000;
}
.tac {
  text-align: center;
}