@charset "utf-8";
/* Optimized CSS Document */

/*------------------------------------------------------------------------
BASIC
------------------------------------------------------------------------*/
body {
	font-family: "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #000;
	overflow: hidden;
	text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

#wrap {
	width: 100%;
	position: relative;
	height: 100%;
	background: #fff;
}

/*------------------------------------------------------------------------
コンテンツ
------------------------------------------------------------------------*/
#contents {
	margin: 0 auto 20px;
	max-width: 750px;
	color: #333;
}

@media screen and (max-width: 979px) {
	#contents { width: 700px; }
	.pc { display: none; }
	.sp { display: block; }
}

@media screen and (min-width: 979px) {
	.pc { display: block; }
	.sp { display: none; }
}

@media screen and (max-width: 767px) {
	#contents { width: 90%; max-width: 700px; }
}

@media screen and (max-width: 479px) {
	#contents { width: 100%; }
}

.text {
	width: 100%;
	margin: 0 auto;
	padding: 5px 3px;
}

/*------------------------------------------------------------------------
文字装飾
------------------------------------------------------------------------*/
p {
	font-size: 18px;
	line-height: 1.7em;
}

b { font-weight: bold; }

strong {
	font-weight: bold;
	color: #ff363f;
}

.strong4 {
	font-weight: bold;
	background: linear-gradient(to bottom, transparent 60%, #ed695633 60%);
	color: #ff363f;
}

.text_small { font-size: 13px; }
.text_verysmall { font-size: 10px; font-weight: lighter; }

/*------------------------------------------------------------------------
画像装飾
------------------------------------------------------------------------*/
img {
	max-width: 100%;
	margin: 0 auto;
}

/*------------------------------------------------------------------------
テーブル基本設定
------------------------------------------------------------------------*/
table {
	text-align: center;
	clear: both;
	width: 100%;
	border-collapse: collapse;
}

thead {
	position: sticky;
	z-index: 10;
	top: 0;
}

th {
	background-color: rgba(248, 255, 209, 0.36);
	border: 1px solid #cdcdcd;
	text-align: center;
	font-size: 13px;
	padding: 2px;
}

td {
	border: 1px solid #cdcdcd;
	text-align: center;
	font-size: 13px;
	padding: 5px 2px;
	line-height: 1.6;
}

/*------------------------------------------------------------------------
運営者情報
------------------------------------------------------------------------*/
.uneisha {
	margin: 10px auto;
	padding: 0;
}
.uneisha th {
	width: 25%;
	background-color: #ffd1ae59;
	text-align: center;
	font-size: 14px;
	padding: 5px 0;
	border: 1px solid #bbb;
}
.uneisha td {
	width: 75%;
	background-color: #fff;
	text-align: left;
	font-size: 14px;
	padding: 5px;
	border: 1px solid #bbb;
}

/*------------------------------------------------------------------------
プライバシーポリシー
------------------------------------------------------------------------*/
.t_space03 {
	color: #444;
	line-height: 1.9;
	font-size: 15px;
	padding: 10px;
	max-width: 900px;
	margin: 0 auto;
}

/* h2見出し */
h2.blue {
	color: #fff;
	background-color: #ffa25b;
	padding: 15px 25px;
	border-radius: 25px;
	font-size: 22px;
	text-align: center;
	margin-bottom: 35px;
	box-shadow: 0 3px 6px rgba(0,0,0,0.1);
	letter-spacing: 0.05em;
}

/* h3見出し */
.t_space03 h3 {
	font-size: 19px;
	color: #ffa25b;
	border-bottom: 2px dashed #ffd1ae;
	padding-bottom: 5px;
	padding-left: 10px;
	border-left: 5px solid #ffd1ae;
	margin-top: 45px;
	margin-bottom: 20px;
}

.t_space03 p { margin-bottom: 1.5em; }

/* リスト */
.t_space03 ul {
	list-style: none;
	padding: 0;
	margin: 20px 0;
}
.t_space03 ul li {
	position: relative;
	padding-left: 30px;
	margin-bottom: 12px;
	color: #555;
}
.t_space03 ul li::before {
	content: '✔';
	position: absolute;
	left: 0;
	top: 0;
	color: #ffa25b;
	font-weight: bold;
}

/* 補足ボックス */
.top_box01 {
	background-color: #ffd1ae;
	padding: 20px;
	border-radius: 8px;
	margin: 25px 0;
	color: #444;
	font-size: 0.95em;
}
.top_box01 p { margin: 0; }

/*------------------------------------------------------------------------
ヘッダー・フッター
------------------------------------------------------------------------*/
header {
	height: 38px;
	width: 100%;
	position: relative;
	background: #fff;
	z-index: 100;
}

/* ナビゲーション */
#top_nav {
	background-color: #fff;
	border-top: 1px solid #e8e8e8;
	border-bottom: 2px solid #6c6464;
	box-sizing: border-box;
	margin: 0 auto;
}
#top_nav ul {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0;
	margin: 0;
	list-style: none;
	width: 100%;
}
#top_nav li {
	flex: 1;
	text-align: center;
	border-right: 1px solid #d1d1d1;
	box-shadow: 1px 0px 0px #fff;
	text-shadow: 1px 1px 1px #fff;
	font-size: 10px;
	height: 35px;
	display: flex;
	align-items: center;
	box-sizing: border-box;
}
#top_nav li:first-child { flex: 2; border-left: 1px solid #d1d1d1; }
#top_nav li:last-child { border-right: none; flex: 0 0 47px; }

