@charset "utf-8";
/*--------------------------------------------------------------
  custom.css - 案件ごとのカスタムデザイン

  pencil-devで作成したデザインはここに書く。

  【記述の優先順位】
  1. CSS変数（色・フォント）→ style.css の :root に定義
  2. レイアウト骨格（カラム等）→ base.css を使う（触らない）
  3. デザイン・見た目 → このファイルに書く

  【構成】
  01. デザイントークン上書き（案件カラー・フォント）
  02. ヘッダー
  03. フッター
  04. トップページ
  05. 共通コンポーネント（ボタン・カード・バナー等）
  06. 投稿・固定ページ
  07. その他
--------------------------------------------------------------*/

/* ============================================================
   01. デザイントークン上書き
   pencil-devのカラー・フォント設定をここで :root に定義
   style.css の変数を上書きする

   【カラー管理】
   - 全カラーをこのブロックで一元管理（2026-03-18: カスタマイザーカラー出力を廃止）
   - --color-primary / --color-sub : 旧カスタマイザー管理 → CSS変数に移管

   【var() 置換済み】2026-03-18 完了（205箇所）
   残存する hardcoded 色はコンポーネント固有色（アコーディオン、サブメニュー等）
============================================================ */
:root {
    /* ---- アクセント・テキスト（pencil-dev デザイントークン） ---- */
    --color-accent:        #da3e5a;  /* アクセント（NEW/カテゴリバッジ等） */
    --color-text-dark:     #000;     /* 見出し・強調テキスト */
    --color-text-base:     #333;     /* 本文テキスト */
    --color-text-medium:   #666;     /* サブテキスト・サイドバー h4 */
    --color-text-gray:     #5c6266;  /* フッター背景・グレータグ */
    --color-white:         #fff;     /* 白背景・白テキスト */

    /* ---- ボーダー・背景 ---- */
    --color-border-dark:   #ccc;     /* スライダー矢印・区切り */
    --color-border:        #ddd;     /* テーブルボーダー */
    --color-border-light:  #eee;     /* 薄い区切り線 */
    --color-bg-light:      #f0f0f0;  /* タブ背景等 */

    /* ---- プライマリ/セカンダリ（旧カスタマイザー管理 → CSS変数に一本化） ---- */
    --color-primary:      #a2b1bf;  /* メインテーマカラー */
    --color-primary-text: #ffffff;  /* メインカラー上の文字色 */
    --color-sub:          #5c6266;  /* サブカラー（フッター・スライドメニュー等） */
    --color-sub-text:     #ffffff;  /* サブカラー上の文字色 */
    --color-link:         #1e73be;  /* リンク・ボタンホバー */
}


/* ============================================================
   02. ヘッダー
============================================================ */
/* ---- base.css から移行: ヘッダー/グローバルナビ (2026-03-14) ---- */
/* ************************************************
  ヘッダー
* ************************************************ */
#hd-ex {
    font-size: 85%;
    line-height: 1.2;
    margin: 5px 0 0 0;
    padding: 0;
    font-feature-settings: "palt";
    letter-spacing: 0.02rem;
}

#hd-ex-in {
    position: relative;
    margin: 0 auto;
    padding: 0 30px;
}

#header {
    padding: 0;
}

#header-in {
    position: relative;
    margin: 0 auto;
    padding: 0 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 80px;
}

#header .align-left {
    /*display: none;*/
    width: 40%;
    /* ロゴの大きさに合わせて調整↓↓↓ */
    max-width: 200px;
    min-width: 120px;
    margin-right: 15px;
}

#header .is-fixed .align-left {
    display: none;
}

#header .align-left h1 img {
    width: 100%;
}

#header .align-left p {
    margin: 0;
}

#header .align-contact {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: nowrap;
    margin: 0 0 0 auto;
    gap: 20px;
}

/* --- Header Type: Business（電話+CTA大表示）--- */
.header-business #header .align-contact {
    flex-wrap: nowrap;
}

.tel-block {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
}

#header .align-right {
    margin: 0;
}

#header .align-center a:hover, #header .align-right a:hover, #header #sl-button a:hover {
    opacity: 0.8;
    text-decoration: none;
}

#header .tel a, #header .mail a {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
}

#header .mail a::before {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    padding: 0 4px 0 0;
}

#header .tel {
    margin: 0;
    padding: 0;
    font-size: 180%;
    line-height: 1.0;
    white-space: nowrap;
}

#header .tel a {
    color: var(--color-text-dark);
    font-weight: bold;
}

#header .tel a::before {
    font-family: "Font Awesome 5 Free";
    font-size: 80%;
    content: "\f3cd";
    font-weight: 900;
    padding: 4px 4px 0px 0;
}

#header .tel-ex {
    margin: 0 0 0 10px;
    line-height: 1.2;
    font-size: 80%;
    font-weight: 600;
    text-align: left;
    font-feature-settings: "palt";
    letter-spacing: 0.02rem;
    white-space: nowrap;
}

#header .tel-hours {
    margin: 2px 0 0;
    font-size: 11px;
    color: #71717A;
    line-height: 1;
    white-space: nowrap;
}

#header .mail {
    margin: 0;
    font-weight: bold;
    /*text-align: right;*/
    letter-spacing: 0px;
    max-width: 224px;
}

#header .mail a {
    margin: 0;
    padding: 10px 24px;
    color: #fff;
    background-color: var(--color-text-dark);
    font-size: 14px;
    font-weight: 600;
    border-radius: 4px;
    height: auto;
}

#header .mail a::before {
    content: "\f0e0";
}

#header #sl-button a {
    color: var(--color-text-dark);
    background-color: var(--color-white);
}

#header .align-append {
    display: none;
}

#header-links>ul {
    display: flex;
    margin: 0;
    flex-wrap: wrap;
    justify-content: flex-end;
}

#header-links ul li {
    padding: 0 1em 0 0;
    font-size: 80%;
    white-space: nowrap;
    position: relative;
}

#header-links li a {
    display: block;
}

#header-links li a::before {
    font-family: "Font Awesome 5 Free";
    font-size: 100%;
    content: "\f105";
    font-weight: 900;
    margin-right: 0.3em;
}

#header-links ul.sub-menu {
    position: absolute;
    display: none;
    padding: 0 10px;
    margin-left: -10px;
    background-color: rgba(255, 255, 255, 0.85);
}

#header-links ul.sub-menu li {
    font-size: 100%;
}

#header-links li:hover ul.sub-menu {
    display: block;
    z-index: 100;
}
/* --- Header Type: Business（電話+CTA大表示）--- */
.header-set.header-business .mail a {
    width: 100%;
}

@media screen and (min-width: 681px) {
    .header-business #hd-ex, .header-business #hd-ex-in {
        margin: 0;
        padding: 0;
    }

    .header-business #header .align-left {
        width: auto;
        max-width: 40%;
    }

    .header-business #header .align-contact {
        padding-right: 390px;
    }

    .header-business #header .align-right.mail-block {
        height: 110px;
        width: 187px;
        position: absolute;
        top: -20px;
        right: 30px;
        margin-left: 0;
    }

    .header-business #header .mail.pc {
        height: 100%;
    }

    .header-business #header .align-center.tel-block {
        height: 110px;
        width: 200px;
        position: absolute;
        top: -20px;
        right: 217px;
        background-color: #f1f1f1;
        flex-direction: column;
        justify-content: center;
        padding: 5px;
    }

    .header-business #header .tel.pc {
        font-size: 170%;
    }

    .header-business #header .tel-ex {
        white-space: normal;
        margin-top: 5px;
    }
}

@media screen and (max-width: 960px) and (min-width: 681px) {
    .header-business #header .align-right.mail-block,
    .header-business #header .align-center.tel-block {
        position: relative;
        top: -20px;
        right: 0;
        height: auto;
        min-height: 60px;
    }

    .header-business #header .align-contact {
        padding-right: 0;
        margin-bottom: -20px;
    }
}

/* --- Header Type: Overlay（MV透過オーバーレイ）--- */
.header-set.header-overlay {
    position: absolute;
    width: 90%;
    top: 15px;
    left: 0;
    right: 0;
    margin: auto;
    z-index: 999;
    padding: 10px;
    background-color: rgba(255, 255, 255, 0.85);
    transition: background-color 0.3s, box-shadow 0.3s;
}

.header-set.header-overlay.is-sticky {
    position: fixed;
    top: 0;
    width: 100%;
    background-color: rgba(255, 255, 255, 0.97);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.header-overlay #header, .header-overlay #gnavi-in {
    padding: 0;
}

.header-overlay #gnavi {
    margin: 0;
    padding: 0;
}

@media screen and (max-width: 960px) {
    .header-set.header-overlay {
        top: 0;
        width: 100%;
    }

    #header-in {
        padding: 0 15px;
    }

    #header .align-contact {
        justify-content: flex-end;
        align-items: stretch;
    }

    #hd-ex-in {
        padding: 0 15px;
    }
}

@media screen and (max-width: 680px) {
    #hd-ex {
        padding: 5px 0;
        font-size: 75%;
        line-height: 1.2;
        margin: 0;
    }

    #hd-ex p {
        margin: 0;
    }

    #header {
        padding: 10px;
    }

    #hd-ex-in, #header-in {
        width: 100%;
        margin: 0;
    }

    #header .align-left {
        margin-top: 0;
        display: block;
    }

    #header .align-contact {
        min-width: 52px;
        width: auto;
    }

    #header .align-center .sm a, #header .align-right .sm a, #header #sl-button a {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 44px;
        width: 42px;
        margin-left: 5px;
        padding: 0;
        border-radius: 5px;
        font-size: 20px;
    }

    #header .align-center .sm {
        min-width: auto;
        font-size: 100%;
    }

    #header .align-append #sl-button {
        margin: 0;
    }

    #header .tel a, #header #sl-button a {
        color: var(--color-text-dark);
        background-color: var(--color-white);
    }

    #header .mail a {
        color: var(--color-text-dark) !important;
        background-color: var(--color-white) !important;
    }

    #header .tel a::before, #header .mail a::before {
        content: none;
    }

    #header .align-right {
        margin: 0;
    }

    #header .align-append {
        display: block;
        margin: 0;
        text-align: center;
    }

    #header #sl-button a.clicked {
        background: var(--color-text-base);
    }
}

/* (max-width: 680px) */
@media screen and (max-width: 480px) {
    #header-in {
        padding: 0;
    }

    #header #sl-button a.clicked {
        background-color: #e7e5e4;
    }
}

/* (max-width: 480px) */
/* スライドメニュー(#slide-menu) */
#slide-menu {
    position: fixed;
    overflow-y: auto;
    top: 0;
    left: -240px;
    width: 240px;
    height: 100%;
    padding: 70px 0;
    background: var(--color-sub);
    color: var(--color-white);
    z-index: 2;
}

#slide-menu ul {
    margin: 0;
    padding: 0 20px;
}

#slide-menu li {
    width: 100%;
    margin: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

#slide-menu li a {
    border-left: 3px solid transparent;
    display: inline-block;
    width: 100%;
    padding: 1em 0;
    color: #e7e5e4;
    text-decoration: none;
}

#slide-menu ul.sub-menu li {
    margin: 0;
    border-bottom: none;
}

#slide-menu ul.sub-menu li a {
    padding: 2px 0;
}

#slide-layer {
    position: fixed;
    top: 0;
    z-index: 1;
    display: none;
    width: 100%;
    height: 100%;
    background-color: transparent;
}

#slide-menu .sns {
    padding: 0 20px;
    margin: 10px 0 20px;
    display: flex;
    justify-content: space-evenly;
}

/****************************************
     グローバルナビ(#gnavi)
****************************************/
#gnavi {
    background-color: transparent;
    font-size: 95%;
    font-weight: bold;
    /*2021.08.13 メインビジュアルの高さ調整にgnaviを含んだヘッダー部の高さを取得するため、上下余白をmarginではなくpaddingに変更*/
    padding: 15px 0;
    margin: 0;
}

#gnavi-in {
    position: relative;
    padding: 0 30px;
    margin: 0;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

#gnavi-in h1, #gnavi-in p.header_logo {
    display: none;
    width: 200px;
    margin: 0 auto 0 0;
}

.sticky #gnavi-in h1, .sticky #gnavi-in p.header_logo {
    display: block;
}

#gnavi-in h1 img, #gnavi-in p.header_logo img {
    max-height: 50px;
    max-width: 400px;
}

#gnavi-in .menu-gnavi-container {
    /*width: 780px;*/
    width: 100%;
}

#gnavi ul {
    padding: 0;
    margin: 0;
    text-align: center;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: stretch;
}

#gnavi li {
    line-height: 1.2;
    /* border-left: 1px solid var(--color-border-dark); */
    -ms-flex: 1 1 0px;
    flex: 1 1 0;
}

#gnavi li:last-child {
    /* border-right: 1px solid var(--color-border-dark); */
}

#gnavi li a {
    text-decoration: none;
    padding: 12px 0.5em 12px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-text-base);
    height: 100%;
    min-height: 2em;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#gnavi li span {
    font-size: 8px;
    color: #777;
    font-weight: 200;
}

#gnavi li a:hover {
    opacity: 0.8;
    text-decoration: none;
}

#gnavi ul li.menu-item {
    position: relative;
    z-index: 1;
}

#gnavi ul li.menu-item::after {
    content: '';
    display: block;
    position: absolute;
    height: 2px;
    width: 0;
    left: 0;
    background-color: var(--color-text-dark);
    transition: width 0.2s ease-in-out;
}

#gnavi ul li.menu-item::after {
    bottom: 0;
}

#gnavi ul li.menu-item:hover::after {
    width: 100%;
}

#gnavi ul li ul.sub-menu {
    display: none;
    position: absolute;
    float: none;
    top: 100%;
    left: 0;
    font-size: 95%;
    background-color: #f7dfa8;
}

#gnavi ul li:hover ul.sub-menu {
    display: block;
    min-width: 200px;
    padding: 10px 0;
}

#gnavi ul ul {
    display: block;
    table-layout: initial;
    width: initial;
}

#gnavi-in li li {
    text-align: left;
    border-left: none !important;
    border-right: none !important;
    display: block;
    vertical-align: initial;
}

#gnavi ul li ul.sub-menu li {
    float: none;
    margin: 0;
}

#gnavi-in li li:last-child {
    margin: 10px 0 0;
}

#gnavi ul li ul.sub-menu li a {
    text-align: left;
    margin: 0;
    padding: 10px 0.5em 10px 20px;
    align-items: flex-start;
    font-size: 90%;
}

#gnavi ul li ul.sub-menu li a::before {
    content: "\f054";
    color: var(--color-white);
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    top: 9.5px;
    left: 8px;
}

#gnavi ul li ul.sub-menu li.current-menu-item a {
    display: block;
    background-color: var(--color-text-base);
}

/* スクロール後の追随するgnavi */
@keyframes slide {
    from {
        max-height: 0px;
    }

    to {
        max-height: 100px;
    }
}

#header.sticky, #gnavi.sticky {
    /*background: #ffffffc9;*/
    background: rgba(255, 255, 255, 0.85);
    color: var(--color-text-dark) !important;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    margin: 0px !important;
    padding: 0px;
    z-index: 1000;
    animation-name: slide;
    animation-duration: 1s;
}

#gnavi.sticky #gnavi-in {
    padding: 15px 10px !important;
}

#gnavi.sticky li span {
    color: var(--color-white);
}

#gnavi.sticky+#eyecatch {
    padding-top: 54px;
}

/*タイル式メニュー*/
#gnavi.gnavi-tiles:not(.sticky) #gnavi-in, #gnavi.gnavi-tiles:not(.sticky) ul.menu>li, #gnavi.gnavi-tiles:not(.sticky) ul.menu>li>a {
    padding: 0;
    margin: 0;
}

#gnavi.gnavi-tiles:not(.sticky) ul.menu>li {
    position: relative;
    width: 100%;
}

#gnavi.gnavi-tiles:not(.sticky) ul.menu>li:before {
    content: "";
    display: block;
    padding-top: 50%;
    /* 高さを幅の50%に固定し、幅2:高さ1 にする */
    /*padding-top: 75%;*/
    /* 高さを幅の75%に固定し、幅4:高さ3 にする */
}

#gnavi.gnavi-tiles:not(.sticky) ul.menu>li>a {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background: var(--color-border) no-repeat center center;
    background-size: cover;
}

#gnavi.gnavi-tiles:not(.sticky) ul.menu>li:nth-child(even)>a {
    background-color: #efefef;
}

/*タイル式メニュー背景画像サンプル*/
#gnavi.gnavi-tiles:not(.sticky) ul.menu>li:nth-child(1)>a {
    background-image: url("http://ae129ev2x2.smartrelease.jp/wps/wp-content/uploads/hm_ec02-1.jpg");
}

#gnavi.gnavi-tiles:not(.sticky) ul.menu>li:nth-child(2)>a {
    background-image: url("http://ae129ev2x2.smartrelease.jp/wps/wp-content/uploads/hm_ec01-1.jpg");
}

@media screen and (max-width: 960px) {
    #gnavi-in {
        /*width: 98%;*/ margin: 0 auto;
        padding: 0 15px;
    }

    #gnavi li a {
        font-size: 80%;
    }

    #gnavi-in h1 img, #gnavi-in p.header_logo img {
        max-width: 150px;
    }

}

/* --- Header Type: Business gnavi --- */
@media screen and (min-width: 681px) {
    .header-business #gnavi-in h1, .header-business #gnavi-in p.header_logo {
        display: block;
    }

    .header-business #gnavi-in .menu-gnavi-container {
        width: 780px;
    }
}

@media screen and (min-width: 961px) {
    .header-business #gnavi {
        margin-right: 400px;
    }
}

@media screen and (max-width: 680px) {
    #gnavi, #gnavi>#gnavi-in>div#mega-menu-wrap-navbar {
        display: none;
        margin: 0 0 20px;
    }

    #gnavi li {
        width: 100%;
        height: 40px;
        background-color: var(--color-sub);
        float: none;
        border-left: none;
        margin: 1px 0 0;
        text-align: center;
        line-height: 40px;
    }

    #gnavi li a {
        color: var(--color-white);
        text-decoration: none;
        display: block;
    }

    #header-in.is-fixed {
        position: fixed;
        z-index: 9999;
        top: 0;
        right: 0;
        left: 0;
        width: 100%;
        margin: auto;
        padding: 10px;
        background-color: rgba(255, 255, 255, 0.85);
    }

    #header-in.is-fixed .align-append {
    }
}

/* (max-width: 680px) */
@media screen and (max-width: 480px) {
    #gnavi li {
        border-left: none;
    }
}

/* (max-width: 480px) */

/* ---- base.css から移行: メガメニューCSS (2026-03-15) ---- */
/****************************************
     メガメニュー(#mega-menu-navbar)
****************************************/
#mega-menu-wrap-navbar #mega-menu-navbar>li.mega-menu-item {
    vertical-align: top !important;
}

#mega-menu-wrap-navbar #mega-menu-navbar>li.mega-menu-item>a.mega-menu-link {
    line-height: 1.4 !important;
    height: initial !important;
    min-height: initial !important;
    margin-top: 10px !important;
    margin-bottom: 0 !important;
}

#mega-menu-wrap-navbar #mega-menu-navbar li.mega-menu-flyout.mega-menu-item-has-children>a.mega-menu-link::after, #mega-menu-wrap-navbar #mega-menu-navbar li.mega-menu-flyout li.mega-menu-item-has-children>a.mega-menu-link::after, #mega-menu-wrap-navbar #mega-menu-navbar>li.mega-menu-item-has-children>a.mega-menu-link::after {
    margin-top: 0 !important;
}


/* ============================================================
   03. フッター
============================================================ */
/* ---- base.css から移行: フッター関連 (2026-03-14) ---- */
/****************************************
     フッター(#footer)
****************************************/
#footer {
    font-size: 90%;
    background-color: var(--color-sub);
    margin: 100px 0 0;
    padding: 40px 0;
}

#footer a {
    color: var(--color-white);
}

#footer-in {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 1%;
}

#footer-in .align-left {
    float: left;
    width: 22.5%;
    margin-right: 2.5%;
}

#footer-in .align-center {
    float: left;
    width: 22.5%;
    margin-right: 2.5%;
}

#footer-in .align-right {
    float: right;
    padding-left: 2.5%;
    width: 50%;
    position: relative;
}

#footer-in .align-right:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    border-left: 1px solid #aaa;
}

#footer-in .shopinfo .shopinfo-logo {
    margin-right: 1em;
}

#footer-in .shopinfo h3 {
    margin: 0 0 10px;
    font-size: 110%;
    line-height: 1.4;
    padding: 0 0 0.5em;
}

#footer-in .shopinfo {
    display: flex;
    justify-content: space-around;
    align-items: center;
}

#footer-in .shopinfo table {
    margin-bottom: 0;
}

#footer-in .shopinfo table th, #footer-in .shopinfo table td {
    padding: 0 0 0.25em;
    font-size: 98%;
    vertical-align: baseline;
    line-height: 1.4;
}

#footer-in .shopinfo table th, #footer-in .shopinfo table td, #footer-in .shopinfo table span {
    background-color: initial;
    border: none;
}

#footer-in .shopinfo table th {
    font-weight: normal;
    width: 15%;
    text-align: left;
    min-width: 5em;
}

#footer-in ul.menu {
    margin-bottom: 0;
}

#footer-in .align-left ul.sub-menu li a, #footer-in .align-center ul.sub-menu li a {
    font-weight: 500;
    /*   font-size: 95%; */
}

#footer-in ul.menu li {
    padding: 0 0.5em 0.3em 0;
    line-height: 1.6;
}

#footer-in ul.menu li::before {
    padding: 0 5px 0 0;
    content: "\f0da";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
}

#footer-in .align-left ul.sub-menu, #footer-in .align-center ul.sub-menu {
    margin: 0;
}

#footer-in ul.sub-menu li {
    padding: 0.3em 5px 0 13px;
    line-height: 1.2;
}

#copyright {
    text-align: center;
    padding: 20px 0;
}

#copyright-in {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 10px;
}

#copyright p {
    margin: 0;
}

#page-top {
    z-index: 9999;
}

@media screen and (max-width: 960px) {
    #footer-in {
        width: 90%;
        margin: 0 auto;
        padding: 0;
    }
}

