@charset "utf-8";
/* CSS Document */

@import url('https://fonts.googleapis.com/css2?family=Crimson+Text:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&family=Noto+Sans+JP:wght@100..900&display=swap');

html {
	font-size: 62.5%;
	scroll-behavior: smooth;
}

body {
	inline-size: 100%;
	-webkit-text-size-adjust: 100%;
	margin: 0;
	color: #000;
	font-size: 12px;
	font-optical-sizing: auto;
	font-family: "Noto Sans JP", sans-serif;
	font-style: normal;
	font-weight: 500;
	line-height: 1.5;
	background: #fff;
}

h1,
h2,
h3,
h4 {
	text-wrap: wrap;
	word-break: auto-phrase;
	line-height: 1.5;
}

img {
	display: inline-block;
	max-width: 100%;
	vertical-align: top;
}

* {
	box-sizing: border-box;
}

a:not([class]) {
	color: #2231FF;
}

.crimson-text {
	font-family: "Crimson Text", serif;
}

.pc {
	display: block !important;
}

.sp {
	display: none !important;
}

.dsp_li {
	display: inline-block !important;
}

@media screen and (max-width:600px) {
	.pc {
		display: none !important
	}

	.sp {
		display: block !important
	}
}


/* --------------------
文字色
--------------------*/
.fc_01 {
	color: #FF0000 !important;
}

.fc_02 {
	color: #FF6C00 !important;
}

/* --------------------
文字サイズ
--------------------*/
.fs_08 {
	font-size: 8px !important;
}

.fs_16 {
	font-size: 16px !important;
}

/* --------------------
余白
--------------------*/
.m_0 {
	margin: 0 !important;
}

.mb_1 {
	margin-bottom: 1em !important;
}

/* --------------------
配置
--------------------*/
.tac {
	text-align: center !important;
}

.tar {
	text-align: right !important;
}

/* --------------------
見出し
--------------------*/
.headline_01 {
	width: 500px;
	margin: 1em auto 0.2em;
	padding: 1em 1em 2em;
	font-size: min(20px, 3.3vw);
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	background: url("../imeges/headline_bg.png") no-repeat center top / 100% 100%;
}

.headline_01 .line {
	display: inline-block;
	padding: 0 0.1em;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 60%, rgba(255, 255, 0, 1) 60%, rgba(255, 255, 255, 1) 60%, rgba(255, 255, 255, 1) 100%);
}

@media screen and (max-width:600px) {
	.headline_01 {
		width: min(100% - 2em);
		margin: 1em 1em 0.2em;
	}
}

.headline_02,
.headline_03,
.headline_04 {
	max-width: 152px;
	margin: 0 auto 0.5em;
	padding: 0.5em;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	border: 1.6px solid #000;
	border-radius: 2em;
}

.headline_02 {
	background: #CF9E11;
}

.headline_03 {
	background: #689732;
}

.headline_04 {
	background: #0066FF;
}

@media screen and (max-width:600px) {

	.headline_02,
	.headline_03,
	.headline_04 {
		max-width: 80%;
		font-size: 3.5vw;
	}
}

.headline_05 {
	max-width: 200px;
	margin: 1em auto;
	padding: 0.8em 0.5em;
	font-size: 15.6px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	background: #FFCC00;
}

/* 公式サイトボタンの共通スタイル */
.btn_official {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 90%;
	/* 横幅をセルに合わせて調整 */
	max-width: 140px;
	/* ボタンの最大幅 */
	margin: 5px auto;
	/* 中央寄せ */
	padding: 8px 0;
	text-decoration: none;
	font-weight: bold;
	font-size: 14px;
	/* 黒い枠線 */
	border-radius: 50px;
	/* 角丸 */
	box-sizing: border-box;
	line-height: 1.2;
	transition: opacity 0.3s;
}

/* ホバー時の動き（少し薄くする） */
.btn_official:hover {
	opacity: 0.8;
}

/* 1位用の赤ボタン */
.btn_red {
	background-color: #ff6c00;
	/* 画像に近い赤色 */
	color: #fff;
	/* 白文字 */
}

/* 2位・3位用の黄色ボタン */
.btn_yellow {
	background-color: #ffc000;
	/* 画像に近い黄色 */
	color: #fff;
	/* 黒文字 */
}

.headline_06 {
	margin: 1em auto;
	padding: 0.5em;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
	background: #FFCC00;
}

