/*----------------------------------------
	全体レイアウト
----------------------------------------*/
.inputItem {
    display: grid;
    gap: 10px;
    margin-top: -1px;
    padding: 20px 0;
    border-top: 1px dashed #ccc;
    border-bottom: 1px dashed #ccc;
}

.inputItem fieldset,
.inputItem legend {
    display: contents;
    /*マークアップ上のセマンティクスは残しつつレイアウト上はこの要素を無視する*/
}

@media (min-width: 768px) {
    .inputItem {
        grid-template-columns: 32.4% 1fr;
        gap: 40px;
        align-items: center;
    }
}

/*----------------------------------------
	パーツレイアウト
----------------------------------------*/
/*ラベル*/
.inputLabel {
    font-weight: 500;
    font-size: 18px;
}

@media (min-width: 768px) {
    .inputLabel {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
}

/*サブラベル*/
.inputSubLabel {
    display: block;
    margin-bottom: 5px;
    font-weight: 500;
}

/*必須ラベル*/
.require {
    display: inline-block;
    margin-left: 10px;
    padding: 0 10px;
    background: var(--c_main);
    color: var(--c_white);
    font-weight: normal;
    font-size: 12px;
    vertical-align: middle;
}

/*名前・フリガナ*/
.nameLayout {
    display: grid;
    gap: 10px;
}

@media (min-width: 768px) {
    .nameLayout {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}

/*サブラベル*/
.inputSubLabel {
    display: block;
    margin-bottom: 5px;
    font-weight: bolder;
}

/*必須ラベル*/
.require {
    display: inline-block;
    margin-left: 10px;
    padding: 0 10px;
    background: red;
    color: white;
    font-weight: normal;
    font-size: 12px;
    vertical-align: middle;
}

/* 任意　*/
.any {
    display: inline-block;
    margin-left: 10px;
    padding: 0 10px;
    background: green;
    color: white;
    font-weight: normal;
    font-size: 12px;
    vertical-align: middle;
}

/*注意書き*/
.inputNote {
    margin-top: 10px;
    color: gray;
    font-size: 12px;
}

/* ---------------------------------------
    バリデーション
--------------------------------------- */
input span::after {
    display: inline-block;
    width: 8px;
    height: 8px;
}

/*----------------------------------------
	個人情報保護方針チェック
----------------------------------------*/
.privacyBox {
    margin: 25px 0;
    padding: 20px;
    border: 1px solid #ccc;
}

.privacyBox__check {
    margin-top: 20px;
    text-align: center;
}

@media (min-width: 768px) {
    .privacyBox {
        margin: 30px 0;
        padding: 40px;
        text-align: center;
    }

    .privacyBox__check {
        margin-top: 50px;
    }
}