@charset "UTF-8";

:root, :host {
    --font-sans: "Noto Sans JP", sans-serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --color-black: #000;
    --color-white: #fff;
    --spacing: .25rem;
    --font-weight-medium: 500;
    --font-weight-bold: 700;
    --tracking-tighter: -.05em;
    --tracking-normal: 0em;
    --tracking-wide: .025em;
    --tracking-widest: .1em;
    --leading-relaxed: 1.625;
    --radius-lg: .5rem;
    --radius-xl: .75rem;
    --radius-2xl: 1rem;
    --radius-4xl: 2rem;
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --color-light-blue: #d6e6f5;
    --color-sky-blue: #8eb9ea;
    --color-pink: #F79992;
    --color-teal: #73B3B0;
    --color-header-blue: #6994D0;
    --color-body-gray-blue: #F0F6F8;

    /* SnowMonkey本体のテキストカラー(既定#333)を#000に上書き */
    --_color-text: #000;
    --wp--preset--color--text-color: #000;
}

body{
    background-color: var(--color-body-gray-blue);
}
header.l-header{
    background-color: initial;
}
.l-header .c-container{
    padding: 0;
    margin: 0;
    max-width: 100%;
}
.l-header .c-container .c-row--middle{
    align-items: start;
}
.l-1row-header__branding{
    display: inline-block;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);
}
.l-1row-header__branding, .l-1row-header__content{
    background-color: var(--color-white);
    padding: 1rem 2rem;
    border-bottom-right-radius: 20px;
}
header nav{
    background-color: var(--color-white);
    margin-top: 1rem;
    margin-right: 40px;
    padding:10px 1.5rem;
    border-radius: var(--radius-2xl);
    white-space: nowrap;
    color: var(--color-black);
}
header .p-global-nav .c-navbar{
    gap: 1.5rem;
}
header .p-global-nav .c-navbar__item>a{
    padding: 0;
    font-size: 1rem;
}
@media (min-width: 1024px) {
    header .p-global-nav .c-navbar__item>a{
        position: relative;
    }
    header .p-global-nav .c-navbar__item>a::after{
        content: "";
        position: absolute;
        left: 0;
        bottom: -4px;
        width: 100%;
        height: 1px;
        background-color: var(--color-black);
        transform: scaleX(0);
        transform-origin: left;
        transition: transform .3s ease-out;
    }
    header .p-global-nav .c-navbar__item>a:hover::after{
        transform: scaleX(1);
    }
}
.l-header__content{
    padding: 0;
}

/* ドロワーを上から表示し、ヘッダー（z-index:1000）より背面に回す */
.c-drawer{
    top: 0;
    left: 0;
    right: 0;
    bottom: auto;
    width: 100%;
    height: auto;
    max-height: 100vh;
    overflow-y: auto;
    z-index: 900;
    transform: translateY(-100%);
    opacity: 0;
    transition: transform .25s ease-in, opacity .2s ease-in, visibility .25s ease-in;
    background-color: var(--color-sky-blue);
    font-size: 1rem;
}
.c-drawer[aria-hidden=false]{
    transform: translateY(0);
    opacity: 1;
    transition: transform .35s ease-out, opacity .3s ease-out, visibility .35s ease-out;
}
.c-drawer-close-zone{
    z-index: 800;
}
.c-drawer__inner{
    padding-block: 60px;
}
.c-drawer__inner .clinic-hours thead th{
background-color:var(--color-header-blue);
}

@media not all and (min-width: 1024px) {
    .l-header--sticky-sm {
        box-shadow:none;
    }
    .c-hamburger-btn__label{
        display: none;
    }
    .l-1row-header__branding, .l-1row-header__content{
        padding: 0.5rem 0.75rem;
        border-bottom-right-radius: 10px;
    }
    .u-invisible-lg-up{
        background-color: var(--color-white);
        padding: 0.5rem 0.75rem;
        border-bottom-left-radius: 10px;
    }
    .c-hamburger-btn{
        width: 40px;
        height: 40px;
        margin-right: 9.6px;
    }
    .c-hamburger-btn__bars {
        height: 100%;
        width: 32px;
        margin: 4px 0;
    }
    .c-hamburger-btn__bar:nth-of-type(1){
        top: 2px;
    }
    .c-hamburger-btn__bar:nth-of-type(2){
        top: 14px;
    }
    .c-hamburger-btn__bar:nth-of-type(3){
        top: 26px;
    }
    .c-hamburger-btn[aria-expanded=true]>.c-hamburger-btn__bars>:is(.c-hamburger-btn__bar:first-of-type,.c-hamburger-btn__bar:nth-of-type(3)){
        top: 14px;
    }
    .menu-item{
        border-bottom: 1px solid var(--color-white);
    }
    .c-drawer__submenu .menu-item:last-child{
        border: none;
    }
    .l-header--sticky-overlay-sm .c-hamburger-btn__bar {
        background-color: var(--_color-text);
    }
}
.p-global-nav--hover-text-color .c-navbar__item:focus-visible, .p-global-nav--hover-text-color.p-global-nav--current-same-hover-effect .c-navbar__item[data-active-menu],
.p-global-nav--hover-text-color .c-navbar__item:hover{
    color: var(--color-black);
}
.p-global-nav .c-navbar__item[aria-haspopup=true]:before{
    display: none;
}
.p-global-nav .c-navbar__submenu{
    background-color: var(--color-white);
    border-radius: var(--radius-2xl);
    min-width: auto;
}
.p-global-nav .c-navbar__item>.c-navbar__submenu{
    left: 0;
    transform: translateX(-8%);
    padding-top: 1rem;
}
.p-global-nav .c-navbar__subitem{
    color: var(--_color-text);
    font-size: 1rem;
    padding: var(--_padding-2) var(--_padding-1)
}
@media (min-width: 1024px) {
    .p-global-nav .c-navbar__subitem>a{
        display: inline-flex;
        width: fit-content;
        position: relative;
        padding: 0;
    }
    .p-global-nav .c-navbar__subitem>a::after{
        content: "";
        position: absolute;
        left: 0;
        bottom: 4px;
        width: 100%;
        height: 1px;
        background-color: var(--color-black);
        transform: scaleX(0);
        transform-origin: left;
        transition: transform .3s ease-out;
    }
    .p-global-nav .c-navbar__subitem>a:hover::after{
        transform: scaleX(1);
    }
}

/* メインビジュアル内の診療時間表：元デザインの幅(420px/lg:470px)を再現 */
.hero-clinic-hours{
    width: 420px;
}
@media (min-width: 1024px) {
    .hero-clinic-hours{
        width: 470px;
    }
}