.headline_06 .line {
	padding: 0 0.1em;
	color: #FF6C00;
	font-size: 32px;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 80%, rgba(255, 255, 0, 1) 80%, rgba(255, 255, 255, 1) 80%, rgba(255, 255, 255, 1) 100%);
}

@media screen and (max-width:600px) {
	.headline_06 {
		font-size: 5vw;
	}

	.headline_06 .line {
		font-size: 6.3vw;
	}
}

.headline_07 {
	max-width: 420px;
	margin: 1em auto;
	padding: 0.5em;
	font-size: 33.28px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	/* 背景色を削除（必要であれば background: transparent; と明記してもOK） */
}

.headline_07 .line {
	padding: 0 0.1em;
	/* 上から60%までは透明、そこから下を黄色(#FFCC00)にする設定 */
	background: linear-gradient(to bottom, transparent 60%, #FFCC00 60%);
}

@media screen and (max-width:600px) {
	.headline_07 {
		font-size: 7vw;
	}
}

.headline_08 {
	display: flex;
	align-items: center;
	margin: 1em auto 0;
	padding: 0.5em 0;
	font-size: 28.8px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
}

.headline_08 .ranking {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 102px;
	height: 72px;
	font-size: 28.8px;
	font-weight: 500;
	line-height: 1;
	text-align: center;
	font-family: "Crimson Text", serif;
	background: url("../imeges/pic_ranking.png") no-repeat center center / 100% 100%;
}

.headline_08 .ranking .number {
	font-size: 51.2px;
}

.headline_08 .ranking .txt {
	position: absolute;
	left: 1.5em;
	top: 0.8em;
	display: inline-block;
	font-size: 16px;
	line-height: 0;
}

.headline_08 .name {
	flex: 1;
	text-align: center;
}

.headline_09 {
	align-items: center;
	margin: 1em auto;
	padding: 0.5em;
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	background: #FFCC00;
}

.headline_10 {
	margin: 1em auto;
	padding: 0.5em 1em;
	font-size: 15.6px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	background: #FFCC00;
	border: 2px solid #000;
	border-radius: 2em;
}

.headline_10 span {
	display: inline-block;
}


/* --------------------
ボタン
--------------------*/
.btn {
	padding: 2em 0.5em 1em;
	text-align: center;
}

.btn_animation {
	display: flex;
	justify-content: center;
}

.btn_animation a {
	display: block;
	animation: btn_animation 1.2s infinite;
	margin: auto;
}

@keyframes btn_animation {
	0% {
		transform: scale(1, 0.9);
	}

	20% {
		transform: scale(0.9, 1.05);
	}

	95% {
		transform: scale(1, 1);
	}

	100% {
		transform: scale(1, 0.9);
	}
}

/* .btn_01 */
.btn_01 {
	position: relative;
	display: block;
	margin: 0 1em;
	padding: 0.5em;
	color: #fff;
	font-size: 28.8px;
	font-weight: 700;
	text-decoration: none;
	background: #B40019;
	border: 1.6px solid #000;
	border-radius: 2em;
}

.btn_01::before {
	content: "";
	position: absolute;
	z-index: -1;
	bottom: -5px;
	left: 0;
	right: 0;
	margin: auto;
	width: 100%;
	height: 81px;
	background: #fff;
	border: 1.6px solid #000;
	border-radius: 2em;
}

/* .btn_02 */
.btn_02 {
	position: relative;
	display: block;
	max-width: 330px;
	height: 51px;
	margin: 0 auto;
	padding: 0.5em;
	color: #fff;
	font-size: 19.63px;
	font-weight: 700;
	text-decoration: none;
	background: #E9AB25;
	border: 1.6px solid #000;
	border-radius: 2em;
	transition: all 0.3s;
}

.btn_02::before {
	content: "";
	position: absolute;
	z-index: -1;
	left: 0;
	right: 0;
	bottom: -5px;
	margin: auto;
	width: 330px;
	height: 51px;
	background: #fff;
	border: 1.6px solid #000;
	border-radius: 2em;
}

.btn_02:hover {
	color: #000;
	background: #fff;
}

/* .btn_03 */
.btn_03 {
	display: inline-block;
	width: 40%;
	margin: 0 0.5em;
	padding: 1em 0.5em;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	background: #A1A1A1;
	border: 1.6px solid #A1A1A1;
	border-radius: 2em;
	transition: all 0.3s;
}

.btn_03:hover {
	color: #000;
	background: #fff;
}

/* .btn_04 */
.btn_04 {
	display: inline-block;
	min-width: 40%;
	margin: 0 0.5em;
	padding: 1em 0.5em;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	background: #E9AB25;
	border: 1.6px solid #E9AB25;
	border-radius: 2em;
	transition: all 0.3s;
}

.btn_04:hover {
	color: #000;
	background: #fff;
}

/* .btn_back */
.btn_back {
	width: 200px;
	display: inline-block;
	min-width: 40%;
	margin: 0 0.5em;
	padding: 0.5em;
	color: #fff;
	font-size: 11.2px;
	font-weight: 700;
	text-decoration: none;
	background: #A1A1A1;
	border: 1.6px solid #000;
	border-radius: 2em;
	transition: all 0.3s;
}

.btn_back span {
	padding-left: 20px;
	background: url("../imeges/arrow_back.png") no-repeat left center;
}

.btn_back:hover {
	background: #D9D9D9;
}

/* --------------------
表組み
--------------------*/
/* .table_01 */
.table_01 {
	width: 100%;
	border-collapse: collapse;
}

.table_01 th,
.table_01 td {
	padding: 1.5em 0;
	vertical-align: top;
	border-bottom: 1px dotted #9E9E9E;
}

.table_01 th {
	padding-right: 1em;
	text-align: left;
	white-space: nowrap;
}

/* .table_02 */
.table_02 {
	width: 100%;
	border-collapse: collapse;
}

.table_02 th,
.table_02 td {
	padding: 0.5em;
	text-align: left;
	vertical-align: top;
	border: 1px dotted #9E9E9E;
}

.table_02 thead th {
	font-size: 12.8px;
	text-align: center;
	vertical-align: middle;
	background: #FFF9D5;
}

.table_02 tbody th {
	font-size: 12px;
	font-weight: 500;
	background: #FFF9D5;
}

.table_02 tbody td {
	font-size: 12px;
}

/* --------------------
リスト
--------------------*/
.list_mark {
	margin: 0;
	padding: 0;
	list-style: none;
}

.list_mark li {
	padding-left: 1.2em;
	background: url("../imeges/mark_02.png") no-repeat left top 0.25em / 1em 1em;
}

.list_note {
	margin: 1em 0;
	padding: 0;
	list-style: none;
	font-size: 12px;
}

.list_note li {
	margin-left: 2em;
	text-indent: -2em;
}

/* --------------------
レイアウト
--------------------*/
.container {
	width: 100%;
	max-width: 600px;
	margin: 0 auto;
}


/* --------------------
headedr
--------------------*/
header {
	position: relative;
}

/* .fv */
header.fv {
	background: #D0E8F0;
}

header.fv .text {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
	width: 100%;
}

header.fv .text .inner {
	display: flex;
	justify-content: space-between;
}

header.fv .text .inner .year {
	display: inline-block;
	margin: 1em 0 1em 1em;
	padding: 1em;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	background: #fff;
}

header.fv .text .inner .pr {
	display: inline-block;
	margin: 0;
	padding: 1em 1em 0 0;
	font-size: 12px;
	line-height: 1;
}

header.fv .text .title {
	padding: 1em 0.5em;
	text-align: center;
	background: rgba(255, 255, 255, 0.8);
	border-top: 1px solid #000;
	border-bottom: 1px solid #000;
}

header.fv .text .title h1 {
	margin: 0;
	font-size: 32px;
	font-weight: 900;
	line-height: 1.1;
}

header.fv .text .title h1 .line {
	display: inline-block;
	padding: 0 0.1em 0.15em;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 60%, rgba(255, 255, 0, 1) 60%, rgba(255, 255, 0, 1) 60%, rgba(255, 255, 0, 1) 100%);
}

