@charset "UTF-8";

/* 共通部分
------------------------------- */
html {
    font-size: 100%;
}

body {
    font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
    line-height: 2;
    color: #333;
}

a {
    text-decoration: none;
}

img {
    max-width: 100%;
}

ul, li {
    list-style: none;
}

:root {
    --main-color: #029AEE;
    --btn-color: #2E75B6;
    --bg-color: rgba(2, 154, 238, 0.18);
    --sp-mrgb: 50px;
}

.wrapper {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 4%;
}

.pc {
    display: block;
}

.sp {
    display: none;
}

.eng-txt, .step-no {
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: normal;
    font-style: normal;
}

.eng-txt span {
    font-size: calc(100% - 0.2rem)
}

/* 大きな背景画像 */
.mainvisual {
    background-image: url(../img/big_bg.png);
    height: 100vh;
    text-align: center;
}

.big-bg {
    background-size: 72%;
    background-position: right bottom;
    background-repeat: repeat-x;
}

.mainvisual .page-title-img {
    max-width: 710px;
    margin-top: -6vh;
}

.mainvisual p {
    width: 100%;
    font-size: 2.275rem;
    font-weight: 600;
    color: #777;
    margin-top: -45px;
    letter-spacing: 1.5px;
    padding: 0 20px;
}

.mainvisual button {
    margin-top: 3vh;
}

.description {
    text-align: center;
    padding: 120px 0 140px;
    line-height: 2.7;
    letter-spacing: 1px;
    font-size: 1.175rem;
}

.small-txt {
    font-size: 0.875rem;
}

.sub-title {
    display: block;
    font-weight: 600;
    font-size: 20px;
    margin-bottom: 8px;
}

.sub-title.syouhin {
    font-weight: 500;
    margin-bottom: 5px;
}

.sub-title.center {
    text-align: center;
    margin: 20px 0;
}

.text-center {
    font-weight: 500;
    text-align: center;
    border-bottom: 1px solid #333;
}


/* ボタン */
button {
    display: block;
    margin: 0 auto;
}

button a {
    display: block;
    font-size: 1.125rem;
    background: var(--btn-color);
    color: #fff;
    padding: 10px;
    border: 1px solid #fff;
    min-width: 350px;
    line-height: 1.8;
}

button span {
    border: 1px solid #fff;
    display: block;
    padding: 8px;
}

button a:hover {
    opacity: 0.8;
}

button.inquiry {
    margin: 30px auto;
}

button.inquiry a {
    background: #333;
    color: #fff;
    border: 1px solid #fff;
}

button.inquiry span {
    border: 1px solid #fff;
}

/* HEADER
------------------------------- */
header {
    width: 95%;
    margin: 0 auto;
}

.logo {
    width: 250px;
    padding-top: 20px;
}

.logo img {
    width: 100%;
}

section {
    margin-bottom: 70px;
}

.pdt15 {
    padding-top: 15px;
}

/* HOME
------------------------------- */

.home-content {
    text-align: center;
    margin-top: 10%;
}

.home-content p {
    font-size: 1.125rem;
    margin: 10px 0 42px;
}

/* ステップ　*/
.step {
    margin-bottom: 70px;
}

.step-list {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    text-align: center;
    font-size: 0.875rem;
    line-height: 1.7;
}

.step-list li {
    position: relative;
    background-color: var(--bg-color);
    padding: 20px 15px;
    width: 25%;
}

.step-list li:nth-child(2) {
    width: 50%;
}

.step-list .inner {
    display: flex;
    justify-content: space-between;
}

.step-list .inner div {
    width: calc(100% / 2 - 5px);
}

.step-list img {
    width: 111px;
    height: auto;
}

.step-list .qr-code {
    padding: 15px;
}

.step-no {
    position: absolute;
    top: -20px;
    left: -10px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 10px;
    text-align: center;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1;
    width: 60px;
    height: 60px;
    background-color: var(--main-color);
    color: #fff;
    border-radius: 50%;
    align-items: center;
}

