@charset "UTF-8";

.header-img {
    top: 0;
    left: 0;
    width: 20%;
}

.grid {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
}


.hero-image {
    position: relative;
    width: 100%;
    padding-top: 40%;
    grid-area: 1/1;
    z-index: 5;
}

.header-main {
    position: absolute;
    width: 100%;
    z-index: 10;
    
}

.hero-text {
    grid-area: 1/1;
    z-index: 5;
    text-align: center;
    justify-self: center;
    align-self: center;
    padding: 500px 15% 0 15%;
}

h2 {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 40px;
}

.hero-text p {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 28px;
  padding-top: 50px;
}

main {
    background-color: #fcffd4;
}

.color {
    position: absolute;
    height: 700px;
    bottom: 0;
    width: 100%;
    background-color: #fcffd4;
    z-index: 1;
}

.long-underline {
    padding-bottom: 5px; /* テキストと下線の間隔を調整 */
    border-bottom: 2px solid #000; /* 下線のスタイル（太さ、種類、色） */
    font-family: "RocknRoll One", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 40px;
}

.underline-container {
    width: 90%; /* 下線の長さをコントロールするコンテナ */
    margin: 0 5% 20px 5%;
    padding-top: 200px;
}

.heading-box {
    background-color: #02e97d; /* 背景色 */
    color: #fff; /* 文字色 */
    width: 400px;
    padding: 15px 20px;
    border-radius: 20px; /* 上の角だけ丸くする */
    margin-bottom: -1px; /* 次のボックスとの間に隙間ができないようにする */
    text-align: center;
    margin: 200px auto 0 auto;
}

h3 {
    padding: 0 10px;
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 40px;
}

.content-box {
    position: relative;
    background: #ffffff;
    /*背景色の指定*/
    border: #02e97d 5px solid;
    /*境界線の指定*/
    border-radius: 80px;
    /*角丸の指定*/
    margin: 0 150px;
    padding: 100px 120px;
    z-index: 2;
}

.font-top {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 24px;
    text-align: center;
    margin: 0 60px 50px 60px;
}

h4 {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 28px;
    color: #00b06b;
    padding: 50px 0;
}


.font-a p {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 24px;
}

.text-color {
    color: #ff0004;
}

.point-box-wrapper {
    position: relative;
    margin-top: 100px;
    margin-bottom: 20px;
}

.color-b {
    position: absolute;
    height: 50%;
    bottom: 0;
    width: 100%;
    background-color: #02e97d;
    opacity: 20%;
    z-index: 5;
    border-radius: 10px 10px 0 0;
}

.space {
    position: relative;
}

.point-label {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 28px;
    color: #00b06b;
    position: relative;
    z-index: 10;
    padding-left: 30px;
}

.color-c {
    position: absolute;
    height: 80%;
    width: 100%;
    background-color: #02e97d;
    opacity: 20%;
    z-index: 5;
    border-radius: 0 0 10px 10px;
}

.transparent-box p {
    position: relative;
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 24px;
    z-index: 10;
    padding: 0 30px;
}

.container2 {
    display: flex;
    margin: 0 60px;
}

.square {
    width: 30px;
    height: 30px;
    background-color: #ffffff; /* 正方形の色 */
    border: #02e97d 5px solid;
    margin-right: 30px;
    flex-shrink: 0;
}

.font-b p {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 24px;
    padding-bottom: 20px;
}

.font-size {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 14px;
}

.heading-box2 {
    background-color: #04d0db; /* 背景色 */
    color: #fff; /* 文字色 */
    width: 400px;
    padding: 15px 20px;
    border-radius: 20px; /* 上の角だけ丸くする */
    margin-bottom: -1px; /* 次のボックスとの間に隙間ができないようにする */
    text-align: center;
    margin: 200px auto 0 auto;
}

.content-box2 {
    position: relative;
    background: #ffffff;
    /*背景色の指定*/
    border: #04d0db 5px solid;
    /*境界線の指定*/
    border-radius: 80px;
    /*角丸の指定*/
    margin: 0 150px;
    padding: 100px 120px;
    z-index: 2;
}

h5 {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 28px;
    color: #06bdc6;
    padding: 30px 0;
}

.grid-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    margin-bottom: 50px;
}

.color-d {
    position: absolute;
    height: 50%;
    bottom: 0;
    width: 100%;
    background-color: #ff0004;
    opacity: 20%;
    z-index: 5;
    border-radius: 10px 10px 0 0;
}

.point-box-wrapper2 {
    position: relative;
    margin-top: 100px;
    margin-bottom: 20px;
}

.important-label {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 28px;
    color: #ff0004;
    position: relative;
    z-index: 10;
    padding-left: 30px;
}