header.fv .text .title h1 .subtitle {
	padding: 0;
	font-size: 22px;
	font-weight: 900;
	line-height: 1.2;
}

header.fv .text .title h1 .subtitle span {
	display: inline-block;
	line-height: 1.2;
}

header.fv .text .title p {
	padding: 0 3em;
	font-size: 12.4px;
	line-height: 1.2;
}

header.fv .text .title p span {
	display: inline-block;
}

header.fv .text .panel {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 1.5em min(48px, 8vw) 0.5em;
	padding: 0;
	list-style: none;
}

header.fv .text .panel li {
	position: relative;
	width: 32%;
	margin: 0;
	padding: 12px 9px;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	background: #B40019;
	border: 1.6px solid #000;
	border-radius: 16px;
}

header.fv .text .panel li::before {
	content: "";
	position: absolute;
	z-index: -1;
	right: -4px;
	bottom: -4px;
	width: 100%;
	height: 100%;
	background: #fff;
	border: 1.6px solid #000;
	border-radius: 16px;
}

header.fv .text .panel li:first-child {
	font-size: 10.4px;
}

header.fv .text .note {
	margin: 0 min(54px, 9vw);
	font-size: 8px;
}

header.fv .fv_02 {
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 2;
}

@media screen and (max-width:600px) {
	header.fv {
		display: flex;
		flex-wrap: wrap;
		flex-direction: column;
		justify-content: flex-end;
		height: 400px;
	}
}

