/* ------------------------
style.css
------------------------ */
html {
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    color: #363230;
}
figure {
    margin: 0;
}
img {
    width: 100%;
}
a:hover {
    opacity: 0.6;
    transition: all 0.5s;
}
em {
    font-style: normal;
}
p {
    line-height: 2;
}
ul,
li {
    list-style: none;
    padding: 0;
}

/* ヘッダー */
.site-header {
    display: flex;
    justify-content: space-between;
}
.logo {
    width: 400px;
    margin: 24px 0 24px 40px;
    display: flex;
}
.contact {
    display: flex;
}
.contact .btn a {
    display: flex;
    height: 100%;
    justify-content: center;
    align-items: center;
    font-weight: 700;
    padding: 24px;
    text-decoration: none;
    color: #fff;
}
.contact .btn-online a {
    background: #00B900;
}
.contact .btn-contact a {
    background: #516091;
    display: none;
}
.contact .btn a::before {
    content: "";
    width: 20px;
    height: 20px;
    background: url(../images/line.png) no-repeat; /*icon_pc.svg*/
    background-size: contain;
    margin-right: 6px;
}
.contact .btn-contact a::before {
    background: url(../images/icon_mail.svg) no-repeat;
    background-size: contain;
}

/* メインビジュアル */
.main-visual {
    height: 640px;
    background: url(../images/main_visual_bg.jpg) no-repeat;
    background-size: cover;
    background-position: center;
}
.main-visual .main-inner {
    display: flex;
    width: 1200px;
    height: 100%;
    margin: 0 auto;
    justify-content: space-between;
    align-items: center;
}
.main-visual .main-inner .txt ul {
    flex-wrap: wrap;
}
.main-visual figure {
    height: 640px;
}
.main-visual figure img {
    width: auto;
    max-height: 100%;
    padding: 32px 0 0;
}
.main-visual .txt h2 {
    font-size: 5rem;
    font-weight: 900;
    text-shadow: 1px 1px #fff;
    margin: 0 0 32px;
    line-height: 1.2;
}
.main-visual .txt h2 em {
color: #533E82;
}
.main-visual .txt h2 span {
    font-size: 2.5rem;
    display: block;
    margin: 1.5rem 0 0.5rem;
}
.main-visual .txt h2 span em {
    color: #82BDCF;
}
.main-visual .txt p {
    font-size: 1.5rem;
    display: inline-block;
    margin: 0;
    font-weight: 700;
    background: #eee8a9;
    color: #646a10;
    padding: 0 16px;
}
.main-visual .txt ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    justify-content: center;
}
.main-visual .txt li {
    font-size: 1.2rem;
    width: 200px;
    height: 200px;
    background: #eee;
    border-radius: 100px;
    font-weight: 700;
    padding: 48px 24px 24px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 4px;
    background: #2B7EA9;
    background: linear-gradient(180deg, #82BDCF 0%, #2B7EA9 100%);
    color: #fff;
    border: 1px solid #fff;
    position: relative;
}
.main-visual .txt li::before {
    content: "01";
    position: absolute;
    top: 8px;
    font-size: 2rem;
    border-bottom: 2px solid;
}
.main-visual .txt li:nth-of-type(2)::before {
    content: "02";
}
.main-visual .txt li:nth-of-type(3)::before {
    content: "03";
}


/* コンテンツ */
.main-wrapper {
    width: 1000px;
    margin: 0 auto;
    padding: 72px 0;
}
section h2 {
    font-size: 2.5rem;
    text-align: center;
    margin: 0 0 2rem;
}
section h3 {
    font-size: 1.5rem;
}
section {
    position: relative;
}
.step01::after {
    content: "";
    display: block;
    width: 120px;
    height: 50px;
    position: absolute;
    bottom: -50px;
    border-top: 40px solid #fff;
    border-right: 60px solid transparent;
    border-left: 60px solid transparent;
    z-index: 1;
    left: calc(50% - 60px);
}
section.step01 h2 {
    color: #533E82;
  }
section.step01 .row-box ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
section.step01 .row-box ul li {
    font-size: 1.5rem;
    font-weight: bold;
    text-align: center;
    width: 32%;
    padding: 2.5rem;
    background: #f4f4f4;
    position: relative;
    border-radius: 12px;
    display: flex;
    justify-content: center;
    align-items: center;
  }
section.step01 figure {
    width: 180px;
    margin: 0 0 0 40px;
}
section.step01 ul li::before {
    content: "";
    display: block;
    width: 38px;
    height: 38px;
    background: url(../images/check.png) no-repeat;
    background-size: contain;
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translate(-50%);
  }
section.step01 ul li span {
    background: #eef3ad;
    font-weight: 700;
}

.row-box-img {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 40px 0 0;
}
.row-box-img .txt {
    width: calc(60% - 40px);
}
.row-box-img figure {
    width: 40%;
}
.row-box-img figure img {
    box-shadow: 24px 24px #afa8ba;
}


small {
    color: rgba(0, 0, 0, 0.6);
}
.cta {
    background: url(../images/cta_bg.jpg) no-repeat;
    background-size: cover;
}
.cta p {
    color: #fff;
    font-size: 1.2rem;
    text-align: center;
}
.cta h2 {
    color: #fff;
    text-shadow: 1px 1px #2B7EA9;
}
.cta .btn {
    text-align: center;
}
.cta .btn a {
    display: inline-block;
    padding: 24px 96px;
    background: #00B900;
    border: 4px solid #fff;
    border-radius: 8px;
    text-decoration: none;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 700;
    position: relative;
}
.cta .btn a::after {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    background: url(../images/arrow.svg) no-repeat;
    position: absolute;
    right: 32px;
    top: calc(50% - 10px);
}
p.h_sub {
    font-size: 1.5rem;
    text-align: center;
    font-weight: bold;
    color: #9989b4;
}
p.h_sub2 {
text-align: center;
margin-bottom: 3rem;
}
.step04 h2 {
    line-height: 1.2;
  }
.step04 h2 em {
    color: #533E82;
    font-size: 4rem;
}
.step04 h3 {
    color: #533E82;
}
.step04 .row-box-img:nth-of-type(2n) {
    flex-direction: row-reverse;
}
.step04 .row-box-img:nth-of-type(2n) .txt {
    width: calc(60% - 72px);
}
.step04 h3::before {
    content: "";
    display: block;
    width: 80px;
    height: 80px;
    background: url(../images/01.png) no-repeat;
    background-size: contain;
}
.step04 .row-box-img:nth-of-type(2) h3::before {
    background: url(../images/02.png) no-repeat;
    background-size: contain;
}
.step04 .row-box-img:nth-of-type(3) h3::before {
    background: url(../images/03.png) no-repeat;
    background-size: contain;
}
.step04 .row-box-img:nth-of-type(3) h3::before {
    background: url(../images/03.png) no-repeat;
    background-size: contain;
}
.step04 .row-box-img:nth-of-type(4) h3::before {
    background: url(../images/04.png) no-repeat;
    background-size: contain;
}
.step04 .row-box-img:nth-of-type(5) h3::before {
    background: url(../images/05.png) no-repeat;
    background-size: contain;
}

.step05 ul {
    width: 70%;
    margin: 0 auto;
}
.step05 ul li {
    border: 1px solid rgba(0, 0, 0, 0.15);
    padding: 32px;
    position: relative;
}
.step05 ul li + li {
    margin-top: 40px;
}
.step05 ul li::before {
    content: "step.01";
    background: #c17498;
    color: #fff;
    font-weight: 700;
    padding: 8px 16px;
    position: absolute;
    top: 0;
    box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.05);
}
.step05 ul li:nth-of-type(2)::before {
    content: "step.02";
}
.step05 ul li:nth-of-type(3)::before {
    content: "step.03";
}
.step05 ul li:nth-of-type(4)::before {
    content: "step.04";
}
.step05 ul li:nth-of-type(5)::before {
    content: "step.05";
}
.step05 ul li::after {
    content: "";
    display: block;
    width: 120px;
    height: 50px;
    position: absolute;
    bottom: -50px;
    border-top: 40px solid rgba(0, 0, 0, 0.1);
    border-right: 60px solid transparent;
    border-left: 60px solid transparent;
    z-index: 1;
    left: calc(50% - 60px);
}
.step05 ul li:nth-of-type(5)::after {
    display: none;
}

