@charset "utf-8";
/*共通設定*/
.parent {
    padding: 0 5vw;
}

.child {
    max-width: 1200px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.dot-text {
    background-image: radial-gradient(circle at center, #A75964 20%, transparent 20%); /* 点の色とサイズ調整 */
    background-position: top left; /* 点の位置 */
    background-repeat: repeat-x; /* 横方向に繰り返し */
    background-size: 1.05em 0.5em; /* 点の間隔とサイズ調整 */
    padding-top: .4em; /* 縦方向の位置調整 */
}

.under-line {
    position: relative;
}

.under-line::after {
    content: '';
    width: 100%;
    height: 10px;
    display: inline-block;
    background-color: #EF3509;
    border-radius: 100vh;
    position: absolute;
    bottom: -5px;
    left: 0;
}

.triangle {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 32px;
    margin-bottom: 32px;
}

.triangle h2 {
    font-size: 32px;
    line-height: 1.3;
}
/*終わり*/

/*<section class="fv">*/
.fv-in {
    width: 100%;
    height: 100vh;
    background-image: url(../img/home.png);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    position: relative;
}

.fv-img {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}   

.fv-img01,
.fv-img02 {
    width: 45%;
}
/*終わり*/

/*<section class="example">*/
.triangle .img-01 {
    width: 44%;
}

.ex-grid {
    display: grid;
    justify-content: space-between;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    column-gap: 20px;
    row-gap: 20px;
}

.ex-grid .grid-con {
    text-align: center;
}
/*終わり*/

/*<div class="cost">*/
.cost {
    margin-top: 40px;
    background-color: #98C6F5;
}

.cost-in {
    padding-top: 56px;
    padding-bottom: 56px;
}

.cost-in p {
    font-size: 32px;
    text-align: center;
    font-weight: bold;
    line-height: 1.4;
}

.cost-in .under-line {
    font-size: 48px;
}
/*終わり*/

/*<div class="contact">*/
.contact {
    background-color: #F1EFEF;
    padding-top: 40px;
    padding-bottom: 40px;
}

.contact-in {
    text-align: center;
}

.contact-in .text-01 {
    background-color: #1919D7;
    color: #fff;
    padding: 4px 0;
    border-radius: 100vh;
}

.contact-in .text-02 {
    max-width: 500px;
    width: 100%;
    font-size: 24px;
    color: #fff;
    font-weight: bold;
    display: inline-block;
    padding: 16px 0;
    background-color: #00B900;
    margin: 24px 0;
    position: relative;
    overflow: hidden;
}

.contact-in .tel {
    border: solid 1px #333;
    padding: 8px 0;
    max-width: 500px;
    width: 100%;
    margin: 0 auto;
    line-height: 1.4;
}

.tel .text-03 {
    font-size: 20px;
    font-weight: bold;
}

.tel .text-04 {
    font-size: 32px;
    font-weight: bold;
}

@keyframes anime_cvbtn02 {
    0% { -webkit-transform: scale(0) rotate(45deg); opacity: 0; }
    40% { -webkit-transform: scale(0) rotate(45deg); opacity: 0.3; }
    80% { -webkit-transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { -webkit-transform: scale(4) rotate(45deg); opacity: 1; }
    90% { -webkit-transform: scale(30) rotate(45deg); opacity: 1; }
    100% { -webkit-transform: scale(50) rotate(45deg); opacity: 0; }
}

.contact-in .text-02::after {
    animation: anime_cvbtn02 5s ease-in-out infinite;
    content: '';
    position: absolute;
    top: -10%;
    left: -20%;
    width: 40px;
    height: 100%;
    transform: scale(2) rotate(20deg);
    background-image: linear-gradient(100deg, rgba(255, 255, 255, 0) 10%, rgba(255, 255, 255, .5) 100%, rgba(255, 255, 255, 0) 0%);
}
/*終わり*/

/*<section class="about">*/
.triangle .img-02 {
    width: 30%;
    margin-top: 0;
}

.about-in {
    text-align: center;
}

.about-in .text-01 {
    font-weight: bold;
}

.about-img01 {
    margin-top: 16px;
}

.about-text {
    max-width: 800px;
    width: 100%;
    padding: 16px;
    font-weight: bold;
    margin: 0 auto;
    background-color: #F4EEEE;
}
/*終わり*/

/*<section class="worry">*/
.worry {
    margin: 48px 0;
}

.worry-in h2 {
    font-size: 32px;
    text-align: center;
    padding: 24px 5vw;
    background-color: #98C6F5;
}

.worry-in img {
    width: 100%;
}
/*終わり*/

/*<section class="realize">*/
.triangle .img-03 {
    width: 35%;
}

.realize {
    margin-bottom: 48px;
}

.rea-flex {
    display: grid;
    justify-content: space-between;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    column-gap: 32px;
    row-gap: 48px;
}

.flex-con02 {
    background-color: #F4EEEE;
    position: relative;
    padding: 16px 56px;
}

.flex-con02 h3 {
    font-size: 24px;
    text-align: center;
}

.num-01 {
    position: absolute;
    top: 8px;
    left: 8px;
    font-size: 40px;
    line-height: 1;
    color: #CBC5C5;
    font-style: italic;
    font-family: 'Noto Serif JP', serif;
}
/*終わり*/

/*<section class="profile">*/
.triangle .img-04 {
    width: 45%;
}

.profile {
    background-image: url(../img/profile-back.png);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

.profile-in {
    padding: 40px;
}

.pro-flex {
    display: flex;
    justify-content: center;
    align-items: center;
}

.pro-text {
    margin-left: 24px;
}

.pro-text .text-02 {
    text-align: center;
    background-color: #1919D7;
    color: #fff;
    padding: 4px 0;
    border-radius: 100vh;
    margin: 16px 0 32px 0;
}

.pro-text .text-03 {
    background-color: rgba(255, 255, 255, 0.7);
    padding: 24px;
    font-weight: 600;
}

.pro-text .text-03 span {
    display: inline-block;
    font-size: 32px;
    margin-bottom: 8px;
}
/*終わり*/

/*<section class="works">*/
.triangle .img-05 {
    width: 20%;
}

.works-flex .flex-con03 {
    margin-bottom: 40px;
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    justify-content: space-between;
}

.works-flex .flex03 {
    width: 65%;
    background-color: #F4EEEE;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 24px;
}

.flex03 h3 {
    font-size: 24px;
    margin-bottom: 16px;
}

.works-flex img {
    width: 30%;
}

.num-02 {
    position: absolute;
    top: -24px;
    left: 0;
    font-size: 50px;
    line-height: 1;
    color: #CBC5C5;
    font-style: italic;
    font-family: 'Noto Serif JP', serif;
}
/*終わり*/

/*<div class="consul">*/
.consul {
    background-color: #98C6F5;
}

.consul-in {
    padding-top: 56px;
    padding-bottom: 56px;
}

.consul-in p {
    font-size: 32px;
    text-align: center;
    font-weight: bold;
    line-height: 1.4;
}

.consul-in .under-line {
    font-size: 48px;
}
/*終わり*/

/*<section class="flow">*/
.triangle .img-06 {
    width: 20%;
}

.flow-con {
    max-width: 650px;
    width: 100%;
    margin: 0 auto 40px auto;
    display: flex;
    align-items: center;
}

.step {
    font-size: 40px;
    line-height: 1;
    color: #CBC5C5;
    font-style: italic;
    font-family: 'Noto Serif JP', serif;
}

.flow-con img {
    margin: 0 32px;
}


.flow-text h3 {
    border-bottom: solid 1px #CBC5C5;
}
/*終わり*/

/*タブレット*/
@media (max-width: 1024px) {  
/*共通設定*/
    .triangle h2 {
        font-size: 24px;
    }
/*終わり*/  

/*<section class="fv">*/
    .fv-in {
        height: 60vh;
    }
/*終わり*/

/*<section class="example">*/
    .triangle .img-01 {
        width: 55%;
    }
/*終わり*/

/*<div class="cost">*/
    .cost-in {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .cost-in p {
        font-size: 24px;
        text-align: center;
        font-weight: bold;
        line-height: 1.4;
    }

    .cost-in .under-line {
        font-size: 32px;
    }
/*終わり*/

/*<section class="about">*/
    .triangle .img-02 {
        width: 35%;
    }
/*終わり*/

/*<section class="worry">*/
    .worry-in h2 {
        font-size: 20px;
    }
/*終わり*/

/*<section class="realize">*/
    .triangle .img-03 {
        width: 48%;
    }

    .flex-con02 {
        padding: 16px;
        text-align: center;
    }

    .flex-con02 h3 {
        font-size: 20px;
        margin-bottom: 8px;
    }
/*終わり*/

/*<section class="profile">*/
    .triangle .img-04 {
        width: 65%;
    }

    .profile-in {
        padding: 24px 0;
    }

    .pro-text .text-01 {
        font-size: 48px;
    }
/*終わり*/

/*<section class="works">*/
    .works-flex .flex03 {
        width: 65%;
        padding: 24px 16px;
    }

    .flex03 h3 {
        font-size: 20px;
    }

    .works-flex img {
        width: 33%;
    }

    .num-02 {
        font-size: 48px;
    }
/*終わり*/

/*<div class="consul">*/
    .consul-in {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .consul-in p {
        font-size: 24px;
        text-align: center;
        font-weight: bold;
        line-height: 1.4;
    }

    .consul-in .under-line {
        font-size: 32px;
    }
/*終わり*/
}
  
/*スマホ*/
@media (max-width: 599px) {
/*共通設定*/
    .triangle h2 {
        font-size: 20px;
    }

    .under-line::after {
        height: 6px;
    }    

    .br-pc {
        display: none;
    }
/*終わり*/ 

/*<section class="fv">*/
    .fv-in {
        height: 70vh;
    }

    .fv-img01,
    .fv-img02 {
        width: 100%;
    }

    .fv-img {
        width: 85%;
        margin: 0 auto;
    }    
/*終わり*/

/*<section class="example">*/
    .triangle .img-01 {
        width: 95%;
    }
/*終わり*/

/*<div class="cost">*/
    .cost-in {
        padding-top: 32px;
        padding-bottom: 32px;
    }

    .cost-in p {
        font-size: 16px;
        text-align: center;
        font-weight: bold;
        line-height: 1.4;
    }

    .cost-in .under-line {
        font-size: 20px;
    }
/*終わり*/

/*<div class="contact">*/
    .contact-in .text-01 {
        padding: 16px;
    }

    .contact-in .text-02 {
        font-size: 20px;
    }

    .contact-in .tel {
        padding: 8px;
    }

    .tel .text-03 {
        font-size: 20px;
    }
/*終わり*/

/*<section class="about">*/
    .triangle .img-02 {
        width: 70%;
    }

    .about-in .text-01 {
        text-align: left;
    }

    .about-text .text-02 {
        text-align: left;
    }

    .about-img02 {
        margin: 16px 0;
    }
/*終わり*/

/*<section class="worry">*/
    .worry-in h2 {
        font-size: 18px;
        padding: 16px 5vw;
    }
/*終わり*/

/*<section class="realize">*/
    .triangle .img-03 {
        width: 75%;
    }

    .rea-flex {
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    }

    .flex-con02 h3 {
        font-size: 18px;
    }

    .num-01 {
        font-size: 32px;
    }
/*終わり*/

/*<section class="profile">*/
    .triangle .img-04 {
        width: 95%;
    }

    .pro-flex {
        display: block;
        text-align: center;
    }

    .pro-text {
        margin-left: 0;
        margin-top: 16px;
    }

    .pro-text .text-03 {
        text-align: left;
        padding: 16px;
    }

    .pro-text .text-03 span {
        font-size: 24px;
    }
/*終わり*/

/*<section class="works">*/
    .triangle .img-05 {
        width: 30%;
    }

    .flex-con03 {
        display: block;
    }

    .works-flex .flex03 {
        width: 100%;
        padding: 32px 8px 24px 8px;
    }

    .flex03 h3 {
        font-size: 17px;
    }

    .works-flex img {
        width: 100%;
    }

    .num-02 {
        font-size: 32px;
        top: -16px;
    }
/*終わり*/

/*<div class="consul">*/
    .consul-in {
        padding-top: 32px;
        padding-bottom: 32px;
    }

    .consul-in p {
        font-size: 16px;
    }

    .consul-in .under-line {
        font-size: 20px;
    }
/*終わり*/

/*<section class="flow">*/
    .triangle .img-06 {
        width: 45%;
    }

    .flow-con {
        display: block;
        text-align: center;
        margin-bottom: 48px;
    }

    .step {
        font-size: 32px;
        text-align: center;
    }

    .flow-con img {
        margin: 16px 0 8px 0;
    }

    .flow-text {
        text-align: left;
    }
/*終わり*/
}