@charset "UTF-8";
/*
    Template: swell
    Theme Name: LOFIR-DEV-DENT
    Theme URI:
    Description:
    Version: 0.6
    Author:
    Author URI:

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ============================================================
   目次
   01. ベース（全体設定・アニメーション）
   02. SWELL・ブロック標準の調整
   03. ヘッダー／フッター／固定UI
   04. 共通パーツ（見出し・帯・カード・リスト・ボタン）
   05. TOPページ
   06. 下層ページ（診療科・症状・お問い合わせ・カレンダー）
   07. その他

   ブレークポイント方針:
   - SP = 961px（各セクション末尾の「レスポンシブまとめ」に集約）／598pxも同様
   - 1200/1290/1920px等の単発は特定コンポーネントの中間幅対策 → 該当ルール直下に置く
   ============================================================ */
/* ============================================================
   01. ベース
   ============================================================ */
/* 色設定
メインカラー（）：
キーカラー（）：
薄色（青系）：#F0F9FD（= var(--c-bg-light)）
薄色（グレー）：#F8F8F8
*/
/* 全体調整 */

body {
    font-feature-settings: "palt" 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
}

/* ---------- アニメーション ---------- */

@keyframes vertical {
    0% {
        transform:translateY( -10px);
    }

    100% {
        transform:translateY( 0px);
    }
}

@keyframes horizontal {
    0% {
        transform:translateX( -10px);
    }

    100% {
        transform:translateX( 0px);
    }
}

@keyframes yurayura {
    0% {
        transform:translateY( -15px) rotate( -10deg);
    }

    100% {
        transform:translateY ( 0px) rotate( 5deg);
    }
}

@keyframes bgiLoop {
    0% {
        background-position: 0 0;
    }

    100% {
        background-position: 1920px 3000px;
    }
}

/* 無限ループアニメーション */
@keyframes infinite-loop {
    to {
        transform: translateX(-100%);
    }
}

@keyframes circle-spin {
    to {
        transform: rotate(1turn);
    }
}

/* ---------- 共通スタイル---------- */
/* ===== セクション余白パターン（共通土台＋変数）=====
①.sct_center 左右余白 / ②.sct_right 右ブリード / ③.sct_left 左ブリード / ④.sct_right.--wide 左タイトル */
:root,
body {
    --sct-maxw: 1728px;
    --sct-inner: 1376px; /* セクション全体の最大幅 */
    --sct-inner-pad: 50px; /* 中身ラッパの最大幅 */
    --sct-pad: 96px; /* セクション外側の左右余白（PC96 → tab50 → SP10。値の切替は下の@mediaで）*/
    --sct-radius: 20px;
    --c-main: #1075ae; /* --- 色（ブランドカラー一元管理） --- */
    --c-deep: #1c758a; /* メイン青（見出し・リンク・ボタン線） */
    --c-ink: #28373b; /* 濃青緑 */
    --c-muted: #8e9fa5; /* テキスト濃色 */
    --c-sky: #7ebfe0; /* 注記グレー */
    --c-pale: #bce6ec; /* EN見出しの水色 */
    --c-bg-blue: #eaf6fb; /* 淡水色 */
    --c-bg-light: #f0f9fd; /* 背景 淡青 */
    --c-amber: #d29b5b; /* アクセント茶 */
     --shadow-card: 16px 16px 0 rgba(206, 224, 230, 0.3);/* カード共通の影（PC16/SP8=下の@mediaで上書き）。icon-card/nb-cardは自動付与、単発は .card-shadow を付与 */
}

/* ---------- .sct_* 外側余白のブレークポイント切替--------- */
@media screen and (max-width: 1280px) {
    :root,
    body {
        --sct-pad: 50px;
    }
}

@media screen and (max-width: 961px) {
    :root,
    body {
        --sct-pad: 10px;
        --sct-inner-pad: 15px;
        --shadow-card: 8px 8px 0 rgba(206, 224, 230, 0.3);
    }
}

/* ---------- 背景付きブロックの基本形（has-background系） ---------- */
p.has-background.section_title {
    padding: 0 12px;
}

.has-background.feature-card__title {
    font-size: clamp(calc(24px * 0.7), calc(100vw * 24 / 1920), 24px);
    font-weight: 700;
    line-height: 180%;
    letter-spacing: 0.04em;
    padding: 4px 16px;
    border-radius: 6px;
    width: fit-content;
    margin-inline: auto;
}

/* SWELLのh3見出しデザイン*/
.post_content h3.feature-card__title::before {
    content: none;
}

/* カード内小見出し*/
.post_content h3.card-ttl {
    margin-top: 0;
    margin-bottom: 1.5em;
    padding: 0 16px;
    border-left: solid 2px var(--color_htag);
    font-size: 1.05em;
}

/* SWELLのh3見出しデザイン*/
.post_content h3.card-ttl::before {
    content: none;
}

@media (min-width: 600px) {
    .post_content h3.card-ttl {
        font-size: 1.2em;
    }
}

p.has-background.section_heading--ja {
    margin-top: 66.75px;
    font-size: 24px;
    font-weight: 700;
    line-height: 180%;
    letter-spacing: 0.04em;
    display: flex;
    padding: 4px 16px;
    justify-content: center;
    align-items: center;
    border-radius: 6px;
    width: fit-content;
    margin-inline: auto;
}

@media screen and (max-width: 961px) {
    p.has-background.section_heading--ja {
        font-size: 17px;
        line-height: 160%;
        letter-spacing: 0.08em;
        margin-top: 58.75px;
    }
}

div.has-background.table01 {
    border-radius: 6px;
    padding-block: 6px;
}

ul.has-background.list01 {
    list-style: none;
    padding-left: 40px;
    border-radius: 6px;
}

#feature .has-background.feature-card__title {
    width: 100%;
    text-align: center;
    padding-block: 8px;
}

p.has-background.guide_title {
    padding: 4px 16px;
    font-size: 20px;
    font-weight: 700;
    line-height: 160%;
    letter-spacing: 0.04em;
    border-radius: 4px;
    width: fit-content;
    margin-inline: auto;
}

div.has-background.step-card {
    padding: 20px 30px;
}

/* ---------- ヘッダー電話・お問い合わせ ---------- */
ul.head_tel_inner {
    color: var(--color_deep01);
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: flex-start;
    list-style: none;
    padding-left: 0;
}

li.head_tel_tel {
    padding-left: 0.5em;
    font-size: clamp(calc(40px * 0.7), calc(100vw * 40 / 1920), 40px);
    font-family: "Jost", "Noto Sans JP", sans-serif;
    font-weight: 500;
    margin: 0;
    line-height: 140%;
    letter-spacing: 0.1em;
}

/* 共通フッター */
@media screen and (max-width: 598px) {
    ul.footer_nav.swell-block-linkList.-flex .swell-block-linkList__item {
        width: calc(50% - 0.5em);
    }
}

div.has-background.contact_box {
    padding-inline: 8%;
    border-radius: 20px;
}

div.has-background.btn_contact {
    padding: 20px;
    min-height: 130px;
}

div.has-background.btn_contact.--small {
    padding: 15px 80px;
    min-height: unset;
}

input[name="submitBack"] {
    background: #FFF;
    border: 1px solid var(--color_main);
    color: var(--color_main);
    margin-top: 0;
}

input[name="submitBack"]:hover {
    background: #dedede;
    border: 1px solid var(--color_main);
    color: var(--color_main);
}

/* ===== department（診療案内）セクション ===== */
@media screen and (max-width: 1110px) {
    div.has-background.icon-card__body {
        padding: 10px;
    }
}
@media screen and (max-width: 961px) {
    div.has-background.icon-card__body {
        padding-inline: 4px;
    }
}

/* ===== 「当院で行っている矯正治療」：1つの色付きセクション内で各治療法を子要素として見せる ===== */
/* 治療法見出し（H3）：左アクセントバーで親(H2)の子だと示す。EN透かしは親のみ。上マージンで各治療法を分離 */
.method-ttl {
    font-size: 22px;
    line-height: 1.5;
    font-weight: 700;
    color: var(--c-main);
    border-left: 5px solid var(--c-main);
    padding-left: 16px;
    margin-top: 2.8em;
    margin-bottom: 1em;
}
/* 「当院オリジナル」バッジ（ディスタルムーバー用） */
.method-badge {
    display: inline-block;
    margin-left: 10px;
    padding: 3px 12px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.6;
    color: #fff;
    background: var(--c-main);
    border-radius: 999px;
    vertical-align: middle;
    white-space: nowrap;
}
@media screen and (max-width: 599px) {
    .method-ttl {
        font-size: 19px;
        padding-left: 12px;
        margin-top: 2.2em;
    }
    .method-badge {
        display: block;
        width: fit-content;
        margin-left: 0;
        margin-top: 6px;
    }
}

/* ===== 症例紹介ページの「症例一覧（目次）」ボックスメニュー風（アイコンなし） ===== */
.case-index {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    list-style: none;
    padding-left: 0;
    margin-block: 0.8em 0;
}
.case-index li {
    margin: 0;
}
.case-index li::before {
    content: none;
}
/* 各項目＝白いボックス＋右矢印。ホバーでブランド色に反転 */
.case-index a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 13px 18px;
    background: #fff;
    border: 1px solid #cfe3ea;
    border-radius: 8px;
    color: #3a5560;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(16, 117, 174, 0.06);
    transition: background-color 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
}
/* 右向きシェブロン（›）をCSSで描画 */
.case-index a::after {
    content: "";
    flex-shrink: 0;
    width: 7px;
    height: 7px;
    border-top: 2px solid var(--c-main);
    border-right: 2px solid var(--c-main);
    transform: rotate(45deg);
    transition: border-color 0.2s, transform 0.2s;
}
.case-index a:hover {
    background: var(--c-main);
    border-color: var(--c-main);
    color: #fff;
    box-shadow: 0 3px 8px rgba(16, 117, 174, 0.2);
}
.case-index a:hover::after {
    border-color: #fff;
    transform: rotate(45deg) translate(2px, -2px);
}
/* アンカー先が固定ヘッダーに隠れないよう余白確保 */
.card-ttl[id] {
    scroll-margin-top: 110px;
}
@media screen and (max-width: 599px) {
    .case-index a {
        font-size: 14px;
        padding: 11px 15px;
    }
}

/* ---------- ページ状態（メニュー開閉・症状ページ） ---------- */
body.menu-open {
    overflow: hidden;
}

body:has(.symptom-page) .l-topTitleArea,
body:has(.symptom-page) .c-pageTitle,
body:has(.symptom-page) .p-breadcrumb,
body:has(.symptom-page) .l-header,
body:has(.symptom-page) .w-beforeFooter,
body:has(.symptom-page) .l-footer,
body:has(.symptom-page) .hamburger-overlay,
body:has(.symptom-page) .float_btn {
    display: none;
}

body:has(.symptom-page) .symptom-page {
    min-height: 100vh;
}

/* ============================================================
   下層：診療ページ 共通パーツ
   ============================================================ */
/* 見出し*/
.has-background.bgcolor-title,
.has-background.bgcolor-title--left {
    padding: 4px 16px;
    font-weight: 700;
    line-height: 160%;
    letter-spacing: 0.04em;
    border-radius: 4px;
    width: fit-content;
}

.has-background.bgcolor-title {
    margin-inline: auto;
}

/* ============================================================
   02. SWELL・ブロック調整
   ============================================================ */
/* ---------- レイアウト・余白調整 ---------- */
.w-beforeFooter {
    margin: 0 auto;
}

.wp-block-group__inner-container .h1-ja {
    margin-bottom: clamp(calc(48px * 0.3), calc(100vw * 48 / 1920), 48px);
}

@media screen and (max-width: 1290px) {
    .wp-block-group__inner-container .h1-ja {
        margin-bottom: clamp(calc(20px * 0.3), calc(100vw * 20 / 1290), 20px);
    }
}

.p-blogParts[data-partsid="6120"] {
    margin-top: clamp(calc(100px * 0.3), calc(100vw * 100 / 1920), 100px);
    margin-left: clamp(calc(40px * 0.3), calc(100vw * 40 / 1920), 40px);
}

