#FacialPartsSelector {
    width: 100%;
    width: 500px;
    display: grid;
    gap: 0.5em;
}

/* 一括選択ボタン */
.PreSelectedButton_Box {
    display: grid;
    gap: 0.5em;
    grid-template-columns: repeat(3, minmax(50px, 1fr)) 70px;

    > div {
        display: grid;
    }

    .PreSelected_HiddenButton {
        display: none;
    }
    .PreSelectedButton {
        display: grid;
        justify-content: center;
        align-items: center;
        font-size: 1em;
        padding: 0.6em 0.6em;
        background-color: #007bff;
        color: white;
        cursor: pointer;
        border-radius: 5px;
        transition: background-color 0.3s;
    }
    .ClearButton {
        display: grid;
        justify-content: center;
        align-items: center;
        font-size: 1em;
        padding: 0.6em 0.6em;
        color: #333;
        cursor: pointer;
        border-radius: 5px;
        border: 1px solid #555;
    }
}

/* ホバー時のスタイル */
.PreSelectedButton:hover {
    background-color: #0056b3;
}

/* チェックされたラジオボタンに関連するラベルのスタイル */
.PreSelected_HiddenButton:checked + .PreSelectedButton {
    background-color: #0056b3;
}

.FacialPartsSelector .FaceBox {
    position: relative;
    width: 100%;
    aspect-ratio: 1/1;
}
.FacialPartsSelector .FaceBox .FaceImg {
    width: 100%;
    object-fit: contain;
    object-position: center;
}
.FacialPartsSelector .FaceBox .FaceGrid {
    position: absolute;
    inset: 0;
    
    display: grid;
    grid-template-columns: repeat(13, 1fr);
    grid-template-rows: repeat(13, 1fr);
}

.FaceGrid {
    .FacialParts {
        color: #33c;
        font-size: 1.3em;
        font-weight: 900;
        display: grid;
        position: relative;
    }
    .FacialParts_HiddenButton {
        display: none;
    }
    /* ボタンの表示 */
    .FacialParts_Button {
        width: 100%;
        height: 100%;
        display: grid;
        justify-content: center;
        align-items: center;
        z-index: 1;
    }
    .FacialParts_Button.FacialParts_RightFaceLine_Button {
        justify-content: left;
        padding-left: 20%;
        padding-top: 30%;
    }
    .FacialParts_Button.FacialParts_LeftFaceLine_Button {
        justify-content: right;
        padding-right: 20%;
        padding-top: 30%;
    }
    /* ボタンの背景色 */
    .FacialParts_Button::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 95%;
        height: 95%;
        border-radius: 50%;
        /* background-color: rgba(0, 0, 0, 0.03); */
        z-index: -1;
        transition: background-color 0.3s;
    }
    .FacialParts_Button.FacialParts_RightFaceLine_Button::before {
        width: 80%;
        transform: translate(-60%, -50%) rotate(-20deg);
    }
    .FacialParts_Button.FacialParts_LeftFaceLine_Button::before {
        width: 80%;
        transform: translate(-40%, -50%) rotate(20deg);
    }
    .FacialParts_HiddenButton:checked + .FacialParts_Button::before {
        background-color: rgba(255, 255, 0, 0.3);
    }
}

/* 顔の部位のグリッド配置 */
.FaceGrid {
    /* おでこ */
    .FacialParts_Forehead {
        grid-column: 6 / 9;
        grid-row:    4 / 7;
    }

    /* 鼻 */
    .FacialParts_Nose {
        grid-column: 7 / 8;
        grid-row:    7 / 11;
    }

    /* 口周り */
    .FacialParts_ChinArea {
        grid-column: 6 / 9;
        grid-row:    11 / 13;
    }

    /* 右目周り */
    .FacialParts_RightEyeArea {
        grid-column: 5 / 7;
        grid-row:    7 / 9;
    }

    /* 左目周り */
    .FacialParts_LeftEyeArea {
        grid-column: 8 / 10;
        grid-row:    7 / 9;
    }

    /* 右ほほ */
    .FacialParts_RightCheek {
        grid-column: 5 / 7;
        grid-row:    9 / 11;
    }

    /* 左ほほ */
    .FacialParts_LeftCheek {
        grid-column: 8 / 10;
        grid-row:    9 / 11;
    }

    /* 右こめかみ */
    .FacialParts_RightTemple {
        grid-column: 4 / 6;
        grid-row:    4 / 7;
    }

    /* 左こめかみ */
    .FacialParts_LeftTemple {
        grid-column: 9 / 11;
        grid-row:    4 / 7;
    }

    /* 右フェイスライン */
    .FacialParts_RightFaceLine {
        grid-column: 4 / 6;
        grid-row:    7 / 13;
    }

    /* 左フェイスライン */
    .FacialParts_LeftFaceLine {
        grid-column: 9 / 11;
        grid-row:    7 / 13;
    }
}