/**
 * Specialist Unified Styles
 * 専門医検索ページと検索結果ページで統一したスタイル
 */

/* 日付表示（右上配置） */
.t_right {
    text-align: right;
    font-size: 14px;
    color: #666;
    margin-bottom: 20px;
    font-weight: normal;
}

/* クラス別専門医取得者数テーブル */
.senmon_line_tbl {
    margin: 0 0 30px 0;
    overflow-x: auto;
}

/* PCでのスクロール禁止 */
@media (min-width: 769px) {
    .senmon_line_tbl {
        overflow-x: visible;
    }
    
    .senmon_line_tbl table {
        table-layout: fixed;
        width: 100%;
    }
    
    .senmon_line_tbl table th:nth-child(1),
    .senmon_line_tbl table td:nth-child(1) { /* 氏名 */
        width: 35%;
        white-space: nowrap;
    }
    
    .senmon_line_tbl table th:nth-child(2),
    .senmon_line_tbl table td:nth-child(2) { /* 所属 */
        width: 50%;
        white-space: normal;
    }
    
    .senmon_line_tbl table th:nth-child(3),
    .senmon_line_tbl table td:nth-child(3) { /* 都道府県 */
        width: 15%;
        white-space: nowrap;
    }
}

/* 専門医カテゴリページ用のふりがなスタイル */
.senmon_line_tbl .txt80xs {
    font-size: 14px !important;
    line-height: 1.4;
    color: #666;
    display: block;
    margin-top: 2px;
}

/* 氏名の漢字スタイル */
.senmon_line_tbl .name-kanji {
    font-size: 18px !important;
    font-weight: bold;
    color: #333;
}

.senmon_line_tbl table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    margin-top: 0;
}

.senmon_line_tbl table thead {
    background: #EDEDED;
}

.senmon_line_tbl table thead th {
    padding: 10px 15px;
    text-align: left;
    font-weight: bold;
    font-size: 16px;
    color: #333;
    border: 1px solid #ddd;
    vertical-align: middle;
}

.senmon_line_tbl table tbody tr {
    border-bottom: 1px solid #ddd;
}

.senmon_line_tbl table tbody tr:last-child {
    border-bottom: none;
}

.senmon_line_tbl table tbody th {
    padding: 9px 15px;
    text-align: left;
    font-weight: normal;
    font-size: 16px;
    color: #333;
    border: 1px solid #ddd;
    background: #fff;
    vertical-align: middle;
}

.senmon_line_tbl table tbody td {
    padding: 9px 15px;
    text-align: left;
    font-size: 16px;
    color: #333;
    border: 1px solid #ddd;
    background: #fff;
    vertical-align: middle;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .senmon_line_tbl table thead th,
    .senmon_line_tbl table tbody th,
    .senmon_line_tbl table tbody td {
        padding: 8px 10px;
        font-size: 14px;
    }
    
    .t_right {
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    .senmon_line_tbl table thead th,
    .senmon_line_tbl table tbody th,
    .senmon_line_tbl table tbody td {
        padding: 6px 8px;
        font-size: 13px;
    }
    
    .t_right {
        font-size: 12px;
    }
}

.sp_search{
	background: #F5F6F5;
	padding: 20px 40px;
}

.sp_search form > ul > li{
	display: flex;
	align-items: baseline;
	border-bottom: 1px solid #ddd;
	padding: 15px 0;
}
.sp_search form > ul > li:last-child{
	border-bottom: none;
}
.sp_search form > ul > li h4{
	width: 25%;flex: none;
	color: #2761a9;
}

.sp_search form > ul > li ul{
	display: flex;flex-wrap: wrap;
	margin-left: -25px!important;margin-top: -5px;
}
.sp_search form > ul > li ul li{
	margin-left: 25px;
	margin-top: 5px;
}

.sp_search form > ul > li label{flex: auto;}
.sp_search form > ul > li .sf-input-text{
	padding: 10px;
	outline: none;
	border: 1px solid #2761a9;
	width: 100%;
	max-width: 400px;
}

.sp_search form input[type=checkbox]{
	transform: scale(1.2);
	display: inline-block;
	margin-right: 8px;
}

.sp_search form select.sf-input-select{
	padding: 5px;
	outline: none;
	border: 1px solid #2761a9;
}

.sp_search form input[type=submit]{
	padding: 20px 40px 20px 60px;
	background: #4582EC;
	color: #fff;
	text-decoration: none;
	display: inline-block;
	transition: .3s;
	font-weight: bold;
	min-width: 300px;
	text-align: center;
	border-radius: 100px;
	margin: 3em auto 0;
	border: none;
	outline: none;
	font-size: 120%;
	cursor: pointer;
	position: relative;
}

.sp_search form input[type=submit]:hover{
	opacity: .6;
}

.sp_search form input[type=submit]:after{
	content: "\f002";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	display: inline-block;
	text-decoration: none;
	margin-left: .8em;
}

.sp_search form .sf-field-reset{
	justify-content: flex-end;
}

.sp_search form  .sf-field-search label:after{
	content: "※氏名を検索する場合は、姓名の間にスペースをいれて検索してください。";
	display: block;
	font-size: 14px;
	color: #666;
	margin-top: 5px;
}

.senmon_list_tbl.sticky table {
	position: relative;
}
/* 検索結果ページの表スタイル - 専門医カテゴリページと統一 */
.senmon_list_tbl table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    margin-top: 0;
}

