@charset "UTF-8";

/* ================================
   となりの医療：検索フォーム A案
   searchform.css
   ※common.css は既存のまま保持
================================ */

:root {
    --tonarino-blue: #4F8EF7;
    --tonarino-blue-dark: #3E7CE4;
    --tonarino-blue-soft: #EAF3FF;
    --tonarino-mint: #35C67A;
    --tonarino-mint-soft: #EAF9F1;
    --tonarino-orange: #F59E63;
    --tonarino-orange-dark: #F47D3A;
    --tonarino-orange-soft: #FFF3E9;
    --tonarino-text: #334155;
    --tonarino-muted: #64748B;
    --tonarino-border: #D8E4F2;
    --tonarino-card: rgba(255,255,255,0.94);
    --tonarino-bg: #F5FAFF;
}

/* 検索フォーム全体 */
.tonarino-search-section {
    background-color: var(--tonarino-bg);
}

.tonarino-search-overlay {
    background:
        radial-gradient(circle at 8% 20%, rgba(79,142,247,0.08) 0, transparent 24%),
        radial-gradient(circle at 92% 18%, rgba(245,158,99,0.10) 0, transparent 18%),
        radial-gradient(circle at 85% 88%, rgba(53,198,122,0.10) 0, transparent 16%),
        linear-gradient(180deg, rgba(255,255,255,0.65), rgba(255,255,255,0.65));
}

.tonarino-search-card {
    background: var(--tonarino-card);
    border-color: rgba(216, 228, 242, 0.9);
    box-shadow: 0 14px 40px rgba(79, 111, 150, 0.12);
}

.tonarino-search-eyebrow {
    color: var(--tonarino-blue-dark);
    background: linear-gradient(135deg, rgba(79,142,247,0.10), rgba(53,198,122,0.10));
}

/* 検索タブ */
.tonarino-search-tabs {
    position: relative;
    background: linear-gradient(180deg, #F3F6FB 0%, #EEF3F8 100%);
    border: 1px solid #E4ECF5;
    box-shadow: inset 0 1px 2px rgba(79, 142, 247, 0.06);
}

.tonarino-tab-button {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    min-height: 52px;
    transform: translateY(0);
    transition:
        transform 0.22s ease,
        box-shadow 0.22s ease,
        background-color 0.22s ease,
        color 0.22s ease;
}

/* hover時のふわっとした背景 */
.tonarino-tab-button::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.96) 0%,
            rgba(234, 243, 255, 0.95) 100%
        );
    opacity: 0;
    transform: scale(0.96);
    transition:
        opacity 0.22s ease,
        transform 0.22s ease;
}

/* 下線アクセント */
.tonarino-tab-button::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 6px;
    width: 28px;
    height: 3px;
    border-radius: 999px;
    background: var(--tonarino-blue);
    opacity: 0;
    transform: translateX(-50%) scaleX(0.4);
    transition:
        opacity 0.22s ease,
        transform 0.22s ease;
}

/* hover */
.tonarino-tab-button:hover {
    color: var(--tonarino-blue-dark) !important;
    transform: translateY(-1px);
    box-shadow:
        0 8px 18px rgba(79, 142, 247, 0.14),
        0 2px 6px rgba(15, 23, 42, 0.06);
}

.tonarino-tab-button:hover::before {
    opacity: 1;
    transform: scale(1);
}

.tonarino-tab-button:hover::after {
    opacity: 0.9;
    transform: translateX(-50%) scaleX(1);
}

.tonarino-tab-button svg {
    transition:
        transform 0.22s ease,
        color 0.22s ease;
}

.tonarino-tab-button:hover svg {
    transform: translateY(-1px) scale(1.12);
}

/* 選択中タブ */
.tonarino-tab-button.bg-white {
    transform: translateY(-1px);
    box-shadow:
        0 8px 18px rgba(79, 142, 247, 0.14),
        0 2px 6px rgba(15, 23, 42, 0.06) !important;
}

.tonarino-tab-button.bg-white::before {
    opacity: 1;
    transform: scale(1);
}

.tonarino-tab-button.bg-white::after {
    opacity: 1;
    transform: translateX(-50%) scaleX(1);
}

/* AIタブだけ、hover時はオレンジ寄り */
#tab-ai-search:hover {
    color: var(--tonarino-orange-dark) !important;
}

#tab-ai-search:hover::before {
    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.96) 0%,
            rgba(255, 243, 233, 0.96) 100%
        );
}

#tab-ai-search:hover::after {
    background: var(--tonarino-orange);
}

/* AIタブが選択中の時 */
#tab-ai-search.bg-white {
    color: var(--tonarino-orange-dark) !important;
}

#tab-ai-search.bg-white::before {
    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.96) 0%,
            rgba(255, 243, 233, 0.96) 100%
        );
}

#tab-ai-search.bg-white::after {
    background: var(--tonarino-orange);
}

/* キーボード操作時 */
.tonarino-tab-button:focus-visible {
    outline: 3px solid rgba(79, 142, 247, 0.26);
    outline-offset: 3px;
}

/* 入力欄 */
.tonarino-input {
    border-color: var(--tonarino-border);
    background: #fff;
    box-shadow: 0 1px 0 rgba(255,255,255,0.9) inset;
}

.tonarino-input:hover {
    border-color: #B8D2F4;
}

.tonarino-input:focus {
    border-color: #9FC4F6;
    box-shadow: 0 0 0 4px rgba(79, 142, 247, 0.12);
}

/* ラベル */
.tonarino-label {
    color: var(--tonarino-muted);
}