.col-box {
    border: 2px solid #516091;
    background: #fff;
    padding: 32px;
    margin-top: 72px;
    position: relative;
    border-radius: 8px;
    box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.05);
}
.col-box h3 {
    position: absolute;
    top: calc((1rem + 16px)* -1);
    left: 50%;
    transform: translate(-50%);
    background: #516091;
    color: #fff;
    padding: 16px 32px;
    border-radius: 50px;
    font-size: 2rem;
    margin: 0;
    line-height: 1;
}
.col-box .row-box-img {
    margin: 0;
}
.col-box .row-box-img .txt {
    width: calc(80% - 40px);
}
.col-box .row-box-img figure {
    width: 20%;
}
.col-box .row-box-img figure img {
    box-shadow: none;
}
.row-box-3-wrapper {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.row-box-3:first-of-type {
    width: 100%;
}
.row-box-3:nth-of-type(n+2) {
    width: 48%;
}
.attention {
    text-align: center;
    background: #FAF8F6;
    margin: 32px 5rem 48px;
    padding: 8px 32px;
    border-radius: 8px;
    color: #755B41;
    font-weight: bold;
    position: relative;
}
.attention::before {
    content: "";
    display: block;
    width: 40px;
    height: 40px;
    background: url(../images/attention.svg) no-repeat;
    background-size: contain;
    position: absolute;
    top: -20px;
    left: calc(50% - 20px);
}



.info-box {
    display: flex;
    justify-content: center;
    margin-bottom: 24px;
}
.info-box figure {
    width: 240px;
    margin-left: 24px;
}
table {
    width: 100%;
    border-bottom: 1px solid rgba(0, 0, 0, 0.15);
    margin-bottom: 40px;
}
th,
td {
    padding: 16px;
    line-height: 1.6;
    border-top: 1px solid rgba(0, 0, 0, 0.15);
}
th {
    width: 20%;
}
td {
    width: 80%;
}
.info h3 span {
    font-size: 1rem;
}
.copyright {
    text-align: center;
    font-size: 12px;
    background: #f29da6;
    color: #fff;
    padding: 8px;
    margin-top: -3px;
}

/* レスポンシブ */
@media only screen and (max-width: 1000px) {
    .main-visual .main-inner {
        width: 90%;
    }
    .main-wrapper {
        width: 90%;
    }
    .main-visual {
        height: auto;
        padding-top: 40px;
    }
    .main-visual .main-inner {
        flex-direction: column;
    }
    .logo {
        width: 40%;
    }
}
@media only screen and (max-width: 800px) {
    section.step01 .row-box {
        flex-direction: column;
        align-items: flex-end;
    }
    section.step01 .row-box ul li {
        width: 100%;
    }
    section.step01 .row-box ul li + li {
        margin-top: 1rem;
    }
    .row-box-img {
        margin: 0;
        flex-direction: column;
    }
    .row-box-img .txt,
    .row-box-img figure {
        width: 100%;
    }
    .row-box-img figure {
        margin-top: 16px;
    }
    .row-box-img .txt h3 {
        margin-top: 0;
        margin-bottom: 16px;
    }
    .row-box-4 {
        width: 100%;
    }
    .step04 .row-box-img:nth-of-type(2n) {
        flex-direction: column;
    }
    .step04 .row-box-img:nth-of-type(2n) .txt {
        width: 100%;
    }
    .step04 .row-box-img {
        margin-bottom: 64px;
    }
    .col-box .row-box-img .txt,
    .row-box-3:nth-of-type(n+2) {
        width: 100%;
    }
    .col-box .row-box-img figure {
        width: 40%;
    }
    .attention {
        margin: 32px 0 48px;
    }
}
@media only screen and (max-width: 750px) {
    .contact .btn-contact  {
        display: none;
    }
}
@media only screen and (max-width: 599px) {
    html {
        font-size: 14px;
    }
    section h2 {
        font-size: 2rem;
    }
    .main-wrapper {
        padding: 64px 0;
    }
    .main-visual .txt li {
        width: 40vw;
        height: 40vw;
        border-radius: 20vw;
    }
    .main-visual .txt h2 {
        font-size: 3rem;
    }
    .main-visual .txt h2 span {
        font-size: 2rem;
    }
    .main-visual .txt p {
        padding: 8px 16px;
        line-height: 1.6;
    }
    .main-visual figure {
        height: auto;
        width: 50vw;
    }
    .main-visual figure img {
        width: 100%;
    }
    section.step01 figure {
        width: 120px;
    }
    .step04 h2 {
        line-height: inherit;
    }
    .step04 h2 em {
        font-size: inherit;
    }
    p.h_sub {
        line-height: 1.4;
    }
    .cta .btn a{
        width: 100%;
        padding: 16px;
    }
    .step05 ul {
        width: 100%;
    }
    .info-box {
        flex-direction: column-reverse;
        align-items: center;
    }
    th, td {
        display: block;
        width: 100%;
    }
    .col-box h3 {
        font-size: 1.5rem;
    }
}
@media only screen and (max-width: 500px) {
    .contact .btn-online  {
        display: none;
    }
    .logo {
        width: 60%;
        margin: 16px 0 16px 5%;
    }
    section.step01 .row-box ul li {
        font-size: 1.2rem;
    }
    .cta .btn a::after {
        display: none;
    }
    .step04 .main-wrapper {
        padding: 32px 0 0;
    }
}
@media only screen and (max-width: 400px) {
    .main-visual .txt li {
        font-size: 3.5vw;
    }
}


/*中山追加 1020*/

@media only screen and (max-width: 768px) {

    .table-res-form th {
        width: 100% !important;
        display: block !important;
        text-align: center !important;
    }

}

/*　ContactForm7のテーブル化レスポンシブ調整　*/

/*テーブルを親要素の幅いっぱいに伸ばす*/
.table-res-form {
    width: 70%;
    margin: 3rem auto;
}
/*一行ごとに上ボーダー*/
.table-res-form tr {
    border-top: 1px #DDD solid;
}
/*一番上の行だけボーダーなし*/
.table-res-form tr:first-child {
    border-top: none;
}
/*奇数行だけ背景色つける*/
.table-res-form tr:nth-child(2n+1) {
    background: #eee;
}
/*thとtd内の余白指定*/
.table-res-form th, .table-res-form td {
    padding: 1.5em;
}
/*th（項目欄）は30%幅、テキストを右寄せ*/
.table-res-form th {
    width: 30%;
    text-align: right;
}
/*「必須」部分のスタイリング*/
.table-res-form .requied {
    font-size: 0.8em;
    color: #FFF;
    display: inline-block;
    padding: 0.3em 0.3em 0.2em;
    background: red;
    border-radius: 2px;
}

.wpcf7 .wpcf7-spinner {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
}

/*ここから768px以下の指定*/

@media only screen and (max-width: 768px) {
/*thとtdをブロック化して幅100％にして、縦積み*/

    .table-res-form th {
        width: 100%;
        display: block;
    }

    .table-res-form td {
        width: 100%;
        display: block;
    }
/*th（項目名）欄の不要な余白削除・テキスト左寄せ*/
    .table-res-form th {
        padding-bottom: 0;
        text-align: left;
        width: 100% !important;
        display: block !important;
    }
}

/*ここまで768px以下の指定---終わり*/

/*ここから入力欄のスタイル指定*/

/*各入力フォームスタイリング*/
.table-res-form input[type="text"], input[type="email"], textarea {
    border: 1px #89BDDE solid;
    padding: 0.5em;
    border-radius: 5px;
    margin-bottom: 0.5em;
    width: 100%;
}
/*入力欄にフォーカスしたら変化*/
.table-res-form input[type="text"]:focus, textarea:focus {
    background: #EEFFFF;
    box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5);
}
/*送信ボタンスタイリング*/
.table-res-submit{
    text-align: center;
}