.senmon_list_tbl table thead {
    background: #EDEDED;
}

.senmon_list_tbl table thead th {
    padding: 10px 15px;
    text-align: left;
    font-weight: bold;
    font-size: 16px;
    color: #333;
    border: 1px solid #ddd;
    vertical-align: middle;
}

.senmon_list_tbl table tbody tr {
    border-bottom: 1px solid #ddd;
}

.senmon_list_tbl table tbody tr:last-child {
    border-bottom: none;
}

.senmon_list_tbl table tbody td {
    padding: 9px 15px;
    text-align: left;
    font-size: 16px;
    color: #333;
    border: 1px solid #ddd;
    background: #fff;
    vertical-align: middle;
}

/* 表ヘッダー固定 - 表の先頭に固定 */
.senmon_list_tbl.sticky table thead,
#sf_main .senmon_list_tbl.sticky table thead {
	position: sticky !important;
	top: 0px !important;
	z-index: 10 !important;
	background: #EDEDED !important;
}

/* Table Styling */
table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 30px;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

table thead {
    background: linear-gradient(135deg, #0964AF 0%, #074a85 100%);
    color: #fff;
}

table thead th {
    padding: 20px 15px;
    text-align: left;
    font-weight: bold;
    font-size: 110%;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}

table thead th:last-child {
    border-right: none;
}

table tbody tr {
    border-bottom: 1px solid #e9ecef;
    transition: background-color 0.2s ease;
}

table tbody tr:hover {
    background: #f8f9fa;
}

table tbody td {
    padding: 18px 15px;
    font-size: 105%;
    color: #222;
}

table tbody td:nth-child(3) { /* 氏名列 */
    font-weight: bold;
}

table tbody td:nth-child(4) { /* 所属列 */
    color: #555;
}

/* Specialist Category */
.specialist_cat {
    margin-bottom: 40px;
}

.specialist_cat h2 {
    font-size: 150%;
    font-weight: bold;
    color: #222;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 3px solid #0964AF;
    text-align: center;
}

.specialist_cat ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
}

.specialist_cat li {
    margin: 0;
}

.specialist_cat a {
    display: block;
    padding: 20px;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 12px;
    text-decoration: none;
    color: #222;
    font-size: 110%;
    font-weight: bold;
    text-align: center;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.specialist_cat a:hover {
    border-color: #0964AF;
    color: #0964AF;
    background: #f8f9fa;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(9, 100, 175, 0.15);
}

/* Responsive Design */
@media (max-width: 768px) {
    .sp_search {
        padding: 15px 20px;
    }
    
    .sp_search form > ul > li {
        flex-direction: column;
        align-items: stretch;
        padding: 20px 0;
    }
    
    .sp_search form > ul > li h4 {
        width: 100%;
        margin-bottom: 15px;
        font-size: 16px;
    }
    
    .sp_search form > ul > li .sf-input-text {
        max-width: 100%;
        font-size: 16px;
        padding: 12px 10px;
    }
    
    .sp_search form select.sf-input-select {
        font-size: 16px;
        padding: 12px 10px;
        width: 100%;
    }
    
    .sp_search form > ul > li ul {
        margin-left: 0 !important;
        margin-top: 10px;
        gap: 10px 15px;
    }
    
    .sp_search form > ul > li ul li {
        margin-left: 0;
        margin-top: 0;
    }
    
    .sp_search form input[type="submit"] {
        width: 90%;
        max-width: 320px;
        font-size: 16px;
        padding: 18px 30px 18px 50px;
        margin: 2em auto 0;
        min-width: 250px;
    }

    .specialist_cat ul {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    table {
        font-size: 90%;
    }

    table thead th,
    table tbody td {
        padding: 12px 8px;
        font-size: 95%;
    }
}

@media (max-width: 480px) {
    .sp_search {
        padding: 15px 15px;
    }
    
    .sp_search form > ul > li {
        padding: 15px 0;
    }
    
    .sp_search form > ul > li h4 {
        font-size: 15px;
        margin-bottom: 12px;
    }
    
    .sp_search form > ul > li .sf-input-text {
        font-size: 16px;
        padding: 12px 8px;
    }
    
    .sp_search form select.sf-input-select {
        font-size: 16px;
        padding: 12px 8px;
    }
    
    .sp_search form > ul > li ul {
        gap: 8px 12px;
        margin-top: 8px;
    }
    
    .sp_search form input[type="submit"] {
        font-size: 16px;
        padding: 16px 25px 16px 40px;
        margin: 2em auto 0;
        min-width: 200px;
        max-width: 280px;
        width: 85%;
    }

    table {
        font-size: 85%;
    }

    table thead th,
    table tbody td {
        padding: 10px 6px;
        font-size: 90%;
    }
} 