@media screen and (max-width:510px) {
	header.fv {
		height: 550px;
	}

	header.fv .text .panel li {
		width: 100%;
		margin-top: 0.5em;
		font-size: 3.2vw;
	}

	header.fv .text .panel li:first-child {
		font-size: 3.2vw;
	}
}

@media screen and (max-width:390px) {
	header.fv {
		height: 580px;
	}

	header.fv .text .panel li {
		width: 100%;
		margin-top: 0.5em;
		font-size: 3.2vw;
	}

	header.fv .text .panel li:first-child {
		font-size: 3.2vw;
	}
}

/* page_title */
header.page_title .headline {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 2em 0;
	background: url("../imeges/page_title_bg.png") no-repeat center top / 100% 100%;
}

header.page_title .headline h1 {
	display: inline-block;
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	text-align: center;
}

header.page_title .headline h1 span {
	display: inline-block;
}

header.page_title .headline h1 .logo {
	padding-left: 30px;
	background: url("../imeges/footer_logo.png") no-repeat left center;
}

/* .breadcrumbs */
.breadcrumbs {
	padding: 1em;
	background: #D9D9D9;
}

.breadcrumbs ul {
	max-width: 514px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	line-height: 1;
}

.breadcrumbs ul li {
	display: inline-block;
	font-size: 8px;
}

.breadcrumbs ul li a {
	position: relative;
	padding-right: 2em;
}

.breadcrumbs ul li a::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0.8em;
	width: 0.6em;
	height: 0.6em;
	margin: auto;
	border-top: 1px solid #000;
	border-right: 1px solid #000;
	transform: rotate(45deg);
	box-sizing: border-box;
}

/* --------------------
#sec_hikaku
--------------------*/
/* .type */
#sec_hikaku .type {
	display: flex;
	flex-wrap: wrap;
	margin: 0 1em 2em;
	background: url("../imeges/type_bg.png") no-repeat center top / 100% 100%;
}

#sec_hikaku .type [class^="type_"] {
	padding: 1em;
	text-align: center;
}

#sec_hikaku .type [class^="type_"] .logo {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

#sec_hikaku .type [class^="type_"] .logo div {
	display: flex;
	align-items: center;
}

#sec_hikaku .type [class^="type_"] .logo img {
	margin: 0.5em;
}

#sec_hikaku .type .type_01 {
	width: 38%;
}

#sec_hikaku .type .type_02 {
	width: 24%;
}

#sec_hikaku .type .type_03 {
	width: 38%;
}

@media screen and (max-width:600px) {
	#sec_hikaku .type {
		border: 1.6px solid #000;
		border-radius: 16px;
	}

	#sec_hikaku .type [class^="type_"] {
		padding: 3vw;
	}

	#sec_hikaku .type [class^="type_"] .logo {
		flex-direction: row;
	}

	#sec_hikaku .type [class^="type_"] .logo img {
		margin: 1vw 2vw;
	}

	#sec_hikaku .type .type_01 {
		width: 100%;
		background: #FDFCE9;
		border-top-left-radius: 16px;
		border-top-right-radius: 16px;
	}

	#sec_hikaku .type .type_02 {
		width: 100%;
		background: #F5F6E4;
		border-top: 1.6px solid #000;
		border-bottom: 1.6px solid #000;
	}

	#sec_hikaku .type .type_03 {
		width: 100%;
		background: #EFF4F5;
		border-bottom-left-radius: 16px;
		border-bottom-right-radius: 16px;
	}

}

/* .concept */
#sec_hikaku .concept {
	margin: 0 1em 2em;
	font-size: 12.8px;
	line-height: 1.9;
}

@media screen and (max-width:600px) {
	#sec_hikaku .concept {
		margin: 0 2em 2em;
	}
}

/* .service */
#sec_hikaku .service {
	margin: 0 0 3em;
}

#sec_hikaku .service .scroll {
	overflow-x: scroll;
	padding: 0 0 1em;
}

#sec_hikaku .service .scroll table {
	width: 1200px;
	border-collapse: collapse;
	font-size: 9.6px;
	text-align: center;
	background: #E1EBED;
}

