@charset "utf-8";
/*
Template: jstork19
Theme Name: stork19_custom
Theme URI:http://open-cage.com/stork19/
Version: 1.3.0
Author: opencage
Author URI: https://open-cage.com/
*/

/* メインカラー上書き */
:root {
    --main-ttl-bg: #0f4b87 !important;
    --main-color: #0f4b87 !important;
    --main-link-color: #0f4b87 !important;
    --main-link-color-hover: #1a6bc4 !important;
}

/* マーカー（蛍光ペン） */
.marker:not([class*="marker_"]) {
    background: linear-gradient(transparent 60%, #fffb88 60%);
}
.marker_yellow {
    background: linear-gradient(transparent 60%, #fffb88 60%) !important;
}
.marker.marker_pink {
    background: linear-gradient(transparent 60%, #ffb0b0 60%) !important;
}
.marker.marker_blue {
    background: linear-gradient(transparent 60%, #a8d8ea 60%) !important;
}
.marker.marker_green {
    background: linear-gradient(transparent 60%, #b5e6a3 60%) !important;
}

/* アコーディオン/FAQ: JS制御で親テーマCSSを完全上書き */
.accordion .accordion_label,
.oc-faq .faq__label {
    cursor: pointer;
}
.accordion.is-open .accordion_content {
    display: block !important;
    height: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    transition: opacity 0.3s ease;
}
.accordion:not(.is-open) .accordion_content {
    display: none !important;
}
.accordion.is-open .accordion_label::after {
    transform: rotate(180deg);
}
.oc-faq.is-open .oc-faq__comment {
    height: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    margin-top: calc(0.5em + 3px) !important;
    transform: translateY(-3px) !important;
    transition: opacity 0.3s ease;
}
.oc-faq:not(.is-open) .oc-faq__comment {
    height: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    overflow: hidden !important;
}

/* リッチボタン色を確実に適用 */
.wp-block-button.is-style-rich_yellow .wp-block-button__link,
.btn-wrap.is-style-rich_yellow a {
    background-color: var(--oc-btn-rich_yellow, #f7cf2e) !important;
    box-shadow: 0 4px 0 var(--oc-btn-rich_yellow-sdw, #ecb254) !important;
}
.wp-block-button.is-style-rich_pink .wp-block-button__link,
.btn-wrap.is-style-rich_pink a {
    background-color: var(--oc-btn-rich_pink, #ee5656) !important;
    box-shadow: 0 4px 0 var(--oc-btn-rich_pink-sdw, #d34e4e) !important;
}
.wp-block-button.is-style-rich_orange .wp-block-button__link,
.btn-wrap.is-style-rich_orange a {
    background-color: var(--oc-btn-rich_orange, #ef9b2f) !important;
    box-shadow: 0 4px 0 var(--oc-btn-rich_orange-sdw, #cc8c23) !important;
}
.wp-block-button.is-style-rich_green .wp-block-button__link,
.btn-wrap.is-style-rich_green a {
    background-color: var(--oc-btn-rich_green, #39cd75) !important;
    box-shadow: 0 4px 0 var(--oc-btn-rich_green-sdw, #1eae59) !important;
}
.wp-block-button.is-style-rich_blue .wp-block-button__link,
.btn-wrap.is-style-rich_blue a {
    background-color: var(--oc-btn-rich_blue, #19b4ce) !important;
    box-shadow: 0 4px 0 var(--oc-btn-rich_blue-sdw, #07889d) !important;
}

/*-----------------------------------------------
お問い合わせ 送信ボタン メインカラー
-----------------------------------------------*/
.wpcf7-submit {
    background: var(--main-ttl-bg, #0f4b87) !important;
    border-color: var(--main-ttl-bg, #0f4b87) !important;
    color: #fff !important;
    border-radius: 50px !important;
    box-shadow: none !important;
    padding: 0.7em 3em 0.8em !important;
    font-size: 1.1em !important;
    display: inline-block !important;
    width: auto !important;
}
.wpcf7-submit:hover {
    opacity: 0.8;
}
.wpcf7-submit.has-spinner::after {
    display: none !important;
}
.wpcf7 .wpcf7-response-output {
    margin: 1.5em 0 !important;
    padding: 0.8em 1em !important;
    border-radius: 8px !important;
    text-align: center;
}
.wpcf7 .wpcf7-spinner {
    display: inline-block;
    vertical-align: middle;
    width: 24px !important;
    height: 24px !important;
    margin: 0 0 0 10px !important;
    border: 3px solid #ccc !important;
    border-top-color: var(--main-ttl-bg, #0f4b87) !important;
    border-radius: 50% !important;
    background: none !important;
    box-shadow: none !important;
}

/*-----------------------------------------------
ページトップボタン 丸型
-----------------------------------------------*/
#page-top .pt-button {
    border-radius: 50%;
}

/*-----------------------------------------------
カテゴリ一覧ページ 日付非表示
-----------------------------------------------*/
.category .post-list .byline,
.category .post-list .time__date {
    display: none;
}

/*-----------------------------------------------
グロナビ 英語表記ゴールド
-----------------------------------------------*/
.stk_header .menu-item .gf {
    color: var(--main-ttl-bg, #0f4b87);
}
.ul__g_nav > .menu-item > a::after {
    border-bottom-color: var(--main-ttl-bg, #0f4b87) !important;
}

/*-----------------------------------------------
お知らせ カテゴリフィルターボタン
-----------------------------------------------*/
.news-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin: 1.5em 0;
}
.news-filter-btn {
    display: inline-block;
    padding: 0.2em 1.2em 0.3em;
    border: 1px solid var(--main-ttl-bg, #333);
    border-radius: 50px;
    color: var(--main-ttl-bg, #333);
    text-decoration: none;
    font-size: 0.85em;
    transition: background 0.3s, color 0.3s;
}
.news-filter-btn:hover,
.news-filter-btn.active {
    background: var(--main-ttl-bg, #333);
    color: #fff;
}

/*-----------------------------------------------
ハンバーガーメニュー 角丸枠線
-----------------------------------------------*/
.nav_btn.menu_btn {
    border: none;
    border-radius: 50%;
    width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    padding: 0;
    box-shadow: none;
    gap: 0;
    background: var(--footer-bg, #6d5318);
    color: #fff;
    position: fixed;
    transition: opacity 0.3s, top 0.3s;
    top: 7px;
    right: 10px;
    left: auto;
    z-index: 9999;
}
.nav_btn.menu_btn .nav_btn__svgicon {
    width: 1.25em;
    height: 1.25em;
    transform: scaleX(1.25);
}
.nav_btn.menu_btn .nav_btn__svgicon,
.nav_btn.menu_btn .nav_btn__svgicon path {
    fill: #fff;
}
.nav_btn.menu_btn .text {
    margin-top: 1px;
    color: #fff;
    font-size: 0;
}
.nav_btn.menu_btn .text::after {
    content: "メニュー";
    font-size: 8px;
    display: block;
}
.admin-bar .nav_btn.menu_btn {
    top: 47px;
}
@media only screen and (min-width: 783px) {
    .admin-bar .nav_btn.menu_btn {
        top: 36px;
    }
}
@media only screen and (min-width: 1200px) {
    .nav_btn.menu_btn {
        display: none;
    }
}

/*-----------------------------------------------
タブレット コンテンツ余白
-----------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 1199px) {
    #inner-content,
    #content {
        padding-left: 20px;
        padding-right: 20px;
        box-sizing: border-box;
    }
}

/*-----------------------------------------------
ヘッダー サイト説明文余白
-----------------------------------------------*/
.site_description {
    margin-bottom: 6px;
}

/*-----------------------------------------------
WP管理バー時 モーダル位置調整
-----------------------------------------------*/
.admin-bar .remodal-wrapper {
    padding-top: 46px;
}
@media only screen and (min-width: 783px) {
    .admin-bar .remodal-wrapper {
        padding-top: 32px;
    }
}

/*-----------------------------------------------
ハンバーガーメニュー内 CLOSEボタン
-----------------------------------------------*/
/* 上のCLOSE: 右上に丸い×ボタン */
#navbtn_menu_content .remodal-close:first-child {
    position: absolute;
    top: 10px;
    right: 10px;
    margin: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1.5px solid #666;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}
#navbtn_menu_content .remodal-close:first-child .text {
    display: none;
}
#navbtn_menu_content .remodal-close:first-child .svgicon_close {
    width: 0.9em;
}

/* ロゴはbranding.phpのJSで挿入 — CSS::beforeは無効化 */
#navbtn_menu_content::before { display: none; }

/* 下のCLOSE: ピル型「閉じる ×」 */
#navbtn_menu_content .remodal-close:last-child {
    margin: 1.5em auto 1em;
    padding: 8px 28px;
    border: none !important;
    border-radius: 0;
    font-size: 0.9em;
    background: transparent !important;
    color: var(--main-ttl-bg, #0f4b87) !important;
    opacity: 1 !important;
}
#navbtn_menu_content .remodal-close:last-child .text {
    font-size: 0;
}
#navbtn_menu_content .remodal-close:last-child .text::after {
    content: "閉じる";
    font-size: 16px;
}
#navbtn_menu_content .remodal-close:last-child .svgicon_close,
#navbtn_menu_content .remodal-close:last-child svg,
#navbtn_menu_content .remodal-close + .widget_nav_menu + .remodal-close .svgicon_close,
#navbtn_menu_content .remodal-close + .widget_nav_menu + .remodal-close svg,
#navbtn_menu_content > .remodal-close:nth-of-type(2) svg,
#navbtn_menu_content > button.remodal-close:nth-last-child(1) svg,
#navbtn_menu_content > button.remodal-close ~ button.remodal-close svg {
    display: none !important;
}
#navbtn_menu_content .remodal-close:last-child::before {
    content: "\00d7";
    font-size: 1.6em;
    margin-right: 4px;
    font-style: normal;
    line-height: 1;
    position: relative;
    top: 1px;
}

/*-----------------------------------------------
スマホ グローバルナビ余白
-----------------------------------------------*/
.stk_g_nav.stk-hidden_pc {
    padding: 8px 0;
}

/*-----------------------------------------------
スマホでの横スクロール（ぐらぐら）防止
-----------------------------------------------*/
html, body {
    overflow-x: hidden;
}

@media only screen and (max-width: 768px) {
    html, body {
        overflow-x: hidden;
        width: 100%;
    }

    /* スマホ時ロゴ縮小 */
    .site__logo .custom-logo {
        max-height: 38px !important;
        margin-top: 3px;
    }

    /* はみ出し要素を抑制 */
    img, video, iframe, embed, object {
        max-width: 100% !important;
        height: auto !important;
    }

    /* テーブルのはみ出し防止 */
    table {
        width: 100% !important;
        table-layout: auto;
    }

    /* スクロールヒント付きテーブル: 先頭列固定+ヘッダー固定 */
    .js-scrollable {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
        max-height: none;
        overflow-y: visible;
    }
    .js-scrollable table {
        table-layout: auto !important;
        width: auto !important;
        min-width: 600px;
        border-collapse: separate;
        border-spacing: 0;
    }
    /* 先頭列を左固定 */
    .js-scrollable table th:first-child,
    .js-scrollable table td:first-child {
        position: sticky;
        left: 0;
        z-index: 2;
        background: #fff;
        white-space: nowrap;
        border-right: 2px solid #0f4b87;
    }
    /* ヘッダー行スタイル（縦スクロール固定なし） */
    .js-scrollable table thead th {
        z-index: 3;
        background: #0f4b87;
        color: #fff;
        font-weight: bold;
    }
    /* 左上角セル */
    .js-scrollable table thead th:first-child {
        z-index: 4;
        background: #0f4b87;
    }
    /* 2列目以降を均等幅に */
    .js-scrollable table th:not(:first-child),
    .js-scrollable table td:not(:first-child) {
        min-width: 130px;
    }
    /* ストライプ行の背景も固定列に適用 */
    .js-scrollable .is-style-stripes tbody tr:nth-child(odd) td:first-child {
        background: #f0f4f8;
    }

    /* フォーム要素のはみ出し防止 */
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="url"],
    textarea,
    select {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Contact Form 7 のはみ出し防止 */
    .wpcf7 {
        max-width: 100% !important;
    }

    .wpcf7-form {
        max-width: 100% !important;
    }

    .wpcf7-form-control {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}

.entry-content h4:not([class*=is-style-style]) {
    padding-top: 0.1em !important;
    padding-bottom: 0.3em !important;
}

.stk_authorbox>.h_ttl:not(.subtext__none)::after {
    content: "（さとう ゆうすけ）";
}

/* アイキャッチ画像表示 */
.has-post-thumbnail figure.eyecatch.stk_post_main_thum {display: block;}

/* テーブルの枠線の色を濃く */

.wp-block-table th, .wp-block-table td, 
.entry-content td, .entry-content th {
    border-color: rgba(102, 102, 102, 0.3) !important;
}

/* トップページ: スライダー上の余白を詰める */
@media only screen and (min-width: 981px) {
    .home #content #inner-content {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}

/* トップページのコンテンツ幅を広く */
@media only screen and (min-width: 981px) {
    .home #main,
    .home .entry-content,
    .home article.post {
        max-width: 1100px !important;
        width: 100% !important;
        margin-left: auto;
        margin-right: auto;
    }
}

/* 下層ページのコンテンツ幅を広げる */
@media only screen and (min-width: 981px) {
    body:not(.home) #main,
    body:not(.home) .entry-content,
    body:not(.home) article.post {
        max-width: 980px !important;
        width: 100% !important;
        margin-left: auto;
        margin-right: auto;
    }
}

/* 見出しサイズ＋上余白（親テーマの詳細度を上書き） */
.entry-content h1 { font-size: 2.2em !important; margin-top: 2.5em !important; }
.entry-content h2,
.entry-content h2:not([class*=is-style-style]) { font-size: 1.5em !important; margin-top: 2.8em !important; padding: 0.65em 1.1em 0.8em !important; }
.entry-content h3,
.entry-content h3:not([class*=is-style-style]) { font-size: 1.3em !important; margin-top: 2.2em !important; padding-bottom: 0.6em !important; }
@media (max-width: 600px) {
    .entry-content h2,
    .entry-content h2:not([class*=is-style-style]) { font-size: 1.3em !important; }
}
.entry-content h4 { font-size: 1.15em !important; margin-top: 2em !important; }
.entry-content h5 { font-size: 1.05em !important; margin-top: 1.8em !important; }
.entry-content h6 { font-size: 1em !important; margin-top: 1.5em !important; }

/* TOPカード画像（左右切れ防止：画像の自然な比率を使う） */
.archives-list.card-list .post-list__link {
    padding: 0 !important;
}
.archives-list.card-list .eyecatch {
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}
.archives-list.card-list .eyecatch img,
.archives-list.card-list .eyecatch.of-cover img {
    aspect-ratio: 1280/670 !important;
    object-fit: cover !important;
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: var(--mc-radius, 8px) var(--mc-radius, 8px) 0 0 !important;
}
.archives-list.card-list .archives-list-entry-content {
    padding: 0.6em 0.8em 1.2em !important;
}

/* 自動目次 (最初3件表示 + 続きを表示) */
.stk-toc {
    width: 100%;
    padding: 1em 1.2em;
    border: 3px solid rgba(100, 100, 100, 0.15);
    border-radius: 6px;
    background: #fafafa;
    margin: 1.5em 0 2em;
    box-sizing: border-box;
}
.stk-toc__title {
    display: block;
    font-weight: bold;
    font-size: 0.95em;
    color: #555;
    margin-bottom: 0.3em;
}
.stk-toc__title::before {
    display: inline-block;
    font-family: var(--stk-font-awesome-free, "Font Awesome 6 Free") !important;
    font-weight: 900;
    content: "\f03a";
    margin-right: 0.6em;
    color: #555;
}
.stk-toc__list {
    list-style: none !important;
    margin: 0.5em 0 0 !important;
    padding: 0 !important;
}
.stk-toc__list > li {
    margin: 0.6em 0;
    font-weight: bold;
    line-height: 1.6;
    list-style: none !important;
    padding-left: 0;
    font-size: 0.92em;
}
.stk-toc__list > li > ul {
    list-style: none !important;
    margin: 0.2em 0 0 !important;
    padding-left: 2em !important;
}
.stk-toc__list > li > ul > li {
    font-weight: normal;
    margin: 0.3em 0;
    line-height: 1.5;
    list-style: none !important;
    font-size: 0.95em;
}
.stk-toc__list li::before {
    content: none !important;
}
.stk-toc a {
    color: #444;
    text-decoration: none;
    border-bottom: none;
}
.stk-toc a:hover {
    color: var(--main-ttl-bg, #0f4b87);
}
.stk-toc .toc_number {
    display: inline-block;
    font-weight: bold;
    font-size: 75%;
    background-color: #888;
    color: #fff;
    min-width: 1.8em;
    min-height: 1.8em;
    line-height: 1.8;
    text-align: center;
    border-radius: 1em;
    margin-right: 0.3em;
    padding: 0 5px;
}
.stk-toc__list > li > ul .toc_number {
    background-color: #aaa;
    color: #fff;
    font-size: 70%;
    min-width: 2.2em;
}
/* 続きを表示 */
.stk-toc__rest {
    display: none;
}
.stk-toc__rest.is-open {
    display: block;
}
.stk-toc__more {
    display: block;
    margin: 0.5em auto 0;
    padding: 0.2em 1.2em 0.4em;
    background: none;
    border: 1px solid #ccc;
    border-radius: 4px;
    color: #888;
    font-size: 0.82em;
    cursor: pointer;
}
.stk-toc__more:hover {
    border-color: #999;
    color: #555;
}
@media only screen and (max-width: 480px) {
    .stk-toc {
        font-size: 90%;
    }
}

/* TOPページ カテゴリ別セクション */
.mc-cat-section {
    margin-bottom: 3em;
}
.mc-cat-title {
    font-size: 1.4em;
    font-weight: bold;
    border-left: 4px solid #0f4b87;
    padding: 0.3em 0.6em;
    margin-bottom: 1em;
    background: #f8f9fa;
    color: #333;
}
.mc-cat-title a {
    color: #333 !important;
    text-decoration: none;
}
.mc-cat-title a:hover {
    color: #0f4b87 !important;
}

/* TOPカード レスポンシブ（PC3列/タブ2列/スマホ1列） */
.mc-cat-section .archives-list.card-list {
    display: flex;
    flex-wrap: wrap;
    gap: 1.2em;
}
.mc-cat-section .archives-list.card-list .post-list {
    width: calc(33.333% - 0.8em);
    margin: 0;
}
@media only screen and (max-width: 980px) {
    .mc-cat-section .archives-list.card-list .post-list {
        width: calc(50% - 0.6em);
    }
}
@media only screen and (max-width: 600px) {
    .mc-cat-section .archives-list.card-list .post-list {
        width: 100%;
    }
}

/* グローバルナビのフォントサイズを大きく */
.stk_g_nav .ul__g_nav > li > a {
    font-size: 1.1em !important;
}
.stk_g_nav .ul__g_nav .sub-menu a {
    font-size: 1em !important;
}

/* トップページのフッター（ギャラリースライダーが間にあるので余白不要） */
.home #footer {
    margin-top: 0;
}

#footer-top.bg, #footer-top .inner{
	background-color: var(--main-ttl-bg);
}

/* 記事の最後の余白 */
.article-footer {
    margin-top: 3em;
}
.article-footer .post-categories a {
    background: #0f4b87 !important;
    color: #fff !important;
}
.article-footer .post-categories.tags a {
    background: transparent !important;
    color: #0f4b87 !important;
    border-color: #0f4b87 !important;
}

/* 記事の途中の画像 */
.image_center {
	text-align: center;
	margin: 5px auto 10px;
}

.image_center img {
	margin: 10px auto 10px;
    width: 70%;
//    min-width: 200px;
//    max-width: 500px;
}

.image_center.size_small {
	float: right;
	margin: 5px 0 10px 10px;
    width: 30%;
    min-width: 200px;
    max-width: 350px;
}

.image_center.size_small img {
	margin: 10px auto 10px;
    width: 100%;
}

/* 記事内画像（中サイズ・中央揃え） */
.wp-block-image.aligncenter.size-medium {
    text-align: center;
    margin: 1.5em auto;
}
.wp-block-image.aligncenter.size-medium img {
    max-width: 480px;
    width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}
@media only screen and (max-width: 768px) {
    .wp-block-image.aligncenter.size-medium img {
        max-width: 90%;
        margin: 0 auto;
    }
}

/* 見出しの余白 */
.margin-top-3em {
    margin-top: 3em !important;
}

/* 16:9の比率で画像を出力 */
.aspect-ratio-block {
  background-repeat: no-repeat;
  background-position: center center;
  background-color: #fff;
  background-size: 100% auto;
  width: 70%;
  position: relative;
  margin-left: 15%;
  margin-right: 15%;
  margin-bottom: 1.2em;
}

.aspect-ratio-block::before {
  content: '';
  display: block;
  padding-top: 56.25%;
}

.aspect-ratio-block p {
  position: absolute;
  top: 0;
}

/* Smart Slider */
div#n2-ss-2 .n2-style-4f72beb15bfb0511e07bfb33dde48a42-dot.n2-active, div#n2-ss-2 .n2-style-4f72beb15bfb0511e07bfb33dde48a42-dot:HOVER, div#n2-ss-2 .n2-style-4f72beb15bfb0511e07bfb33dde48a42-dot:FOCUS {
    background: #0f4b87 !important;
}

div#n2-ss-2 .n2-style-4f72beb15bfb0511e07bfb33dde48a42-dot.n2-active, 
div#n2-ss-2 .n2-style-4f72beb15bfb0511e07bfb33dde48a42-dot:HOVER, 
div#n2-ss-2 .n2-style-4f72beb15bfb0511e07bfb33dde48a42-dot:FOCUS,
div#n2-ss-2 .n2-style-ebf977099b5e4aa99a3bd86368b4e0b4-heading:Hover,
div#n2-ss-2 .n2-style-ebf977099b5e4aa99a3bd86368b4e0b4-heading:ACTIVE,
div#n2-ss-2 .n2-style-ebf977099b5e4aa99a3bd86368b4e0b4-heading:FOCUS, 
div#n2-ss-2 .n2-style-ba9a75e4e36fb36e8a4ef7400164e721-heading:Hover,
div#n2-ss-2 .n2-style-ba9a75e4e36fb36e8a4ef7400164e721-heading:ACTIVE,
div#n2-ss-2 .n2-style-ba9a75e4e36fb36e8a4ef7400164e721-heading:FOCUS, 
div#n2-ss-2 .n2-style-09a8364a7159aeff35b6b40ac3f789f6-heading:Hover,
div#n2-ss-2 .n2-style-09a8364a7159aeff35b6b40ac3f789f6-heading:ACTIVE,
div#n2-ss-2 .n2-style-09a8364a7159aeff35b6b40ac3f789f6-heading:FOCUS {
    background: #0f4b87 !important;
}

div#n2-ss-2 .n2-font-8ff1e4174c6df8be247514704a4f9532-paragraph a:HOVER,
div#n2-ss-2 .n2-font-8ff1e4174c6df8be247514704a4f9532-paragraph a:ACTIVE {
  color: #16b7cc !important;
}

div#n2-ss-2 .nextend-arrow img.n2-arrow-hover-img {
    background: #0f4b87 !important;
}

/* クラス 追加料金 */
dl.class-tuition {
    display: -webkit-flex;
    display: -moz-flex;
    display: flex;
	flex-wrap: wrap;
	align-items: stretch;	
	width: 100%;
    border: 1px solid rgba(102, 102, 102, 0.3);
	border-bottom: none;
	margin-bottom: 2em;
}
dl.class-tuition dt {
	font-size: 90%;
	background: #f5f5f5;
	padding: 5px 7px;
	width: 40%;
    border-right: 1px solid rgba(102, 102, 102, 0.3);
	border-bottom: 1px solid rgba(102, 102, 102, 0.3);
	margin: 0;
}
dl.class-tuition dd {
	font-size: 90%;
	background: #fff;
	padding: 5px 7px;
	width: calc(100% - 40%);
	border-bottom: 1px solid rgba(102, 102, 102, 0.3);
	margin: 0;
}

@media only screen and (max-width: 768px) {
	dl.class-tuition dt { 
		width: 100%;
		border-right: none;
	}
	dl.class-tuition dd {
		width: 100%; 
	}
}

/*-----------------------------------------------
フッターメニューを固定する
-----------------------------------------------*/

@media only screen and (max-width: 767px) {
#container{
    padding-bottom:50px;/*フッターの高さだけコンテンツを上げる*/
}
#fixed_footer {
    position: fixed;
    bottom: 0;
    width: 100%;
    height: 50px;
    background-color:var(--main-ttl-bg);/*メニューの背景色*/
    z-index:99;
}
#fixed_footer .fa {
    font-size:24px;/*アイコンフォントのサイズ*/
}
#fixed_footer ul {
    margin:5px 0;
    display: table;
    table-layout: fixed;
    text-align: center;
    width: 100%;
}
#fixed_footer ul li {
    display: table-cell;
    vertical-align: middle;
    font-size:8px;/*文字サイズ*/
    margin:auto;
}
#fixed_footer ul li a{
    color:#fff;/*文字色*/
    text-decoration:none;
}
#page-top{
    display:none;/*デフォルトのトップへ戻るボタンを消す*/
}
}

/*-----------------------------------------------
授業科目カード（ブログパーツID:722）
トップページ・下層ページ両対応
最高詳細度で親テーマを完全上書き
-----------------------------------------------*/
/* コンテナ: CSS Gridで3列 */
body .class-cards,
body .entry-content .class-cards,
body #main .entry-content .class-cards,
body article .entry-content .class-cards {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px !important;
    padding: 20px !important;
    background: #f5f5f5 !important;
    border-radius: 8px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    list-style: none !important;
}

/* 各カード: リンク要素の完全リセット */
body .class-cards .class-card,
body .class-cards a.class-card,
body .entry-content .class-cards .class-card,
body .entry-content .class-cards a.class-card,
body #main .entry-content .class-cards a.class-card {
    display: flex !important;
    flex-direction: column !important;
    background: #fff !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    text-decoration: none !important;
    color: inherit !important;
    transition: transform 0.2s !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    border: none !important;
    box-shadow: none !important;
    position: relative !important;
}

body .class-cards .class-card:hover,
body .class-cards a.class-card:hover,
body .entry-content .class-cards a.class-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: none !important;
}

/* カード内の画像 - 完全リセット */
body .class-cards .class-card img,
body .class-cards a.class-card img,
body .entry-content .class-cards .class-card img,
body .entry-content .class-cards a.class-card img,
body #main .entry-content .class-cards a.class-card img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 400 / 267 !important;
    object-fit: cover !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    max-width: 100% !important;
    float: none !important;
}

/* カードタイトル - 完全リセット */
body .class-cards .class-card .class-card__title,
body .class-cards a.class-card .class-card__title,
body .entry-content .class-cards .class-card .class-card__title,
body .entry-content .class-cards a.class-card .class-card__title,
body #main .entry-content .class-cards a.class-card .class-card__title,
body .class-cards .class-card p.class-card__title,
body .class-cards .class-card span.class-card__title,
body .entry-content .class-cards a.class-card p.class-card__title,
body .entry-content .class-cards a.class-card span.class-card__title {
    display: block !important;
    margin: 0 !important;
    padding: 12px 16px !important;
    font-size: 1.15em !important;
    font-weight: bold !important;
    text-align: center !important;
    background: #fff !important;
    color: #333 !important;
    border: none !important;
    line-height: 1.4 !important;
}

/* カードボタン - 完全リセット */
body .class-cards .class-card .class-card__btn,
body .class-cards a.class-card .class-card__btn,
body .entry-content .class-cards .class-card .class-card__btn,
body .entry-content .class-cards a.class-card .class-card__btn,
body #main .entry-content .class-cards a.class-card .class-card__btn,
body .class-cards .class-card span.class-card__btn,
body .entry-content .class-cards a.class-card span.class-card__btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    margin: 0 16px 16px !important;
    padding: 10px 32px 10px 16px !important;
    border: 1px solid var(--main-link-color, #0f4b87) !important;
    border-radius: 6px !important;
    color: var(--main-link-color, #0f4b87) !important;
    font-size: 0.85em !important;
    text-align: center !important;
    transition: background 0.2s, color 0.2s !important;
    white-space: nowrap !important;
    background: transparent !important;
    text-decoration: none !important;
}

body .class-cards .class-card .class-card__btn::after,
body .class-cards a.class-card .class-card__btn::after,
body .entry-content .class-cards a.class-card .class-card__btn::after,
body .entry-content .class-cards a.class-card span.class-card__btn::after {
    font-family: var(--stk-font-awesome-free, "Font Awesome 6 Free") !important;
    font-weight: 900 !important;
    content: "\f105" !important;
    position: absolute !important;
    right: 12px !important;
}

body .class-cards .class-card:hover .class-card__btn,
body .class-cards a.class-card:hover .class-card__btn,
body .entry-content .class-cards a.class-card:hover .class-card__btn {
    background: var(--main-link-color, #0f4b87) !important;
    color: #fff !important;
}

/* タブレット: 横2列 */
@media only screen and (max-width: 768px) {
    body .class-cards,
    body .entry-content .class-cards,
    body #main .entry-content .class-cards,
    body article .entry-content .class-cards {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* スマホ: 横1列 */
@media only screen and (max-width: 480px) {
    body .class-cards,
    body .entry-content .class-cards,
    body #main .entry-content .class-cards,
    body article .entry-content .class-cards {
        grid-template-columns: 1fr !important;
    }
}

/*-----------------------------------------------
フッターボタン（公式LINE・電話）2カラム
-----------------------------------------------*/
.stk_grids {
    display: grid !important;
    grid-template-columns: repeat(var(--gridcolumn_pc, 2), 1fr) !important;
    gap: var(--gridgap_pc, 16px) !important;
}

.stk_grids .stk_grid__child {
    width: 100% !important;
}

.stk_grids .wp-block-buttons {
    width: 100% !important;
    display: block !important;
}

.stk_grids .wp-block-button {
    width: 100% !important;
    max-width: 100% !important;
}

.stk_grids .wp-block-button__link {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
}

@media only screen and (min-width: 600px) and (max-width: 1024px) {
    #genre-nav .stk_grids {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}
@media only screen and (max-width: 599px) {
    .stk_grids {
        grid-template-columns: repeat(var(--gridcolumn_sp, 1), 1fr) !important;
        gap: var(--gridgap_sp, 16px) !important;
    }
}

/*-----------------------------------------------
アーカイブページ（カテゴリ一覧）PC用2列表示
-----------------------------------------------*/
@media only screen and (min-width: 981px) {
    .archive .archives-list.card-list,
    .category .archives-list.card-list {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px !important;
    }
    .archive .archives-list.card-list .post-list,
    .category .archives-list.card-list .post-list {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/*-----------------------------------------------
カード型・オーバーレイ（サイト共通）
トップページ・下層ページ両方で使用可能
-----------------------------------------------*/
.cat_postlist.typecard.overlay-style {
    gap: 20px;
}

.cat_postlist.typecard.overlay-style .cat_postlist__li {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    transition: transform 0.3s, box-shadow 0.3s;
}

.cat_postlist.typecard.overlay-style .cat_postlist__li:hover {
    transform: translateY(-6px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

.cat_postlist.typecard.overlay-style .cat_postlist__li a {
    display: block;
    position: relative;
}

.cat_postlist.typecard.overlay-style .cat_postlist__li .eyecatch {
    margin-bottom: 0 !important;
}

.cat_postlist.typecard.overlay-style .cat_postlist__li .eyecatch img {
    aspect-ratio: 16 / 10;
    object-fit: cover;
    margin-bottom: 0 !important;
    transition: transform 0.3s;
}

.cat_postlist.typecard.overlay-style .cat_postlist__li:hover .eyecatch img {
    transform: scale(1.05);
}

.cat_postlist.typecard.overlay-style .cat_postlist__li .ttl {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    padding: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.35);
    color: #fff;
    font-size: 1.4em;
    font-weight: bold;
    text-align: center;
}

.cat_postlist.typecard.overlay-style .cat_postlist__li .post-date {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--main-ttl-bg, #0f4b87);
    color: #fff;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 0.75em;
}

/* PC: 横3列 */
@media only screen and (min-width: 981px) {
    .cat_postlist.typecard.overlay-style .cat_postlist__ul {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 20px !important;
    }
}

/* タブレット: 横2列 */
@media only screen and (max-width: 980px) {
    .cat_postlist.typecard.overlay-style {
        --stk-postlist_column_tb: 50% !important;
    }
    .cat_postlist.typecard.overlay-style .cat_postlist__ul {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* スマホ: 横1列 */
@media only screen and (max-width: 599px) {
    .cat_postlist.typecard.overlay-style {
        --stk-postlist_column_sp: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .cat_postlist.typecard.overlay-style .cat_postlist__ul {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 15px !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }
    .cat_postlist.typecard.overlay-style .cat_postlist__li {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        margin: 0 !important;
    }
    .cat_postlist.typecard.overlay-style .cat_postlist__li a {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .cat_postlist.typecard.overlay-style .cat_postlist__li .eyecatch {
        width: 100% !important;
        max-width: 100% !important;
    }
    .cat_postlist.typecard.overlay-style .cat_postlist__li .eyecatch img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }
}

/*-----------------------------------------------
カード型レイアウト（トップページ用）
-----------------------------------------------*/
.home .cat_postlist.typecard {
    gap: 20px;
}

.home .cat_postlist.typecard .cat_postlist__li {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    transition: transform 0.3s, box-shadow 0.3s;
}

.home .cat_postlist.typecard .cat_postlist__li:hover {
    transform: translateY(-6px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

.home .cat_postlist.typecard .cat_postlist__li a {
    display: block;
    position: relative;
}

.home .cat_postlist.typecard .cat_postlist__li .eyecatch {
    margin-bottom: 0 !important;
}

.home .cat_postlist.typecard .cat_postlist__li .eyecatch img {
    aspect-ratio: 16 / 10;
    object-fit: cover;
    margin-bottom: 0 !important;
    transition: transform 0.3s;
}

.home .cat_postlist.typecard .cat_postlist__li:hover .eyecatch img {
    transform: scale(1.05);
}

.home .cat_postlist.typecard .cat_postlist__li .ttl {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    padding: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.35);
    color: #fff;
    font-size: 1.4em;
    font-weight: bold;
    text-align: center;
}

.home .cat_postlist.typecard .cat_postlist__li .post-date {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--main-ttl-bg, #0f4b87);
    color: #fff;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 0.75em;
}

/* タブレット: 横2列 */
@media only screen and (max-width: 980px) {
    .home .cat_postlist.typecard {
        --stk-postlist_column_tb: 50% !important;
    }
    .home .cat_postlist.typecard .cat_postlist__ul {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* スマホ: 横1列 */
@media only screen and (max-width: 599px) {
    .home .cat_postlist.typecard {
        --stk-postlist_column_sp: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .home .cat_postlist.typecard .cat_postlist__ul {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 15px !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }
    .home .cat_postlist.typecard .cat_postlist__li {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        margin: 0 !important;
    }
    .home .cat_postlist.typecard .cat_postlist__li a {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .home .cat_postlist.typecard .cat_postlist__li .eyecatch {
        width: 100% !important;
        max-width: 100% !important;
    }
    .home .cat_postlist.typecard .cat_postlist__li .eyecatch img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }
}

/*-----------------------------------------------
ギャラリー画像の角丸・レスポンシブ（サイト全体）
-----------------------------------------------*/
.wp-block-gallery.is-cropped .wp-block-image,
.wp-block-gallery.is-cropped .wp-block-image img {
    border-radius: 12px !important;
}

/* スマホ: 横1列 */
@media only screen and (max-width: 599px) {
    .wp-block-gallery.is-cropped {
        flex-direction: column !important;
    }
    .wp-block-gallery.is-cropped .wp-block-image {
        width: 100% !important;
        flex: none !important;
        max-width: 100% !important;
    }
}

/*-----------------------------------------------
自動スライダー（横幅100%・無限ループ）
-----------------------------------------------*/
.auto-slider {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    overflow: hidden;
    margin-bottom: 1.5em;
}

.auto-slider__track {
    display: flex;
    animation: slide 20s linear infinite;
}

.auto-slider__track img {
    flex-shrink: 0;
    width: 300px;
    height: 200px;
    object-fit: cover;
    margin-right: 10px;
}

@keyframes slide {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* ホバーで停止 */
.auto-slider:hover .auto-slider__track {
    animation-play-state: paused;
}

/*-----------------------------------------------
トップページ Swiperスライダー
-----------------------------------------------*/
/* 初期化前の画像ジャンプ防止 */
.hg-slider-container .swiper-wrapper:not(.swiper-wrapper-initialized) {
    display: flex;
    overflow: hidden;
}

.hg-slider-container .swiper-wrapper:not(.swiper-wrapper-initialized) .swiper-slide {
    flex-shrink: 0;
    width: 40%;
    opacity: 0.7;
}

.hg-slider-container .swiper-wrapper:not(.swiper-wrapper-initialized) .swiper-slide:first-child {
    opacity: 1;
}

/* スライダー全体のコンテナ - 横幅100% */
div.hg-slider-container {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 0 0 20px;
    position: relative;
    box-sizing: border-box;
}

/* Swiperのメイン設定 */
.hg-slider-container .hg-swiper {
    width: 100%;
    padding: 20px 0 60px 0;
    overflow: visible;
}

.hg-slider-container .hg-swiper .swiper-wrapper {
    display: flex;
    align-items: center;
}

/* 各スライド */
.hg-slider-container .hg-swiper .swiper-slide {
    aspect-ratio: 3 / 2;
    min-height: 200px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* アクティブなスライド */
.hg-slider-container .hg-swiper .swiper-slide-active {
    transform: scale(1.02);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}

/* スライド内のリンク */
.hg-slider-container .hg-swiper .swiper-slide a {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
}

/* スライド画像 */
.hg-slider-container .hg-swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* スライドのオーバーレイ */
.hg-slide-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(var(--overlay-scale, 1));
    background: rgba(255, 255, 255, 0.8);
    color: #333;
    padding: 32px 44px;
    border-radius: 10px;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    white-space: nowrap;
    max-width: none;
}

/* スライドタイトル */
.hg-slide-title {
    display: block;
    font-size: 34px;
    font-weight: bold;
    color: var(--main-ttl-bg, #0f4b87);
    line-height: 1.3;
    -webkit-text-stroke: 3px #fff;
    text-stroke: 0.5px #fff;
    paint-order: stroke fill;
}

/* スライドサブタイトル */
.hg-slide-subtitle {
    display: block;
    font-size: 20px;
    font-weight: 540;
    margin-top: 12px;
    margin-bottom: 10px;
    color: #333;
    line-height: 1.4;
    -webkit-text-stroke: 2px #fff;
    text-stroke: 0.3px #fff;
    paint-order: stroke fill;
}

/* スライドボタン */
.hg-slide-btn {
    display: inline-block;
    margin-top: 12px;
    padding: 8px 24px;
    background: var(--main-ttl-bg, #0f4b87);
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    border-radius: 6px;
    transition: background 0.2s;
}

.hg-slider-container .hg-swiper .swiper-slide a:hover .hg-slide-btn {
    background: var(--main-link-color-hover, #c1aa13);
}

/* ページネーション（ドット） */
.hg-slider-container .hg-swiper .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background: #ccc;
    opacity: 1;
}

.hg-slider-container .hg-swiper .swiper-pagination-bullet-active {
    background: var(--main-ttl-bg, #0f4b87);
    width: 24px;
    border-radius: 5px;
}

/* ナビゲーションボタン - PC用（中央スライド画像の下に配置） */
.hg-slider-container .swiper-button-next,
.hg-slider-container .swiper-button-prev {
    display: flex;
    width: 36px;
    height: 36px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    top: auto;
    bottom: -1px;
    transform: none;
}

.hg-slider-container .swiper-button-next::after,
.hg-slider-container .swiper-button-prev::after {
    font-size: 16px;
    color: var(--main-ttl-bg, #0f4b87);
    font-weight: bold;
}

/* ページネーション●の左右に配置 */
.hg-slider-container .swiper-button-prev {
    left: calc(50% - 120px);
}

.hg-slider-container .swiper-button-next {
    right: calc(50% - 120px);
}

/* レスポンシブ対応 - 中間幅（900px前後） */
@media (max-width: 1024px) {
    .hg-slider-container .hg-swiper .swiper-slide .hg-slide-overlay {
        max-width: none;
        width: 85%;
        white-space: normal;
        padding: 18px 20px;
        box-sizing: border-box;
    }

    .hg-slider-container .hg-slide-title {
        font-size: 20px;
    }

    .hg-slider-container .hg-slide-subtitle {
        font-size: 13px;
        margin-top: 8px;
    }
}

/* スマホ時のみ表示する改行 */
.hg-slider-container .sp-only {
    display: none;
}

/* レスポンシブ対応 - スマホ */
@media (max-width: 768px) {
    .hg-slider-container .sp-only {
        display: inline;
    }

    .hg-slider-container .hg-swiper .swiper-slide {
        aspect-ratio: 3 / 2;
    }

    .hg-slide-overlay {
        max-width: 80%;
        padding: 16px 18px;
        white-space: normal;
    }

    .hg-slide-title {
        font-size: 18px;
    }

    .hg-slide-subtitle {
        font-size: 13px;
        margin-top: 4px;
    }

    .hg-slide-btn {
        font-size: 12px;
        padding: 6px 16px;
        margin-top: 8px;
    }

    /* スマホ時のナビゲーションボタン（画像の外・下に配置） */
    .hg-slider-container .swiper-button-next,
    .hg-slider-container .swiper-button-prev {
        width: 30px;
        height: 30px;
        bottom: -1px;
    }

    .hg-slider-container .swiper-button-next::after,
    .hg-slider-container .swiper-button-prev::after {
        font-size: 12px;
    }

    .hg-slider-container .swiper-button-prev {
        left: calc(50% - 65px);
    }

    .hg-slider-container .swiper-button-next {
        right: calc(50% - 65px);
    }
}

/*-----------------------------------------------
TOPページ h2 セクション見出しレスポンシブ
-----------------------------------------------*/
.home .is-style-style__section_ttl__border_under {
    font-size: 1.875em;
}
@media only screen and (max-width: 1024px) {
    .home .is-style-style__section_ttl__border_under {
        font-size: 1.6em;
    }
}
@media only screen and (max-width: 480px) {
    .home .is-style-style__section_ttl__border_under {
        font-size: 1.3em;
    }
}

/*-----------------------------------------------
セクション余白のレスポンシブ調整
-----------------------------------------------*/
/* stk-mt_m: PC */
.stk-mt_m,
.entry-content .stk-mt_m,
h2.stk-mt_m {
    margin-top: 3em !important;
}

/* stk-mt_l: PC */
.stk-mt_l,
.entry-content .stk-mt_l,
h2.stk-mt_l {
    margin-top: 4em !important;
}

/* タブレット */
@media (max-width: 768px) {
    .stk-mt_m,
    .entry-content .stk-mt_m,
    h2.stk-mt_m {
        margin-top: 2em !important;
    }
    .stk-mt_l,
    .entry-content .stk-mt_l,
    h2.stk-mt_l {
        margin-top: 2.5em !important;
    }
}

/* スマホ */
@media (max-width: 480px) {
    .stk-mt_m,
    .entry-content .stk-mt_m,
    h2.stk-mt_m {
        margin-top: 1.5em !important;
    }
    .stk-mt_l,
    .entry-content .stk-mt_l,
    h2.stk-mt_l {
        margin-top: 2em !important;
    }
}

/*-----------------------------------------------
下層ページ ヒーローエリア
-----------------------------------------------*/
.page-hero-area {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    background: #f5f5f5;
    border-bottom: 1px solid #e0e0e0;
    padding: 50px 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

/* 背景画像あり */
.page-hero-area.has-bg-image {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* ぼかし用の疑似要素 */
.page-hero-area.has-bg-image::before {
    content: '';
    position: absolute;
    top: -10px;
    left: -10px;
    right: -10px;
    bottom: -10px;
    background: inherit;
    background-size: cover;
    background-position: center;
    filter: blur(8px);
    z-index: 0;
}

/* 半透明オーバーレイ */
.page-hero-area.has-bg-image::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--footer-bg, #6d5318);
    opacity: 0.4;
    z-index: 1;
}

.page-hero-inner {
    max-width: 1100px;
    margin: 0 auto .7em;
    position: relative;
    z-index: 2;
}

.page-hero-label {
    display: inline-block;
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    background: transparent;
    border: 1px solid #fff;
    border-radius: 50px;
    padding: 3px 15px 4px;
    margin-bottom: 12px;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.page-hero-title {
    font-size: 28px;
    font-weight: bold;
    color: #fff;
    margin: 0;
    line-height: 1.4;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

/* タブレット */
@media (max-width: 768px) {
    .page-hero-area {
        padding: 40px 15px;
    }
    .page-hero-title {
        font-size: 24px;
    }
}

/* スマホ */
@media (max-width: 480px) {
    .page-hero-area {
        padding: 30px 15px;
    }
    .page-hero-label {
        font-size: 11px;
        padding: 3px 10px;
    }
    .page-hero-title {
        font-size: 20px;
    }
}
/*-----------------------------------------------
Facebook フィード [show_fb_feed]
-----------------------------------------------*/
.fb-feed-list {
    margin: 1.5em 0;
}
.fb-feed-item {
    padding: 1em 0;
    border-bottom: 1px solid rgba(0,0,0,0.08);
}
.fb-feed-item:last-child {
    border-bottom: none;
}
.fb-feed-date {
    font-size: 0.8em;
    color: #999;
    margin-right: 1em;
}
.fb-feed-title {
    font-weight: bold;
    color: var(--main-ttl-bg, #333);
}
.fb-feed-item a {
    text-decoration: none;
}
.fb-feed-item a:hover .fb-feed-title {
    text-decoration: underline;
}
.fb-feed-excerpt {
    font-size: 0.9em;
    color: #666;
    margin: 0.5em 0 0;
    line-height: 1.6;
}

/*-----------------------------------------------
お知らせ一覧 [show_news_list]
-----------------------------------------------*/
.news-cat-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 1.5em;
}
.news-cat-btn {
    display: inline-block;
    padding: 2px 15px 4px;
    border: 1px solid #ccc;
    border-radius: 20px;
    font-size: 0.85em;
    color: #666;
    text-decoration: none;
    transition: all 0.2s;
}
.news-cat-btn:hover,
.news-cat-btn.is-active {
    background: var(--main-ttl-bg, #333);
    border-color: var(--main-ttl-bg, #333);
    color: #fff;
}
.news-list-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 0.8em 0;
    border-bottom: 1px solid rgba(0,0,0,0.08);
}
a.news-list-item {
    text-decoration: none;
    color: inherit;
}
a.news-list-item:hover {
    background: rgba(0,0,0,0.03);
}
.news-list-meta {
    display: flex;
    align-items: center;
    gap: 8px;
}
.news-list-item:last-child {
    border-bottom: 1px solid rgba(0,0,0,0.08);
}
.news-list-date {
    font-size: 0.85em;
    color: #555;
    flex-shrink: 0;
}
.news-cat-label {
    display: inline-block;
    font-size: 0.7em;
    font-weight: 500;
    padding: 1px 12px 1px;
    border-radius: 50px;
    background: var(--main-ttl-bg, #333);
    color: #fff;
    flex-shrink: 0;
    letter-spacing: 0.03em;
}
.news-list-link {
    color: #333;
}
a.news-list-item:hover .news-list-link {
    text-decoration: underline;
}
.news-more-wrap {
    text-align: center;
    margin: 1.5em 0 0.5em;
}
.news-more-btn {
    display: inline-block;
    padding: 0.5em 2em;
    border: 1px solid var(--main-ttl-bg, #333);
    border-radius: 50px;
    color: var(--main-ttl-bg, #333);
    text-decoration: none;
    font-size: 0.9em;
    transition: background 0.3s, color 0.3s;
}
.news-more-btn:hover {
    background: var(--main-ttl-bg, #333);
    color: #fff;
}

/*-----------------------------------------------
お知らせ詳細 single-news
-----------------------------------------------*/
.single-news .entry-content img {
    max-width: 500px;
    height: auto;
}
.news-single-date {
    font-size: 0.85em;
    color: rgba(255,255,255,0.8);
    margin-top: 0.5em;
}

/*-----------------------------------------------
お知らせカテゴリラベル色分け
-----------------------------------------------*/
.news-cat-label.cat-web {
    background: #5a9e6f;
}
.news-cat-label.cat-facebook,
.news-cat-label[class*="cat-id-"][class*="facebook"] {
    background: #1877f2;
}
/* Facebookカテゴリ用 */
.fb-source-link {
    margin-top: 2em;
    padding-top: 1em;
    border-top: 1px solid rgba(0,0,0,0.08);
}
.fb-source-link a {
    color: #1877f2;
    text-decoration: none;
    font-size: 0.9em;
}
.fb-source-link a:hover {
    text-decoration: underline;
}

/*-----------------------------------------------
お知らせ詳細 前後ナビ・一覧ボタン
-----------------------------------------------*/
.news-back-btn {
    text-align: center;
    margin: 2em 0;
}
.news-back-btn a {
    display: inline-block;
    padding: 8px 24px;
    border: 1px solid var(--main-ttl-bg, #333);
    border-radius: 50px;
    color: var(--main-ttl-bg, #333);
    font-size: 0.85em;
    text-decoration: none;
    box-shadow: none;
}
.news-back-btn a:hover {
    background: var(--main-ttl-bg, #333);
    color: #fff;
}
.news-back-btn .dashicons {
    position: relative;
    top: 4px;
}

/*-----------------------------------------------
ヒーローエリア カテゴリ色分け
-----------------------------------------------*/
.page-hero-label.hero-cat-facebook {
    border-color: #1877f2;
    background: rgba(24,119,242,0.3);
}

/*-----------------------------------------------
ハンバーガーメニュー内 SNSアイコン
-----------------------------------------------*/
.menu-sns-icons {
    display: flex;
    justify-content: center;
    gap: 16px;
    padding: 8px 0 0;
}
.menu-sns-icons a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-size: 22px;
    text-decoration: none;
    color: #fff;
    transition: transform 0.3s;
}
.menu-sns-icons a:hover {
    transform: scale(1.1);
}
.menu-sns-icons a[aria-label="Facebook"] {
    background: #1877f2;
}
.menu-sns-icons a[aria-label="LINE"] {
    background: #06C755;
}

/*-----------------------------------------------
リコメンドカード 日付非表示
-----------------------------------------------*/
.related_newpost__li .time__date {
    font-size: 70%;
    display: none;
}

/* ========== Genre Nav ========== */
#genre-nav .stk_grid__child { text-align: center; }
#genre-nav .mc-genre-nav__link { display: block; text-align: center; text-decoration: none; color: #333; padding: 0.8em 0; }
#genre-nav .mc-genre-nav__link:hover { transform: translateY(-3px); }
#genre-nav i.stk_icons-circle_shadow { font-size: 2.2em; }
#genre-nav .mc-genre-nav__label { font-size: 0.85em; font-weight: 600; margin: 0.5em 0 0; text-align: center; }
#genre-nav .stk_grids { margin-bottom: 2.5em; }

/* ========== Profile DL ========== */
.mc-profile-dl { display: grid; grid-template-columns: 5em 1fr; gap: 0; border-top: 1px solid #ddd; margin: 1.5em 0; }
.mc-profile-dl dt { padding: 0.8em 1em; font-weight: 700; background: #f7f7f7; border-bottom: 1px solid #ddd; }
.mc-profile-dl dd { padding: 0.8em 1em; margin: 0; border-bottom: 1px solid #ddd; }

/* ========== ヒーローエリア (mc-hero) ========== */
.mc-hero {
    background: linear-gradient(135deg, #1a1a24 0%, #0f4b87 100%);
    color: #ffffff;
    padding: 0;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    overflow: hidden;
    margin-bottom: 0;
    position: relative;
}

/* スライダー（grid重ね: 全スライド同一セル → 最大高さで統一） */
.mc-hero__slider {
    display: grid;
    overflow: hidden;
}

.mc-hero__slide {
    grid-area: 1 / 1;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.6s ease-in-out;
    z-index: 1;
    position: relative;
    background-size: cover;
    background-position: center;
}

.mc-hero__slide--active {
    opacity: 1;
    pointer-events: auto;
    z-index: 2;
}

/* ぼかし背景レイヤー */
.mc-hero__slide::before {
    content: '';
    position: absolute;
    top: -20px;
    left: -20px;
    right: -20px;
    bottom: -20px;
    background: inherit;
    background-size: cover;
    background-position: center;
    filter: blur(18px);
    z-index: 0;
}

/* グラデーションオーバーレイ */
.mc-hero__slide::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, #1a1a24 0%, #0f4b87 100%);
    opacity: 0.72;
    z-index: 1;
}

/* ドットナビ（ヒーロー外） */
.mc-hero__dots {
    display: flex;
    justify-content: center;
    gap: 10px;
    padding: 11px 0 28px;
}

.mc-hero__dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid #ccc;
    background: transparent;
    cursor: pointer;
    padding: 0;
    transition: background 0.3s, border-color 0.3s;
}

.mc-hero__dot:hover {
    border-color: #0f4b87;
}

.mc-hero__dot--active {
    background: #0f4b87;
    border-color: #0f4b87;
}

.mc-hero__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    position: relative;
    z-index: 2;
}

.mc-hero__photo {
    width: 50%;
    margin: 0;
    padding: 0;
    display: flex;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.mc-hero__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
}

.mc-hero__text {
    width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 40px 4% 40px 6%;
    box-sizing: border-box;
}

.mc-hero__h1 {
    font-size: 2.4em;
    font-weight: bold;
    color: #ffffff !important;
    line-height: 1.4;
    margin: 0 0 0.5em 0;
    border: none !important;
    padding: 0 !important;
}

.mc-hero__sub {
    font-size: 1.1em;
    line-height: 1.6;
    margin: 0 0 1.5em 0;
    color: #eeeeee;
}

.mc-hero__buttons {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.mc-hero__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    padding: 11px 21px 12px;
    font-size: 1em;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
    border-radius: 999px;
    transition: opacity 0.3s, transform 0.3s;
}

.mc-hero__btn::after {
    content: '\f138';
    font-family: 'Font Awesome 6 Free', 'Font Awesome 5 Free';
    font-weight: 900;
    font-size: 0.9em;
    flex-shrink: 0;
}

.mc-hero__btn:hover {
    opacity: 0.8;
    transform: translateY(-2px);
    color: #fff !important;
}

.mc-hero__btn--primary {
    background: linear-gradient(135deg, #00c851 0%, #11998e 100%);
    color: #ffffff !important;
    border: none;
    box-shadow: 0 4px 6px rgba(17,153,142,0.3);
}

.mc-hero__btn--secondary {
    background-color: transparent;
    color: #ffffff !important;
    border: 1px solid #ffffff;
}

/* レスポンシブ - タブレット / スマホ */
@media only screen and (max-width: 768px) {
    .mc-hero__inner {
        flex-direction: column;
        justify-content: flex-start;
    }
    .mc-hero__photo {
        width: 100%;
        max-height: 75vw;
        height: 75vw !important;
        overflow: hidden;
        display: block;
    }
    .mc-hero__photo img {
        width: 100% !important;
        height: 75vw !important;
        max-height: 75vw !important;
        -webkit-object-fit: cover;
        object-fit: cover;
        -webkit-object-position: center top;
        object-position: center top;
        display: block;
    }
    .mc-hero__text {
        width: 100%;
        padding: 9px 20px 20px;
        text-align: center;
    }
    .mc-hero__h1 {
        font-size: 1.5em;
        margin-top: 0.4em;
        margin-bottom: 0.3em;
    }
    .mc-hero__sub {
        font-size: 0.8em;
        margin-bottom: 0.8em;
        line-height: 1.5;
        text-align: left;
    }
    .mc-hero__sub br {
        display: none;
    }
    .mc-hero__buttons {
        justify-content: center;
        flex-direction: row;
        gap: 8px;
        margin-top: auto;
        padding-top: 0.5em;
    }
    .mc-hero__btn {
        width: auto;
        flex: 1;
        padding: 8px 14px 9px;
        font-size: 0.8em;
        box-sizing: border-box;
        justify-content: center;
    }
    .mc-hero__dots {
        padding: 10px 0;
    }
}
@media only screen and (min-width: 769px) {
    .sp-only {
        display: none;
    }
}

/* 吹き出し(voice)アイコンを丸く切り抜き */
.voice figure.icon {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}
.voice .icon img {
    border-radius: 50% !important;
    object-fit: cover;
    margin-bottom: 0 !important;
}
.voice .icon .name {
    max-width: 100%;
    text-align: center !important;
}

/* 読者フキダシ: 薄い青背景 */
.voice.comment_blue .voicecomment {
    background: #e8f4fd;
    border-color: #e8f4fd;
    color: #333;
}
.voice.l.comment_blue .voicecomment::before {
    border-right-color: #e8f4fd;
}
.voice.r.comment_blue .voicecomment::after {
    border-left-color: #e8f4fd;
}

/* 口コミリスト */
.mc-reviews {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0.5em 0 1.2em;
}
.mc-reviews li {
    position: relative;
    padding-left: 2.1em;
    margin-bottom: 0.5em;
    line-height: 1.6;
    list-style: none !important;
}
.mc-reviews li::before {
    content: "\f4ad" !important;
    font-family: var(--stk-font-awesome-free, "Font Awesome 6 Free") !important;
    font-weight: 900 !important;
    font-size: 1.72em !important;
    position: absolute;
    left: 2px !important;
    top: -8px !important;
    color: #5cb85c;
    display: inline-block;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.mc-reviews--negative li::before {
    color: #999 !important;
}

/* テーブル ストライプ(交互背景色) */
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
    background-color: #f0f4f8;
}
.wp-block-table.is-style-stripes tbody tr:nth-child(even) {
    background-color: #fff;
}

/* TOPページ・カテゴリページ h2中央揃え */
.mc-genre-nav {
    text-align: center;
}
.mc-cat-section > .mc-cat-title {
    display: block;
    text-align: center;
    border-left: none;
    border-bottom: 3px solid #0f4b87;
    background: none;
    padding: 0.3em 0 0.4em;
}
/* カテゴリアーカイブ タイトル中央揃え */
.archive .page-title,
.category .page-title {
    text-align: center;
}

/* ページネーション（カテゴリ・アーカイブ） */
.nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin: 2em 0;
}
.nav-links .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 4px;
    background: #f5f5f5;
    color: #333;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}
.nav-links .page-numbers.current {
    background: #0f4b87;
    color: #fff;
}
.nav-links .page-numbers:hover:not(.current):not(.dots) {
    background: #dde8f3;
    color: #0f4b87;
}
.nav-links .page-numbers.dots {
    background: none;
    cursor: default;
}
.nav-links .prev.page-numbers,
.nav-links .next.page-numbers {
    width: 40px;
    height: 40px;
    font-size: 16px;
}

/*-----------------------------------------------
人気記事セクション
-----------------------------------------------*/
.mc-popular-section {
    margin-top: 3em;
}
/* ランキングバッジ */
.mc-popular-rank {
    position: absolute;
    top: 6px;
    left: 6px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #0f4b87;
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    line-height: 1;
}
.mc-popular-section .eyecatch {
    position: relative;
}
.mc-popular-rank--1 { background: #e6b422; }
.mc-popular-rank--2 { background: #a0a0a0; }
.mc-popular-rank--3 { background: #cd7f32; }

/*-----------------------------------------------
カテゴリ別セクション 2列レイアウト（PC）
-----------------------------------------------*/
#categories {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5em;
}
#categories .mc-cat-compact {
    width: calc(50% - 0.75em);
    margin-bottom: 0;
}
@media only screen and (max-width: 768px) {
    #categories .mc-cat-compact {
        width: 100%;
    }
}
/* typesimple サムネイル: 切れないように contain */
.mc-cat-compact .related_article.typesimple .eyecatch.thum img,
.mc-popular-compact .related_article.typesimple .eyecatch.thum img {
    object-fit: contain;
    background: #f5f5f5;
}

/*-----------------------------------------------
人気記事 compact版（投稿・固定ページ用 PC2列）
-----------------------------------------------*/
.mc-popular-compact {
    margin-top: 3em;
}
.mc-popular-compact > .mc-cat-title {
    border-left: 4px solid #e74c3c;
}
.mc-popular-compact__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0 1.5em;
}
.mc-popular-compact__grid > .related_article {
    width: calc(50% - 0.75em);
}
@media only screen and (max-width: 768px) {
    .mc-popular-compact__grid > .related_article {
        width: 100%;
    }
}
/* typesimple タイトル2行省略 */
.mc-popular-compact .related_article__ttl,
.mc-cat-compact .related_article__ttl {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.5;
}
/* compact版 ランキングバッジ（左上） */
.mc-popular-compact .related_article {
    position: relative;
}
.mc-popular-compact .mc-popular-rank {
    position: absolute;
    top: -3px;
    left: -6px;
    z-index: 3;
}
/* compact版カード: 変数定義 */
:root {
    --card-padding: 10px;
    --card-gap: 12px;
    --card-img-radius: 6px;
}
@media only screen and (max-width: 767px) {
    :root {
        --card-padding: 8px;
        --card-gap: 10px;
        --card-img-radius: 4px;
    }
}
@media only screen and (min-width: 768px) and (max-width: 980px) {
    :root {
        --card-padding: 10px;
        --card-gap: 12px;
        --card-img-radius: 6px;
    }
}
/* compact版カード: スタイル適用 */
.mc-popular-compact .related_article.typesimple,
.mc-cat-compact .related_article.typesimple {
    margin: 0 0 var(--card-gap) !important;
    padding: 0 !important;
}
.mc-popular-compact .related_article.typesimple .related_article__link,
.mc-cat-compact .related_article.typesimple .related_article__link {
    padding: var(--card-padding) !important;
    margin: 0 !important;
}
.mc-popular-compact .related_article.typesimple .eyecatch.thum img,
.mc-cat-compact .related_article.typesimple .eyecatch.thum img {
    border-radius: var(--card-img-radius);
}

/*-----------------------------------------------
記事内「あわせて読みたい」スマホ1カラム・日付上
-----------------------------------------------*/
.related_article.typetext {
    margin-bottom: 0.6em;
}
@media only screen and (max-width: 768px) {
    .related_article.typetext .related_article__meta {
        display: flex;
        flex-direction: column;
    }
    .related_article.typetext .related_article__meta .time__date {
        order: -1;
        margin-bottom: 2px;
    }
}

/* Hide step counter number for custom-label timelines (year, time, etc.) */
.stk_step--custom-label .stk_step__label::after,
.page-id-204 .stk_step__label::after,
.page-id-1355 .stk_step__label::after {
    display: none !important;
}

/* Profile header (about page) */
.mc-profile-header {
    display: flex;
    gap: 1.2em;
    align-items: flex-start;
    margin-bottom: 1.5em;
}
.mc-profile-header__icon {
    flex-shrink: 0;
    width: 100px;
    height: 100px;
}
.mc-profile-header__icon img {
    border-radius: 50%;
    width: 100px;
    height: 100px;
    aspect-ratio: 1/1;
    object-fit: cover;
    display: block;
}
@media screen and (max-width: 767px) {
    .mc-profile-header {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        width: 100% !important;
    }
    .mc-profile-header__icon {
        margin: 0 auto;
    }
}

/*-----------------------------------------------
あおいくんギャラリースライダー
-----------------------------------------------*/
.mc-gallery-section {
    background: #f0f4f8;
    padding: 2em 0 0;
    margin-top: 3em;
    margin-bottom: 0;
}

.mc-gallery-heading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5em;
    font-weight: 700;
    font-size: 1.1em;
    color: #0f4b87;
    margin: 0 0 1em;
    letter-spacing: 0.05em;
}

.mc-gallery-heading::before {
    content: '＼';
    flex-shrink: 0;
}

.mc-gallery-heading::after {
    content: '／';
    flex-shrink: 0;
}

.mc-gallery-slider {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    overflow: hidden;
}

.mc-gallery-track {
    display: flex;
    animation: mc-gallery-slide 30s linear infinite;
}

.mc-gallery-track img {
    flex-shrink: 0;
    width: 200px;
    height: 200px;
    object-fit: cover;
    border-radius: 0;
    margin-right: 0;
}

@keyframes mc-gallery-slide {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes mc-gallery-drag {
    0% { transform: translateX(var(--start)); }
    100% { transform: translateX(var(--end)); }
}

.mc-gallery-slider:hover .mc-gallery-track {
    animation-play-state: paused;
}

.mc-gallery-bottom {
    text-align: center;
    padding: 2em 1em 3.5em;
}

.mc-gallery-disclaimer {
    font-size: 0.8em;
    color: #6b7a8d;
    margin: 0 0 2em;
}

.mc-gallery-contact {
    display: inline-block;
    font-size: 0.85em;
    color: #0f4b87;
    border: 1px solid #0f4b87;
    border-radius: 999px;
    padding: 0.6em 2em;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

.mc-gallery-contact:hover {
    background: #0f4b87;
    color: #fff;
}

@media screen and (max-width: 767px) {
    .mc-gallery-track img {
        width: 150px;
        height: 150px;
        border-radius: 0;
        margin-right: 0;
    }
    .mc-gallery-heading {
        font-size: 0.95em;
    }
}

/*-----------------------------------------------
2-Row Header — Row1:ロゴ+ピル / Row2:等幅ナビ+区切り線
-----------------------------------------------*/
@media only screen and (min-width: 981px) {

    .mc-header-2row {
        box-shadow: 0 1px 6px rgba(0,0,0,0.06);
    }

    /* Row 1 ─ Logo + Actions */
    .mc-header-top .inner-header {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        padding-top: 16px;
        padding-bottom: 15px;
    }
    .mc-header-top .site__logo {
        flex-shrink: 0;
        margin: 0;
        margin-top: -9px;
    }

    /* Actions (pill + search + menu) */
    .mc-header-actions {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-left: auto;
        margin-right: 9px;
    }

    /* Contact pill button (small, with icon) */
    .mc-header-2row .mc-header-actions a.mc-contact-pill,
    #header a.mc-contact-pill {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        gap: 0.3em;
        padding: 6px 16px !important;
        background: #fff !important;
        color: #0f4b87 !important;
        font-size: 12px !important;
        font-weight: 700;
        border-radius: 999px !important;
        text-decoration: none !important;
        white-space: nowrap;
        letter-spacing: 0.04em;
        border: 2px solid rgba(255,255,255,0.6) !important;
        transition: background 0.25s ease, box-shadow 0.25s ease, transform 0.15s ease;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    }
    .mc-header-2row .mc-header-actions a.mc-contact-pill:hover,
    #header a.mc-contact-pill:hover {
        background: rgba(255,255,255,0.9) !important;
        color: #0f4b87 !important;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
        transform: translateY(-1px);
    }

    /* Row 2 ─ Navigation: 等幅・区切り線・英字非表示 */
    .mc-header-nav {
        border-top: 1px solid rgba(255,255,255,0.15);
    }
    .mc-header-nav .inner-header {
        padding-top: 0;
        padding-bottom: 0;
    }
    .mc-header-nav .stk_g_nav {
        width: 100%;
    }
    .mc-header-nav .ul__g_nav {
        display: flex !important;
        justify-content: stretch;
    }
    /* 等幅 + 区切り線 */
    .mc-header-nav .ul__g_nav > li {
        flex: 1 1 0;
        text-align: center;
        border-right: 1px solid rgba(255,255,255,0.18);
    }
    .mc-header-nav .ul__g_nav > li:first-child {
        border-left: 1px solid rgba(255,255,255,0.18);
    }
    .mc-header-nav .ul__g_nav > li > a {
        display: block;
        padding: 10px 4px;
        font-size: 13px;
        white-space: nowrap;
        transition: background 0.2s ease, color 0.2s ease;
    }
    /* ホバー: 背景+文字色変更 */
    .mc-header-nav .ul__g_nav > li > a:hover {
        background: rgba(255,255,255,0.15);
        color: #fff;
    }

    /* カテゴリアイコン（Font Awesome ::before） */
    .mc-header-nav .ul__g_nav > li > a[href*="/investing/"] .gnav_ttl::before { content: "\f201"; font-family: "Font Awesome 6 Free"; font-weight: 900; margin-right: 0.35em; }
    .mc-header-nav .ul__g_nav > li > a[href*="/lifestyle/"] .gnav_ttl::before { content: "\f015"; font-family: "Font Awesome 6 Free"; font-weight: 900; margin-right: 0.35em; }
    .mc-header-nav .ul__g_nav > li > a[href*="/career/"] .gnav_ttl::before { content: "\f0b1"; font-family: "Font Awesome 6 Free"; font-weight: 900; margin-right: 0.35em; }
    .mc-header-nav .ul__g_nav > li > a[href*="/business/"] .gnav_ttl::before { content: "\f135"; font-family: "Font Awesome 6 Free"; font-weight: 900; margin-right: 0.35em; }
    .mc-header-nav .ul__g_nav > li > a[href*="/money/"] .gnav_ttl::before { content: "\f51e"; font-family: "Font Awesome 6 Free"; font-weight: 900; margin-right: 0.35em; }
    .mc-header-nav .ul__g_nav > li > a[href*="/health/"] .gnav_ttl::before { content: "\e4fc"; font-family: "Font Awesome 6 Free"; font-weight: 900; margin-right: 0.35em; }

    /* 英字サブテキスト非表示 */
    .mc-header-nav .ul__g_nav > li > a .gf,
    .mc-header-nav .ul__g_nav > li > a .en,
    .mc-header-nav .ul__g_nav > li > a small {
        display: none !important;
    }

    /* Hide "お問い合わせ" from nav (pill handles it) */
    .mc-header-nav .ul__g_nav > li:has(> a[href*="contact"]) {
        display: none !important;
    }

    .mc-header-actions .nav_btn {
        position: relative;
    }
}

/* Tablet & SP共通: pill非表示・ロゴ左寄せ */
@media only screen and (max-width: 980px) {
    .mc-contact-pill {
        display: none !important;
    }
    #header.mc-header-2row .site__logo {
        order: 0 !important;
        margin: 0 !important;
        text-align: left !important;
        justify-content: flex-start !important;
    }
    #header.mc-header-2row .site__logo .site__logo__title {
        text-align: left !important;
    }
    #header.mc-header-2row .site__logo a {
        justify-content: flex-start !important;
    }
}

/* SPのみ: ロゴ微調整 */
@media only screen and (max-width: 767px) {
    #header.mc-header-2row .site__logo {
        padding-left: 6px !important;
        padding-top: 4px !important;
        margin-bottom: -4px !important;
    }
}

/* Tabletのみ: Row2ナビ非表示・余白調整 */
@media only screen and (min-width: 768px) and (max-width: 980px) {
    .mc-header-nav {
        display: none !important;
    }
    .mc-header-top .inner-header {
        padding-top: 8px;
        padding-bottom: 16px;
    }
    .mc-header-actions .nav_btn {
        padding-bottom: 4px;
    }
}

/* アプリスクショ 2列グリッド（SP1列） */
:root {
    --app-grid-row-gap: 40px;
    --app-grid-col-gap: 20px;
}
.mc-app-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    row-gap: var(--app-grid-row-gap);
    column-gap: var(--app-grid-col-gap);
    margin: 1.5em 0;
}
.mc-app-grid figure {
    margin: 0;
    text-align: center;
}
.mc-app-grid img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.mc-app-grid figcaption {
    font-size: 0.85em;
    color: #666;
    margin-top: 0.15em;
}
.mc-app-grid figcaption::before {
    content: "\f062";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 0.75em;
    margin-right: 0.3em;
    opacity: 0.5;
}
@media only screen and (max-width: 767px) {
    :root {
        --app-grid-row-gap: 56px;
    }
    .mc-app-grid {
        grid-template-columns: 1fr;
        max-width: 320px;
        margin-left: auto;
        margin-right: auto;
    }
}

/*-----------------------------------------------
ライトボックス（記事内画像クリック拡大）
-----------------------------------------------*/
.mc-lightbox {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99999;
    background: rgba(0, 0, 0, 0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s, visibility 0.25s;
    cursor: zoom-out;
}
.mc-lightbox.is-active {
    opacity: 1;
    visibility: visible;
}
.mc-lightbox img {
    max-width: 92vw;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 4px;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.5);
    cursor: default;
}
.mc-lightbox__close {
    position: absolute;
    top: 16px;
    right: 20px;
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.15);
    border: none;
    border-radius: 50%;
    color: #fff;
    font-size: 24px;
    line-height: 40px;
    text-align: center;
    cursor: pointer;
    transition: background 0.2s;
}
.mc-lightbox__close:hover {
    background: rgba(255, 255, 255, 0.3);
}
/* 記事内の画像リンクにカーソル変更 */
.entry-content a[data-lightbox] {
    cursor: zoom-in;
}