#head_area { position: relative; }
.logo img { max-width: 100%; }

.top_pr {
	margin: auto 0;
	padding: 0 10px;
	font-size: 12px;
	color: #676767;
}
.top_pr p { font-size: 13px; }

/* フッター */
#footer {
	clear: both;
	padding: 30px 0 0 0;
	box-shadow: 2px 0 3px #e1e1e1;
	background: #ff9a4b73;
	font-size: 14px;
}
.footer_contents {
	width: 980px;
	margin: 0 auto;
	padding: 0 0 30px 40px;
	overflow: hidden;
}
.footer_contents a {
	color: #333;
	text-decoration: none;
}
.footer_contents .sitename {
	font-size: 110%;
	font-weight: bold;
	padding: 0 0 5px 0;
}
.footer_contents .mokuji_waku {
	float: left;
	margin: 0 20px 0 5px;
	padding: 0 20px;
}
.footer_contents .groupname {
	margin: 0;
	padding: 0;
	border-bottom: 1px dotted #333;
	font-size: 95%;
	font-weight: bold;
}
.footer_contents li {
	margin: 5px 0 0 0;
	padding: 0 10px 0 0;
	font-size: 80%;
	list-style: none;
}
.copylights {
	display: block;
	padding: 10px 0;
	text-align: center;
	font-size: 90%;
	background: #fff;
}
address {
	margin: 0 0 20px 0;
	text-align: center;
	font-size: 85%;
	background: #e3e1e1;
}
address a { color: #039; }

@media screen and (max-width: 767px) {
	.footer_contents { width: 540px; }
	.footer_contents .sitename { font-size: 16px; }
	.footer_contents li { font-size: 12px; }
}
@media screen and (max-width: 479px) {
	.footer_contents { width: 100%; }
	.footer_contents .sitename { font-size: 14px; }
	.footer_contents li { font-size: 10px; }
}
a:hover { opacity: 0.8; }

/* 矢印 */
.arrow {
	width: 0;
	margin: 5px auto 20px;
	border-style: solid;
	border-width: 20px 160px 0 160px;
	border-color: #e56a0b99 transparent transparent transparent;
}

/*------------------------------------------------------------------------
比較表
------------------------------------------------------------------------*/
.hikaku_wrapper {
	border-radius: 12px;
	overflow: hidden;
	border: 2px solid #FDEEE0;
	box-sizing: border-box;
}
.hikaku_table {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
	background-color: #fff;
	color: #333;
}
th.col_head { background-color: #fff; }

/* 比較表用のランキングバッジ（1位〜3位） */
.rank_badge01, .rank_badge02, .rank_badge03 {
	transform: translateX(-50%);
	color: #fff;
	font-size: 12px;
	padding: 2px 8px;
	border-radius: 0 0 4px 4px; /* 下側だけ丸く */
	font-weight: bold;
}

/* 色指定 */
.rank_badge01 { background: #e6b422; } /* 金 */
.rank_badge02 { background: #c0c0c0; } /* 銀 */
.rank_badge03 { background: #ac6b25; } /* 銅 */

th.hikaku_item {
	background-color: #fff5e5;
	width: 35px;
	padding: 5px 10px;
	font-size: 13px;
}
.col_head .name {
	font-size: 13px;
	line-height: 1.3;
	color: #333;
}

/* 比較表 装飾 */
.star { width: 100px; padding-bottom: 5px; }

.tag_orange, .tag_gray {
	display: inline-block;
	font-size: 11px;
	padding: 2px 5px;
	border-radius: 3px;
}
.tag_orange { background: #E67E22; color: #fff; }
.tag_gray { background: #eee; color: #555; }

.btn_row td { border-bottom: none; }
.btn {
	display: block;
	text-decoration: none;
	font-size: 16px;
	font-weight: bold;
	padding: 5px;
	border-radius: 6px;
	box-shadow: 0 3px 0 #bbb;
	transition: opacity 0.2s;
	width: 80%;
	margin: 5px auto;
	text-shadow: 0 1px 1px rgba(0, 0, 0, .3);
}
.btn_primary {
	background: linear-gradient(to bottom, #ed2f2f, #ed2f2f);
	color: #fff;
}
p.hikaku_name {
	font-size: 13px;
	text-decoration: underline;
	font-weight: normal;
}
img.hikaku_banner_frame {
	margin-top: 7px;
	border: 1px solid #cdcdcd;
}
.hikaku_table img { margin-bottom: 3px; }

@media screen and (min-width: 768px) {
	.hikaku_table td { padding: 12px 5px; font-size: 15px; }
	th.hikaku_item { width: 120px; font-size: 14px; }
	.tag_orange, .tag_gray { font-size: 13px; }
	.btn:hover {
		transform: translateY(-2px);
		box-shadow: 0 4px 5px rgba(0,0,0,0.2);
		opacity: 1;
	}
	p.hikaku_name { font-size: 14px; }
	img.hikaku_banner_frame { width: 80%; }
}

/*------------------------------------------------------------------------
ランキングボックス（共通設定）
------------------------------------------------------------------------*/
.rank_card {
	margin: 15px auto 30px;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.05);
	overflow: hidden;
	box-sizing: border-box;
}

/* ヘッダー共通 */
.detail_header01, .detail_header02, .detail_header03,
.detail_header04, .detail_header05, .detail_header06,
.detail_header07, .detail_header08 {
	padding: 10px 90px 5px 15px;
	border-bottom: 1px solid #eee;
	align-items: center;
	flex-wrap: wrap;
}
/* ヘッダー背景色 */
.detail_header01 { background: #fff5e5; }
.detail_header02 { background: #c0dcff5c; }
.detail_header03 { background: #cd7f327a; gap: 10px; }
.detail_header04, .detail_header05, .detail_header06,
.detail_header07, .detail_header08 { background: #ff9a4b45; }

.line_narabe {
	display: flex;
	gap: 10px;
	margin-bottom: 5px;
}

/* バッジ共通 */
.badge_rank01, .badge_rank02, .badge_rank03,
.badge_rank04, .badge_rank05, .badge_rank06,
.badge_rank07, .badge_rank08 {
	color: white;
	font-size: 16px;
	font-weight: bold;
	padding: 3px 8px;
	border-radius: 4px;
}
/* バッジ色 */
.badge_rank01 { background: #e6b422; }
.badge_rank02 { background: #c0c0c0; }
.badge_rank03 { background: #ac6b25; }
.badge_rank04, .badge_rank05, .badge_rank06,
.badge_rank07, .badge_rank08 { background: #ff9a4b; }

/* タイトル共通 */
.rank_title01, .rank_title02, .rank_title03,
.rank_title04, .rank_title05, .rank_title06,
.rank_title07, .rank_title08 {
	margin: 0;
	font-size: 18px;
	color: #333;
	font-weight: bold;
}
/* タイトル下線 */
.rank_title01 { border-bottom: 2px solid #e6b422; }
.rank_title02 { border-bottom: 2px solid #c0c0c0; }
.rank_title03 { border-bottom: 2px solid #ac6b25; }
.rank_title04, .rank_title05, .rank_title06,
.rank_title07, .rank_title08 { border-bottom: 2px solid #ff9a4b; }

.rank_catch {
	font-size: 13px;
	color: #666;
	font-weight: bold;
}

.rank_body { padding: 10px 10px 20px; }
.rank_main {
	display: flex;
	gap: 15px;
	margin-bottom: 13px;
	flex-direction: column;
}
.rank_img { flex-shrink: 0; }
.rank_img img {
	width: 100%;
	height: auto;
	border-radius: 6px;
	border: 1px solid #eee;
}

.point_lead {
	font-size: 16px;
	line-height: 1.5;
	margin: 0 0 10px;
	font-weight: bold;
	color: #333;
}
.point_list { margin: 0; padding: 0; list-style: none; }
.point_list li {
	font-size: 15px;
	line-height: 1.5;
	margin-bottom: 4px;
	position: relative;
}

img.check_mark { width: 17px; margin-left: 5px; margin-right: 5px; }
img.icon_mark { width: 25px; margin-right: 7px; margin-bottom: 2px; }

/* スペック表 */
.detail_spec {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 20px;
	font-size: 13px;
}
.detail_spec th, .detail_spec td {
	border: 1px solid #cdcdcd;
	padding: 5px;
}
.detail_spec th {
	background: #ededed;
	font-weight: bold;
	width: 38%;
	font-size: 13px;
}
.detail_spec td { color: #333; height: 70px; }

/* ランキングCTA */
.rank_cta { text-align: center; }

.btn_primary2 {
	display: inline-block;
	background-color: #ed2f2f;
	color: white;
	text-decoration: none;
	font-size: 16px;
	font-weight: bold;
	padding: 15px 10px;
	border-radius: 6px;
	box-shadow: 0 3px 0 #bbb;
	text-shadow: 0 1px 1px rgba(0, 0, 0, .3);
	transition: opacity 0.2s;
	width: 85%;
}
.btn_primary2:hover { opacity: 0.9; }

@media screen and (min-width: 768px) {
	.rank_body { padding: 10px 15px 20px; }
	.rank_img { width: 70%; margin: 0 auto; }
	.rank_points {
		width: 100%;
		margin: 5px 0;
		background-color: #fff1dc;
		padding: 10px;
		border: 1px solid #e1e1e1;
		border-radius: 10px;
	}
	.point_lead { text-align: center; }
	.point_list li { font-size: 16px; }
	.detail_spec th { font-size: 14px; }
	.detail_spec td { font-size: 15px; }
	.rank_cta { margin-top: 30px; }
	.btn_primary2 { padding: 15px 60px; width: 72%; }
	.btn_primary2:hover {
		transform: scale(1.05);
		opacity: 1;
		box-shadow: 0 5px 15px rgba(211, 84, 0, 0.4);
	}
}

/*------------------------------------------------------------------------
求人スライドカード
------------------------------------------------------------------------*/
.job_pickup_area {
	background: #fff8f5;
	border: 1px dashed #e67e22;
	border-radius: 8px;
	padding: 20px 15px;
	margin: 20px 0;
	overflow: hidden;
}
.pickup_label {
	font-size: 15px;
	font-weight: bold;
	color: #d35400;
	margin-bottom: 10px;
	text-align: center;
}
.swiper-job-pickup { padding-bottom: 30px; }
.job_slide_card {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 10px rgba(0,0,0,0.08);
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
}
.job_slide_img_box {
	position: relative;
	width: 100%;
	height: 180px;
	background-color: #ddd;
	overflow: hidden;
}
.job_slide_img { width: 100%; height: 100%; object-fit: cover; }
.job_slide_img_box::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 60%;
	background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 100%);
	z-index: 1;
}
.job_slide_img_text {
	position: absolute;
	bottom: 15px;
	left: 15px;
	right: 15px;
	color: #fff;
	z-index: 2;
	text-shadow: 0 1px 3px rgba(0,0,0,0.5);
}
.facility_name {
	font-size: 16px;
	font-weight: bold;
	margin: 0;
	line-height: 1.3;
}
.job_slide_content {
	padding: 15px;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}
.job_slide_tags_top { margin-bottom: 8px; }
.tag_new, .tag_emp_type {
	display: inline-block;
	font-size: 11px;
	padding: 2px 6px;
	border-radius: 4px;
	font-weight: bold;
}
.tag_new { background: #fff0f0; color: #e73c3c; margin-right: 5px; }
.tag_emp_type { background: #e6f7ff; color: #0085e6; }

.job_slide_title {
	font-size: 18px;
	font-weight: bold;
	color: #333;
	margin: 0 0 10px;
	line-height: 1.4;
}
.job_slide_salary {
	font-size: 14px;
	color: #333;
	margin-bottom: 4px;
	font-weight: bold;
}
.salary_val { font-size: 22px; color: #00a497; margin: 0 2px; }
.job_slide_bonus { font-size: 13px; color: #666; margin: 0 0 15px; }
.job_slide_tags_bottom {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 4px;
}
.job_slide_tags_bottom span {
	background: #eef8f9;
	color: #00887d;
	font-size: 11px;
	padding: 4px 8px;
	border-radius: 10px;
}
.swiper-slide { height: auto; width: 280px; }
.swiper-pagination-bullet-active { background: #d35400 !important; }

@media screen and (min-width: 768px) {
	.pickup_label { font-size: 16px; }
}

/* CTAリンク */
.cta-text-link-wrapper {
	width: 100%;
	text-align: center;
	margin-top: 24px;
	margin-bottom: 30px;
}
.cta-text-link {
	display: inline-block;
	position: relative;
	width: 80%;
	max-width: 300px;
	padding: 14px 0;
	background-color: #fff;
	border: 1px solid #E63946;
	border-radius: 4px;
	font-size: 15px;
	font-weight: bold;
	color: #E63946;
	text-decoration: none;
	line-height: 1.5;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
	transition: all 0.3s;
}
.cta-text-link::after {
	content: '';
	display: inline-block;
	width: 10px;
	height: 10px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: rotate(45deg);
	margin-left: 5px;
	vertical-align: 1px;
}
.cta-text-link:hover, .cta-text-link:active {
	background-color: #FFF5F5;
	opacity: 1;
}

/*------------------------------------------------------------------------
検索フォーム
------------------------------------------------------------------------*/
ul, li, dl, dt, dd { margin: 0; padding: 0; list-style: none; }

.search_wrap { margin: 5px; box-sizing: border-box; }
.search_header {
	background: #ff9a4b;
	color: #fff;
	text-align: center;
	font-weight: bold;
	padding: 12px;
	border-radius: 10px 10px 0 0;
	font-size: 16px;
	letter-spacing: 0.05em;
	position: relative;
	top: 2px;
	z-index: 1;
}
.search_panel {
	background: #fff;
	border: 2px solid #ff9a4b;
	border-radius: 0 0 10px 10px;
	box-shadow: 0 5px 15px rgba(0,0,0,0.05);
	padding: 0 20px 30px;
}
.search_row {
	padding: 10px 0;
	border-bottom: 1px dashed #ffdcd5;
}
.search_row:last-child { border-bottom: none; }
.row_title {
	font-size: 14px;
	color: #555;
	font-weight: bold;
	margin-bottom: 12px;
	align-items: center;
	text-align: left;
}
.grid_btns {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(2, 1fr);
}
.grid_btns.col-3 { grid-template-columns: repeat(3, 1fr); }
.grid_btns label {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 42px;
	background: #fdfdfd;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	font-size: 13px;
	color: #666;
	cursor: pointer;
	transition: all 0.2s ease;
	text-align: center;
	user-select: none;
}
.grid_btns input:checked + label {
	background: #ffefed;
	border-color: #ff9bdb;
	color: #f28273;
	font-weight: bold;
	box-shadow: 0 2px 5px rgba(255, 154, 141, 0.3);
}
.grid_btns input { display: none; }
.button_area {
	margin-top: -25px;
	text-align: center;
	position: relative;
	z-index: 2;
	margin-bottom: 50px;
}
.submit_btn {
	background: linear-gradient(to bottom, #ff9a4b, #ff9a4b);
	color: #fff;
	font-size: 18px;
	font-weight: bold;
	border: 4px solid #fff;
	border-radius: 50px;
	padding: 12px 60px;
	cursor: pointer;
	box-shadow: 0 4px 10px rgba(255, 126, 112, 0.4);
	transition: transform 0.2s;
	outline: none;
}
.submit_btn:active { transform: scale(0.96); }

@media screen and (min-width: 768px) {
	.search_panel { padding: 25px 30px; }
	.search_row {
		display: flex;
		align-items: flex-start;
		border-bottom: 1px solid #f0f0f0;
		padding: 15px 0;
	}
	.row_title {
		width: 130px;
		flex-shrink: 0;
		font-size: 15px;
		padding-top: 10px;
		border-right: 2px solid #ff9a4b;
		margin-right: 15px;
		display: block;
	}
	.row_body { flex-grow: 1; }
	.grid_btns { grid-template-columns: repeat(3, 1fr); }
	.grid_btns.col-3 { grid-template-columns: repeat(4, 1fr); }
	.grid_btns label { height: 44px; font-size: 13px; }
	.grid_btns label:hover { background-color: #fff9f0; border-color: #ff9a4b; }
	.submit_btn { width: 60%; padding: 12px; }
	.submit_btn:hover { background: #ff8c33; transform: translateY(-2px); }
}

@media screen and (max-width: 480px) {
	.grid_btns.col-3 { grid-template-columns: repeat(2, 1fr); }
	.condition_list { display: block; }
	.condition_list dt {
		border-bottom: none;
		padding-bottom: 0;
		color: #ff9a8d;
	}
	.condition_list dd {
		padding-top: 2px;
		padding-left: 1.2em;
		margin-bottom: 5px;
	}
}

/* アコーディオン */
.area_accordion { width: 100%; margin-top: 10px; }
.area_group {
	margin-bottom: 10px;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	background: #fff;
	overflow: hidden;
}
.area_trigger {
	background: #fdfdfd;
	padding: 12px 15px;
	color: #666;
	cursor: pointer;
	position: relative;
	transition: background 0.2s;
	user-select: none;
	font-size: 13px;
}
.area_trigger:hover { background: #ffeae6; }
.area_trigger.active { background: #ff9a4b; color: #fff; }
.area_trigger::after {
	content: '+';
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 18px;
	font-weight: normal;
}
.area_trigger.active::after { content: '−'; }
.pref_list {
	display: none;
	padding: 15px;
	background: #fff;
	border-top: 1px solid #eee;
}
.pref_list .grid_btns { margin-bottom: 0; }

/*------------------------------------------------------------------------
検索結果表示
------------------------------------------------------------------------*/
.search_headder01 { text-align: center; margin: 10px 0; }
h2.woman {
	display: inline-block;
	font-size: 20px;
	color: #555;
	font-weight: bold;
	border-bottom: 3px solid #f08a62;
	padding-bottom: 3px;
}
h2.woman::before { content: '🔍'; margin-right: 8px; }

.condition_box {
	background: #fff;
	border: 2px dashed #ffdec9;
	border-radius: 12px;
	padding: 5px 10px;
	margin: 0 5px 10px;
	max-width: 600px;
	box-sizing: border-box;
	box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}
.box_title {
	color: #ff9a8d;
	font-weight: bold;
	font-size: 16px;
	text-align: center;
	margin-bottom: 2px;
	border-bottom: 1px solid #ffdec9;
	padding-bottom: 4px;
	display: block;
}
.condition_list {
	display: grid;
	grid-template-columns: 110px 1fr;
	width: 100%;
	font-size: 15px;
	line-height: 1.5;
}
.condition_list dt {
	color: #888;
	font-weight: bold;
	padding: 3px 0;
	border-bottom: 1px solid #f9f9f9;
	display: flex;
	align-items: flex-start;
}
.condition_list dt::before {
	content: '●';
	color: #ff9a8d;
	font-size: 10px;
	margin-right: 6px;
	margin-top: 2px;
}
.condition_list dd {
	padding: 0 0 2px 10px;
	color: #333;
	border-bottom: 1px solid #f9f9f9;
}
.condition_list dt:last-of-type,
.condition_list dd:last-of-type { border-bottom: none; }

.btn_area_right {
	max-width: 600px;
	margin: 0 auto 40px;
	text-align: right;
}
.btn_change {
	display: inline-block;
	font-size: 12px;
	color: #777;
	background: #f0f0f0;
	padding: 8px 18px;
	border-radius: 100px;
	text-decoration: none;
	transition: 0.3s;
}
.btn_change:hover { background: #ff9a8d; color: #fff; }

/* 豆知識エリア */
.kw-box-v3 {
	background-color: #fffbf5;
	border: 2px solid #f6e3cf;
	border-radius: 12px;
	padding: 40px 15px 20px;
	margin: 40px auto 30px;
	position: relative;
	box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}
.kw-title-v3 {
	position: absolute;
	top: -18px;
	left: 50%;
	transform: translateX(-50%);
	background: #ea5514;
	color: #fff;
	padding: 8px 25px;
	border-radius: 20px;
	font-weight: bold;
	font-size: 1.1rem;
	box-shadow: 0 3px 6px rgba(234, 85, 20, 0.3);
	white-space: nowrap;
	display: flex;
	align-items: center;
	gap: 8px;
}
.kw-chat-area-v3 {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.kw-row-v3 {
	display: flex;
	align-items: flex-start;
	gap: 15px;
}
.kw-left-v3 { flex-direction: row; }
.kw-right-v3 { flex-direction: row-reverse; }
.kw-face-v3 {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 50px;
	flex-shrink: 0;
	font-size: 32px;
	line-height: 1;
}
.kw-bubble-v3 {
	position: relative;
	padding: 10px 15px;
	border-radius: 10px;
	line-height: 1.6;
	max-width: 85%;
	box-shadow: 0 2px 4px rgba(0,0,0,0.08);
}
.kw-left-v3 .kw-bubble-v3 {
	background-color: #fff;
	border: 1px solid #eee;
	color: #333;
}
.kw-left-v3 .kw-bubble-v3::after,
.kw-left-v3 .kw-bubble-v3::before {
	content: ""; position: absolute; top: 15px;
	border-style: solid;
}
.kw-left-v3 .kw-bubble-v3::after {
	left: -10px; border-width: 8px 10px 8px 0; border-color: transparent #fff transparent transparent;
}
.kw-left-v3 .kw-bubble-v3::before {
	left: -11px; border-width: 8px 10px 8px 0; border-color: transparent #eee transparent transparent;
}
.kw-right-v3 .kw-bubble-v3 {
	background-color: #ffe8d1;
	color: #333;
}
.kw-right-v3 .kw-bubble-v3::after {
	content: ""; position: absolute; right: -10px; top: 15px;
	border-style: solid; border-width: 8px 0 8px 10px;
	border-color: transparent transparent transparent #ffe8d1;
}
.kw-text-v3 { margin: 0; font-size: 16px; }
.marker { background: linear-gradient(transparent 70%, #ffc091 70%); font-weight: bold; }
img.inline-arrow-icon { width: 16px; }

/* ランキングタイトルエリア */
.ranking-header-area {
	text-align: center;
	margin-top: 50px;
	margin-bottom: 0;
}
.ranking-main-title {
	background: linear-gradient(to right, #ea5514, #ff8c00);
	color: #fff;
	padding: 15px 10px;
	margin: 0 auto;
	font-size: 18px;
	font-weight: bold;
	border-radius: 8px;
	max-width: 800px;
	box-shadow: 0 4px 6px rgba(0,0,0,0.2);
	position: relative;
	line-height: 1.3;
}

/*------------------------------------------------------------------------
コラム
------------------------------------------------------------------------*/
@media screen and (max-width: 767px) {
	.thtd_sp_hidden {
		display: none;
	}
}

.column-area {
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
	color: #333;
	line-height: 1.6;
	font-size: 16px;
	background: #fff;
	padding: 20px 0;
}
.col-main-title {
	font-size: 24px;
	color: #ff7f50;
	text-align: center;
	border-bottom: 3px solid #ff7f50;
	padding-bottom: 15px;
	margin-bottom: 30px;
	font-weight: bold;
}
.col-main-title span {
	font-size: 0.8em;
	color: #555;
	display: block;
	margin-top: 5px;
}
.column-area p { margin-bottom: 1.5em; }
.col-h2 {
	font-size: 20px;
	background: #eef6f6;
	padding: 12px 15px;
	border-left: 6px solid #20b2aa;
	margin: 40px 0 20px;
	border-radius: 0 4px 4px 0;
	font-weight: bold;
}

/* メリット・デメリット */
.merit-demerit-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 20px;
}
.md-box {
	flex: 1;
	min-width: 280px;
	border-radius: 8px;
	padding: 20px;
	position: relative;
}
.md-label {
	display: block;
	text-align: center;
	font-weight: bold;
	margin-bottom: 10px;
	border-radius: 20px;
	color: #fff;
	padding: 3px 0;
	font-size: 14px;
}
.merit-box { background-color: #f0fff4; border: 1px solid #c6f6d5; }
.merit-box .md-label { background-color: #2f855a; }
.merit-box ul li {
	list-style-type: none;
	position: relative;
	padding-left: 1.2em;
	margin-bottom: 5px;
}
.merit-box ul li::before { content: "●"; color: #2f855a; position: absolute; left: 0; }

.demerit-box { background-color: #fff5f5; border: 1px solid #fed7d7; }
.demerit-box .md-label { background-color: #c53030; }
.demerit-box ul li {
	list-style-type: none;
	position: relative;
	padding-left: 1.2em;
	margin-bottom: 5px;
}
.demerit-box ul li::before { content: "▲"; color: #c53030; position: absolute; left: 0; }

.recommend-text {
	background: #fff;
	border: 2px dashed #ddd;
	padding: 15px;
	border-radius: 8px;
	font-size: 0.95em;
}

/* 比較テーブル（コラム） */
.col-table-scroll { overflow-x: auto; margin-bottom: 30px; }
.col-compare-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 500px;
}
.col-compare-table th, .col-compare-table td {
	border: 1px solid #ddd;
	padding: 12px 10px;
	text-align: center;
	vertical-align: middle;
}
.col-compare-table thead th { background-color: #f5f5f5; color: #333; }
.col-compare-table thead th.th-accent {
	background-color: #ff7f50;
	color: #fff;
	border-color: #ff7f50;
}
.col-compare-table tbody th {
	background-color: #f9f9f9;
	text-align: left;
	font-weight: normal;
	font-size: 0.9em;
}
.cell-highlight {
	background-color: #fff0f5;
	font-weight: bold;
	color: #d64646;
}
.col-summary {
	background-color: #fff8e1;
	border: 2px solid #ffecb3;
	padding: 25px;
	border-radius: 10px;
	margin-top: 40px;
	text-align: center;
}
.col-summary h3 {
	font-size: 1.2em;
	color: #d97706;
	margin-bottom: 15px;
	border-bottom: 1px dashed #d97706;
	display: inline-block;
	padding-bottom: 5px;
}

@media screen and (max-width: 600px) {
	.col-main-title { font-size: 20px; }
	.col-h2 { font-size: 18px; }
	.merit-demerit-wrap { flex-direction: column; gap: 15px; }
	.md-box { min-width: auto; }
}

/* 理由ブロック */
.reason-block {
	background: #fff;
	border: 2px solid #f0f0f0;
	border-radius: 8px;
	margin-bottom: 30px;
	overflow: hidden;
}
.reason-head {
	background-color: #fdfaf6;
	padding: 15px 20px;
	border-bottom: 2px solid #f0f0f0;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}
.reason-num {
	background-color: #ff7f50;
	color: #fff;
	font-family: 'Arial', sans-serif;
	font-weight: bold;
	padding: 2px 10px;
	border-radius: 20px;
	font-size: 0.85em;
	white-space: nowrap;
}
.reason-head h3 {
	margin: 0;
	font-size: 1.1em;
	color: #333;
	font-weight: bold;
	border: none;
}
.reason-body { padding: 20px; }
.reason-body p:last-child { margin-bottom: 0; }

.best-num-box {
	text-align: center;
	margin: 30px 0;
	padding: 20px;
	background: #eef6f6;
	border-radius: 10px;
}
.best-answer {
	font-size: 1.2em;
	font-weight: bold;
	color: #20b2aa;
	margin-bottom: 10px !important;
}
.big-num {
	font-size: 2em;
	color: #ff7f50;
	font-weight: 900;
	vertical-align: middle;
	margin: 0 5px;
}

.advice-box {
	border: 2px dashed #ccc;
	padding: 25px;
	border-radius: 8px;
	background-color: #fff;
}
.advice-box::before {
	content: "";
	display: block;
	height: 1px;
	background: #ccc;
	position: relative;
	top: 12px;
}
.advice-title {
	text-align: center;
	margin-top: 0;
	margin-bottom: 20px;
	font-size: 1.1em;
	color: #555;
	position: relative;
	display: inline-block;
	left: 50%;
	transform: translateX(-50%);
	background: #fff;
	padding: 0 15px;
}
.advice-list { list-style: none; padding: 0; margin: 0 0 20px 0; }
.advice-list li {
	margin-bottom: 15px;
	padding-left: 1.5em;
	position: relative;
	font-size: 1.05em;
}
.advice-list li::before {
	content: "✔";
	color: #20b2aa;
	position: absolute;
	left: 0;
	font-weight: bold;
}
.advice-list li span {
	display: block;
	font-size: 0.85em;
	color: #777;
	margin-top: 3px;
	font-weight: normal;
}
.advice-comment {
	font-size: 0.95em;
	background: #f9f9f9;
	padding: 15px;
	border-radius: 5px;
	margin-bottom: 0;
}

@media screen and (max-width: 600px) {
	.reason-head { flex-direction: column; align-items: flex-start; }
	.big-num { font-size: 1.6em; }
}

/*------------------------------------------------------------------------
ラストプッシュエリア
------------------------------------------------------------------------*/
.final_repush_area {
	margin: 0 0 55px;
	padding: 0 5px;
	text-align: center;
}
.final_repush_label {
	display: inline-block;
	color: #f39800;
	font-weight: bold;
	font-size: 18px;
	margin-bottom: 10px;
	position: relative;
}
.final_repush_label::before,
.final_repush_label::after {
	content: "";
	display: inline-block;
	width: 65px;
	height: 2px;
	background: #f39800;
	vertical-align: middle;
	margin: 0 10px;
}
.final_repush_title {
	font-size: 24px;
	color: #333;
	margin-bottom: 10px;
	font-weight: bold;
}
.final_repush_banner { margin-bottom: 25px; }
.final_repush_content { text-align: left; }
.final_repush_list li {
	display: flex;
	align-items: flex-start;
	padding: 15px 0;
	border-bottom: 1px dotted #ccc;
}
.final_repush_list li:last-child { border-bottom: none; }
.final_repush_list li .check_mark {
	width: 20px;
	margin-right: 12px;
	margin-top: 4px;
}
.final_repush_list li strong {
	display: block;
	color: #333;
	font-size: 16px;
	margin-bottom: 5px;
}
.final_repush_list li p {
	font-size: 14px;
	color: #666;
	margin: 0;
	line-height: 1.5;
}
.final_repush_area .rank_cta { margin-top: 5px; }

@media screen and (max-width: 767px) {
	.final_repush_title { font-size: 20px; }
}

/*------------------------------------------------------------------------
その他
------------------------------------------------------------------------*/
h2.area_title {
	margin: 15px auto 10px;
	color: #333;
	background: #efa66d21;
	box-shadow: 0 0 0 3px #efa66d;
	width: 97%;
	padding: 8px 0;
	font-size: 17px;
	text-align: center;
	border-radius: 6px;
}

.annotation01 {
	border: 1px solid #e1e1e1;
	border-radius: 4px;
	margin: 5px;
	padding: 5px;
	background: #f1f1f1;
}
.annotation01 p { font-size: 10px; color: gray; }

/* 施設形態タグ */
.facility_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 5px;
	padding: 5px 0;
}
.f_tag {
	display: inline-block;
	font-size: 11px;
	padding: 3px 8px;
	border-radius: 4px;
	font-weight: bold;
	line-height: 1.4;
	white-space: nowrap;
}
.f_tag.main {
	background-color: #e6b422;
	border: 1px solid #e6b422;
	color: #fff;
}
.f_tag:not(.main) {
	background-color: #fff;
	border: 1px solid #e6b422;
	color: #d4a017;
}

@media screen and (max-width: 480px) {
	.f_tag { font-size: 10px; padding: 2px 6px; }
}