@charset "utf-8";


/*=============================
key_img
=============================*/
.key_img {
  position: relative;
  height: calc(480 / 375 * 100vw);
  margin-top: calc(100 / 375 * 100vw);
  background: url(../img/key_img_sp.png) center center no-repeat;
  background-size: cover;
  z-index: 100;
}

.key_img .key_img_textbox {
  position: absolute;
  top: calc(101 / 375 * 100vw);
  padding-left: calc(8 / 375 * 100vw);
}

.key_img .key_img_textbox .key_top_text {
  text-align: center;
  width: calc(160 / 375 * 100vw);
  padding: 0 calc(8 / 375 * 100vw);
  margin-bottom: calc(8 / 375 * 100vw);
  font-size: calc(16 / 375 * 100vw);
  letter-spacing: 0;
  font-weight: 900;
  color: rgba(0, 78, 162, 1);
  background: rgba(254, 254, 254, 1);
}

.key_img .key_img_text01 p {
  font-size: calc(32 / 375 * 100vw);
  font-weight: 900;
  color: rgba(254, 254, 254, 1);
  letter-spacing: .1em;
  line-height: 1.4;
}

.key_img .key_img_text01 span {
  background: rgba(0, 78, 162, 1);
  padding: 0 calc(8 / 375 * 100vw);
}

.key_img .key_img_text02 {
  font-size: calc(16 / 375 * 100vw);
  font-weight: 900;
  color: rgba(0, 78, 162, 1);
  margin: calc(16 / 375 * 100vw) 0;
  letter-spacing: .1em;
  line-height: 1.4;
}

.key_img .key_img_text02 span {
  padding: 0 calc(8 / 375 * 100vw);
  background: rgba(254, 254, 254, 1);
}

.key_img .key_img_text03 {
  font-size: calc(16 / 375 * 100vw);
  color: rgba(0, 78, 162, 1);
  margin: calc(16 / 375 * 100vw) 0;
  line-height: 1.4;
  letter-spacing: .1em;
}

.key_img .key_img_text03 span {
  padding: 0 calc(8 / 375 * 100vw);
  background: rgba(254, 254, 254, 1);
}

/*----- Tablet(key_img) 768px~ -----*/
@media (min-width: 768px) {
  .key_img {
    margin-top: 100px;
  }
}

/*----- PC(key_img) 1160px~ -----*/
@media (min-width: 1160px) {
  .key_img {
    height: 480px;
    background: url(../img/key_img_pc.png) center center no-repeat;
  }
  
  .key_img .key_img_textbox {
    top: 249px;
    padding-left: 40px;
  }
  
  .key_img .key_img_textbox .key_top_text {
    width: 235px;
    padding: 0 8px;
    margin-bottom: 8px;
    font-size: 24px;
  }

  .key_img .key_img_text01 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  
  .key_img .key_img_text01 p {
    font-size: 48px;
  }
  
  .key_img .key_img_text01 p:nth-of-type(1) span {
    padding: 0 0 0 8px;
  }

  .key_img .key_img_text01 p:nth-of-type(2) span {
    padding: 0 8px;
    margin-right: -.1em;
  }
  
  .key_img .key_img_text02 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-size: 24px;
    margin: 16px 0;
  }
  
  .key_img .key_img_text02 p:nth-of-type(1) span {
    padding: 0 0 0 8px;
  }

  .key_img .key_img_text02 p:nth-of-type(2) span {
    padding: 0 8px 0 0;
    margin-right: -.1em;
  }
  
  .key_img .key_img_text03 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-size: 16px;
    margin: 16px 0;
    line-height: 1.4;
  }
  
  .key_img .key_img_text03 p:nth-of-type(1) span {
    padding: 0 0 0 8px;
  }

  .key_img .key_img_text03 p:nth-of-type(2) span {
    padding: 0 0 0 0;
  }

  .key_img .key_img_text03 p:nth-of-type(3) span {
    padding: 0 8px 0 0;
    margin-right: -.1em;
  }
}

/*=============================
authority
=============================*/
.authority {
  position: relative;
  padding: calc(232 / 375 * 100vw) 0 calc(80 / 375 * 100vw);
  top: calc(-192 / 375 * 100vw);
  background: rgba(248, 203, 213, 0.15);
  margin-bottom: calc(-192 / 375 * 100vw);
}