@media screen and (max-width: 680px) {
    #footer {
    }

    #footer-in {
        width: 96%;
    }

    .contact_ft .mailarea {
        margin-left: 10px;
        float: left;
    }

    #footer-in .align-left {
        width: 49%;
        margin-right: 2%;
        margin-bottom: 1em;
    }

    #footer-in .align-center {
        width: 49%;
        margin: 0 0 1em 0;
    }

    #footer-in .align-right {
        float: none;
        clear: both;
        width: 100%;
        padding-left: 0;
        /*     padding-top: 1em;
    border-top: 1px solid var(--color-text-medium); */
    }

    #footer-in .align-right:before {
        content: none;
    }

    #footer-in ul.menu {
        font-size: 15px;
    }

    #footer-in .align-left ul li, #footer-in .align-center ul li {
        padding: 0;
    }

    #footer-in ul.menu li {
        position: relative;
        line-height: 1.2;
    }

    #footer-in ul.menu li::before {
        position: absolute;
        top: 0.6em;
        left: 0;
    }

    #footer-in ul.sub-menu li::before {
        left: 1em;
    }

    #footer-in ul.menu li a {
        display: block;
        padding: 0.6em 0.5em 0.6em 1em;
    }

    #footer-in ul.menu>li {
        border-bottom: 1px solid var(--color-text-medium);
    }

    #footer-in ul.sub-menu li a {
        padding-left: 2em;
    }

    #footer-in ul.sub-menu li {
        border-top: 1px dotted var(--color-text-medium);
    }

    #footer-in .shopinfo h3 {
        padding: 1em 0 0.5em;
    }

    #copyright-in {
        width: 98%;
        margin: 0 auto;
    }

    #page-top {
        position: fixed;
        bottom: 100px;
        right: 10px;
    }
}

/* (max-width: 680px) */
@media screen and (max-width: 480px) {
    #footer {
        margin: 50px 0 0;
        padding: 20px 0;
    }

    #footer-in .align-left {
        float: none;
        width: 100%;
        margin: 0;
    }

    #footer-in .align-center {
        float: none;
        width: 100%;
        margin: 0;
    }

    #footer-in .align-right {
        margin: 40px 0 0;
        padding: 0;
        border-top: 0;
    }

    #footer-in .shopinfo {
        flex-direction: column;
    }

    #copyright {
        font-size: 80%;
        line-height: 1.2;
    }
}

/* (max-width: 480px) */
@media screen and (max-width: 410px) {
    #page-top {
        position: fixed;
        bottom: 85px;
        right: 10px;
    }
}

/* (max-width: 400px) */
/* 画面下固定 フッターインフォ */
#footer-info {
    background: rgba(238, 238, 238, 0.85);
    font-size: 90%;
}

#footer-info.sticky {
    position: fixed;
    bottom: 0;
    width: 100%;
    z-index: 1000;
    /*   overflow: hidden; */
}

#footer-info-in {
    width: 100%;
    margin: 0 auto;
    max-width: 1160px;
}

#footer-info .contact_in {
    /*  -webkit-box-pack: end;
  justify-content: flex-end;*/
    justify-content: center;
    /*  -webkit-box-align: start;
  align-items: flex-start;*/
    align-items: center;
    border: none;
    margin: 0;
    padding: 10px 0 10px 0;
    max-width: 100%;
    background: transparent;
}

#footer-info .contact_in .tel-ex, #footer-info .contact_in .mail-ex {
    text-align: left;
}

#footer-info .contact_in .mailarea .mail a {
    padding: 0 15px;
}

#footer-info .contact_in .sns {
    display: flex;
    /*  justify-content: space-evenly;*/
}

#footer-info .contact_in .sns div {
    margin-left: 15px;
}

#footer-info .contact_in .sns div:first-child {
    margin-left: 0;
}

/*#footer-info .contact_in .telarea,
#footer-info .contact_in .mailarea {
  margin: 0 0 0 50px;
}*/
#footer-info .contact_in > div {
    margin: 0 25px;
}

@media screen and (min-width: 1365px) {
    #footer-info .contact_in .sns {
        display: none;
    }
}

@media screen and (max-width: 1160px) {
    #footer-info .contact_in {
        padding: 10px 80px 10px 0;
    }
}

@media screen and (max-width: 680px) {
    #footer-info .contact_in .telarea .tel {
        transform: scale(0.95, 1.1);
    }

    #footer-info .contact_in .telarea, #footer-info .contact_in .mailarea {
        margin: 0 auto;
    }

    #footer-info .contact_in {
        padding: 10px 0 10px 0;
    }
}

/* (max-width: 680px) */
@media screen and (max-width: 480px) {
    #footer-info {
    }

    #footer-info .contact_in .telarea, #footer-info .contact_in .mailarea {
    }

    #footer-info .contact_in .telarea {
        margin: 5px auto 5px 10px;
        font-size: 90%;
    }

    #footer-info .contact_in .mailarea {
        margin: 5px 10px 5px auto;
    }

    #footer-info .contact_in .tel-ex, #footer-info .contact_in .mail-ex {
        display: none;
    }
}

/* (max-width: 480px) */
#footer-info i {
    display: none;
}

/* 閉じるボタン */
#footer-info .close-btn {
    /*     display: none; */
}

#footer-info.sticky .close-btn {
    position: absolute;
    top: -26px;
    left: 0;
    background: rgba(238, 238, 238, 0.85);
    margin-left: 10px;
    border-radius: 10px 10px 0 0;
}

#footer-info.sticky .close-btn i {
    display: block;
    cursor: pointer;
    padding: 8px 10px 5px 10px;
}

#footer-info.sticky i:hover {
    opacity: 0.8;
}


/* ============================================================
   04. トップページ
============================================================ */


/* ============================================================
   05. 共通コンポーネント
============================================================ */
/* ---- base.css から移行: サイドバーデザイン詳細 (2026-03-15) ---- */
.col7_3 .sidebar h2 {
    margin: 15px 0 10px;
    padding: 0;
    font-size: 115%;
    line-height: 1.2;
}

.sidebar .widget:first-child h2 {
    margin: 0 0 15px;
}

.col7_3 .sidebar h3 {
    margin: 0;
    padding: 0.5em 0;
    font-size: 115%;
    line-height: 1.2;
}

.col7_3 .sidebar h4 {
    padding: 0.5em 0;
    font-size: 110%;
    color: var(--color-text-medium);
}

.sidebar .banner-wrapper h4 {
    color: inherit;
    font-size: 110%;
    line-height: 1.2;
}

.sidebar li {
    line-height: 2.0;
    padding: 0 0 0 1em;
}

.sidebar .menu li::before {
    padding: 0 0.5em 0;
    content: "\f0da";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
}

.sidebar .menu li li::before {
    padding-right: 0.5em;
    content: "\f0da";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
}

.sidebar table {
    font-size: 90%;
    border: none;
    line-height: 1.4;
}

.sidebar p {
    font-size: 85%;
    line-height: 1.5;
}

.sidebar .contact .contact_in {
    margin: 0;
}

/* ---- base.css から移行: ウィジェット関連CSS (2026-03-15) ---- */

/****************************************
    ウィジェット100％のとき　more ボタンがタイトル下orタイトル横の時のコンテナ
****************************************/
.widget.widget-full-width .my_widget_header {
    max-width: calc(1000px - 2%);
    width: calc(98% - 2%);
    margin: 0 auto;
}
@media screen and (max-width: 960px) {
    .widget.widget-full-width .my_widget_header {
        width: calc(98% - 40px);
    }
}
@media screen and (max-width: 680px) {
    .widget.widget-full-width .my_widget_header {
        width: calc(100% - 40px);
    }
}

/* ********************************************************

  08.ウィジェット関連のレイアウト

******************************************************** */
/******************************
     ウィジェット - 共通
******************************/
.main .widget {
    position: relative;
    margin: 0 auto;
    padding: 20px 0;
}

.my_widget_subtitle {
    margin: 0 0 15px;
}

.sidebar .widget {
    margin: 20px 0 20px;
}

.sidebar .widget:first-child {
    margin: 0 0 20px;
    padding: 0;
}

.sidebar .widget:first-child .contact_in {
    margin: 0 auto 0;
}

.main .widget h4, .sidebar .widget h4 {
    background: none;
    font-weight: normal;
    font-size: 110%;
    padding: 0;
    margin: 5px 0;
}

.widget_nav_menu span {
    display: none;
}

.col10 .widget.widget-full-width {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0;
    padding-right: 0;
}

.custom-field:empty {
    margin: 0;
}

/******************************
    #101モジュールページ挿入(My_Widget101)
******************************/
.home .colfull .widget_my_widget101 {
    max-width: 1000px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

@media screen and (max-width: 960px) {
    .home .colfull .widget_pageContent {
        /*width: 95%;*/ max-width: initial;
    }
}

@media screen and (max-width: 680px) {
    .home .colfull .widget_pageContent {
        float: none;
        /*width: 98%;*/
        /*max-width: 650px;*/
        margin: 0 auto;
    }
}


/******************************
     投稿リスト（タブ形式）
******************************/
.tab-link-list {
    max-width: 1000px;
    margin: 0 auto 25px;
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
}

.tab-link:first-child {
    margin: 0 0 0 0;
}

.tab-link {
    display: block;
    background: #f1f1f1;
    color: var(--color-text-dark);
    border: none;
    border-bottom: none;
    outline: none;
    cursor: pointer;
    margin: 0 0 0 0.7em;
    padding: 1em 1.5em;
    transition: 0.3s;
    font-size: 85%;
    font-weight: 600;
    line-height: 1.4;
    flex-grow: 1;
}

.tab-link:hover {
    opacity: 0.8;
}

.tab-link.active {
    background: var(--color-sub);
    color: var(--color-white);
}

.tab-panel {
    display: none;
}

.tab-panel.active {
    display: block;
}

.col5_5 .tab-link {
    float: none;
    display: inline-block;
}

.col5_5 .tab-link-list {
    white-space: nowrap;
    height: 50px;
    overflow-y: hidden;
}

@media screen and (max-width: 680px) {
    .tab-link {
        float: none;
        display: inline-block;
    }

    .tab-link-list {
        white-space: nowrap;
        height: 50px;
        overflow-y: hidden;
    }
}

/******************************
    #102投稿リスト(My_Widget102)
******************************/
.widget_my_widget102 a {
    color: var(--color-text-dark);
}
.widget_my_widget102 a:hover {
    text-decoration: none;
}
.widget_my_widget102 ul li::after {
    content: "";
    display: block;
    clear: both;
}
.widget_my_widget102 ul li::before {
    content: none;
}
.sidebar .widget_my_widget102 .post_title {
    font-size: 85%;
}

.col7_3 .entry .widget_my_widget102 ul.post-template-basic,
.col10 .widget_my_widget102 ul.post-template-basic,
.colfull .widget_my_widget102 ul.post-template-basic {
    margin: 0 0 18px 0;
    padding: 0;
    /* column-count廃止 → flexboxカード型レイアウトに移行 */
}
.widget_my_widget102 ul li {
    list-style: none;
}
.widget_my_widget102 ul li.post_wrap {
    overflow: hidden;
    margin: 0 0 15px 0;
    padding: 5px 0 0 0;
    break-inside: avoid-column;
    position: relative;
    overflow: hidden;/*float解除用*/
}
.widget_my_widget102 div[class^="post_container"] {
    overflow: hidden;/*float解除用*/
}
/* .widget_my_widget102 a:hover>div *:not(.img_zoom) {
    opacity: 0.9;
} */
.widget_my_widget102 .large_post_thumb img,
.widget_my_widget102 .post_thumb img {
    display: block;
    width: 100%;
    max-width: 100%;
}

.widget_my_widget102 .large_post_thumb {
    margin-bottom: 1em;
}
.widget_my_widget102 .post_thumb {
    width: 75px;
    height: 75px;
    float: left;
    margin: 0 10px 10px 0;
}

.widget_my_widget102 .post_wrap .post_title {
    line-height: 1.2;
    margin: 0 0 0.5em;
}
.widget_my_widget102 .post_new {
    /* border: 1px solid #da3e5a; */
    display: inline-block;
    padding: 3px 5px;
    line-height: 1.2;
    border-radius: 3px;
    margin-right: 0.5em;
    letter-spacing: -0.03em;
    color: var(--color-white);
    background-color: var(--color-accent);
    font-size: 80%;
}
.widget_my_widget102 .post_date {
    margin-right: 0.5em;
    display: inline-block;
}
.widget_my_widget102 .post_cate {
    background: var(--color-sub);
    color: var(--color-white);
    display: inline-block;
    border-radius: 3px;
    padding: 3px 5px;
    margin-right: 0.5em;
    font-size: 80%;
    line-height: 1.2;
}
.widget_my_widget102 .post_excerpt {
    margin: 0 0 1em;
    font-size: 80%;
    line-height: 1.2;
    display: block;
}

.widget_my_widget102 .recruit_table,
.widget_my_widget102 .cf_table {
    margin-bottom: 1em;
}

.widget_my_widget102 .recruit_table th,
.widget_my_widget102 .recruit_table td,
.widget_my_widget102 .cf_table th,
.widget_my_widget102 .cf_table td {
    padding: 10px;
    font-size: 85%;
}

.widget_my_widget102 .slick-slider {
    margin: 0 25px;
}

.widget_my_widget102 .slick-slider .slick-slide {
    margin: 0 5px;
}

/******************************
     #105関連投稿(My_Widget105) およびyarppプラグイン関連投稿
******************************/
/* .widget_my_widget105 {
} */

.widget_my_widget105 a,
.yarpp-related a {
    color: var(--color-text-dark);
}

/* .sidebar .widget_my_widget105 ul {
} */

.sidebar .widget_my_widget105 ul li {
    padding: 0;
    margin: 0 0 15px 0;
}

.sidebar .widget_my_widget105 ul li::after {
    content: "";
    display: block;
    clear: both;
}

/* .col5_5 .entry .widget_my_widget105 ul li, .col7_3 .entry .widget_my_widget105 ul li, .col10 .entry .widget_my_widget105 ul li, .colfull .entry .widget_my_widget105 ul li, .colfull-no-margin .entry .widget_my_widget105 ul li { */
.entry .widget_my_widget105 ul li,
.entry .yarpp-related ul li {
    overflow: hidden;
    list-style: none;
    margin: 0 0 15px 0;
    padding: 0;
    break-inside: avoid-column;
}

/* .col7_3 .entry .widget_my_widget105 ul li .wd_thumbnail, .col10 .entry .widget_my_widget105 ul li .wd_thumbnail, .colfull .entry .widget_my_widget105 ul li .wd_thumbnail, .colfull-no-margin .entry .widget_my_widget105 ul li .wd_thumbnail { */
.entry .widget_my_widget105 ul li .wd_thumbnail,
.entry .yarpp-related ul li .wd_thumbnail {
    display: block;
    width: 75px;
    height: 75px;
    overflow: hidden;
    float: left;
    margin: 0 10px 10px 0;
    padding: 0;
}

.entry .yarpp-related h3 {/*yarppスタイルの打ち消し*/
    font-size: 22px;
    margin: 60px auto 15px;
    padding: 0.6em 0;
}
@media screen and (max-width: 480px) {
    .entry .yarpp-related h3 {/*yarppスタイルの打ち消し*/
        font-size: 4vw;
    }
}

.widget_my_widget105 .wp_rp_title,
.yarpp-related .wp_rp_title {
    display: block;
    line-height: 1.2;
    margin: 0 0 10px 0;
    padding: 0;
    font-weight: 400;
}

.widget_my_widget105 .wp_rp_thumbnail img,
.yarpp-related .wp_rp_thumbnail img {
    /* width: 110px; */
    /* height: 110px; */
    float: left;
    margin: 0 10px 10px 0;
    padding: 0;
    max-width: 100%;
}

.widget_my_widget105 ul .wp_rp_excerpt,
.yarpp-related ul .wp_rp_excerpt {
    display: block;
    line-height: 1.2;
    font-size: 80%;
}

.widget_my_widget105 a.wp_rp_thumbnail,
.yarpp-related a.wp_rp_thumbnail {
    display: block;
    width: 75px;
    height: 75px;
    overflow: hidden;
    float: left;
    margin: 0 10px 10px 0;
    padding: 0;
}

/********************
  #202お問い合わせ(My_Widget202)
********************/
.widget_my_widget202 p.lead span {
    white-space: nowrap;
    display: inline-block;
}

/********************
  #201会社情報(My_Widget201)
********************/
.widget_my_widget201 th span {
    white-space: nowrap;
    display: inline-block;
}

.widget_my_widget201 [itemprop="telephone"] a[href ^="tel:"]::after {
    content: "";
    /*telアイコンを表示しない*/
}

/********************
  #10グーグルマップ(My_Widget09)
********************/
.widget_my_widget203 .embed-container {
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 30px;
    height: 0;
    overflow: hidden;
    margin-top: 20px;
    margin-bottom: 20px;
}

.widget_my_widget203 .embed-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.widget_my_widget203 .embed-container .mce-preview-object {
    position: static;
}

/********************
  #11ソーシャルボタン(My_Widget10)
********************/
.widget_my_widget302 .sns {
    margin: 30px auto;
}

.widget_my_widget302 .sns ul {
    display: flex;
    justify-content: center;
}

.widget_my_widget302 .sns li {
    margin: 5px 0;
}

.widget_my_widget302 .sns .snsb li {
    margin: 0 10px 0 0;
    padding: 0px;
    list-style-type: none;
}

.widget_my_widget302 .sns .snsb li::before {
    padding: 0;
    margin: 0;
    content: none;
}

.widget_my_widget302 .sns .snsb.clearfix {
    padding-top: 20px 0;
}

/********************
  #12カテゴリ一覧(My_Widget15)
********************/
.widget_my_widget104 ul {
    text-align: center;
}

.widget_my_widget104 ul li {
    display: inline-block;
    margin: 0 5px 10px;
}

.widget_my_widget104 ul li::before {
    content: none;
}

.widget_my_widget104 ul li a {
    display: block;
    font-size: 0.9em;
    color: var(--color-text-base);
    border: 1px solid var(--color-text-base);
    min-width: 145px;
    line-height: 1.4;
    position: relative;
    margin: 0 auto;
    padding: 0.5em 2.5em;
    text-decoration: none;
    z-index: 1;
}

.widget_my_widget104 li a::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    transition: 0.3s ease all;
    background: var(--color-text-dark);
    z-index: -1;
}

.widget_my_widget104 li a::after {
    content: "\f101";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    display: inline-block;
    margin: 0 -0.5em 0 0.5em;
    line-height: 1.0;
}

.widget_my_widget104 ul li a:hover {
    color: var(--color-white);
}

.widget_my_widget104 ul li a:hover::before {
    width: 100%;
}

/******************************
  #15投稿リスト（カスタム投稿タイプ）(My_Widget20)
******************************/
.widget_my_widget103 a {
    color: var(--color-text-dark);
}
.widget_my_widget103 a:hover {
    text-decoration: none;
}
.widget_my_widget103 ul li::after {
    content: "";
    display: block;
    clear: both;
}
.widget_my_widget103 ul li::before {
    content: none;
}
.sidebar .widget_my_widget103 .post_title {
    font-size: 85%;
}

.col7_3 .entry .widget_my_widget103 ul.post-template-basic,
.col10 .widget_my_widget103 ul.post-template-basic,
.colfull .widget_my_widget103 ul.post-template-basic {
    margin: 0 0 18px 0;
    padding: 0;
    /* column-count廃止 → flexboxカード型レイアウトに移行 */
}
.widget_my_widget103 ul li {
    list-style: none;
}
.widget_my_widget103 ul li.post_wrap {
    overflow: hidden;
    margin: 0 0 15px 0;
    padding: 5px 0 0 0;
    break-inside: avoid-column;
    position: relative;
    overflow: hidden;/*float解除用*/
}
.widget_my_widget103 div[class^="post_container"] {
    overflow: hidden;/*float解除用*/
}
/* .widget_my_widget103 a:hover>div *:not(.img_zoom) {
    opacity: 0.9;
} */
.widget_my_widget103 .large_post_thumb img,
.widget_my_widget103 .post_thumb img {
    display: block;
    width: 100%;
    max-width: 100%;
}

.widget_my_widget103 .large_post_thumb {
    margin-bottom: 1em;
}
.widget_my_widget103 .post_thumb {
    width: 75px;
    height: 75px;
    float: left;
    margin: 0 10px 10px 0;
}

.widget_my_widget103 .post_wrap .post_title {
    line-height: 1.2;
    margin: 0 0 0.5em;
}
.widget_my_widget103 .post_new {
    /* border: 1px solid #da3e5a; */
    display: inline-block;
    padding: 3px 5px;
    line-height: 1.2;
    border-radius: 3px;
    margin-right: 0.5em;
    letter-spacing: -0.03em;
    color: var(--color-white);
    background-color: var(--color-accent);
    font-size: 80%;
}
.widget_my_widget103 .post_date {
    margin-right: 0.5em;
    display: inline-block;
}
.widget_my_widget103 .post_term {
    background: var(--color-sub);
    color: var(--color-white);
    display: inline-block;
    border-radius: 3px;
    padding: 3px 5px;
    margin-right: 0.5em;
    font-size: 80%;
    line-height: 1.2;
}
.widget_my_widget103 .post_excerpt {
    margin: 0 0 1em;
    font-size: 80%;
    line-height: 1.2;
    display: block;
}

.widget_my_widget103 .cf_table {
    margin-bottom: 1em;
}

.widget_my_widget103 .cf_table th,
.widget_my_widget103 .cf_table td {
    padding: 10px;
    font-size: 85%;
}

.widget_my_widget103 .slick-slider {
    margin: 0 25px;
}

.widget_my_widget103 .slick-slider .slick-slide {
    margin: 0 5px;
}

/******************************
  #16カテゴリリスト(My_Widget22)
******************************/

/******************************
  #301バナー(My_Widget301)
******************************/
.widget_my_widget301 .slick-slider,
.widget_my_widget301 .slick-slider {
    margin: 0 25px;
}
/*ショートコード用 スライダー形式の時、親要素の幅に合わせる*/
.widget_my_widget301.sw_banner,
.widget_my_widget301.sw_banner {
    width: 100%;
}
.widget_my_widget301.sw_banner a,
.widget_my_widget301.sw_banner a {
    margin: 0;
    width: auto;
}

/* 現行の #301 バナーショートコード用レイアウト調整 */
.widget_my_widget301.sw_banner .colbox.slick-slider {
    display: block;
}

.widget_my_widget301.sw_banner .slick-list {
    overflow: hidden;
}

.widget_my_widget301.sw_banner .slick-track {
    display: flex;
    align-items: stretch;
}

.widget_my_widget301.sw_banner .slick-slide {
    height: inherit !important;
}