.table-res-submit input[type="submit"] {
    border: 1px #516091 solid;
    padding: 1em 6em;
    border-radius: 5px;
    background: #516091;
    color: #fff;
    box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5);
    font-weight: bold;
}
/*送信ボタン・マウスオーバー時スタイリング*/
.table-res-form input[type="submit"]:hover {
    background: #006599;
    box-shadow: none;
}

/*送信ボタン・マウスオーバー時スタイリング*/
.floating-banner {
    position: fixed;
    z-index: 99999;
    right: 0;
    top: 180px;
    width: 55px;
}
.banner {
    height: 270px;/* バナーの横幅 */
    padding: 10px 10px;
    background: #00B900;/* バナーの背景色 */
    color: #fff;/* バナー内の文字色 */
    font-weight: bold;
    text-align: center;
    writing-mode: vertical-rl;
}
.floating-banner a {
    text-decoration: none;/* リンクに下線が入らないように */
}
.copy {
    font-size: 16px;
    line-height: 1.6;
    margin: 0 5px;
}

.copy::before {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    background: url(../images/line.png) no-repeat;
    background-size: contain;
    fill: white;
    margin-bottom: 5px;
}
@media screen and (max-width: 560px) {
    .floating-banner {
        display: block;
        top: auto;
        bottom: 0;
        width: 100%;
    }
    .banner {
        width: 100vw;
        padding: 8px;
        top: inherit;
        bottom: 55px;
        height: 55px;
        writing-mode: horizontal-tb;
        -webkit-writing-mode: horizontal-tb;
        -ms-writing-mode: horizontal-tb;
    }
    .sp {
        display: none;
    }
    .copy {
        font-size: 18px;
        margin: 6px 0 0 0;
    }
    .copy::before {
        margin: 0 5px 5px 0;
        vertical-align: middle;
    }
}