.authority .authority_contents {
  width: calc(328 / 375 * 100vw);
  padding-bottom: calc(40 / 375 * 100vw);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.authority .authority_contents p {
  text-align: center;
  width: calc(152 / 375 * 100vw);
  height: calc(152 / 375 * 100vw);
  background: url(../img/authority_sp.png) center center no-repeat;
  background-size: cover;
  font-weight: 900;
  letter-spacing: 0;
  color: #004EA2;
}

.authority .authority_contents p:nth-child(1) {
  padding: calc(35 / 375 * 100vw) calc(20 / 375 * 100vw);
  font-size: calc(16 / 375 * 100vw);
  margin-bottom: calc(24 / 375 * 100vw);
}

.authority .authority_contents p:nth-child(2) {
  padding: calc(48 / 375 * 100vw) calc(22 / 375 * 100vw);
  font-size: calc(18 / 375 * 100vw);
  margin-bottom: calc(24 / 375 * 100vw);
}

.authority .authority_contents p:nth-child(3) {
  padding: calc(50 / 375 * 100vw) calc(20 / 375 * 100vw);
  font-size: calc(16 / 375 * 100vw);
}

.authority .authority_contents p:nth-child(4) {
  padding: calc(35 / 375 * 100vw) calc(33 / 375 * 100vw);
  font-size: calc(16 / 375 * 100vw);
}

.authority .authority_text {
  text-align: center;
  right: -50%;
  left: -50%;
  bottom: calc(85 / 375 * 100vw);
  font-size: calc(18 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .2em;
  color: #004EA2;
}

.authority .authority_text span {
  display: inline;
  height: calc(16 / 375 * 100vw);
  background: -o-linear-gradient(top, transparent 50%, #FFE000 50%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, transparent), color-stop(50%, #FFE000));
  background: linear-gradient(to bottom, transparent 50%, #FFE000 50%);
}

/*----- PC(authority) 1160px~ -----*/
@media (min-width: 1160px) {
  .authority {
    padding: 280px 0 80px;
    top: -240px;
    margin-bottom: -240px;
  }
  
  .authority .authority_contents {
    width: 1160px;
    padding-bottom: 40px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  
  .authority .authority_contents p {
    width: 152px;
    height: 152px;
  }
  
  .authority .authority_contents p:nth-child(1) {
    padding: 35px 20px;
    font-size: 16px;
    margin-bottom: 0;
    margin-right: 24px;
  }
  
  .authority .authority_contents p:nth-child(2) {
    padding: 48px 22px;
    font-size: 18px;
    margin-bottom: 0;
    margin-right: 24px;
  }
  
  .authority .authority_contents p:nth-child(3) {
    padding: 50px 20px;
    font-size:16px;
    margin-right: 24px;
  }
  
  .authority .authority_contents p:nth-child(4) {
    padding: 35px 33px;
    font-size: 16px;
  }
  
  .authority .authority_text {
    text-align: center;
    bottom: 81px;
    font-size: 24px;
    font-weight: 900;
    letter-spacing: .3em;
    color: #004EA2;
  }

  .forsp {
    display: none;
  }
  
  .authority .authority_text span {
    display: inline;
    height: 16px;
    background: -o-linear-gradient(top, transparent 50%, #FFE000 50%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, transparent), color-stop(50%, #FFE000));
    background: linear-gradient(to bottom, transparent 50%, #FFE000 50%);
  }
}

/*=============================
concept
=============================*/
#concept {
  display: block;
  padding-top: calc(20 / 375 * 100vw);
  margin-top: calc(-20 / 375 * 100vw);
}

.concept .container {
  padding: calc(80 / 375 * 100vw) 0;
}

.concept_ttl {
  position: relative;
  margin-bottom: calc(40 / 375 * 100vw);
}

.concept_ttl img {
  width: calc(255 / 375 * 100vw);
}

.concept_ttl:before {
  content: '';
  position: absolute;
  left: 0;
  bottom: calc(-16 / 375 * 100vw);
  display: inline-block;
  width: calc(64 / 375 * 100vw);
  height: calc(5 / 375 * 100vw);
  background-color: #FFE000;
}

.concept_ttl p {
  font-size: calc(18 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .3em;
  color: rgba(0, 78, 162, 1);
  margin-top: calc(8 / 375 * 100vw);
}

.concept_text {
  background: url(../img/drone_sp.png) center center no-repeat;
  background-size: calc(270 / 375 * 100vw);
}

.concept_text p {
  font-size: calc(16 / 375 * 100vw);
  padding-bottom: calc(28.8 / 375 * 100vw);
  letter-spacing: .1em;
}

.concept_text p:last-child {
  padding-bottom: 0;
}

/*----- PC(concept) 1160px~ -----*/
@media (min-width: 1160px) {
  #concept {
    display: block;
    padding-top: 20px;
    margin-top: 20px;
  }
  
  .concept .container {
    padding: 80px 0;
  }
  
  .concept_ttl {
    position: relative;
    margin-bottom: 40px;
  }
  
  .concept_ttl img {
    width: 456px;
  }
  
  .concept_ttl:before {
    bottom: -16px;
    width: 64px;
    height: 5px;
  }
  
  .concept_ttl p {
    font-size: 24px;
    margin-top: 8px;
  }

  .concept_text {
    background: url(../img/drone_sp.png) center center no-repeat;
    background-size: 270px;
  }
  
  .concept_text p {
    margin: auto;
    width: 930px;
    font-size: 16px;
    padding-bottom: 28.8px;
    letter-spacing: .3em;
  }
}

/*=============================
plan
=============================*/
#plan {
  display: block;
  padding-top: calc(20 / 375 * 100vw);
  margin-top: calc(-20 / 375 * 100vw);
}

.plan {
  background: rgba(248, 203, 213, .15);
}

.plan .container {
  padding: calc(80 / 375 * 100vw) 0;
}

.plan_ttl {
  position: relative;
  margin-bottom: calc(40 / 375 * 100vw);
}

.plan_ttl img {
  width: calc(152 / 375 * 100vw);
}

.plan_ttl:before {
  content: '';
  position: absolute;
  left: 0;
  bottom: calc(-16 / 375 * 100vw);
  display: inline-block;
  width: calc(64 / 375 * 100vw);
  height: calc(5 / 375 * 100vw);
  background-color: #FFE000;
}

.plan_ttl p {
  font-size: calc(18 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .3em;
  color: rgba(0, 78, 162, 1);
  margin-top: calc(8 / 375 * 100vw);
}

.plan_contents p {
  font-size: calc(16 / 375 * 100vw);
  letter-spacing: .1em;
}

.plan_contents .note {
  font-size: calc(14 / 375 * 100vw);
  margin-top: calc(40 / 375 * 100vw);
  letter-spacing: .1em;
}

.plan_sec section {
  border: 1px solid #004EA2;
  border-radius: calc(20 / 375 * 100vw);
  margin-top: calc(40 / 375 * 100vw);
}

.plan_sec section h3 {
  font-size: calc(24 / 375 * 100vw);
  text-align: center;
  border-radius: calc(20 / 375 * 100vw) calc(20 / 375 * 100vw) 0 0;
  color: #FEFEFE;
  background: rgba(0, 78, 162, 1);
  letter-spacing: .1em;
}

.plan_sec .plan_sec01,
.plan_sec .plan_sec02,
.plan_sec .plan_sec03 {
  text-align: center;
  background: #FEFEFE;
}

.plan_sec .plan_sec01 p:nth-of-type(1) img {
  margin: calc(40 / 375 * 100vw) auto calc(60.12 / 375 * 100vw);
  width: calc(300 / 375 * 100vw);
}

.plan_sec .plan_sec01 p:nth-of-type(2) img {
  width: calc(200.94 / 375 * 100vw);
  margin-bottom: calc(12.74 / 375 * 100vw);
}

.plan_sec .plan_sec01 p:nth-of-type(3) {
  font-size: calc(16 / 375 * 100vw);
  text-align: left;
  letter-spacing: 0;
  padding: 0 calc(8 / 375 * 100vw);
  margin-bottom: calc(32 / 375 * 100vw);
}

.plan_sec .plan_sec01 p:nth-of-type(4) {
  font-size: calc(16 / 375 * 100vw);
  text-align: left;
  padding: 0 calc(8 / 375 * 100vw) calc(103 / 375 * 100vw) calc(8 / 375 * 100vw);
  color: rgba(0, 78, 162, 1);
  font-weight: 900;
  letter-spacing: .1em;
}

.plan_sec .plan_sec02 p:nth-of-type(1) img {
  margin: calc(39.5 / 375 * 100vw) auto calc(59.62 / 375 * 100vw);
  width: calc(232.3 / 375 * 100vw);
}

.plan_sec .plan_sec02 p:nth-of-type(2) img {
  width: calc(256.56 / 375 * 100vw);
  margin-bottom: calc(12.74 / 375 * 100vw);
}

.plan_sec .plan_sec02 p:nth-of-type(3) {
  font-size: calc(16 / 375 * 100vw);
  text-align: left;
  letter-spacing: 0;
  padding: 0 calc(8 / 375 * 100vw);
  margin-bottom: calc(32 / 375 * 100vw);
}

.plan_sec .plan_sec02 ul {
  padding: 0 calc(8 / 375 * 100vw) calc(74 / 375 * 100vw) calc(8 / 375 * 100vw);
}

.plan_sec .plan_sec02 ul li {
  font-size: calc(16 / 375 * 100vw);
  text-align: left;
  color: rgba(0, 78, 162, 1);
  font-weight: 900;
  letter-spacing: .1em;
}

.plan_sec .plan_sec03 p:nth-of-type(1) img {
  margin: calc(40 / 375 * 100vw) auto calc(60.12 / 375 * 100vw);
  width: calc(200 / 375 * 100vw);
}

.plan_sec .plan_sec03 p:nth-of-type(2) img {
  width: calc(257.31 / 375 * 100vw);
  margin-bottom: calc(12.74 / 375 * 100vw);
}

.plan_sec .plan_sec03 p:nth-of-type(3) {
  font-size: calc(16 / 375 * 100vw);
  text-align: left;
  letter-spacing: 0;
  padding: 0 calc(8 / 375 * 100vw);
  margin-bottom: calc(16 / 375 * 100vw);
}

.plan_sec .plan_sec03 p:nth-of-type(4) {
  font-size: calc(16 / 375 * 100vw);
  text-align: left;
  padding: 0 calc(8 / 375 * 100vw) calc(24 / 375 * 100vw) calc(8 / 375 * 100vw);
  color: rgba(0, 78, 162, 1);
  font-weight: 900;
  letter-spacing: .1em;
}

.plan_underline {
  width: calc(304 / 375 * 100vw);
  border-bottom: 1px solid #004EA2;
  margin: 0 auto;
  margin-bottom: calc(16 / 375 * 100vw);
}

/*----- PC(plan) 1160px~ -----*/
@media (min-width: 1160px) {
  #plan {
    padding-top: 20px;
    margin-top: 20px;
  }

  .plan .container {
    padding: 80px 0;
  }
  
  .plan_ttl {
    margin-bottom: 40px;
  }
  
  .plan_ttl img {
    width: 240px;
  }
  
  .plan_ttl:before {
    bottom: -16px;
    width: 64px;
    height: 5px;
  }
  
  .plan_ttl p {
    font-size: 24px;
    margin-top: 8px;
  }
  
  .plan_contents p:first-child {
    font-size: 16px;
  }
  
  .plan_contents .note {
    font-size: 14px;
    margin-top: 40px;
  }

  .plan_sec {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  
  .plan_sec section {
    border-radius: 20px;
    margin-top: 40px;
  }
  
  .plan_sec section h3 {
    font-size: 24px;
    border-radius: 20px 20px 0 0;
  }
  
  .plan_sec .plan_sec01 {
    width:320px;
    margin-left: 20px;
  }

  .plan_sec .plan_sec02 {
    width:320px;
    margin: 40px 80px 0;
  }
  .plan_sec .plan_sec03 {
    width:320px;
    margin-right: 20px;
  }
  
  .plan_sec .plan_sec01 p:nth-of-type(1) img {
    margin: 40px auto 60.12px;
    width: 300px;
  }
  
  .plan_sec .plan_sec01 p:nth-of-type(2) img {
    width: 200.94px;
    margin-bottom: 12.74px;
  }
  
  .plan_sec .plan_sec01 p:nth-of-type(3) {
    font-size: 16px;
    padding: 0 8px;
    margin-bottom: 32px;
  }
  
  .plan_sec .plan_sec01 p:nth-of-type(4) {
    font-size: 16px;
    text-align: left;
    padding: 0 8px 103px 8px;
  }
  
  .plan_sec .plan_sec02 p:nth-of-type(1) img {
    margin: 39.5px auto 59.62px;
    width: 232.3px;
  }
  
  .plan_sec .plan_sec02 p:nth-of-type(2) img {
    width: 256.56px;
    margin-bottom: 12.74px;
  }
  
  .plan_sec .plan_sec02 p:nth-of-type(3) {
    font-size: 16px;
    padding: 0 8px;
    margin-bottom: 32px;
  }
  
  .plan_sec .plan_sec02 ul {
    padding: 0 8px 74px 8px;
  }
  
  .plan_sec .plan_sec02 ul li {
    font-size: 16px;
  }
  
  .plan_sec .plan_sec03 p:nth-of-type(1) img {
    margin: 40px auto 60.12px;
    width: 200px;
  }
  
  .plan_sec .plan_sec03 p:nth-of-type(2) img {
    width: 257.31px;
    margin-bottom: 12.74px;
  }
  
  .plan_sec .plan_sec03 p:nth-of-type(3) {
    font-size: 16px;
    padding: 0 8px;
    margin-bottom: 16px;
  }
  
  .plan_sec .plan_sec03 p:nth-of-type(4) {
    font-size: 16px;
    padding: 0 8px 24px 8px;
  }
  
  .plan_underline {
    width: 304px;
    margin-bottom: 16px;
  }
}

/*=============================
service
=============================*/
#service {
  display: block;
  padding-top: calc(20 / 375 * 100vw);
  margin-top: calc(-20 / 375 * 100vw);
}

.service .container {
  padding: calc(80 / 375 * 100vw) 0;
}

.service_ttl {
  position: relative;
  margin-bottom: calc(40 / 375 * 100vw);
}

.service_ttl img {
  width: calc(232 / 375 * 100vw);
}

.service_ttl:before {
  content: '';
  position: absolute;
  left: 0;
  bottom: calc(-16 / 375 * 100vw);
  display: inline-block;
  width: calc(64 / 375 * 100vw);
  height: calc(5 / 375 * 100vw);
  background-color: #FFE000;
}

.service_ttl p {
  font-size: calc(18 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .3em;
  color: rgba(0, 78, 162, 1);
  margin-top: calc(8 / 375 * 100vw);
}

.service_text p {
  font-size: calc(16 / 375 * 100vw);
  letter-spacing: .1em;
}

.service_contents section {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-top: calc(40 / 375 * 100vw);
}

.service_contents section h3 {
  width: calc(308 / 375 * 100vw);
  font-size: calc(20 / 375 * 100vw);
  font-weight: 900;
  color: rgba(0, 78, 162, 1);
  text-align: center;
  border-bottom: 1px dotted #34C6CA;
  padding-bottom: calc(8 / 375 * 100vw);
  letter-spacing: .1em;
  margin: calc(24 / 375 * 100vw) auto calc(17 / 375 * 100vw);
}

.service_contents section ul {
  margin: 0 auto;
  font-size: calc(16 / 375 * 100vw);
  letter-spacing: 0;
}

.service_contents section p {
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
  width: calc(144 / 375 * 100vw);
  margin: 0 auto;
}

/*----- PC(service) 1160px~ -----*/
@media (min-width: 1160px) {
  #service {
    padding-top: 20px;
    margin-top: 20px;
  }
  
  .service .container {
    padding: 80px 0;
  }
  
  .service_ttl {
    position: relative;
    margin-bottom: 40px;
  }
  
  .service_ttl img {
    width: 416px;
  }
  
  .service_ttl:before {
    bottom: -16px;
    width: 64px;
    height: 5px;
  }
  
  .service_ttl p {
    font-size: 24px;
    margin-top: 8px;
  }
  
  .service_text p {
    font-size: 16px;
  }

  .service_contents {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  
  .service_contents section {
    width: 328px;
    height: 331px;
    margin-top: 40px;
  }
  
  .service_contents section h3 {
    width: 308px;
    font-size: 20px;
    margin: 24px auto 17px;
    padding-bottom: 8px;
  }
  
  .service_contents section ul {
    font-size: 16px;
  }
  
  .service_contents section p {
    text-align: center;
    width: 144px;
  }
}

/*=============================
flow
=============================*/
#flow{
  display: block;
  padding-top: calc(20 / 375 * 100vw);
  margin-top: calc(-20 / 375 * 100vw);
}

.flow {
  background: rgba(248, 203, 213, .15);
}

.flow .container {
  padding: calc(80 / 375 * 100vw) 0;
}

.flow_ttl {
  position: relative;
  margin-bottom: calc(40 / 375 * 100vw);
}

.flow_ttl img {
  width: calc(152 / 375 * 100vw);
}

.flow_ttl:before {
  content: '';
  position: absolute;
  left: 0;
  bottom: calc(-16 / 375 * 100vw);
  display: inline-block;
  width: calc(64 / 375 * 100vw);
  height: calc(5 / 375 * 100vw);
  background-color: #FFE000;
}

.flow_ttl p {
  font-size: calc(18 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .3em;
  color: rgba(0, 78, 162, 1);
  margin-top: calc(8 / 375 * 100vw);
}

.flow_text p {
  font-size: calc(16 / 375 * 100vw);
  margin-bottom: calc(40 / 375 * 100vw);
  letter-spacing: .1em;
}

.flow_contents section {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.flow_contents section h3 {
  font-size: calc(24 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .3em;
  color: rgba(0, 78, 162, 1);
  text-align: center;
  margin: calc(24 / 375 * 100vw) auto;
}

.flow_contents section p {
  font-size: calc(16 / 375 * 100vw);
  letter-spacing: .1em;
}

.flow_contents section img {
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
  width: calc(313 / 375 * 100vw);
  margin: 0 auto;
}

.flow_contents .flow_sec05 .attention {
  width: calc(200 / 375 * 100vw);
  letter-spacing: 0;
  font-size: calc(16 / 375 * 100vw);
  color: rgba(0, 78, 162, 1);
  margin: 0 auto calc(20 / 375 * 100vw);
  font-weight: 900;
}

.flow_contents .flow_sec05 .attention span {
  border-bottom: 4px solid #FFE000;
  width: calc(200 / 375 * 100vw);
}

.flow_contents .arrow {
  text-align: center;
}

.flow_contents .arrow .arrow01 {
  font-size: calc(64 / 375 * 100vw);
  color: rgba(0, 78, 162, 1);
}

.flow_contents .arrow .arrow02 {
  display: none;
}

/*----- PC(flow) 1160px~ -----*/
@media (min-width: 1160px) {
  #flow {
    padding-top: 20px;
    margin-top: 20px;
  }
  
  .flow .container {
    padding: 80px 0;
  }
  
  .flow_ttl {
    margin-bottom: 40px;
  }
  
  .flow_ttl img {
    width: 200px;
  }
  
  .flow_ttl:before {
    bottom: -16px;
    width: 64px;
    height: 5px;
  }
  
  .flow_ttl p {
    font-size: 24px;
    margin-top: 8px;
  }
  
  .flow_text p {
    font-size: 16px;
    margin-bottom: 40px;
  }
  
  .flow_contents {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }

  .flow_contents section {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  
  .flow_contents .flow_sec01,
  .flow_contents .flow_sec02, 
  .flow_contents .flow_sec03, 
  .flow_contents .flow_sec04,
  .flow_contents .flow_sec05 {
    width: 200px;
  }
  
  .flow_contents section h3 {
    font-size: 24px;
    margin: 24px auto;
    letter-spacing: 0;
  }
  
  .flow_contents section p {
    font-size: 16px;
    letter-spacing: 0;
  }
  
  .flow_contents section img {
    width: 200px;
    height: 173px;
  }
  
  .flow_contents .flow_sec05 .attention {
    width: 200px;
    font-size: 16px;
    margin: 0 auto 20px;
  }
  
  .flow_contents .flow_sec05 .attention span {
    width: 200px;
  }
  
  .flow_contents .arrow {
    text-align: center;
    padding: 0 8px;
  }
  
  .flow_contents .arrow .arrow01 {
    display: none;
  }
  
  .flow_contents .arrow .arrow02 {
    display: block;
    font-size: 48px;
    color: rgba(0, 78, 162, 1);
    padding-top: 82px;
  }
}

/*=============================
insurance
=============================*/
#insurance {
  display: block;
  padding-top: calc(20 / 375 * 100vw);
  margin-top: calc(-20 / 375 * 100vw);
}

.insurance .container {
  padding: calc(80 / 375 * 100vw) 0;
}

.insurance_ttl {
  position: relative;
  margin-bottom: calc(40 / 375 * 100vw);
}

.insurance_ttl img {
  width: calc(320 / 375 * 100vw);
}

.insurance_ttl:before {
  content: '';
  position: absolute;
  left: 0;
  bottom: calc(-16 / 375 * 100vw);
  display: inline-block;
  width: calc(64 / 375 * 100vw);
  height: calc(5 / 375 * 100vw);
  background-color: #FFE000;
}

.insurance_ttl p {
  font-size: calc(18 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .3em;
  color: rgba(0, 78, 162, 1);
  margin-top: calc(8 / 375 * 100vw);
}

.insurance_text p {
  font-size: calc(16 / 375 * 100vw);
  margin-bottom: calc(40 / 375 * 100vw);
  letter-spacing: .1em;
}

.insurance_contents {
  border-radius: calc(20 / 375 * 100vw);
  border: 1px solid #004EA2;
  background: #FEFEFE;
}

.insurance_contents section h3 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: calc(16 / 375 * 100vw);
  font-weight: 900;
  color: #004EA2;
  background: rgba(248, 203, 213, 0.15);
  padding: calc(16 / 375 * 100vw);
  letter-spacing: .1em;
}

.insurance_contents .insurance_sec01 h3 {
  border-bottom: 1px solid #004EA2;
  border-radius: calc(20 / 375 * 100vw) calc(20 / 375 * 100vw) 0 0;
}

.insurance_contents .insurance_sec02 h3 {
  border-top: 1px solid #004EA2;
  border-bottom: 1px solid #004EA2;
}

.insurance_contents section p {
  font-size: calc(16 / 375 * 100vw);
  padding: calc(16 / 375 * 100vw);
  letter-spacing: .1em;
}

.insurance_check {
  color: #FFE000;
  padding-right: calc(10 / 375 * 100vw);
  font-size: calc(24 / 375 * 100vw);
}

/*----- PC(flow) 1160px~ -----*/
@media (min-width: 1160px) {
  #insurance {
    padding-top: 20px;
    margin-top: 20px;
  }
  
  .insurance .container {
    padding: 80px 0;
  }
  
  .insurance_ttl {
    position: relative;
    margin-bottom: 40px;
  }
  
  .insurance_ttl img {
    width: 568px;
  }
  
  .insurance_ttl:before {
    bottom: -16px;
    width: 64px;
    height: 5px;
  }
  
  .insurance_ttl p {
    font-size: 24px;
    margin-top: 8px;
  }

  .insurance_text p {
    font-size: 16px;
    margin-bottom: 40px;
  }

  .insurance_contents section {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  
  .insurance_contents {
    border-radius: 20px;
  }
  
  .insurance_contents section h3 {
    width: 328px;
    font-size: 16px;
  }
  
  .insurance_contents .insurance_sec01 h3 {
    border-radius: 20px 0 0 0;
    padding: 0 0 0 16px;
  }
  
  .insurance_contents .insurance_sec02 h3 {
    border-top: transparent;
    border-bottom: transparent;
    padding: 0 0 0 16px;
  }
  
  .insurance_contents section p {
    border-left: 1px solid #004EA2;
    width: 830px;
    font-size: 16px;
    padding: 16px;
  }

  .insurance_contents .insurance_sec01 p {
    border-bottom: 1px solid #004EA2;
  }
  
  .insurance_check {
    padding-right: 10px;
    font-size: 24px;
  }
}

/*=============================
faq
=============================*/
#faq {
  display: block;
  padding-top: calc(20 / 375 * 100vw);
  margin-top: calc(-20 / 375 * 100vw);
}

.faq {
  background: rgba(248, 203, 213, 0.15);
}

.faq .container {
  padding: calc(80 / 375 * 100vw) 0;
}

.faq_ttl {
  position: relative;
  margin-bottom: calc(40 / 375 * 100vw);
}

.faq_ttl img {
  width: calc(104 / 375 * 100vw);
}

.faq_ttl:before {
  content: '';
  position: absolute;
  left: 0;
  bottom: calc(-16 / 375 * 100vw);
  display: inline-block;
  width: calc(64 / 375 * 100vw);
  height: calc(5 / 375 * 100vw);
  background-color: #FFE000;
}

.faq_ttl p {
  font-size: calc(18 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .3em;
  color: rgba(0, 78, 162, 1);
  margin-top: calc(8 / 375 * 100vw);
}

details summary {
  list-style: none;
  cursor: pointer;
  padding: calc(16 / 375 * 100vw) calc(8 / 375 * 100vw) calc(16 / 375 * 100vw) calc(55 / 375 * 100vw);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: url(../img/faq_icon_sp.png) left 8px center no-repeat;
  background-size: calc(40 / 375 * 100vw);
  background-color: #004EA2;
  color: #FEFEFE;
  font-size: calc(16 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .1em;
}

details summary::-webkit-details-marker {
  display: none;
}

.dropdown {
  font-size: calc(24 / 375 * 100vw);
}

details .faq_contents {
  margin-top: calc(16 / 375 * 100vw);
  margin-bottom: calc(40 / 375 * 100vw);
  border: 1px solid #004EA2;
  background: #FEFEFE;
}

details ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

details ul .question {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0 calc(19.5 / 375 * 100vw) 0 calc(11.5 / 375 * 100vw);
  color: #004EA2;
  font-size: calc(32 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .1em;
}

details ul .answer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0 calc(21.5 / 375 * 100vw) 0 calc(13.5 / 375 * 100vw);
  color: #FFE000;
  font-size: calc(32 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .1em;
}

details ul li:nth-child(2) {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: calc(16 / 375 * 100vw) 0;
  font-size: calc(16 / 375 * 100vw);
  color: #004EA2;
  letter-spacing: .05em;
}

details ul:first-of-type {
  width: calc(312 / 375 * 100vw);
  border-bottom: 1px solid #004EA2;
  margin: 0 calc(8 / 375 * 100vw);
}

details ul:last-of-type {
  width: calc(312 / 375 * 100vw);
  margin: 0 calc(8 / 375 * 100vw);
}

/*----- PC(faq) 1160px~ -----*/
@media (min-width: 1160px) {
  #faq {
    padding-top: 20px;
    margin-top: 20px;
  }
  
  .faq .container {
    padding: 80px 0;
  }
  
  .faq_ttl {
    margin-bottom: 40px;
  }
  
  .faq_ttl img {
    width: 176px;
  }
  
  .faq_ttl:before {
    bottom: -16px;
    width: 64px;
    height: 5px;
  }
  
  .faq_ttl p {
    font-size: 24px;
    margin-top: 8px;
  }
  
  details summary {
    padding: 16px 8px 16px 55px;
    background-size: 40px;
    font-size: 16px;
  }

  .dropdown {
    font-size: 24px;
  }
  
  details .faq_contents {
    margin-top: 17px;
    margin-bottom: 40px;
  }

  details ul .question {
    padding: 0 19.5px 0 11.5px;
    font-size: 32px;
  }
  
  details ul .answer {
    padding: 0 21.5px 0 13.5px;
    font-size: 32px;
  }
  
  details ul li:nth-child(2) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 24px 0;
    font-size: 16px;
  }
  
  details ul:first-of-type {
    width: 1144px;
    border-bottom: 1px solid #004EA2;
    margin: 0 8px;
  }

  details ul:last-of-type {
    width: 1144px;
    margin: 0 8px;
  }
}

/*=============================
contact
=============================*/
#contact {
  display: block;
  padding-top: calc(20 / 375 * 100vw);
  margin-top: calc(-20 / 375 * 100vw);
}

.contact .container {
  padding: calc(80 / 375 * 100vw) 0;
}

.contact_ttl {
  position: relative;
  margin-bottom: calc(40 / 375 * 100vw);
}

.contact_ttl img {
  width: calc(256 / 375 * 100vw);
}

.contact_ttl:before {
  content: '';
  position: absolute;
  left: 0;
  bottom: calc(-16 / 375 * 100vw);
  display: inline-block;
  width: calc(64 / 375 * 100vw);
  height: calc(5 / 375 * 100vw);
  background-color: #FFE000;
}

.contact_ttl p {
  font-size: calc(18 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .3em;
  color: rgba(0, 78, 162, 1);
  margin-top: calc(8 / 375 * 100vw);
}

.contact_text {
  font-size: calc(16 / 375 * 100vw);
  letter-spacing: .05em;
}

.contact_text .text_blue {
  color: #004EA2;
  margin-bottom: calc(28.8 / 375 * 100vw);
}

.contact_text .text_black {
  margin-bottom: calc(28.8 / 375 * 100vw);
}

.contact_text .text_red {
  color: #DF0000;
}

/*----- PC(faq) 1160px~ -----*/
@media (min-width: 1160px) {
  #contact {
    padding-top: 20px;
    margin-top: 20px;
  }
  
  .contact .container {
    padding: 80px 0;
  }
  
  .contact_ttl {
    margin-bottom: 40px;
  }
  
  .contact_ttl img {
    width: 456px;
  }
  
  .contact_ttl:before {
    bottom: -16px;
    width: 64px;
    height: 5px;
  }
  
  .contact_ttl p {
    font-size: 24px;
    margin-top: 8px;
  }
  
  .contact_text {
    width: 760px;
    margin: 0 auto;
    font-size: 16px;
    letter-spacing: .1em;
  }

  .contact_text .text_blue {
    margin-bottom: 28.8px;
  }

  .contact_text .text_black {
    margin-bottom: 28.8px;
  }
}

/*=============================
privacy policy
=============================*/
.privacypolicy {
  background: rgba(248, 203, 213, 0.15);
}

.privacypolicy .container {
  padding: calc(80 / 375 * 100vw) 0;
}

.privacypolicy_ttl {
  position: relative;
  margin-bottom: calc(40 / 375 * 100vw);
}

.privacypolicy_ttl img {
  width: calc(248 / 375 * 100vw);
}

.privacypolicy_ttl:before {
  content: '';
  position: absolute;
  left: 0;
  bottom: calc(-16 / 375 * 100vw);
  display: inline-block;
  width: calc(64 / 375 * 100vw);
  height: calc(5 / 375 * 100vw);
  background-color: #FFE000;
}

.privacypolicy_ttl p {
  font-size: calc(18 / 375 * 100vw);
  font-weight: 900;
  letter-spacing: .3em;
  color: rgba(0, 78, 162, 1);
  margin-top: calc(8 / 375 * 100vw);
}

.privacypolicy_contents {
  font-size: calc(16 / 375 * 100vw);
}

.privacypolicy_contents p {
  margin: calc(40 / 375 * 100vw) auto calc(24 / 375 * 100vw);
}

.privacypolicy_contents dt {
  color: #004EA2;
  letter-spacing: .05em;
}

.privacypolicy_contents dt {
  padding-top: calc(16 / 375 * 100vw);
  padding-bottom: calc(8 / 375 * 100vw);
}

.privacypolicy_contents dt:first-child {
  padding-top: 0;
}

.polict_text {
  padding-top: calc(8 / 375 * 100vw);
}

/*----- PC(faq) 1160px~ -----*/
@media (min-width: 1160px) {
  .privacypolicy .container {
    padding: 80px 0;
  }
  
  .privacypolicy_ttl {
    margin-bottom: 40px;
  }
  
  .privacypolicy_ttl img {
    width: 808px;
  }
  
  .privacypolicy_ttl:before {
    bottom: -16px;
    width: 64px;
    height: 5px;
  }
  
  .privacypolicy_ttl p {
    font-size: 24px;
    margin-top: 8px;
  }
  
  .privacypolicy_contents {
    font-size: 16px;
  }
  
  .privacypolicy_contents p {
    margin: 40px auto 24px;
  }
  
  .privacypolicy_contents dt {
    padding-top: 16px;
    padding-bottom: 8px;
  }
  
  .privacypolicy_contents dt:first-child {
    padding-top: 0;
  }
  
  .policy_text {
    padding-top: 8px;
  }
}