.step-no .eng {
    display: block;
    width: 100%;
    font-size: 1.8rem;
}

.step-list .right-box {
    background-color: #fff;
    padding: 10px;
    margin-left: 1rem;
}

.step-list .right-box .img-box {
    display: flex;
    justify-content: space-around;
}

.step-list .right-box img:nth-child(1) {
    padding: 10px;
    transform: rotate(-10deg);
}

/* 参加方法　*/
.join-item {
    margin-top: 100px;
    margin-bottom: 50px;
}

h2.item-title, h2.about-title {
    font-size: 1.525rem;
    padding: 5px 0;
    border-bottom: 2px solid var(--main-color);
    margin-bottom: 20px;
    margin-top: 30px;
}

h2.about-title {
    margin-top: 0;
    border: none;
    padding-left: 0;
}

h2.about-title.kiteru {
    margin-top: 50px;
}

a.br-bt {
    color: #333;
    text-decoration: underline;
}

a.br-bt:hover {
    text-decoration: none;
}

.item-list, .item-list>li {
    list-style: decimal;
}

.item-list {
    padding-left: 17px;
}

.item-list>li {
    padding-left: 5px;
}

.syuhen {
    margin-top: 30px;
    margin-bottom: 60px;
    padding: 30px 20px;
    background-color: var(--bg-color);
}

.syuhen>p {
    text-align: center;
    font-size: 1.525rem;
    font-weight: 600;
    color: var(--btn-color);
    margin-bottom: 20px;
}

.syuhen div {
    display: flex;
    justify-content: space-between;
}

.syuhen div>img {
    width: 30%;
    height: auto;
    margin-right: 20px;
}

span.br-bt {
    border-bottom: 1px solid;
}

.item-flex-box {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-top: 30px;
    margin-bottom: 35px;
}
.item-flex-box figure {
    width: 35%;
    height: auto;
}
.item-flex-box img {
    width: 100%;
    border: 1px solid #D9D9D9;
}

.item-flex-box>div {
    width: 60%;
}

/* よくある質問 */
.qa {
    margin-bottom: 100px;
}

.qa li {
    padding-left: 30px;
    position: relative;
}

.qa li::after {
    position: absolute;
    content: "Q.";
    left: 0;
    top: 0;
}

.qa li.qa-question {
    font-weight: 600;
    margin-bottom: 10px;
    font-size: calc(1em + 1px);
}

.qa li.qa-answer {
    margin-bottom: 30px;
}

.qa li.qa-answer::after {
    content: "A.";
}

.qa span {
    display: inline-block;
    width: 50px;
}

/* カミハチキテルについて*/
.about-kiteru {
    background-color: var(--bg-color);
    padding: 70px 0 100px;
    margin-bottom: 0;
}

.about-kiteru .wrapper {
    max-width: 850px;
}

.gaiyou {
    display: inline-block;
    width: 90px;
}

.about-kiteru ul>li {
    display: flex;
    justify-content: flex-start;
}

.about-kiteru p {
    margin-bottom: 20px;
}

.about-kiteru .img-box {
    display: flex;
    justify-content: space-between;
    margin: 30px 0 10px;
}

.about-kiteru .img-box img {
    width: calc(100% / 2 - 10px);
    height: auto;
}

.about-kiteru .img-detail {
    font-size: 0.825rem;
    text-align: center;
    margin-bottom: 40px;
}