/* 診療時間表(PC時のみ表示。サイト内共通の1024px基準に統一) */
.clinic-hours-pc-only{
    display: none;
}
@media (min-width: 1024px) {
    .clinic-hours-pc-only{
        display: block;
    }
}
.clinic-hours{
    width: 100%;
    border-collapse: collapse;
    font-weight: var(--font-weight-medium);
    font-size: 1rem;
}
.clinic-hours thead th{
    background-color: var(--color-sky-blue);
    color: var(--color-white);
    height: 34px;
    text-align: center;
    font-weight: var(--font-weight-medium);
}
.clinic-hours thead th.clinic-hours__tight{
    letter-spacing: var(--tracking-tighter);
}
.clinic-hours tbody{
    background-color: var(--color-body-gray-blue);
}
.clinic-hours tbody td{
    height: 34px;
    text-align: center;
}
.clinic-hours tbody td.clinic-hours__time{
    letter-spacing: var(--tracking-tighter);
    color: var(--_color-text);
}
.clinic-hours__icon{
    display: inline-block;
}
.clinic-hours__icon--circle{
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: var(--color-sky-blue);
}
.clinic-hours__icon--circle.clinic-hours__icon--pink{
    background-color: var(--color-pink);
}
.clinic-hours__icon--bar{
    width: 16px;
    height: 3px;
    background-color: var(--color-sky-blue);
}
.clinic-hours__icon--triangle{
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-bottom: 14px solid var(--color-sky-blue);
}
.clinic-hours__note{
    font-size: .75rem;
    font-weight: var(--font-weight-medium);
    margin-top: .25rem;
    line-height: 1.5;
}
.clinic-hours__note-pink{
    color: var(--color-pink);
}

/* LINE登録・WEB予約ボタン */
.cta-buttons{
    display: flex;
    gap: 1rem;
    margin-top: 1.5rem;
}
.cta-buttons__btn{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: 50%;
    height: 50px;
    border-radius: var(--radius-lg);
    color: var(--color-white);
    text-decoration: none;
    line-height: 1;
    letter-spacing: var(--tracking-wide);
    font-weight: var(--font-weight-medium);
    border: 1px solid transparent;
    transition: background-color .3s, color .3s, fill .3s;
}
.cta-buttons__icon{
    width: 2rem;
    height: auto;
}
.cta-buttons__btn--line{
    background-color: #06C755;
    border-color: #06C755;
}
.cta-buttons__btn--line:hover{
    background-color: var(--color-white);
    color: #06C755;
}
.cta-buttons__line-bg,
.cta-buttons__line-letter{
    transition: fill .3s;
}
.cta-buttons__btn--line:hover .cta-buttons__line-bg{
    fill: #06C755;
}
.cta-buttons__btn--line:hover .cta-buttons__line-letter{
    fill: var(--color-white);
}
.cta-buttons__btn--web{
    background-color: #FC9100;
    border-color: #FC9100;
}
.cta-buttons__btn--web .cta-buttons__icon{
    fill: var(--color-white);
}
.cta-buttons__btn--web:hover{
    background-color: var(--color-white);
    color: #FC9100;
}
.cta-buttons__btn--web:hover .cta-buttons__icon{
    fill: #FC9100;
}



/* PC時のみ表示する右側固定WEB予約ボタン */
#pc-fixed-btn{
    display: none;
}
@media (min-width: 1024px) {
    #pc-fixed-btn{
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: .5rem;
        position: fixed;
        top: 33.333%;
        right: 0;
        width: 75px;
        height: 160px;
        padding-right: 5px;
        margin-right: -5px;
        background-color: #FC9100;
        border: 1px solid #FC9100;
        border-right: none;
        border-radius: var(--radius-xl) 0 0 var(--radius-xl);
        color: var(--color-white);
        fill: var(--color-white);
        font-size: 1.125rem;
        font-weight: var(--font-weight-medium);
        text-decoration: none;
        z-index: 500;
        transition: background-color .3s, color .3s, fill .3s, margin-right .3s;
    }
    #pc-fixed-btn:hover{
        background-color: var(--color-white);
        color: #FC9100;
        fill: #FC9100;
        margin-right: 0;
    }
    #pc-fixed-btn span{
        writing-mode: vertical-rl;
        text-orientation: upright;
    }
    #pc-fixed-btn .pc-fixed-btn__en{
        letter-spacing: -.2em;
        margin-bottom: 6px;
    }
    #pc-fixed-btn .pc-fixed-btn__ja{
        letter-spacing: inherit;
    }
}

/* フッター */
.l-footer{
    border-top: none;
    background-color: var(--color-white);
}
@media (min-width: 1024px) {
    .l-footer--footer-1 .l-footer-widget-area{
        padding: 0;
    }
    .l-footer--footer-1 .c-container{
        max-width: 100%;
        width:100%;
        padding: 0;
    }
    .l-footer--footer-1 .c-container .c-row{
        display: block;
    }
    .l-footer--footer-1 .c-container .c-row__col--lg-1-4,
    .l-footer--footer-1 .c-container iframe{
        width: 100%;
        --_item-width:100%;
    }
    .l-footer--footer-1 .c-container iframe{
        height: 400px;
    }
}

/* フッター情報エリア（地図・ロゴ・住所・電話番号・診療時間・cta） */
.footer-info{
    display: flex;
    flex-direction: column;
}
.footer-info__map{
    width: 100%;
    aspect-ratio: 16 / 9;
}
.footer-info__map iframe{
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}
.footer-info__body{
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}
.footer-info__logo img{
    max-width: 240px;
    height: auto;
    margin-bottom: 1.5rem;
}
.footer-info__tel{
    margin-bottom: 1.5rem;
}
.footer-info__tel a{
    color: inherit;
    text-decoration: none;
}
.footer-info__tel a span{
    font-size: 1.25rem;
    font-weight: var(--font-weight-bold);
}
.footer-cta-buttons-wrap .cta-buttons{
    flex-direction: column;
}
.footer-cta-buttons-wrap .cta-buttons__btn{
    width: 100%;
}
.c-sub-nav .c-navbar {
    gap: var(--_margin-1);
    margin-bottom: 1rem;
}
.c-copyright{
    text-align: center;
}
@media (min-width: 1024px) {
    .footer-info .footer-info__body{
        width: 100%;
        max-width: var(--_container-max-width);
        margin: 0 auto;
        padding:2rem 3rem;
    }
    .footer-info__map{
        aspect-ratio: auto;
        height: 400px;
    }
    .footer-info__body{
        flex-direction: row;
        align-items: flex-start;
        gap: 2.5rem;
    }
    .footer-info__left{
        flex: 1 1 65%;
    }
    .footer-info__body .footer-cta-buttons-wrap{
        flex: 1 1 35%;
        margin: 0;
    }
}

