/* 料金セクション */
.pricing-section {
    padding: 0;
}

.pricing-section-boxed {
    background-color: transparent;
}

/* widget間のmargin */
.pricing-element.pricing-widget:not(:last-child) {
    margin-block-end: 20px;
}

.pricing-content-bg {
    background-color: #FFFF00;
}

.pricing-container {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0;
}

/* PC/タブレット版のみ - 子要素にpadding適用 */
.pricing-column-gap-default > .pricing-column > .pricing-element-populated {
    padding: 0 10px;
}

.pricing-column-gap-default {
    gap: 20px;
}

/* テーブル背景 */
.pricing-table-bg {
    background-color: #FFFFFF;
    border: 25px solid #33A04B;
    padding: 0 3%;
}

/* 見出しセクション */
.pricing-inner-section {
    width: 100%;
}

/* 見出しセクション（タイトル画像部分）のpadding */
.pricing-section[data-id="6d3db9f6"] {
    padding: 10.2031px 0 40.8594px;
}

/* 料金表セクションのpadding */
.pricing-section[data-id="230f03d1"] {
    padding: 0% 0% 5% 0%;
    margin: 0;
}

.pricing-inner-section .pricing-container {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    padding: 0;
}

/* カラム */
.pricing-col-33 {
    display: flex;
    align-items: center;
}

.pricing-col-50 {
    flex: 0 0 calc(50% - 10px);
    max-width: calc(50% - 10px);
}

/* カラム内のpadding */
.pricing-column-gap-default > .pricing-column > .pricing-widget-wrap {
    padding: 10px;
}

.pricing-widget-wrap.pricing-element-populated {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
}

/* 見出し行の幅設定（dividerがあるため別設定） */
@media (min-width: 768px) {
    /* コンテンツセクションのpadding */
    .pricing-section[data-id="2f0b2c5a"] {
        padding: 47.125px 0 !important;
        margin-bottom: 62.8281px;
    }
    
    .pricing-section[data-id="6d3db9f6"] .pricing-col-33:nth-child(1) {
        width: 17.411%;
    }
    
    .pricing-section[data-id="6d3db9f6"] .pricing-col-33:nth-child(2) {
        width: 63.928%;
    }
    
    .pricing-section[data-id="6d3db9f6"] .pricing-col-33:nth-child(3) {
        width: 17.994%;
    }
}

/* タイトル画像 */
.pricing-widget-container {
    text-align: center;
    width: 100%;
}

.pricing-widget-image {
    text-align: center;
}

.pricing-widget-image .pricing-widget-container {
    text-align: center;
    display: block;
    width: 100%;
}

.pricing-widget-image img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* 料金表セクション（削除 - 上で定義済み） */

.pricing-section[data-id="230f03d1"] .pricing-container {
    position: relative;
}

.pricing-col-50:first-child {
    flex: 0 0 48.728%;
    max-width: 48.728%;
    position: relative;
}

.pricing-col-50:first-child::after {
    content: '';
    position: absolute;
    right: -10px;
    top: 0;
    bottom: 0;
    width: 2px;
    background-color: #33A04B;
}

.pricing-col-50:last-child {
    flex: 0 0 51.254%;
    max-width: 51.254%;
    padding-left: 30px;
}

.pricing-fee-bg {
    background-color: transparent;
}

/* 見出し */
.pricing-heading-title {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 20px;
    font-weight: 600;
    text-align: center;
    color: #333;
    margin-bottom: 0;
}

/* 入会費・年会費の見出し */
.pricing-widget-heading[data-id="5d663b55"] .pricing-heading-title {
    font-size: 40px;
    font-weight: 900;
    line-height: 40px;
    color: #000000;
    margin-bottom: 0;
    margin-top: 0;
}

/* 0円画像 */
.pricing-widget-image[data-id="398a59f6"] .pricing-widget-container {
    border-radius: 0;
}

/* 月会費の見出し */
.pricing-widget-heading[data-id="250ebe0c"] .pricing-heading-title {
    font-size: 24px;
    font-weight: 400;
    line-height: 2.5em;
    color: #231815;
    padding: 0;
}

/* 注意書き */
.pricing-widget-heading[data-id="250ebe0c-notes"] .pricing-heading-title {
    font-size: 24px;
    font-weight: 400;
    line-height: 2.5em;
    color: #231815;
    padding: 0;
    text-align: left;
}

