/* Price-section styles */
.price-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    /* paddingをclamp関数で調整 */
    padding: clamp(80px, 8vw + 50px, 153px) clamp(20px, 7vw + 40px, 135px);
    gap: clamp(40px, 2vw + 30px, 70px);
    position: relative;
    background-color: #EDF2FD;
    overflow: hidden;
    width: 100%;
    box-sizing: border-box;
}

.price-section__background {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 0;
}

.price-circle-first {
    position: absolute;
    width: clamp(250px, 30vw + 100px, 500px);
    height: clamp(250px, 30vw + 100px, 500px);
    top: 0;
    left: -10%;
    background-image: url(../images/price/ellipse.png);
    background-size: cover;
    opacity: 0.5;
    z-index: 1;
}

.price-circle-second {
    position: absolute;
    width: clamp(250px, 30vw + 100px, 500px);
    height: clamp(250px, 30vw + 100px, 500px);
    bottom: 5%;
    right: -10%;
    background-image: url(../images/price/ellipse.png);
    background-size: cover;
    opacity: 0.5;
    z-index: 1;
}

.price-section-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(20px, 1.5vw + 10px, 30px);
    width: 100%;
}

.price-cards-container {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: clamp(10px, 1vw + 5px, 15px);
    max-width: 1170px;
    width: 100%;
    position: relative;
    z-index: 1;
    margin: 0 auto;
    flex-wrap: nowrap;
    box-sizing: border-box;
}

.price-card {
    height: auto;
    padding: clamp(25px, 2vw + 15px, 40px) clamp(15px, 1.5vw + 10px, 30px);
    background-color: #fff;
    border-radius: 10px;
    box-shadow: 0px 10px 20px 0px rgba(28, 65, 128, 0.25);
    overflow: hidden;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: clamp(15px, 1vw + 10px, 20px);
    /* コンテンツの量に関わらず、すべてのカードを同じ幅に */
    flex: 1;
    flex-basis: 0;
    box-sizing: border-box;
}

.price-card.border-red {
    border: 2px solid #ED5D47;
    overflow: visible;
    /* おすすめバッジが表示されるように */
    position: relative;
    /* おすすめバッジの基準位置として */
}

