/* 文字色 */
#main .has-black-color {
    color: var(--main-font-color);
}
#main .has-white-color {
    color: #fff;
}
#main .has-accent-color {
    color: var(--accent-color);
}
#main .has-accent-2-color {
    color: #53c4b7;
}
#main .has-accent-3-color {
    color: #a0ce62;
}
#main .has-accent-4-color {
    color: #008000;
}
#main .has-accent-5-color {
    color: #000080;
}
#main .has-accent-6-color {
    color: #993366;
}
#main .has-accent-7-color {
    color: #ff0000;
}
/* 背景色 */
#main .has-black-background-color {
    background-color: var(--main-font-color);
}
#main .has-white-background-color {
background-color: #fff;
}
#main .has-accent-background-color {
    background-color: var(--accent-color);
}
#main .has-accent-2-background-color {
    background-color: #53c4b7;
}
#main .has-accent-3-background-color {
    background-color: #a0ce62;
}
#main .has-accent-4-background-color {
    background-color: #008000;
}
#main .has-accent-5-background-color {
    background-color: #000080;
}
#main .has-accent-6-background-color {
    background-color: #993366;
}
#main .has-accent-7-background-color {
    background-color: #ff0000;
}
/* フォントサイズ */
#main .has-small-font-size {
    font-size: 0.9rem !important;
}
#main .has-medium-font-size {
    font-size: 1.2rem !important;
}
#main .has-large-font-size {
    font-size: 2.2rem !important;
}
#main .has-x-large-font-size {
    font-size: 2.8rem !important;
}
@media screen and (max-width: 780px) {
    #main .has-small-font-size {
        font-size: 0.75rem !important;
    }
    #main .has-medium-font-size {
        font-size: 1rem !important;
    }
    #main .has-large-font-size {
        font-size: 1.5rem !important;
    }
    #main .has-x-large-font-size {
        font-size: 1.9rem !important;
    }
}

strong {
    font-weight: 900;
}

/* カバーブロックを使ったMV（.mvは .alignfull追加済みのため、使用していない） */
.mv,
.alignfull {
    position: relative;
    width: 100vw;
    margin: 0 calc(50% - 50vw) 2rem !important;
    padding: 0 !important;
    min-height: unset !important;
}
.mv img,
.alignfull img {
    position: static !important;
    width: 100% !important;
}
.mv .wp-block-cover__inner-container,
.alignfull .wp-block-cover__inner-container {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-weight: 600;
}
.mv .wp-block-cover__inner-container p,
.alignfull .wp-block-cover__inner-container p {
    text-shadow: 2px 2px 2px rgb(0 0 0 / 0.3);
}
.alignfull .wp-block-cover-is-layout-constrained {
    width: 100%;
}
/* カラムブロックを使ったフォームステップ表示 */
.form-step {
    gap: 0;
}
.form-step .wp-block-column {
    position: relative;
}
.form-step > .wp-block-column::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    aspect-ratio: 1/1;
    height: 100%;
    border-radius: 50%;
    background-color: #f2eccf;
}
.form-step .wp-block-column:first-child {
    flex-grow: unset !important;
    flex-basis: unset !important;
    width: 46%;
    z-index: 1;
}
.form-step > .wp-block-column:first-child::after {
    left: 100%;
    transform: translateX(-50%);
    background-color: #f2eccf;
}
.form-step > .wp-block-column.current:first-child::after {
    background-color: #b81727;
}
.form-step > .wp-block-column:not(:first-child)::after {
    right: 99%;
    transform: translateX(50%);
    background-color: #fff;
}
.form-step > .wp-block-column p {
    padding: 1rem;
}
@media screen and (max-width: 780px) {
    .form-step > .wp-block-column:not(:first-child)::after {
        right: 98%;
    }
}
/* カラムブロックを使ったページタブ表示 */
.page-tabs {
    display: flex;
    gap: 0.6rem;
}
.page-tabs p {
    padding: 0;
    margin: 0;
    height: 100%;
}
.page-tabs a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    text-align: center;
    height: 100%;
    padding: 1.2rem 0.4rem;
    font-size: 1.5rem;
}
@media screen and (max-width: 780px) {
    .page-tabs {
        gap: 0;
    }
    .page-tabs a {
        padding: 0.9rem 0.3rem;
        font-size: 0.85rem;
    }
}

/* 各種ブロックに適用 */
.main-contents iframe[src*="youtube.com"] {
  aspect-ratio: 16 / 9;
  width: 100%;
  height: 100%;
}
[class^="wp-block"]:not(.wp-block-spacer) {
    margin: 1rem 0;
}
.main-contents a {
    text-decoration: underline;
    text-decoration-color: currentColor;
}
.post-main .contents .main-contents .post-title {
    margin-bottom: 2rem;
}
.post-main .contents .main-contents > p {
    margin: 1.2rem 0 0;
}
.main-contents h2.wp-block-heading {
    font-size: 1.5rem;
    margin-top: 3rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid currentColor;
}
.main-contents h3.wp-block-heading {
    font-size: 1.3rem;
    margin-top: 3rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid currentColor;
}
@media screen and (max-width: 780px) {
    .post-main .contents .main-contents > p {
        font-size: 0.85rem;
    }
    .main-contents h2.wp-block-heading {
        font-size: 1.2rem;
        margin-top: 2rem;
    }
    .main-contents h3.wp-block-heading {
        font-size: 1.1rem;
        margin-top: 2rem;
    }
}

.wp-block-list {
    padding-left: 1.8rem;
}
.wp-block-list li {
    margin: 0.4rem 0;
}
.wp-block-separator {
    margin: 3rem 0 !important;
}
@media screen and (max-width: 780px) {
    .wp-block-columns.is-style-col-reverse-on-mobile {
        flex-direction: column-reverse;
    }
}
.wp-block-cb-carousel-v2 {
    max-width: 100vw !important;
}
.wp-block-cb-carousel-v2 .swiper {
    margin-bottom: 0 !important;
}
.wp-block-columns .wp-block-cb-carousel-v2 .swiper {
    padding-bottom: 0 !important;
}
.wp-block-cb-carousel-v2 .cb-pagination.swiper-pagination-horizontal {
    top: auto;
    bottom: 0.6rem;
}
.wp-block-cb-carousel-v2 .cb-pagination .cb-pagination-bullet.swiper-pagination-bullet-active {
    background-color: var(--accent-color) !important;
}
.wp-block-cb-carousel-v2 .cb-button-prev, .wp-block-cb-carousel-v2.cb-rtl .cb-button-next {
    left: 0.8rem !important;
}
.wp-block-cb-carousel-v2 .cb-button-next, .wp-block-cb-carousel-v2.cb-rtl .cb-button-prev {
    right: 0.8rem !important;
}