.widget_my_widget301.sw_banner .slick-slide > div,
.widget_my_widget301.sw_banner .slick-slide > div > div,
.widget_my_widget301.sw_banner .bn_wrap,
.widget_my_widget301.sw_banner .bn_wrap > a {
    height: 100%;
}

.widget_my_widget301.sw_banner .bn_wrap {
    display: flex;
    flex-direction: column;
}

.widget_my_widget301.sw_banner .img_zoom {
    flex: 0 0 auto;
}


/* ============================================================
   06. 投稿・固定ページ
============================================================ */
/* ---- base.css から移行: 見出しデザイン (2026-03-15) ---- */
.col10 .entry h3 {
    text-align: center;
}

.col5_5 h2, .col7_3 h2, .col10 h2, .colfull h2, .error404 h2 {
    margin: 50px auto 25px;
    border-left: none;
}

.col5_5 h3, .col7_3 h3, .col10 h3, .colfull h3, .error404 h3 {
    margin: 40px auto 15px;
    border-left: none;
}

.col5_5 h4, .col7_3 h4, .col10 h4, .colfull h4 {
    margin: 30px auto 10px;
    border-left: none;
}

.col5_5 h5, .col7_3 h5, .col10 h5, .colfull h5 {
    margin: 25px auto 10px;
    border-left: none;
}

/* ---- base.css から移行: エントリーデザインCSS (2026-03-14) ---- */
.entry p {
    font-size: 16px;
    line-height: 1.8;
    font-weight: 400;
    letter-spacing: 0.03em;
    margin-bottom: 1.2em;
}

.entry h1 {
    margin: 1em 0;
    padding: 1.5em 0;
    font-size: 1.7em;
    border-bottom: var(--color-text-dark) 1px solid;
}

.entry p+h1 {
    margin-top: 2em;
}

.entry h2 {
    font-size: 24px;
    text-align: left;
    font-weight: bold;
    margin: 50px 0 25px;
    padding: 0 0 15px 0;
    border-bottom: 2px solid var(--color-text-dark);
}

.entry p+h2 {
    margin-top: 2em;
}

.entry h3 {
    font-size: 20px;
    padding: 0.5em 0;
    margin: 40px 0 15px;
}

.entry p+h3 {
    margin-top: 1.8em;
}

.entry h4 {
    font-size: 18px;
    margin: 30px 0 10px;
    padding: 0.4em 0;
    color: var(--color-text-dark);
    font-weight: bold;
}

.entry h5 {
    font-size: 1.1em;
    padding: 0.3em 0;
    margin: 25px 0 10px;
    font-weight: bold;
}

.entry p+h5 {
    margin-top: 2em;
}

.entry h6 {
    font-size: 1em;
    padding: 0.3em 0;
    margin: 20px 0 8px;
    font-weight: bold;
}

/*    10/10レイアウト   */
.page-template-10-layout .entry p.text_width {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    font-size: 20px;
}

.page-template-10-layout .entry .article-container>h2 {
    font-size: 2.5em
}

.page-template-10-layout .entry .article-container>h2, .page-template-10-layout .entry .article-container>h3, .page-template-10-layout .entry .article-container>h4 {
    text-align: center;
    max-width: 28em;
    margin-left: auto;
    margin-right: auto;
}

.page-template-10-layout .entry .article-container>h4 {
    display: table;
}

@media screen and (max-width: 680px) {
    .entry h1 {
        font-size: 1.6em;
    }

    .entry h2 {
        margin: 30px 0;
        padding: 0px 0 15px 0;
        font-size: 4.26666667vw;
        line-height: 1.7;
    }

    .entry h3 {
        font-size: 1.55em;
    }

    .page-template-10-layout .entry p.text_width {
        font-size: 14px;
    }

    .page-template-10-layout .entry .article-container>h2 {
        font-size: 2em
    }

    img.alignleft, img.alignright,img.aligncenter {
        width: 100%;
        object-fit: contain;
    }
}

@media screen and (max-width: 480px) {
    .entry h1 {
        font-size: 1.6em;
    }

    .entry h3 {
        font-size: 4vw;
    }
}

/* リンクオブジェクト */
.entry a.mark[target="_blank"]::after, .entry a.mark[target="blank"]::after, .entry a.mark[href$=".pdf"]::after, .entry a.mark[href$=".doc"]::after, .entry a.mark[href$=".docx"]::after, .entry a.mark[href$=".xls"]::after, .entry a.mark[href$=".xlsx"]::after, .entry a.mark[href$=".zip"]::after, .entry a.mark[href^="mailto:"]::after, .entry a.mark[href ^="tel:"]::after {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 5px;
    font-size: 110%;
    line-height: 1.0;
}

.entry a.mark[target="_blank"]::after, .entry a.mark[target="blank"]::after {
    content: "\f0c1";
}

.entry a.mark[href$=".pdf"]::after {
    content: "\f1c1";
    color: var(--color-accent);
}

.entry a.mark[href$=".doc"]::after, .entry a.mark[href$=".docx"]::after {
    content: "\f1c2";
    color: var(--color-link);
}

.entry a.mark[href$=".xls"]::after, .entry a.mark[href$=".xlsx"]::after {
    content: "\f1c3";
    color: #18a011;
}

.entry a.mark[href$=".zip"]::after {
    content: "\f1c6";
}

.entry a.mark[href^="mailto:"]::after {
    content: "\f0e0";
}

.entry a.mark[href ^="tel:"]::after {
    content: "\f095";
    margin-left: 2px;
}

.entry .blank:after {
    display: none;
}

/* 引用 */
.entry blockquote {
    color: var(--color-text-dark);
    margin: 2em 0;
    padding: 15px 15px;
    border: 1px solid var(--color-text-dark);
    position: relative;
    z-index: 1;
}

.entry blockquote p {
    margin: 0;
    line-height: 1.4;
    position: relative;
    z-index: 2;
    font-style: normal;
}

.entry blockquote p strong:first-child {
    padding: 0 0 5px;
    font-size: 1.1em;
}

.entry blockquote p strong {
    background: none;
    padding: 5px 0;
    display: inline-block;
}

.entry blockquote.link_business {
    color: var(--color-text-dark);
    background-color: #ffff00;
    max-width: 600px;
    margin: 2em 0;
    padding: 15px 15px;
    border: none;
}

.entry blockquote.link_business p{
    margin-bottom:0;
}

@media screen and (max-width: 480px) {
    .entry blockquote {
        padding: 20px 10px;
        margin-left: 15px;
        border: none;
        border-left: 2px solid var(--color-border);
    }
}

/* 箇条書き */
.entry ul, .entry ol {
    list-style-position: inside;
}

.entry ul li, .entry ol li {
    padding-left: 1em;
}

.entry ul li {
    list-style: disc;
    list-style-position: inside;
}

.entry ol li {
    list-style-type: decimal;
}

/* 箇条書き - dl */
.entry dl {
    margin: 0 auto 1em;
    padding: 0;
}

.entry dt, .entry dd {
    line-height: 1.6;
}

.entry dt {
    padding: 0.5em 0 0.5em 0;
    font-weight: 600;
    /* border-bottom: var(--color-text-dark) 1px solid; */
}

.entry dd {
    padding: 0.6em 0 0.6em 0;
}

.entry dd+dt {
    margin-top: 1em;
}

@media screen and (max-width: 480px) {
    .entry dt {
        font-size: 1.15em;
    }

    .entry dd {
        font-size: 0.95em;
    }
}

/* テーブル */
.entry th, .entry td {
    border: 1px solid var(--color-border-light);
    background-color: var(--color-white);
    line-height: 1.5;
}

.entry th {
    color: var(--color-text-dark);
    background-color: var(--color-border-light);
    text-align: center;
    width: 25%;
}

.entry thead th, .entry thead td {
    padding: 20px 32px;
    background: var(--color-border-light);
    border: 1px solid #dcdcdc;
    color: var(--color-text-dark);
}

.entry thead td {
    font-weight: normal;
}

.entry tbody th, .entry tbody td {
    padding: 20px 28px;
    border: 1px solid var(--color-border-light);
}

.entry tfoot th, .entry tfoot td {
    font-size: 80%;
}

/* フォーム */
.entry form {
    padding-bottom: 50px;
}

.entry form table {
    display: block;
    padding: 0;
    border: none;
    margin: 0;
}

.entry form table tbody, .entry form table tr {
    display: block;
}

.entry form table tr {
    padding-bottom: 25px;
}

.entry form table th, .entry form table td {
    display: block;
    border: none;
    background: transparent;
    padding: 0 0 7px;
    width: 100% !important;
    color: var(--color-text-dark);
}

.entry form table th {
    text-align: left;
}

.entry form table input[type="text"], .entry form table input[type="email"] {
    width: 70%;
}

.entry form table input[type="date"]{
    width: 10em;
    padding-left: 1em;
    font-size: 16px;
    line-height: 1.4;
    border: 1px #bbb solid;
    padding: 0.4em 1em;
}

.entry form table input[type="number"]{
    font-size: 16px;
    line-height: 1.4;
    border: 1px #bbb solid;
    padding: 0.4em 1em;
}

.entry form table input[type="text"]#pref, .entry form table input[type="text"]#city {
    width: 10em;
}

.entry form table input[type="tel"]#zip {
    width: 9em;
}

.entry form table input[type="radio"], .entry form table input[type="checkbox"] {
    vertical-align: middle;
    margin: 6px 3px;
    width: auto;
}

.entry form table .mwform-tel-field input[type="text"], .entry form table .mwform-fax-field input[type="text"] {
    width: 6em;
}

.entry form table .mwform-radio-field.horizontal-item, .entry form table .mwform-checkbox-field.horizontal-item {
    margin: 0 10px 0 0;
}

.entry form table .mwform-radio-field label, .entry form table .mwform-checkbox-field label {
    cursor: pointer;
}

.entry form table .mwform-radio-field label [type="radio"], .entry form table .mwform-checkbox-field label [type="checkbox"] {
    display: none;
}

.entry form table .mwform-radio-field label .mwform-radio-field-text, .entry form table .mwform-checkbox-field label .mwform-checkbox-field-text {
    line-height: 1.6;
    display: inline-block;
}

.entry form table .mwform-radio-field label .mwform-radio-field-text::before, .entry form table .mwform-checkbox-field label .mwform-checkbox-field-text::before {
    font-family: "Font Awesome 5 Free";
    font-size: 18px;
    width: 18px;
    height: 18px;
    transition: 0.1s;
}

.entry form table .mwform-radio-field label .mwform-radio-field-text::before {
    content: "\f192";
    font-weight: 400;
    color: #bbb;
    display: inline-block;
    margin-right: 5px;
}

.entry form table .mwform-radio-field label [type="radio"]:checked+.mwform-radio-field-text::before {
    font-weight: 900;
    color: var(--color-text-base);
}

.entry form table .mwform-checkbox-field label .mwform-checkbox-field-text::before {
    content: "\f00c";
    font-weight: 900;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin: 0 5px -5px 0;
    border-radius: 3px;
    background: var(--color-border-light);
    border: #bbb 1px solid;
    color: transparent;
}

.entry form table .mwform-checkbox-field label [type="checkbox"]:checked+.mwform-checkbox-field-text::before {
    color: var(--color-text-base);
}

.entry form table textarea {
    width: 100%;
    min-height: 180px;
}

.entry form input[type="submit"], .entry form input[type="reset"], .entry form input[type="button"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    margin: 0 auto 25px;
    padding: 5px 20px;
    min-width: 160px;
    max-width: 300px;
    display: block;
    text-align: center;
    font-size: 15px;
    white-space: nowrap;
    font-weight: bold;
    border: 2px solid var(--color-text-base);
    border-radius: 3px;
}

.entry form input[type="submit"] {
    background: var(--color-text-base);
    color: var(--color-white);
     border: 2px solid var(--color-text-base);
}

.entry form input[type="reset"] {
    background: var(--color-white);
    color: var(--color-text-base);
}

.entry form input:hover[type="submit"], .entry form input:hover[type="reset"] {
    opacity: 0.8;
}

.entry form.post-password-form input[type="submit"] {
    margin: 10px 0;
    max-width: 200px;
    padding: 5px;
}

.entry form .asterisk {
    color: var(--color-accent);
}

.entry form .error {
    margin: 0.3em 0 0 0.5em;
}

@media screen and (max-width: 680px) {
    .entry form table input[type="text"], .entry form table input[type="email"] {
        width: 100%;
    }
}

@media screen and (max-width: 480px) {
    .entry form table {
        padding: 30px 0;
    }

    .entry form table .mwform-tel-field input[type="text"], .entry form table .mwform-fax-field input[type="text"] {
        width: 4.5em;
    }
}

/* ギャラリー */
.entry .gallery {
    overflow: hidden;
    margin: 30px 0;
}

.entry .gallery dl dt, .entry .gallery dl dd {
    border-left: none;
    border-bottom: none;
    padding: 0;
    position: relative;
}

.entry .gallery dl dd {
    padding-left: 10px;
    margin-left: 10px;
}

.entry .gallery-item {
    float: left;
    width: 50%;
    margin: 0 0 20px;
    padding: 0;
}

.entry .gallery-icon {
    text-align: center;
    margin: 0 1%;
}

.entry .gallery-caption {
    color: var(--color-text-base);
    font-size: 80%;
    margin: 0;
    padding: 5px 10px;
    text-align: left;
    line-height: 1.6;
}

.entry .gallery dl dd::before {
    content: "\f0da";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    top: 0px;
    left: 0px;
}

.entry .gallery-columns-1 .gallery-item {
    width: 100%;
    margin-right: 0;
}

.entry .gallery-columns-2 .gallery-item {
    width: 49%;
    margin-right: 1%;
}

.entry .gallery-columns-2 dl:nth-of-type(2n) {
    margin-left: 1%;
    margin-right: 0;
}

.col10 .entry .gallery {
    width: 100%;
    max-width: 1000px;
    margin: 30px auto;
}

.entry .gallery-columns-3 .gallery-item {
    width: 32%;
    margin-right: 1%;
}

.entry .gallery-columns-3 dl:nth-of-type(3n-1) {
    margin-left: 1%;
    margin-right: 1%;
}

.entry .gallery-columns-3 dl:nth-of-type(3n) {
    margin-left: 1%;
    margin-right: 0;
}

.entry .gallery-columns-4 .gallery-item {
    width: 23.5%;
    margin: 0 1% 2% 0;
}

.entry .gallery-columns-4 dl:nth-of-type(4n-1), .entry .gallery-columns-4 dl:nth-of-type(4n-2) {
    margin-left: 1%;
    margin-right: 1%;
}

.entry .gallery-columns-4 dl:nth-of-type(4n) {
    margin-left: 1%;
    margin-right: 0;
}

.entry .gallery-columns-5 .gallery-item {
    width: 18.4%;
    margin: 0 1% 2% 0;
}

.entry .gallery-columns-5 dl:nth-of-type(5n-1), .entry .gallery-columns-5 dl:nth-of-type(5n-2), .entry .gallery-columns-5 dl:nth-of-type(5n-3) {
    margin-left: 1%;
    margin-right: 1%;
}

.entry .gallery-columns-5 dl:nth-of-type(5n) {
    margin-left: 1%;
    margin-right: 0;
}

.entry .gallery-columns-6 .gallery-item {
    width: 15%;
    margin: 0 1% 2% 0;
}

.entry .gallery-columns-6 dl:nth-of-type(6n-1), .entry .gallery-columns-6 dl:nth-of-type(6n-2), .entry .gallery-columns-6 dl:nth-of-type(6n-3), .entry .gallery-columns-6 dl:nth-of-type(6n-4) {
    margin-left: 1%;
    margin-right: 1%;
}

.entry .gallery-columns-6 dl:nth-of-type(6n) {
    margin-left: 1%;
    margin-right: 0;
}

.entry p.wp-caption-text {
    font-size: 80%;
    line-height: 1.4;
}

@media screen and (max-width: 680px) {
    .col10 .entry .gallery {
        width: auto;
        max-width: initial;
        max-width: auto;
        margin: 30px auto;
    }
}

/* (max-width: 680px) */
@media screen and (max-width: 480px) {
    .entry .gallery-columns-2 .gallery-item, .entry .gallery-columns-2 .gallery-item, .entry .gallery-columns-3 .gallery-item, .entry .gallery-columns-4 .gallery-item {
        float: none;
        width: 100%;
        margin: 0 auto 2%;
    }

    .entry .gallery-columns-2 dl:nth-of-type(2n), .entry .gallery-columns-3 dl:nth-of-type(3n-1), .entry .gallery-columns-3 dl:nth-of-type(3n), .entry .gallery-columns-4 dl:nth-of-type(4n-1), .entry .gallery-columns-4 dl:nth-of-type(4n-2), .entry .gallery-columns-4 dl:nth-of-type(4n) {
        margin: 0 auto 2%;
    }

    /* .gallery-columns-4を2段組にする場合は コメント外す
  .entry .gallery-columns-4 .gallery-item {
    float: left;
    width: 50%;
    margin: 0 auto;
  }
  */
    .entry .gallery-item img {
        margin: 0 auto;
    }

    .entry .gallery br {
        display: none;
    }
}




/* ============================================================
   07. その他
============================================================ */
/* ---- base.css から移行: 03-07ページ別CSS (2026-03-14) ---- */
/* ********************************************************

  03.トップページのレイアウト

******************************************************** */
/* アイキャッチ(#eyecatch) */
.home #eyecatch.eyecatch-fullheight {
    width: 100%;
    height: 100vh;
    overflow: hidden;
    min-height: 300px;
    position: relative;
}

.home #eyecatch-in {
    width: 100%;
    height: 100%;
    padding: 0;
}

#eyecatch-in .eyecatch-slider.pc {
    display: block!important;
}

#eyecatch-in .eyecatch-slider.sm {
    display: none!important;
}

@media screen and (max-width: 680px) {
    #eyecatch-in .eyecatch-slider.pc {
        display: none!important;
    }

    #eyecatch-in .eyecatch-slider.sm {
        display: block!important;
    }
}

#eyecatch-in #eyecatch-slider-wrapper, #eyecatch-in .eyecatch-slider, #eyecatch-in .eyecatch-slider .slick-list, #eyecatch-in .eyecatch-slider .slick-track {
    height: 100%;
}

#eyecatch-in .eyecatch-slider .slick-track {
    overflow: hidden;
    /*IEだと#eyecatch-inのoverflow: hiddenが効かなかったので*/
}

#eyecatch-in .eyecatch-slider img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

/* モバイルで横長画像を縦長コンテナに表示する際、上部を表示（2026-03-16） */
@media screen and (max-width: 680px) {
    #eyecatch-in .eyecatch-slider img {
        object-position: center 30%;
    }

    /* モバイルでバナー画像が異常に拡大される問題を修正（2026-03-16） */
    .sw_banner .img_zoom,
    .sw_banner .img_zoom img {
        max-width: 100% !important;
        width: auto !important;
        height: auto !important;
    }

    .sw_banner .bn_wrap {
        max-width: 100% !important;
    }
}
.eyecatch-fullheight .slick-dots {
    bottom: 10px;
}

/*フルワイズ画像zoom*/
#eyecatch-in .eyecatch-slider .slide-animation {
    /*スライドの切り替わりは5000msなので、ズーム効果が止まらないよう少し長めの秒数に*/
    animation: fadezoom 6500ms ease-out 0s forwards;
}

@keyframes fadezoom {
    0% {
        transform: scale(1);
    }

    100% {
        transform: scale(1.2);
    }
}

/*カルーセル時の左右矢印の位地調整*/
#eyecatch-in .eyecatch-slider .slick-arrow {
    z-index: 100;
}

#eyecatch-in .eyecatch-slider .slick-prev {
    left: 1rem;
}

#eyecatch-in .eyecatch-slider .slick-next {
    right: 1rem;
}

/*カルーセル時 スライド高さを揃える*/
#eyecatch-in .eyecatch-slider .slick-track {
    display: flex;
}

#eyecatch-in .eyecatch-slider .slick-slide {
    height: auto !important;
}

/*フルワイズ動画*/
#eyecatch-in #eyecatch-movie {
    height: 100%;
    width: 100%;
    position: relative;
}

#eyecatch-movie .eyecatch-content {
    color: #ffffff;
}

#eyecatch-movie video {
    object-fit: cover;
    width: 100%;
    height: 100%;
}


/*youtube動画(16:9)の比率を保ち、object-fit:coverのような挙動にする*/
.yt-js #eyecatch-in #eyecatch-movie {
    /*上下中央固定*/
    /*position: absolute;*/
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    height: auto;
    /*jsで親コンテナー#eyecatch-movieの横幅を調整*/
}

/*youtube動画の縦横比を黒い枠を出さずに保持*/
.yt-js #eyecatch-in #yt-player-wrapper {
    padding-bottom: 56.25%;
    /*高さ(親コンテナー横幅に依存)をpaddingで指定(16:9)=(横100%:縦56.25%)*/
    height: 0px;
    position: relative;
}

.yt-js #eyecatch-in #eyecatch-movie iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#eyecatch-movie .eyecatch-filter {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
}

#eyecatch-movie .eyecatch-filter.filter-on {
    background-color: #20202030;
    background-image: radial-gradient(#6f6f6f 1px, transparent 0px);
    background-size: 3px 3px;
}

/*#eyecatch-in .metaslider {
    margin: 0 auto 20px;
}*/
/* ********************************************************

  04.ページ共通のレイアウト

******************************************************** */
/****************************************
     アイキャッチ(#eyecatch)
****************************************/
.page #eyecatch-in, .single #eyecatch-in, .category #eyecatch-in {
    max-width: 100%;
    padding: 0;
}

.page #eyecatch-in img, .single #eyecatch-in img, .category #eyecatch-in img {
    width: 100%;
    min-height: 200px;
    object-fit: cover;
    margin: 0 auto;
}

@media screen and (max-width: 480px) {
    .page #eyecatch-in img, .single #eyecatch-in img, .category #eyecatch-in img {
        min-height: 180px;
        margin: 0 auto 50px;
    }
}

/* (max-width: 480px) */
/****************************************
     パンクズリスト(#breadcrumb)
****************************************/
.page #breadcrumb {
    max-width: 1000px;
    margin: 0 0 30px;
    padding: 0;
}

.page #breadcrumb li {
    float: left;
    padding-left: 0;
    padding-right: 10px;
    font-size: 70%;
    list-style-type: none;
}

/****************************************
     投稿情報
****************************************/
.page .post_contact {
    font-size: 80%;
    max-width: 480px;
    margin: 70px auto 0;
    text-align: right;
}

