@charset "utf-8";

/* =========================================================================================
見出し
=========================================================================================*/
* + .wp-block-heading {
    margin-top: 1.5em;
}
.wp-block-heading {
    font-weight: var(--weight-bold);
    line-height: 1.5;
    margin-bottom: 0.75em;
}
h1.wp-block-heading {
    font-size:2em;/*  32px*/
    font-weight: var(--weight-bold);
    line-height: 1.5;
    color:#fff;
    background-color:var(--color-main);
    margin-bottom: 1em;
    padding:0.25em 0.625em;
}
h2.wp-block-heading {
    font-size:1.75em;/* 28px */
    font-weight: var(--weight-bold);
    line-height: 1.4;
    padding: 0.25em 0.5em;
    border-bottom: 3px double var(--color-main);
    margin-bottom: 1em;
}
h3.wp-block-heading {
    font-size:1.5em;/*  24px*/
    font-weight: var(--weight-black);
    line-height: 1.2;
    display:flex;
    align-items:center;
    gap: 0.5em;
    margin-bottom:1em;
    padding:0.625em;
    background-color:color-mix(in sRGB, var(--color-gray) 25%, #fff 75%);
    border:solid 1px color-mix(in sRGB, var(--color-gray), #fff);

    &::before {
        content:"";
        width:5px;
        height:1lh;
        background-color:var(--color-main);
    }
}
h4.wp-block-heading {
    color: var(--color-base-font);
    font-size:1.375em;/* 22px */
    line-height: 1.4;
    padding-bottom:0.5em;
    position: relative;

    &::after {
        content:"";
        display:block;
        position:absolute;
        inset:100% auto auto 0;
        width:100%;
        height:3px;
        background:linear-gradient(to right, var(--color-main) 2.5em, var(--color-gray) 2.5em, var(--color-gray) 100%);
    }
}
h5.wp-block-heading {
    font-size:1.25em;/* 20px */
    padding:0.25em 0.75em;
    position: relative;

    &::before {
        content:"";
        position:absolute;
        inset:0 auto auto 0;
        display:block;
        width:5px;
        height:100%;
        background:linear-gradient(to bottom, var(--color-main) 0%, var(--color-main) 50%, var(--color-main-light) 50%, var(--color-main-light) 100%);
    }
}

h6.wp-block-heading {
    color: var(--color-main);
    font-size:1.125em;/* 18px */
}

/* =========================================================================================
ボタン
=========================================================================================*/
.wp-block-buttons {
    display: flex;
    align-items: stretch;

    & a {
        color: #fff;
        font-size: 1rem;
        text-align: center;
        background: var(--color-main);
        border: 1px solid var(--color-main);
        border-radius: 0;
        height: 100%;
        min-width: auto;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0.5em 2.5em 0.5em 1.25em;
        position: relative;
        transition:var(--trans);
        text-decoration:none;

        &::after {
            content: "";
            background:currentColor;
            width: 1em;
            aspect-ratio: 1 / 1;
            position: absolute;
            right: 0.75em;
            top: 50%;
            translate: 0 -50%;
            z-index: 1;
            mask: url(assets/images/common/arrow.svg) no-repeat center / contain;
            transition:var(--trans);
        }
        &:is(:focus-visible, :active){
            color: var(--color-main);
            background-color: #fff;
            text-decoration: none;
            opacity: 1;
        }
        @media (hover:hover){
            &:hover {
                color: var(--color-main);
                background-color: #fff;
                text-decoration: none;
                opacity: 1;
            }
        }
    }
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 468px) {
}

/* =========================================================================================
段落
=========================================================================================*/
/*本文（特大）*/
.has-x-large-font-size {
    font-size:1.75em!important;/* 28px */
    font-weight: var(--weight-bold);
}
/*本文（大）*/
.has-large-font-size {
    font-size:1.5em!important;/* 15px */
    font-weight: var(--weight-medium);
}
/*本文（中）*/
.has-medium-font-size {
    font-size:1.25em!important;/* 20px */
    font-weight: var(--weight-regular);
}
/*本文（小）*/
.has-small-font-size {
    /*font-size:1em!important;/* 16px */
    font-weight: var(--weight-regular);
}

/* =========================================================================================
区切り
=========================================================================================*/
.wp-block-separator {
    width: 100%;
    max-width: 500px;
    min-height: 1px;
    border: none;
    background-color: var(--color-base-font);
    margin: 10vh auto;
}
.wp-block-separator.is-style-wide {
    max-width: none;
}
.wp-block-separator.is-style-dots::before {
    font-size: 3em;
    letter-spacing: 1em;
    padding-left: 1em;
}
@media only screen and (max-width: 820px) {
    hr,
    .wp-block-separator {
        width: 50%;
    }
}

/* =========================================================================================
テーブル
=========================================================================================*/
.wp-block-table table {
    border-top: 2px solid #98a6b5;
}
.wp-element-caption,
.wp-block-flexible-table-block-table figcaption {
    color: var(--color-base-font);
    opacity: 0.7;
    padding: 0.5em 0;
}
.wp-block-table thead th {
    border-bottom: none;
}
.wp-block-table th,
.wp-block-table td {
    text-align: left;
    vertical-align: top;
    border: none;
    position: relative;
}
.wp-block-table th {
    padding-block: 0.5em;
    border-bottom: 1px solid var(--color-gray);
}
.wp-block-table td {
    padding-block: 0.75em;
    border-bottom: 1px solid var(--color-gray);
}
.wp-block-table th,
.wp-block-table td strong {
    color: var(--color-base-font);
}
.wp-block-table tr th:first-child,
.wp-block-table tr td:first-child {
    border-left: none !important;
}
.wp-block-table tr th:last-child,
.wp-block-table tr td:last-child {
    border-right: none !important;
}
.wp-block-table.is-style-stripes .wp-element-caption {
    border-top: 2px solid;
}
@media only screen and (max-width: 820px) {
    .is-stacked-on-mobile th,
    .is-stacked-on-mobile td {
        border-left: none !important;
        border-right: none !important;
    }
}

/* =========================================================================================
リスト
=========================================================================================*/

/* ol.list, li.list */
:is(ol, ul).wp-block-list {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    margin: 0.5em 0 0.5em 1.5em;

    & li {
        line-height: 1.5;
        position: relative;
    }
}
/* ul.list */
ul.wp-block-list li::before {
    position: absolute;
    content: "";
    background: var(--color-main);
    width: 0.375em;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    inset:0.5lh auto auto -1em;
    translate:0 -50%;
}
/* ol.list */
ol.wp-block-list li::marker {
    color: var(--color-main);
    font-weight: var(--weight-bold);
}

/*List - note*/
ul.note {
    list-style: none;
}
ul.note.center {
    width: fit-content;
    margin: auto;
}
ul.note li {
    position: relative;
    z-index: 1;
}
ul.note li:before {
    content: "※";
    background: none !important;
    position: absolute;
    top: 0;
    left: -1.1em;
    z-index: 1;
}

/* =========================================================================================
グリッド
=========================================================================================*/
.wp-block-group {
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 468px) {
}

/* =========================================================================================
カラム
=========================================================================================*/
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 468px) {
}

/* =========================================================================================
ファイル
=========================================================================================*/
.wp-block-file {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 0.5em;
    border-top: 1px solid var(--color-gray);
    border-bottom: 1px solid var(--color-gray);
    padding-block: 1em;
}
.wp-block-file:has(object) {
    display: block;
}
.wp-block-file + .wp-block-file {
    border-top: none;
}
.wp-block-file:not(.wp-element-button) {
    font-size: 1em;
}
.wp-block-file * + .wp-block-file__button {
    /* font-size: 0.9em;
    background: var(--color-main) url(assets/images/common/icon_download.svg) no-repeat !important;
    background-position: center right 0.75em !important;
    background-size: auto 50% !important;
    border-radius: 0;
    padding: 0.375em 2.5em 0.375em 1em; */
    background-color:var(--color-main)!important;

    &::after { mask-image:url(assets/images/common/icon_download.svg)!important;}
}
.wp-block-file a:hover {
    text-decoration: none;
}

/* =========================================================================================
引用
=========================================================================================*/
blockquote {
    position: relative;
    padding: 3em 2em;
    background: #f5f5f5;
}
blockquote cite {
    display: block;
    font-size: 0.8rem;
    text-align: right;
    color: #808080;
    padding-right: 20px;
}

/* =========================================================================================
メディアとテキスト
=========================================================================================*/
@media only screen and (max-width: 600px) {
    .wp-block-media-text .wp-block-media-text__content {
        margin: 0;
        padding: 1em 0;
    }
}

/* =========================================================================================
詳細
=========================================================================================*/
.wp-block-details {
    border: 2px solid #adc2cc;
    border-radius: 5px;
    margin-block:1em;
    padding: 0.75em 1em 0.5em;
}
.wp-block-details summary {
    color: var(--color-main);
    font-weight: var(--weight-semibold);
    list-style: none; /* 標準仕様でマーカーを消す */
    padding-right: 1.5em;
    position: relative;
    z-index: 1;
}
.wp-block-details summary::before,
.wp-block-details summary::after {
    content: "";
    background-color: var(--color-main);
    border-radius: 10px;
    pointer-events: none; /* クリック判定を邪魔しないように */
    position: absolute;
    top: 0.75em;
    right: 0;
    z-index: 5;
    transition: transform 0.3s ease;
}
.wp-block-details summary::after {
    width: 1em;
    height: 4px;
    margin-top: -2px; /* 完全に中央にするための微調整（太さの半分） */
    right: 0;
}
.wp-block-details summary::before {
    width: 4px;
    height: 1em;
    margin-top: -0.5em;
    right: calc(0.5em - 2px); /* 横棒の中心に来るように位置調整 */
}
.wp-block-details[open] summary {
    margin-bottom: 0.5em;
}
.wp-block-details[open] summary::before {
    transform: rotate(90deg);
}

/* =========================================================================================
VK Blocks
=========================================================================================*/
.vk_alert_icon_text { display:none;}

/* フロー */
.vk_flow {
    width:min(800px, 80%);
    margin-inline:auto;

    & .vk_flow_frame_text_title:empty {
        display:none;
    }
}


/* =========================================================================================
Flexible table
=========================================================================================*/
@media screen and (max-width:768px){
    .wp-block-flexible-table-block-table.is-scroll-on-mobile { max-height:70vh;}
}


/* =========================================================================================
その他 ※デフォルトでは機能OFF
=========================================================================================*/
/*全体幅*/
/* .alignfull {
    width: 100vw;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
} */