/* モバイル版
------------------------------- */
@media (max-width: 600px) {
    body {
        font-size: 15px;
    }

    .wrapper {
        padding: 0 20px;
    }

    .page-title {
        font-size: 2.5rem;
    }

    .mainvisual {
        height: 92vh;
    }

    .mainvisual .page-title-img {
        max-width: 96%;
        margin-top: -1vh;
    }

    .mainvisual p {
        display: block;
        font-size: 18px;
        width: 100%;
        padding: 0;
        text-align: center;
        margin-top: -20px;
    }

    .mainvisual button {
        margin-top: 2.8vh;
    }

    .big-bg {
        background-size: 220%;
        background-position: center bottom;
    }

    .logo {
        width: 170px;
    }

    .description {
        padding: 60px 0 70px;
        font-size: 16px;
        line-height: 1.9;
        letter-spacing: 0.7px;
    }

    .step-list {
        flex-direction: column;
        gap: 40px;
    }

    .step-list li, .step-list li:nth-child(2) {
        width: 100%;
    }

    .step-list .inner {
        flex-direction: column;
    }

    .step-list .inner div {
        width: 100%;
    }

    .step-list .right-box {
        margin-left: 0;
        margin-top: 1rem;
    }

    button {
        width: 300px;
    }

    button a {
        min-width: unset;
        width: 100%;
        font-size: 1em;
    }

    .step {
        margin-bottom: var(--sp-mrgb);
    }

    .join-item {
        margin-top: var(--sp-mrgb);
        margin-bottom: var(--sp-mrgb);
    }

    h2.item-title, h2.about-title {
        font-size: 1.275rem;
    }

    .syuhen {
        margin-bottom: var(--sp-mrgb);
    }

    .syuhen>p {
        font-size: 1.125rem;
        margin-bottom: 15px;
    }

    .syuhen div {
        flex-direction: column;
    }

    .syuhen div>img {
        width: 100%;
        margin-right: 0;
        margin-bottom: 20px;
    }

    .text-center {
        font-size: 16px;
    }

    .item-flex-box {
        flex-direction: column;
    }

    .item-flex-box figure, .item-flex-box div {
        width: 100%;
        height: auto;
    }

    .item-flex-box img.small {
        width: 60%;
        margin: 0 auto;
    }

    .item-list>li {
        padding-left: 0;
    }

    .qa {
        margin-bottom: var(--sp-mrgb)
    }

    .about-kiteru {
        padding-top: var(--sp-mrgb);
        padding-bottom: var(--sp-mrgb);
    }

    .about-kiteru ul>li {
        flex-direction: column;
    }

    .sub-title {
        font-size: calc(100% + 0.2rem);
        margin-bottom: 0;
    }

    .sub-title.syouhin, .sub-title.center {
        font-size: 18px;
        line-height: 1.8;
    }

    .gaiyou {
        margin-top: 8px;
    }

    .about-kiteru .img-box {
        flex-direction: column;
        gap: 20px;
    }

    .about-kiteru .img-box img {
        width: 100%;
    }

    .pc {
        display: none;
    }

    .sp {
        display: block;
    }

    .pdt15 {
        padding-top: 0;
    }

}

/* タブレット版
------------------------------- */
@media (min-width: 601px) and (max-width: 959px) {
    .mainvisual .page-title-img {
        max-width: 88%;
        margin-top: 3vh;
    }
    .mainvisual button {
        margin-top: 40px;
    }
    .step-list .inner {
        flex-direction: column;
        gap: 20px;
    }

    .step-list .inner div {
        width: 100%;
    }

    .big-bg {
        background-size: 120%;
        background-position: right bottom;
    }

    .sub-title {
        font-size: calc(100% + 0.2rem);
        margin-bottom: 0;
    }

    .step-list li {
        padding-left: 10px;
        padding-right: 10px;
    }

    .step-list .right-box {
        margin-left: 0;
    }
}

/* PC版
------------------------------- */
@media (min-width: 960px) and (max-width: 1600px) {
    .mainvisual .page-title-img {
        max-width: 600px;
        margin-top: -80px;
    }

    .big-bg {
        background-size: 65%;
    }

    .mainvisual p {
        font-size: 1.925rem;

    }

    .mainvisual button {
        margin-top: 2vh;
    }

    .sub-title {
        font-size: calc(100% + 0.2rem);
        margin-bottom: 0;
    }

}