    /* ======================================================
   公開ページ：3行ミニカード
====================================================== */

.fg-mini-card-list {
    display: grid;
    gap: 10px;
}

.fg-mini-card {
    border: 1px solid #d0d5dd;
    border-radius: 12px;
    background: #fff;
    padding: 10px 12px;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06);
}

.fg-mini-card-title {
    margin: 0 0 4px;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
}

.fg-mini-card-line {
    margin: 2px 0;
    font-size: 0.92rem;
    line-height: 1.35;
    color: #344054;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.fg-mini-card-details {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #eaecf0;
}

.fg-mini-card-details summary {
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 700;
    color: #344054;
}

.fg-mini-card-detail-list {
    display: grid;
    gap: 6px;
    margin: 8px 0 0;
    font-size: 0.9rem;
}

.fg-mini-card-detail-row {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 8px;
}

.fg-mini-card-detail-row dt {
    color: #667085;
    font-weight: 700;
}

.fg-mini-card-detail-row dd {
    margin: 0;
    color: #101828;
    overflow-wrap: anywhere;
}
/* ======================================================
   公開ページ：並び替えナビ
====================================================== */

.fg-public-sort-nav {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 8px 0 12px;
    margin: 0 0 8px;
}

.fg-public-sort-link {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid #d0d5dd;
    border-radius: 999px;
    background: #fff;
    color: #344054;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.fg-public-sort-link.is-active {
    border-color: #101828;
    background: #101828;
    color: #fff;
}
/* ======================================================
   公開ページ：検索フォーム
====================================================== */

.fg-public-search-form {
    display: flex;
    gap: 8px;
    margin: 12px 0 8px;
}

.fg-public-search-input {
    flex: 1 1 auto;
    min-width: 0;
    height: 38px;
    padding: 0 10px;
    border: 1px solid #d0d5dd;
    border-radius: 10px;
    font-size: 0.95rem;
}

.fg-public-search-button,
.fg-public-search-clear {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 12px;
    border: 1px solid #101828;
    border-radius: 10px;
    background: #101828;
    color: #fff;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.fg-public-search-clear {
    border-color: #d0d5dd;
    background: #fff;
    color: #344054;
}

/* ======================================================
   公開ページ：全体背景
====================================================== */

body {
    background: #f8fafc;
}

/* ======================================================
   公開ページ：ミニカード調整
====================================================== */

.fg-mini-card {
    background: #ffffff;
    border: 1px solid #d0d5dd;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(16, 24, 40, 0.08);
}

/* カード同士の区切りを少し見やすくする */
.fg-mini-card-list {
    gap: 10px;
}

/* ======================================================
   公開ページ：詳細を見るエリア
====================================================== */

.fg-mini-card-details {
    margin-top: 10px;
    border-top: 1px solid #eaecf0;
    padding-top: 0;
}