.page .post-meta {
    margin: 0 0 1em;
    padding: 0 0 20px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: flex-start;
}

.page .post-meta li {
    margin: 0;
    padding-left: 1em;
    line-height: 1.2;
    list-style: none;
    font-size: 12px;
}

.page .post-meta li::before {
    content: none;
}

.page .post-meta li a {
    color: var(--color-text-base);
}

/****************************************
     スライドメニュー目次(#toc)
****************************************/
.page #toc_container {
    background: #f9f9f9;
    border: 1px solid #aaa;
    padding: 10px 20px;
    margin: 50px 0 100px;
    width: auto;
    display: table;
    font-size: 95%;
}

.page #toc_container p.toc_title+ul.toc_list {
    margin-top: 5px;
}

.page #toc_container li, #toc_container ul {
    margin: 0;
    padding: 0;
    line-height: 1.6;
}

.page #toc_container ul li::before {
    padding-right: 1em;
    content: none;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
}

/****************************************
     ページナビ
****************************************/
.p-navi dl {
    display: flex;
    justify-content: space-between;
    align-items: center;
    /* flex-wrap: wrap; */
    gap: 1rem;
}

.p-navi dl > div {
    display: flex;
    align-items: center;
}

.p-navi dl dt {
    min-width: 6em;
    margin: 0;
    border-bottom: var(--color-text-base) 1px solid;
}

.p-navi dl dd {
    flex-grow: 1;
}

.p-navi dl a {
    display: block;
    color: var(--color-text-base);
}

.p-navi dl dt, .p-navi dl dd {
    padding: 0;
}

.p-navi dl a {
    font-size: 0.9em;
    padding: 0.5em 0;
}


.p-navi dl > div:hover a {
    text-decoration: none;
    opacity: 0.8;
}

.p-navi dl .next dt {
    order: 1;
}

.p-navi dl .next dd {
    order: 2;
    margin: 0 auto 0 1em;
}

.p-navi dl .prev dt {
    order: 4;
}

.p-navi dl .prev dd {
    order: 3;
    margin: 0 1em 0 auto;
}

/* ********************************************************

  05.個別ページのレイアウト

******************************************************** */
/****************************************
     404ページ(.error404)
****************************************/
.error404 .error404-content h1 {
    padding: 1.5em 0 1.5em 45px;
    position: relative;
}

.error404 .error404-content h1::before {
    content: "\f071";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    top: 38px;
    left: 5px;
}

.error404 .error404-content h3 {
    border: none;
    margin: 0;
    padding: 0;
}

.error404 .error404-content p {
    margin: 10px 0;
    line-height: 1.5;
}

.error404 .error404-content .blk {
    margin-top: 30px;
}

/*カスタム著作情報*/
.custom_author_info {
    border: 1px solid #dcdcdc;
    padding: 2em;
    clear: both;
}

.custom_author_info h3 {
    margin-top: 0;
}

.custom_author_info .cai_wrapper {
    display: flex;
}

.custom_author_info .cai_column:nth-child(2) {
    padding-left: 1em;
}

.custom_author_info .custom_author_photo img {
    max-width: 100px;
    width: 100px;
    border-radius: 100px;
}

.custom_author_info .custom_author_text {
    margin-bottom: 0;
}

@media screen and (max-width: 680px) {
    .custom_author_info .cai_wrapper {
        flex-direction: column;
    }

    .custom_author_info .cai_column:nth-child(2) {
        padding-left: 0;
    }

    .custom_author_info .custom_author_photo, .custom_author_info .cai_column:nth-child(2) .custom_author {
        text-align: center;
    }

    .custom_author_info .custom_author_photo img {
        max-width: 150px;
        width: 100%;
    }
}

/* (max-width: 680px) */
/* ********************************************************

  06.カテゴリページのレイアウト

******************************************************** */
/*リクルート*/
.category .cat_recruit_table {
    margin: 15px 0 0 0px;
}

/****************************************
    共通部分
****************************************/
.category .post-cat, .archive .post-cat, .search-results .post-cat {
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
}

.category .post-cat .post-cat-col, .archive .post-cat .post-cat-col, .search-results .post-cat .post-cat-col {
    width: 49%;
    padding: 0;
    margin: 0 2% 15px 0;
}

.category .post-cat .post-cat-col:nth-child(2n), .archive .post-cat .post-cat-col:nth-child(2n), .search-results .post-cat .post-cat-col:nth-child(2n) {
    margin-right: 0;
}

.col10 .category .post-cat .post-cat-col, .colfull .category .post-cat .post-cat-col, .col10 .archive .post-cat .post-cat-col, .colfull .archive .post-cat .post-cat-col {
    width: 32.5%;
    margin-right: 1.25%;
}

.col10 .category .post-cat .post-cat-col:nth-child(3n), .colfull .category .post-cat .post-cat-col:nth-child(3n), .col10 .archive .post-cat .post-cat-col:nth-child(3n), .colfull .archive .post-cat .post-cat-col:nth-child(3n) {
    margin-right: 0;
}

.category .post-cat .post-cat-col .blog_info, .archive .post-cat .post-cat-col .blog_info, .search-results .post-cat .post-cat-col .blog_info {
    font-size: 13px;
    text-align: right;
    margin: 9px 0 0;
    width: 100%;
}
.category .post-cat .post-cat-col .blog_info p , .archive .post-cat .post-cat-col .blog_info p, .search-results .post-cat .post-cat-col .blog_info p{
   line-height: 1.0; 
}

.category .post-cat .post-cat-col .blog_info p > a, .archive .post-cat .post-cat-col .blog_info p > a, .search-results .post-cat .post-cat-col .blog_info p > a{
    font-size: 13px;
    line-height:1.0;
}

.category .post-cat .post-cat-col>a, .archive .post-cat .post-cat-col>a, .search-results .post-cat .post-cat-col>a {
    display: block;
}

.category .post-cat .post-cat-col img, .archive .post-cat .post-cat-col img, .search-results .post-cat .post-cat-col img {
    margin: 0 auto;
    object-fit: cover;
    width: 100%;
    max-height: 200px;
}

.category .post-cat .post-cat-col div, .archive .post-cat .post-cat-col div, .search-results .post-cat .post-cat-col div {
    /*max-width: 420px;*/
    /*comment out 2021.08.31*/
    margin: 10px auto 0;
}

.category .post-cat .post-cat-col div a, .archive .post-cat .post-cat-col div a, .search-results .post-cat .post-cat-col div a {
    /* font-size: 95%; */
    font-weight: bold;
}

.category .post-cat .post-cat-col h4, .archive .post-cat .post-cat-col h4, .search-results .post-cat .post-cat-col h4 {
    margin: 20px auto 5px;
    background: none;
    padding: 0;
    text-align: left;
}

.category .post-cat .post-cat-col div .cat-ex, .archive .post-cat .post-cat-col div .cat-ex, .search-results .post-cat .post-cat-col div .cat-ex {
}

.category .post-cat .post-cat-col p, .archive .post-cat .post-cat-col p, .search-results .post-cat .post-cat-col p {
    line-height: 2;
    width: 100%;
    margin: 0;
}

.category .post-cat .post-cat-col .cat_link, .archive .post-cat .post-cat-col .cat_link, .search-results .post-cat .post-cat-col .cat_link {
    text-align: right;
    max-width: 400px;
    margin: 0 auto;
}

.category .post-cat .post-cat-col .cat_link a, .archive .post-cat .post-cat-col .cat_link a, .search-results .post-cat .post-cat-col .cat_link a {
    color: var(--color-text-dark);
    text-shadow: none;
    font-size: 85%;
    display: inline-block;
    margin: 10px 0;
    padding: 2px 0;
    line-height: 2.5;
    text-decoration: none;
}

.category .post-cat .post-cat-col .cat_link a::before, .archive .post-cat .post-cat-col .cat_link a::before, .search-results .post-cat .post-cat-col .cat_link a::before {
    content: "\f101";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    display: inline-block;
    width: 1.5em;
    padding-right: 0.5em;
    transition: 0.2s;
}

.category .post-cat .post-cat-col .cat_link a:hover, .archive .post-cat .post-cat-col .cat_link a:hover, .search-results .post-cat .post-cat-col .cat_link a:hover {
    opacity: 0.8;
}

.category .post-cat .post-cat-col .cat_link a:hover::before, .archive .post-cat .post-cat-col .cat_link a:hover::before, .search-results .post-cat .post-cat-col .cat_link a:hover::before {
    padding-right: 0.1em;
}

@media screen and (max-width: 680px) {
    .category .post-cat, .archive .post-cat, .search-results .post-cat {
        min-height: 400px;
    }

    .col10 .category .post-cat .post-cat-col, .colfull .category .post-cat .post-cat-col, .col10 .archive .post-cat .post-cat-col, .colfull .archive .post-cat .post-cat-col {
        width: 49%;
        margin-right: 2%;
    }

    .col10 .category .post-cat .post-cat-col:nth-child(3n), .colfull .category .post-cat .post-cat-col:nth-child(3n), .col10 .archive .post-cat .post-cat-col:nth-child(3n), .colfull .archive .post-cat .post-cat-col:nth-child(3n) {
        margin-right: 2%;
    }

    .col10 .category .post-cat .post-cat-col:nth-child(2n), .colfull .category .post-cat .post-cat-col:nth-child(2n), .col10 .archive .post-cat .post-cat-col:nth-child(2n), .colfull .archive .post-cat .post-cat-col:nth-child(2n) {
        margin-right: 0;
    }
}

/* (max-width: 680px) */
@media screen and (max-width: 480px) {
    .category .post-cat .post-cat-col, .col10 .category .post-cat .post-cat-col, .colfull .category .post-cat .post-cat-col, .archive .post-cat .post-cat-col, .col10 .archive .post-cat .post-cat-col, .colfull .archive .post-cat .post-cat-col, .search-results .post-cat .post-cat-col {
        width: 100%;
        margin: 0 auto !important;
    }

    .category .post-cat .post-cat-col img, .archive .post-cat .post-cat-col img, .search-results .post-cat .post-cat-col img {
        margin: 0 auto;
        max-width: 420px;
    }

    .category .post-cat .post-cat-col div, .archive .post-cat .post-cat-col div, .search-results .post-cat .post-cat-col div {
        width: 100%;
    }
}

/* (max-width: 480px) */
/****************************************
     ページネーション
****************************************/
.category div.pagination, .archive div.pagination, .search-results div.pagination {
    clear: both;
    position: relative;
    font-size: 14px;
    padding: 2px;
    background-color: initial;
}

.category div.pagination a, .archive div.pagination a, .search-results div.pagination a {
    padding: 2px 7px;
    margin: 2px;
    border: solid #eee 1px;
    background-color: #fff;
    text-decoration: none;
}

.category div.pagination a:hover, .archive div.pagination a:hover, div.pagination a:active {
    background-color: #444444;
    color: var(--color-white);
}

.category div.pagination span.current, .archive div.pagination span.current, .search-results div.pagination span.current {
    padding: 2px 7px;
    margin: 2px;
    font-weight: bold;
    background-color: #000;
    color: var(--color-white);
}

.category div.pagination span.disabled, .archive div.pagination span.disabled, .search-results div.pagination span.disabled {
    padding: 2px 5px;
    margin: 2px;
    background-color: #c1c1c1;
    color: #797979;
}

/* ********************************************************

  07.投稿ページのレイアウト

******************************************************** */
/****************************************
     アイキャッチ(#eyecatch)
****************************************/
.single #eyecatch-in img {
    height: auto;
    max-height: 300px;
}

/* (max-width: 960px) */
/****************************************
     ブログページ(#blog)
****************************************/
#blog dd h4 {
    font-size: 100%;
    font-weight: bold;
    padding: 0px;
    margin: 0 0 5px;
    clear: none;
    line-height: 1.2;
    border: none;
    text-align: left;
}

#blog dd h4 a {
    text-decoration: none;
}

#blog dt {
    float: left;
    width: 100px;
    border: none;
    margin: 0;
    padding: 0 20px 0 0;
}

#blog dt img {
    width: 100px;
}

#blog dd {
    padding: 5px 0 0 110px;
    line-height: 1.2;
    border: none;
}

.main #blog dd {
    padding: 5px 0 0 120px;
}

.main #blog dd h4 {
    text-decoration: underline;
    font-weight: normal;
}

#blog dd p {
    margin: 0;
    text-align: left;
}

#blog dl {
    margin: 0 0 10px;
    padding: 0 0 10px;
    border-bottom-width: 1px;
    border-bottom-style: dotted;
    border-bottom-color: #e7e5e4;
}

#blog dl:last-child {
    margin-bottom: 20px;
    border-style: none;
}

/* ---- base.css から移行: 案件固有CSS (2026-03-14) ---- */

/****************************************
    XO Event Calendar - イベントリスト用CSS
    参考URL：https://xakuro.com/blog/wordpress/1376/
******************************************************** */
.xo-event-list * {
    font-size: 1rem;
}

.xo-event-list {
    list-style: none;
    display: block;
    margin: 30px 0;
    /*  前後余白  */
}

.main .entry .xo-event-list p {
    margin: 0 0 0.5rem;
    padding: 0;
    line-height: 1.2;
}

.xo-event-list>dl {
    display: block;
    margin: .7rem 0 0 0;
    padding: 0 0 .1rem 0;
    overflow: hidden;
    color: #444;
    border-bottom: dotted 1px var(--color-border-dark);
}

.xo-event-list>dl>dt, .xo-event-list>dl>dd {
    display: table-cell;
    vertical-align: top;
    border: none;
    padding: 0;
}

.xo-event-calendar table.xo-month>thead th {
    /*  base.cssの影響を受ける部分を調整*/
    line-height: 2.0;
    width: auto;
}

.xo-event-list>dl>dt>span, .xo-event-list>dl>dd>span {
    float: left;
    margin: 0 1rem 0 0;
    padding: 0;
    vertical-align: middle;
}

.xo-event-list .thumbnail {
    margin: .2rem 0;
}

.xo-event-list .thumbnail img {
    padding-right: 15px;
    width: 110px;
    min-width: 110px;
    height: auto;
    object-fit: cover;
}

.xo-event-list .date {
    margin-top: .1rem;
    font-size: .9rem;
}

.xo-event-list.type-short .date, .xo-event-list.type-standard .date {
    width: 7.5rem;
}

.xo-event-list .category {
    margin-top: .2rem;
    margin-bottom: .1rem;
    padding: 0 .5rem;
    text-align: center;
    font-size: .8rem;
    color: var(--color-white);
    border-radius: 2px;
}

.xo-event-list.type-short .category, .xo-event-list.type-standard .category {
    width: 8.5rem;
}

.xo-event-list.type-detail .category {
    margin-left: 0.5rem;
}

.xo-event-list .title {
    margin-top: .1rem;
}

.xo-event-list .event-date {
    font-size: .9rem;
}

.xo-event-list li br {
    display: block;
}

.xo-event-list.type-custom .event-date {
    width: 16rem;
    margin-top: .2rem;
}

/****************************************
    Google カレンダー
****************************************/
.simcal-default-calendar-grid .simcal-calendar-head .simcal-nav {
    width: auto;
    /* base.cssの影響を受ける部分を調整 */
}

.simcal-default-calendar-grid>table thead th {
    padding: 0.5em;
    width: auto;
}

.simcal-default-calendar .simcal-current h3 {
    background: inherit;
    color: var(--color-text-base);
}

/********************
  サンプルページ用
********************/
p.sample {
    position: relative;
    color: var(--color-white);
    max-width: 60%;
    font-size: 100%;
    padding: 5px 15px;
    margin: 100px auto;
    background-color: var(--color-link);
    border-radius: 3px;
    text-align: center;
}

p.sample2 {
    position: relative;
    color: var(--color-link);
    max-width: 50%;
    font-size: 100%;
    padding: 5px 25px;
    margin: 80px 0px 15px;
    border-bottom: var(--color-link) 1px solid;
    text-align: left;
}

p.sample2::before {
    content: "\f02d";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    top: 6px;
    left: 5px;
}

p.sample3 {
    position: relative;
    color: var(--color-link);
    max-width: 50%;
    font-size: 90%;
    padding: 5px 5px;
    margin: 30px 0px 10px;
    text-align: left;
}

@media print, screen and (max-width: 680px) {
    p.sample {
        max-width: 70%;
        padding: 5px 15px;
        margin: 50px auto 30px;
    }

    p.sample2, p.sample3 {
        max-width: 100%;
    }
}

/* (max-width: 680px) */
.sample-edit #slide-layer, .sample-edit #slide-menu, .sample-edit #hd-ex, .sample-edit #header, .sample-edit #eyecatch, .sample-edit #breadcrumb, .sample-edit .post-meta, .sample-edit #footer-info, .sample-edit #footer, .sample-edit #copyright, .sample-edit .map, .sample-edit .widget, .sample-edit .p-navi, .shopify-edit #slide-layer, .shopify-edit #slide-menu, .shopify-edit #hd-ex, .shopify-edit #header, .shopify-edit #eyecatch, .shopify-edit #breadcrumb, .shopify-edit .post-meta, .shopify-edit #footer-info, .shopify-edit #footer, .shopify-edit #copyright, .shopify-edit .map, .shopify-edit .widget, .shopify-edit .p-navi, .sample #slide-layer, .sample #slide-menu, .sample #hd-ex, .sample #header, .sample #eyecatch, .sample #breadcrumb:first-child, .sample #footer-info, .sample #footer, .sample #copyright, .sample .map, .sample .widget, .sample .p-navi, .sample-fullwidth #slide-layer, .sample-fullwidth #slide-menu, .sample-fullwidth #hd-ex, .sample-fullwidth #header, .sample-fullwidth #eyecatch, .sample-fullwidth #breadcrumb, .sample-fullwidth .post-meta, .sample-fullwidth #footer-info, .sample-fullwidth #footer, .sample-fullwidth #copyright, .sample-fullwidth .map, .sample-fullwidth .widget, .sample-fullwidth .p-navi, .sample-sliderparts #slide-layer, .sample-sliderparts #slide-menu, .sample-sliderparts #hd-ex, .sample-sliderparts #header, .sample-sliderparts #eyecatch, .sample-sliderparts #breadcrumb, .sample-sliderparts .post-meta, .sample-sliderparts #footer-info, .sample-sliderparts #footer, .sample-sliderparts #copyright, .sample-sliderparts .map, .sample-sliderparts .widget, .sample-sliderparts .p-navi {
    display: none !important;
}

/********************
   HTMLコード表示用
********************/
pre.htmlcopy {
    margin: 20px 0;
    border-radius: 4px;
    padding: 0;
    overflow: hidden;
}

pre.htmlcopy input:checked~label::after {
    color: #fff;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    content: " \f077";
}

pre.htmlcopy code {
    white-space: pre-wrap;
    overflow-wrap: break-word;
    height: 0px;
    padding: 0px;
    overflow: hidden;
    opacity: 0;
    transition: 0.5s;
    display: block;
    background: #2d2d2d;
    color: #f8f8f2;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 14px;
    line-height: 1.6;
}

pre.htmlcopy input:checked~code {
    overflow: auto;
    height: auto;
    padding: 16px 20px;
    opacity: 1;
}

/****************************************
     未分類（案件固有レイアウト）
****************************************/
.col10 #blog {
    width: 67%;
    max-width: 640px;
    margin: 30px auto;
}

.col10 .shopinfo {
    width: 67%;
    max-width: 640px;
    margin: 0 auto;
    padding: 20px 0;
}

@media screen and (max-width: 680px) {
    .col10 .shopinfo {
        width: 100%;
    }
}


/* ================================================================
   以下：design.css から移行したスタイル (2026-03-10 フェーズ1)

   【セクション対応】
   design.css 01 ベーススタイル    -> 05 共通コンポーネント
   design.css 02 投稿パーツ        -> 06 投稿・固定ページ
   design.css 05 メインビジュアル  -> 04 トップページ
   design.css 05 フルワイズ用      -> 05 共通コンポーネント
   design.css 06 その他            -> 07 その他
================================================================ */
/* ********************************************************

  01.ベーススタイル(カスタマイズ)

******************************************************** */
/******************************
     カラムボックス(.colbox)
******************************/
.colbox {
    margin: 0 auto;
    padding: 0;
    display: grid;
    width: 100%;
}

.colbox img {
    display: block;
    width: 100%;
}

.colbox a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    color: var(--color-text-dark);
}

.colbox a:hover {
    text-decoration: none;
}

.main .colbox div h4 {
    text-align: left;
    color: var(--color-text-dark);
    font-weight: bold;
    display: block;
}

.colbox .bn_txt {
    font-size: 0.85em;
    line-height: 1.25;
    margin: 0;
}

.colbox .bn_link {
    margin: 10px 0;
}

.main .colbox .bn_txt h5 {
    margin: 10px 0;
    padding: 0;
    border-bottom: none;
}

.colbox.col1 {
    grid-template-columns: repeat(1, 1fr);
    gap: 20px 20px;
    /** 余白: 縦 横 **/
}

.colbox.col2 {
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr))
        /** minmax(最小幅, 最大幅) **/
    ;
    gap: 20px 20px;
    /** 余白: 縦 横 **/
}

.colbox.col3 {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr))
        /** minmax(最小幅, 最大幅) **/
    ;
    gap: 20px 20px;
    /** 余白: 縦 横 **/
}

.colbox.col4 {
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr))
        /** minmax(最小幅, 最大幅) **/
    ;
    gap: 20px 20px;
    /** 余白: 縦 横 **/
}

/* (max-width: 480px) */
/******************************
     詳細リンク(.more-link)
******************************/
.more-link {
    margin: 0 auto;
    border: none;
    text-align: center;
    padding: 20px 0;
}

.more-link a {
    display: inline-block;
    padding: 10px 35px;
    border: 1px solid var(--color-text-base);
    border-radius: 20px;
    color: var(--color-text-base);
    font-size: 17px;
    font-weight: 600;
    text-decoration: none;
    position: relative;
    z-index: 1;
    line-height: 1.0;
}

.more-link a::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    transition: 0.3s ease all;
    background: var(--color-link);
    z-index: -1;
    border-radius: 20px;
}

.more-link a::after {
    content: "\f105";
    font-family: "Font Awesome 5 Free";
    font-weight: 600;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    position: absolute;
}

.more-link a:hover {
    color: #fff;
}

.more-link a:hover::before {
    width: 100%;
}

/*タイトル横の詳細リンク*/
.my_widget_header.more-link-head>*:first-child {
    /*h2*/
    display: flex;
    align-items: center;
}