/* おすすめバッジのスタイル */
.recommend-badge {
    position: absolute;
    top: -15px;
    left: -15px;
    /* width: 80px;
    height: 80px; */
    width: clamp(60px, 15vw, 80px);
    height: clamp(60px, 15vw, 80px);
    background-image: url(../images/price/recommend.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 10;
}

.recommend-badge::before {
    content: none;
    /* テキストを非表示にする */
}

.price-card-header {
    padding: clamp(10px, 1vw + 5px, 20px);
    text-align: center;
    width: 100%;
    /* カードタイトルの高さを固定 */
    height: clamp(70px, 4vw + 50px, 90px);
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

/* スタンダードプランとプレミアムプランのみタイトルと説明文と縦並びに */
.price-card-header.explanation {
    flex-direction: column;
    font-size: clamp(14px, 0.5vw + 13px, 16px);
}

.text-red {
    color: #ED5D47;
    font-size: 14px;
}

.text-blue {
    color: #4884ed;
    font-size: 14px;
}

.price-card-title {
    color: #4884ed;
    font-family: 'Noto Sans JP', sans-serif;
    /* font-size: clamp(18px, 1vw + 14px, 26px); */
    font-size: clamp(20px, 1vw + 16px, 30px);
    font-style: normal;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.572px;
}

.price-card-title.red {
    color: #ED5D47;
}

.price-card-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(25px, 1.5vw + 15px, 40px);
    height: 100%;
    width: 100%;
    box-sizing: border-box;
}

.price-amount {
    text-align: center;
    /* 料金表示部分の高さを固定 */
    height: clamp(90px, 5vw + 70px, 110px);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    white-space: nowrap;
    /*テキストが折り返されなくなる*/
}

.price-amount-row {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    justify-content: center;
}

/* 英数字用の共通スタイル */
.text-en {
    font-family: 'Montserrat', sans-serif;
    font-style: normal;
    letter-spacing: 0.352px;
    color: #142238;
}

/* .price-currency {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(30px, 1vw + 25px, 40px);
    font-weight: 700;
    font-style: normal;
    line-height: 1.2;
    letter-spacing: 0.88px;
    color: #142238;
} */

.price-number {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(30px, 1vw + 25px, 40px);
    font-weight: 700;
    font-style: normal;
    line-height: 1.2;
    letter-spacing: 0.88px;
    color: #142238;
}

/* 価格表示のための英数字スタイル（小さいサイズ） */
.price-text-small {
    font-size: clamp(14px, 0.5vw + 12px, 16px);
    font-weight: 400;
    line-height: 1.5;
}

.price-period {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(14px, 0.5vw + 12px, 16px);
    font-style: normal;
    line-height: 1.5;
    letter-spacing: 0.352px;
    color: #142238;
}

.price-tax-inclusive-price {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(14px, 0.5vw + 12px, 16px);
    font-style: normal;
    line-height: 1.5;
    letter-spacing: 0.352px;
    color: #142238;
    /* margin-top: clamp(5px, 0.5vw + 3px, 10px); */
}

.price-hours {
    font-family: 'Noto Sans JP', sans-serif;
    /* font-size: clamp(14px, 0.5vw + 12px, 16px); */
    font-size: 14px;
    font-style: normal;
    line-height: 1.5;
    letter-spacing: 0.352px;
    color: #142238;
    /* margin-top: clamp(5px, 0.5vw + 3px, 10px); */
}

.price-features {
    display: flex;
    width: 100%;
    max-width: 250px;
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(5px, 0.5vw + 3px, 7px);
    min-height: clamp(250px, 10vw + 200px, 300px);
    box-sizing: border-box;
}

.price-feature {
    display: flex;
    align-items: flex-start;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(14px, 0.5vw + 12px, 16px);
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.352px;
    color: #142238;
    padding: 5px 0;
    width: 100%;
    box-sizing: border-box;
}

.price-feature:last-child {
    border-bottom: none;
}

.price-feature-icon {
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    font-size: clamp(14px, 0.5vw + 12px, 16px);
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    flex-shrink: 0;
    margin-top: 3px;
}

.price-feature-included .price-feature-icon {
    color: #4285F4;
}

.price-feature-included .price-feature-icon.red {
    color: #ED5D47;
}

.price-feature-included .price-feature-icon::before {
    content: "\f058";
    /* Font Awesome check-circle (f058) */
}

.price-feature-excluded .price-feature-icon {
    color: #D9D9D9;
}

.price-feature-excluded .price-feature-icon::before {
    content: "\f057";
    /* Font Awesome times-circle (f057) */
}

.price-description {
    background-color: #f5f7ff;
    border-radius: 10px;
    padding: clamp(15px, 1vw + 10px, 20px);
    text-align: left;
    display: flex;
    width: 100%;
    max-width: 290px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    /* 説明文の高さを統一 */
    min-height: clamp(80px, 3vw + 65px, 100px);
    box-sizing: border-box;
}

.price-description.red {
    background-color: #fff5f5;
}

.price-description p {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(14px, 0.5vw + 12px, 16px);
    line-height: 1.75;
    font-style: normal;
    font-weight: 400;
    letter-spacing: 0.352px;
    color: #4884ED;
    margin: 0;
}

.price-description.red p {
    color: #ED5D47;
}

.price-description .text-blue {
    color: #4884ED;
}

.price-description .text-red {
    color: #ED5D47;
}

/* @media (max-width: 1200px) { */
@media (max-width: 1400px) {
    .price-cards-container {
        flex-direction: column;
        align-items: center;
        gap: 30px;
        padding: 0 20px;
        flex-wrap: wrap;
        /* nowrapを上書き */
    }

    .price-card {
        max-width: 450px;
        width: 100%;
        height: auto;
        flex: none;
        /* flex: 1を上書き */
        flex-basis: auto;
        /* flex-basis: 0を上書き */
    }

    /* 以下は既存のコード */
    .price-card-header,
    .price-amount,
    .price-features,
    .price-description {
        /* 縦並びの場合は高さ固定を解除 */
        height: auto;
        min-height: auto;
    }
}

@media (max-width: 900px) {
    .price-section {
        padding: clamp(60px, 5vw + 40px, 100px) clamp(15px, 5vw + 10px, 50px);
    }
}

@media (max-width: 768px) {

    .price-section {
        padding: 60px 20px;
    }
}

@media (max-width: 576px) {

    .price-circle-first,
    .price-circle-second {
        display: none;
        /* スマホ版ではあしらいを非表示 */
    }

    .price-card {
        padding: 20px 28px;
    }
}