@media screen and (max-width: 1290px) {
    .p-blogParts[data-partsid="6120"] {
        margin-top: clamp(calc(50px * 0.3), calc(100vw * 50 / 1290), 50px);
    }
}

/* 大切なお知らせ */
.p-blogParts[data-partsid="6153"] {
    margin-top: -30px;
}

.post_content.p-blogParts[data-partsid="6153"] div>:first-child {
    margin-top: unset;
}

/* トップページ バナーエリア */
@media screen and (max-width: 598px) {
    .jc-center .swell-block-columns__inner {
        justify-content: center;
    }
}

.wp-block-group__inner-container .section_title {
    margin-bottom: 16px;
}

.swell-block-column figure img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

/* POINT */
.wp-block-group.is-row.feature-cards {
    justify-content: center;
    align-items: stretch;
    column-gap: 70px;
    margin-top: 120px;
    flex-wrap: wrap;
}

@media screen and (max-width: 1220px) {
    .wp-block-group.is-row.feature-cards {
        flex-wrap: wrap;
        justify-content: center;
        margin-top: 50px;
        row-gap: 65px;
    }

    .section_container {
        margin-top: 73px;
    }
}

.wp-block-group.is-row.feature-card__thumb {
    flex-direction: column;
    align-items: center;
}

/* ---------- 下層タイトル帯・パンくず ---------- */
/* ---------- 下層ページ ---------- */
.l-topTitleArea {
    width: 95.8%;
    margin-inline: auto;
    aspect-ratio: 460 / 577;
    object-fit: cover;
    margin-top: clamp(calc(100px * 0.8), calc(100vw * 100 / 480), 100px);
    overflow: visible;
    position: relative;
    border-radius: 20px;
}

.l-topTitleArea::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: 20px;
    background: linear-gradient(46deg, rgba(165, 208, 225, 0.00) 73.48%, rgba(165, 208, 225, 0.24) 94.02%), linear-gradient(0deg, rgba(247, 253, 255, 0.00) 61.17%, #F7FDFF 97.55%), linear-gradient(200deg, rgba(165, 208, 225, 0.00) 77.24%, rgba(165, 208, 225, 0.80) 97.8%), linear-gradient(180deg, rgba(207, 232, 240, 0.00) 61.03%, rgba(193, 219, 227, 0.80) 97.57%) no-repeat;
}

.l-topTitleArea img {
    border-radius: 20px;
}

.l-topTitleArea__body {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding-inline: 0;
    overflow: visible;
}

.c-pageTitle {
    color: var(--color_deep04);
    font-size: clamp(calc(24px * 0.7), calc(100vw * 24 / 460), 32px);
    font-weight: 500;
    letter-spacing: 0.96px;
    position: relative;
    padding-top: 60px;
}

.c-pageTitle__subTitle {
    font-family: "Josefin Sans";
    font-size: 80px;
    font-size: clamp(calc(80px * 0.7), calc(100vw * 80 / 460), 120px);
    font-weight: 200;
    font-style: normal;
    letter-spacing: 6px;
    white-space: nowrap;
    text-transform: uppercase;
    mix-blend-mode: multiply;
    background: linear-gradient( 90deg, var(--c-sky) 30%, rgba(126,191,224,.3) 70%, rgba(126,191,224,0) 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-left: 0;
    position: absolute;
    top: clamp(-200px, calc(100vw * -60 / 460), 0px);
    left: 0;
    width: 100%;
}

/* ブログ・お知らせ等の一覧（アーカイブ）ではENサブ（CATEGORY等）を出さない */
.archive .c-pageTitle__subTitle {
    display: none;
}

@media screen and (min-width: 690px) {
    .c-pageTitle {
        padding-top: 30px;
    }
    .c-pageTitle__subTitle {
        top: -90px;
        white-space: normal;
        line-height: 1;
    }
}

.l-topTitleArea+.p-breadcrumb {
    margin-top: 38px;
}

.p-breadcrumb__text .__home:before {
    content: none;
}

.p-breadcrumb__list {
    background-color: var(--color_pale04);
    padding-block: 8px;
}

/* パンくず帯は白ベタ（SWELLの-bg-onグラデ・影を無効化） */
.p-breadcrumb.-bg-on {
    background: #fff;
}

.-body-solid .p-breadcrumb.-bg-on {
    box-shadow: none;
}

@media screen and (min-width: 961px) {
    .l-topTitleArea {
        width: calc(100vw - 60px);
        aspect-ratio: 1230 / 880;
        aspect-ratio: 1230 / 300;
        height: auto;
        object-fit: cover;
        max-height: 880px;
    }
}

/* ---------- ボタン・ホバー調整 ---------- */
#feature .is-style-btn_line a:hover {
    color: var(--color_deep01) !important;
}

.swell-block-column:nth-child(even) .guide_title {
    transform: translateY(55px);
}

.l-container {
    max-width: unset;
}

.is-style-btn_line.btn_white .swell-block-button__link:hover {
    transform: translate(4px, 4px);
    box-shadow: none;
    border: 1px solid var(--color_deep01);
    color: var(--color_deep01) !important;
    background-color: #fff;
}

.c-widget__title.-spmenu {
    display: none;
}

/* CSS背景 */
/* ボタン */
.is-style-btn_normal a:hover {
    background: #FFF;
    color: var(--color_main);
    transition: 0.3s;
}

.swell-block-box-menu.is-style-default .swell-block-box-menu__item.mv_btn {
    border-radius: 8px;
    border-block: 1px solid var(--color_main);
    border-right: 1px solid var(--color_main);
    background-color: rgba(255, 255, 255, 0.70);
    backdrop-filter: blur(15px);
    max-width: clamp(calc(274px * 0.7), calc(100vw * 274 / 1920), 274px);
    min-height: clamp(calc(58px * 0.7), calc(100vw * 58 / 1920), 58px);
    padding-block: clamp(calc(16px * 0.7), calc(100vw * 16 / 1920), 16px);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.is-style-btn_line.btn_small-arrow a:hover {
    background-color: transparent;
    color: var(--the-btn-color, var(--color_main)) !important;
    opacity: 0.7;
}

/* 白テキストはホバーでも白のまま */
.is-style-btn_line.btn_small-arrow a.has-white-color:hover {
    color: #fff !important;
}

/* --blue（メインカラー文字）はホバーでも var(--c-main) のまま */
.btn_small-arrow.--blue.is-style-btn_line a:hover {
    color: var(--c-main) !important;
}

.is-style-btn_line.btn_small-arrow a:hover .swl-inline-icon {
    transform: translate(4px, 4px);
    box-shadow: none;
}

.is-style-btn_line.btn_small-arrow.--plain a:hover .swl-inline-icon {
    transform: none;
}

/* ---------- 投稿コンテンツ・ブログパーツ ---------- */
.post_content h2 {
    border-radius: 0 1em 1em 0;
}

.has-swl-main-thin-background-color {
    border-radius: 1em;
    padding: 0.25em 0.5em;
}

/* 記事一覧 */
.p-postList__meta {
    font-size: 14px;
    font-weight: bold;
}

.post_content .td_to_th_.contact_form tbody tr>:first-child {
    padding-right: 4em;
}

.swell-block-button.float_btn01 .swell-block-button__link[data-has-icon] {
    gap: 0;
    margin-right: -14px;
    min-width: 84px;
}

.swell-block-button.float_btn01 .__icon:not(.-right) {
    margin-left: 0;
}

.swell-block-button.float_btn01 .__icon {
    font-size: 24px;
}

.p-blogParts[data-partsid="6150"] {
    position: absolute;
    top: 130px;
    left: 50%;
    transform: translateX(-50%);
    pointer-events: none;
}

@media screen and (min-width: 599px) {
    .float_btn:has(.float_btn02 a:hover) .swell-block-button.float_btn02,
    .float_btn:has(.float_btn02 a:hover) .p-blogParts[data-partsid="6150"] {
        opacity: 0.7;
    }
}

.swell-block-button.is-style-btn_normal.float_btn02 a {
    color: var(--color_text);
    font-size: 20px;
    font-weight: 700;
    border-top: 2px solid var(--color_pale01);
    border-bottom: 2px solid var(--color_pale01);
    border-left: 2px solid var(--color_pale01);
    box-shadow: none;
}

/* --- レスポンシブまとめ --- */
@media screen and (max-width: 961px) {
    .p-blogParts[data-partsid="6120"] {
        margin-top: clamp(calc(18px * 0.3), calc(100vw * 18 / 480), 18px);
        margin-right: clamp(calc(10px * 0.3), calc(100vw * 10 / 480), 10px);
        margin-left: 0;
    }

    .p-blogParts[data-partsid="6120"] .wp-block-group.is-row {
        justify-content: flex-end;
    }

    .wp-block-group__inner-container .section_title {
        margin-bottom: 6px;
    }

    .swell-block-box-menu.is-style-default .swell-block-box-menu__item.mv_btn {
        border-block: 0.5px solid var(--color_main);
        border-right: 0.5px solid var(--color_main);
        min-height: clamp(calc(38px * 0.7), calc(100vw * 38 / 480), 38px);
        padding-block: clamp(calc(5px * 0.7), calc(100vw * 6 / 480), 5px);
        background-color: #fff;
        position: relative;
        z-index: 15;
    }
}

/* ============================================================
   03. ヘッダー/フッター/固定UI
   ============================================================ */
/* ページ内リンクの位置ズレ調整*/
@media screen and (min-width: 960px) {
    .l-fixHeader {
        height: 122px;
        z-index: 0;
        transform: none !important;
        box-shadow: none !important;
        transition: none !important;
        pointer-events: none !important;
    }

    .l-fixHeader__inner {
        display: none;
    }
}

/* ---------- ヘッダー ---------- */
.l-header__inner {
    padding-top: 15px;
    padding-inline: clamp(calc(70px * 0.7), calc(100vw * 70 / 1920), 70px);
    padding-bottom: clamp(calc(35px * 0.7), calc(100vw * 35 / 1920), 35px);
}

.w-header {
    background-color: #FFF;
}

.c-iconBtn {
    background-color: transparent;
}

.head_tel_desc {
    text-align: left;
    margin-bottom: 0;
    font-size: 20px;
}

.head_tel_icon i {
    font-size: 1.5em;
    transform: rotate(-45deg);
}

.head_tel_tel a {
    text-decoration: none;
    white-space: nowrap;
}

.header_container {
    display: flex;
    gap: 56px;
    align-items: center;
    justify-content: flex-end;
}

.header_container > .p-blogParts[data-partsid="6937"] {
    display: contents;
}

.menu_button {
    display: flex;
    flex-direction: column;
    align-items: center;
    align-self: center;
    cursor: pointer;
    margin-top: 25px;
}

.menu_hamburger {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.menu_hamburger span {
    display: block;
    width: 70px;
    height: 4px;
    border-radius: 2px;
    background-color: var(--color_main);
}

.menu_label {
    margin-top: 20px;
    font-size: 24px;
    font-family: "Jost", "Noto Sans JP", sans-serif;
    font-weight: 400;
    letter-spacing: 0.2em;
    color: var(--color_main);
    text-transform: uppercase;
}

.c-gnav>.menu-item>a .ttl {
    font-size: 20px;
}

.btn_contact {
    border-radius: 20px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* ---------- 追従ボトムメニュー（SP） ---------- */
/* スマホ用固定フッター */
#fix_bottom_menu {
    box-shadow: none;
    transform: translateY(140%);
    transition: transform 0.3s ease-in-out;
}

#fix_bottom_menu.show {
    transform: translateY(0);
}

#fix_bottom_menu .menu_list {
    padding: 0;
    margin-inline: 10px;
    border: 1px solid var(--color_pale02);
    border-radius: 8px;
    height: clamp(calc(80px * 0.7), calc(100vw * 80 / 480), 80px);
    background-color: #fff;
    position: relative;
}

#fix_bottom_menu .menu-item {
    flex: unset;
    height: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-inline: 5px;
    position: relative;
}