.my_widget_header.more-link-head>* span {
    /*タイトル*/
    text-align: left;
}

.my_widget_header.more-link-head {
    position: relative;
}

.my_widget_header.more-link-head .more-link.top-r {
    padding: 0;
    margin: 0;
    position: absolute;
    right: 0;
    top: 0;
}

/* .post-cat-widget .more-link.top-r,
.post-cat-widget .more-link.top-m {
    display: none;
} */

@media screen and (max-width: 680px) {

    .my_widget_header.more-link-head .more-link.top-r,
    .my_widget_header.more-link-head .more-link.top-m {
        display: none;
    }

    .post-cat-widget .more-link.top-r,
    .post-cat-widget .more-link.top-m {
        display: block;
    }
}

/******************************
     お問い合わせ(.contact)
******************************/
.contact .contact_in {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: distribute;
    justify-content: space-around;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    border: var(--color-sub) 1px solid;
    background-color: var(--color-white);
    padding: 15px 15px;
    margin: 50px auto;
    max-width: 600px;
}

.contact .contact_in .lead {
    width: 100%;
    font-size: 14px;
    -webkit-box-flex: 3;
    -ms-flex: 3 3 auto;
    flex: 3 3 auto;
    margin: 0 0 10px;
    padding: 0 5px 10px;
    border-bottom: var(--color-sub) 1px dotted;
    line-height: 1.2;
}

.contact_in .telarea .tel a,
.contact_in .mailarea .mail a {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    text-decoration: none;
}

.contact_in .telarea .tel a::before,
.contact_in .mailarea .mail a::before {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    padding-right: 4px;
}

.contact_in .telarea .tel a:hover,
.contact_in .mailarea .mail a:hover {
    opacity: 0.8;
}

.contact_in .telarea .tel {
    margin: 0;
    font-size: 190%;
    line-height: 1.0;
}

.contact_in .telarea .tel a {
    color: var(--color-text-dark);
    font-weight: bold;
}

.contact_in .telarea .tel a::before {
    content: "\f3cd";
    font-size: 75%;
}

.contact_in .telarea a[href ^="tel:"]::after {
    content: none;
}

.contact_in .telarea .tel-ex {
    margin: 5px 0 0;
    line-height: 1.4;
    font-size: 80%;
    font-weight: 600;
    text-align: center;
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt";
    letter-spacing: 0.02rem;
}

.contact_in .mailarea .mail {
    margin: 0;
    font-weight: bold;
    text-align: center;
    font-size: 110%;
}

.contact_in .mailarea .mail a {
    color: #fff;
    background-color: var(--color-sub);
    margin: 0;
    padding: 2px 15px;
    font-size: 85%;
}

.contact_in .mailarea .mail a::before {
    content: "\f0e0";
}

.contact_in .mailarea .mail-ex {
    margin: 5px 0 0;
    line-height: 1.4;
    font-size: 80%;
    font-weight: 600;
    text-align: center;
}

@media screen and (max-width: 480px) {
    .contact .contact_in {
        padding: 15px 20px;
    }

    .contact_in .telarea,
    .contact_in .mailarea {
        margin: 5px 0;
    }
}

/* (max-width: 480px) */
/* サイドバー */
.sidebar .my_widget_header+.contact {
    margin-top: 10px;
}

.sidebar .contact .contact_in .telarea {
    margin: 0 0 5px;
}

.sidebar .contact .contact_in .mailarea {
    margin: 0 0 0;
}

.sidebar .contact_in .mailarea .mail a {
    padding: 7px 15px;
}

/******************************
     会社情報(.shopinfo)
******************************/
/* .entry .shopinfo table th, .entry .shopinfo table td { */
.shopinfo table th,
.shopinfo table td {
    background: transparent;
    border: none;
    border-bottom: 1px solid #eee;
    padding: 1em 0.5em;
    line-height: 1.2;
    vertical-align: top;
}

/* .entry .shopinfo table th { */
.shopinfo table th {
    /*   width: 25%; */
    width: 15%;
    text-align: left;
    white-space: nowrap;
}

.entry .shopinfo table th {
    min-width: 7em;
}

/* サイドバー */
.sidebar .shopinfo h3 {
    padding: 0.8em 7.5px;
    border-bottom: 1px solid var(--color-border-dark);
    border-top: 1px solid var(--color-border-dark);
}

.sidebar .shopinfo table {
    font-size: 100%;
}

/******************************
     グーグルマップ(.map)
******************************/
.map {
    position: relative;
    padding: 30px 0 270px;
    height: 0;
    overflow: hidden;
}

.map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* ********************************************************

  02.投稿パーツ(カスタマイズ)

******************************************************** */
/******************************
     見出し - 小見出し付
******************************/
.entry h1 small,
.entry h2 small,
.entry h3 small,
.entry h4 small,
.entry h5 small,
.entry h6 small {
    font-size: 65%;
    display: inline-block;
    padding-left: 2.5em;
}

.entry h1 small,
.entry h2 small,
.entry h3 small {
    font-size: 70%;
}

/******************************
     本文
******************************/
/* リード文(.lead) */
.entry p.lead {
    text-align: center;
    font-weight: 500;
    font-size: 18px;
    line-height: 1.6;
    max-width: 700px;
    margin: 0 auto 1.5em;
}

/* キャッチコピー(.catch-copy) */
.entry p.catch-copy {
    text-align: center;
    font-weight: bold;
    font-size: 17px;
    line-height: 1.6;
    max-width: 600px;
    margin: 0 auto 1.5em;
}

/* 色付きテーブル見出し(.h_table) */
.h_table {
    background-color: var(--color-border-dark);
}

.h_table td {
    text-align: center;
    border: none;
    font-weight: bold;
    font-size: 110%;
}

/******************************
     インラインテキスト
******************************/
.txt_underline {
    text-decoration: underline;
}

.txt_underlinew {
    text-decoration: underline double;
}

