
@media screen and (min-width: 671px)  and (max-width: 1440px) {

  .souzoku {
    display: block;
    overflow: hidden;
  }
  .souzoku section {
    width: 100%;
    padding: 3.47222vw 0 3.47222vw;
  }
  .souzoku section > .inner {
    max-width: 83.33333vw;
    margin: 0 auto;
    padding: 0 3.47222vw;
  }
  .souzoku .contents {
    font-size: 1.11111vw;
    background: none;
    padding: 0;
  }
  .souzoku .contents p {
    margin: 0;
  }
  .souzoku .contents *, .souzoku .contents :before, .souzoku .contents :after {
    box-sizing: border-box;
  }
  .souzoku .h2_01 {
    font-size: 2.70833vw;
    font-weight: normal;
    text-align: center;
    margin-bottom: 3.81944vw;
  }
  .souzoku .h2_02 {
    font-size: 2.70833vw;
    font-weight: normal;
    color: #000;
    text-align: center;
    margin-bottom: 2.98611vw;
  }
  .souzoku .h2_02 span {
    display: inline-block;
    font-weight: normal;
    letter-spacing: -0.01em;
    position: relative;
    padding: 0 3.40278vw;
  }
  .souzoku .h2_02 span:before, .souzoku .h2_02 span:after {
    content: "";
    display: block;
    width: 2.29167vw;
    height: 4.86111vw;
    position: absolute;
    top: 50%;
    transform: translate(0, -50%);
    background: url("../img/h2-sen.svg") no-repeat center;
    background-size: contain;
  }
  .souzoku .h2_02 span:before {
    left: 0;
  }
  .souzoku .h2_02 span:after {
    right: 0;
    transform: translate(0, -50%) scaleX(-1);
  }
  .souzoku .h2_02 b {
    font-size: 3.125vw;
    font-weight: 500;
    color: #4D65BF;
    margin-right: 0.1em;
  }
  .souzoku .h2_02 i {
    position: relative;
    font-style: normal;
  }
  .souzoku .h2_02 i:before {
    content: "";
    display: block;
    width: 0.41667vw;
    height: 0.41667vw;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -100%);
    background-color: #4D65BF;
    border-radius: 100vmax;
    z-index: 1;
  }
  .souzoku .h2_02.color-w {
    color: #fff;
  }
  .souzoku .h2_02.color-w span:before, .souzoku .h2_02.color-w span:after {
    filter: invert(1);
  }
  .souzoku .h2_02.color-w b {
    color: #fff;
  }
  .souzoku .h2_02.color-w i:before {
    background-color: #fff;
  }
  .souzoku .flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
  .souzoku .mainv {
    width: 100%;
    height: 55.55556vw;
    position: relative;
  }
  .souzoku .mainv .mainv-bg {
    width: 100%;
    height: 100%;
    position: absolute;
  }
  .souzoku .mainv .mainv-bg img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .souzoku .mainv .mainv-inner {
    width: 100%;
    max-width: 100vw;
    height: 100%;
    padding: 10.48611vw 0.69444vw 0.69444vw 11.80556vw;
    margin: 0 auto;
    position: relative;
  }
  .souzoku .mainv .mainv-inner .page-title {
    font-weight: normal;
    margin-bottom: 5.41667vw;
  }
  .souzoku .mainv .mainv-inner .page-title div {
    width: fit-content;
    background: linear-gradient(120deg, #1E2088, #6379CF);
    color: #fff;
    line-height: 4.16667vw;
    padding: 0 1.11111vw;
  }
  .souzoku .mainv .mainv-inner .page-title .txt01 {
    font-size: 2.22222vw;
    margin-bottom: 1.11111vw;
  }
  .souzoku .mainv .mainv-inner .page-title .txt02 {
    font-size: 2.63889vw;
    line-height: 4.375vw;
  }
  .souzoku .mainv .mainv-inner .page-title .txt02 b {
    font-size: 3.125vw;
    font-weight: normal;
  }
  .souzoku .mainv .mainv-inner ul {
    display: block;
    margin-bottom: 3.26389vw;
  }
  .souzoku .mainv .mainv-inner ul li {
    width: fit-content;
    font-size: 1.66667vw;
    font-weight: 500;
    line-height: 1.4583333333;
    color: #4D65BF;
    position: relative;
    padding-left: 1.59722vw;
  }
  .souzoku .mainv .mainv-inner ul li:before {
    content: "";
    display: block;
    width: 3.19444vw;
    height: 3.19444vw;
    position: absolute;
    top: 0;
    left: 0;
    top: 50%;
    transform: translate(0, -50%);
    background: url("../img/check-icon.svg") no-repeat center;
    background-size: contain;
    opacity: 1;
    z-index: 1;
    transition: 0.3s;
  }
  .souzoku .mainv .mainv-inner ul li span {
    display: inline-block;
    background-color: #fff;
    padding-left: 1.2em;
    padding-right: 0.5em;
  }
  .souzoku .mainv .mainv-inner ul li + li {
    margin-top: 1.11111vw;
  }
  .souzoku .mainv .mainv-inner .mainv-txt {
    margin-top: 2.08333vw;
  }
  .souzoku .mainv .mainv-inner .mainv-txt p {
    font-size: 1.38889vw;
    font-weight: 500;
    line-height: 1.6;
    color: #fff;
    text-align: left;
  }
  .souzoku .mainv .mainv-inner .mainv-txt p + p {
    margin-top: 1em;
  }
  .souzoku .mainv .mainv-inner .tel-box {
    width: 22.91667vw;
    position: absolute;
    right: 4.65278vw;
    top: 40.69444vw;
    background: linear-gradient(130deg, #1E2088, #6379CF);
    padding: 0.97222vw 1.11111vw 1.11111vw;
    text-align: center;
  }
  .souzoku .mainv .mainv-inner .tel-box .tel-txt {
    min-width: 20.97222vw;
    background-color: #fff;
    margin-bottom: 0.625vw;
    font-size: 0.97222vw;
    font-weight: 500;
    line-height: 1.38889vw;
    color: #000;
    padding: 0.2em;
  }
  .souzoku .mainv .mainv-inner .tel-box .tel-txt span {
    font-size: 1.38889vw;
  }
  .souzoku .mainv .mainv-inner .tel-box .tel-num {
    width: 100%;
    margin: 0 auto;
    margin-bottom: 0.55556vw;
    text-align: center;
  }
  .souzoku .mainv .mainv-inner .tel-box .tel-num span {
    display: inline-block;
    font-size: 2.56944vw;
    font-weight: 500;
    color: #FFC403;
    white-space: nowrap;
    position: relative;
    padding-left: 2.63889vw;
  }
  .souzoku .mainv .mainv-inner .tel-box .tel-num span:before {
    content: "";
    display: block;
    width: 1.66667vw;
    height: 1.66667vw;
    position: absolute;
    top: 0.625vw;
    left: 0.20833vw;
    background: url("../img/tel-icon.svg") no-repeat center;
    background-size: contain;
    z-index: 1;
  }
  .souzoku .mainv .mainv-inner .tel-box .tel-time {
    font-size: 0.90278vw;
    color: #fff;
    padding-left: 1.45833vw;
  }
  .souzoku .sec01 {
    padding: 4.72222vw 0 7.77778vw;
    background: #EDEFF7 url("../img/consultation-bg.png") no-repeat center;
    background-size: contain;
    background-position: center bottom;
    clip-path: polygon(0% 0%, 0% calc(100% - 4.86111vw), 50% 100%, 100% calc(100% - 4.86111vw), 100% 0%);
    position: relative;
    z-index: 4;
  }
  .souzoku .sec01 h2 {
    margin-bottom: 3.54167vw;
  }
  .souzoku .consultation .consultation-list {
    gap: 1.94444vw 2.3%;
    margin-bottom: 1.80556vw;
  }
  .souzoku .consultation .consultation-list .item {
    width: 31.8%;
    background: #4D65BF;
    padding: 1.52778vw 0 1.66667vw;
    position: relative;
  }
  .souzoku .consultation .consultation-list .item:before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: #637AD1;
    clip-path: polygon(100% 0%, 0% 100%, 100% 100%);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
  }
  .souzoku .consultation .consultation-list .item > * {
    position: relative;
    z-index: 2;
  }
  .souzoku .consultation .consultation-list .item figure {
    width: 100%;
    height: 7.43056vw;
    text-align: center;
    margin-bottom: 1.38889vw;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .souzoku .consultation .consultation-list .item figure img {
    display: block;
    width: auto;
    height: auto;
    max-height: 100%;
    object-fit: contain;
  }
  .souzoku .consultation .consultation-list .item p {
    text-align: center;
    font-size: 1.38889vw;
    font-weight: 500;
    line-height: 1.4;
    color: #fff;
  }
  .souzoku .consultation .consultation-arrow {
    text-align: center;
    margin-bottom: 0.13889vw;
  }
  .souzoku .consultation .consultation-arrow img {
    display: inline-block;
    width: 12.36111vw;
  }
  .souzoku .consultation .consultation-txt p {
    font-size: 2.08333vw;
    font-weight: 500;
    line-height: 1.8;
    text-align: center;
  }
  .souzoku .consultation .consultation-txt p b {
    font-size: 2.63889vw;
    font-weight: 500;
    color: #4D65BF;
    margin-right: 0.1em;
  }
  .souzoku .consultation .consultation-txt p .underline {
    position: relative;
    display: inline-block;
  }
  .souzoku .consultation .consultation-txt p .underline:before {
    content: "";
    display: block;
    width: 100%;
    height: 0.69444vw;
    position: absolute;
    bottom: 0;
    left: 50%;
    z-index: -1;
    transform: translate(-50%, 0);
    background-color: #F4D911;
  }
  .souzoku .sec02 {
    background: url("../img/reasons-bg.jpg") no-repeat center;
    background-size: cover;
    background-position: center bottom;
    clip-path: polygon(0% 0%, 0% calc(100% - 4.86111vw), 50% 100%, 100% calc(100% - 4.86111vw), 100% 0%);
    position: relative;
    z-index: 3;
    margin-top: -4.86111vw;
    padding-top: 10.41667vw;
    padding-bottom: 9.72222vw;
  }
  .souzoku .sec02 h2 {
    margin-bottom: 7.91667vw;
  }
  .souzoku .reason .onestop {
    background-color: rgba(255, 255, 255, 0.87);
    padding: 7.43056vw 3.47222vw 5.27778vw;
    text-align: center;
    position: relative;
  }
  .souzoku .reason .onestop .onestop-title {
    line-height: 1;
    padding: 1.59722vw;
    text-align: left;
    width: fit-content;
    white-space: nowrap;
    font-size: 4.16667vw;
    font-weight: normal;
    color: #fff;
    position: absolute;
    padding-left: 4.30556vw;
    padding-right: 2.91667vw;
    left: 17.56944vw;
    top: -3.68056vw;
    z-index: 1;
  }
  .souzoku .reason .onestop .onestop-title:before {
    content: "";
    display: block;
    width: 6.94444vw;
    height: 6.94444vw;
    position: absolute;
    top: 0.41667vw;
    left: -3.81944vw;
    background: url("../img/check-icon02.svg") no-repeat center;
    background-size: contain;
    filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.16));
  }
  .souzoku .reason .onestop .onestop-title:after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(110deg, #1E2088, #4D82BF);
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.16));
  }
  .souzoku .reason .onestop .onestop-title span {
    font-weight: bold;
  }
  .souzoku .reason .onestop ul {
    gap: 1.38889vw;
    padding-left: 0.69444vw;
    margin-bottom: 2.84722vw;
  }
  .souzoku .reason .onestop ul li {
    width: 11.25vw;
    height: 11.25vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.34722vw;
    color: #4D65BF;
    font-size: 1.94444vw;
    font-weight: normal;
    line-height: 1;
    position: relative;
    z-index: 1;
    padding-bottom: 0.27778vw;
  }
  .souzoku .reason .onestop ul li:before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    border-radius: 100vmax;
    border: 3px solid transparent;
    background: linear-gradient(0deg, #1E2088, #4D82BF) border-box;
    -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
    -webkit-mask-composite: destination-out;
    mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
    mask-composite: exclude;
  }
  .souzoku .reason .onestop ul li:after {
    content: "";
    display: block;
    width: 1.52778vw;
    height: 0.20833vw;
    background-color: #3753a5;
    position: absolute;
    top: calc(50% - 0.55556vw);
    left: calc(100% - 0.06944vw);
    z-index: 1;
  }
  .souzoku .reason .onestop ul li span {
    display: block;
  }
  .souzoku .reason .onestop ul li .s {
    font-size: 1.45833vw;
    padding-top: 0.48611vw;
  }
  .souzoku .reason .onestop ul li:last-child:after {
    display: none;
  }
  .souzoku .reason .onestop .note {
    font-size: 1.38889vw;
    font-weight: 500;
    line-height: 1.6;
    margin-bottom: 3.33333vw;
  }
  .souzoku .reason .onestop .note span {
    font-weight: bold;
    color: #4D65BF;
    text-decoration: underline;
    text-decoration-thickness: 0.13889vw;
    text-underline-offset: 0.41667vw;
  }
  .souzoku .reason .onestop .onestop-bt-txt {
    font-size: 2.08333vw;
    font-weight: 500;
    color: #4D65BF;
  }
  .souzoku .reason .onestop .onestop-bt-txt span {
    font-size: 2.70833vw;
    margin-right: 0.1em;
  }
  .souzoku .sec03 {
    background: url("../img/flow-bg.jpg") no-repeat center;
    background-size: cover;
    background-position: center bottom;
    clip-path: polygon(0% 0%, 0% calc(100% - 4.86111vw), 50% 100%, 100% calc(100% - 4.86111vw), 100% 0%);
    padding-bottom: 13.88889vw;
    position: relative;
    z-index: 2;
    margin-top: -4.86111vw;
    padding-top: 9.30556vw;
    padding-bottom: 9.02778vw;
  }
  .souzoku .sec03 h2 {
    color: #fff;
    margin-bottom: 4.30556vw;
  }
  .souzoku .flow .flow-list ul {
    padding-left: 6.94444vw;
  }
  .souzoku .flow .flow-list ul li {
    width: 100%;
    max-width: 62.5vw;
    height: auto;
    min-height: 5.90278vw;
    position: relative;
    background-color: #fff;
    border-radius: 100vmax;
    margin-bottom: 4.44444vw;
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    padding: 0.5em;
    padding-left: 4.16667vw;
    padding-right: 7.63889vw;
    gap: 4.16667vw;
  }
  .souzoku .flow .flow-list ul li:before {
    content: "";
    display: block;
    width: 12.36111vw;
    height: 2.15278vw;
    position: absolute;
    bottom: -3.33333vw;
    left: 50%;
    transform: translate(-50%, 0%);
    background: url("../img/arrow-w.svg") no-repeat center;
    background-size: contain;
    opacity: 1;
    z-index: 1;
    transition: 0.3s;
  }
  .souzoku .flow .flow-list ul li .step {
    font-size: 2.08333vw;
    font-weight: 500;
    color: #4D65BF;
    position: relative;
  }
  .souzoku .flow .flow-list ul li .step:before {
    content: "";
    display: block;
    width: 0.06944vw;
    height: 2.84722vw;
    position: absolute;
    right: -2.08333vw;
    top: 50%;
    transform: translate(0%, -50%);
    background-color: #000;
  }
  .souzoku .flow .flow-list ul li .txt {
    font-size: 2.08333vw;
    font-weight: normal;
  }
  .souzoku .flow .flow-list ul li figure {
    width: 9.02778vw;
    height: 9.02778vw;
    position: absolute;
    right: -1.94444vw;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
  }
  .souzoku .flow .flow-list ul li figure:before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3;
    border: 2px solid #4D65BF;
    border-radius: 100vmax;
  }
  .souzoku .flow .flow-list ul li figure:after {
    content: "";
    display: block;
    width: calc(100% - 0.13889vw);
    height: calc(100% - 0.13889vw);
    position: absolute;
    top: 0.06944vw;
    left: 0.06944vw;
    z-index: 1;
    background-color: #fff;
    border-radius: 100vmax;
  }
  .souzoku .flow .flow-list ul li figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    position: relative;
    z-index: 2;
  }
  .souzoku .flow .flow-list ul li:last-child {
    margin-bottom: 0;
  }
  .souzoku .flow .flow-list ul li:last-child:before {
    display: none;
  }
  .souzoku .flow .flow-bt {
    margin-top: 4.86111vw;
  }
  .souzoku .flow .flow-bt p {
    font-size: 2.08333vw;
    font-weight: normal;
    color: #fff;
    text-align: center;
  }
  .souzoku .flow .flow-bt p span {
    font-size: 2.70833vw;
    margin-right: 0.1em;
  }
  .souzoku .sec04 {
    background-color: #DCE1F4;
    position: relative;
    z-index: 1;
    margin-top: -4.86111vw;
    padding-top: 8.61111vw;
    padding-bottom: 5vw;
  }
  .souzoku .sec04 .inner {
    max-width: 100%;
    padding: 0;
  }
  .souzoku .sec04 h2 {
    font-size: 2.70833vw;
    font-weight: normal;
    text-align: center;
    margin-bottom: 4.30556vw;
  }
  .souzoku .company .company-box-wrap {
    position: relative;
    height: 46.25vw;
    max-width: 133.33333vw;
    margin: 0 auto;
  }
  .souzoku .company .company-img {
    width: 69.8611111111%;
    height: 100%;
  }
  .souzoku .company .company-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left;
  }
  .souzoku .company .company-box {
    position: absolute;
    top: 6.11111vw;
    right: 0;
    width: 57.2222222222%;
    min-width: 57.22222vw;
    background-color: #fff;
    text-align: center;
    padding: 5.76389vw 8.75vw 4.02778vw;
  }
  .souzoku .company .company-box .name {
    width: 100%;
    position: absolute;
    top: -0.5em;
    left: 0;
    font-size: 5.41667vw;
    font-weight: normal;
    line-height: 1;
    letter-spacing: -0.05em;
    color: #4D65BF;
    opacity: 0.55;
  }
  .souzoku .company .company-box .txt {
    font-size: 1.38889vw;
    font-weight: 500;
    line-height: 1.6;
    max-width: 39.72222vw;
    margin: 0 auto;
    margin-bottom: 1.94444vw;
  }
  .souzoku .company .company-box .txt span {
    display: inline-block;
    background-color: #4D65BF;
    color: #fff;
    padding: 0 0.2em;
    margin-right: 0.2em;
  }
  .souzoku .company .tel-box {
    background: linear-gradient(120deg, #1E2088, #6379CF);
    padding: 1.25vw 0 2.08333vw;
    text-align: center;
    max-width: 39.72222vw;
    margin: 0 auto;
  }
  .souzoku .company .tel-box p {
    font-size: 1.31944vw;
    color: #fff;
  }
  .souzoku .company .tel-box .tel-num {
    position: relative;
    left: -0.55556vw;
    padding-left: 3.61111vw;
    width: fit-content;
    margin: 0.625vw auto 0.69444vw;
  }
  .souzoku .company .tel-box .tel-num:before {
    content: "";
    display: block;
    width: 2.5vw;
    height: 2.5vw;
    position: absolute;
    top: 0.90278vw;
    left: 0;
    background: url("../img/tel-icon.svg") no-repeat center;
    background-size: contain;
    z-index: 1;
  }
  .souzoku .company .tel-box .tel-num span {
    font-size: 3.88889vw;
    font-weight: 500;
    color: #FFC403;
  }

}