#fix_bottom_menu .fix_bottom_menu.--reserve {
    width: 34.78%;
}

#fix_bottom_menu .fix_bottom_menu.--tel {
    width: 43.47%;
}

#fix_bottom_menu .fix_bottom_menu.--hours {
    width: 21.73%;
    background-color: var(--color_deep03);
    border-radius: 0 8px 8px 0;
}

#fix_bottom_menu .menu-item a {
    padding-block: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#fix_bottom_menu span {
    font-weight: 500;
    line-height: 100%;
    letter-spacing: 0.04em;
    width: unset;
}

#fix_bottom_menu .fix_bottom_menu.--reserve span {
    font-size: clamp(calc(16px * 0.7), calc(100vw * 16 / 480), 16px);
    width: fit-content;
}

#fix_bottom_menu .fix_bottom_menu.--tel span {
    font-size: clamp(calc(18px * 0.7), calc(100vw * 18 / 480), 18px);
    font-family: "Jost", "Noto Sans JP", sans-serif;
    font-weight: 400;
    letter-spacing: 0.08em;
    width: fit-content;
}

#fix_bottom_menu .fix_bottom_menu i::before {
    color: var(--color_deep01);
}

#fix_bottom_menu .menu-item i {
    font-size: clamp(calc(20px * 0.8), calc(100vw * 20 / 480), 20px);
}

#fix_bottom_menu .fix_bottom_menu.--hours span {
    font-size: clamp(calc(14px * 0.7), calc(100vw * 14 / 480), 14px);
    line-height: 110%;
}

#fix_bottom_menu .menu_list li:first-child:after {
    content: '';
    border-left: 2px solid var(--color_pale02);
    height: 37.5%;
    position: absolute;
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
}

#fix_bottom_menu .fix_bottom_menu.--reserve a,
#fix_bottom_menu .fix_bottom_menu.--tel a {
    display: flex;
    gap: clamp(calc(8px * 0.7), calc(100vw * 8 / 480), 8px);
    align-items: baseline;
}

#fix_bottom_menu .fix_bottom_menu.--hours a {
    display: block;
}

/* 「24時間」バッジ：予約ボタン(.--reserve = li:first-child)の ::before で描画。
   旧実装は空<a href="">だけの疑似メニュー項目(.buttom_24icon)で、リンク名なし＝ユーザー補助スコアを下げていたため疑似要素へ移設。
   ※ li:first-child の ::after は区切り線で使用済みのため ::before を使う。SVGは2色(円/尻尾=メインカラー・文字=白)でmask不可のため、色を焼き込んだSVGをbackgroundで表示。 */
#fix_bottom_menu .fix_bottom_menu.--reserve::before {
    content: '';
    position: absolute;
    top: -20.5px;
    left: -4px;
    width: 38px;
    height: 41px;
    background: url('assets/img/badge-24h.svg') center/contain no-repeat;
    pointer-events: none;
    z-index: 1;
}

/* 旧「24時間」疑似メニュー項目は非表示（中身は空<a href="">）。
   ↑の::beforeに移設済み。外観→メニューから menu-item-6538 を削除すればa11y警告(リンク名なし)も消える。削除後はこのルールも不要。 */
#fix_bottom_menu .buttom_24icon {
    display: none;
}

/* ---------- SPメニュー（SWELL標準） ---------- */
/* スマホ用メニュー */
.p-spMenu__inner {
    background-color: var(--color_main);
    color: #FFF;
    padding-top: 0;
    width: 100vw;
}

.p-spMenu__inner::before {
    background: transparent;
}

.p-spMenu__body {
    padding: 0;
    width: 100vw;
}

.p-spMenu__nav {
    align-items: center;
    display: flex;
    height: 100%;
    justify-content: center;
    position: absolute;
    width: 100%;
}

.c-listMenu a {
    border-bottom:1px dashed var(--color_border);
    font-family: sans-serif;
}

.c-listMenu li:first-child a {
    border-bottom: none;
}

.c-listMenu li:nth-child(2) a {
    border-top:1px dashed var(--color_border);
}

.c-gnav .sub-menu a:before,
.c-listMenu a:before {
    content: none;
}

.c-listMenu>li>a>span {
    font-size: 1.05em;
    margin-left: 2em;
}

.spMenu_sns_wrap {
    padding: 0.5em !important;
    bottom: 0;
    position: absolute;
    width: 100%;
}

[data-spmenu=closed] .p-spMenu {
    transition-delay: 0.3s;
}

/* ---------- フロートボタン ---------- */
.float_btn {
    position: fixed;
    right: 0;
    top: 46%;
    z-index: 99999;
}

.float_btn a {
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    text-orientation: upright;
    border-radius: 8px 0 0 8px;
}

.float_btn a span {
    text-align: center;
}

.float_btn01 {
    position: relative;
}

.float_icon {
    position: absolute;
    top: -35px;
    left: -27px;
    width: 65px;
    aspect-ratio: 1;
    z-index: 10;
    color: var(--color_deep02);
    transform: rotate(-5deg);
}

[class*="is-style-btn_"].float_btn01 a {
    padding: 30px;
}

.float_btn02 {
    position: relative;
}

.float_btn02 span {
    margin-top: 80px;
}

[class*="is-style-btn_"].float_btn02 a {
    background: #fff;
}

@media screen and (max-width: 599px) {
    .float_btn {
        top: auto;
        right: auto;
        left: 10px;
        bottom: 80px;
    }

    .float_btn .blue_,
    .float_btn .float_icon {
        display: none;
    }

    .float_btn > .wp-block-group__inner-container {
        display: flex;
        align-items: center;
        gap: 6px;
        background: #fff;
        border: 1px solid #bee2ef;
        border-radius: 6px;
        padding: 10px 16px;
        box-shadow: 4px 4px 0 rgba(206, 224, 230, 0.5);
    }

    .float_btn .swell-block-button,
    .float_btn .p-blogParts,
    .float_btn .p-blogParts .wp-block-group,
    .float_btn .p-blogParts .wp-block-group__inner-container {
        margin: 0;
        padding: 0;
    }

    .float_btn .p-blogParts[data-partsid="6150"] {
        position: static;
        order: -1;
        transform: none;
    }

    .float_btn .p-blogParts[data-partsid="6150"] svg {
        display: block;
        width: 44px;
        height: 44px;
    }

    .swell-block-button[class*="is-style-btn_"].float_btn02 a {
        writing-mode: horizontal-tb;
        text-orientation: mixed;
        background: transparent;
        border: none;
        box-shadow: none;
        padding: 0;
        min-width: unset;
        border-radius: 0;
        position: static;
    }

    .float_btn > .wp-block-group__inner-container {
        position: relative;
    }

    .float_btn > .wp-block-group__inner-container:hover {
        opacity: 0.7;
    }

    .float_btn .swell-block-button.float_btn02 {
        position: static;
    }

    .float_btn .float_btn02 a::after {
        content: "";
        position: absolute;
        inset: 0;
    }

    .float_btn02 span {
        margin-top: 0;
        font-size: 18px;
        font-weight: 700;
        letter-spacing: 0.05em;
        color: var(--c-ink);
        white-space: nowrap;
    }
}

#pagetop {
    display: none !important;
}

/* --- レスポンシブまとめ --- */
@media screen and (max-width: 961px) {
    .l-header__inner {
        padding: 10px 0 0;
    }

    .w-header {
        display: block !important;
        padding: 10px;
    }

    .l-header__customBtn.sp_,
    .l-header__menuBtn.sp_,
    .p-blogParts[data-partsid="255"] {
        display: none;
    }

    .-img .c-headLogo__link {
        padding-block: 3px;
    }

    .-height-auto .p-mainVisual__textLayer {
        padding-top: 1em;
    }

    .menu_button {
        margin-top: 0px;
        padding-top: 3px;
    }

    .menu_hamburger {
        gap: 5px;
    }

    .menu_hamburger span {
        width: 27px;
        height: 2px;
    }

    .menu_label {
        font-size: 11px;
        margin-top: 4px;
    }

    #fix_bottom_menu {
        bottom: 0 !important;
    }
}

/* ===== メニュー一覧===== */
/* ---------- ハンバーガー内メニューリスト ---------- */
.menu-list {
    max-width: 1470px;
    margin-inline: auto;
    padding-inline: 20px;
}

.menu-block + .menu-block {
    margin-top: 26px;
}

.menu-block > .swell-block-button {
    margin: 0;
}

.menu-block > .swell-block-button.is-style-btn_line a {
    font-size: 16px;
}

.menu-sub {
    list-style: none;
    margin: 14px 0 0;
    padding: 0;
}

.menu-sub li {
    position: relative;
    padding-left: 1.1em;
    margin-top: 9px;
    font-size: 14px;
}

.menu-sub li::before {
    content: "–";
    position: absolute;
    left: 0;
    opacity: .7;
}

.menu-sub li a {
    text-decoration: none;
    color: inherit;
}

.hamburger-overlay .menu-sub li a:hover {
    opacity: 0.7;
}

.menu-sub--2col {
    columns: 2;
    column-gap: 36px;
}

/* --- レスポンシブまとめ --- */
@media screen and (max-width: 961px) {
    .menu-list {
        padding-inline: 10px;
    }

    .menu-sub--2col {
        columns: 1;
    }
}

/* ===== ハンバーガーメニュー===== */
.hamburger-overlay {
    position: fixed;
    inset: 0;
    z-index: 9990;
    overflow-y: auto;
    padding: 32px clamp(20px, 5vw, 80px) 60px;
    background: linear-gradient(160deg, var(--c-bg-blue) 0%, #ffffff 55%, var(--c-bg-blue) 100%);
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease;
}

.hamburger-overlay.is-open {
    opacity: 1;
    visibility: visible;
}

.hamburger-overlay__inner {
    max-width: 1470px;
    margin-inline: auto;
}

.hamburger-overlay__close {
    position: relative;
    width: fit-content;
    cursor: pointer;
    font-weight: 700;
    letter-spacing: .08em;
    padding-top: 30px;
}

.hamburger-overlay__close::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 70px;
    height: 22px;
    background: url('assets/img/menu-close.png') no-repeat center / contain;
}

.hamburger-overlay__bottom {
    max-width: 1320px;
    margin-top: 120px;
    margin-inline: auto;
    padding-inline: 20px;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
}

.hamburger-overlay__bottom > .p-blogParts {
    flex: 1 1 590px;
    max-width: 623px;
    min-width: 0;
}

.hamburger-overlay__bottom .time_table,
.hamburger-overlay__bottom .time_table > table {
    width: 100%;
}

.hamburger-overlay__contact {
    text-align: center;
}

.hamburger-overlay [class*=is-style-btn_] {
    margin-bottom: 0;
}

/* ---------- フッター ---------- */
.footer-menu {
    color: #fff;
}

.footer-menu .menu-sub li::before {
    opacity: .85;
}

/* フッター */
.l-footer__foot {
    padding-block: 4em;
}

.footer-area .swell-block-fullWide__inner,
.l-footer__foot .l-container {
    max-width: 1510px;
    padding-inline: 20px;
    margin-inline: auto;
}

.l-footer__foot .l-container {
    display: flex;
    align-items: flex-end;
    flex-direction: row-reverse;
    justify-content: space-between;
}

.footer-area {
    margin-bottom: 0;
}

.footer-area iframe {
    aspect-ratio: 670 / 680;
    width: 100%;
    height: auto;
    border-radius: 40px;
}

.footer-area .swell-block-fullWide.alignfull {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
}

.footer-menu .menu-block .swell-block-button.is-style-btn_line a {
    color: #fff;
}

.footer-menu .menu-sub li {
    color: #fff;
}

.footer-menu .menu-block .swell-block-button.is-style-btn_line a:hover {
    color: #fff !important;
}

.footer-menu .menu-sub li a:hover {
    color: rgba(255, 255, 255, 0.65);
    text-decoration: none;
}

/* フッター下部ナビ（プライバシーポリシー等）*/
.l-footer__nav a:hover {
    text-decoration: none;
    opacity: 0.7;
}