.tex_bluelight {
    background: linear-gradient(transparent 60%, #75b8e780 0%);
}

.tex_yellowlight {
    background: linear-gradient(transparent 60%, #efff0080 0%);
}

.tex_redlight {
    background: linear-gradient(transparent 60%, #fd85bd80 0%);
}

.tex_orangelight {
    background: linear-gradient(transparent 60%, #ffc87f 0%);
}

.italic {}

/******************************
     引用
******************************/
/* 引用 - 背景付(.bq_bk) */
.entry blockquote.bq_bk {
    margin: 2em 0;
    padding: 15px 15px;
    border: none;
    background-color: #fdfdfd;
    position: relative;
    z-index: 1;
}

.entry blockquote.bq_bk p {
    margin: 0;
    line-height: 1.4;
    position: relative;
    z-index: 2;
    font-style: normal;
}

.entry blockquote.bq_bk p strong:first-child {
    padding: 0 0 5px;
}

.entry blockquote.bq_bk p strong {
    background: none;
    padding: 5px 0;
    display: inline-block;
}

@media screen and (max-width: 480px) {
    .entry blockquote.bq_bk {
        padding: 15px;
    }
}

/* アラート(.bq_al) */
.entry blockquote.bq_al {
    margin: 2em 0;
    border: 3px solid #ff0000;
}

/******************************
     リスト
******************************/
/* チェックリスト(.ul_check) */
/* 背景付リスト(.ul_bk)*/
/* 丸番号リスト(.ol_circle) */
.entry .ul_check li {
    list-style-type: none;
    padding: 6px 25px;
    position: relative;
    border-radius: 10px;
    -webkit-border-radius: 10px;
}

.entry .ul_check li:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 10px;
    height: 6px;
    border-left: 4px solid #F17979;
    border-bottom: 4px solid #F17979;
    transform: translateY(-50%) rotate(-45deg);
    -webkit-transform: translateY(-50%) rotate(-45deg);
    -ms-transform: translateY(-50%) rotate(-45deg);
}

.entry .ul_bk {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.entry .ul_bk li {
    background: #efefef;
    margin-right: 4px;
    margin: 0 4px 5px 0;
    text-align: center;
    flex: 1 1 calc(100% / 3 - 4px);
    padding: 15px;
    position: relative;
    list-style-type: none;
}

@media only screen and (max-width: 1010px) {
    .entry .ul_bk li {
        flex: 1 0 100%;
        text-align: left;
        padding-left: 30px;
        margin-bottom: .5em;
    }
}

.entry ol.ol_circle {
    counter-reset: my-counter;
    list-style: none;
    padding: 0;
    margin: 0;
}

.entry ol.ol_circle li {
    font-size: 15px;
    padding-left: 30px;
    position: relative;
    margin-bottom: 15px;
    list-style: none;
}

.entry ol.ol_circle li:before {
    content: counter(my-counter);
    counter-increment: my-counter;
    background-color: #E7B050;
    border-radius: 50%;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 20px;
    width: 20px;
    color: var(--color-white);
    line-height: 2;
    position: absolute;
    top: 6px;
    left: 0;
}

/******************************
     テーブル
******************************/
/* テーブル – ミニテーブル(.table_mini)*/
.entry .table_mini {
    width: 50%;
    margin-bottom: 10px;
}

.entry .table_mini th,
.entry .table_mini td {
    font-size: 12px;
    padding: 10px;
    text-align: left;
    border: 1px solid var(--color-border-light);
    background-color: var(--color-white);
}

.entry .table_mini th {
    width: 45%;
    background-color: var(--color-border-light);
    color: var(--color-text-dark);
    min-width: 80px;
}

.entry .table_mini td {
    width: 55%;
}

.entry .table_ex {
    font-size: 11px;
}

@media screen and (max-width: 680px) {
    .entry .table_mini {
        width: 100%;
    }
}

/* テーブル - 水平スクロール(.table_scroll) */
@media screen and (max-width: 680px) {

    .entry tbody th,
    .entry tbody td {
        padding: 20px 15px;
    }

    .entry th,
    .entry td {
        padding: 20px 15px;
    }

    .entry table.table_scroll {}

    .entry table.table_scroll th,
    .entry table.table_scroll td {
        padding: 10px 10px;
        font-size: 14px;
    }
}

/*テーブル  - 二分割レイアウト(.table_2col) */
.entry .table_2col tr {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
}

.entry .table_2col tr th,
.entry .table_2col tr td {
    width: calc(50% - 10px);
}

/* (max-width: 680px) */
@media screen and (max-width: 480px) {

    .entry tbody th,
    .entry tbody td {
        padding: 15px 5px;
        font-size: 80%;
        width: auto;
    }

    .entry th,
    .entry td {
        padding: 15px 5px;
        font-size: 80%;
    }

    .entry table.table_scroll {
        display: block;
        overflow-x: auto;
    }

    .entry table.table_scroll th,
    .entry table.table_scroll td {
        width: 700px;
        white-space: nowrap;
    }
}

/* (max-width: 480px) */
/* テーブル – 二分割レイアウト(.table_2col) */
/* テーブル – 線なし(.table_noborder) */
.entry .table_noborder tr,
.entry .table_noborder th,
.entry .table_noborder td {
    border: none;
    background-color: var(--color-white);
    COLOR: var(--color-text-dark);
}

/******************************
     投稿・固定ページスタイル
******************************/
/******************************
     カテゴリースタイル
******************************/
/******************************
     画像
******************************/
/* 画像 – フルワイズ画像(.full-width) */
/******************************
     画像＋文章
******************************/
/* 画像＋文章 */
[class^="imgtxt_"] {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    padding-bottom: 30px;
}

.imgtxt_l .ttl,
.imgtxt_r .ttl {
    padding-bottom: 10px;
    flex-shrink: 0;
    max-width: 80%;
}

.imgtxt_l .txt .subtitle,
.imgtxt_r .txt .subtitle {
    display: block;
    clear: both;
    font-weight: bold;
}

.imgtxt_l .ttl {
    padding-top: 7px;
    padding-right: 15px;
}

.imgtxt_r>div {
    -webkit-box-ordinal-group: 11;
    -ms-flex-order: 10;
    order: 10;
}

.imgtxt_r>div:nth-of-type(2) {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
}

.imgtxt_r .ttl {
    padding-top: 7px;
    padding-left: 15px;
    -webkit-box-ordinal-group: 3;
    -ms-flex-order: 2;
    order: 2;
}

/******************************
     画像＋文章 - フルワイズ
******************************/
[class^="imgtxt_full"]>div {
    -webkit-box-flex: 3;
    -ms-flex: 3 1 55%;
    flex: 3 1 55%;
}

[class^="imgtxt_full"]>div:nth-of-type(2) {
    max-width: 55%;
}

[class^="imgtxt_full"] .ttl {
    -webkit-box-flex: 1;
    -ms-flex: 1 0 40%;
    flex: 1 0 40%;
}

[class^="imgtxt_full"] .ttl:nth-of-type(2) {
    max-width: 100%;
}

[class^="imgtxt_full"] .ttl a {
    display: block;
}

[class^="imgtxt_full"] .ttl img {
    width: 100%;
}

.imgtxt_full_l .ttl {
    margin: 0 -38% 10px 0;
}

.imgtxt_full_l .ttl>a,
.imgtxt_full_l .ttl>img {
    margin: 0.5em 50% 0 -50%;
}

.imgtxt_full_r>div {
    -webkit-box-ordinal-group: 11;
    -ms-flex-order: 10;
    order: 10;
}

.imgtxt_full_r>div:nth-of-type(2) {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
}

.imgtxt_full_r .ttl {
    margin: 0 0 10px -38%;
    -webkit-box-ordinal-group: 3;
    -ms-flex-order: 2;
    order: 2;
}

.imgtxt_full_r .ttl>a,
.imgtxt_full_r .ttl>img {
    margin: 0.5em -50% 0 50%;
}

[class^="imgtxt_full"] .txt {
    z-index: 1;
    /*横並びの画像コンテナーが上に重なり、ビジュアルエディタで選択できなくなるのを避ける*/
}

@media print,
screen and (max-width: 640px) {
    [class^="imgtxt_full"]>div {
        -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
        flex: 1 1 100%;
    }

    [class^="imgtxt_full"]>div:nth-of-type(2) {
        max-width: 100%;
    }

    [class^="imgtxt_full"] .ttl {
        -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
        flex: 1 1 100%;
    }

    [class^="imgtxt_full"] .ttl:nth-of-type(2) {
        max-width: 100%;
    }

    .imgtxt_l .ttl,
    .imgtxt_r .ttl {
        max-width: 45%;
        padding-bottom: 10px;
        -webkit-box-flex: 1;
        -ms-flex: 1 0 45%;
        flex: 1 0 45%;
    }

    .imgtxt_l>div,
    .imgtxt_r>div {
        -webkit-box-flex: 3;
        -ms-flex: 3 0 55%;
        flex: 3 0 55%;
    }

    .imgtxt_full_r .ttl {
        -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
        order: 0;
    }

    [class^="imgtxt_full"] .ttl {
        margin: 0;
        max-width: 45%;
        padding-top: 7px;
        padding-right: 15px;
    }

    .imgtxt_full_l .ttl>a {
        margin: 0;
    }

    .imgtxt_full_l .ttl img,
    .imgtxt_full_r .ttl img {
        max-height: 300px;
        margin: 0;
        object-fit: cover;
    }
}

/* (max-width: 640px) */
@media screen and (max-width: 480px) {
    [class^="imgtxt_"] {
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

    .imgtxt_r .ttl {
        -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
        order: 0;
    }

    .imgtxt_l>div,
    .imgtxt_r>div {
        -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
        flex: 1 1 100%;
    }

    .imgtxt_l .ttl,
    .imgtxt_r .ttl {
        padding: 0 0 10px;
        -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
        flex: 1 1 100%;
        max-width: 100%;
    }

    .imgtxt_l .ttl img,
    .imgtxt_r .ttl img {
        width: 100%;
        margin: 0 auto;
    }

    .imgtxt_full_l .ttl,
    .imgtxt_full_r .ttl {
        padding: 0 0 10px;
        /*flex: 1 1 100%;*/
        max-width: 100%;
    }

    .imgtxt_full_l .ttl img,
    .imgtxt_full_r .ttl img {
        max-height: 50vw;
        -o-object-fit: cover;
        object-fit: cover;
    }
}

/* (max-width: 480px) */
/******************************
     パネルリンク
******************************/
.entry div[class*="panel_link"] {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
}

.entry [class*="panel_link"] img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    font-family: "object-fit: cover";
}

.entry div.panel_link2>* {
    width: 50%;
    max-height: 150px;
}

.entry div.panel_link3>* {
    width: 33.3333%;
}

.entry .panel_link3:after {
    content: "";
    display: block;
    width: 33.33333%;
    height: 0;
}

.entry div.panel_link4>* {
    width: 25%;
}

.entry div.panel_link5>* {
    width: 20%;
}

.entry .panel_link5:after {
    content: "";
    display: block;
    width: 20%;
    height: 0;
}

@media screen and (max-width: 680px) {
    .entry div[class*="panel_link"]>* {
        width: 50%;
    }
}

/******************************
     ページ内リンク
******************************/
/* ページ内リンク(.inlink_link) */
.entry ul.inlink_link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -ms-flex-pack: distribute;
    justify-content: space-around;
}

.entry ul.inlink_link li {
    list-style-type: none;
    padding-left: 0;
    margin: 15px 1px;
    background-color: var(--color-white);
    flex: 2 4 250px;
    display: block;
}

.entry ul.inlink_link li a {
    color: var(--color-text-dark);
    text-align: center;
    display: inline-block;
    width: 100%;
    padding: 8px 20px 8px;
    position: relative;
}

.entry ul.inlink_link li a:before {
    position: absolute;
    content: '';
    top: 47%;
    border-top: 5px solid #192c54;
    border-right: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 5px solid transparent;
    width: 0;
    height: 0;
    margin-left: -20px;
}

@media screen and (max-width: 768px) {
    .entry ul.inlink_link {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    .entry ul.inlink_link li {
        width: 80%;
        margin: 5px auto;
        flex: 0 0 auto;
    }

    .entry ul.inlink_link li a {
        padding: 10px 10px 3px;
    }
}

/* ページ内リンク(.inlink_link2) */
.entry ul.inlink_link2 {
    text-align: center;
    width: 100%;
    display: flex;
    -webkit-box-pack: center;
    justify-content: center;
    -webkit-box-align: stretch;
    align-items: stretch;
    border: 1px solid var(--color-border-dark);
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.entry ul.inlink_link2 li {
    -webkit-box-flex: 1;
    flex: 1 1 0px;
    list-style-type: none;
    border-right: 1px solid var(--color-border-dark);
    background-color: var(--color-white);
}

.entry ul.inlink_link2 li:last-child {
    border-right: none;
}

.entry ul.inlink_link2 li a {
    text-decoration: none;
    padding: 15px 0.5em;
    line-height: 1.3;
    color: rgb(51, 51, 51);
    height: 100%;
    min-height: 2em;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    flex-direction: column;
    -webkit-box-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    align-items: flex-start;
    position: relative;
}

.entry ul.inlink_link2 li a:before {
    content: '\f0d7';
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    color: var(--color-text-dark);
    right: 10px;
    font-size: 17px;
    top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
}

@media screen and (max-width: 680px) {
    .entry ul.inlink_link2 {
        border: none;
        margin-bottom: 40px;
    }

    .entry ul.inlink_link2:after {
        content: "";
        display: block;
        width: 50%;
        height: 0;
    }

    .entry ul.inlink_link2 li {
        flex: 0 0 auto;
        width: 50%;
        border-bottom: 1px solid var(--color-bg-beige);
    }

    .entry ul.inlink_link2 li:first-child {
        border-top: 1px solid var(--color-bg-beige);
    }

    .entry ul.inlink_link2 li:nth-child(2) {
        border-top: 1px solid var(--color-bg-beige);
    }

    .entry ul.inlink_link2 li:nth-child(odd) {
        border-left: 1px solid var(--color-bg-beige);
    }

    .entry ul.inlink_link2 li:last-child {
        border-right: 1px solid var(--color-bg-beige);
        border-bottom: 1px solid var(--color-bg-beige);
    }
}

/******************************
     説明入パネル
******************************/
.entry .panelex_link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    padding: 1em 10px;
}

.entry .panelex_link img {
    display: block;
}

.entry .panelex_link .panelex_link-in {
    position: relative;
    width: 32%;
    margin-right: 2%;
    padding-bottom: 6%;
}

.entry .panelex_link .panelex_link-in:nth-of-type(3n) {
    margin-right: 0;
}

.entry .panelex_link .panelex_link-in .sta {
    position: absolute;
    top: -1em;
    left: 0;
    display: inline-block;
    line-height: 1.4;
    padding: 0.3em 1em;
    background: var(--color-link);
    color: var(--color-white);
    font-size: 0.9em;
    border-radius: 1em;
    z-index: 1;
}

.entry .panelex_link .panelex_link-in .sta>span {
    font-size: 85%;
}

.entry .panelex_link .panelex_link-in .img {
    overflow: hidden;
    background: var(--color-border-dark);
}

.entry .panelex_link .panelex_link-in .img img {
    width: 100%;
}

/*.entry .panelex_link .panelex_link-in .img a:hover img {
    z-index: -1;
    position: relative;
}*/
.entry .panelex_link .panelex_link-in .ttl {
    text-align: center;
    font-weight: bold;
    font-size: 1.15em;
}

.entry .panelex_link .panelex_link-in .ttl>span {
    font-size: 85%;
}

.entry .panelex_link .panelex_link-in .ex {
    font-size: 0.9em;
    line-height: 1.4;
    padding: 0 0.5em;
}

@media screen and (max-width: 680px) {
    .entry .panelex_link .panelex_link-in {
        width: 49%;
    }

    .entry .panelex_link .panelex_link-in:nth-of-type(3n) {
        margin-right: 2%;
    }

    .entry .panelex_link .panelex_link-in:nth-of-type(2n) {
        margin-right: 0;
    }
}

@media screen and (max-width: 480px) {
    .entry .panelex_link .panelex_link-in {
        width: 100%;
        margin-right: 0 !important;
        min-height: 150px;
    }

    .entry .panelex_link .panelex_link-in .img {
        width: 120px;
        height: 120px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
    }

    .entry .panelex_link .panelex_link-in .img img {
        max-width: initial;
        width: auto;
        height: 120px;
    }

    .entry .panelex_link .panelex_link-in .ttl {
        text-align: left;
        margin: -110px 0 0 auto;
        width: calc(100% - 130px);
    }

    .entry .panelex_link .panelex_link-in .ex {
        margin-left: auto;
        width: calc(100% - 130px);
        padding: 0;
    }
}

/******************************
     価格カード
******************************/
.entry .price_card {
    margin: 40px 0;
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.entry .price_card .price_card-in {
    max-width: 300px;
    padding: 40px;
    background: var(--color-white);
    border: 1px solid #666666;
    width: 100%;
    position: relative;
    min-height: 1px;
    margin: 20px 15px;
}

.entry .price_card .ttl {
    font-size: 110%;
    margin: 0 20px;
    font-weight: bold;
    line-height: 1.4;
    text-align: center;
}

.entry .price_card .prc {
    padding: 10px 0;
    border-top: .5px solid var(--color-text-base);
    border-bottom: .5px solid var(--color-text-base);
    font-size: 180%;
    font-weight: bold;
    text-align: center;
    margin: 20px auto;
}

.entry .price_card .prc .cu {
    font-size: 50%;
    font-weight: bold;
    vertical-align: 1px;
}

.entry .price_card .ex {
    font-size: 80%;
    line-height: 1.2;
    margin: 10px;
    padding: 0;
}

.entry .price_card .buy {
    padding: 0;
}

.entry .price_card .buy a {
    background-color: var(--color-link);
    color: #fff;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border-radius: 3px;
    display: block;
    text-decoration: none;
    padding: 4px 8px;
    text-align: center;
}

@media screen and (max-width: 960px) {
    .entry .price_card .price_card-in {
        padding: 30px 2%;
        margin: 20px 1%;
    }
}

/* ( max-width: 960px) */
@media screen and (max-width: 680px) {
    .entry .price_card {
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

    .entry .price_card .price_card-in {
        max-width: 100%;
        width: 75%;
        padding: 8%;
    }

    .entry .price_card .prc {
        padding: 5px 0;
        margin: 15px auto;
    }

    .entry .price_card .ex {
        margin-bottom: 1.5em;
    }
}

/* ( max-width: 680px) */
@media screen and (max-width: 480px) {
    .entry .price_card .price_card-in {
        max-width: 100%;
        width: 90%;
        padding: 7% 10%;
        margin: 20px auto;
    }
}

/* ( max-width: 480px) */
/******************************
     フロー図
******************************/
/* フロー図(.flow_chart) */
.entry .flow_chart {
    width: 100%;
}

.entry .flow_chart .ttl {
    font-weight: bold;
}

.entry .flow_chart .flow-box {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    width: 100%;
    margin: 0;
    padding: 0;
    position: relative;
    /* 縦方向中央揃え（Safari用） */
    /* 縦方向中央揃え */
}

.entry .flow_chart .flow-box:last-of-type {
    margin: 0;
}

.entry .flow_chart .flow-box::before {
    content: '';
    padding: 0;
}

.entry .flow_chart .flow-box:not(:last-of-type)::after {
    left: 40px;
}

.entry .flow_chart .flow-l,
.entry .flow_chart .flow-r {
    position: relative;
    padding: 20px 20px;
}

.entry .flow_chart .flow-l {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 30%;
    flex: 0 0 25%;
    text-align: center;
    max-width: 25%;
    font-weight: bold;
    background-color: var(--color-border-light);
    border: 1px solid var(--color-border-dark);
    color: var(--color-text-dark);
    line-height: 1.2;
}

.entry .flow_chart .flow-r {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
    border: 1px solid var(--color-border-dark);
    background-color: var(--color-white);
    border-left: none;
    line-height: 1.6;
    /* min-height: 80px; */
}

.entry .flow_chart .flow-box:not(:last-of-type)::after {
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-size: 400%;
    font-weight: 900;
    line-height: 1.0;
    margin: 10px auto;
    color: var(--color-border);
}

@media print,
screen and (max-width: 680px) {
    .entry .flow_chart .flow-l {
        flex: 0 0 100%;
        max-width: 100%;
        border: 1px solid var(--color-border-dark);
    }

    .entry .flow_chart .flow-r {
        flex: 0 0 100%;
        max-width: 100%;
        border-top: none;
        border-left: 1px solid var(--color-border-dark);
    }
}

/* ( max-width: 680px) */
/* フロー図(.flow_chart2) */
.entry .flow_chart2 {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    border: #eee 1px solid;
    background-color: var(--color-white);
    padding: 35px 40px;
    margin: 0;
}

.entry .flow_chart2 .img {
    max-width: 400px;
    width: 30%;
    margin: 5px 25px 0 0;
}

.entry .flow_chart2 .img img {
    width: auto;
}

.entry .flow_chart2 .txt {
    line-height: 1.8;
    width: 70%;
}

.entry .flow_chart2 .txt strong {
    display: block;
    background: none;
    font-size: 120%;
    margin: 0 0 5px 0;
}

@media screen and (max-width: 480px) {
    .entry .flow_chart2 {
        position: relative;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    .entry .flow_chart2 .img {
        width: auto;
        margin: 0;
    }

    .entry .flow_chart2 .img img {
        width: 100%;
    }

    .entry .flow_chart2 .txt {
        margin: 0;
    }

    .entry .flow_chart2 .txt strong {
        margin: 15px 0 10px;
    }
}

/* ( max-width: 480px) */
.entry .flow_mark {}

.entry .flow_mark::after {
    display: block;
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-size: 400%;
    font-weight: 900;
    line-height: 1.0;
    padding: 15px;
    margin: 0 auto;
    width: 40px;
    color: var(--color-border);
}

@media screen and (max-width: 680px) {
    .entry .flow>p {
        margin: 0 auto;
        width: 100%;
        float: none;
    }

    .entry .flow>p img {
        margin: 0 auto;
    }

    .entry .flow div {
        width: 100%;
        float: none;
    }

    .entry .flow h3 {
        margin: 10px 0 0;
        text-align: center;
    }

    .entry .flow p {
        margin: 10px 0;
    }
}

/* (max-width: 680px) */
/******************************
     イメージボックス(.image_box)
******************************/
.image_box {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    border: #e7e5e4 1px solid;
    background-color: var(--color-white);
    padding: 35px 40px;
    margin-bottom: 20px;
}

.image_box .img {
    min-width: 200px;
    width: 30%;
    margin: 5px 20px 0 0;
}

.image_box .txt strong {
    line-height: 2.0;
    display: block;
    background: none;
    font-size: 120%;
}

.image_box .txt {
    line-height: 1.8;
    width: 70%;
}

@media screen and (max-width: 480px) {
    .image_box {
        position: relative;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    .image_box .img {
        width: auto;
        margin: 0;
    }

    .image_box .img img {
        width: 100%;
    }

    .image_box .txt {
        margin: 0;
    }

    .image_box .txt strong {
        margin: 15px 0 10px;
    }
}

/* ( max-width: 480px) */
@media screen and (max-width: 480px) {
    .entry .image-box>p {
        margin: 0 auto;
        width: 100%;
        float: none;
    }

    .entry .image-box>p img {
        margin: 0 auto;
    }

    .entry .image-box div {
        width: 100%;
        float: none;
    }

    .entry .image-box h3 {
        margin: 10px 0 0;
        text-align: center;
    }

    .entry .image-box p {
        margin: 10px 0;
    }
}

/* (max-width: 480px) */
/******************************
     料金プラン
******************************/
.entry .rate_plan {
    width: 100%;
    max-width: 100%;
    margin: 40px auto;
}

.entry .rate_plan table {
    width: 100%;
    max-width: 950px;
    margin: 0 auto;
}

.entry .rate_plan table th {
    padding: 18px 0;
    font-weight: bold;
    background: var(--color-white);
}

.entry .rate_plan th,
.entry .rate_plan td {
    text-align: center;
    vertical-align: middle;
}

.entry .rate_plan .prc {
    padding: 16px 0;
}

.entry .rate_plan .prc td {
    font-size: 180%;
    font-weight: bold;
    padding: 30px 20px;
}

.entry .rate_plan .cu {
    padding: 0 0 0 2px;
    font-size: 60%;
}

.entry .rate_plan .buy {
    padding: 0;
    margin: 20px 0;
}

.entry .rate_plan .buy a {
    display: block;
    background-color: var(--color-link);
    color: var(--color-white);
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border-radius: 3px;
    display: block;
    text-decoration: none;
    padding: 10px 8px;
    text-align: center;
    width: 80%;
    margin: 0 auto;
}

@media print,
screen and (max-width: 680px) {
    .entry .rate_plan {
        margin: 0 auto;
        max-width: 100%;
        display: block;
        border-top: 1px solid #dcdcdc;
        border-left: 1px solid #dcdcdc;
    }

    .entry .rate_plan tbody {
        width: 100%;
        display: block;
    }

    .entry .rate_plan tr,
    .entry .rate_plan th,
    .entry .rate_plan td {
        width: 100%;
        display: block;
    }

    .entry .rate_plan th,
    .entry .rate_plan td {
        border: none;
        border-right: 1px solid #dcdcdc;
        border-bottom: 1px solid #dcdcdc;
    }

    .entry .rate_plan tr::after {
        content: '';
        display: block;
        clear: both;
    }

    .entry .rate_plan .ttl th:nth-of-type(n+2) {
        width: 33.3333%;
        float: left;
    }

    .entry .rate_plan td {
        padding: 15px 0;
        width: 33.3333%;
        float: left;
    }

    .entry .rate_plan .prc {
        padding: 0;
    }

    .entry .rate_plan .prc td {
        padding: 30px 0;
    }

    .entry .rate_plan .ttl th,
    .entry .rate_plan .buy th,
    .entry .rate_plan .feature {
        display: none;
    }

    .entry .rate_plan .buy {
        margin: 0;
    }
}

/* ( max-width: 680px) */
/******************************
     Q&A
******************************/
.entry .faq_list {
    width: 100%;
    margin: 0 auto;
    padding: 0;
}

.entry .faq_list .ttl {
    font-size: 1.2em;
    background: rgba(30, 115, 190, 0.1);
    padding: 0.5em 1em;
    margin: 1em auto;
}

.entry .faq_list dl+.ttl {
    margin-top: 2em;
}

.entry .faq_list dl {
    padding: 0;
    margin: 1em auto;
    border-bottom: 1px solid #999;
}

.entry .faq_list dt {
    font-weight: bold;
    position: relative;
    border-bottom: none;
    border-top: 1px solid #999;
    padding: 1.5em 30px 1.5em 55px;
    font-size: 1rem;
}

.entry .faq_list dd+dt {
    margin-top: 0;
}

.entry .faq_list dt::after {
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 1.6rem;
    position: absolute;
    right: 8px;
    top: 0;
    bottom: 0;
    margin: auto;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    transition: 0.3s;
}

.entry .faq_list dd {
    padding: 0 0.5em 0 55px;
    position: relative;
    overflow: hidden;
    height: 0;
    transition: 0.3s;
}

.entry .faq_list dt.open {
    padding-bottom: 1.2em;
}

.entry .faq_list dt.open::after {
    opacity: 0;
}

.entry .faq_list dt.open+dd {
    padding: 0 0.5em 1.5em 55px;
    height: auto;
}

.entry .faq_list dt::before,
.entry .faq_list dd::before {
    position: absolute;
    line-height: 1.0;
}

.entry .faq_list dt::before {
    content: "Q";
    color: var(--color-text-dark);
    left: 10px;
    top: 12px;
    font-size: 2.2rem;
}

.entry .faq_list dd::before {
    content: "A";
    color: #999;
    top: -2px;
    left: 19px;
    font-size: 1.8rem;
    font-weight: bold;
}

/******************************
     アコーディオン
******************************/
.p-accordion {
    margin-inline: auto;
}

.p-accordion:not(:first-child) {
    margin-top: 40px;
}

.p-accordion-desc {
    font-size: 15px;
    font-weight: 700;
}

.p-accordion__head {
    cursor: pointer;
    background-color: #26a69a;
    display: block;
    color: white;
    padding: 7px 20px;
    margin-top: 10px;
}

.p-accordion__head-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0;
}

.p-accordion__icon {
    display: block;
    position: relative;
    width: 24px;
    transition: transform 0.25s;
}

.p-accordion__icon:before {
    content: "";
    position: absolute;
    display: block;
    width: 15px;
    height: 2px;
    background-color: var(--color-white);
}

.p-accordion__icon:after {
    content: "";
    position: absolute;
    display: block;
    width: 15px;
    height: 2px;
    background-color: var(--color-white);
}

.p-accordion__icon:before {
    left: 0;
    transform: rotate(45deg);
}

.p-accordion__icon:after {
    right: 0;
    transform: rotate(-45deg);
}

.p-accordion__block.is-opened>.p-accordion__head>.p-accordion__head-inner .p-accordion__icon {
    transform: rotate(-180deg);
}

.p-accordion__head::-webkit-details-marker {
    display: none;
}

.p-accordion__content {
    height: 0;
    overflow: hidden;
    border: 3px solid var(--color-text-dark);
    border-top: none;
}

.p-accordion__main {
    padding: 20px;
}

/******************************
     ポイント説明
******************************/
.entry .point_list {
    margin: 40px 0;
    counter-reset: points;
}

.entry .point_list section {
    padding: 1.6em 0;
    counter-increment: points;
}

.entry .point_list section {
    clear: both;
}

.entry .point_list header {
    position: relative;
    padding: 22px 0 20px 4.5rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--color-text-base);
}

.entry .point_list header::before {
    content: counter(points);
    position: absolute;
    left: .6rem;
    top: -5px;
    font-size: 3.6rem;
    font-weight: bold;
    line-height: 1;
}

.entry .point_list header .ttl {
    border: none;
    font-size: 124%;
    text-align: left;
    width: initial;
    position: relative;
    padding: 0;
    margin: 0;
    line-height: 1.4;
    font-weight: bold;
}

.entry .point_list header .cap {
    color: #aaa;
}

.entry .point_list p:last-child {
    margin-bottom: 0px;
}

/******************************
     手順説明(.process_list)
******************************/
.process_list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.process_list h4 {
    margin: 0 0 10px !important;
}

.process_list p {
    line-height: 1.6;
    margin: 0;
}

.process_list img {
    width: 100%;
}

.process_list>div {
    width: calc(33.3333% - 10px);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    margin-bottom: 20px;
}

@media screen and (max-width: 680px) {
    .process_list>div {
        width: calc(50% - 10px);
        margin-bottom: 20px;
    }
}

/******************************
     リンクボタン
******************************/
.blk {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.blk a,
.mce-content-body .blk>a[data-mce-selected] {
    display: block;
    padding: 0.5em 2.2em 0.5em 1.2em;
    color: var(--color-white);
    background: var(--color-link);
    line-height: 1.4;
    text-decoration: none;
    -webkit-border-radius: 5px;
    border-radius: 3px;
    position: relative;
}

.blk a::after,
.mce-content-body .blk>a[data-mce-selected]::after {
    font-size: 20px;
    content: "\203a";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    line-height: 1.0;
    height: 1em;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0.6em;
    margin: auto;
}

.blk a {
    margin: 0 0.35em 1em;
}

.blk a:hover {
    opacity: 0.8;
}

.blk-c {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}

.blk-odd,
.blk-even {
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
}

.blk-odd a,
.blk-even a {
    margin: 0 1% 1em;
    text-align: center;
    padding: 5px 0.5em;
}

.blk-odd a {
    width: 31%;
}

.blk-even a {
    width: 23%;
}

@media screen and (max-width: 680px) {
    .blk-even a {
        width: 48%;
    }
}

/* (max-width: 680px) */
@media screen and (max-width: 480px) {
    .blk-odd a {
        width: 98%;
        margin: 0 auto 1em;
    }
}

/* (max-width: 480px) */
.blk.multi {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
}

.blk.multi a {
    margin: 0 0.5% 1em;
    text-align: center;
    padding: 5px 0.5em;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 24%;
    flex: 1 1 24%;
    max-width: 24%;
}

@media screen and (max-width: 960px) {
    .blk.multi a {
        -webkit-box-flex: 1;
        -ms-flex: 1 1 32%;
        flex: 1 1 32%;
        max-width: 32%;
    }
}

@media screen and (max-width: 680px) {
    .blk.multi a {
        margin: 0 1% 1em;
        -webkit-box-flex: 1;
        -ms-flex: 1 1 48%;
        flex: 1 1 48%;
        max-width: 48%;
    }
}

@media screen and (max-width: 480px) {
    .blk.multi a {
        -webkit-box-flex: 1;
        -ms-flex: 1 1 98%;
        flex: 1 1 98%;
        max-width: 98%;
        margin: 0 auto 1em;
    }
}

/******************************
     チャットスタイル
******************************/
.entry .chat_left {
    margin: 0 auto 20px;
}

.entry .chat_left .img {
    display: inline-block;
    width: 80px;
    height: 80px;
    position: relative;
}

.entry .chat_left .img img {
    width: 100%;
    height: 100%;
    border-radius: 100%;
}

.entry .chat_left .img .name {
    width: 100%;
    margin: auto;
    font-size: 90%;
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: -0.05em;
    text-align: center;
    text-shadow: var(--color-white) 1px 0px, var(--color-white) -1px 0px, var(--color-white) 0px -1px, var(--color-white) 0px 1px, var(--color-white) 1px 1px, var(--color-white) -1px 1px, var(--color-white) 1px -1px, var(--color-white) -1px -1px;
    position: absolute;
    bottom: -0.3em;
}

.entry .chat_left .ex {
    text-indent: 80px;
    margin-top: -2em;
}

@media screen and (max-width: 680px) {
    .entry .chat_left .img {
        width: 70px;
        height: 70px;
    }

    .entry .chat_left .ex {
        text-indent: 70px;
    }
}

/* (max-width: 680px) */
@media screen and (max-width: 480px) {
    .entry .chat_left .img {
        width: 60px;
        height: 60px;
    }

    .entry .chat_left .img .name {
        width: auto;
        font-size: 100%;
        text-align: left;
        top: 0.2em;
        left: calc(60px - 0.8em);
        bottom: auto;
        word-break: keep-all;
    }

    .entry .chat_left .ex {
        text-indent: 60px;
    }
}

/* (max-width: 480px) */
.entry .chat_right {
    margin: 0 auto 20px;
}

.entry .chat_right .img {
    display: inline-block;
    width: 80px;
    height: 80px;
    position: relative;
    float: right;
    margin-top: -2em;
}

.entry .chat_right .img img {
    width: 100%;
    height: 100%;
    border-radius: 100%;
}

.entry .chat_right .img .name {
    width: 100%;
    margin: auto;
    font-size: 90%;
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: -0.05em;
    text-align: center;
    text-shadow: var(--color-white) 1px 0px, var(--color-white) -1px 0px, var(--color-white) 0px -1px, var(--color-white) 0px 1px, var(--color-white) 1px 1px, var(--color-white) -1px 1px, var(--color-white) 1px -1px, var(--color-white) -1px -1px;
    position: absolute;
    bottom: -0.3em;
}

.entry .chat_right .ex {
    text-align: right;
}

@media screen and (max-width: 680px) {
    .entry .chat_right .img {
        width: 70px;
        height: 70px;
    }

    .entry .chat_right .ex {
        text-indent: 70px;
    }
}

/* (max-width: 680px) */
@media screen and (max-width: 480px) {
    .entry .chat_right .img {
        width: 60px;
        height: 60px;
    }

    .entry .chat_right .img .name {
        width: auto;
        font-size: 100%;
        text-align: left;
        top: 0.2em;
        right: calc(60px - 0.8em);
        bottom: auto;
        word-break: keep-all;
    }

    .entry .chat_right .ex {
        text-indent: 60px;
    }
}

/* (max-width: 480px) */
/******************************
     お問合せ
******************************/
/* お問い合わせ(.contact) */
/* お問合せ2カラム(.contact_row) */
/* お問合せ3カラム(.contact_row) */
.entry .contact_row {
    margin: 40px 0;
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    border: 2px solid var(--color-border);
    background-color: var(--color-white);
}

.entry .contact_row .contact_col {
    padding: 5px 3%;
    width: 100%;
    min-height: 1px;
    margin: 10px 0;
    border-right: 1px solid var(--color-border);
}

.entry .contact_row .contact_col:last-child {
    border-width: 0px;
}

.entry .contact_row .ttl {
    font-size: 110%;
    margin: 0;
    font-weight: bold;
    line-height: 1.4;
    text-align: center;
    margin-bottom: 15px;
    padding-bottom: 15px;
    position: relative;
}

.entry .contact_row .ttl::after {
    content: "";
    height: 1px;
    width: 100%;
    position: absolute;
    border-bottom: 1px solid var(--color-border);
    bottom: 0;
    left: 0;
}

.entry .contact_row .em {
    font-size: 150%;
    margin: 0;
    font-weight: bold;
    line-height: 1.4;
    text-align: center;
}

.entry .contact_row .ex {
    font-size: 90%;
    line-height: 1.4;
    margin: 0;
    padding: 0;
    text-align: center;
}

.entry .contact_row .ex p {
    line-height: 1.4;
}

.entry .contact_row .blk {
    margin: 15px 0;
    justify-content: center;
}

.entry .contact_row .blk a {
    padding: 10px 60px;
    margin: 0;
}

@media screen and (max-width: 768px) {
    .entry .contact_row {
        border: none;
        flex-direction: column;
        background-color: transparent;
    }

    .entry .contact_row .contact_col {
        border: 2px solid #dddddd;
        padding: 15px 15%;
        background-color: var(--color-white);
    }

    .entry .contact_row .contact_col:last-child {
        border-width: 2px;
    }
}

/* ( max-width: 768px) */
/******************************
     ラベル
******************************/
/* ラベル(.info_label) */
.info_label ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.info_label ul li {
    list-style: none;
    font-size: 11px;
    font-weight: bold;
    background: var(--color-border-dark);
    padding: 5px 10px;
    color: var(--color-white);
    margin-right: 10px;
}

.info_label ul li:last-child {
    margin-right: 0;
}

.info_label ul li.label_red {
    background: #FE0D0D;
    border-radius: 0;
    padding: 5px 15px;
}

.info_label ul li.label_lightblue {
    background: #0DBCFE;
    border-radius: 0;
    padding: 5px 15px;
}

.info_label ul li.label_blue {
    background: #0D7DFE;
    border-radius: 0;
    padding: 5px 15px;
}

.info_label ul li.label_orange {
    background: #FCB769;
    border-radius: 0;
    padding: 5px 15px;
}

.info_label ul li.label_green {
    background: #37921C;
    border-radius: 0;
    padding: 5px 15px;
}

.info_label ul li.label_round {
    border-radius: 25px;
}

.info_label ul li.label_jas {
    /*JASマーク*/
    background: url(http://ae129ev2x2.smartrelease.jp/wps/wp-content/themes/sw/img/jas.png) no-repeat center center / contain;
    border-radius: 0;
    padding: 0;
    width: 48px;
    height: 28px;
}

@media screen and (max-width: 680px) {
    .info_label ul {
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
    }

    .info_label ul li {
        font-size: 10px;
        margin-bottom: 5px;
    }
}

/* 数値ラベル(num_label) */
.num_label {
    margin-top: 40px;
    width: 100%;
    max-width: 250px;
}

.num_label .row1 {
    width: 33.3333%;
    border-left: 1px solid #aaa;
}

.num_label .row2 {
    width: 33.3333%;
}

.num_label .row3 {
    width: 33.3333%;
}

.num_label dl {
    display: flex;
    flex-wrap: wrap;
    text-align: center;
    font-size: 12px;
    margin: 0px;
    border-bottom: 1px solid #aaa;
}

.num_label dl dt {
    padding: 32px 0px 5px;
    background: var(--color-white);
    color: rgb(0, 0, 0);
    border-top: 1px solid #aaa;
    border-bottom: none;
    border-right: 1px solid #aaa;
    position: relative;
    font-size: 13px;
}

.num_label dl dt:last-child {
    border-right: 1px solid #aaa;
}

.num_label dl dt::before {
    position: absolute;
    content: "";
    background: url("http://ae129ev2x2.smartrelease.jp/wps/wp-content/themes/sw/img/clock.png") center center / cover no-repeat;
    top: 7px;
    left: 50%;
    transform: translateX(-50%);
}

.num_label dl dt.row1::before {
    width: 23px;
    height: 23px;
    background: url("http://ae129ev2x2.smartrelease.jp/wps/wp-content/themes/sw/img/clock.png") center center / cover no-repeat;
}

.num_label dl dt.row2::before {
    top: 11px;
    width: 27px;
    height: 16px;
    background: url("http://ae129ev2x2.smartrelease.jp/wps/wp-content/themes/sw/img/energy.png") center center / cover no-repeat;
}

.num_label dl dt.row3::before {
    width: 27px;
    height: 21px;
    background: url("http://ae129ev2x2.smartrelease.jp/wps/wp-content/themes/sw/img/salt.png") center center / cover no-repeat;
}

.num_label dl dd {
    padding: 3px 0px;
    background: var(--color-white);
    color: rgb(0, 0, 0);
    border-bottom: none;
    border-right: 1px solid #aaa;
    margin: 0px;
    font-size: 15px;
    line-height: 1.2;
}

/* 買い物ガイド(.buy_guide) */
.buy_guide {}

.buy_guide h3 {
    background: none;
    color: var(--color-text-dark);
    margin: 30px 0 15px;
    padding: 10px 0;
    text-align: left;
    border-bottom: 1px solid var(--color-text-dark);
}

.buy_guide .emphasis {
    font-size: 15px;
    font-weight: 600;
}

.buy_guide p {
    font-size: 12px;
    line-height: 1.5;
}

.buy_guide .tel_num {
    font-size: 28px;
    font-weight: bold;
    color: #77082A;
}

/******************************
     カウントダウン
******************************/
#inner {
    width: 600px;
    margin: 0;
}

#countdown {
    font-weight: bold;
    width: 100%;
    color: #ff0000;
    letter-spacing: 3px;
}

.day,
.hou,
.min,
.sec,
.mil {
    /*カウントする数字の大きさ*/
    font-size: 300%;
}

.day {}

.hou {}

.min {}

.sec {}

.mil {}

.moji {
    /*日とか時間とか秒とかの文字の色と大きさ*/
    font-size: 200%;
    color: var(--color-text-base);
}

/* ボタン */
.button {
    color: var(--color-text-base);
    font-weight: bold;
    background-color: #e7e5e4;
    display: inline-block;
    margin: 0 5% 10px;
    min-width: 140px;
    text-decoration: none;
    text-align: center;
}

.button a {
    padding: 7px 5%;
    text-decoration: none;
}

.button a:hover {
    color: var(--color-white);
    background-color: var(--color-sub);
}

/* バナーボタン */
a.banner-btn {
    display: inline-block;
    font-size: 14px;
    letter-spacing: 1px;
    color: var(--color-text-base);
    border: 1px solid var(--color-text-dark);
    min-width: 145px;
    line-height: 1.8;
    text-align: center;
    position: relative;
    margin: 0 auto;
    padding: 5px 35px;
    text-decoration: none;
    z-index: 1;
}

a.banner-btn::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    transition: 0.3s ease all;
    background: var(--color-text-dark);
    z-index: -1;
}

a.banner-btn.angle-down::after {
    content: "";
    display: block;
    width: 6px;
    height: 6px;
    border-top: 1px solid var(--color-text-dark);
    border-right: 1px solid var(--color-text-dark);
    position: absolute;
    top: 50%;
    margin-top: -5px;
    right: 15px;
    -webkit-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    transform: rotate(135deg);
}

a.banner-btn:hover {
    color: var(--color-white);
}

a.banner-btn:hover::before {
    width: 100%;
}

a.banner-btn:hover::after {
    border-color: var(--color-white);
}

/* フルワイズ画像 */
.col10 .full-width,
.colfull .full-width {
    margin-bottom: 1em;
}

.col10 .full-width,
.colfull .full-width {
    margin-left: calc(((100vw - 100%) / 2) * -1) !important;
    margin-right: calc(((100vw - 100%) / 2) * -1) !important;
    margin-bottom: 1em;
    max-height: 250px;
    overflow: hidden;
    box-sizing: content-box;
}

.col10 .full-width img,
.colfull .full-width img {
    width: 100%;
}

@media screen and (max-width: 1200px) {

    .col10 .full-width img,
    .colfull .full-width img {
        height: 150px;
        object-fit: cover;
    }
}

/* (max-width: 1200px) */
@media screen and (max-width: 680px) {

    .col10 .full-width img,
    .colfull .full-width img {
        height: 180px;
    }
}

/* (max-width: 680px) */
/* ********************************************************

  05.メインビジュアル用パーツ

******************************************************** */
.custom-eyecatch .metaslider .caption-wrap {
    background: transparent;
    opacity: unset;
    height: 100%;
    width: 100%;
}

.custom-eyecatch .metaslider .caption {
    height: 100%;
    width: 100%;
    display: flex;
    padding: 0;
    margin: 0;
}

.custom-eyecatch #eyecatch-movie .caption,
.custom-eyecatch #eyecatch-slider-wrapper .caption {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    display: flex;
    padding: 0;
    margin: 0;
}

.custom-eyecatch .eyecatch-content {
    padding: 30px 60px;
}

.custom-eyecatch .eyecatch-content>* {
    margin-bottom: 15px;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
}

.custom-eyecatch .caption-catchphrase {
    font-size: 4em;
    line-height: 120%;
}

.custom-eyecatch .caption-description {
    line-height: 150%;
}

.custom-eyecatch .caption-button {
    border: 2px solid var(--color-white);
    color: var(--color-white);
    display: inline-block;
    border-radius: 50px;
    -webkit-border-radius: 50px;
    padding: 0.5em 3em 0.5em 2em;
    position: relative;
}

.custom-eyecatch .caption-button.caption-button-dark {
    border: 0;
    background-color: #404040 !important;
    color: var(--color-white) !important;
}

.custom-eyecatch .caption-button.caption-button-light {
    border: 0;
    background-color: var(--color-bg-light) !important;
    color: #020202 !important;
}

.custom-eyecatch .caption-button::after {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    content: "\f105";
    position: absolute;
    right: 1em;
}

.custom-eyecatch .caption-news {
    background-color: rgba(0, 0, 0, 0.5);
    padding: 0.2em 1em;
}

.custom-eyecatch .caption-news em {
    margin-right: 2em;
    font-style: normal;
}

.custom-eyecatch .metaslider .flexslider .slides p {
    margin-bottom: 15px;
}

.caption-lt .caption {
    /*左上*/
    align-items: flex-start;
    justify-content: flex-start;
}

.caption-lc .caption {
    /*左中央*/
    align-items: center;
    justify-content: flex-start;
}

.caption-lb .caption {
    /*左下*/
    align-items: flex-end;
    justify-content: flex-start;
}

.caption-cc .caption {
    /*中央寄せ*/
    align-items: center;
    justify-content: center;
}

.caption-rt .caption {
    /*右上*/
    align-items: flex-start;
    justify-content: flex-end;
}

.caption-rc .caption {
    /*右中央*/
    align-items: center;
    justify-content: flex-end;
}

.caption-rb .caption {
    /*右下*/
    align-items: flex-end;
    justify-content: flex-end;
}

.custom-eyecatch.txt-l .eyecatch-content,
.custom-eyecatch .eyecatch-content *.txt-l {
    text-align: left;
}

.custom-eyecatch.txt-c .eyecatch-content,
#eyecatch .eyecatch-content *.txt-c {
    text-align: center;
}

.custom-eyecatch.txt-r .eyecatch-content,
#eyecatch .eyecatch-content *.txt-r {
    text-align: right;
}

.custom-eyecatch .eyecatch-content.txt-bg-dark {
    background-color: rgba(0, 0, 0, 0.8);
}

.custom-eyecatch .eyecatch-content.txt-bg-dark * {
    color: var(--color-white);
}

.custom-eyecatch .eyecatch-content.txt-bg-dark .caption-button {
    background-color: var(--color-bg-light);
    color: #020202;
}

.custom-eyecatch .eyecatch-content.txt-bg-light {
    background-color: rgba(255, 255, 255, 0.8);
}

.custom-eyecatch .eyecatch-content.txt-bg-light *:not(.caption-button) {
    color: #020202;
}

.custom-eyecatch #eyecatch-in {
    position: relative;
}

.custom-eyecatch .eyecatch-scroll {
    position: absolute;
}

.custom-eyecatch .eyecatch-scroll a {
    color: var(--color-white);
    display: block;
    position: relative;
}

.custom-eyecatch .eyecatch-scroll a:hover,
.custom-eyecatch .eyecatch-scroll a:visited,
.custom-eyecatch .eyecatch-scroll a:active {
    color: var(--color-white);
    text-decoration: none;
}

.custom-eyecatch .eyecatch-scroll a:after {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    width: 100%;
}

.eyecatch-scroll.scroll-lower {
    bottom: 1.5em;
    margin: auto;
    right: 0;
    left: 0;
    width: 60px;
    text-align: center;
}

.eyecatch-scroll.scroll-lower a:after {
    content: "\f078";
    top: 20px;
    left: 0;
}

.eyecatch-scroll.scroll-leftside {
    bottom: 50px;
    left: 15px;
    transform: rotate(90deg);
}

.eyecatch-scroll.scroll-leftside a:after {
    content: "";
    bottom: 0;
    left: 0;
    width: 86px;
    border-top: 1px solid var(--color-white);
}

.eyecatch-scroll.scroll-rightside {
    bottom: 50px;
    right: 15px;
    transform: rotate(90deg);
}

.eyecatch-scroll.scroll-rightside a:after {
    content: "";
    top: 0;
    left: 0;
    width: 86px;
    border-bottom: 1px solid var(--color-white);
}

@media screen and (max-width: 680px) {
    .custom-eyecatch .caption-catchphrase {
        font-size: 2em;
    }

    .custom-eyecatch .eyecatch-content {
        padding: 15px;
    }

    .custom-eyecatch .eyecatch-content>* {
        margin-bottom: 10px;
    }
}

/* (max-width: 680px) */
/*サンプルページ用*/
.custom-eyecatch.sample-scroll-bg {
    position: relative;
    background-color: #d0d0d0;
    height: 100px;
}

/* ********************************************************

  05.フルワイズ用パーツ

******************************************************** */
/*チームメンバー*/
.entry .team_member p {
    margin: 0;
}

.widget-full-width .team_member,
.full-width-container .team_member {
    padding-right: 18px;
    padding-left: 18px;
    justify-content: center;
    max-width: 1600px;
    margin: 0 auto;
}

.widget-full-width .team_member .team_member-in,
.full-width-container .team_member .team_member-in {
    width: auto;
    max-width: 300px;
    margin-right: 1% !important;
    margin-left: 1%;
}

.team_member.col3 .team_member-in {
    width: 31%;
}

.team_member.col4 .team_member-in {
    width: 23%;
}

@media screen and (max-width: 768px) {
    .team_member.col4 .team_member-in {
        width: 55%;
    }
}

@media screen and (max-width: 680px) {
    .team_member.col3 .team_member-in {
        width: 55%;
    }
}

@media screen and (max-width: 480px) {

    .team_member.col3 .team_member-in,
    .team_member.col4 .team_member-in {
        width: 100%;
        max-width: none;
    }
}

/*肩書説明入パネル*/
.col-no-margin .entry .panelex_link {
    padding-right: 0;
    padding-left: 0;
    justify-content: space-around;
}

@media screen and (min-width: 681px) {
    .col-no-margin .entry .panelex_link.col4 .panelex_link-in {
        width: 23%;
        margin-right: 0;
    }
}

/*パネル型リンク*/
.full-stretch-panel {
    display: flex;
    max-width: 1600px;
    margin: 0 auto;
}

.stretch-panel {
    width: 100%;
}

.stretch-panel a {
    position: relative;
    display: block;
    color: var(--color-text-dark);
}

.stretch-panel.img-cover-like a {
    min-height: 250px;
    overflow: hidden;
}

.stretch-panel a:hover {
    opacity: 0.8;
}

.stretch-panel.img-cover-like img {
    width: auto;
    height: auto;
    min-width: 100%;
    min-height: 100%;
    max-width: inherit;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}

.stretch-panel .panel-ttl {
    font-size: 160%;
    font-weight: bold;
    line-height: 150%;
    letter-spacing: 0.25em;
}

.stretch-panel .panel-txt {
    position: relative;
}

.stretch-panel .panel-txt::after {
    content: "\f105";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    line-height: 225%;
    top: 0;
    right: -20px;
}

.stretch-panel .panel-ttl,
.stretch-panel .panel-txt {
    position: absolute;
    left: 10%;
}

.stretch-panel .panel-ttl {
    top: 30px;
}

.stretch-panel .panel-txt {
    top: 80px;
}

/*画像＋ショートディスクリプションのパネル型リンク*/
.full-stretch-panel.panel-with-box .stretch-panel {
    padding-bottom: 100px;
    margin-bottom: 1em;
}

.stretch-panel img {
    width: 100%;
}

.stretch-panel p {
    margin-bottom: 0;
}

.panel-with-box .stretch-panel .stretch-panel-txtarea {
    position: absolute;
    background-color: var(--color-white);
    min-height: 220px;
    margin: 0 10%;
    left: 0;
    right: 0;
    bottom: -100px;
    border: 1px solid #efefef;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 15px 10%;
}

.stretch-panel .stretch-panel-ttl {
    font-size: 130%;
    font-weight: bold;
    border-bottom: 1px solid var(--color-border);
    line-height: 150%;
    padding-bottom: 15px;
    margin-bottom: 15px;
}

@media screen and (max-width: 680px) {
    .full-stretch-panel {
        flex-direction: column;
        padding-bottom: 0;
        margin-bottom: 0;
    }
}

/* (max-width: 680px) */
/*画像＋重ね文章とリンク*/
.imgtxt-overwrap {
    position: relative;
    max-width: 1600px;
    margin: 0 auto 80px;
    padding-top: 1px;
}

.imgtxt-overwrap .img-box {
    position: absolute;
    z-index: -10;
    width: 100%;
}

.imgtxt-overwrap .img-box img {
    max-width: 70%;
    vertical-align: top;
}

.imgtxt-overwrap.img-r .img-box {
    text-align: right;
}

.imgtxt-overwrap.img-l .img-box {
    text-align: left;
}

.imgtxt-overwrap .txt-box {
    max-width: 700px;
}

.imgtxt-overwrap .txt-box.txt-white {
    color: var(--color-white);
}

.imgtxt-overwrap.img-l .txt-box {
    text-align: right;
}

.imgtxt-overwrap.img-r .txt-box {
    text-align: left;
}

.imgtxt-overwrap.img-l .txt-box {
    margin: 30px 30px 0 auto;
}

.imgtxt-overwrap.img-r .txt-box {
    margin: 30px auto 0 30px;
}

.imgtxt-overwrap.overwrap-basic .txt-box {
    margin-top: 0;
    padding-top: 1px;
}

.imgtxt-overwrap .imgtxt-ttl {
    font-size: 220%;
    margin-top: 1em;
    line-height: 125%;
}

.imgtxt-overwrap .imgtxt-ttl.txt-smaller {
    font-size: 180%;
}

.imgtxt-overwrap .imgtxt-txt {
    margin: 1em 0;
}

.imgtxt-overwrap.img-r .blk {
    justify-content: flex-start;
}

.imgtxt-overwrap .blk {
    margin-top: 3em;
}

.imgtxt-overwrap .blk a {
    margin: 0;
    padding: 1em 6em;
}

@media screen and (min-width: 1060px) {
    .imgtxt-overwrap.overwrap-basic .txt-box {
        padding-bottom: 15px;
    }
}

@media screen and (max-width: 768px) {
    .imgtxt-overwrap.overwrap-basic .img-box {
        position: relative;
    }

    .imgtxt-overwrap.overwrap-basic .img-box img {
        max-width: 100%;
    }

    .imgtxt-overwrap .imgtxt-ttl {
        font-size: 180%;
    }

    .imgtxt-overwrap.overwrap-basic .txt-box {
        padding: 0;
    }

    .imgtxt-overwrap .blk {
        margin-top: 2em;
    }
}

/* (max-width: 768px) */
@media screen and (max-width: 680px) {
    .imgtxt-overwrap .img-box img {
        width: 100%;
        max-width: 100%;
    }

    .imgtxt-overwrap .imgtxt-ttl {
        margin-bottom: 0;
    }

    .imgtxt-overwrap .blk {
        margin-top: 0;
    }

    .imgtxt-overwrap .imgtxt-txt {
        margin: 0;
        padding: 1em 0;
        position: relative;
    }

    .imgtxt-overwrap .img-box {
        /*padding: 0 1em;*/
    }

    .imgtxt-overwrap .txt-box {
        margin: 0;
        padding: 1em;
        position: relative;
    }
}

/* (max-width: 680px) */
/*画像＋重ねボックス（画像右）*/
.imgtxt-overwrap.overwrap-box {
    padding-top: 1px;
}

.imgtxt-overwrap.overwrap-box .txt-box {
    box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, .3);
    /*margin: 30px 30px 0;*/
    /*padding: 1px 3% 15px;*/
    padding: 5% 3%;
    background-color: #ffffffc9;
    max-width: 500px;
    width: 47%;
    position: relative;
    display: inline-block;
    margin: 0;
    bottom: -15%;
    left: 50%;
}

