@charset "UTF-8";

/* ==============================
    パスワード
============================== */
.member-lock {
    margin-top: 120px;

    h1,
    p,
    #member-login-form {
        text-align: center;
    }

    #member-instructions>p {
        margin-top: 48px;
        margin-bottom: 16px;
    }

    #member-login-form {
        line-height: 3;
        margin-bottom: 60px;
        font-size: 14px;

        input {
            padding-left: 16px;
        }

        button {
            padding-right: 24px;
            padding-left: 24px;
        }
    }
}



/* ==============================
   各種リンク
============================== */
.links {
    margin-top: 60px;
}

.section-title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-size: 2.4rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    margin-bottom: 32px;

    .note-icon {
        transform: rotate(15deg);
    }
}

.section-title .line {
    width: 200px;
    height: 1px;
    background: #ccc;
}

.section-title .note-icon {
    display: inline-block;
}

/* グリッド共通設定 */
.member-links-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 40px;
    padding: 40px 10%;
    margin-bottom: 80px;
}

/* カード共通 */
.card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    background: linear-gradient(180deg,
            #B7925D 0%,
            #A98551 100%);
    box-shadow: 0 10px 25px var(--lightbrown);
    border-radius: 16px;
    padding: 12px 24px 32px;
    text-decoration: none;
    color: #F3F3F3;
    font-weight: 500;
    font-size: 2.0rem;
    position: relative;
    transition: all 0.3s ease;

}

.card-arrow {
    position: absolute;
    right: 24px;
    bottom: 32px;
    width: 14px;
    height: 14px;
    border-right: 2px solid #F3F3F3;
    border-bottom: 2px solid #F3F3F3;
    transform: rotate(-45deg);
}

.card:hover {
    border-color: var(--brown);
    opacity: 0.8;
}

.card:hover .card-arrow {
    transform: rotate(-45deg) translateX(8px);
}

/* ==============================
   出欠表
============================== */
.attendance {
    margin-bottom: 80px;
}


.parts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 40px;
    padding: 40px 10%;
}

.part {
    display: flex;
    align-items: center;
    padding: 12px 16px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
    cursor: pointer;
    transition: transform 0.1s ease;
}

.part:hover {
    transform: translateY(-2px);
}

.part:hover .arrow {
    transform: translateX(10px);
}

/* アイコン（PNGをマスクとして使用） */
.icon {
    width: 70px;
    height: 70px;
    margin-right: 16px;
    background: currentColor;
    mask: url('/wp-content/themes/KMBC/img/chor.png') no-repeat center / contain;
    -webkit-mask: url('/wp-content/themes/KMBC/img/chor.png') no-repeat center / contain;
}

/* ラベル */
.label {
    flex: 1;
    font-size: 1.8rem;
    font-weight: 600;
}

/* 矢印 */
.arrow {
    font-size: 1.2rem;
    opacity: 0.6;
    padding-right: 16px;
}

/* 各パートの色 */
.soprano {
    color: #e84c4c;
    /* 赤 */
}

.alto {
    color: #f28c32;
    /* オレンジ */
}

.tenor {
    color: #4caf50;
    /* 緑 */
}

.bass {
    color: #3f7bd9;
    /* 青 */
}

/* ==============================
   口座情報
============================== */
.member-bank-info {
    margin-bottom: 120px;
    padding-left: 24px;
    padding-right: 24px;
}

table.account-table {
    margin-inline: auto;
    max-width: 600px;
    border-collapse: collapse;
}

table.account-table tr+tr {
    border-top: 1px solid #e8e8e8;
}

table.account-table th,
table.account-table td {
    padding: 12px 24px;
    vertical-align: top;
}

table.account-table th {
    width: 32%;
    font-weight: 600;
    color: #555;
    text-align: left;
    white-space: nowrap;
}

table.account-table td {
    color: #222;
}


/* レスポンシブ調整 */
@media (max-width: 768px) {
    h1 {
        font-size: 2.4rem;
    }

    .section-title {
        font-size: 1.8rem;
        gap: 6px;
    }

    h2 .note-icon {
        width: 24px;
    }

    .section-title .line {
        width: 50px;
    }

    .card {
        font-size: 1.6rem;
        padding: 6px 24px 24px;
    }

    .member-links-grid {
        img {
            width: 100px;
            height: auto;
        }

        font-size: 1.6rem;
    }

    .label {
        font-size: 1.6rem;
    }

    table.account-table {
        font-size: 1.4rem;
    }
}