.l-footer__nav {
    align-items: flex-end;
    gap: 30px;
}

.l-footer__nav .menu-item-7064:first-child a {
    border-left: none;
}

.l-footer__nav .menu-item-7064 a,
.l-footer__nav .menu-item-7065 a {
    border-right: none;
}

.l-footer__nav .menu-item-7065 a {
    font-size: 20px;
    color: var(--color_link);
    background-color: #fff;
    box-shadow: 4px 4px 0 0 rgba(206, 224, 230, 0.50);
    border-radius: 8px;
    padding: 12px 20px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.l-footer__nav .menu-item-7065 a:hover {
    transform: translate(4px, 4px);
    box-shadow: none;
    text-decoration: none;
}

.l-footer__nav .menu-item-7065 a .icon-instagram {
    margin-right: 15px;
}

/* --- レスポンシブまとめ --- */
@media screen and (max-width: 961px) {
    /* 上10px＝ロゴ・閉じるボタンの上に余白 */
    .hamburger-overlay {
        padding: 10px 0 0;
    }

    /* SPのオーバーレイ上段は「閉じる前のヘッダー」と同等サイズに（ユーザー指定）:
       ロゴ=ヘッダーロゴと同じ約179px幅 / 閉じる=MENUボタン(39x34)と同等 / 上段の左右に10px */
    .hamburger-overlay .is-row:has(.hamburger-overlay__close) {
        padding-inline: 10px;
    }

    .hamburger-overlay .is-row:has(.hamburger-overlay__close) .wp-block-image img {
        width: 179px;
        height: auto;
    }

    .hamburger-overlay__close {
        padding-top: 14px;
        font-size: 11px;
        letter-spacing: 0.2em;
        white-space: nowrap;
    }

    .hamburger-overlay__close::before {
        width: 30px;
        height: 9px;
    }

    .hamburger-overlay__bottom {
        padding-inline: 10px;
    }

    /* ハンバーガー / フッター 共通（SP）*/
    .menu-list .swell-block-button__link {
        padding-inline: 0;
    }

    .menu-list .btn_small-arrow.--border .swl-inline-icon {
        border: none;
        background-color: transparent;
        box-shadow: none;
        width: 10px;
        height: 4px;
    }

    .hamburger-overlay__inner .btn_small-arrow.--ruled.is-style-btn_line a {
        color: var(--color_text);
        border-bottom: 1px solid var(--color_pale01);
    }

    .hamburger-overlay__inner .btn_small-arrow.--ruled.is-style-btn_line a:hover {
        color: var(--color_text) !important;
    }

    .l-footer__foot .l-container {
        flex-direction: column;
        max-width: 420px;
        align-items: center;
        row-gap: 40px;
    }

    .footer-area iframe {
        border-radius: 20px;
    }

    .footer-area .p-blogParts[data-partsid="6938"] .swell-block-columns__inner {
        gap: 0;
        max-width: 420px;
        margin-inline: auto;
        justify-content: center;
    }

    .footer-area .p-blogParts[data-partsid="6938"] .swell-block-columns .swell-block-column {
        margin-left: 0;
    }

    .footer-area .p-blogParts[data-partsid="6938"] .btn_small-arrow.--border .swl-inline-icon:after {
        background: #fff;
    }

    .l-footer__nav {
        align-items: center;
    }
    .footer-area .swell-block-fullWide__inner {
        padding-inline: 10px;
    }

    .l-footer__foot .l-container {
        padding-inline: 0;
    }
    .p-blogParts[data-partsid="6863"] div.has-background.contact_box {
        padding-inline: 0;
    }
}

/* ============================================================
   04. 共通パーツ
   ============================================================ */
/* ---------- 帯レイアウト（sct_*） ---------- */
.sct_right,
.sct_center,
.sct_left {
    max-width: var(--sct-maxw);
    margin-inline: auto;
    padding-inline: var(--sct-pad);
}

.section {
    position: relative;
}

.section img {
    width: 100%;
    height: auto;
}

/* 中身ラッパの最大幅。下余白7emは3パターン共通 */
.sct_center .section > .wp-block-group__inner-container:first-child {
    max-width: var(--sct-inner);
    margin-inline: auto;
    padding-bottom: 7em;
}

.sct_left .section > .wp-block-group__inner-container:first-child,
.sct_right:not(.--wide) .section > .wp-block-group__inner-container:first-child {
    max-width: var(--sct-inner);
    margin-inline: auto;
    padding-inline: var(--sct-inner-pad);
    padding-bottom: 7em;
}

@media screen and (max-width: 961px) {
    .page-id-7181 .sct_right:not(.--wide) .section > .wp-block-group__inner-container:first-child {
        padding-inline: 0;
    }
}


/* ① 左右余白 */
.sct_center .section {
    margin-inline: auto;
    padding-inline: 40px;
    border-radius: var(--sct-radius);
}

/* ② 右ブリード（右端まで・左角丸）*/
.sct_right .section {
    border-radius: var(--sct-radius) 0 0 var(--sct-radius);
    margin-right: calc(50% - 50vw);
}

/* ③ 左ブリード（左端まで・右角丸）*/
.sct_left .section {
    border-radius: 0 var(--sct-radius) var(--sct-radius) 0;
    margin-left: calc(50% - 50vw);
}

/* ④ 左タイトル（右ブリード＋左ワイド余白：OUR MESSAGE）*/
.sct_right.--wide .section {
    padding-inline: 0;
    margin-left: 290px;
}

.sct_right.--wide .section .wp-block-group__inner-container.is-layout-constrained {
    max-width: 1307px;
    margin-inline: auto;
}

/* レスポンシブ */
@media screen and (max-width: 1920px) {
    .sct_right.--wide .section {
        margin-left: auto;
        max-width: 1632px;
    }

    .sct_left .section {
        max-width: 1847px;
        padding-inline: 0;
    }
}

@media screen and (max-width: 1690px) {
    .sct_right.--wide .section {
        margin-left: 50px;
        padding-inline: 100px;
    }
}

.section .swell-block-columns__inner {
    justify-content: space-between;
}

#message .section .swell-block-columns__inner {
    justify-content: center;
}

/* ---------- セクション見出し ---------- */
.section_heading {
    font-family: "Josefin Sans", "Noto Sans JP", sans-serif;
    font-size: 96px;
    font-weight: 200;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    mix-blend-mode: multiply;
}

.section_heading.--rotate90 {
    position: absolute;
    transform: rotate(90deg);
    top: 4.03125em;
    left: -4.375em;
}

.section_heading.--top {
    position: absolute;
    top: -1em;
    @media screen and (max-width: 961px) { top: -0.8em;
    };
}

.section_title {
    font-size: 36px;
    font-weight: 700;
    line-height: 180%;
    letter-spacing: 0.04em;
    border-radius: 4px;
    width: fit-content;
}

.section_heading--ja,
.post_content .is-style-section_ttl.section_heading--ja {
    padding-top: 45px;
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.12em;
    position: relative;
    text-align: left;
}

/* .section_heading--ja::before,
.post_content .is-style-section_ttl.section_heading--ja::before {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 27px;
    aspect-ratio: 1;
    background: url(assets/img/symptom/circle.svg) no-repeat center center / cover;
    z-index: 10;
} */

.section_heading--ja.--small,
.post_content .is-style-section_ttl.section_heading--ja.--small {
    font-size: 18px;
    padding-top: 0;
}

@media screen and (max-width: 961px) {
    .section_heading {
        font-size: clamp(calc(64px * 0.8), calc(100vw * 64 / 480), 64px);
        letter-spacing: 0.08em;
    }

    .sct_right.--wide .section {
        margin-left: clamp(calc(40px * 0.7), calc(100vw * 40 / 480), 40px);
        padding: 80px 40px 195px 40px !important;
    }

    .section_title {
        font-size: clamp(calc(24px * 0.7), calc(100vw * 24 / 480), 24px);
    }

    .section_text24 {
        font-size: 16px;
    }

    .section_heading--ja,
    .post_content .is-style-section_ttl.section_heading--ja {
        padding-top: 15px;
        font-size: 18px;
        letter-spacing: 0.08em;
        line-height: 160%;
        padding-left: 0;
    }
}

/* ---------- グラデーション帯 ---------- */
.section_gradation {
    background: linear-gradient(180deg, #FFF 0%, rgba(255, 255, 255, 0.00) 24%, rgba(255, 255, 255, 0.00) 51.66%, #FFF 93.3%), linear-gradient(136deg, color-mix(in srgb, var(--color_pale02) 30%, transparent) 16.43%, color-mix(in srgb, var(--color_pale02) 30%, transparent) 33.62%, color-mix(in srgb, var(--color_pale02) 30%, transparent), color-mix(in srgb, var(--color_pale02) 30%, transparent) 90.63%);
}

.gradation_bg .section {
    background: linear-gradient(180deg, #FFF 0%, rgba(255, 255, 255, 0.00) 24%, rgba(255, 255, 255, 0.00) 51.66%, #FFF 93.3%), linear-gradient(180deg, color-mix(in srgb, var(--color_pale02) 26.34%, transparent), color-mix(in srgb, var(--color_pale02) 49.85%, transparent), color-mix(in srgb, var(--color_pale02) 64.14%, transparent), color-mix(in srgb, var(--color_pale02) 80.16%, transparent), transparent), #FFF;
}

.section_text24 {
    font-size: 24px;
    font-weight: 500;
    line-height: 240%;
    letter-spacing: 0.04em;
}

.section_container {
    margin-top: clamp(calc(143px * 0.7), calc(100vw * 143 / 1920), 143px);
}

/* ---------- POINTカード（feature-card） ---------- */
.feature-card {
    display: flex;
    flex-direction: column;
    flex: 1;
    border-radius: 12px;
}

.feature-cards .feature-card .wp-block-group.is-row__inner-container {
    display: flex;
    flex-direction: column;
}

.feature-card__num {
    font-family: "Jost", "Noto Sans JP", sans-serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.feature-card__num span {
    font-family: "Fjalla One", "Noto Sans JP", sans-serif;
    font-size: 48px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-left: 8px;
}

.feature-card__img {
    position: relative;
    margin-top: 12px;
    z-index: 10;
}

.feature-card__img::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(210deg, rgba(198, 230, 243, 0.00) 71.78%, color-mix(in srgb, var(--color_pale02) 80%, transparent) 98.93%), linear-gradient(180deg, rgba(255, 255, 255, 0.00) 62.74%, color-mix(in srgb, var(--color_pale02) 80%, transparent) 100%) 100% no-repeat;
    z-index: 20;
}

.feature-card__img::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 30px;
    width: 100%;
    height: 100%;
    background: var(--c-deep);
    z-index: -1;
    transform: rotate(8.013deg);
    border-radius: 12px;
}

.feature-card__img .wp-block-group {
    width: 260px;
    aspect-ratio: 260 / 370;
    overflow: hidden;
    border-radius: 12px;
}

.feature-card__img img {
    border-radius: 12px;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.section_text16 {
    font-size: 16px;
    font-weight: 500;
    line-height: 200%;
}

.feature-card__text {
    margin-top: 20px;
    flex-grow: 1;
}

.section .message_wrapper .swell-block-columns__inner {
    column-gap: clamp(calc(110px * 0.7), calc(100vw * 110 / 1920), 110px);
    flex-wrap: nowrap;
}
@media screen and (max-width: 1520px) {
    .feature-card {
        max-width: 360px;
        margin-inline: auto;
    }
}

@media screen and (max-width: 1200px) {
    .section .message_wrapper .swell-block-columns__inner {
        flex-direction: column;
        align-items: center;
        row-gap: 70px;
    }

    .message_wrapper p.has-background.section_title {
        padding-block: 4px;
        white-space: nowrap;
    }
}

#message.swell-block-fullWide {
    margin-top: 260px;
}

.list01 li {
    position: relative;
}

.list01 li:not(:first-child) {
    margin-top: 16px;
}

.list01 li::before {
    content: "";
    position: absolute;
    left: -1.3em;
    top: 0.45em;
    width: 12px;
    height: 12px;
    background-color: var(--color_pale01);
    mask: url('assets/img/circle_icon.svg') no-repeat center / contain;
}

#message .wp-singular .message_wrapper.swell-block-columns .swell-block-column {
    width: unset;
}