/*.imgtxt-overwrap.overwrap-box.img-l{
    text-align: right;
}*/
.imgtxt-overwrap.overwrap-box.img-l .txt-box {
    /*   transform: translateY(0%) translateX(0%);
    -webkit-transform: translateY(0%) translateX(0%);
    -ms-transform: translateY(0%) translateX(0%);*/
}

.imgtxt-overwrap.overwrap-box.img-r .txt-box {
    /*text-align: right;*/
    transform: translateY(0%) translateX(-100%);
    -webkit-transform: translateY(0%) translateX(-100%);
    -ms-transform: translateY(0%) translateX(-100%);
}

.imgtxt-overwrap .txt-box.txt-centering {
    text-align: center;
}

@media screen and (max-width: 960px) {
    .imgtxt-overwrap.overwrap-box .txt-box {
        padding: 3% 3%;
        bottom: -5%;
    }
}

/* (max-width: 960px) */
@media screen and (max-width: 768px) {
    .imgtxt-overwrap.overwrap-box .img-box {
        padding: 0;
        position: relative;
    }

    .imgtxt-overwrap.overwrap-box .img-box img {
        max-width: 100%;
    }

    .imgtxt-overwrap.overwrap-box .txt-box {
        /*position: relative;*/
        bottom: auto;
        left: auto;
        background-color: transparent;
        box-shadow: none;
        margin: 0;
        padding: 0 30px 30px;
        max-width: 100%;
        width: 100%;
    }

    .imgtxt-overwrap.overwrap-box.img-r .txt-box {
        transform: translateY(0%) translateX(0%);
        -webkit-transform: translateY(0%) translateX(0%);
        -ms-transform: translateY(0%) translateX(0%);
    }
}

/* (max-width: 768px) */
/*フルワイズ画像＋重ね文章と画像*/
.imgtxt-overwrap.img-full {
    height: 600px;
    position: relative;
}

.imgtxt-overwrap.img-full .img-box {
    height: 100%;
    position: relative;
    overflow: hidden;
}

.imgtxt-overwrap.img-full .img-box img {
    width: auto;
    height: auto;
    min-width: 100%;
    min-height: 100%;
    max-width: inherit;
    max-height: none;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}

.imgtxt-overwrap.img-full .txt-box {
    position: absolute;
    top: 50%;
    padding: 0 30px 30px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
}

.imgtxt-overwrap.txt-l .txt-box {
    left: 0;
    right: auto;
}

.imgtxt-overwrap.txt-r .txt-box {
    left: auto;
    right: 0;
}

.imgtxt-overwrap .img-list {
    margin: 0;
    padding: 0;
    display: flex;
}

.imgtxt-overwrap .txt-centering .img-list {
    justify-content: center;
}

.imgtxt-overwrap .img-list li {
    list-style: none;
}

.imgtxt-overwrap .img-list li:first-child {
    padding-left: 0;
}

.imgtxt-overwrap .img-list img {
    vertical-align: bottom;
}

@media screen and (min-width: 769px) {
    .imgtxt-overwrap.img-full .txt-box {
        position: absolute;
    }
}

@media screen and (max-width: 680px) {
    .imgtxt-overwrap.img-full .txt-box>* {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    .imgtxt-overwrap.img-full,
    .imgtxt-overwrap.img-full .img-box {
        height: auto;
        padding: 0;
    }

    .imgtxt-overwrap.img-full .img-box img {
        position: relative;
        width: 100%;
        min-height: auto;
        transform: unset;
        -webkit-transform: unset;
        -ms-transform: unset;
        left: auto;
    }

    .imgtxt-overwrap.img-full .imgtxt-txt {
        padding: 1em 0;
    }

    .imgtxt-overwrap.img-full .txt-box {
        transform: unset;
        -webkit-transform: unset;
        -ms-transform: unset;
        position: relative;
        top: auto;
        left: auto;
        bottom: auto;
        margin: 0;
        padding: 0 30px;
        width: auto;
    }
}

/* (max-width: 680px) */
/* ********************************************************

  06.その他

******************************************************** */
/* ---- base.css から移行: サイドリンク・ローディング・動画 (2026-03-15) ---- */
/****************************************
     サイドリンク(#side-lk)
****************************************/
#side-lk {
    max-width: 150px;
    position: fixed;
    right: 0;
    bottom: 82px;
    z-index: 9999;
}