@media screen and (max-width:600px) {
	#sec_hikaku .service .scroll table {
		width: 1400px;
		font-size: 12px;
	}
}


#sec_hikaku .service .scroll th,
#sec_hikaku .service .scroll td {
	padding: 5px;
	font-weight: 500;
}

#sec_hikaku .service .scroll thead th {
	vertical-align: top;
}

#sec_hikaku .service .scroll thead th:nth-child(even) {
	background: #F0F5F6;
}

#sec_hikaku .service .scroll tbody tr:nth-child(odd) th {
	background: #F0F5F6;
}

#sec_hikaku .service .scroll tbody tr:nth-child(odd) td:nth-child(odd) {
	background: #F0F5F6;
}

#sec_hikaku .service .scroll tbody tr:nth-child(even) td:nth-child(even) {
	background: #F0F5F6;
}

#sec_hikaku .service .scroll tbody tr:nth-child(odd) td:first-of-type {
	background: #FFFBB4;
}

#sec_hikaku .service .scroll tbody tr:nth-child(even) td:first-of-type {
	background: #FFFEE5;
}

#sec_hikaku .service .scroll .ranking {
	display: block;
	margin-bottom: 0.5em;
	font-size: 12.8px;
	font-family: "Crimson Text", serif;
}

#sec_hikaku .service .scroll .name {
	display: block;
	margin-top: 1em;
	font-weight: 700;
}

#sec_hikaku .service .scroll .fs_s {
	font-size: 8px;
}



/* --------------------
#sec_point
--------------------*/
#sec_point {
	margin: 0 1em 2em;
}


/* .accordion */
#sec_point .accordion .toggle {
	display: none;
}

#sec_point .accordion .label {
	padding: 1em;
	display: block;
	background: #FFA7A7;
	;
	border: 1.6px solid #000;
	border-radius: 8px;
}

#sec_point .accordion .label h3 {
	margin: 0;
	font-size: 24px;
	text-align: center;
}

@media screen and (max-width:600px) {
	#sec_point .accordion .label h3 {
		font-size: 4.2vw;
	}
}

#sec_point .accordion .label::before {
	content: "";
	width: 6px;
	height: 6px;
	border-top: 2px solid #000;
	border-right: 2px solid #000;
	-webkit-transform: rotate(45deg);
	position: absolute;
	top: calc(50% - 3px);
	right: 20px;
	transform: rotate(135deg);
}

#sec_point .accordion .label,
#sec_point .accordion .content {
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	transform: translateZ(0);
	transition: all 0.3s;
}

#sec_point .accordion .content {
	height: 0;
	margin-bottom: 1em;
	padding: 0 1em;
	overflow: hidden;
}

#sec_point .accordion .content p {
	font-size: 14px;
}

#sec_point .accordion .toggle:checked+.label {
	border-bottom-right-radius: 0;
	border-bottom-left-radius: 0;
}

#sec_point .accordion .toggle:checked+.label+.content {
	height: auto;
	padding: 1.5em;
	transition: all .3s;
	border: 1.6px solid #000;
	border-top: none;
	border-bottom-right-radius: 8px;
	border-bottom-left-radius: 8px;
}

#sec_point .accordion .toggle:checked+.label::before {
	transform: rotate(-45deg) !important;
}

/* .point_text */
#sec_point .point_text {
	padding: 3em 0 2em;
	text-align: center;
}

#sec_point .point_text p {
	font-size: 24px;
}

#sec_point .point_text p span {
	font-size: 32px;
}

#sec_point .point_img {
	display: flex;
	justify-content: space-around;
	margin-top: 2em;
}

#sec_point .point_img .img_2 {
	width: 50%;
	text-align: center;
}

@media screen and (max-width:600px) {
	#sec_point .point_text img {
		width: 75%;
	}

}

/* --------------------
#sec_ranking
--------------------*/
#sec_ranking {
	margin: 0 1em 5em;
}

#sec_ranking .lead {
	margin: 0 0 1em;
	padding: 1em;
	color: #fff;
	font-size: 20px;
	text-align: center;
	background: #B40019;
	border: 1.6px solid #000;
	border-radius: 1.5em;
}

#sec_ranking .img {
	margin-bottom: 2em;
	text-align: center;
}

#sec_ranking .img img {
	margin: 5px;
	width: calc(100% - 10px);
}

#sec_ranking .img span {
	display: flex;
	justify-content: center;
}

#sec_ranking .img span img {
	width: calc(50% - 10px);
}