@media screen and (min-width: 1460px) {
    #message.sct_center .section {
        padding-inline: 70px;
    }
}

/* FEATURE */
#feature .section .swell-block-columns__inner {
    justify-content: center;
    gap: 100px 25%;
}

@media screen and (max-width: 1340px) {
    #feature .section .swell-block-columns__inner {
        gap: 80px 3%;
    }
}

#feature .swell-block-columns .swell-block-column {
    width: min(360px, 100%);
    flex: 0 0 auto;
}

#feature .feature-card__img {
    max-width: 240px;
    margin-inline: auto;
}

.feature-card__label {
    align-items: baseline;
    justify-content: center;
}

.feature-card__label-text {
    display: flex;
    align-items: flex-end;
    line-height: 1;
}

#feature .feature-card__img::before {
    background: var(--c-pale);
}

/* ---------- STEPカード ---------- */
.step-card__num {
    padding-block: 15px;
    position: relative;
    width: fit-content;
    margin-inline: auto;
    font-family: "Zen Kaku Gothic New";
}

.step-card__num::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    height: 100%;
    aspect-ratio: 1;
    background: url('assets/img/step_circle.png') no-repeat center center / cover;
}

.step-card__num p {
    line-height: 1;
    text-transform: none;
    font-weight: 700;
    font-family: "Zen Kaku Gothic New";
    letter-spacing: 1.6px;
}

.step-card__num p + p {
    margin-top: -5px !important;
}

.step-card {
    border-radius: 12px;
    box-shadow: 10px 10px 0 color-mix(in srgb, var(--color_pale02) 60%, transparent);
    height: 100%;
    width: 100%;
}

.step-card__img {
    width: 70%;
    aspect-ratio: 262 / 312;
    height: auto;
    border-radius: 12px;
    position: relative;
    margin-inline: auto;
    z-index: 0;
}

.step-card__img img {
    border-radius: 12px;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.step-card__img::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(299deg, rgba(198, 230, 243, 0.00) 64.01%, color-mix(in srgb, var(--color_pale02) 80%, transparent) 86.93%) no-repeat;
    border-radius: 12px;
    z-index: 1;
}

.step-card__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 200%;
}

#link .btn_white .swell-block-button__link {
    padding: 6px 12px;
    border-radius: 8px;
    min-width: unset;
}

.-series-right .c-gnavWrap {
    justify-self: center;
    margin-left: unset;
}

@media screen and (max-width: 1600px) {
    .-series-right .c-gnavWrap {
        display: none;
    }
}

/* ---------- ボタン各種（btn_white / btn_text / btn_small-arrow） ---------- */
.btn_white {
    display: flex;
    justify-content: center;
    max-width: 480px;
}

.btn_white .swell-block-button__link {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    padding: 28px 140px 28px 100px;
    border: none;
    color: var(--color_deep01);
    font-size: 16px;
    font-weight: 700;
    line-height: 180%;
    letter-spacing: 0.04em;
    border: 1px solid var(--color_deep01);
    background: #FFF;
    box-shadow: 8px 8px 0 color-mix(in srgb, var(--color_pale03) 50%, transparent);
    max-width: 480px;
    border-radius: 20px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.btn_white.no-arrow .swell-block-button__link {
    font-size: 1.5em;
    padding: 20px 10px 20px 50px;
}

.btn_white .swell-block-button__link span {
    position: relative;
    padding-right: 40px;
    white-space: nowrap;
}

.btn_white .swell-block-button__link span::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 20px;
    height: 8px;
    background: url('assets/img/btn_arrow.svg') center/contain no-repeat;
}
.btn_white.no-arrow .swell-block-button__link span::before {
    content: none;
}

.btn_text01 {
    font-family: "Jost", "Noto Sans JP", sans-serif;
    font-weight: 700;
    position: relative;
    padding-left: 52px;
    width: fit-content;
    margin-inline: auto;
}

.btn_text01::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 35px;
    height: 40px;
    background: url('assets/img/icon_tel.svg') center/contain no-repeat;
}

.btn_text02 {
    position: relative;
    padding-left: 45px;
    width: fit-content;
    margin-inline: auto;
}

.btn_text02::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 35px;
    height: 40px;
    background: url('assets/img/icon_reserve.svg') center/contain no-repeat;
}

.btn_small-arrow {
    margin-top: 30px;
    margin-top: auto;
}

.btn_small-arrow.is-style-btn_line a {
    border: none;
    font-size: 15px;
    font-weight: 700;
    line-height: 180%;
    letter-spacing: 0.04em;
}

.btn_small-arrow .swl-inline-icon {
    background-color: #fff;
    padding: 1.5px 20px;
    border-radius: 6px;
    margin-left: 24px;
    box-shadow: 4px 4px 0 0 rgba(206, 224, 230, 0.50);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 22px;
}

.btn_small-arrow.is-style-btn_line a > span {
    display: inline-flex;
    align-items: center;
}

.btn_small-arrow .swl-inline-icon:after {
    background: var(--color_deep01);
    width: 100%;
    max-width: 22px;
    height: 8px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

/* --- レスポンシブまとめ --- */
@media screen and (max-width: 961px) {
    .sct_center .section {
        padding-inline: 20px;
    }

    .sct_left .section {
        padding-bottom: 0;
    }

    .feature-card__num {
        font-size: 20px;
    }

    .feature-card__num span {
        font-size: 37px;
    }

    .feature-card__img {
        width: 160px;
        margin-inline: auto;
    }

    .feature-card__title {
        font-size: clamp(calc(18px * 0.7), calc(100vw * 18 / 460), 18px);
    }

    .section_text16 {
        font-size: 15px;
    }

    .feature-card__text {
        letter-spacing: 0.04em;
    }

    .feature-card .btn_small-arrow {
        margin-top: 20px;
    }

    /* MESSAGE */
    .message-top_space {
        height: 120px !important;
    }

    #message.swell-block-fullWide {
        margin-top: 180px;
    }

    .btn_white .swell-block-button__link {
        padding: 15px 0;
        min-width: 300px;
        border-radius: 8px;
    }
    .btn_text01 {
        padding-left: 40px;
    }
    .btn_text01::before {
        width: 30px;
        height: 35px;
    }
}

@media screen and (max-width: 599px) {
    .btn_white .swell-block-button__link {
        min-width: 260px;
    }
}

/* ============================================================
   btn_small-arrow モディファイア（2クラス併記・単一目的・下層でも汎用）
   ============================================================ */
/* 見た目：白箱＋青枠線。箱は固定サイズ（文字サイズに依存しない）。影＆ホバー押し込みはベース継承 */
.btn_small-arrow.--border .swl-inline-icon {
    border: 1px solid var(--c-main);
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 22px;
    padding: 0;
    position: relative;
}

/* 見た目：箱なし（→矢印だけ） */
.btn_small-arrow.--plain .swl-inline-icon {
    box-shadow: none;
    border: none;
    background: transparent;
    padding: 0;
    margin-left: 16px;
}

/* 見た目：白い丸ピル（大きめCTA） */
.btn_small-arrow.--pill.is-style-btn_line a {
    justify-content: center;
    min-width: 360px;
    padding: 18px 32px;
    background: #fff;
    color: var(--c-ink);
    border-radius: 999px;
    box-shadow: 8px 8px 0 rgba(206, 224, 230, 0.5);
    font-weight: 700;
}

/* レイアウト：横幅いっぱい・テキスト左／矢印右 */
.btn_small-arrow.--block.is-style-btn_line a {
    display: flex;
    width: 100%;
}

.btn_small-arrow.--block.is-style-btn_line a > span {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.btn_small-arrow.--block .swl-inline-icon {
    margin-left: 8px;
}

/* レイアウト：下に区切り線（currentColor・角丸なし） */
.btn_small-arrow.--ruled.is-style-btn_line a {
    border-bottom: 1px solid currentColor;
    border-radius: 0;
    padding-bottom: 10px;
}

.btn_small-arrow.--compact {
    margin: 0;
}

.btn_small-arrow.--compact.is-style-btn_line a {
    padding: 0;
    min-width: 0;
}

.btn_small-arrow.--compact .swl-inline-icon {
    margin-left: 10px;
}

/* テキスト：色 */
.btn_small-arrow.--blue.is-style-btn_line a {
    color: var(--c-main);
}

/* テキスト：サイズ */
.btn_small-arrow.--lg.is-style-btn_line a {
    font-size: 20px;
    font-weight: 500;
}

.btn_small-arrow.--sm.is-style-btn_line a {
    font-size: 13px;
}

/* ---------- 角丸・カード影 ---------- */
/* 角丸設定 */
.clip_kadomaru {
    clip-path: inset(0 0 round 1em);
}

.kadomaru {
    border-radius: 1em;
}

.kadomaru_img img {
    border-radius: 1em;
}

/* カード（影・角丸のみ） */
.card-shadow {
    box-shadow: var(--shadow-card);
    border-radius: 12px;
}

.contact-way .card-shadow {
    padding: 20px 2em 2em;
}

/* ---------- 等高カード（リッチカラム用ユーティリティ） ---------- */
.equal-cards .swell-block-columns__inner,
.feature-cards .swell-block-columns__inner {
    align-items: stretch;
}

.equal-cards .swell-block-column,
.feature-cards .swell-block-column {
    display: flex;
}

.equal-cards .swell-block-column > *,
.feature-cards .swell-block-column > * {
    flex: 1 1 auto;
    width: 100%;
}

/* ---------- 診療一覧カード（共通パーツ1509）＋ 医院案内一覧（下層パーツ5828）= loos/post-list ---------- */
[data-partsid="1509"] .p-postList,
[data-partsid="5828"] .p-postList {
    margin-inline: -12px;
}

[data-partsid="1509"] .p-postList__item,
[data-partsid="5828"] .p-postList__item {
    padding: 0 12px;
}

[data-partsid="1509"] .p-postList__link,
[data-partsid="5828"] .p-postList__link {
    display: block;
    height: 100%;
    border-radius: 10px;
    padding: 0;
    box-shadow: none;
    transition: transform 0.2s ease;
}

[data-partsid="1509"] .p-postList__link:hover,
[data-partsid="5828"] .p-postList__link:hover {
    transform: translateY(-3px);
    opacity: 1;
}

[data-partsid="1509"] .c-postThumb,
[data-partsid="5828"] .c-postThumb {
    margin: 0;
    box-shadow: none;
    border-radius: 12px 12px 0 0 ;
}

[data-partsid="1509"] .c-postThumb__figure,
[data-partsid="5828"] .c-postThumb__figure {
    margin: 0;
    border-radius: 6px 6px 0 0;
    overflow: hidden;
}

[data-partsid="1509"] .p-postList__body,
[data-partsid="5828"] .p-postList__body {
    position: relative;
    background: #fff;
    border-radius: 0 0 6px 6px;
    padding: 12px 44px 12px 14px;
}

[data-partsid="1509"] .p-postList__title,
[data-partsid="5828"] .p-postList__title {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--c-ink);
}

[data-partsid="1509"] .p-postList__body::after,
[data-partsid="1509"] .p-postList__link:hover .p-postList__body::after,
[data-partsid="5828"] .p-postList__body::after,
[data-partsid="5828"] .p-postList__link:hover .p-postList__body::after {
    content: "";
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 9px;
    border-radius: 0;
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjMiIGhlaWdodD0iMTAiIHZpZXdCb3g9IjAgMCAyMyAxMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA5SDIwTDkuNTIzODEgMSIgc3Ryb2tlPSIjMTA3NUFFIiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4=) no-repeat center / contain;
}