.tonarino-inline-label {
    display: inline-flex;
    align-items: center;
    min-width: 86px;
    color: var(--tonarino-muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
}

.tonarino-filter-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

/* 施設種別：通常 */
.facility-option {
    position: relative;
    border-color: #D8E4F2;
    background: #fff;
    color: #667085;
    transform: translateY(0);
    box-shadow: none;
}

/* 施設種別：hover */
.facility-option:hover {
    border-color: #8CB8F4;
    background: #F3F8FF;
    color: var(--tonarino-blue-dark);
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(79, 142, 247, 0.12);
}

/* 施設種別：選択中 */
label .peer:checked + .facility-option {
    background: linear-gradient(135deg, var(--tonarino-blue) 0%, #6EA6FF 100%);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 8px 18px rgba(79, 142, 247, 0.24);
    transform: translateY(-1px);
}

/* 施設種別：指定なし 通常 */
.facility-option-neutral {
    background: #F6F8FB;
    color: #667085;
}

/* 施設種別：指定なし hover */
.facility-option-neutral:hover {
    border-color: #B7C4D6;
    background: #EFF4FA;
    color: #475569;
    box-shadow: 0 6px 14px rgba(122, 138, 160, 0.10);
}

/* 施設種別：指定なし 選択中 */
label .peer:checked + .facility-option-neutral {
    background: #E8EEF6;
    color: #475569;
    border-color: #C8D4E3;
    box-shadow: 0 6px 14px rgba(122, 138, 160, 0.14);
    transform: translateY(-1px);
}

.facility-option .facility-icon {
    transition: color 0.2s ease;
}

.peer:checked + .facility-option .facility-icon {
    color: #ffffff;
}

/* こだわり条件：通常 */
.filter-chip {
    border-color: #DCE7F4;
    background: #fff;
    color: #667085;
    transform: translateY(0);
    box-shadow: none;
}

/* こだわり条件：hover */
.filter-chip:hover {
    border-color: #8CB8F4;
    background: #F3F8FF;
    color: var(--tonarino-blue-dark);
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(79, 142, 247, 0.12);
}

/* こだわり条件：選択中 */
label .peer:checked + .filter-chip {
    background: linear-gradient(135deg, var(--tonarino-blue) 0%, #6EA6FF 100%);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 8px 18px rgba(79, 142, 247, 0.20);
    transform: translateY(-1px);
}

/* 現在診療中のみ：通常 */
.filter-chip-open {
    border-color: #DCE7F4;
    background: #fff;
    color: #475569;
}

/* 通常時の丸 */
.filter-chip-open span:first-child {
    color: #94A3B8;
}

/* 現在診療中のみ：hover */
.filter-chip-open:hover {
    border-color: #A9E3C1;
    background: var(--tonarino-mint-soft);
    color: #137A43;
}

/* hover時の丸 */
.filter-chip-open:hover span:first-child {
    color: #35C67A;
}

/* 現在診療中のみ：選択中 */
label .peer:checked + .filter-chip-open {
    background: linear-gradient(135deg, var(--tonarino-mint) 0%, #56D58F 100%);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 8px 18px rgba(53, 198, 122, 0.24);
    transform: translateY(-1px);
}

/* 選択中の丸 */
label .peer:checked + .filter-chip-open span:first-child {
    color: #fff;
}

/* 検索ボタン */
.tonarino-submit-button {
    background: linear-gradient(135deg, var(--tonarino-blue) 0%, #6EA6FF 100%);
}

.tonarino-submit-button:hover {
    background: linear-gradient(135deg, var(--tonarino-blue-dark) 0%, #5C97F3 100%);
    transform: translateY(-1px);
}

/* AI検索ボタン */
.tonarino-ai-button {
    background: linear-gradient(135deg, var(--tonarino-orange) 0%, var(--tonarino-orange-dark) 100%);
}

.tonarino-ai-button:hover {
    background: linear-gradient(135deg, #F28D52 0%, #EE7132 100%);
    transform: translateY(-1px);
}

/* 現在地ボタン */
.tonarino-location-button {
    border: 1px solid #BED7F7;
    color: var(--tonarino-blue-dark);
    background: linear-gradient(180deg, #FFFFFF 0%, #F7FBFF 100%);
}

.tonarino-location-button:hover {
    background: var(--tonarino-blue-soft);
    border-color: #9FC4F6;
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(79, 142, 247, 0.12);
}

/* 現在地ステータス */
.tonarino-location-status {
    background: #EFF7FF;
    border-color: #CDE2FF;
    color: var(--tonarino-blue-dark);
}

/* SP調整 */
@media (max-width: 768px) {
    .tonarino-search-card {
        border-radius: 24px;
        padding: 1.25rem;
    }

    .tonarino-submit-button,
    .tonarino-ai-button,
    .tonarino-location-button,
    .tonarino-tab-button,
    .tonarino-input {
        min-height: 52px;
    }

    .tonarino-inline-label {
        width: 100%;
        min-width: 0;
    }
}

/* 検索結果ページ右サイドバーのみ：こだわり条件を3列固定 */
.tonarino-search-result-sidebar .tonarino-condition-tags {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
    width: 100%;
}

.tonarino-search-result-sidebar .tonarino-condition-tags > label,
.tonarino-search-result-sidebar .tonarino-condition-tags > div {
    min-width: 0;
}

.tonarino-search-result-sidebar .tonarino-condition-tags .filter-chip {
    width: 100%;
    justify-content: center;
    font-size: 12px;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    gap: 0.25rem;
    white-space: nowrap;
}

/* =========================================================
   検索結果一覧サイドバーのみ：
   診療状況の下に、こだわり条件を改行して表示
========================================================= */

.tonarino-search-result-sidebar .tonarino-condition-layout {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
}


@media (max-width: 767px) {
    input,
    select,
    textarea {
        font-size: 16px;
    }
}