#support-price #fv div:has(> .section-title) { gap: var(--gap-2);}
#support-price section:not(#fv) { padding-top: 0;}
#support-price h3 {font-size: 1.875em;}
#support-price h3 + p { margin-top: var(--space-3);}

.release { margin-left: auto;}
.release .release-date { 
    border-bottom: var(--border-base);
    border-width: 2px;
}
.scroll-x { overflow-x: auto;}

/* ===== テーブルベース ===== */
table {
  width: 100%;
  border-collapse: collapse;
  font-family: "Google Sans Flex","Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Meiryo",system-ui,sans-serif;
  
  border-top: 3px solid var(--color-black);
  border-bottom: 3px solid var(--color-black);
}
thead th { 
    text-align: center; font-size: 1.125em;
  border-bottom: 3px solid var(--color-black);
}

th,
td {
  border: 1px solid var(--color-black);
  padding: 16px;
  text-align: right;
  vertical-align: middle;
}

thead th { font-weight: 500; }

tbody th {
  text-align: left;
  font-weight: 500;
  font-size: 1.125em;
}
tbody th span {
    font-size: 0.88em;
}

/* 見出しのセル */
/* tbody tr:first-child th { background-color: var(--bgc); }
tbody tr:last-child th { background-color: var(--bgc); } */

td {
  font-size: 1.75rem;
  font-weight: bold;
}

td span {
    font-weight: normal;
    font-size: 0.71em;
    margin-left: .3em;
}

table th:first-child,
table td:first-child { border-left: none; }

table th:last-child,
table td:last-child { border-right: none; }
table + p { letter-spacing: 0; }

.type-title { font-size: 1.25em; font-weight: 900; }
.type-notice { font-size: 0.9em; letter-spacing: 0; font-weight: normal;}
.ml-1 { margin-left: 1.2em;}
span.round-box { 
    border-width: 1.62px;
    padding-inline: .5em;
    --round-w: fit-content;
    --round-h: 1.2em;
    display: inline-flex;
    letter-spacing: 0;
}

.bg-regular { background-color: var(--color-pink); }
.bg-spot, .bg-green { background-color: var(--main-color); }
.bg-yellow {background-color: var(--color-yellow);}
.bg-extra { background-color: var(--color-yellow);}
.bg-table-gray { background-color: var(--table-gray); }
.bg-pink-light { background-color: var(--benefit-soft-pink);}
.bg-gray-light { background-color: var(--color-lightgray);}
.bg-green-light { background-color: var(--benefit-soft-green);}
.bg-yellow-light {background-color: var(--benefit-soft-yellow);}

.bg-pink { background-color: var(--color-pink); color: var(--color-black);}

.price-cta { margin-top: var(--space-5);}
.price-cta .button.button-simple {
    line-height: normal;
    --simple-w: 480px;
    --simple-h: 120px;
    gap: var(--gap-4);
}
.price-cta .button.button-simple span {display:flex;}
.price-cta .button.button-simple span:last-child {font-size: 24px;}

#entry-price .clear-tb { flex-direction: column-reverse;}


#price-extra table {margin-top: var(--space-4);}
#price-other table { margin-top: var(--space-5);}
#service-regular { padding-top: var(--pad-3);}
#service-regular table { margin-top: var(--space-5);}


#service-regular td, #service-discount td { 
    font-size: 1em;
    text-align: left;
    font-weight: normal;
}



#type { 
    background-color: var(--color-gray);
    padding-top: var(--pad-9) !important;
}
#type  div:has(> article) { margin-top: var(--space-8);}

#type article {
    background-color: var(--color-white);
    padding-block: var(--pad-7) var(--pad-3);
    padding-inline: var(--pad-2) var(--pad-2);

    max-width: 380px;
}
#type article h4 {
    --size: 126px;
    width: var(--size);
    height: var(--size);
    background-color: var(--color-black);
    color: var(--color-white);
    border-radius: var(--radius-inner);
    position: absolute;
    inset: 0;
    bottom: unset;
    top: calc(-1 * (var(--size) / 2));
    margin: auto;
}
#type article h4 .text-large { font-size: 20px; line-height: 1;}
#type article h4 .type-num { 
    font-size: 66px;
    font-family: "Outfit";
    font-weight: 500;
    line-height: 1;
}
#type article .big-title {
    font-size: 26px;
    border: none;
    --round-w: fit-content;
    --round-h: auto;
    padding-inline: 2rem;
    margin-inline: auto;
}
#type article .big-title + p { font-size: 22px; line-height: 2;}
#type article figure { 
    max-width: 320px;
    width: 100%;
    height: auto;
    aspect-ratio: 320 / 240;
    margin-inline: auto;
}
#type article .type-message {
    text-align: justify;
    line-height: 2;
}
#type article table caption {
    background-color: var(--color-black);
    color: var(--color-white);
    width: 100px;
    vertical-align: middle;
    padding-top: 5px;
}
#type article table td,
#type article table th {
    font-size: 1rem;
}
#type article table th { padding-inline: 5px; letter-spacing: 0; font-size: 0.85rem;}
#type article table td {
    text-align: left;
    font-weight: normal;
}
#type article table span.price {
    font-size: 22px;
    font-weight: bold;
}

#type th,
#type td { border-width: 1px;}
#type th { border-right: none;}
#type td {border-left: none;}


@media (max-width: 520px) {
    #support-price #fv .title-group { flex-direction: column; }
    #support-price #fv { padding-block: var(--pad-5);}

    th, td { padding: 10px;}
    table th span { display: block;}
    th { font-size: 1rem; min-width: 100px;}
    td { font-size: 1.4em;}
    td span { font-size: 14px; }
    .ml-1 { margin-left: 0;}
    
    .scroll-x table th, .scroll-x table td { min-width: 200px;}
    
    .button.button-simple { letter-spacing: 0; }
    .button.button-simple .icon {
        --icon-w: 49px;
        --icon-h: 51px; 
    }
    .button.button-simple .text-small { font-size: 12px;}

    #service-regular table tbody th { font-size: 1rem; }

    #type article { 
        margin-top: var(--pad-7);
    }
    #type article table th {font-size: 0.8em;}
}