[data-partsid="1509"] .p-postList__meta,
[data-partsid="5828"] .p-postList__meta {
    display: none;
}
@media screen and (max-width: 961px) {
    [data-partsid="1509"] .p-postList__body::after,
    [data-partsid="5828"] .p-postList__body::after {
        width: 15px;
    }

    [data-partsid="1509"] .p-postList,
    [data-partsid="5828"] .p-postList {
        margin-inline: 0;
        justify-content: space-between;
    }


    [data-partsid="1509"] .p-postList__item,
    [data-partsid="5828"] .p-postList__item {
        width: 48%;
        padding-inline: 0;
    }
}

/* ---------- アイコンカード（icon-card） ---------- */
/* カード（共通部品 icon-card） */
.icon-card {
    height: 100%;
    border-radius: 12px;
    box-shadow: var(--shadow-card);
    background-color: #fff;
    padding: 7px;
}

/* 補助カード：.icon-card ラッパーが無い（.icon-card__body 直置き）ものにも角丸・シャドウを付与 */
.swell-block-column > .icon-card__body {
    border-radius: 12px;
    box-shadow: var(--shadow-card);
}

@media screen and (max-width: 961px) {
    .icon-card {
        height: auto;
    }
}

.icon-card__icon {
    aspect-ratio: 7 / 5;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    border-radius: 8px 8px 0 0;
}

.icon-card__icon.--row {
    border-radius: 5px 0 0 5px;
}

.icon-card__body {
    padding: 20px 22px 18px;
    width: stretch;
}

.icon-card__body .wp-block-group.is-row__inner-container {
    width: 100%;
}

.icon-card__title {
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.04em;
    padding-block: 1em;
    border-bottom: 1px solid var(--color_deep01);
}

/* 診療科リンクのカード内配置のみ */
.icon-card__link {
    margin: 0;
}

.icon-card__link + .icon-card__link {
    margin-top: 8px;
}

/* セクション見出し非表示（*/
.sct-no-title .section > .wp-block-group__inner-container > .section_heading,
.sct-no-title .section > .wp-block-group__inner-container > .section_heading--ja {
    display: none;
}

/* ============================================================
   DEPARTMENT（.dept-acc）：診療カード展開時にその行の真下に全幅パネルを開く
   ============================================================ */
/* ---------- 診療科アコーディオン（dept-acc） ---------- */
.dept-acc .dept-acc__toggle {
    margin-top: auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
    padding: 14px 0 0;
    border: none;
    background: transparent;
    cursor: pointer;
}

.dept-acc .dept-acc__chev {
    position: relative;
    width: 42px;
    height: 28px;
    border-radius: 6px;
    background: var(--c-main);
}

.dept-acc .dept-acc__chev::after {
    content: "";
    position: absolute;
    top: 44%;
    left: 50%;
    width: 9px;
    height: 9px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: translate(-50%, -50%) rotate(45deg);
    transition: transform .3s ease;
}

.dept-acc .dept-acc__toggle[aria-expanded="true"] .dept-acc__chev::after {
    transform: translate(-50%, -15%) rotate(-135deg);
}

/* パネル */
.dept-acc .dept-acc__panel {
    display: none;
}

.dept-acc .dept-acc__panel.is-ingrid {
    display: block;
    overflow: hidden;
    flex: 0 0 100%;
    width: 100%;
    height: 0;
    transition: height .32s cubic-bezier(.4, 0, .2, 1);
    will-change: height;
}

.dept-acc .dept-acc__panel-inner {
    background: #fff;
    border-radius: 12px;
    padding: 28px 40px;
    margin-left: 26px;
    margin-bottom: 24px;
}

.dept-acc .dept-acc__panel .section_heading--ja {
    margin: 0 0 14px;
}

/* 展開メニュー項目：項目間にグレーの下線＋行間を広げる（最後の項目は下線なし） */
.dept-acc .dept-acc__panel-inner .icon-card__link + .icon-card__link {
    margin-top: 20px;
}
.dept-acc .dept-acc__panel-inner .btn_small-arrow.is-style-btn_line a {
    border-bottom: 1px solid var(--color_pale02);
    border-radius: 0;
    padding-bottom: 14px;
}

/* 展開メニュー（縦積みリスト）だけ：SPで矢印チップを縮ませない＝矢印サイズを統一。タイル/サブカード（グリッド）には効かせない */
.dept-acc .dept-acc__panel-inner .btn_small-arrow .swl-inline-icon {
    flex-shrink: 0;
}

@media screen and (max-width: 961px) {
    .dept-acc .dept-acc__panel-inner {
        padding: 20px 22px;
        margin-left: 16px;
    }
}

/* ---------- リスト装飾（check / orange） ---------- */
.list-check li {
    position: relative;
    padding-left: 36px;
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 6px;
    list-style: none;
}

.list-check li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 3px;
    width: 23px;
    height: 23px;
    border-radius: 50%;
    background: var(--color_main);
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 12px;
}


/* ============================================================
   05. TOPページ
   ============================================================ */
@media screen and (max-width: 1220px) {
    .our-message_container .section_text24 {
        margin-top: clamp(calc(60px * 0.7), calc(100vw * 60 / 480), 60px);
    }
}

/* ---------- メインビジュアル ---------- */
.p-mainVisual__textLayer {
    justify-content: flex-start;
    text-shadow: none;
}

.mv_message {
    margin-inline: clamp(calc(32px * 0.7), calc(100vw * 32 / 1920), 32px);
}

.mv_message img {
    aspect-ratio: 1230 / 880;
    width: 100%;
    height: auto;
    border-radius: 30px;
    object-fit: cover;
    position: relative;
    z-index: -1;
}

.mv_message.wp-block-group.is-row {
    justify-content: flex-end;
    gap: clamp(0, calc(100vw * 26 / 1920), 26px);
}

.mv_message .mv_right {
    width: 66%;
    position: relative;
}

.mv_message .mv_right::after {
    content: "";
    position: absolute;
    inset: 0;
    height: auto;
    border-radius: 20px;
    background: linear-gradient(200deg, rgba(165, 208, 225, 0.00) 77.24%, color-mix(in srgb, var(--color_pale02) 50%, transparent) 97.8%), linear-gradient(48deg, rgba(165, 208, 225, 0.00) 73.48%, color-mix(in srgb, var(--color_pale02) 24%, transparent) 94.16%), linear-gradient(180deg, rgba(207, 232, 240, 0.00) 64.72%, color-mix(in srgb, var(--color_pale02) 80%, transparent) 97.57%);
    visibility: visible !important;
}

.message_box {
    width: fit-content;
    margin-left: auto;
    margin-right: 2vw;
}

.mv_spacer {
    height: clamp(calc(144px * 0.5), calc(100vw * 144 / 1920), 144px) !important;
}

@media screen and (max-width: 1140px) {
    .mv_spacer {
        height: 20px !important;
    }
}

/* ---------- お知らせティッカー ---------- */
.ticker_wrapper {
    width: 76.6%;
    margin-inline: auto;
    position: absolute;
    top: -8vw;
    left: 13vw;
    z-index: 100;
}

.ticker_wrapper .wp-block-group__inner-container {
    display: flex;
    align-items: center;
    align-items: stretch;
    max-width: unset;
    min-height: clamp(calc(110px * 0.7), calc(100vw * 110 / 1920), 110px);
}

.ticker_title {
    width: 18.35%;
    margin-bottom: 0 !important;
    color: #fff;
    font-size: clamp(calc(24px * 0.7), calc(100vw * 24 / 1920), 24px);
    font-weight: 700;
    letter-spacing: 0.04em;
    display: flex;
    align-items: center;
    justify-content: center;
    height: auto;
    background-color: var(--color_deep01);
    border-radius: 12px 0 0 12px;
}

.ticker_content {
    width: 81.64%;
    background-color: #fff;
    border-radius: 0 12px 12px 0;
}

.ticker_content .p-postList__body {
    display: flex;
    gap: clamp(calc(32px * 0.7), calc(100vw * 32 / 1920), 32px);
}

.ticker_content .-type-simple .p-postList__link {
    padding: clamp(calc(37px * 0.7), calc(100vw * 37 / 1920), 37px) clamp(calc(32px * 0.7), calc(100vw * 32 / 1920), 32px);
}

.ticker_content .p-postList__meta {
    font-family: "Jost", "Noto Sans JP", sans-serif;
    font-size: clamp(calc(20px * 0.7), calc(100vw * 20 / 1920), 20px);
    font-weight: 400;
    letter-spacing: 0.04em;
    color: var(--c-muted);
}

.ticker_content .p-postList__meta :before {
    content: none;
}

.ticker_content .p-postList.-type-simple,
.ticker_content .-type-simple .p-postList__link {
    border: none;
}

.ticker_content .p-postList__title {
    font-size: clamp(calc(20px * 0.7), calc(100vw * 20 / 1920), 20px);
    font-weight: 500;
    letter-spacing: 0.04em;
}

/* OUR MESSAGE */
.clinic_image {
    padding-inline: 10px;
    margin-bottom: 0;
}

.our-message_container .section_title {
    white-space: nowrap;
}

/* ---------- 無限ループギャラリー ---------- */
/* 無限ループアニメーションのメインスタイル */
.infiniteLoop {
    --item-mobile-width: 80vw;
    --play-state: running;
    --direction: normal;
    --flex-direction: row;
}

.infiniteLoop.loop01 {
    --gap: 143px;
    --duration: 30s;
    margin-top: -220px;
}

.infiniteLoop.loop02 {
    --gap: 80px;
    --duration: 30s;
    margin-top: -240px;
}

.infiniteLoop.loop03 {
    --gap: 60px;
    --duration: 30s;
    padding-top: 60px;
}

.infiniteLoop>* {
    display:flex;
}

.infiniteLoop>*>*>* {
    overflow:hidden;
    transform:translateX(0);
    flex-wrap:nowrap !important;
    flex-direction:var(--flex-direction, row);
    margin:0 !important;
    padding-left:var(--gap) !important;
    gap:var(--gap);
    width:max-content;
}

.infiniteLoop>*>*>*>* {
    padding:0 !important;
}

.infiniteLoop>*>*>*>*>* {
    margin-inline:auto;
}