.transparent-box2 p {
    position: relative;
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 24px;
    z-index: 10;
    padding: 0 30px;
}

.color-e {
    position: absolute;
    height: 80%;
    width: 100%;
    background-color: #ff0004;
    opacity: 20%;
    z-index: 5;
    border-radius: 0 0 10px 10px;
}

.square2 {
    width: 30px;
    height: 30px;
    background-color: #ffffff; /* 正方形の色 */
    border: #04d0db 5px solid;
    margin-right: 30px;
    flex-shrink: 0;
}

.number p {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 30px;
    color: #04d0db;
    margin-right: 30px;
}

.h5-a {
    padding: 50px 0;
}

.content-box3 {
    position: relative;
    background: #ffffff;
    /*背景色の指定*/
    border: #02e97d 5px solid;
    /*境界線の指定*/
    border-radius: 80px;
    /*角丸の指定*/
    margin: 200px 150px;
    padding: 100px 120px;
    z-index: 2;
}

.font-sub {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 24px;
    margin: 0 60px 50px 60px;
}

.hyou {
    width: 90%;
    height: auto;
    margin: 70px 5%;
}

.rist {
    width: 90%;
    height: auto;
    margin: 30px 5% 90px;
}

.font-big p {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 40px;
    color: #ff0004;
    text-align: center;
    margin: 50px 100px;
}

.inyou p {
    padding-bottom: 5px; /* テキストと下線の間隔を調整 */
    font-family: "RocknRoll One", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 40px;
    text-align: center;
    margin: 100px;
}

.sannkou {
    font-family: "IBM Plex Sans JP", sans-serif;
    font-weight: 400;
    font-style: normal;
    padding-bottom: 100px;
    margin: 0 350px;
}

footer {
    position: relative;
}

.color-z {
    position: absolute;
    height: 200px;
    top: 0;
    width: 100%;
    background-color: #fcffd4;
    z-index: 1;
}

.footer-img {
    position: absolute;
    width: 100%;
    height: auto;
    z-index: 5;
}

.footer-copy p {
    position: relative;
    text-align: center;
    font-size: 15px;
    color: #ffffff;
    z-index: 10;
    padding-top: 350px;
}

.url {
    text-decoration: none;
    color: #000;
}

.url :hover {
    color: #00b06b;
}

@media screen and (max-width: 800px) {
    /* メインレイアウトの調整 */
    .header-img {
        width: 40%;
    }

    .hero-text {
        padding: 50px 10% 0 10%;
    }

    h2 {
        padding-top: 30%;
        font-size: 16px;
    }

    .hero-text p {
        font-size: 12px;
        padding-top: 20px;
    }

    .color {
        height: 200px;
    }

    /* コンテンツボックスと見出しの調整 */
    .long-underline {
        font-size: 20px;
    }

    .underline-container {
        width: 95%;
        margin: 0 2.5% 20px 2.5%;
        padding-top: 50px;
    }

    .heading-box, .heading-box2 {
        width: 60%;
        padding: 10px;
        margin: 50px auto 0 auto;
    }

    .content-box, .content-box2, .content-box3 {
        margin: 0 10px;
        padding: 30px 30px;
        border-radius: 40px;
    }

    .font-top {
        font-size: 14px;
        margin: 20px 25px 30px 25px;
    }
    
    .font-sub {
        font-size: 14px;
        margin: 0 25px 30px 25px;
    }

    h3, h5, .point-label, .important-label {
        font-size: 18px;
        padding: 5px 0;
    }

    h4 {
        font-size: 18px;
        padding: 20px 0;
    }

    .point-box-wrapper {
        margin: 50px 0;
        padding-bottom: 0;
    }

    .point-box-wrapper2 {
        margin: 50px 0;
        padding-bottom: 0;
    }

    .container2 {
        margin: 10px 20px;
    }

    /* テキストと画像の調整 */
    .font-a p, .transparent-box p, .transparent-box2 p {
        font-size: 16px;
        padding-bottom: 20px;
    }

    .hyou, .rist {
        width: 100%;
        margin: 20px 0 30px 0;
    }

    .grid-box {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-bottom: 30px;
    }

    .font-b p {
        font-size: 18px;
    }

    .font-size {
        font-size: 12px;
    }

    .font-big p {
        font-size: 20px;
        margin: 30px 10px;
        padding-top: 20px;
    }

    .inyou p {
        font-size: 24px;
        margin: 50px 10px;
    }

    .sannkou {
        margin: 0 30px;
        padding-bottom: 50px;
        overflow-wrap: anywhere;
    }

    .footer-img {
        height: auto;
    }

    .footer-copy p {
        font-size: 12px;
        padding-top: 70px;
    }

    .color-z {
        height: 100px;
    }
}