#side-lk .colbox {
    display: block;
    font-size: 12px;
    line-height: 1;
}

#side-lk .colbox div {
    margin: 10px 0;
}

#side-lk .colbox div img, #side-lk .colbox p img {
    width: auto;
    margin: 0;
}

@media screen and (max-width: 1365px) {
    #side-lk {
        display: none;
    }
}

/* ローディング画面 */
#loading {
    width: 100vw;
    height: 100vh;
    transition: all 1s;
    position: fixed;
    z-index: 10000;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #fff;
}

#loading.loaded {
    opacity: 0;
    /*   display: none; */
    visibility: hidden;
}

/****************************************
     動画埋め込み
****************************************/
.embed-container {
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 30px;
    height: 0;
    overflow: hidden;
    margin-top: 20px;
    margin-bottom: 20px;
}

.embed-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/****************************************
     動画モーダル表示
****************************************/
.video-container {
    text-align: center;
}

.video-container a {
    display: inline-block;
    position: relative;
}

.video-container img.video-thumbnail {
    max-width: 100%;
}

.video-container a::before {
    /*background: url(../sw/img/video_play.png) center center / 64px 64px no-repeat;*/
    content: url(../sw/img/video_play.png);
    display: block;
    width: 64px;
    height: 64px;
    margin: -32px auto 0;
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    z-index: 1;
}

.video-container a:hover::before {
    opacity: 0.8;
}

.slick-prev:before,
.slick-next:before {
    color: var(--color-border-dark) !important;
}

/* ウィジェット内スライダーの矢印をコンテナ内に配置 */
/* #103, #301: slick-listにパディングで矢印スペース確保 */
.widget_my_widget103 .slick-list,
.widget_my_widget301 .slick-list { padding: 0 25px !important; }
.widget_my_widget103 .slick-prev,
.widget_my_widget301 .slick-prev { left: 0; z-index: 1; }
.widget_my_widget103 .slick-next,
.widget_my_widget301 .slick-next { right: 0; z-index: 1; }
/* #102: 既存のmargin: 0 25pxで矢印スペース確保済み */

/* ============================================================
   08. テーマカラー適用（旧 customizer_color() からの移管）
   2026-03-18: カスタマイザーのインラインCSS出力を廃止し、
   custom.css のCSS変数で一元管理するために移管。
   既に custom.css 内で個別に定義済みのセレクタは省略。
============================================================ */
/* サイドバー問い合わせ */
.contact_sb .mail a {
    background: var(--color-primary);
    color: var(--color-primary-text);
}

/* 記事内詳細リンク */
.entry .detail a {
    background: var(--color-primary);
    color: var(--color-primary-text);
}

/* 編集リンク・ページトップ */
.edit a,
#page-top a {
    color: var(--color-primary-text);
    background-color: var(--color-primary);
}

/* カテゴリバッジ（投稿リスト） */
.widget_my_widget102 .categories .cate {
    background: var(--color-sub);
    color: var(--color-sub-text);
}

/* バナーウィジェット見出し */
.entry .widget_my_widget301 h4 {
    color: var(--color-primary);
}
/* ============================================================
   08. Gutenberg Block Styles (2026-03-20)
   ブロックエディターで作成したコンテンツのフロント表示用
   .entry 内のブロックにスタイルを適用
============================================================ */

/* ---- 幅広・全幅ブロック（align-wide サポート） ---- */
.entry .alignwide {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

.entry .alignfull {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
}

/* 2カラムレイアウト（.col7_3）では alignfull が破綻する可能性があるため、
   alignwide にフォールバックする */
.col7_3 .main .entry .alignfull {
    width: auto;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}

/* ---- カラムブロック ---- */
.entry .wp-block-columns {
    display: flex;
    gap: 2em;
    margin: 2em 0;
    width: 100%;
}

.entry .wp-block-column {
    flex: 1;
    min-width: 0;
}

/* スマホでは縦積み */
@media screen and (max-width: 782px) {
    .entry .wp-block-columns {
        flex-direction: column;
        gap: 1em;
    }
}

/* ---- ボタンブロック ---- */
.entry .wp-block-button {
    margin: 1.5em 0;
}

.entry .wp-block-button__link {
    background-color: var(--color-primary);
    color: var(--color-primary-text);
    padding: 12px 24px;
    border-radius: 4px;
    text-decoration: none;
    display: inline-block;
    transition: background-color 0.3s ease;
}

.entry .wp-block-button__link:hover {
    background-color: var(--color-link);
    color: var(--color-white);
}

/* アウトラインボタン */
.entry .wp-block-button.is-style-outline .wp-block-button__link {
    background-color: transparent;
    border: 2px solid var(--color-primary);
    color: var(--color-primary);
}

.entry .wp-block-button.is-style-outline .wp-block-button__link:hover {
    background-color: var(--color-primary);
    color: var(--color-primary-text);
}

/* ---- 画像ブロック ---- */
.entry .wp-block-image {
    margin: 2em 0;
}

.entry .wp-block-image img {
    max-width: 100%;
    height: auto;
}

.entry .wp-block-image figcaption {
    font-size: 0.9em;
    color: var(--color-text-medium);
    margin-top: 0.5em;
    text-align: center;
}

/* 角丸スタイル */
.entry .wp-block-image.is-style-rounded img {
    border-radius: 8px;
}

/* ---- グループブロック ---- */
.entry .wp-block-group {
    margin: 2em 0;
    padding: 2em;
}

.entry .wp-block-group.has-background {
    padding: 2em;
}

/* ---- カバーブロック ---- */
.entry .wp-block-cover {
    margin: 2em 0;
    min-height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.entry .wp-block-cover__inner-container {
    width: 100%;
    z-index: 1;
    color: var(--color-white);
}

/* ---- 区切り線ブロック ---- */
.entry .wp-block-separator {
    border: none;
    border-top: 2px solid var(--color-border);
    margin: 3em auto;
}

.entry .wp-block-separator.is-style-wide {
    border-top-width: 2px;
}

.entry .wp-block-separator.is-style-dots {
    border: none;
    text-align: center;
}

.entry .wp-block-separator.is-style-dots::before {
    content: '···';
    color: var(--color-border);
    font-size: 2em;
    letter-spacing: 1em;
    padding-left: 1em;
}

/* ---- スペーサーブロック ---- */
.entry .wp-block-spacer {
    clear: both;
}

/* ---- ギャラリーブロック（既存の .gallery との整合性） ---- */
.entry .wp-block-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 1em;
    list-style: none;
    padding: 0;
    margin: 2em 0;
}

.entry .wp-block-gallery .wp-block-image {
    margin: 0;
    flex: 1 1 calc(33.333% - 1em);
}

.entry .wp-block-gallery.columns-2 .wp-block-image {
    flex-basis: calc(50% - 0.5em);
}

.entry .wp-block-gallery.columns-4 .wp-block-image {
    flex-basis: calc(25% - 0.75em);
}

@media screen and (max-width: 782px) {
    .entry .wp-block-gallery .wp-block-image {
        flex-basis: 100%;
    }
}

/* ---- 埋め込みブロック（レスポンシブ対応） ---- */
.entry .wp-block-embed {
    margin: 2em 0;
}

.entry .wp-block-embed__wrapper {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
}

.entry .wp-block-embed__wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* ---- テーブルブロック（既存の .entry table との統合） ---- */
.entry .wp-block-table {
    margin: 2em 0;
}

.entry .wp-block-table table {
    width: 100%;
    border-collapse: collapse;
}

.entry .wp-block-table th,
.entry .wp-block-table td {
    border: 1px solid var(--color-border);
    padding: 10px;
}

.entry .wp-block-table th {
    background-color: var(--color-bg-light);
    font-weight: bold;
}

/* ストライプスタイル */
.entry .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
    background-color: var(--color-bg-light);
}

/* ---- 引用ブロック（既存の blockquote スタイルを継承） ---- */
.entry .wp-block-quote {
    color: var(--color-text-dark);
    margin: 2em 0;
    padding: 15px 15px;
    border: 1px solid var(--color-text-dark);
    position: relative;
}

.entry .wp-block-quote p {
    margin: 0;
    line-height: 1.4;
}

.entry .wp-block-quote cite {
    display: block;
    margin-top: 1em;
    font-size: 0.9em;
    color: var(--color-text-medium);
}

/* ---- プルクォート ---- */
.entry .wp-block-pullquote {
    margin: 2em 0;
    padding: 2em;
    border-top: 4px solid var(--color-text-dark);
    border-bottom: 4px solid var(--color-text-dark);
    text-align: center;
}

.entry .wp-block-pullquote blockquote {
    border: none;
    padding: 0;
}

.entry .wp-block-pullquote p {
    font-size: 1.5em;
    line-height: 1.6;
}

.entry .wp-block-pullquote cite {
    display: block;
    margin-top: 1em;
    font-size: 0.9em;
    color: var(--color-text-medium);
}

/******************************
     HTML改善対応CSS（2026-03-23）
     - div→section wrapper
     - small→time/p
     - table→dl（cf_table, shopinfo, recruit）
     - clearFix→flexbox
     - h4→h3（バナー）
     - contact_in統合
******************************/

/* post-template-basic: カード型横並びレイアウト */
.post-template-basic {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    list-style: none;
    padding: 0;
}

/* 投稿カード: 横並びで均等幅、画像サイズ統一 */
.post-template-basic > .post_wrap {
    flex: 1 1 calc(50% - 20px);
    max-width: calc(50% - 10px);
    box-sizing: border-box;
    overflow: hidden;
}

/* 1カラム・フルワイズでは3列 */
.col10 .post-template-basic > .post_wrap,
.colfull .post-template-basic > .post_wrap {
    flex: 1 1 calc(33.333% - 20px);
    max-width: calc(33.333% - 14px);
}

/* サイドバーでは1列 */
.sidebar .post-template-basic > .post_wrap {
    flex: 1 1 100%;
    max-width: 100%;
}

/* アイキャッチ画像: アスペクト比統一、object-fitで切り抜き */
.post-template-basic .large_post_thumb {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    margin-bottom: 0.75em;
}
.post-template-basic .large_post_thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 小サムネイル: 正方形に統一 */
.post-template-basic .post_thumb {
    width: 80px;
    height: 80px;
    overflow: hidden;
    flex-shrink: 0;
}
.post-template-basic .post_thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* スライダーモード時はflex幅制御を無効化（Slickが管理） */
.post-list-slider > .post_wrap,
.slick-slider .post_wrap {
    flex: none;
    max-width: none;
}

@media screen and (max-width: 680px) {
    .post-template-basic > .post_wrap,
    .col10 .post-template-basic > .post_wrap,
    .colfull .post-template-basic > .post_wrap {
        flex: 1 1 100%;
        max-width: 100%;
    }
}

/* time.post_date: small.post_dateと同じ見た目を維持 */
time.post_date {
    font-size: inherit;
    display: inline;
}

/* p.post_excerpt: small.post_excerptと同じ見た目を維持 */
.post_wrap p.post_excerpt {
    font-size: inherit;
    margin: 0;
}

/* post_wrap__link: aタグのスコープ変更対応 */
.post_wrap__link {
    display: block;
    text-decoration: none;
    color: inherit;
}

/* dl.cf_list: table.cf_tableと同じ見た目を維持 */
.cf_list {
    margin-bottom: 1em;
}
.cf_list .cf_item {
    display: flex;
    border-bottom: 1px solid #eee;
}
.cf_list .cf_ttl {
    padding: 10px;
    font-size: 85%;
    font-weight: bold;
    width: 30%;
    flex-shrink: 0;
}
.cf_list .cf_txt {
    padding: 10px;
    font-size: 85%;
    margin: 0;
}

/* dl.recruit_list: table.recruit_tableと同じ見た目を維持 */
.recruit_list {
    margin-bottom: 1em;
}
.recruit_list .recruit_item {
    display: flex;
    border-bottom: 1px solid #eee;
}
.recruit_list .recruit_item dt {
    padding: 10px;
    font-size: 85%;
    font-weight: bold;
    width: 30%;
    flex-shrink: 0;
}
.recruit_list .recruit_item dd {
    padding: 10px;
    font-size: 85%;
    margin: 0;
}

/* shopinfo__list: shopinfo tableと同じ見た目を維持 */
.shopinfo__list {
    margin: 0;
}
.shopinfo__item {
    display: flex;
    border-bottom: 1px solid #eee;
}
.shopinfo__item dt {
    background: transparent;
    border: none;
    padding: 1em 0.5em;
    line-height: 1.2;
    vertical-align: top;
    width: 15%;
    text-align: left;
    white-space: nowrap;
    font-weight: normal;
    min-width: 5em;
    flex-shrink: 0;
}
.shopinfo__item dd {
    background: transparent;
    border: none;
    padding: 1em 0.5em;
    line-height: 1.2;
    margin: 0;
}

/* sidebar shopinfo__list */
.sidebar .shopinfo__list {
    font-size: 100%;
}

/* contact: contact_in統合対応
   .contact_inが除去されたため、.contact直下に同等スタイルを適用 */
.contact:not(:has(.contact_in)) {
    display: flex;
    justify-content: space-around;
    align-items: center;
    flex-wrap: wrap;
    border: var(--color-sub) 1px solid;
    background-color: var(--color-white);
    padding: 15px;
    max-width: 600px;
    margin: 0 auto;
}
.contact:not(:has(.contact_in)) .contact__lead {
    width: 100%;
    font-size: 14px;
    margin: 0 0 10px;
    padding: 0 5px 10px;
    border-bottom: var(--color-sub) 1px dotted;
    line-height: 1.2;
}

/* #301バナー h4→h3 対応 */
.widget_my_widget301 .bn_wrap h3 {
    font-size: inherit;
    margin: 0;
}

/* #301バナー: フルワイズ・1カラム時の最大幅制限 */
.col10 .widget_my_widget301 .colbox,
.colfull .widget_my_widget301 .colbox {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
}

/* フルワイズセクション: 情報系パネルウィジェットのスタイル
   デザインファイル参照: 会社情報・お問い合わせ・地図をカード風に */
.colfull .widget_my_widget201,
.colfull .widget_my_widget202,
.colfull .widget_my_widget203 {
    padding: 20px;
    box-sizing: border-box;
    background: var(--color-white);
    border: 1px solid #eee;
    margin-bottom: 10px;
}

/* ============================================================
   追加パーツ (2026-03-23)
============================================================ */

/* CTAセクション (.cta_section) */
.cta_section {
    background: var(--color-border-light);
    padding: 40px 30px;
    text-align: center;
    margin: 40px 0;
    border-radius: 4px;
}
.cta_section h3, .cta_section h4 {
    margin-top: 0;
}
.cta_section p {
    max-width: 600px;
    margin: 0 auto 20px;
}
.cta_section .blk {
    justify-content: center;
}

/* カード型レイアウト (.card_layout) */
.card_layout {
    display: grid;
    gap: 20px;
    margin: 30px 0;
}
.card_layout.card_col2 { grid-template-columns: repeat(2, 1fr); }
.card_layout.card_col3 { grid-template-columns: repeat(3, 1fr); }
.card_layout .card_item {
    border: 1px solid #ccc;
    border-radius: 4px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.card_layout .card_item img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
}
.card_layout .card_item .card_body {
    padding: 20px;
}
.card_layout .card_item .card_body h4 {
    margin: 0 0 10px;
    font-size: 16px;
}
.card_layout .card_item .card_body p {
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 15px;
}
@media screen and (max-width: 680px) {
    .card_layout.card_col2, .card_layout.card_col3 {
        grid-template-columns: 1fr;
    }
}

/* タイムライン (.timeline) */
.timeline {
    position: relative;
    padding-left: 30px;
    margin: 30px 0;
}
.timeline::before {
    content: "";
    position: absolute;
    left: 8px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--color-border);
}
.timeline .timeline_item {
    position: relative;
    padding-bottom: 30px;
}
.timeline .timeline_item::before {
    content: "";
    position: absolute;
    left: -26px;
    top: 4px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--color-link);
    border: 2px solid #fff;
}
.timeline .timeline_item h4 {
    margin: 0 0 5px;
    font-size: 16px;
}
.timeline .timeline_item p {
    margin: 0;
}

/* スタッフ紹介カード (.staff_card) */
.staff_cards {
    display: grid;
    gap: 20px;
    margin: 30px 0;
}
.staff_cards.staff_col2 { grid-template-columns: repeat(2, 1fr); }
.staff_cards.staff_col3 { grid-template-columns: repeat(3, 1fr); }
.staff_card {
    text-align: center;
    padding: 20px;
}
.staff_card img {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 15px;
}
.staff_card h4 {
    margin: 0 0 5px;
    font-size: 16px;
}
.staff_card .staff_role {
    font-size: 13px;
    color: #888;
    margin-bottom: 10px;
}
.staff_card p {
    font-size: 14px;
    line-height: 1.6;
    text-align: left;
}
@media screen and (max-width: 680px) {
    .staff_cards.staff_col2, .staff_cards.staff_col3 {
        grid-template-columns: 1fr;
    }
}

/* 区切り線バリエーション */
hr.hr_dotted {
    border: none;
    border-top: 2px dotted var(--color-border);
    margin: 40px 0;
}
hr.hr_bold {
    border: none;
    border-top: 3px solid var(--color-text-dark);
    margin: 50px 0;
}
hr.hr_space {
    border: none;
    margin: 60px 0;
}

/* 注意書きボックス (.alert_box) */
.alert_box {
    padding: 20px 25px;
    margin: 20px 0;
    border-radius: 4px;
    border-left: 4px solid;
}
.alert_box.alert_info {
    background: #e8f4fd;
    border-color: #2196f3;
}
.alert_box.alert_warning {
    background: #fff8e1;
    border-color: #ff9800;
}
.alert_box.alert_success {
    background: #e8f5e9;
    border-color: #4caf50;
}
.alert_box h4 {
    margin: 0 0 8px;
    font-size: 16px;
}
.alert_box p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
}


/* ============================================================
   Gallery / 画像ギャラリー (.gallery)
   WordPress標準ギャラリーブロック対応 + カスタムスタイル
   ============================================================ */

/* --- ギャラリー共通 --- */
.gallery {
    display: grid;
    gap: var(--spacing-md);
    margin: 30px 0;
}

/* カラム数バリエーション */
.gallery-columns-1 { grid-template-columns: 1fr; }
.gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
.gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
.gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }
.gallery-columns-5 { grid-template-columns: repeat(5, 1fr); }

/* --- ギャラリーアイテム --- */
.gallery .gallery-item {
    margin: 0;
    padding: 0;
    overflow: hidden;
    border-radius: 8px;
    position: relative;
}

.gallery .gallery-icon {
    margin: 0;
}

.gallery .gallery-icon a {
    display: block;
    line-height: 0;
    overflow: hidden;
    border-radius: 8px;
}

.gallery .gallery-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 3 / 4;
    border-radius: 8px;
    transition: transform 0.4s ease, filter 0.4s ease;
}

/* ホバーエフェクト */
.gallery .gallery-icon a:hover img {
    transform: scale(1.05);
    filter: brightness(0.85);
}

/* キャプション */
.gallery .gallery-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 12px 16px;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
    color: var(--color-white);
    font-size: 13px;
    line-height: 1.4;
    border-radius: 0 0 8px 8px;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.gallery .gallery-item:hover .gallery-caption {
    opacity: 1;
}

/* --- ギャラリーセクション（セクションラッパー） --- */
.gallery-section {
    padding: 80px 0;
}

.gallery-section .gallery-section__header {
    text-align: center;
    margin-bottom: 48px;
}

.gallery-section .gallery-section__en {
    display: block;
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 3px;
    color: var(--color-accent);
    margin-bottom: 16px;
}

.gallery-section .gallery-section__title {
    font-size: 36px;
    font-weight: bold;
    color: var(--color-text-dark);
    margin: 0 0 12px;
}

.gallery-section .gallery-section__subtitle {
    font-size: 16px;
    color: var(--color-text-medium);
    margin: 0;
}

/* --- ギャラリーサイズバリエーション --- */
.gallery-size-thumbnail .gallery-icon img { aspect-ratio: 1 / 1; }
.gallery-size-medium .gallery-icon img { aspect-ratio: 3 / 4; }
.gallery-size-large .gallery-icon img { aspect-ratio: 4 / 3; }
.gallery-size-full .gallery-icon img { aspect-ratio: auto; }

/* --- もっと見るボタン --- */
.gallery-section .gallery-more {
    display: flex;
    justify-content: center;
    margin-top: 48px;
}

.gallery-section .gallery-more a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 32px;
    border: 1px solid var(--color-border-dark);
    border-radius: 4px;
    color: var(--color-text-base);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.gallery-section .gallery-more a:hover {
    background: var(--color-text-dark);
    color: var(--color-white);
    border-color: var(--color-text-dark);
}

.gallery-section .gallery-more a::after {
    content: "→";
}

/* --- ダークバリエーション --- */
.gallery-section.gallery-section--dark {
    background: var(--color-text-dark, #1f1f1f);
}

.gallery-section.gallery-section--dark .gallery-section__title {
    color: var(--color-white);
}

.gallery-section.gallery-section--dark .gallery-section__subtitle {
    color: #aaa;
}

.gallery-section.gallery-section--dark .gallery-more a {
    border-color: var(--color-white);
    color: var(--color-white);
}

.gallery-section.gallery-section--dark .gallery-more a:hover {
    background: var(--color-white);
    color: var(--color-text-dark);
}

/* --- レスポンシブ --- */
@media screen and (max-width: 960px) {
    .gallery-columns-4 { grid-template-columns: repeat(2, 1fr); }
    .gallery-columns-5 { grid-template-columns: repeat(3, 1fr); }

    .gallery-section .gallery-section__title { font-size: 28px; }
}

@media screen and (max-width: 680px) {
    .gallery { gap: var(--spacing-sm); }
    .gallery-columns-2,
    .gallery-columns-3 { grid-template-columns: repeat(2, 1fr); }
    .gallery-columns-4,
    .gallery-columns-5 { grid-template-columns: repeat(2, 1fr); }

    .gallery-section { padding: 60px 0; }
    .gallery-section .gallery-section__header { margin-bottom: 32px; }
    .gallery-section .gallery-section__title { font-size: 24px; }
    .gallery-section .gallery-more { margin-top: 32px; }
}
