﻿/* キャンペーン一覧 */
body {
    background-color: #F2FAF9;
}

@media (min-width: 760px) {
    .pt_list_body {
        min-height: calc(100vh - 176px);
    }
}

.pt_list_cardListArea {
    padding: 40px 20px;
}

@media (min-width: 760px) {
    .pt_list_cardListArea {
        padding: 64px 24px;
    }
}

.pt_list_ttl {
    width: 220px;
    margin: 0 auto;
}

@media (min-width: 760px) {
    .pt_list_ttl {
        width: 370px;
    }
}

.pt_list_line {
    display: block;
    background-color: #FABF00;
    border-radius: 4px;
    height: 8px;
}

.pt_list_cardList {
    padding-top: 24px;
}

@media (min-width: 760px) {
    .pt_list_cardList {
        max-width: 1872px;
        padding-top: 24px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(426px, 1fr));
    }
}

.pt_list_card {
    display: block;
    padding: 32px 24px 24px;
    border-radius: 16px;
    background-color: #FFFFFF;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.pt_list_card+.pt_list_card {
    margin-top: 32px;
}

@media (min-width: 760px) {
    .pt_list_card {
        padding: 40px 32px 32px;
        margin: 16px;
    }

    .pt_list_card+.pt_list_card {
        margin-top: 16px;
    }

    .pt_list_card:hover {
        border: 6px solid #008673;
        padding: 34px 26px 26px;
    }
}

.pt_list_card_imgArea {
    display: flex;
    justify-content: center;
}

.pt_list_card_imgArea>img {
    width: 165px;
    height: 233px;
}

@media (min-width: 760px) {
    .pt_list_card_imgArea>img {
        width: 200px;
        height: 283px;
    }
}

.pt_list_card_ttlArea {
    padding-top: 16px;
}

@media (min-width: 760px) {
    .pt_list_card_ttlArea {
        padding-top: 24px;
    }
}

.pt_list_card_periodArea {
    padding-top: 4px;
}

.pt_list_card_txtArea {
    max-height: 44px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.pt_list_card_txtArea:has(p) {
    padding-top: 4px;
}

@media (min-width: 760px) {
    .pt_list_card_txtArea {
        height: 52px;
        max-height: none;
        padding-top: 4px;
    }
}

.pt_list_card_btnArea {
    display: flex;
    justify-content: center;
    padding-top: 16px;
}

@media (min-width: 760px) {
    .pt_list_card_btnArea {
        padding-top: 24px;
    }
}
/* --- ボタンを強制的に縦並びにする設定 --- */

/* 親カードをaからdivに変えたことによる装飾リセット */
.pt_list_card {
    text-decoration: none !important;
    color: inherit !important;
}

/* .pt_list_card_btnArea への既存設定を !important で上書きし、
   multiple_btns クラスがある時だけ縦並びを強制します。
*/
.pt_list_card_btnArea.multiple_btns {
    display: flex !important;
    flex-direction: column !important; /* 縦並びを強制 */
    align-items: center !important;    /* 中央寄せを強制 */
    justify-content: flex-start !important;
    padding-top: 16px !important;
}

/* 各ボタンの余白を調整 */
.pt_list_card_btnArea.multiple_btns .pt_com_button {
    margin: 6px 0 !important; /* 上下に隙間を作り、左右の余白をリセット */
    text-decoration: none !important;
    display: block !important;
}

/* PC向けの調整 */
@media (min-width: 760px) {
    .pt_list_card_btnArea.multiple_btns {
        padding-top: 24px !important;
    }
    
    .pt_list_card_btnArea.multiple_btns .pt_com_button {
        margin: 8px 0 !important;
        width: 280px !important; /* ボタンの横幅を固定 */
    }

    /* カード全体のホバー枠線は維持 */
    .pt_list_card:hover {
        cursor: default;
    }
}