@charset "UTF-8";
/* **************************************


     追加


***************************************/
/*最小値:$value+0.2 → 可変（$value + 0.625vw（画面幅320px:2px, 800px:5px, 1200px:7.5px,2560px:12px））→ 最大値:$value + 1.2*/
/* =============================================================================


     index


============================================================================= */
.welfare-ttl {
  color: #fff;
  display: inline-block;
  font-size: clamp(4.8rem, 4.6rem + 0.625vw * 1, 5.8rem);
  font-weight: bold;
  padding: 0.25em 0.5em;
  position: relative;
  z-index: 3;
}
.welfare-ttl:before {
  background: #000;
  content: "";
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
  width: 100vw;
  z-index: -1;
}
.welfare-ttl span {
  font-size: 70%;
}

.about {
  margin: 60px 0 0;
  position: relative;
}
.about:before, .about:after {
  content: "";
  height: 100%;
  left: 50%;
  position: absolute;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 100vw;
  z-index: 1;
}
.about:before {
  background: #ffffff 0% 0% no-repeat padding-box;
  opacity: 0.51;
}
.about:after {
  background: transparent -webkit-gradient(linear, left bottom, left top, color-stop(34%, rgba(255, 255, 255, 0)), color-stop(39%, rgba(255, 255, 255, 0.1647058824)), color-stop(45%, rgba(255, 255, 255, 0.3607843137)), color-stop(51%, rgba(255, 255, 255, 0.5294117647)), color-stop(58%, rgba(255, 255, 255, 0.6745098039)), color-stop(65%, rgba(255, 255, 255, 0.7921568627)), color-stop(72%, rgba(255, 255, 255, 0.8862745098)), color-stop(80%, rgba(255, 255, 255, 0.9490196078)), color-stop(89%, rgba(255, 255, 255, 0.9882352941)), to(#ffffff)) 0% 0% no-repeat padding-box;
  background: transparent linear-gradient(0deg, rgba(255, 255, 255, 0) 34%, rgba(255, 255, 255, 0.1647058824) 39%, rgba(255, 255, 255, 0.3607843137) 45%, rgba(255, 255, 255, 0.5294117647) 51%, rgba(255, 255, 255, 0.6745098039) 58%, rgba(255, 255, 255, 0.7921568627) 65%, rgba(255, 255, 255, 0.8862745098) 72%, rgba(255, 255, 255, 0.9490196078) 80%, rgba(255, 255, 255, 0.9882352941) 89%, #ffffff 100%) 0% 0% no-repeat padding-box;
}

.welfare-content {
  padding: 0px 0 80px;
  position: relative;
}
.welfare-content:before {
  background: transparent url(../asset/images/welfare/wel-bg.jpg) no-repeat bottom center/cover;
  content: "";
  height: 100%;
  left: 50%;
  position: absolute;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 100vw;
}

.welfare-list {
  background: #fff;
  border: 1px solid #000;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 60px auto 0;
  max-width: 1000px;
  padding: 10px;
  position: relative;
  z-index: 2;
}

.welfare-item {
  gap: 8px;
  display: grid;
  grid-row: span 3;
  grid-template-rows: subgrid;
  padding: 30px 10px;
  position: relative;
  text-align: center;
}
.welfare-item:nth-of-type(-n + 3):before {
  background: #000;
  bottom: 0;
  content: "";
  height: 1px;
  left: 0%;
  position: absolute;
  width: 100%;
}
.welfare-item:not(:first-child):not(:nth-child(4))::after {
  background: #000;
  content: "";
  height: calc(100% - 20px);
  left: 0;
  position: absolute;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 1px;
}
.welfare-item {
  /*   &:not(:nth-of-type(2n + 1)):after {
    content: "";
    position: absolute;
    left: 0;
    height: calc(100% - 20px);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    background: $cr_txt;
    display: none;

    @include mq("sp") {
      display: block;
    }
  } */
}
.welfare-item:nth-of-type():before {
  left: 10px;
  width: calc(100% - 10px);
}

.welfare-item-img {
  margin: auto;
  width: 88px;
}

.welfare-item-ttl {
  font-size: 2.2rem;
  font-weight: bold;
  margin: auto 0;
  text-align: center;
}

.welfare-item-en {
  color: #808080;
  font-family: "Host Grotesk", "Noto Serif JP", sans-serif;
  font-size: 1.4rem;
  font-style: italic;
}
.welfare-item-en span {
  color: #000;
  display: block;
  font-style: normal;
  margin-top: 0.5em;
}

.other {
  background: #fff;
  margin: 48px auto 0;
  max-width: 860px;
  position: relative;
  z-index: 2;
}
.other:before {
  background: #fff;
  content: "";
  height: 100%;
  left: 50%;
  overflow: hidden;
  position: absolute;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 100%;
  z-index: -1;
}

.travel {
  padding: 40px 0 0;
}

.travel-txt {
  font-size: 1.8rem;
  margin-top: 20px;
  text-align: center;
}

.travel-list {
  gap: 30px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 28px auto 0;
  max-width: 880px;
}

.travel-item {
  max-width: calc(50% - 15px);
}

.other-ttl,
.travel-ttl {
  font-size: 2.6rem;
  font-weight: bold;
  margin-bottom: 0.5em;
  text-align: center;
  text-shadow: 0 0 8px rgb(255, 255, 255), 0 0 20px rgba(255, 255, 255, 0.8), 0 0 40px rgba(255, 255, 255, 0.6);
}

.other-txt {
  -webkit-box-decoration-break: clone;
  background: #fff;
  box-decoration-break: clone;
  display: inline;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 2;
  margin: 1em auto 0;
  margin-top: 1em;
  padding: 0em 0.5em;
}
.other-txt > span {
  display: inline-block;
}
.other-txt > span:after {
  content: "、";
}
.other-txt > span span {
  font-size: 70%;
}

/* =============================================================================


    flow


============================================================================= */
.flow {
  padding: 120px 0;
}

.flow-ttl {
  font-size: 4rem;
  font-weight: bold;
  margin-top: 20px;
}

.flow-list {
  margin: 40px auto 0;
  position: relative;
}
.flow-list:before {
  border-left: 6px dotted #203367;
  content: "";
  height: calc(100% - 80px);
  left: 77px;
  position: absolute;
  top: 0;
  width: 1px;
  z-index: 1;
}

.flow-item {
  /*   z-index: 1; */
  padding: 20px 0;
  position: relative;
}
.flow-item + .flow-item {
  margin-top: 200px;
}
.flow-item {
  gap: 50px;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.flow-item:before {
  background: transparent -webkit-gradient(linear, left top, right top, from(#cccccc), color-stop(4%, #d3d3d3), color-stop(20%, #e6e6e6), color-stop(38%, #f4f4f4), color-stop(60%, #fcfcfc), to(#ffffff)) 0% 0% no-repeat padding-box;
  background: transparent linear-gradient(90deg, #cccccc 0%, #d3d3d3 4%, #e6e6e6 20%, #f4f4f4 38%, #fcfcfc 60%, #ffffff 100%) 0% 0% no-repeat padding-box;
  content: "";
  height: 100%;
  opacity: 0.9;
  position: absolute;
  right: 0;
  top: 20px;
  width: calc(100% + 50vw - 540px);
}

.flow-item-ttlbox {
  height: 160px;
  min-width: 160px;
  width: 160px;
}
.flow-item-ttlbox {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #203367;
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  font-family: "Host Grotesk", "Noto Serif JP", sans-serif;
  font-style: italic;
  font-weight: bold;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: -20px;
  position: relative;
  text-align: center;
  z-index: 2;
}
.flow-item:not(:nth-last-of-type(1)) .flow-item-ttlbox:before {
  background: inherit;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  content: "";
  height: 15px;
  left: 50%;
  position: absolute;
  top: calc(100% - 1px);
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 25px;
}

.flow-item-num {
  font-size: 5.2rem;
}

.flow-item-ttl {
  font-size: 4rem;
  font-weight: bold;
}
.flow-item-ttl > span {
  border-bottom: 1px solid #000;
}
.flow-item-ttl > span > span {
  font-size: 70%;
}

.flow-item-bg {
  max-height: 200px;
  position: absolute;
  position: absolute;
  right: 0;
  right: -300px;
  top: 20px;
  width: 500px;
  z-index: -1;
  z-index: -1;
}

.flow-item-txtbox {
  position: relative;
  z-index: 2;
}

.flow-item-head {
  font-size: 2rem;
  font-weight: bold;
  letter-spacing: -0.01em;
  line-height: 1.8;
  margin-top: 0.5em;
  padding-right: 20px;
}

.flow-item-txt {
  font-size: 1.8rem;
  margin-top: 10px;
}

.flow-headbox {
  margin: 100px auto 0;
}

.flow-head-bg {
  margin-left: -110px;
  margin-top: -60px;
  max-width: 1300px;
  width: 1300px;
}

.flow-head-txt {
  background: rgba(255, 255, 255, 0.9);
  font-size: 2rem;
  line-height: 1.8;
  padding: 20px 60px;
  position: relative;
  z-index: 2;
}
.flow-head-txt span {
  border-bottom: 1px solid #000;
}
@media screen and (max-width: 1300px){
  .flow-head-bg {
    margin-left: auto;
    margin-right: auto;
    width: 95%;
  }
}
@media (max-width: 1128px){
  .welfare-ttl {
    font-size: 4rem;
  }
  .welfare-item-ttl {
    font-size: 1.8rem;
  }
  .other-ttl,
  .travel-ttl {
    font-size: 2.2rem;
  }
  .flow-ttl {
    font-size: 3rem;
  }
  .flow-item-num {
    font-size: 3.6rem;
  }
  .flow-item-ttl {
    font-size: 3rem;
  }
  .flow-item-head {
    font-size: 1.8rem;
  }
  .flow-item-txt {
    font-size: 1.5rem;
  }
  .flow-head-txt {
    font-size: 1.6rem;
    margin: auto;
    width: 85%;
  }
}
@media screen and (max-width: 1080px){
  .flow-item:before {
    width: calc(100% + 24px);
  }
}
@media (max-width: 767px){
  .welfare-ttl {
    font-size: 2.4rem;
  }
  .welfare-ttl span {
    display: block;
  }
  .welfare-list {
    grid-template-columns: repeat(2, 1fr);
    padding: 0;
  }
  .welfare-item:nth-of-type(-n + 4):before {
    background: #000;
    bottom: 0;
    content: "";
    height: 1px;
    left: 0%;
    position: absolute;
    width: 100%;
  }
  .welfare-item:not(:nth-of-type(2n + 1)):after {
    background: #000;
    content: "";
    display: block;
    height: calc(100% - 20px);
    left: 0;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    width: 1px;
  }
  .welfare-item:nth-of-type(1):after, .welfare-item:nth-of-type(3):after, .welfare-item:nth-of-type(5):after {
    display: none !important;
  }
  .welfare-item-img {
    width: 50px;
  }
  .welfare-item-ttl {
    font-size: 1.4rem;
  }
  .welfare-item-en {
    font-size: 1.2rem;
  }
  .travel-txt {
    font-size: 14px;
    margin-top: 16px;
  }
  .travel-list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .travel-item {
    margin: auto;
    max-width: 420px;
  }
  .other-ttl,
  .travel-ttl {
    font-size: 1.8rem;
  }
  .other-txt {
    font-size: 1.4rem;
  }
  .flow {
    padding: 80px 0 80px;
  }
  .flow-ttl {
    font-size: 1.8rem;
  }
  .flow-list:before {
    display: none;
  }
  .flow-item + .flow-item {
    margin-top: clamp(20px, 25vw, 200px);
  }
  .flow-item {
    gap: 20px;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .flow-item:not(:nth-last-of-type(1)):after {
    border-left: 3px dotted #203367;
    content: "";
    height: calc(100% + clamp(20px, 25vw, 200px));
    left: 77px;
    left: 27px;
    position: absolute;
    top: 0;
    width: 1px;
    z-index: 1;
  }
  .flow-item-ttlbox {
    height: 60px;
    min-width: 60px;
    width: 60px;
  }
  .flow-item:not(:nth-last-of-type(1)) .flow-item-ttlbox:before {
    height: 8px;
    width: 15px;
  }
  .flow-item-num {
    font-size: 2.4rem;
  }
  .flow-item-ttl {
    font-size: 2rem;
  }
  .flow-item-bg {
    right: -16px;
    top: calc(100% - 20px);
    width: 60%;
  }
  .flow-item-txtbox {
    padding-left: 40px;
  }
  .flow-item-head {
    font-size: 1.4rem;
  }
  .flow-item-txt {
    font-size: 1.2rem;
  }
  .flow-headbox {
    margin-top: clamp(50px, 25vw, 200px);
  }
  .flow-head-bg {
    margin-left: -16px;
    margin-top: -20px;
    width: calc(100% + 32px);
  }
  .flow-head-txt {
    font-size: 1.2rem;
    padding: 20px;
    width: 100%;
  }
}

/*# sourceMappingURL=welfare.css.map*/