#sec_ranking table {
	width: 100%;
	border-spacing: 0;
	border: 1.6px solid #000;
	border-radius: 8px;
}

#sec_ranking table th,
#sec_ranking table td {
	padding: 1em 0.5em;
}

#sec_ranking table th {
	width: 160px;
	font-size: 16px;
	font-weight: 500;
	text-align: center;
	vertical-align: center;
	border-right: 1.6px solid #000;
	border-bottom: 1.6px solid #000;
}

#sec_ranking table td {
	font-size: 12.8px;
	vertical-align: top;
	border-bottom: 1.6px solid #000;
}

@media screen and (max-width:600px) {
	#sec_ranking table td {
		font-size: 14px;
	}

}


#sec_ranking table tr:nth-child(odd) th,
#sec_ranking table tr:nth-child(odd) td {
	background: #FFFBED;
}

#sec_ranking table tr:last-child th,
#sec_ranking table tr:last-child td {
	border-bottom: none;
}

#sec_ranking table tr:first-child th {
	border-top-left-radius: 8px;
}

#sec_ranking table tr:first-child td {
	border-top-right-radius: 8px;
}

#sec_ranking table tr:last-child th {
	border-bottom-left-radius: 8px;
}

#sec_ranking table tr:last-child td {
	border-bottom-right-radius: 8px;
}

#sec_ranking .ranking_point h3 {
	padding: 0.5em 0.1em;
	font-size: 24px;
	text-align: center;
	background: #FFCC00;
	border: 1.6px solid #000;
	border-top-left-radius: 8px;
	border-top-right-radius: 8px;
}

#sec_ranking .ranking_point .text {
	padding: 2em;
	font-size: 12.8px;
	border: 1.6px solid #000;
	border-top: none;
	border-bottom-left-radius: 8px;
	border-bottom-right-radius: 8px;
}

#sec_ranking .ranking_point .text p:first-of-type {
	margin-top: 0;
}


/* --------------------
#sec_column_list
--------------------*/
#sec_column_list {
	margin: 0 1em 5em;
}

#sec_column_list .headline {
	padding: 0.5em;
	font-size: 24px;
	text-align: center;
	background: #FFCC00;
	border: 1.6px solid #000;
	border-top-left-radius: 8px;
	border-top-right-radius: 8px;
}

#sec_column_list ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1.6px solid #000;
	border-top: none;
	border-bottom-left-radius: 8px;
	border-bottom-right-radius: 8px;
}

#sec_column_list li:nth-child(odd) {
	background: #FFFBED;
}

#sec_column_list li:last-child {
	border-bottom-left-radius: 8px;
	border-bottom-right-radius: 8px;
}

#sec_column_list li a {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding: 2em;
	color: #000;
	font-size: 12.8px;
	text-decoration: none;
	transition: all 0.3s;
}

#sec_column_list li a:hover {
	opacity: 0.5;
}

#sec_column_list li a .title {
	flex: 1;
}

#sec_column_list li a .more {
	width: 110px;
	margin-left: 0.5em;
	padding: 0.2em 1em;
	text-align: center;
	background: #FFCC00;
	border-radius: 1em;
}

/* --------------------
#sec_search
--------------------*/
#sec_search {
	margin: 0 1em 5em;
}

#sec_search table {
	width: 100%;
	border-spacing: 0;
	border: 1.6px solid #000;
	border-radius: 8px;
}

#sec_search table th,
#sec_search table td {
	padding: 1em;
}

#sec_search table th {
	font-size: 10.4px;
	font-weight: 500;
	vertical-align: center;
	white-space: nowrap;
	background: #D9D9D9;
	border-right: 1.6px solid #000;
	border-bottom: 1.6px solid #000;
}

#sec_search table td {
	vertical-align: top;
	border-bottom: 1.6px solid #000;
}

#sec_search table tr:last-child th,
#sec_search table tr:last-child td {
	border-bottom: none;
}

#sec_search table tr:first-child th {
	border-top-left-radius: 8px;
}

#sec_search table tr:first-child td {
	border-top-right-radius: 8px;
}

#sec_search table tr:last-child th {
	border-bottom-left-radius: 8px;
}

#sec_search table tr:last-child td {
	border-bottom-right-radius: 8px;
}

#sec_search table td label {
	display: inline-block;
}

/* --------------------
#sec_company
#sec_outline
--------------------*/
#sec_company,
#sec_outline {
	padding: 0 1em 2em;
}

#sec_company .inner,
#sec_outline .inner {
	max-width: 350px;
	margin: auto;
}