/* メインビジュアル（Tailwindから移植。md=768px, lg=1024px, xl=1280pxの3段階） */
.hero{
    width: 100%;
    position: relative;
    margin-bottom: 2.5rem;
    max-height: 100vh;
}
@media (min-width: 768px) {
    .hero{
        padding-left: 70px;
        padding-bottom: 6rem;
        margin-bottom: 5rem;
    }
}
@media (min-width: 1024px) {
    .hero{
        min-height: 640px;
    }
}
.hero__bg{
    display: none;
}
@media (min-width: 768px) {
    .hero__bg{
        display: block;
        position: absolute;
        inset: 0;
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}
.hero__bg-inner{
    width: 100%;
    height: 100%;
    background-color: var(--color-light-blue);
    border-bottom-left-radius: var(--radius-2xl);
    border-bottom-right-radius: var(--radius-2xl);
}
.hero__slider{
    width: 100%;
    height: calc(100vh - 96px);
    min-height: 560px;
    max-height: 940px;
    overflow: hidden;
}
@media (min-width: 1024px) {
    .hero__slider{
        border-bottom-left-radius: var(--radius-2xl);
    }
}
.hero__slider .spider,
.hero__slider .spider__canvas,
.hero__slider .spider__slide{
    height: 100%;
}
.hero__slide-img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.hero__overlay{
    position: absolute;
    inset: 0;
}
.hero__catch{
    position: absolute;
    top: 78px;
    left: 1.25rem;
    font-weight: var(--font-weight-bold);
    font-size: 18px;
    line-height: var(--leading-relaxed);
    letter-spacing: var(--tracking-widest);
    text-shadow: 0 2px 8px rgba(0, 0, 0, .35);
    z-index: 50;
}
@media (min-width: 768px) {
    .hero__catch{
        top: 15%;
        left: 14%;
        font-size: 24px;
    }
}
@media (min-width: 1024px) {
    .hero__catch{
        top: 22%;
        font-size: 32px;
    }
}
.hero__features{
    width: 100%;
    position: absolute;
    bottom: 1.5rem;
    right: 0;
    z-index: 50;
}
@media (min-width: 768px) {
    .hero__features{
        width: auto;
        right: 2rem;
        bottom: 13rem;
    }
}
@media (min-width: 1024px) {
    .hero__features{
        right: 70px;
    }
}
.hero__features-inner{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
@media (min-width: 768px) {
    .hero__features-inner{
        flex-direction: row;
        gap: 1rem;
    }
}
.hero__feature{
    position: relative;
}
.hero__feature-img{
    width: 140px;
}
@media (min-width: 768px) {
    .hero__feature-img{
        width: 160px;
    }
}
.hero__feature-text{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    color: var(--color-white);
    text-align: center;
}
.hero__feature-num{
    font-size: 12px;
}
@media (min-width: 768px) {
    .hero__feature-num{
        font-size: 14px;
    }
}
.hero__feature-num-digit{
    font-size: 14px;
}
@media (min-width: 768px) {
    .hero__feature-num-digit{
        font-size: 16px;
    }
}
.hero__feature-desc{
    font-size: 15px;
    font-weight: var(--font-weight-medium);
    padding-top: 1rem;
    padding-bottom: 1rem;
}
@media (min-width: 768px) {
    .hero__feature-desc{
        font-size: 18px;
    }
}
.hero__feature-desc--tight{
    margin-top: .625rem;
}
.hero__features-group{
    display: flex;
    flex-direction: row-reverse;
    gap: 1rem;
    margin-top: -.5rem;
}
@media (min-width: 768px) {
    .hero__features-group{
        flex-direction: row;
        margin-top: 0;
    }
}
.hero__illust{
    display: none;
}
@media (min-width: 1024px) {
    .hero__illust{
        display: block;
        position: absolute;
        bottom: 2rem;
        left: 70px;
        z-index: 50;
    }
}
@media (min-width: 1280px) {
    .hero__illust{
        left: 115px;
    }
}
.hero__info{
    display: none;
    position: absolute;
    bottom: calc(var(--spacing)*6);
    right: 0;
    width: 100%;
    z-index: 50;
}
@media (min-width: 768px) {
    .hero__info{
        display: flex;
        justify-content: center;
        gap: 1.5rem;
    }
}
@media (min-width: 1024px) {
    .hero__info{
        justify-content: flex-end;
        right: 70px;
    }
}
.hero__address-box{
    padding-left: 1rem;
    padding-right: 1rem;
    height: 165px;
    background-color: var(--color-white);
    border-radius: var(--radius-xl);
    display: flex;
    align-items: center;
    justify-content: center;
}
@media (min-width: 1280px) {
    .hero__address-box{
        width: 295px;
    }
}
.hero__address-inner{
    display: flex;
    flex-direction: column;
}
.hero__address-text{
    font-size: 16px;
    font-weight: var(--font-weight-medium);
}
.hero__tel{
    display: flex;
    align-items: baseline;
    gap: .75rem;
    color: var(--color-sky-blue);
    text-decoration: none;
}
.hero__tel-label{
    font-size: 12px;
}
.hero__tel-number{
    font-size: 28px;
    font-weight: var(--font-weight-bold);
}

/* お知らせ一覧（newsカスタム投稿タイプ） */
.news-section{
    position: relative;
    padding-top: 2.5rem;
    z-index: 0;
    overflow: hidden;
}
@media (min-width: 768px) {
    .news-section{
        padding-top: 5rem;
        margin-bottom: 5rem;
    }
}
.news-section__watermark{
    display: none;
}
@media (min-width: 1024px) {
    .news-section__watermark{
        display: block;
        position: absolute;
        top: 0;
        left: 2rem;
        font-size: 200px;
        color: var(--color-white);
        font-weight: var(--font-weight-medium);
        line-height: .6;
    }
}
.news-section__inner{
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    background-color: var(--color-light-blue);
    border-radius: var(--radius-xl);
    padding-block: 1.5rem;
}
@media (min-width: 768px) {
    .news-section__inner{
        padding-block: 3rem;
    }
}
.news-section__row{
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
@media (min-width: 768px) {
    .news-section__row{
        flex-direction: row;
        gap: 3rem;
    }
}
.news-section__heading{
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    text-align: center;
}
@media (min-width: 768px) {
    .news-section__heading{
        gap: .25rem;
    }
}
.news-section__heading-ja{
    font-weight: var(--font-weight-bold);
    font-size: 24px;
}
@media (min-width: 768px) {
    .news-section__heading-ja{
        font-size: 32px;
    }
}
.news-section__heading-en{
    font-weight: var(--font-weight-medium);
    color: var(--color-pink);
    font-size: 14px;
    line-height: 1;
}
@media (min-width: 768px) {
    .news-section__heading-en{
        font-size: 16px;
    }
}
.news-section__list{
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.news-item{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .5rem;
    background-color: var(--color-white);
    border-radius: var(--radius-xl);
    padding: 1.5rem;
}
@media (min-width: 1024px) {
    .news-item{
        flex-direction: row;
        gap: 2rem;
        padding: 1.5rem 2rem;
    }
}
.news-item__meta{
    display: flex;
    align-items: center;
    gap: 1rem;
}
@media (min-width: 768px) {
    .news-item__meta{
        gap: 2rem;
    }
}
@media (min-width: 1024px) {
    .news-item__meta{
        padding-top: .25rem;
    }
}
.news-item__date{
    font-weight: var(--font-weight-medium);
    font-size: 16px;
}
.news-item__badge{
    min-width: 90px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-teal);
}
.news-item__badge span{
    font-size: 12px;
    color: var(--color-white);
    font-weight: var(--font-weight-medium);
}
.news-item__body{
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
@media (min-width: 768px) {
    .news-item__body{
        gap: 1rem;
    }
}
.news-item__title-row{
    width: 100%;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}
.news-item__title{
    flex-grow: 1;
    font-size: 18px;
    font-weight: var(--font-weight-medium);
    color: var(--_color-text);
    text-decoration: none;
}
.news-item__title:hover{
    text-decoration: underline;
}
@media (min-width: 768px) {
    .news-item__title{
        font-size: 20px;
    }
}
.news-item__toggle{
    flex-shrink: 0;
    margin-top: .25rem;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    line-height: 0;
    transition: transform .3s;
}
.news-item.is-open .news-item__toggle{
    transform: rotate(180deg);
}
.news-item__toggle-icon{
    width: 1.5rem;
    fill: var(--color-teal);
}
.news-item__excerpt{
    font-size: 15px;
}
@media (min-width: 768px) {
    .news-item__excerpt{
        font-size: 18px;
    }
}

/* 緊急のお知らせ（Customizer） */
.top_notice_box{
    display: block;
    background-color: var(--color-white);
    border: 4px solid var(--color-teal);
    border-radius: var(--radius-xl);
    padding: 1.5rem;
}
.top_notice_box > a{
    display: block;
    color: inherit;
    text-decoration: none;
}
.top_notice_box div:has(> .notice_date){
    display: flex;
    flex-direction: column;
    gap: .25rem;
    margin-bottom: .75rem;
}
@media (min-width: 1024px) {
    .top_notice_box div:has(> .notice_date){
        flex-direction: row;
        align-items: baseline;
        gap: 1rem;
    }
}
.top_notice_box p:not(.notice_date):not(.notice_title){
    margin: 0;
}
/* 診療案内グリッド：SP2列・タブレット3列・PCはブロック設定値のまま */
.top_medical.smb-grid--columns\:columns{
    grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 768px) {
    .top_medical.smb-grid--columns\:columns{
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (min-width: 1024px) {
    .top_medical.smb-grid--columns\:columns{
        grid-template-columns: repeat(var(--smb-grid--columns), 1fr);
    }
}
@media not all and (min-width: 768px) {
    .top_medical img{
        object-fit: contain!important;
        width: 90px !important;
        height: 90px !important;
    }
    .top_medical h3{
        font-size: 14px;
    }
}
/* PC/SP切り替え */
@media (min-width: 1024px) {
    .pc-none{
        display: none;
    }
}
@media (max-width: 1023px) {
    .sp-none{
        display: none;
    }
}
/* PC/SP切り替え改行（<br class="br-pc">, <br class="br-sp">） */
.br-pc{
    display: none;
}
.br-sp{
    display: inline;
}
@media (min-width: 1024px) {
    .br-pc{
        display: inline;
    }
    .br-sp{
        display: none;
    }
}

.section_radius{
    border-radius: var(--radius-4xl);
    overflow: hidden;
}

/* c-containerの幅制約を解除する汎用クラス。
   祖先のc-container自体は他のセクションと共有されているため無効化せず、
   このクラスを付けた要素自身にalignfullと同じ手法（max-width解除＋
   コンテナのpadding分を打ち消すマイナスマージン）を適用する。
   これなら同じc-containerを共有する他の要素には影響しない。 */
.no_container{
    max-width: none !important;
    margin-left: calc(-1 * var(--_container-margin-left)) !important;
    margin-right: calc(-1 * var(--_container-margin-right)) !important;
}
@media not all and (min-width: 1024px) {
    /* SP限定で無効にしたい場合はこちら */
    .no_container_sp{
        max-width: none !important;
        margin-left: calc(-1 * var(--_container-margin-left)) !important;
        margin-right: calc(-1 * var(--_container-margin-right)) !important;
    }
}

/* 「脳」ラベル＋症状タグ全体：SP1列（縦積み）・PC2列（40%/60%） */
.smb-flex.top_medical_tags_all{
    flex-direction: column;
}
@media (min-width: 1024px) {
    .smb-flex.top_medical_tags_all{
        flex-direction: row;
    }
    .top_medical_tags_all > :first-child{
        flex: 0 0 30%;
    }
    .top_medical_tags_all > :last-child{
        flex: 0 0 70%;
    }
}

/* 症状タグ（ボタン複数ブロック）：SP2列・PC3列
   flexのflex-basis指定だと、文字数の多いタグがwhite-space:nowrapの
   最小幅に負けて指定幅を無視してしまうため、gridで確実に列数を固定する。
   長いタグはボタン内で折り返す。 */
.top_medical_tags.smb-buttons{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-items: stretch;
}
.top_medical_tags.smb-buttons > .smb-btn-wrapper{
    width: 100% !important;
    box-sizing: border-box;
}
.top_medical_tags .smb-btn{
    display: flex;
    white-space: normal;
    width: 100% !important;
    box-sizing: border-box;
}
@media (min-width: 1024px) {
    .top_medical_tags.smb-buttons{
        grid-template-columns: repeat(3, 1fr);
    }
}
.top_medical_h2{
    font-size: 36px;
}
@media (max-width: 1023px) {
    .top_medical_tags_head{
        width: 100%;
    }
    .top_medical_tags.smb-buttons{
        font-size: 14px;
        width: 100%;
    }
    .top_medical_h2{
        font-size: 24px;
    }
}

/* Feature Card：SP縦・PC横（top_medical_tags_allと同じ考え方） */
.smb-flex.feature_card_flex{
    flex-direction: column;
}
@media (min-width: 768px) {
    .smb-flex.feature_card_flex{
        flex-direction: row;
        align-items: center;
    }
    /* 画像の幅を固定し、テキストが残り幅を吸収して縮むようにする。
       これをしないと画像＋テキスト＋丸ボタンの合計幅がカードの横幅を超え、
       縮まない丸ボタンだけがカードの外にはみ出してしまう。 */
    .feature_card_flex > .feature_card_media{
        flex: 0 0 340px;
    }
    .feature_card_flex > .wp-block-group:not(.feature_card_media){
        flex: 1 1 auto;
        min-width: 0;
    }
}
@media (max-width: 767px) {
    .feature_card_flex h3{
        text-align: center;
    }
}
/* Feature Card：画像に重ねる丸バッジ（絶対配置が必要なため独自クラスで対応） */
.feature_card_media{
    position: relative;
}
.feature_card_badge{
    position: absolute;
    top: -16px;
    left: -16px;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background-color: var(--color-sky-blue);
    color: var(--color-white);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.2;
    margin: 0;
}
.feature_card_badge__label{
    font-size: 10px;
}
.feature_card_badge__num{
    font-size: 20px;
    font-weight: var(--font-weight-bold);
    margin-top: 0;
}

/* Feature Card：丸型CTAボタン（固定サイズの円が必要なため独自クラスで対応） */
.feature_card_cta.smb-buttons{
    flex-shrink: 0;
}
.feature_card_cta .smb-btn{
    width: 110px;
    height: 110px;
    border-radius: 50%;
    white-space: normal;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    flex-shrink: 0;
    font-weight: bold;
    border: 2px solid var(--color-teal);
    background-color: var(--color-teal);
}
.feature_card_cta .smb-btn:hover{
    border: 2px solid var(--color-teal);
    background-color: #fff;
    color: var(--color-teal);
}
@media (max-width: 767px) {
    .feature_card_cta,
    .feature_card_cta .smb-btn-wrapper{
        width: 100%;
    }
    .feature_card_cta .smb-btn{
        width: 100%;
        height: auto;
        border-radius: 50px;
    }
}

.top_dr_text{
    order: 2;
}
.top_dr_img{
    order: 1;
}
.top_dr_img figure{
    width: 60%;
    margin-left: auto;
    margin-right: auto;    
}
.top_dr_img figcaption{
    text-align: right;
}
@media (min-width: 1024px) {
    .top_dr_text{
        order: 1;
    }
    .top_dr_img{
        order: 2;
    }
    .top_dr_img figure{
        width: 100%;
    }
}
/* Items（アイテム）ブロックの2カラムを7:3にしたい場合に使うクラス。
   data-lg-columns="2"は他の2カラムItemsブロックにも共通で使われるルールのため、
   直接上書きせず専用クラス(ratio_70_30)でスコープする。
   Itemsブロックの「追加CSSクラス」にratio_70_30を付けて使う。 */
@media (min-width: 1024px) {
    .ratio_70_30.smb-items .c-row[data-lg-columns="2"] > .c-row__col:nth-child(1){
        --_item-width: 70%;
    }
    .ratio_70_30.smb-items .c-row[data-lg-columns="2"] > .c-row__col:nth-child(2){
        --_item-width: 30%;
    }
}

/* ボタンブロックの「ピル型」スタイル（丸型＋右端に矢印アイコン）。
   register_block_style()でスタイル選択肢として登録している（inc/block-styles.php）。
   is-style-*は内側の.smb-btnではなく外側の.smb-btn-wrapperに付与されるため、
   子孫セレクタで.smb-btnを指定する（ネイティブのis-style-ghostと同じ考え方）。 */
.smb-btn-wrapper.is-style-pill-teal .smb-btn,
.smb-btn-wrapper.is-style-pill-pink .smb-btn{
    position: relative;
    display: inline-flex;
    align-items: center;
    box-sizing: border-box;
    border-radius: 999px;
    color: var(--color-white);
    font-weight: var(--font-weight-bold);
    padding: 14px 58px 14px 30px;
    max-width: 100%;
    white-space: normal;
    transition: background-color .3s, color .3s, border-color .3s;
}
.smb-btn-wrapper.is-style-pill-teal .smb-btn{
    border: 2px solid var(--color-teal);
    background-color: var(--color-teal);
}
.smb-btn-wrapper.is-style-pill-pink .smb-btn{
    border: 2px solid var(--color-pink);
    background-color: var(--color-pink);
}
/* リンク未設定（href無し）の場合は指差しカーソルにしない */
.smb-btn:not([href]){
    cursor: default;
}
@media (any-hover: hover) {
    .smb-btn-wrapper.is-style-pill-teal .smb-btn[href]:hover{
        background-color: var(--color-white);
        color: var(--color-teal);
    }
    .smb-btn-wrapper.is-style-pill-teal .smb-btn[href]:hover::after{
        background-color: var(--color-teal);
    }
    .smb-btn-wrapper.is-style-pill-pink .smb-btn[href]:hover{
        background-color: var(--color-white);
        color: var(--color-pink);
    }
    .smb-btn-wrapper.is-style-pill-pink .smb-btn[href]:hover::after{
        background-color: var(--color-pink);
    }
}
/* 円＋矢印が1本のパスになっているアイコンをmaskとして使う。
   白で塗ったマスク要素の「矢印の穴」からボタンの背景色が透けて見えるため、
   円＋矢印を1要素で再現できる。 */
.smb-btn-wrapper.is-style-pill-teal .smb-btn::after,
.smb-btn-wrapper.is-style-pill-pink .smb-btn::after{
    content: "";
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 26px;
    height: 26px;
    background-color: var(--color-white);
    transition: background-color .3s;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3Cpath d='M320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576zM441 337L361 417L344 434L310.1 400.1C317.7 392.5 336.4 373.8 366.1 344.1L192 344.1L192 296.1L366.1 296.1C336.4 266.4 317.7 247.7 310.1 240.1L344 206.1C344.8 206.9 377.1 239.2 441 303.1L458 320.1L441 337.1z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3Cpath d='M320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576zM441 337L361 417L344 434L310.1 400.1C317.7 392.5 336.4 373.8 366.1 344.1L192 344.1L192 296.1L366.1 296.1C336.4 266.4 317.7 247.7 310.1 240.1L344 206.1C344.8 206.9 377.1 239.2 441 303.1L458 320.1L441 337.1z'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

/* ネイティブのホバー時の明るさ変化(filter:brightness(90%))を無効化。
   独自の色反転ホバーと重なると白背景が薄暗く濁って見えるため。 */
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button__link:hover,
.smb-btn:hover{
    filter: none !important;
}

/* WordPress標準の「ボタン」ブロック(core/button)：デフォルト（塗りつぶし）スタイルを
   丸型＋矢印アイコンに変更。is-style-outline（アウトライン）は対象外。
   背景色を個別に変更した場合はそちらが優先される。 */
.wp-block-button:not(.is-style-outline) .wp-block-button__link{
    position: relative;
    display: inline-flex;
    align-items: center;
    box-sizing: border-box;
    border-radius: 999px;
    border: 2px solid var(--color-pink);
    background-color: var(--color-pink);
    color: var(--color-white);
    font-weight: var(--font-weight-bold);
    padding: 14px 58px 14px 30px;
    max-width: 100%;
    white-space: normal;
    transition: background-color .3s, color .3s, border-color .3s;
}
/* リンク未設定（href無し）の場合は指差しカーソルにしない */
.wp-block-button__link:not([href]){
    cursor: default;
}
@media (any-hover: hover) {
    .wp-block-button:not(.is-style-outline) .wp-block-button__link[href]:hover{
        background-color: var(--color-white)!important;
        color: var(--color-pink);
    }
    .wp-block-button:not(.is-style-outline) .wp-block-button__link[href]:hover::after{
        background-color: var(--color-pink);
    }
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link::after{
    content: "";
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 26px;
    height: 26px;
    background-color: var(--color-white);
    transition: background-color .3s;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3Cpath d='M320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576zM441 337L361 417L344 434L310.1 400.1C317.7 392.5 336.4 373.8 366.1 344.1L192 344.1L192 296.1L366.1 296.1C336.4 266.4 317.7 247.7 310.1 240.1L344 206.1C344.8 206.9 377.1 239.2 441 303.1L458 320.1L441 337.1z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3Cpath d='M320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576zM441 337L361 417L344 434L310.1 400.1C317.7 392.5 336.4 373.8 366.1 344.1L192 344.1L192 296.1L366.1 296.1C336.4 266.4 317.7 247.7 310.1 240.1L344 206.1C344.8 206.9 377.1 239.2 441 303.1L458 320.1L441 337.1z'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

/* ボタンブロックの「トグル」スタイル（横長＋右端に下矢印アイコン）。
   矢印アイコンはピル型ボタンと同じSVGを90度回転させて流用。 */
.smb-btn-wrapper.is-style-toggle-sky .smb-btn{
    position: relative;
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border-radius: var(--radius-xl);
    border: 2px solid var(--color-sky-blue);
    background-color: var(--color-sky-blue);
    color: var(--color-white);
    font-weight: var(--font-weight-bold);
    padding: 16px 60px;
    white-space: normal;
    text-align: center;
}
@media (any-hover: hover) {
    .smb-btn-wrapper.is-style-toggle-sky .smb-btn[href]:hover{
        background-color: var(--color-white);
        color: var(--color-sky-blue);
    }
    .smb-btn-wrapper.is-style-toggle-sky .smb-btn[href]:hover::after{
        background-color: var(--color-sky-blue);
    }
}
.smb-btn-wrapper.is-style-toggle-sky .smb-btn::after{
    content: "";
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%) rotate(90deg);
    width: 26px;
    height: 26px;
    background-color: var(--color-white);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3Cpath d='M320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576zM441 337L361 417L344 434L310.1 400.1C317.7 392.5 336.4 373.8 366.1 344.1L192 344.1L192 296.1L366.1 296.1C336.4 266.4 317.7 247.7 310.1 240.1L344 206.1C344.8 206.9 377.1 239.2 441 303.1L458 320.1L441 337.1z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3Cpath d='M320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576zM441 337L361 417L344 434L310.1 400.1C317.7 392.5 336.4 373.8 366.1 344.1L192 344.1L192 296.1L366.1 296.1C336.4 266.4 317.7 247.7 310.1 240.1L344 206.1C344.8 206.9 377.1 239.2 441 303.1L458 320.1L441 337.1z'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

/* ボタンブロックの「ピル（アウトライン・スカイブルー）」スタイル：
   白背景＋スカイブルーの枠線・文字、丸型。ホバーで塗りつぶしに反転する。 */
.smb-btn-wrapper.is-style-pill-outline-sky .smb-btn{
    box-sizing: border-box;
    border-radius: var(--radius-lg);
    border: 2px solid var(--color-sky-blue);
    background-color: var(--color-white);
    color: var(--color-sky-blue);
    font-weight: var(--font-weight-bold);
    padding: 14px 30px;
    white-space: normal;
    max-width: 100%;
    transition: background-color .3s, color .3s;
}
@media (any-hover: hover) {
    .smb-btn-wrapper.is-style-pill-outline-sky .smb-btn[href]:hover{
        background-color: var(--color-sky-blue);
        color: var(--color-white);
    }
}

/* ボタンブロックのネイティブ「枠線（Ghost）」スタイル：ホバー時に色を反転させる
   （枠線・文字色→塗りつぶし、文字は白に）。色は各ボタンのインラインスタイル
   （--smb-btn--style--ghost--border-color）をそのまま使うので、ボタンごとの
   色設定に自動で追従する。 */
@media (any-hover: hover) {
    .smb-btn-wrapper.is-style-ghost .smb-btn[href]:hover{
        background-color: var(--smb-btn--style--ghost--border-color)!important;
        color: var(--color-white);
    }
}

/* セクション見出し：サブタイトルとタイトルの上下を入れ替える（DOM順はサブタイトルが先のためorderではなくcolumn-reverseで対応）。
   全セクション共通のコンポーネントなので、site全体のSection見出しに適用される。 */
.smb-section__header{
    display: flex;
    flex-direction: column-reverse;
    gap: var(--_margin-2);
}
.smb-section__header > * + *{
    margin-top: 0;
}
@media (max-width: 767px) {
    .smb-section__background-text__text{
        display: none;
    }
    .smb-section__header{
        gap: 0;     
    }
    .smb-section__title{
        font-size: 24px;
    }
    .smb-section__title::after{
        content: none;
    }
    .p-section-front-page-content{
        padding-top: 0;
    }
}

/* 下層固定ページ共通：ページタイトル見出し（背景画像つき）
   画像を右いっぱいに寄せるため、既存の.no_container（c-containerの幅制約解除）を再利用 */
.page-header{
    max-width: 100%;
}
.page-header__kv{
    position: relative;
    overflow: hidden;
}
.page-header__kv img{
    display: block;
    width: 100%;
    height: 240px;
    object-fit: cover;
}
@media (min-width: 1024px) {
    .page-header__kv{
        padding-left: 50px;
    }
    .page-header__kv img{
        height: 420px;
        border-bottom-left-radius: var(--radius-2xl);
    }
}
.page-header__body{
    position: relative;
    margin-top: 24px;
    margin-bottom: 40px;
}
@media (min-width: 1024px) {
    .page-header__body{
        margin-top: 32px;
        margin-bottom: 80px;
    }
}
.page-header__watermark{
    display: none;
}
@media (min-width: 1024px) {
    .page-header__watermark{
        display: block;
        position: absolute;
        top: 0;
        right: 2rem;
        font-size: 180px;
        font-weight: var(--font-weight-medium);
        line-height: .6;
        color: var(--color-white);
        letter-spacing: var(--tracking-wide);
        pointer-events: none;
        white-space: nowrap;
    }
}
.page-header__title{
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
}
.page-header__title-ja{
    font-size: 28px;
    font-weight: var(--font-weight-bold);
}
.page-header__title-en{
    font-size: 20px;
    line-height: 1;
    font-weight: var(--font-weight-medium);
    color: var(--color-pink);
    letter-spacing: var(--tracking-wide);
}
@media (min-width: 1024px) {
    .page-header__title-ja{
        font-size: 48px;
    }
    .page-header__title-en{
        font-size: 28px;
    }
}
.p-breadcrumbs-wrapper{
    display: none;
}
.l-contents__inner{
    margin-top: 0;
}

/* 記事本文(article)の既定スタイル。
   post_class()で全ての投稿・固定ページに<article>が付くため、articleセレクタで
   投稿・固定ページ共通の本文スタイルとして機能する。
   SnowMonkey本体が見出し無地(is-style-plain以外)に自動でグレー背景・下線等を
   付けるため、background-color等を明示的に打ち消す。
   .editor-styles-wrapperを含めることでブロックエディタ上にも同じ見た目を反映する。
   フォントサイズの切り替えは、他の箇所で使っているレイアウト用の1024pxとは別に
   本文の読みやすさ用の768px（元デザインのbreakpoint）を使用している。 */
:is(article, .editor-styles-wrapper) .wp-block-columns ul{
    padding-block: 0;
}
:is(article, .editor-styles-wrapper) img{
    border-radius: var(--radius-xl);
}
:is(article, .editor-styles-wrapper) p{
    margin-bottom: calc(var(--spacing) * 8);
    font-size: 15px;
    line-height: var(--leading-relaxed);
}
@media (min-width: 768px) {
    :is(article, .editor-styles-wrapper) p{
        font-size: 18px;
    }
}
:is(article, .editor-styles-wrapper) h2{
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: calc(var(--spacing) * 8);
    margin-bottom: calc(var(--spacing) * 4);
    font-size: 24px;
    font-weight: var(--font-weight-bold);
    color: var(--_color-text);
    background-color: transparent;
    border-left: none;
    padding: 0;
}
@media (min-width: 768px) {
    :is(article, .editor-styles-wrapper) h2{
        font-size: 30px;
    }
}
:is(article, .editor-styles-wrapper) h2::before{
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: 4px;
    background-color: var(--color-pink);
}
@media (min-width: 768px) {
    :is(article, .editor-styles-wrapper) h2::before{
        width: 24px;
        height: 24px;
    }
}
:is(article, .editor-styles-wrapper) h3{
    margin-top: calc(var(--spacing) * 8);
    margin-bottom: calc(var(--spacing) * 4);
    background-color: var(--color-light-blue);
    color: var(--color-header-blue);
    font-size: 20px;
    font-weight: var(--font-weight-bold);
    padding: 8px 16px;
    border-radius: var(--radius-lg);
    border-bottom: none;
}
@media (min-width: 768px) {
    :is(article, .editor-styles-wrapper) h3{
        font-size: 26px;
    }
}
:is(article, .editor-styles-wrapper) h4{
    margin-block: calc(var(--spacing) * 4);
    padding-bottom: 8px;
    color: var(--color-teal);
    font-size: 20px;
    font-weight: var(--font-weight-bold);
    border-bottom: 1px solid var(--color-teal);
}
@media (min-width: 768px) {
    :is(article, .editor-styles-wrapper) h4{
        font-size: 22px;
    }
}
:is(article, .editor-styles-wrapper) h5{
    margin-block: calc(var(--spacing) * 4);
    font-size: 18px;
    font-weight: var(--font-weight-bold);
    color: var(--color-header-blue);
}
@media (min-width: 768px) {
    :is(article, .editor-styles-wrapper) h5{
        font-size: 20px;
    }
}
:is(article, .editor-styles-wrapper) h5::before{
    content: "";
    display: inline-block;
    vertical-align: middle;
    margin-right: 6px;
    margin-bottom: 4px;
    width: 5px;
    height: 16px;
    background-color: var(--color-header-blue);
}
@media (min-width: 768px) {
    :is(article, .editor-styles-wrapper) h5::before{
        width: 6px;
        height: 18px;
    }
}
:is(article, .editor-styles-wrapper) ul{
    padding-block: 16px;
    padding-left: 0;
    list-style: none;
}
:is(article, .editor-styles-wrapper) li{
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 16px;
    font-size: 16px;
    font-weight: var(--font-weight-medium);
}
@media (min-width: 768px) {
    :is(article, .editor-styles-wrapper) li{
        font-size: 18px;
    }
}
:is(article, .editor-styles-wrapper) li::before{
    content: "";
    flex-shrink: 0;
    margin-top: .5em;
    width: 12px;
    height: 12px;
    border: 1px solid #707070;
    border-radius: 50%;
    background-color: var(--color-sky-blue);
}

/*
:is(article, .editor-styles-wrapper) table{
    min-width: 840px;
    border-collapse: collapse;
    border: 1px solid var(--color-black);
}
:is(article, .editor-styles-wrapper) table thead{
    background-color: var(--color-sky-blue);
    border-bottom-width: 1px !important;
}
:is(article, .editor-styles-wrapper) table th{
    color: var(--color-white);
    font-size: 18px;
    padding-block: 14px !important;
    border: 1px solid var(--color-black) !important;
}
:is(article, .editor-styles-wrapper) table th:first-child{
    width: 33.3333%;
    min-width: 280px;
}
:is(article, .editor-styles-wrapper) table tr{
    border: 1px solid var(--color-black) !important;
}
:is(article, .editor-styles-wrapper) table td{
    background-color: var(--color-white);
    text-align: center;
    font-size: 15px;
    font-weight: var(--font-weight-medium);
    padding-block: 14px !important;
    border: 1px solid var(--color-black) !important;
}
:is(article, .editor-styles-wrapper) table td:first-child{
    background-color: var(--color-light-blue);
    width: 33.3333%;
    min-width: 280px;
}
*/

:is(article, .editor-styles-wrapper) table{
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--color-black);
    table-layout: fixed;
}
@media (min-width: 768px) {
    :is(article, .editor-styles-wrapper) table{
        min-width: 840px;
    }
}
:is(article, .editor-styles-wrapper) table thead{
    background-color: var(--color-sky-blue);
    border-bottom-width: 1px !important;
}
:is(article, .editor-styles-wrapper) table th{
    color: var(--color-white);
    font-size: 18px;
    padding-block: 14px !important;
    border: 1px solid var(--color-black) !important;
}
:is(article, .editor-styles-wrapper) table th:first-child{
    width: 33.3333%;
}
:is(article, .editor-styles-wrapper) table tr{
    border: 1px solid var(--color-black) !important;
}
:is(article, .editor-styles-wrapper) table td{
    background-color: var(--color-white);
    text-align: center;
    font-size: 15px;
    font-weight: var(--font-weight-medium);
    padding-block: 14px !important;
    border: 1px solid var(--color-black) !important;
}
:is(article, .editor-styles-wrapper) table td:first-child{
    background-color: var(--color-light-blue);
    width: 33.3333%;
}
@media (min-width: 768px) {
    :is(article, .editor-styles-wrapper) table th:first-child,
    :is(article, .editor-styles-wrapper) table td:first-child{
        min-width: 280px;
    }
}

/* 記事本文内のボタン(core/button)は、サイト共通のピンクの丸型デフォルト
   （.wp-block-button:not(.is-style-outline) .wp-block-button__link）をそのまま使う。
   article専用のスタイル指定はここでは行わない。 */

.arrow-down{
    align-self: center;
    width: 0;
    height: 0;
    border-top: 30px solid var(--color-sky-blue);
    border-left: 35px solid transparent;
    border-right: 35px solid transparent;
}

.flow-charts{
    margin-bottom: calc(var(--spacing) * 4);
}
@media (min-width: 768px) {
    .flow-charts{
        margin-bottom: calc(var(--spacing) * 8);
    }
}
/* .flow-chart：矢印分の余白を自身のmarginで確保し、::afterで矢印を自動生成する。
   矢印はカードの外側（margin部分）に絶対配置で表示するため、手動でarrow-downブロックを
   挟む必要がない（最後のカードには表示しない）。 */
.flow-chart{
    position: relative;
    margin-bottom: 76px;
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    padding: 16px;
}
.flow-chart:last-child{
    margin-bottom: 0;
}
.flow-chart:not(:last-child)::after{
    content: "";
    position: absolute;
    left: 50%;
    bottom: -60px;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-top: 30px solid var(--color-sky-blue);
    border-left: 35px solid transparent;
    border-right: 35px solid transparent;
}
.flow-chart > .wp-block-group__inner-container,
.image-caption > .wp-block-group__inner-container{
    display: flex;
    flex-direction: column;
    gap: calc(var(--spacing) * 2);
}
@media (min-width: 768px) {
    .flow-chart > .wp-block-group__inner-container{
        gap: calc(var(--spacing) * 4);
    }
}
/* ページ内リンク（アンカーリンク）をスムーズスクロールにし、
   固定ヘッダー分の高さ(96px。メインビジュアルの高さ計算と同じ値)を考慮してずらす */
@media (prefers-reduced-motion: no-preference) {
    html{
        scroll-behavior: smooth;
    }
}
html{
    scroll-padding-top: 96px;
}

/* SPでは.c-container/.c-fluid-containerの左右余白を16pxに詰める。
   --_container-margin-left/rightは.c-container自身に定義されているため、
   同じセレクタで上書きする（no_container/no_container_spの計算にも使うため連動する） */
@media (max-width: 1023px) {
    .c-container,
    .c-fluid-container{
        --_container-margin-left: 16px;
        --_container-margin-right: 16px;
    }
}

/* 背景色付き要素(.has-background)のpaddingを16pxに統一。
   段落・グループなど、背景色を設定した全てのブロックに影響するサイト全体の設定。 */
.has-background{
    padding-inline: 16px;
    border-radius: var(--radius-lg);
}

/* Buttons（複数ボタン）ブロックをPC3列・SP1列（幅100%）で並べたいときに使うクラス。
   flexのflex-basisだと文字数の多いボタンが指定幅を無視してしまうため、
   top_medical_tagsと同じ考え方でgridを使う。
   Buttonsブロックの「追加CSSクラス」にgrid_pc3_sp1を付けて使う。 */
.grid_pc3_sp1.smb-buttons{
    display: grid;
    grid-template-columns: 1fr;
}
.grid_pc3_sp1.smb-buttons > .smb-btn-wrapper{
    width: 100%;
}
@media (min-width: 1024px) {
    .grid_pc3_sp1.smb-buttons{
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Box（ボックス）ブロックの背景色をホバー時にlight-blue（薄い水色）へ切り替える汎用クラス。
   通常時は濃い水色(sky-blue)のまま、ホバー時だけ薄い水色に変える。
   実際の背景色はBox自体(--smb-box--background-color)ではなく、中の
   Flexブロックに付くWordPress標準の背景色クラス(has-background、
   例: has-sky-blue-background-color)で付いていることが多いため、
   子孫の.has-backgroundを対象にする。標準の背景色クラスは!important付きの
   ため、こちらも!importantで上書きする。Boxブロックの「追加CSSクラス」に
   付けて使う。 */
.hover_fill_sky .has-background{
    transition: background-color .3s, color .3s;
}
.hover_fill_sky .has-background *{
    transition: color .3s;
}
@media (any-hover: hover) {
    .hover_fill_sky.smb-box:hover .has-background{
        background-color: var(--color-light-blue) !important;
    }
    .hover_fill_sky.smb-box:hover .has-background *{
        color: var(--color-header-blue) !important;
    }
}

/* コンテンツとフッターの間に余白を入れる */
.l-contents{
    margin-bottom: calc(var(--spacing) * 24);
}
@media (min-width: 1024px) {
    .l-contents{
        margin-bottom: calc(var(--spacing) * 48);
    }
}

/* ニュース投稿単体の「お知らせ一覧に戻る」ボタン */
.news-back-btn{
    display: flex;
    justify-content: center;
    margin-top: 2rem;
}
.news-back-btn .smb-btn{
    text-decoration: none;
}

/* ページネーション：現在ページの背景色をティールに */
.c-pagination__item{
    background-color: var(--color-teal);
}
.c-pagination__item-link:hover,
.c-pagination__item-link:focus-visible{
    background-color: var(--color-teal);
    color: var(--color-white);
}

.image-caption figure,
.wp-block-column figure{
    margin: 0;
}