/* ディバイダー */
.pricing-widget-divider {
    --divider-border-style: none;
    --divider-border-width: 1px;
    --divider-color: #000000;
    --divider-icon-size: 20px;
    --divider-element-spacing: 10px;
    --divider-pattern-height: 24px;
    --divider-pattern-size: 20px;
    --divider-pattern-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='xMidYMid meet' overflow='visible' height='100%' viewBox='0 0 126 26' fill='black' stroke='none'%3E%3Cpath d='M3,10.2c2.6,0,2.6,2,2.6,3.2S4.4,16.5,3,16.5s-3-1.4-3-3.2S0.4,10.2,3,10.2z M18.8,10.2c1.7,0,3.2,1.4,3.2,3.2s-1.4,3.2-3.2,3.2c-1.7,0-3.2-1.4-3.2-3.2S17,10.2,18.8,10.2z M34.6,10.2c1.5,0,2.6,1.4,2.6,3.2s-0.5,3.2-1.9,3.2c-1.5,0-3.4-1.4-3.4-3.2S33.1,10.2,34.6,10.2z M50.5,10.2c1.7,0,3.2,1.4,3.2,3.2s-1.4,3.2-3.2,3.2c-1.7,0-3.3-0.9-3.3-2.6S48.7,10.2,50.5,10.2z M66.2,10.2c1.5,0,3.4,1.4,3.4,3.2s-1.9,3.2-3.4,3.2c-1.5,0-2.6-0.4-2.6-2.1S64.8,10.2,66.2,10.2z M82.2,10.2c1.7,0.8,2.6,1.4,2.6,3.2s-0.1,3.2-1.6,3.2c-1.5,0-3.7-1.4-3.7-3.2S80.5,9.4,82.2,10.2zM98.6,10.2c1.5,0,2.6,0.4,2.6,2.1s-1.2,4.2-2.6,4.2c-1.5,0-3.7-0.4-3.7-2.1S97.1,10.2,98.6,10.2z M113.4,10.2c1.2,0,2.2,0.9,2.2,3.2s-0.1,3.2-1.3,3.2s-3.1-1.4-3.1-3.2S112.2,10.2,113.4,10.2z'/%3E%3C/svg%3E");
    --divider-pattern-repeat: repeat-x;
}

.pricing-widget-divider .pricing-divider {
    text-align: center;
    line-height: 1;
}

.pricing-widget-divider .pricing-divider-separator {
    display: inline-block;
    width: 100%;
    position: relative;
    vertical-align: middle;
}

.pricing-widget-divider--view-line .pricing-divider-separator {
    border-block-start: 0;
}

.pricing-widget-divider--view-line .pricing-divider-separator:after,
.pricing-widget-divider--view-line .pricing-divider-separator:before {
    display: block;
    border-block-start: var(--divider-border-width) var(--divider-border-style) var(--divider-color);
    border-block-end: 0;
    content: '';
}

.pricing-widget-divider:not(.pricing-widget-divider--view-line) .pricing-divider-separator {
    border-block-start: var(--divider-border-width) var(--divider-border-style) var(--divider-color);
}

.pricing-widget-divider--separator-type-pattern {
    --divider-border-style: none;
}

.pricing-widget-divider--separator-type-pattern.pricing-widget-divider--view-line .pricing-divider-separator,
.pricing-widget-divider--separator-type-pattern:not(.pricing-widget-divider--view-line) .pricing-divider-separator:after,
.pricing-widget-divider--separator-type-pattern:not(.pricing-widget-divider--view-line) .pricing-divider-separator:before {
    background-color: var(--divider-color);
    -webkit-mask-image: var(--divider-pattern-url);
    mask-image: var(--divider-pattern-url);
    -webkit-mask-repeat: var(--divider-pattern-repeat);
    mask-repeat: var(--divider-pattern-repeat);
    -webkit-mask-size: var(--divider-pattern-size) 100%;
    mask-size: var(--divider-pattern-size) 100%;
    min-height: var(--divider-pattern-height);
    border: none;
}

.pricing-widget-divider--no-spacing {
    --divider-pattern-size: auto;
}

.pricing-hidden-tablet,
.pricing-hidden-phone {
    display: block;
}

@media (max-width: 1024px) {
    .pricing-hidden-tablet {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .pricing-hidden-phone {
        display: none !important;
    }
}

/* レスポンシブ - タブレット */
@media (max-width: 1024px) {
    .pricing-table-bg {
        border-width: 15px;
        padding: 0 1%;
    }
    
    /* 注意書き - タブレット */
    .pricing-widget-heading[data-id="250ebe0c-notes"] .pricing-heading-title {
        line-height: 1.3em;
    }
}

/* レスポンシブ - モバイル */
@media (max-width: 767px) {
    /* モバイルでは子要素のpaddingを削除 */
    .pricing-column-gap-default > .pricing-column > .pricing-element-populated {
        padding: 0;
    }
    
    .pricing-section {
        padding: 25px 0;
    }
    
    .pricing-table-bg {
        border-width: 25px;
        padding: 0 2%;
    }
    
    .pricing-col-33 {
        flex: 0 0 100%;
        max-width: 100%;
        width: 100% !important;
    }
    
    .pricing-col-50 {
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    .pricing-col-50:first-child,
    .pricing-col-50:last-child {
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    .pricing-col-50:first-child::after {
        display: none;
    }
    
    .pricing-col-50:last-child {
        padding-left: 0 !important;
    }
    
    /* 0円画像 - スマホ */
    .pricing-widget-image[data-id="398a59f6"] img {
        width: 80%;
    }
    
    /* 入会費・年会費の見出し - スマホ */
    .pricing-widget-heading[data-id="5d663b55"] .pricing-heading-title {
        font-size: 30px;
    }
    
    /* 注意書き - スマホ */
    .pricing-widget-heading[data-id="250ebe0c-notes"] .pricing-heading-title {
        font-size: 13px;
    }
    
    /* 料金表画像のpadding - スマホ */
    .pricing-element[data-id="57a6b656"] .pricing-widget-container {
        padding: 11% 0% 6% 0%;
    }
    
    /* 料金表セクションのmargin - スマホ */
    .pricing-section[data-id="230f03d1"] {
        margin-top: 2%;
        margin-bottom: 5%;
    }
}