/* --------------------
#sec_outline
--------------------*/
#sec_outline .no_bdr {
	border-bottom: none;
}

#sec_outline .data {
	padding: 0;
	border-bottom: none;
}

#sec_outline .data p {
	margin: 0;
}

#sec_outline .data dd {
	margin: 0;
}

#sec_outline .data dd table {
	width: 100%;
}

#sec_outline .data dd th,
#sec_outline .data dd td {
	padding: 0;
	border-bottom: none;
}

#sec_outline .data dd td:first-of-type {
	padding: 0 0.5em;
	text-align: right;
}

/* --------------------
#sec_column_article
--------------------*/
#sec_column_article {
	margin: 0 1em 5em;
}

#sec_column_article .headline_10 {
	max-width: 490px;
}

#sec_column_article article {
	margin-bottom: 2em;
	padding: 0 2em;
}

#sec_column_article article h3 {
	padding: 0.5em 0.1em;
	font-size: 15.6px;
	text-align: center;
	background: #FFF799;
	border: 1.6px solid #000;
	border-top-left-radius: 8px;
	border-top-right-radius: 8px;
}

#sec_column_article article h3 span {
	display: inline-block;
}

#sec_column_article article .intro {
	margin-bottom: 3em;
	padding: 0 2em;
}

#sec_column_article article .inner {
	padding: 2em;
	font-size: 14px;
	border: 1.6px solid #000;
	border-top: none;
	border-bottom-left-radius: 8px;
	border-bottom-right-radius: 8px;
}

#sec_column_article article .flex {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

#sec_column_article article .text {
	flex: 1;
	padding-right: 2em;
}

@media screen and (max-width:600px) {
	#sec_column_article article .text {
		width: 100%;
		padding-right: 0;
	}

	#sec_column_article article .img {
		width: 100%;
		margin-top: 2em;
		text-align: center;
	}

}

#sec_column_article article .mark_01 {
	/* 青ダイヤ */
	display: inline-block;
	padding-left: 1.2em;
	background: url("../imeges/mark_01.png") no-repeat left center;
}

#sec_column_article article .mark_02 {
	/* チェック */
	display: inline-block;
	padding-left: 1.2em;
	background: url("../imeges/mark_02.png") no-repeat left top 0.25em / 1em 1em;
}

#sec_column_article article .mark_03 {
	/* 注意 */
	display: inline-block;
	padding-left: 1.2em;
	background: url("../imeges/mark_03.png") no-repeat left top 0.25em / 1em 1em;
}

#sec_column_article article .mark_04 {
	/* ジグソーパズル */
	display: inline-block;
	padding-left: 1.5em;
	background: url("../imeges/mark_04.png") no-repeat left top 0.25em / 1em 1em;
}

#sec_column_article article .mark_05 {
	/* 指さし */
	display: inline-block;
	padding-left: 1.5em;
	background: url("../imeges/mark_05.png") no-repeat left top 4px / 1em 1em;
}

#sec_column_article article .mark_06 {
	/* 電球 */
	display: inline-block;
	padding-left: 1.5em;
	background: url("../imeges/mark_06.png") no-repeat left center / 1em 1em;
}

#sec_column_article article .subtitle {
	margin: 1em 0;
	text-align: center;
}


/* --------------------
footer
--------------------*/
footer {
	padding: 2em;
	text-align: center;
	background: #B40019;
}

footer a {
	display: inline-block;
	margin: 0 2em;
	color: #fff !important;
	font-size: 12.8px;
}

footer p {
	color: #fff;
	font-size: 12.8px;
	font-weight: 700;
}

footer p img {
	margin-right: 0.5em;
}

/* Animation for Official Site Button */
.btn_official.btn_red {
	position: relative;
	display: inline-block;
	animation-name: newreal-cvmove;
	animation-delay: 0s;
	animation-duration: 3s;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}