/* summary 全体をクリックしやすいボタン風にする */
.fg-mini-card-details summary {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin-top: 8px;
    padding: 9px 10px;
    border-radius: 8px;
    background: #f2f4f7;
    color: #344054;
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

/* Chrome / Edge / Safari の標準三角を消す */
.fg-mini-card-details summary::-webkit-details-marker {
    display: none;
}

/* 独自アイコン */
.fg-mini-card-details summary::before {
    content: "▼";
    display: inline-block;
    margin-right: 6px;
    font-size: 0.75rem;
}

/* 閉じているとき */
.fg-mini-card-details:not([open]) summary::before {
    content: "▶";
}

/* ホバー時 */
.fg-mini-card-details summary:hover {
    background: #e4e7ec;
}

/* 開いているときは少し濃くする */
.fg-mini-card-details[open] summary {
    background: #e4e7ec;
}

/* 詳細リスト側に余白 */
.fg-mini-card-detail-list {
    margin-top: 10px;
}
/* ======================================================
   公開ページ：詳細エリアをひとまとまりに見せる
====================================================== */

.fg-mini-card-details {
    margin-top: 10px;
    border-top: 1px solid #eaecf0;
    padding-top: 8px;
}

/* 詳細を見るバー */
.fg-mini-card-details summary {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 9px 10px;
    border-radius: 8px;
    background: #f2f4f7;
    color: #344054;
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

.fg-mini-card-details summary::-webkit-details-marker {
    display: none;
}

.fg-mini-card-details summary::before {
    content: "▶";
    display: inline-block;
    margin-right: 6px;
    font-size: 0.75rem;
}

.fg-mini-card-details[open] summary::before {
    content: "▼";
}

.fg-mini-card-details summary:hover {
    background: #e4e7ec;
}

/* 開いたとき、詳細全体を薄い背景で囲う */
.fg-mini-card-details[open] {
    background: #f9fafb;
    border-radius: 10px;
    padding: 8px;
}

/* 開いたときのバー */
.fg-mini-card-details[open] summary {
    background: #e4e7ec;
}

/* 詳細リスト */
.fg-mini-card-detail-list {
    margin: 10px 0 0;
    padding: 2px 4px 4px;
}

/* 詳細の各行 */
.fg-mini-card-detail-row {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 8px;
    padding: 3px 0;
}

.fg-mini-card-detail-row dt {
    color: #667085;
    font-weight: 700;
}

.fg-mini-card-detail-row dd {
    margin: 0;
    color: #101828;
    overflow-wrap: anywhere;
}
/* ======================================================
   公開ページ：トップへ戻るボタン
====================================================== */

.fg-public-page-nav {
    margin: 10px 0 14px;
}

.fg-public-back-home {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 12px;
    border: 1px solid #d0d5dd;
    border-radius: 999px;
    background: #ffffff;
    color: #344054;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.fg-public-back-home::before {
    content: "←";
    margin-right: 6px;
}

.fg-public-back-home:hover {
    background: #f2f4f7;
    border-color: #98a2b3;
}
/* ======================================================
   公開ページ共通ナビ
   ------------------------------------------------------
   トップへ戻る + 他カテゴリ一覧への移動UI。
   横スクロールは使わず、スマホでも見やすく横幅を揃える。
====================================================== */

.fg-public-page-nav {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: end;
    gap: 10px;
    width: 100%;
    margin: 18px 0 16px;
}

.fg-public-back-home {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    height: 44px;
    box-sizing: border-box;
    padding: 0 16px;
    border: 1px solid #cfd8e3;
    border-radius: 999px;
    background: #ffffff;
    color: #111827;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    white-space: nowrap;
}

.fg-public-back-home:hover {
    background: #f3f4f6;
}

.fg-public-page-jump {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
    width: 100%;
}

.fg-public-page-jump-label {
    font-size: 12px;
    font-weight: 700;
    color: #374151;
    line-height: 1.1;
}

.fg-public-page-jump-select {
    width: 100%;
    min-height: 44px;
    height: 44px;
    box-sizing: border-box;
    padding: 0 42px 0 14px;
    border: 1px solid #cfd8e3;
    border-radius: 999px;
    background-color: #ffffff;
    color: #111827;
    font-size: 14px;
    font-weight: 700;
    line-height: 44px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    cursor: pointer;

    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;

    background-image:
        linear-gradient(45deg, transparent 50%, #374151 50%),
        linear-gradient(135deg, #374151 50%, transparent 50%);
    background-position:
        calc(100% - 22px) 19px,
        calc(100% - 16px) 19px;
    background-size:
        6px 6px,
        6px 6px;
    background-repeat: no-repeat;
}

.fg-public-page-jump-select:focus {
    outline: 2px solid #bfdbfe;
    border-color: #2563eb;
}

.fg-public-page-jump-button {
    min-height: 44px;
    height: 44px;
    box-sizing: border-box;
    padding: 0 16px;
    border: 1px solid #111827;
    border-radius: 999px;
    background: #111827;
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}


/* ======================================================
   公開ページ検索フォーム
   ------------------------------------------------------
   検索窓と検索ボタンの高さを、共通ナビの部品と揃える。
====================================================== */

.fg-public-search-form {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin: 14px 0 12px;
}

.fg-public-search-input {
    flex: 1;
    min-width: 0;
    min-height: 44px;
    height: 44px;
    box-sizing: border-box;
    padding: 0 14px;
    border: 1px solid #cfd8e3;
    border-radius: 999px;
    background: #ffffff;
    color: #111827;
    font-size: 14px;
    line-height: 44px;
}

.fg-public-search-button {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    height: 44px;
    box-sizing: border-box;
    padding: 0 16px;
    border-radius: 999px;
}


/* ======================================================
   狭い画面用
====================================================== */

@media (max-width: 420px) {
    .fg-public-page-nav {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .fg-public-back-home {
        width: fit-content;
    }
}

/* ======================================================
   公開ページ：PC/スマホ表示切替
   ------------------------------------------------------
   PCではテーブル、スマホではミニカードを表示する。
====================================================== */

.fg-public-pc-list {
    display: block;
}

.fg-public-mobile-list {
    display: none;
}

@media (max-width: 768px) {
    .fg-public-pc-list {
        display: none;
    }

    .fg-public-mobile-list {
        display: block;
    }
}


/* ======================================================
   公開ページ：PC用テーブル
====================================================== */

.fg-public-table-wrap {
    width: 100%;
    overflow-x: auto;
    margin-top: 14px;
    border: 1px solid #d8e0ea;
    border-radius: 12px;
    background: #ffffff;
}

.fg-public-table {
    width: 100%;
    min-width: 920px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 14px;
}

.fg-public-table th,
.fg-public-table td {
    padding: 10px 12px;
    border-bottom: 1px solid #e5e7eb;
    text-align: left;
    vertical-align: top;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fg-public-table th {
    background: #f3f4f6;
    font-weight: 700;
    color: #111827;
}

.fg-public-table tr:last-child td {
    border-bottom: none;
}

.fg-public-table a {
    color: #0068c9;
    text-decoration: none;
}

.fg-public-table a:hover {
    text-decoration: underline;
}

.fg-public-table-note {
    color: #6b7280;
}

/* ======================================================
   公開ページ：PC用テーブル表示切替タブ
====================================================== */

.fg-public-table-view-tabs {
    display: flex;
    gap: 8px;
    margin: 14px 0 10px;
}

.fg-public-table-view-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid #cfd8e3;
    border-radius: 10px;
    background: #ffffff;
    color: #111827;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
}

.fg-public-table-view-link.is-active {
    border-color: #2563eb;
    background: #2563eb;
    color: #ffffff;
}

/* ======================================================
   公開ページ：PC用コンパクト操作エリア
   ------------------------------------------------------
   検索・並び替え・件数・表示切替をPCでは詰めて表示する。
====================================================== */

.fg-public-compact-tools {
    display: grid;
    grid-template-columns: minmax(360px, 1fr) auto;
    gap: 10px 14px;
    align-items: center;
    margin: 12px 0 10px;
}

.fg-public-compact-tools-main {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex-wrap: nowrap;
}

.fg-public-compact-tools-sub {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    white-space: nowrap;
}

.fg-public-compact-tools .fg-public-search-form {
    flex: 1;
    min-width: 0;
    margin: 0;
}

.fg-public-compact-tools .fg-public-sort-nav {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.fg-public-compact-tools .fg-public-result-count {
    margin: 0;
    font-weight: 700;
}

.fg-public-compact-tools .fg-public-table-view-tabs {
    margin: 0;
}

/* PCでは表示切替ボタンを件数の近くに置く */
.fg-public-pc-view-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 8px 0 10px;
}

.fg-public-pc-view-row .fg-public-table-view-tabs {
    margin: 0;
}

/* スマホでは今まで通り縦に戻す */
@media (max-width: 768px) {
    .fg-public-compact-tools {
        display: block;
        margin: 14px 0 12px;
    }

    .fg-public-compact-tools-main {
        display: block;
    }

    .fg-public-compact-tools .fg-public-search-form {
        margin: 14px 0 12px;
    }

    .fg-public-compact-tools .fg-public-sort-nav {
        display: flex;
        margin: 10px 0 12px;
    }

    .fg-public-compact-tools-sub {
        justify-content: flex-start;
        margin-top: 8px;
    }

    .fg-public-pc-view-row {
        display: none;
    }
}

/* ======================================================
   公開ページ：PC幅でフォーム部品を短くする
   ------------------------------------------------------
   PCでは一覧を広く見せるため、ナビselectと検索窓を短めにする。
   スマホでは従来どおり横幅いっぱいに戻す。
====================================================== */

@media (min-width: 769px) {
    .fg-public-page-nav {
        grid-template-columns: auto 360px;
        justify-content: start;
    }

    .fg-public-page-jump {
        width: 360px;
    }

    .fg-public-compact-tools {
        grid-template-columns: auto 1fr;
        justify-content: start;
    }

    .fg-public-compact-tools-main {
        flex: 0 0 auto;
    }

    .fg-public-compact-tools .fg-public-search-form {
        flex: 0 0 420px;
        width: 420px;
    }

    .fg-public-search-input {
        max-width: 420px;
    }

    .fg-public-compact-tools-sub {
        justify-content: flex-start;
    }
}
/* ======================================================
   公開ページ：上部ナビ + PC表示切替タブ
   ------------------------------------------------------
   PCではカテゴリselectの右に「基本 / 対応・空き」を並べる。
   スマホではミニカード表示なので、PC表示切替タブは隠す。
====================================================== */

.fg-public-nav-with-tabs {
    margin: 18px 0 16px;
}

.fg-public-nav-with-tabs-main .fg-public-page-nav {
    margin: 0;
}

.fg-public-header-tabs {
    display: none;
}

@media (min-width: 769px) {
    .fg-public-nav-with-tabs {
        display: flex;
        align-items: end;
        gap: 12px;
    }

    .fg-public-nav-with-tabs-main {
        flex: 0 0 auto;
    }

    .fg-public-nav-with-tabs-main .fg-public-page-nav {
        margin: 0;
    }

    .fg-public-header-tabs {
        display: flex;
        flex: 0 0 auto;
        margin: 0;
    }
}

@media (max-width: 768px) {
    .fg-public-nav-with-tabs {
        display: block;
    }

    .fg-public-header-tabs {
        display: none;
    }
}

/* ======================================================
   公開PCテーブル：独自ツールチップ
====================================================== */

.fg-public-table td.fg-public-tooltip-cell {
    position: relative;
    overflow: visible;
    cursor: help;
}

.fg-public-tooltip-text {
    display: block;
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.fg-public-table td.fg-public-tooltip-cell:hover::after {
    content: attr(data-tooltip);
    position: absolute;
    left: 8px;
    top: calc(100% + 6px);
    z-index: 9999;

    min-width: 180px;
    max-width: 360px;
    padding: 8px 10px;

    border: 1px solid #98a2b3;
    border-radius: 8px;
    background: #111827;
    color: #ffffff;

    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    white-space: normal;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.22);
}
/* ======================================================
   ① 公開一覧：操作エリアとテーブルの視認性改善
====================================================== */


/* ==============================
   上部操作エリア
============================== */

.fg-public-nav-with-tabs {
    margin-bottom: 14px;
}


.fg-public-compact-tools {
    margin: 0 0 16px;
    padding: 14px 16px;

    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;

    background: #ffffff;

    border: 1px solid #d8dee8;
    border-radius: 12px;
}


.fg-public-compact-tools-main {
    min-width: 0;
    flex: 1;

    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 12px 16px;
}


/* ==============================
   検索
============================== */

.fg-public-search-form {
    min-width: 320px;
    flex: 1 1 470px;

    display: flex;
    align-items: center;
    gap: 8px;
}


.fg-public-search-input {
    min-width: 0;
    flex: 1;

    height: 42px;
    padding: 0 14px;

    background: #ffffff;
    color: #101828;

    border: 1px solid #cfd7e3;
    border-radius: 9px;

    font: inherit;
    font-size: .9rem;
}


.fg-public-search-input:focus {
    outline: 3px solid rgba(59, 130, 246, .15);
    border-color: #3b82f6;
}


.fg-public-search-button {
    height: 42px;
    padding: 0 18px;

    background: #172033;
    color: #ffffff;

    border: 0;
    border-radius: 9px;

    font: inherit;
    font-size: .88rem;
    font-weight: 700;

    cursor: pointer;
}


.fg-public-search-button:hover {
    background: #27364a;
}


.fg-public-search-clear {
    color: #475467;

    font-size: .84rem;
    font-weight: 650;

    text-decoration: none;
}


.fg-public-search-clear:hover {
    text-decoration: underline;
}


/* ==============================
   並び替え
============================== */

.fg-public-sort-nav {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
}


.fg-public-sort-nav::before {
    content: "並び替え";

    margin-right: 2px;

    color: #667085;

    font-size: .78rem;
    font-weight: 700;
}


.fg-public-sort-link {
    min-height: 38px;
    padding: 8px 13px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    background: #ffffff;
    color: #344054;

    border: 1px solid #d0d5dd;
    border-radius: 8px;

    font-size: .83rem;
    font-weight: 650;

    text-decoration: none;
}


.fg-public-sort-link:hover {
    background: #f8fafc;
    border-color: #98a2b3;
}


.fg-public-sort-link.is-active {
    background: #2563eb;
    color: #ffffff;

    border-color: #2563eb;
}


/* ==============================
   表示件数
============================== */

.fg-public-compact-tools-sub {
    flex: 0 0 auto;
}


.fg-public-result-count {
    margin: 0;
    padding: 9px 12px;

    color: #475467;
    background: #f8fafc;

    border: 1px solid #e2e8f0;
    border-radius: 8px;

    font-size: .82rem;
    font-weight: 700;

    white-space: nowrap;
}


/* ==============================
   テーブルスクロール領域
============================== */

.fg-public-table-wrap {
    position: relative;

    width: 100%;
    max-height: calc(100vh - 285px);

    overflow: auto;

    background: #ffffff;

    border: 1px solid #d8dee8;
    border-radius: 10px;

    scrollbar-gutter: stable;
}


/* ==============================
   ヘッダー固定
============================== */

.fg-public-table thead th {
    position: sticky;
    top: 0;
    z-index: 5;

    background: #eef2f6;

    border-bottom: 1px solid #cfd7e3;

    box-shadow:
        0 1px 0 rgba(16, 24, 40, .08);

    white-space: nowrap;
}


/* ==============================
   行の交互色
============================== */

.fg-public-table tbody tr:nth-child(odd) td {
    background: #ffffff;
}


.fg-public-table tbody tr:nth-child(even) td {
    background: #f8fafc;
}


/* ==============================
   行ホバー
============================== */

.fg-public-table tbody tr:hover td {
    background: #eaf3ff;
}


/* セルの境界を少し柔らかく */
.fg-public-table th,
.fg-public-table td {
    border-color: #e2e8f0;

    transition:
        background-color .12s ease;
}


/* ==============================
   スマホ
============================== */

@media (max-width: 900px) {

    .fg-public-compact-tools {
        padding: 12px;

        display: block;
    }


    .fg-public-compact-tools-main {
        display: block;
    }


    .fg-public-search-form {
        min-width: 0;
        width: 100%;
    }


    .fg-public-sort-nav {
        margin-top: 12px;
    }


    .fg-public-compact-tools-sub {
        margin-top: 10px;
    }


    .fg-public-result-count {
        display: inline-block;
    }

}
/* ======================================================
   ② 詳細表：施設名列を左に固定
====================================================== */

.fg-public-table th:first-child,
.fg-public-table td:first-child {
    position: sticky;
    left: 0;
}


.fg-public-table th:first-child {
    z-index: 7;

    background: #e9eef5;
}


.fg-public-table tbody tr:nth-child(odd) td:first-child {
    background: #ffffff;
}


.fg-public-table tbody tr:nth-child(even) td:first-child {
    background: #f8fafc;
}


.fg-public-table tbody tr:hover td:first-child {
    background: #eaf3ff;
}


.fg-public-table td:first-child {
    z-index: 2;

    box-shadow:
        1px 0 0 #e2e8f0;

    font-weight: 650;
}
.fg-public-table td:last-child {
    white-space: normal;
    line-height: 1.55;
}
/* ======================================================
   基本表：名称列を横スクロール時も固定
====================================================== */

/* 種別列 */
.fg-public-table-basic .fg-col-category {
    position: sticky;
    left: 0;
}

/* 名称列 */
.fg-public-table-basic .fg-col-name {
    position: sticky;
    left: 190px;
}


/* ヘッダー */
.fg-public-table-basic thead .fg-col-category,
.fg-public-table-basic thead .fg-col-name {
    z-index: 8;

    background: #e9eef5;
}


/* 通常行 */
.fg-public-table-basic tbody tr:nth-child(odd) .fg-col-category,
.fg-public-table-basic tbody tr:nth-child(odd) .fg-col-name {
    background: #ffffff;
}


.fg-public-table-basic tbody tr:nth-child(even) .fg-col-category,
.fg-public-table-basic tbody tr:nth-child(even) .fg-col-name {
    background: #f8fafc;
}


/* ホバー行 */
.fg-public-table-basic tbody tr:hover .fg-col-category,
.fg-public-table-basic tbody tr:hover .fg-col-name {
    background: #eaf3ff;
}


/* 固定列の右境界 */
.fg-public-table-basic .fg-col-name {
    box-shadow:
        1px 0 0 #d8dee8;
}


.fg-public-table-basic tbody .fg-col-name {
    font-weight: 650;
}
/* ======================================================
   ② 費用・受入テーブルの列表示調整
====================================================== */

.fg-public-table:not(.fg-public-table-basic) {
    table-layout: fixed;

    min-width: 1400px;
}


/* 施設名 */
.fg-public-table:not(.fg-public-table-basic) th:nth-child(1),
.fg-public-table:not(.fg-public-table-basic) td:nth-child(1) {
    white-space: normal;

    font-weight: 650;
    line-height: 1.5;
}


/* 月額費用・空き状況・各条件 */
.fg-public-table:not(.fg-public-table-basic) th:nth-child(n+2):nth-child(-n+9),
.fg-public-table:not(.fg-public-table-basic) td:nth-child(n+2):nth-child(-n+9) {
    text-align: center;
}


/* 月額費用・初期費用だけ左寄せ */
.fg-public-table:not(.fg-public-table-basic) th:nth-child(2),
.fg-public-table:not(.fg-public-table-basic) td:nth-child(2),
.fg-public-table:not(.fg-public-table-basic) th:nth-child(5),
.fg-public-table:not(.fg-public-table-basic) td:nth-child(5) {
    text-align: left;
}


/* 備考 */
.fg-public-table:not(.fg-public-table-basic) th:nth-child(10),
.fg-public-table:not(.fg-public-table-basic) td:nth-child(10) {
    white-space: normal;

    line-height: 1.55;
}


/* 各セル */
.fg-public-table:not(.fg-public-table-basic) th,
.fg-public-table:not(.fg-public-table-basic) td {
    padding: 11px 12px;

    vertical-align: middle;
}


/* 空欄が続いても行の高さを安定させる */
.fg-public-table:not(.fg-public-table-basic) tbody td {
    min-height: 42px;
}
/* ======================================================
   一覧上部：検索・表示切替・並び替えの整理
====================================================== */


/* ① 上段：戻る・カテゴリ・表示切替 */
.fg-public-nav-with-tabs {
    margin-bottom: 18px;

    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}


.fg-public-nav-with-tabs-main {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}


/* 基本／費用・受入 */
.fg-public-table-view-tabs {
    display: inline-flex;

    padding: 3px;

    background: #eef2f6;

    border: 1px solid #d8dee8;
    border-radius: 10px;
}


.fg-public-table-view-link {
    min-height: 36px;
    padding: 7px 14px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: #344054;
    background: transparent;

    border: 0;
    border-radius: 7px;

    font-size: .86rem;
    font-weight: 700;

    text-decoration: none;
}


.fg-public-table-view-link:hover {
    background: rgba(255, 255, 255, .7);
}


.fg-public-table-view-link.is-active {
    color: #ffffff;
    background: #2563eb;

    box-shadow:
        0 2px 5px rgba(37, 99, 235, .22);
}


/* ② 下段：検索・並び替え */
.fg-public-compact-tools {
    margin-bottom: 16px;
    padding: 0;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;

    background: transparent;
    border: 0;
}


.fg-public-compact-tools-main {
    min-width: 0;
    flex: 1;

    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}


/* 検索欄 */
.fg-public-search-form {
    min-width: 340px;
    flex: 0 1 520px;

    display: flex;
    align-items: center;
    gap: 8px;
}


.fg-public-search-input {
    min-width: 0;
    flex: 1;

    height: 42px;
    padding: 0 14px;

    color: #101828;
    background: #ffffff;

    border: 1px solid #cfd7e3;
    border-radius: 10px;

    font: inherit;
    font-size: .88rem;
}


.fg-public-search-input:focus {
    outline: 3px solid rgba(37, 99, 235, .13);
    border-color: #2563eb;
}


/* 検索ボタン */
.fg-public-search-button {
    height: 42px;
    padding: 0 18px;

    color: #ffffff;
    background: #172033;

    border: 0;
    border-radius: 10px;

    font: inherit;
    font-size: .86rem;
    font-weight: 700;

    cursor: pointer;
}


.fg-public-search-button:hover {
    background: #27364a;
}


/* ③ 並び替えを一つの操作群として見せる */
.fg-public-sort-nav {
    display: inline-flex;
    align-items: center;

    padding: 3px;

    background: #f1f5f9;

    border: 1px solid #d8dee8;
    border-radius: 10px;
}


.fg-public-sort-nav::before {
    content: "並び替え";

    margin: 0 8px 0 6px;

    color: #667085;

    font-size: .75rem;
    font-weight: 700;
}


.fg-public-sort-link {
    min-height: 34px;
    padding: 6px 11px;

    display: inline-flex;
    align-items: center;

    color: #344054;
    background: transparent;

    border: 0;
    border-radius: 7px;

    font-size: .81rem;
    font-weight: 650;

    text-decoration: none;
}


.fg-public-sort-link:hover {
    background: #ffffff;
}


.fg-public-sort-link.is-active {
    color: #172033;
    background: #ffffff;

    box-shadow:
        0 1px 4px rgba(16, 24, 40, .12);
}


/* ④ 件数表示 */
.fg-public-result-count {
    margin: 0;
    padding: 7px 10px;

    color: #667085;
    background: transparent;

    border: 0;

    font-size: .82rem;
    font-weight: 700;

    white-space: nowrap;
}


/* ⑤ スマホ */
@media (max-width: 900px) {

    .fg-public-nav-with-tabs {
        display: block;
    }


    .fg-public-table-view-tabs {
        margin-top: 10px;
    }


    .fg-public-compact-tools {
        display: block;
    }


    .fg-public-search-form {
        min-width: 0;
        width: 100%;
    }


    .fg-public-sort-nav {
        margin-top: 10px;
    }


    .fg-public-compact-tools-sub {
        margin-top: 8px;
    }

}
/* ======================================================
   介護保険サービス：対応・空きテーブル
====================================================== */

.fg-public-table-care-detail {
    min-width: 1440px;

    table-layout: fixed;
}


/* ==============================
   事業所名
============================== */

.fg-public-table-care-detail th:first-child,
.fg-public-table-care-detail td:first-child {
    position: sticky;
    left: 0;
}


.fg-public-table-care-detail th:first-child {
    z-index: 8;

    background: #e9eef5;
}


.fg-public-table-care-detail td:first-child {
    z-index: 3;

    font-weight: 650;
    line-height: 1.5;

    white-space: normal;

    box-shadow:
        1px 0 0 #d8dee8;
}


.fg-public-table-care-detail tbody tr:nth-child(odd) td:first-child {
    background: #ffffff;
}


.fg-public-table-care-detail tbody tr:nth-child(even) td:first-child {
    background: #f8fafc;
}


.fg-public-table-care-detail tbody tr:hover td:first-child {
    background: #eaf3ff;
}


/* ==============================
   曜日列
============================== */

.fg-public-table-care-detail th:nth-child(n+2):nth-child(-n+8) {
    text-align: center;

    background: #edf4ff;
}


.fg-public-table-care-detail td:nth-child(n+2):nth-child(-n+8) {
    padding-left: 4px;
    padding-right: 4px;

    text-align: center;

    font-size: .94rem;
    font-weight: 700;
}


/* 土曜日 */
.fg-public-table-care-detail th:nth-child(7) {
    color: #2563eb;
}


/* 日曜日 */
.fg-public-table-care-detail th:nth-child(8) {
    color: #dc2626;
}


/* ==============================
   長文列
============================== */

.fg-public-table-care-detail th:nth-child(n+9),
.fg-public-table-care-detail td:nth-child(n+9) {
    text-align: left;
}




/* 営業時間 */
.fg-public-table-care-detail td:nth-child(10) {
    font-variant-numeric: tabular-nums;
}


/* ==============================
   セル全体
============================== */

.fg-public-table-care-detail th,
.fg-public-table-care-detail td {
    min-height: 42px;

    padding: 10px 11px;

    vertical-align: middle;
}
/* ======================================================
   空き状況記号
====================================================== */

.fg-care-status-legend {
    margin: -5px 0 14px;

    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 18px;

    color: #667085;

    font-size: .8rem;
}


.fg-care-status-legend span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}


.fg-care-status-legend strong {
    min-width: 18px;

    color: #172033;

    font-size: .9rem;

    text-align: center;
}
/* ======================================================
   ① 介護サービス詳細表：ツールチップ復旧
====================================================== */

.fg-public-table-care-detail .fg-public-tooltip-cell {
    position: relative;

    overflow: visible;

    white-space: nowrap;
}


/* 表示中の短縮テキストだけを省略 */
.fg-public-table-care-detail .fg-public-tooltip-text {
    display: block;

    width: 100%;
    max-width: 100%;

    overflow: hidden;

    white-space: nowrap;
    text-overflow: ellipsis;
}


/* ホバー中は他セルより前面へ */
.fg-public-table-care-detail .fg-public-tooltip-cell:hover {
    z-index: 30;
}
/* ======================================================
   制度系施設：受入・空きテーブル
====================================================== */

.fg-public-table-facility-care-detail {
    min-width: 1295px;

    table-layout: fixed;
}


/* ==============================
   施設名
============================== */

.fg-public-table-facility-care-detail th:first-child,
.fg-public-table-facility-care-detail td:first-child {
    position: sticky;
    left: 0;
}


.fg-public-table-facility-care-detail th:first-child {
    z-index: 8;

    background: #e9eef5;
}


.fg-public-table-facility-care-detail td:first-child {
    z-index: 3;

    font-weight: 650;
    line-height: 1.5;

    white-space: normal;

    box-shadow:
        1px 0 0 #d8dee8;
}


.fg-public-table-facility-care-detail
tbody tr:nth-child(odd) td:first-child {
    background: #ffffff;
}


.fg-public-table-facility-care-detail
tbody tr:nth-child(even) td:first-child {
    background: #f8fafc;
}


.fg-public-table-facility-care-detail
tbody tr:hover td:first-child {
    background: #eaf3ff;
}


/* ==============================
   条件列
============================== */

.fg-public-table-facility-care-detail
th:nth-child(n+2):nth-child(-n+8),
.fg-public-table-facility-care-detail
td:nth-child(n+2):nth-child(-n+8) {
    text-align: center;
}


/* 居室タイプは文字量があるため左寄せ */
.fg-public-table-facility-care-detail th:nth-child(2),
.fg-public-table-facility-care-detail td:nth-child(2) {
    text-align: left;
}


/* ==============================
   備考
============================== */

.fg-public-table-facility-care-detail th:nth-child(9),
.fg-public-table-facility-care-detail td:nth-child(9) {
    text-align: left;

    white-space: normal;
    line-height: 1.55;
}


/* ==============================
   セル
============================== */

.fg-public-table-facility-care-detail th,
.fg-public-table-facility-care-detail td {
    padding: 10px 11px;

    vertical-align: middle;
}
/* ======================================================
   ショートステイ：対応・空きテーブル
====================================================== */

.fg-public-table-short-stay-detail {
    min-width: 1505px;
    table-layout: fixed;
}


/* ==============================
   施設名固定
============================== */

.fg-public-table-short-stay-detail th:first-child,
.fg-public-table-short-stay-detail td:first-child {
    position: sticky;
    left: 0;
}


.fg-public-table-short-stay-detail th:first-child {
    z-index: 8;
    background: #e9eef5;
}


.fg-public-table-short-stay-detail td:first-child {
    z-index: 3;

    font-weight: 650;
    line-height: 1.5;

    white-space: normal;

    box-shadow:
        1px 0 0 #d8dee8;
}


.fg-public-table-short-stay-detail
tbody tr:nth-child(odd) td:first-child {
    background: #ffffff;
}


.fg-public-table-short-stay-detail
tbody tr:nth-child(even) td:first-child {
    background: #f8fafc;
}


.fg-public-table-short-stay-detail
tbody tr:hover td:first-child {
    background: #eaf3ff;
}


/* ==============================
   日付列
============================== */

.fg-public-table-short-stay-detail
th:nth-child(2),
.fg-public-table-short-stay-detail
td:nth-child(2),
.fg-public-table-short-stay-detail
th:nth-child(3),
.fg-public-table-short-stay-detail
td:nth-child(3) {
    text-align: center;

    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}


/* ==============================
   条件列
============================== */

.fg-public-table-short-stay-detail
th:nth-child(n+6):nth-child(-n+9),
.fg-public-table-short-stay-detail
td:nth-child(n+6):nth-child(-n+9) {
    text-align: center;
}


/* 居室タイプ・送迎エリア */
.fg-public-table-short-stay-detail
th:nth-child(4),
.fg-public-table-short-stay-detail
td:nth-child(4),
.fg-public-table-short-stay-detail
th:nth-child(5),
.fg-public-table-short-stay-detail
td:nth-child(5) {
    text-align: left;
}


/* 備考 */
.fg-public-table-short-stay-detail
th:nth-child(10),
.fg-public-table-short-stay-detail
td:nth-child(10) {
    text-align: left;

    white-space: normal;
    line-height: 1.55;
}


/* セル全体 */
.fg-public-table-short-stay-detail th,
.fg-public-table-short-stay-detail td {
    padding: 10px 11px;
    vertical-align: middle;
}
/* ======================================================
   医療機関：診療・訪問テーブル
====================================================== */

.fg-public-table-medical-detail {
    min-width: 1500px;
    table-layout: fixed;
}


/* ==============================
   医療機関名を固定
============================== */

.fg-public-table-medical-detail th:first-child,
.fg-public-table-medical-detail td:first-child {
    position: sticky;
    left: 0;
}


.fg-public-table-medical-detail th:first-child {
    z-index: 8;
    background: #e9eef5;
}


.fg-public-table-medical-detail td:first-child {
    z-index: 3;

    font-weight: 650;
    line-height: 1.5;

    white-space: normal;

    box-shadow:
        1px 0 0 #d8dee8;
}


.fg-public-table-medical-detail
tbody tr:nth-child(odd) td:first-child {
    background: #ffffff;
}


.fg-public-table-medical-detail
tbody tr:nth-child(even) td:first-child {
    background: #f8fafc;
}


.fg-public-table-medical-detail
tbody tr:hover td:first-child {
    background: #eaf3ff;
}


/* ==============================
   定型情報は中央寄せ
============================== */

.fg-public-table-medical-detail
th:nth-child(n+3):nth-child(-n+7),
.fg-public-table-medical-detail
td:nth-child(n+3):nth-child(-n+7) {
    text-align: center;
}


/* 診察時間 */
.fg-public-table-medical-detail td:nth-child(4) {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}


/* ==============================
   対応エリア
============================== */

.fg-public-table-medical-detail th:nth-child(8),
.fg-public-table-medical-detail td:nth-child(8) {
    text-align: left;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


/* ==============================
   備考
============================== */

.fg-public-table-medical-detail th:nth-child(9),
.fg-public-table-medical-detail td:nth-child(9) {
    text-align: left;

    white-space: normal;
    line-height: 1.5;
}


/* セル全体 */
.fg-public-table-medical-detail th,
.fg-public-table-medical-detail td {
    padding: 10px 11px;
    vertical-align: middle;
}
/* ======================================================
   医療機関詳細表：診療科・対応エリアを左寄せ
====================================================== */

/* 診療科 */
.fg-public-table.fg-public-table-medical-detail
th:nth-child(2),
.fg-public-table.fg-public-table-medical-detail
td:nth-child(2) {
    text-align: left;
}


/* 対応エリア */
.fg-public-table.fg-public-table-medical-detail
th:nth-child(8),
.fg-public-table.fg-public-table-medical-detail
td:nth-child(8) {
    text-align: left;
}


/* ツールチップ内の表示文字 */
.fg-public-table.fg-public-table-medical-detail
td:nth-child(2) .fg-public-tooltip-text,
.fg-public-table.fg-public-table-medical-detail
td:nth-child(8) .fg-public-tooltip-text {
    text-align: left;
}
/* ======================================================
   社会資源：内容・利用テーブル
====================================================== */

.fg-public-table-social-resource-detail {
    min-width: 1300px;
    table-layout: fixed;
}


/* サービス名を固定 */
.fg-public-table-social-resource-detail th:first-child,
.fg-public-table-social-resource-detail td:first-child {
    position: sticky;
    left: 0;
}


.fg-public-table-social-resource-detail th:first-child {
    z-index: 8;
    background: #e9eef5;
}


.fg-public-table-social-resource-detail td:first-child {
    z-index: 3;

    font-weight: 650;
    line-height: 1.5;
    white-space: normal;

    box-shadow:
        1px 0 0 #d8dee8;
}


.fg-public-table-social-resource-detail
tbody tr:nth-child(odd) td:first-child {
    background: #ffffff;
}


.fg-public-table-social-resource-detail
tbody tr:nth-child(even) td:first-child {
    background: #f8fafc;
}


.fg-public-table-social-resource-detail
tbody tr:hover td:first-child {
    background: #eaf3ff;
}


/* 概要 */
.fg-public-table-social-resource-detail th:nth-child(2),
.fg-public-table-social-resource-detail td:nth-child(2) {
    text-align: left;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


/* 料金 */
.fg-public-table-social-resource-detail th:nth-child(3),
.fg-public-table-social-resource-detail td:nth-child(3) {
    text-align: left;
}


/* 対象エリア */
.fg-public-table-social-resource-detail th:nth-child(4),
.fg-public-table-social-resource-detail td:nth-child(4) {
    text-align: left;
}


/* 受付時間 */
.fg-public-table-social-resource-detail th:nth-child(5),
.fg-public-table-social-resource-detail td:nth-child(5) {
    text-align: center;

    font-variant-numeric: tabular-nums;
}


/* 備考 */
.fg-public-table-social-resource-detail th:nth-child(6),
.fg-public-table-social-resource-detail td:nth-child(6) {
    text-align: left;

    white-space: normal;
    line-height: 1.5;
}


/* セル全体 */
.fg-public-table-social-resource-detail th,
.fg-public-table-social-resource-detail td {
    padding: 10px 11px;
    vertical-align: middle;
}
/* ======================================================
   社会資源詳細表：概要を左寄せ
====================================================== */

.fg-public-table.fg-public-table-social-resource-detail
th:nth-child(2),
.fg-public-table.fg-public-table-social-resource-detail
td:nth-child(2) {
    text-align: left;
}


/* ツールチップ内の表示文字も左寄せ */
.fg-public-table.fg-public-table-social-resource-detail
td:nth-child(2) .fg-public-tooltip-text {
    text-align: left;
}
/* ======================================================
   求人一覧：求人条件テーブル
====================================================== */

.fg-public-table-jobs-detail {
    min-width: 1535px;
    table-layout: fixed;
}


/* 名称を固定 */
.fg-public-table-jobs-detail th:first-child,
.fg-public-table-jobs-detail td:first-child {
    position: sticky;
    left: 0;
}


.fg-public-table-jobs-detail th:first-child {
    z-index: 8;
    background: #e9eef5;
}


.fg-public-table-jobs-detail td:first-child {
    z-index: 3;

    font-weight: 650;
    line-height: 1.5;
    white-space: normal;

    box-shadow:
        1px 0 0 #d8dee8;
}


.fg-public-table-jobs-detail
tbody tr:nth-child(odd) td:first-child {
    background: #ffffff;
}


.fg-public-table-jobs-detail
tbody tr:nth-child(even) td:first-child {
    background: #f8fafc;
}


.fg-public-table-jobs-detail
tbody tr:hover td:first-child {
    background: #eaf3ff;
}


/* 職種・資格・休日備考・仕事内容は左寄せ */
.fg-public-table.fg-public-table-jobs-detail
th:nth-child(2),
.fg-public-table.fg-public-table-jobs-detail
td:nth-child(2),
.fg-public-table.fg-public-table-jobs-detail
th:nth-child(6),
.fg-public-table.fg-public-table-jobs-detail
td:nth-child(6),
.fg-public-table.fg-public-table-jobs-detail
th:nth-child(8),
.fg-public-table.fg-public-table-jobs-detail
td:nth-child(8),
.fg-public-table.fg-public-table-jobs-detail
th:nth-child(11),
.fg-public-table.fg-public-table-jobs-detail
td:nth-child(11) {
    text-align: left;
}


/* 定型条件は中央寄せ */
.fg-public-table.fg-public-table-jobs-detail
th:nth-child(3),
.fg-public-table.fg-public-table-jobs-detail
td:nth-child(3),
.fg-public-table.fg-public-table-jobs-detail
th:nth-child(4),
.fg-public-table.fg-public-table-jobs-detail
td:nth-child(4),
.fg-public-table.fg-public-table-jobs-detail
th:nth-child(5),
.fg-public-table.fg-public-table-jobs-detail
td:nth-child(5),
.fg-public-table.fg-public-table-jobs-detail
th:nth-child(7),
.fg-public-table.fg-public-table-jobs-detail
td:nth-child(7),
.fg-public-table.fg-public-table-jobs-detail
th:nth-child(9),
.fg-public-table.fg-public-table-jobs-detail
td:nth-child(9),
.fg-public-table.fg-public-table-jobs-detail
th:nth-child(10),
.fg-public-table.fg-public-table-jobs-detail
td:nth-child(10) {
    text-align: center;
}


/* 給与・勤務時間 */
.fg-public-table-jobs-detail td:nth-child(4),
.fg-public-table-jobs-detail td:nth-child(7) {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}


/* 仕事内容 */
.fg-public-table-jobs-detail
th:nth-child(11),
.fg-public-table-jobs-detail
td:nth-child(11) {
    white-space: normal;
    line-height: 1.5;
}


/* セル全体 */
.fg-public-table-jobs-detail th,
.fg-public-table-jobs-detail td {
    padding: 10px 11px;
    vertical-align: middle;
}