.infiniteLoop > * > * > * {
    transform: translateX(0);
    animation-name: infinite-loop;
    animation-duration: var(--duration);
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-fill-mode: both;
    animation-play-state: var(--play-state);
    animation-direction: var(--direction);
    will-change: transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.infiniteLoop .wp-block-image {
    position: relative;
    z-index: 0;
    border-radius: 12px;
    overflow: hidden;
}

.infiniteLoop .wp-block-image::after {
    content:"";
    position:absolute;
    inset:0;
    z-index: 1;
    height: auto;
    visibility: visible !important;
}

.infiniteLoop .swell-block-columns__inner {
    overflow: visible;
}

/* スライダー(infiniteLoop)画像：比率の違う画像（例:900×600）でも歪ませず中央クロップし、各loopのaspect-ratioどおりの見た目を維持 */
.infiniteLoop .swell-block-column figure img {
    width: 100%;
    object-fit: cover;
    display: block;
}

/* 無限ループアニメーション loop01 */
.infiniteLoop.loop01 .wp-block-image {
    box-shadow: 2.62px 2.62px 24.89px rgba(179,191,196,.16);
}

.infiniteLoop.loop01 .swell-block-column:nth-child(4n+1) .wp-block-image {
    width: 313px !important;
    transform: translateY(0px);
}

.infiniteLoop.loop01 .swell-block-column:nth-child(4n+2) .wp-block-image {
    width: 242px !important;
    transform: translateY(148px);
}

.infiniteLoop.loop01 .swell-block-column:nth-child(4n+3) .wp-block-image {
    width: 209px !important;
    transform: translateY(-10px);
}

.infiniteLoop.loop01 .swell-block-column:nth-child(4n+4) .wp-block-image {
    width: 277px !important;
    transform: translateY(160px);
}

.infiniteLoop.loop01 .swell-block-column figure img {
    aspect-ratio: 1 / 1.52;
}

.infiniteLoop.loop01 .wp-block-image::after {
    background: linear-gradient(209deg, rgba(198,230,243,0) 64.01%,color-mix(in srgb, var(--color_pale02) 80%, transparent) 86.93%);
}

/* 無限ループアニメーション loop02 */
.infiniteLoop.loop02 .wp-block-image {
    width: 280px;
}

.infiniteLoop.loop02 .swell-block-column:nth-child(odd) .wp-block-image {
    transform: translateY(55px);
}

.infiniteLoop.loop02 .wp-block-image::after {
    background: linear-gradient(209deg, rgba(198, 230, 243, 0.00) 78.99%, color-mix(in srgb, var(--color_pale02) 80%, transparent) 100%);
}

.infiniteLoop.loop02 .swell-block-column figure img {
    aspect-ratio: 1 / 1.636;
}

/* 無限ループ  初めての方へ HOSPITAL GUIDE用*/
.infiniteLoop.loop03 .wp-block-image {
    width: 262px;
    overflow: visible;
}

.infiniteLoop.loop03 .swell-block-column:nth-child(even) .wp-block-image {
    transform: translateY(55px);
}

.infiniteLoop.loop03 .wp-block-image::after {
    background: linear-gradient(209deg, rgba(198, 230, 243, 0.00) 78.99%, color-mix(in srgb, var(--color_pale02) 80%, transparent) 100%);
    border-radius: 15px;
}

.infiniteLoop.loop03 .swell-block-column figure img {
    aspect-ratio: 262 / 311;
    border-radius: 15px;
}

/* ---------- OUR MESSAGE・回転テキスト・院長写真 ---------- */
/* 回転円形テキスト */
.our-message_container {
    position: relative;
}

.js-circle-text {
    --r: 250px;
    --speed: 20s;
    position: relative;
    display: inline-block;
    width: calc(var(--r) * 2);
    height: calc(var(--r) * 2);
    animation: circle-spin var(--speed) linear infinite;
    white-space: pre;
    font-family: "Josefin Sans", "Noto Sans JP", sans-serif;
    font-size: 48px;
    font-weight: 400;
    text-transform: uppercase;
    position: absolute;
    mix-blend-mode: multiply;
}

.js-circle-text.circle01 {
    bottom: 220px;
    left: -135px;
}

.js-circle-text.circle02 {
    --r: 200px;
    bottom: -180px;
    right: -60px;
    z-index: 10;
}

.js-circle-text .char {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: rotate(calc(var(--i) * 1turn / var(--total))) translateX(var(--r)) rotate(90deg);
    transform-origin: center;
    will-change: transform;
    line-height: 1;
}

/* 動きを抑える設定の人には停止 */
@media (prefers-reduced-motion: reduce) {
    .js-circle-text {
        animation: none;
    }
}

.doctor_img {
    position: relative;
    width: fit-content;
    z-index: 1;
}

@media screen and (max-width: 1200px) {
    .doctor_img {
        width: 50%;
        margin-inline: auto;
    }
}

.doctor_img figure {
    position:relative;
    z-index:1;
    border-radius: 12px;
}

@media screen and (max-width: 1200px) {
    .doctor_img figure {
        width: 100%;
        margin-inline: auto;
    }

    .message_wrapper.swell-block-columns .swell-block-column {
        width: 100%;
    }
}

.doctor_img::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,0) 24%,rgba(255,255,255,0) 51.66%,rgba(255,255,255,.7) 93.3%), linear-gradient(146deg,transparent 56%,color-mix(in srgb,var(--color_pale02) 45%,transparent) 100%);
    border-radius: 12px;
    z-index: 2;
}

.doctor_img::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 30px;
    width: 100%;
    height: 100%;
    background: var(--c-pale);
    z-index: -1;
    transform: rotate(8.013deg);
    border-radius: 12px;
    z-index: 0;
}

.message_text_wrapper {
    width: fit-content;
    margin-left: auto;
    margin-top: clamp(calc(50px * 0.7), calc(100vw * 50 / 1920), 50px);
}

.message_text_wrapper p {
    text-align: left;
}

.message_name_wrap.wp-block-group.is-stack {
    flex-direction: row;
    gap: 2em;
    align-items: center;
    margin-top: 8px;
    padding-bottom: 12px;
    border-bottom: 2px solid #9CD3E7;
    margin-bottom: 12px;
}

.message_name {
    font-size: 24px;
    line-height: 1;
    letter-spacing: 0.04em;
}

.message_wrapper [class*=is-style-btn_] {
    margin-inline: 0;
}

/* 初めての方へ */
#mission .section_heading--ja {
    padding-top: 35px;
}

.infiniteLoop.loop03 .wp-block-image::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 30px;
    width: 100%;
    height: 100%;
    background: var(--c-deep);
    z-index: -1;
    transform: rotate(8.013deg);
    border-radius: 15px;
}

/* ---------- MV下のボタンメニュー ---------- */
.mv_btns .swell-block-box-menu__inner {
    justify-content: center;
}

.mv_btn {
    position: relative;
    margin-bottom: clamp(calc(32px * 0.7), calc(100vw * 32 / 1920), 32px) !important;
}

.mv_btn .swell-block-box-menu__link {
    padding: 0;
    position: static;
}

.mv_btn .swell-block-box-menu__figure {
    position: absolute;
    left: -23px;
    top: -4px;
    z-index: 20;
    width: clamp(calc(55px * 0.7), calc(100vw * 55 / 1920), 55px);
    aspect-ratio: 1;
    height: auto;
}

.mv_btn span {
    font-size: clamp(calc(24px * 0.7), calc(100vw * 24 / 1920), 24px);
    font-weight: 500;
    z-index: 10;
}

.mv_btn a span {
    color: var(--color_text);
}

.mv_btn .swell-block-box-menu__text {
    flex: unset;
}

.mv_btn.swell-block-button .__icon {
    position: absolute;
    left: -23px;
}

/* ---------- DEPARTMENTセクション ---------- */
/* 小カード（横並び） */
#department .btn_small-arrow.--blue.is-style-btn_line a {
    padding: 5px;
}

#department .dept-cards--sub .icon-card {
    flex-direction: row;
}

#department .dept-cards--sub .icon-card__icon {
    aspect-ratio: auto;
    width: 35%;
    flex-shrink: 0;
    padding: 10px;
    min-width: 70px;
}

#department .dept-cards--sub .icon-card__icon .is-row__inner-container {
    width: 71%;
}

#department .dept-cards--sub .icon-card__body {
    padding: 16px 20px;
}

/* 見出し余白 */
#department .section_heading {
    margin-bottom: 0;
}

#department .section_heading--ja {
    padding-top: 14px;
}

/* --- レスポンシブまとめ --- */
@media screen and (max-width: 961px) {
    #department .section_heading {
        font-size: 44px;
    }

    .mv_message {
        margin-inline: 10px;
    }

    .mv_message img {
        aspect-ratio: 460 / 560;
        width: 100%;
        height: auto;
        border-radius: 20px;
    }

    .mv_message.wp-block-group.is-row {
        flex-direction: column;
    }

    .mv_message .mv_right {
        width: calc(100vw - 20px);
    }

    .mv_message .mv_left {
        width: 100%;
    }

    .wp-block-group.is-row.mv_left {
        display: contents;
    }

    .mv_message .mv_right {
        margin-top: clamp(-140px, calc(100vw * -140 / 480), calc(-140px * 0.3));
    }

    .message_box {
        margin-left: clamp(calc(14px * 0.3), calc(100vw * 14 / 480), 14px);
        margin-right: 0;
    }

    .ticker_wrapper .wp-block-group__inner-container {
        flex-direction: column;
        min-height: unset;
    }

    .ticker_wrapper {
        width: 91.6%;
        left: 50%;
        transform: translateX(-50%);
        top: -25vw;
    }

    .ticker_title {
        width: 164px;
        font-size: 16px;
        padding-block: 3px;
        border-radius: 4px 4px 0 0;
    }

    .ticker_content {
        width: 100%;
        border-radius: 0 8px 8px 8px;
    }

    .ticker_content .-type-simple .p-postList__link {
        padding: 8px 12px;
    }

    .ticker_content .p-postList__body {
        flex-direction: column;
        gap: 0;
    }

    .ticker_content .p-postList__meta {
        line-height: 1;
    }

    .ticker_content .-type-simple .p-postList__meta {
        margin-bottom: 0;
    }

    .ticker_content .p-postList__meta {
        font-size: 12px;
    }

    .ticker_content .p-postList__title {
        font-size: 15px;
        line-height: 1;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .our-message_space {
        height: clamp(calc(20px * 0.7), calc(100vw * 20 / 480), 20px) !important;
    }

    .our-message_container .section_text24 {
        margin-top: 0;
        font-size: 16px;
    }

    .our-message_text-space {
        height: 20px !important;
    }

    .infiniteLoop.loop01 {
        margin-top: -370px;
    }

    .infiniteLoop.loop01 {
        --gap: 22px;
    }

    .infiniteLoop.loop01 .swell-block-column:nth-child(4n+1) .wp-block-image {
        width: calc(313px * 0.67) !important;
    }

    .infiniteLoop.loop01 .swell-block-column:nth-child(4n+2) .wp-block-image {
        width: calc(242px * 0.67) !important;
    }

    .infiniteLoop.loop01 .swell-block-column:nth-child(4n+3) .wp-block-image {
        width: calc(209px * 0.67) !important;
    }

    .infiniteLoop.loop01 .swell-block-column:nth-child(4n+4) .wp-block-image {
        width: calc(277px * 0.67) !important;
    }

    .infiniteLoop.loop02 {
        --gap: 40px;
        margin-top: -160px;
    }

    .infiniteLoop.loop02 .wp-block-image {
        width: calc(280px * 0.64);
    }

    .infiniteLoop.loop03 {
        margin-top: 0;
    }

    .js-circle-text {
        --r: 150px;
        font-size: 32px;
    }

    .js-circle-text.circle01 {
        bottom: 110px;
        left: -40px;
    }

    .js-circle-text.circle02 {
        --r: 150px;
        bottom: -90px;
        right: -100px;
    }

    .message_wrapper [class*=is-style-btn_] {
        margin-inline: auto;
    }

    .message_text_wrapper {
        margin-top: 25px;
        margin-right: 22px;
    }

    .message_text_wrapper p {
        font-size: 12px;
    }

    .message_text_wrapper p.clinic_name {
        font-size: 14px;
        line-height: 1;
    }

    .message_name_wrap.wp-block-group.is-stack {
        margin-top: 4px;
        padding-bottom: 4px;
        margin-bottom: 0;
    }

    .message_text_wrapper p.message_name {
        font-size: 20px;
    }

    .message_space {
        height: 70px;
    }

    .message_wrapper .btn_white {
        margin-right: 22px;
    }

    .mv_btns .swell-block-box-menu__inner {
        flex-direction: column;
        align-items: flex-end;
    }

    .mv_btn {
        margin-bottom: clamp(calc(18px * 0.7), calc(100vw * 18 / 480), 18px) !important;
    }

    .mv_btn .swell-block-box-menu__figure {
        width: clamp(calc(33px * 0.7), calc(100vw * 33 / 480), 33px);
        left: -16px;
        top: -6px;
    }

    .mv_btn span {
        font-size: clamp(calc(16px * 0.7), calc(100vw * 16 / 480), 16px);
        min-width: clamp(calc(160px * 0.7), calc(100vw * 160 / 480), 160px);
    }

    .mv_btn.swell-block-button .__icon {
        left: -13px;
    }
}

@media screen and (max-width: 599px) {
    #department .swell-block-column figure img {
        max-width: 50%;
    }
}

/* ---------- NEWS / BLOGセクション ---------- */
#news .news-blog {
    padding-block: 5em 2em;
}

#news .nb-card {
    position: relative;
    background: #fff;
    border-radius: 12px;
    box-shadow: var(--shadow-card);
    padding: 40px;
}

@media screen and (max-width: 1200px) {
    #news .nb-card {
        padding: 30px 20px;
    }
}

#news .nb-head {
    align-items: flex-end;
    justify-content: space-between;
    padding-bottom: 14px;
    margin-bottom: 4px;
}

#news .nb-head .section_heading--ja {
    padding-top: 0;
}

#news .nb-card .p-postList.-type-simple {
    border-top: none;
}