.btn_official.btn_yellow {
	position: relative;
	display: inline-block;
	animation-name: newreal-cvmove;
	animation-delay: 0s;
	animation-duration: 3s;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

@keyframes newreal-cvmove {
	0% {
		box-shadow: rgb(107, 46, 1) 0px 8px 0px;
		transform: translateY(0px);
	}

	40% {
		box-shadow: rgb(107, 46, 1) 0px 8px 0px;
		transform: translateY(0px);
	}

	50% {
		box-shadow: rgb(107, 46, 1) 0px 0px 0px;
		transform: translateY(8px);
	}

	60% {
		box-shadow: rgb(107, 46, 1) 0px 8px 0px;
		transform: translateY(0px);
	}

	100% {
		box-shadow: rgb(107, 46, 1) 0px 8px 0px;
		transform: translateY(0px);
	}
}
/* =========================================
   新規追加：CSSボタン（赤・黄）とアニメーション
   ========================================= */

/* 共通スタイル（アニメーション設定含む） */
.btn_new_red,
.btn_new_yellow {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto; /* 中央寄せ */
    color: #fff !important; /* 文字色 白 */
    font-weight: bold;
    text-decoration: none;
    border-radius: 50px; /* 丸み */
    box-sizing: border-box;
    line-height: 1.2;
    max-width: 100%; /* 画面幅が狭い場合のはみ出し防止 */
    
    /* アニメーション設定 */
    position: relative;
    animation-name: newreal-cvmove;
    animation-delay: 0s;
    animation-duration: 3s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

/* ホバー時は少し薄くする（お好みで調整可能） */
.btn_new_red:hover,
.btn_new_yellow:hover {
    opacity: 0.9;
}

/* 赤色ボタン（再修正版：文字サイズを固定し、paddingを最適化） */
/* style.css に追加/上書きしてください */

/* 赤色ボタン（新築ディベロッパー資料請求ボタン） */
.btn_new_red {
    /* ボタンのサイズと色、装飾は維持 */
    width: 450px; 
    height: 55px;
    background-color: #ff6c00;
    box-shadow: 0px 8px 0px rgb(107, 46, 1);
    
    /* 文字のサイズと位置調整を明確に指定 */
    font-size: 22px;      /* ★ これを明確に指定することで、どのページでも文字サイズを統一 */
    padding-top: 15px;     /* ★ この値を維持することで、22pxの文字が縦方向で中央に近くなる *//* 共通設定 */
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    color: #fff !important;
    font-weight: bold;
    text-decoration: none;
    border-radius: 50px;
    box-sizing: border-box;
    line-height: 1; 
    max-width: 100%;

    /* アニメーション設定 */
    position: relative;
    animation-name: newreal-cvmove;
    animation-delay: 0s;
    animation-duration: 3s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}
.btn_new_red_colomn {
    /* ボタンのサイズと色、装飾は維持 */
    width: 450px; 
    height: 55px;
    background-color: #ff6c00;
    box-shadow: 0px 8px 0px rgb(107, 46, 1);
    
    /* 文字のサイズと位置調整を明確に指定 */
    font-size: 22px;      /* ★ これを明確に指定することで、どのページでも文字サイズを統一 */
    padding-top: 5px;     /* ★ この値を維持することで、22pxの文字が縦方向で中央に近くなる *//* 共通設定 */
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    color: #fff !important;
    font-weight: bold;
    text-decoration: none;
    border-radius: 50px;
    box-sizing: border-box;
    line-height: 1; 
    max-width: 100%;

    /* アニメーション設定 */
    position: relative;
    animation-name: newreal-cvmove;
    animation-delay: 0s;
    animation-duration: 3s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

/* 黄色ボタン（元: btn_02 置き換え / 330x51） */
.btn_new_yellow {
    width: 330px;
    height: 51px;
    background-color: #ffc000; /* 参照元の黄色 */
    font-size: 18px; /* サイズに合わせて調整 */
    box-shadow: 0px 8px 0px rgb(107, 46, 1); /* 初期の影 */
}

/* アニメーションキーフレーム（参照元と同じ動き） */
@keyframes newreal-cvmove {
    0% {
        box-shadow: 0px 8px 0px rgb(107, 46, 1);
        transform: translateY(0px);
    }
    40% {
        box-shadow: 0px 8px 0px rgb(107, 46, 1);
        transform: translateY(0px);
    }
    50% {
        /* 沈む動き */
        box-shadow: 0px 0px 0px rgb(107, 46, 1);
        transform: translateY(8px);
    }
    60% {
        box-shadow: 0px 8px 0px rgb(107, 46, 1);
        transform: translateY(0px);
    }
    100% {
        box-shadow: 0px 8px 0px rgb(107, 46, 1);
        transform: translateY(0px);
    }
}

/* 既存の .btn_animation の設定を上書き・無効化する必要がある場合 */
/* 元々 .btn_animation a に拡大縮小アニメーションがかかっているので、それを打ち消します */
.btn_animation a.btn_new_red {
    animation-name: newreal-cvmove; /* 新しいアニメーションを優先 */
    transform: none; /* 元の拡大縮小をリセット */
}