#news .nb-card .-type-simple .p-postList__link {
    border-bottom: 1px solid var(--color_pale02);
    padding-block: 48px;
}

#news .nb-card .p-postList__title {
    margin-top: 24px;
}

#news .nb-card .icon-posted:before,
#news .nb-card .icon-folder:before {
    content: none;
}

#news .nb-card time {
    color: var(--c-muted);
}

#news .nb-card .p-postList__times {
    margin-right: 32px;
}

#news .nb-card .p-postList__cat {
    padding-inline: 24px;
    border-radius: 4px;
}

#news .nb-card.--news .p-postList__cat {
    border: 1px solid var(--color_main);
    color: var(--color_main);
}

/* BLOG */
#news .nb-card.--blog .p-postList__body {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

#news .nb-card.--blog .p-postList__meta {
    order: -1;
    margin-bottom: 12px;
}

#news .nb-card.--blog .p-postList__cat {
    color: var(--c-amber);
    border: 1px solid var(--c-amber);
}

#news .nb-card.--blog .-type-list .p-postList__link {
    justify-content: flex-start;
    gap: 40px;
    padding-bottom: 27px;
    border-bottom: 1px solid var(--color_pale02);
}

@media screen and (max-width: 1200px) {
    #news .nb-card.--blog .-type-list .p-postList__link {
        gap: 20px;
    }
}

/* 最後の項目だけ区切り線（border-bottom）を消す */
#news .nb-card .-type-simple .p-postList__item:last-child .p-postList__link,
#news .nb-card.--blog .-type-list .p-postList__item:last-child .p-postList__link {
    border-bottom: none;
}

#news .nb-card.--blog .-type-list .p-postList__thumb {
    aspect-ratio: 110 / 147;
    width: 110px;
}

#news .nb-card.--blog .-type-list .p-postList__thumb figure {
    height: 100%;
}

/* --- レスポンシブまとめ --- */
@media screen and (max-width: 961px) {
    /* ===== NEWS / BLOG セクション ===== */
    #news.sct_left .section > .wp-block-group__inner-container:first-child {
        padding-inline: 0 20px;
    }

    #news .news-blog {
        padding-bottom: 8em;
    }

    #news .nb-head {
        padding-bottom: 0;
    }

    #news .nb-card .-type-simple .p-postList__link {
        padding-block: 20px;
    }

    #news .nb-card .p-postList__title {
        margin-top: 14px;
    }

    #news .nb-card .p-postList__times {
        margin-right: 16px;
    }

    #news .nb-card .p-postList__cat {
        padding: 3px 12px;
    }

    #news .nb-card.--blog .p-postList__body {
        gap: 14px;
    }

    #news .nb-card.--blog .-type-list .p-postList__thumb {
        width: 70px;
    }
}

/* ============================================================
   06. 下層ページ
   ============================================================ */
/* ---------- はじめての方へ（#guide / #process / #contact） ---------- */
.about-mission {
    max-width: 724px;
    margin-inline: auto;
}

/* hospital guide */
#guide .section_heading {
    line-height: normal;
}

#guide .section_heading.--top {
    top: -0.5em;
}

#guide .section_heading--ja {
    padding-top: 70px;
}

#guide .infiniteLoop>*>*>* {
    padding-left: 60px !important;
}

/* process */
#process.sct_center .section {
    padding-inline: 70px;
    padding-top: 30px;
}

#process .section .swell-block-columns__inner {
    row-gap: 3em;
    justify-content: flex-start;
}

@media screen and (max-width: 1480px) {
    #process .section .swell-block-columns__inner {
        justify-content: center;
        gap: 3em 2%;
    }
}

#process .section_container {
    margin-top: 40px;
}

@media screen and (max-width: 1520px) {
    #process .swell-block-column {
        width: unset;
    }
}

/* CONTACT */
#contact.swell-block-fullWide {
    width: calc(100vw - 192px);
    margin-inline: auto;
    left: 50%;
    transform: translateX(-50%);
    padding-inline: 0;
    border-radius: 20px;
}

#contact.swell-block-fullWide.has-bg-img:before {
    border-radius: 20px;
}

#contact .section_heading.--top {
    left: 50%;
    transform: translateX(-50%);
}

@media screen and (max-width: 1100px) {
    #contact.swell-block-fullWide {
        width: calc(100vw - 20px);
    }
}

/* ---------- 診療時間表・フォーム・カレンダー ---------- */
.time_table table {
    margin: auto;
}

/* ---------- フォント設定 ---------- */
.h1-ja {
    font-size: clamp(calc(40px * 0.7), calc(100vw * 40 / 1920), 40px);
    font-weight: bold;
    letter-spacing: 0.04em;
    line-height: 1;
}

.h1-ja:not(:first-child) {
    margin-top: clamp(calc(48px * 0.7), calc(100vw * 48 / 1920), 48px);
}

/* フォーム */
.contact_form span.form_required {
    display:inline-block;
    margin-left: 1em;
    font-size:0.75em;
    padding:0.25em 1em;
    background-color: var(--color_main);
    color: #ffffff;
    position: absolute;
    right: 1em;
}

.gcal-sunday a,
.gcal-sunday span {
    color: #f00 !important;
}

.gcal-saturday a,
.gcal-saturday span {
    color: #0af !important;
}

.special-holiday a,
.special-holiday span {
    color: #f00 !important;
}

.jp-holiday a,
.jp-holiday span {
    color: #f00 !important;
}

.mwform-tel-field input[type="text"] {
    width: 70px;
}

.submit_button {
    background: var(--color_main);
    border: 1px solid var(--color_main);
    color: #fff;
    border-radius: 0.25em;
    display: block;
    letter-spacing: 0.1em;
    line-height: 1.5;
    margin: 1.5em auto 0.5em;
    padding: 0.5em;
    position: relative;
    text-decoration: none;
    width: 300px;
}

.submit_button:hover {
    background: #FFF;
    border: 1px solid var(--color_main);
    color: var(--color_main);
}

/* ---------- アクセス・サイトマップ（小物） ---------- */
#info div.has-background {
    padding-inline: 0;
}

#sitemap a {
    text-decoration: none;
}

/* --- レスポンシブまとめ --- */
@media screen and (max-width: 961px) {
    #process.sct_center .section {
        padding-inline: 30px;
    }

    #process .swell-block-columns__inner {
        justify-content: center;
    }

    .h1-ja {
        font-size: clamp(calc(28px * 0.7), calc(100vw * 28 / 480), 28px);
        font-weight: 500;
    }

    .h1-ja:not(:first-child) {
        margin-top: clamp(calc(24px * 0.7), calc(100vw * 24 / 480), 24px);
    }
}

/* ============================================================
   症状から探す
   ============================================================ */
/* ---------- 症状から探す ---------- */
.page-id-6941 #content {
    padding-block: 0;
    margin-bottom: 0;
}

.symptom-inner {
    max-width: 1470px;
    margin-inline: auto;
    padding: 40px 40px 80px;
}

/* ヘッダー */
.symptom-head {
    justify-content: space-between;
    align-items: center;
    margin-bottom: 50px;
}

.symptom-head__title {
    gap: 16px;
}

.symptom-head__icon {
    display: grid;
    place-items: center;
    width: 100px;
    height: 100px;
    background: #68c9e2;
    border-radius: 8px;
    flex-shrink: 0;
}

.symptom-head__icon svg {
    width: 72px;
    height: auto;
}

.symptom-head__ttl,
.post_content .is-style-section_ttl.symptom-head__ttl {
    margin: 0;
    font-size: 36px;
    font-weight: 500;
    line-height: 1.8;
    color: var(--c-ink);
    letter-spacing: 0.04em;
    text-align: left;
}

.symptom-head__close {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-decoration: none;
}

.symptom-head__x {
    display: block;
    width: 40px;
}

.symptom-head__x svg {
    display: block;
    width: 100%;
    height: auto;
}

.symptom-head__closetxt {
    font-size: 24px;
    letter-spacing: 0.2em;
    color: #0098bc;
}

.symptom-grid .swell-block-columns__inner {
    gap: 45px;
    align-items: stretch;
    flex-wrap: nowrap;
}

.symptom-grid .swell-block-column {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 45px;
}

/* カード */
.symptom-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 32px;
    min-height: 200px;
    padding: 30px;
    background: #fff;
    border-radius: 8px;
}

.symptom-card__symptoms {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.symptom-card__symptoms li {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-weight: 700;
    font-size: 24px;
    color: var(--c-ink);
    letter-spacing: 0.04em;
    line-height: 1.3;
}

.symptom-card__symptoms li::before {
    content: "";
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    background: url(assets/img/symptom/circle.svg) no-repeat center / contain;
}

.symptom-card__links {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 40px;
    margin: 0;
    padding-left: 34px;
}

/* ===== 症状から探す：カテゴリ見出し＋1症状1行（A案） ===== */
.symptom-cat {
    font-size: 22px;
    font-weight: 700;
    color: var(--c-main);
    border-left: 6px solid var(--c-main);
    padding-left: 16px;
    margin: 48px 0 18px;
    letter-spacing: 0.04em;
}
.symptom-cat:first-of-type {
    margin-top: 8px;
}
/* 2カラム内で症状カードを縦に間隔をあけて並べる（2カラム自体はリッチカラムで指定） */
.symptom-cols .swell-block-column {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
/* 各症状＝白カード（背景はブロック側の has-white-background-color） */
.symptom-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 24px 28px;
    border-radius: 8px;
    box-shadow: var(--shadow-card);
    height: 100%;
}
.symptom-item__name {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-weight: 700;
    font-size: 19px;
    color: var(--c-ink);
    line-height: 1.4;
}
.symptom-item__name::before {
    content: "";
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    background: url(assets/img/symptom/circle.svg) no-repeat center / contain;
}
.symptom-item__links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin: 0;
}

/* --- レスポンシブまとめ --- */
@media screen and (max-width: 961px) {
    .symptom-cols .swell-block-column {
        gap: 16px;
    }
    .symptom-item {
        padding: 20px;
    }
    .symptom-cat {
        font-size: 19px;
        margin: 32px 0 14px;
    }
    .symptom-item__name {
        font-size: 17px;
    }
    .symptom-page {
        padding: 30px 10px;
    }

    .symptom-inner {
        background: #fff;
        border-radius: 20px;
        padding: 0 10px 40px;
    }

    .symptom-head {
        margin-bottom: 0;
        padding: 30px 6px 10px;
    }

    .symptom-head__title {
        gap: 8px;
    }

    .symptom-head__icon {
        width: 50px;
        height: 50px;
    }

    .symptom-head__icon svg {
        width: 36px;
    }

    .symptom-head__ttl,
    .post_content .is-style-section_ttl.symptom-head__ttl {
        font-size: 24px;
        font-weight: 700;
    }

    .symptom-head__x {
        width: 32px;
    }

    .symptom-head__closetxt {
        font-size: 14px;
    }

    .symptom-grid .swell-block-columns__inner {
        display: block;
    }

    .symptom-grid .swell-block-column {
        display: block;
    }

    .symptom-card {
        min-height: 0;
        gap: 10px;
        padding: 20px 10px;
        background: transparent;
        border-radius: 0;
        border-bottom: 2px dashed #d9eff5;
        justify-content: flex-start;
    }

    .symptom-card__symptoms {
        gap: 8px;
    }

    .symptom-card__symptoms li {
        gap: 8px;
        font-size: 20px;
        line-height: 1.6;
    }

    .symptom-card__symptoms li::before {
        width: 12px;
        height: 12px;
    }

    .symptom-card__links {
        padding-left: 20px;
        gap: 10px 32px;
    }

    .symptom-card__links .btn_small-arrow.is-style-btn_line a {
        font-size: 18px;
    }
}

.wp-block-tiptip-hyperlink-group-block {
    text-decoration: none;
    transition: opacity .3s ease;
}
.wp-block-tiptip-hyperlink-group-block:hover {
    opacity: .8;
}

@media screen and (max-width: 961px) {
    .postid-7588 .swell-block-accordion__body {
        padding-inline: 0;
    }
}