@charset "utf-8";
/* CSS Document */
body {
	font-family: "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color:#333;
	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: #f8f8f8;
}

#contents {
	position: relative;
	width: 40vw;
	margin: 0 auto;
	background: #fff;
	box-shadow: 0px 0px 3px #bbb;
}

@media screen and (max-width: 979px) {
#contents {
	width: 700px;
}
}

@media screen and (max-width: 767px) {
#contents {
	width: 90%;
	max-width: 700px;
}
}

@media screen and (max-width: 479px) {
#contents {
    width: 100%;
}
}

p {
	font-size: 18px;
	line-height: 1.7em;
	margin:5px;
}

@media screen and (max-width: 979px) {
p {
	font-size: 18px;
}
}

@media screen and (max-width: 767px) {
p {
	font-size: 16px;
}
}

@media screen and (max-width: 479px) {
p {
	font-size: 16px;
}
}

p.point {
	margin: 5px;
	padding: 5px;
}

@media screen and (min-width: 979px){   
  .pc { display:block; }
  .sp { display:none; }
}
@media screen and (max-width: 979px){   
  .pc { display:none; }
  .sp { display:block; }
}

/*----画像装飾----*/

img {
	max-width: 100%;
}

.hikaku01 img {
	max-width: 85px;
	height: 85px;
	margin: 5px auto 0 auto;
}

.hikaku01 .under{
	text-decoration: underline;
}

.hikaku01_text01{
	font-weight: bold;
	font-size: 11px;
}

.imgbox {
	margin: 0 0 20px 20px;
	padding: 0 10px;
}

.imgbox .solid {
	display:inline-block;
	border: 1px solid #ccc;
}

.float_left {
	float: left;
	margin: 0 0 10px;
}

.img_waku {
}

.img_waku02 {
	display: block;
	margin: 0 auto;
	width: 90%;
}

@media screen and (min-width: 820px) {
.img_waku02 {
	width: 75%;
}
}

.img_waku03 {
	display: block;
	margin: 0 auto;
	width: 70%;
	padding: 10px
}

@media screen and (min-width: 820px) {
.img_waku03 {
	width: 95%;
	max-width: 350px;
	padding: 10px
}
}

.img_waku04 {
	display: block;
	margin: 0 auto;
	width: 90%;
}

.img_oukan {
	width: 50px;
}


.img_waku05 {
	display: block;
	margin: 0 auto;
	width: 95%;
}

@media screen and (min-width: 820px) {
.img_waku05 {
	width: 75%;
}
}



/*----文字装飾----*/

b {
	font-weight: bold;
}

strong {
	font-weight: bold;
	background: linear-gradient(180deg,#fff 0%,#fff 10%,#ff6 10%,#fff 100%);
}
    /* 黄色のアンダーライン（マーカー風） */
    .marker-underline {
        background: linear-gradient(transparent 60%, #ffff00 60%);
        padding-bottom: 1px;
        display: inline-block; /* ラインを正しく表示させるため */
        color: inherit; /* 親要素の文字色を継承 */
    }

/*装飾追記*/
.very_strong{
	font-size: 16px;
	font-weight: bold;
}

.underline {
	text-decoration: underline;
}

.frame_text {
	font-size: 14px;
	text-decoration: underline;
	margin: 5px auto 0;
}

.frame_text2 {
	font-size: 14px;
	margin: 5px auto 0;
}

.frame_text3 {
	font-size: 12px;
}


@media screen and (min-width: 414px) {
.frame_text3 {
	font-size: 14px;
}
}

.frame_text4 {
	font-size: 12px;
	margin: 5px auto;
}

.frame_text5 {
	font-size: 14px;
	margin: 5px auto -8px;
}

.text_middle{
	font-size: 14px;
}


.text_small {
	font-size: 12px;
}

.text_verysmall {
	font-size: 10px;
}

.text_verysmall_mitsubishi {
	color: black;
	margin: 5px;
	background: #f1f1f1;
	border: 1px solid #e1e1e1;
	border-radius: 4px;
	font-size: 10px;
}


.text_verybig {
	font-size: 18px;
}

.text_right {
	display: block;
	text-align: right;
	margin: auto auto 10px;
}



/*注釈*/
.gray_text {
	color: gray;
	margin: 5px;
	background: #f1f1f1;
	border: 1px solid #e1e1e1;
	border-radius: 4px;
}

/*矢印コンテンツへのつなぎ*/
.triangle_title_container {
	position: relative;
	width: 100%;
	height: 0%;
	padding-bottom: 39px; 
	margin: 0 auto;
	overflow: visible;
	margin-top: 7px;
	top: 4px;
}
.triangle_background {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(to bottom, #f5e300 0%, #f5e300 100%);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	z-index: 1;
}
.triangle_text_wrapper {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
	display: flex;
	justify-content: center;
	align-items: center;
}
.triangle_text {
	white-space: nowrap;
	font-size: 18px;
	font-weight: bold;
	color: #373531;
	text-shadow: 1px 1px 2px #ffffff, -1px -1px 2px #ffffff, -1px 1px 2px #ffffff, 1px -1px 2px #ffffff, 1px 0 2px #ffffff, -1px 0 2px #ffffff, 0 1px 2px #ffffff, 0 -1px 2px #ffffff;
}

.chat-app-wrapper {
	background-color: #ffffff;
	/* フォントを Noto Sans JP に設定 */
	font-family: 'Noto Sans JP', sans-serif;
	display: flex;
	align-items: center;
	justify-content: center;
}

.chat-app-wrapper .chat-box-component {
	width: 100%;
	background: #ffffff;
	border-radius: 1.5rem;
	box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	height: auto;
	transition: max-width 0.3s ease;
	margin: 5px;
}

/* パソコン（PC）等の大きな画面向けの調整 */
@media (min-width: 1024px) {
	.chat-app-wrapper .chat-box-component {
	}
	.chat-app-wrapper .chat-header {
		font-size: 1.5rem; /* PCではヘッダーの文字をさらに大きく */
		padding: 1.5rem 1rem;
	}
	.chat-app-wrapper .chat-bubble {
		font-size: 1rem; /* 吹き出しの文字サイズを調整 */
		padding: 1rem 1.25rem;
	}

	/* PCのみ、コンテンツ自体を中央に寄せるクラス */
	.chat-app-wrapper .chat-row-center-pc {
		justify-content: center;
	}
}


/* ヘッダーのスタイル */
.chat-app-wrapper .chat-header {
	background: #004bc6;
	padding: 1rem;
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-weight: bold;
	font-size: 1.25rem; 
	flex-shrink: 0;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	z-index: 10;
}

.chat-app-wrapper .header-sparkle {
	width: 1.5rem;
	height: 1.5rem;
	color: #facc15; /* 黄色のキラキラ */
}

/* チャット表示エリア */
.chat-app-wrapper .chat-container {
	overflow: visible; 
	background-color: #ffffff
}

/* 行の基本スタイル */
.chat-app-wrapper .chat-row {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin-bottom: 5px;
	margin-top: 5px;
	animation: chatFadeIn 0.5s ease-out forwards;
}
.chat-app-wrapper .chat-row-reverse {
	flex-direction: row-reverse;
}

/* アバター周り */
.chat-app-wrapper .chat-avatar-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex-shrink: 0;
	width: 80px;
}
.chat-app-wrapper .chat-avatar-img {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 4px;
	overflow: visible; 
	position: relative;
}
.chat-app-wrapper .chat-avatar-name {
	font-size: 10px;
	color: #64748b;
	text-align: center;
	font-weight: bold;
}

/* 吹き出し共通 */
.chat-app-wrapper .chat-bubble {
	padding: 0.85rem 1rem;
	border-radius: 1.25rem;
	font-size: 0.9rem;
	line-height: 1.6;
	max-width: 75%;
	position: relative;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
	color: #1e293b;
}

/* カラー設定 */
.chat-app-wrapper .bg-junior { background-color: #fbcfe8; }
.chat-app-wrapper .chat-bubble-left {
	background-color: #fbcfe8;
	border-top-left-radius: 0;
}

.chat-app-wrapper .bg-senior { background-color: #e9d5ff; }
.chat-app-wrapper .chat-bubble-right {
	background-color: #e9d5ff;
	border-top-right-radius: 0;
}

/* 次のセクションへの誘導 */
.chat-app-wrapper .next-section-trigger {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
}

.chat-app-wrapper .arrow-bounce {
	width: 24px;
	height: 24px;
	color: #4f46e5;
	animation: bounce 2s infinite;
}

.chat-app-wrapper .transition-text {
	font-size: 1rem;
	font-weight: bold;
	color: #4f46e5;
	letter-spacing: 0.05em;
}

/* ハイライト */
.chat-app-wrapper .text-highlight-pink { color: #db2777; font-weight: bold; }
.chat-app-wrapper .text-highlight-yellow { background-color: #fef08a; padding: 0 2px; font-weight: bold; }

@keyframes chatFadeIn {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes bounce {
	0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
	40% {transform: translateY(-8px);}
	60% {transform: translateY(-4px);}
}

/* ヘッダー内タイトルの調整 */
.chat-app-wrapper .header-title-row {
	display: flex;
	align-items: center;
	justify-content: center; /* 中央配置を強制 */
	width: 100%;             /* 幅を確保して中央に寄せる */
	gap: 0.5rem;
	font-weight: bold;
	font-size: 1.25rem;
}

@media (min-width: 1024px) {
	.chat-app-wrapper .header-title-row {
		font-size: 1.5rem;
	}
}


/* 結論エリア（二枚持ちカード） */
.chat-app-wrapper .conclusion-area {
	background: #ffffff;
	text-align: center;
	margin: 15px;
}

.chat-app-wrapper .conclusion-title {
	font-size: 1.1rem;
	font-weight: 900;
	font-style: italic;
	color: #1e293b;
}

@media (min-width: 1024px) {
	.chat-app-wrapper .conclusion-title {
		font-size: 1.3rem;
	}
}

.chat-app-wrapper .text-blue-accent {
	color: #2563eb;
	text-decoration: underline;
	text-decoration-thickness: 4px;
	text-decoration-color: #dbeafe;
	text-underline-offset: 4px;
}

.chat-app-wrapper .card-comparison {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	width: 100%;
}

@media (min-width: 1024px) {
	.chat-app-wrapper .card-comparison {
		flex-direction: row;
		gap: 0.5rem;
	}
}

.chat-app-wrapper .mini-card {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem;
	border-radius: 1.25rem;
	background: white;
	border: 1px solid #f1f5f9;
	box-shadow: 0 1px 3px rgba(0,0,0,0.05);
	position: relative;
	overflow: hidden;
	text-align: left;
	flex: 1;
}

.chat-app-wrapper .jcb-border::after {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 4px;
	height: 100%;
	background: #1e40af;
}

.chat-app-wrapper .life-border::after {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 4px;
	height: 100%;
	background: #3b82f6;
}

.chat-app-wrapper .icon-container {
	width: 44px;
	height: 44px;
	border-radius: 0.75rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.chat-app-wrapper .jcb-bg { background: #eff6ff; color: #1e40af; }
.chat-app-wrapper .life-bg { background: #eff6ff; color: #3b82f6; }

.chat-app-wrapper .tag {
	font-size: 8px;
	font-weight: 900;
	color: white;
	padding: 2px 8px;
	border-radius: 4px;
	display: inline-block;
	margin-bottom: 4px;
}

.chat-app-wrapper .card-name {
	font-weight: bold;
	font-size: 13px;
	line-height: 1.2;
	margin-bottom: 2px;
}

.chat-app-wrapper .card-desc {
	font-size: 10px;
	color: #64748b;
	line-height: 1.3;
}

.chat-app-wrapper .plus-icon-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #cbd5e1;
	padding: 0.25rem 0;
}

/* グリッドレイアウト */
.feature-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem;
}
.feature-card {
	background-color: #fff;
	padding: 15px 10px;
	border-radius: 0.75rem;
	border: 1px solid #f3f4f6;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
	transition: box-shadow 0.3s ease;
	text-align: center;
}
.feature-card:hover {
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.icon-wrapper {
	width: 64px;
	height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	margin: 0 auto 0.5rem;
	font-size: 1.4rem;
	font-weight: 900;
	text-transform: uppercase;
	line-height: 1;
}
.icon-free {
	background-color: rgba(248, 113, 113, 0.9);
	color: #fff;
}
.icon-point {
	background-color: rgba(250, 204, 21, 0.4);
	color: #333;
}
.icon-secure {
	background-color: rgba(96, 165, 250, 0.4);
	color: #1e40af;
}
.feature-card h2 {
	font-size: 1.1rem;
	font-weight: 700;
	color: #1f2937;
	margin: 0;
	line-height: 1.3;
}
@media (max-width: 767px) {
	.icon-wrapper {
		width: 64px;
		height: 64px;
		font-size: 1.2rem;
	}
	.feature-card h2 {
		font-size: 0.9rem;
	}
	.feature-grid {
		gap: 0.25rem;
	}
	.feature-card {
		padding: 10px 5px;
	}
	.ranking-launch-message {
		font-size: 0.9rem;
	}
}
.icon-free { background-color: rgba(248, 113, 113, 0.7); }
.icon-point { background-color: rgba(250, 204, 21, 0.3); }
.icon-secure { background-color: rgba(96, 165, 250, 0.3); }

.feature-card h2 {
	font-size: 1.25rem;
	font-weight: 700;
	color: #1f2937;
	margin-bottom: 0.5rem;
	text-align: center;
}
.feature-card p {
	font-size: 0.875rem;
	color: #4b5563;
	line-height: 1.625;
	text-align: center;
}

@media (max-width: 767px) {
    .feature-card h2 {
        font-size: 1rem; /* 見出しを小さく */
    }
    .feature-card p {
        font-size: 0.75rem; /* 段落を小さく */
    }
    .feature-grid {
        gap: 0.25rem; /* さらに隙間を詰める */
    }
    .feature-card {
        padding: 5px; /* カード内部のパディングも詰める */
    }
}



/*----テーブル----*/
table {
	text-align: center;
	clear: both;
	width: 100%;
	margin: 13px auto 5px;
	border: 1px solid #808080;
}

.hikaku01{
	margin: 5px auto;
	border: 3px double #ccc;
}



th {
	background-color: #f0f7ff;
	border: 1px solid #ccc;
	text-align: center;
	font-size: 13px;
	padding: 2px;
}

@media screen and (max-width: 767px) {
th {
	font-size: 14px;
}
}

@media screen and (max-width: 479px) {
th {
	font-size: 14px;
}
}

td {
	border: 1px solid #ccc;
	text-align: center;
	font-size: 13px;
	padding: 2px;
}

.td_margin01 {
	padding: 5px 10px;
}

.td_margin02 {
	padding: 8px 3px;
}

.search01 td{
	text-align: center;
	background-color: #fdfbdb;
	border: 1px solid #ccc;
	text-align: center;
	font-size: 14px;
	padding: 1px 0 0;
}

/*----運営者情報----*/
.uneisha {
	width: 95%;
	margin: 20px 10px;
	padding: 0;
}

.uneisha th {
	width: 25%;
	background-color: #f1f1f1;
	text-align: center;
	font-size: 14px;
	padding: 3px 0 0;
}

.uneisha td {
	width: 75%;
	background-color: #fff;
	text-align: left;
	font-size: 14px;
	padding: 3px 0 0 10px;
}


/*----ヘッダー,フッター----*/
header {
	height: auto;
	width: 100%;
	display: flex;
	justify-content: space-between;
}

header img {
	border: none;
	padding: 2px 0;
}

@media screen and (max-width: 479px) {
header img {
	width: 79%;
}
}

.top_pr {
	margin: auto 0;
	font-size: 10px;
	color: #676767;
}

/*----リスト----*/
#footer {
	clear: both;
	padding: 30px 0 0 0;
	box-shadow: 2px 0 3px #e1e1e1;
	background: #eff8f7;
	font-size: 14px;
}

.footer_contents {
	margin: 0 auto;
	padding: 0 0 30px 40px;
	overflow: hidden;
}
@media screen and (max-width: 767px) {
.footer_contents {
	width: 540px;
}
}
@media screen and (max-width: 479px) {
.footer_contents {
	width: 100%;
}
}


.footer_contents a {
	color: #333;
	text-decoration: none;
}

.footer_contents .sitename {
	font-size: 110%;
	font-weight: bold;
	padding: 0 0 5px 0;
}
@media screen and (max-width: 767px) {
.footer_contents .sitename {
	font-size: 16px;
}
}
@media screen and (max-width: 479px) {
.footer_contents .sitename {
	font-size: 14px;
}
}

.footer_contents .mokuji_waku {
	float: left;
	margin: 0 20px 0 5px;
	padding: 0 20px;
}

.footer_contents .groupname {
	margin: 0 0 0 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 0px 0;
	font-size: 80%;
	list-style:none;
}
@media screen and (max-width: 767px) {
.footer_contents li {
	font-size: 12px;
}
}
@media screen and (max-width: 479px) {
.footer_contents li {
	font-size: 10px;
}
}

.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;
}

.mokuji_waku {
	float: left;
}

.thtd_sp_hidden img {
	border: none;
	margin: 0;
}

@media screen and (max-width: 767px) {
.thtd_sp_hidden {
	display: none;
}
}

/*---リンク---*/
a:hover {
	opacity:0.8;
}

/*----見出し----*/
h1 {
	margin: 0 auto;
	padding: 3px 0 0;
	width: 70%;
	font-size: 24px;
	color: #000000;
	text-align: center;
}

@media screen and (max-width: 979px) {
h1 {
	font-size: 24px;
}
}

@media screen and (max-width: 767px) {
h1 {
	font-size: 18px;
}
}

@media screen and (max-width: 479px) {
h1 {
	font-size: 18px;
	text-align: center;
}
}

h2 {
	position: relative;
	margin: 0 25px;
	text-align: center;
}

h2.hikaku_title {
 font-size: 17px;
        background: linear-gradient(135deg, #1e40af, #3b82f6);
        height: 40px;
        border-radius: 12px 12px 0px 0px;
        margin: 0 auto -14px auto;
        border: 1px solid #ccc;
        border-bottom: none;
        color: white;
        padding: 6.5px 0;
        text-align: center;
        font-weight: bold;
        box-sizing: border-box;
        position: relative;
        z-index: 10;
}

@media screen and (min-width: 376px) {
h2.hikaku_title {
	font-size: 18px;
}
}

h3 {
	font-size: 16px;
	margin: 10px 10px 0;
	font-weight: bold;
}

h4 {
	border-bottom: 2px dotted #0d355a;
	border-left: 4px solid #0d355a;
	margin: 15px 5px 5px;
	padding: 3px 10px;
	font-size: 22px;
	clear: both;
}

@media screen and (max-width: 979px) {
h4 {
	font-size: 24px;
}
}

@media screen and (max-width: 767px) {
h4 {
	font-size: 22px;
}
}

@media screen and (max-width: 479px) {
h4 {
	font-size: 18px;
}
}

h4.pickup_midashi01{
	border: none;
	border-radius: 5px 5px 0 0;
	text-align: center;
	background: #0079969c;
	color: white;
	font-weight: normal;
	margin: 25px 30px 0px;
	padding: 3px 10px;
	clear: both;
}

h5 {
	padding: 3px 10px;
	font-size: 18px;
	border-bottom: dashed 1px #9E9E9E;
    padding: 15px;
}

h5#best01 {
    background: url(/img/parts/ptn01.jpg);
    font-size: 20px;
    height: 54px;
    padding: 15px;
	border-radius: 10px 10px 0 0;
}

h5#best02 {
    background: url(/img/parts/ptn02.jpg);
    font-size: 20px;
    height: 54px;
    padding: 15px;
	border-radius: 10px 10px 0 0;
}

h5#best03 {
    background: url(/img/parts/ptn03.jpg);
    font-size: 20px;
    height: 54px;
    padding: 15px;
	border-radius: 10px 10px 0 0;
}

h6 {
	width: 100%;
	margin: 10px 5px 3px;
	padding: 5px 32px;
	height: 30px;
}

.title {
	padding: 10px 10px;
	margin: 0 auto;
}

.date {
	float: right;
	padding: 5px 5px 0 0;
	color: #fff;
}

.tag {
	background-color: #fb005d;
	font-size: 12px;
	margin: 10px 0 0 10px;
	color: #fff;
	border-radius: 2px;
	padding: 4px 5px;
}

/*----見出し追記----*/
.search_headder01 h2{
	font-size: 20px;
	margin: 15px 0 0 0;
	padding: 6px;
	text-align: center;
	background: #1ba0fc;
	color: #FFFFFF;
}

/*----メインコンテンツ----*/
.text {
	width: 100%;
	margin: 0 auto;
	padding: 5px 5px;
}

/*----ボタン----*/
.btn01 {
	color: #fff;
	margin: 0 auto;
	font-size: 16px;
	text-align: center;
}

.btn02 {
	color: #fff;
	margin: 0 auto;
	font-size: 18px;
	text-align: center;
}

.btn03 {
	color: #fff;
	margin: 0 auto;
	font-size: 14px;
	text-align: center;
}

.button01 {
	display: block;
	position: relative;
	background-color: #E83C5D;
	border-radius: 15px;	
	color: #fff;
	line-height: 52px;
	-webkit-transition: none;
	transition: none;
	box-shadow: 0 3px 0 #bbb;
	text-shadow: 0 1px 1px rgba(0, 0, 0, .3);
	padding: 10px 10px;
	overflow: hidden;
	width: 75%;
	margin: 5px auto 30px auto;
}

.button02 {
	display: block;
	position: relative;
	background-color: #f13652;
	border-radius: 4px;
	color: #fff;
	line-height: 10px;
	-webkit-transition: none;
	transition: none;
	box-shadow: 0 1px 0 #bbb;
	text-shadow: 0 1px 1px rgba(0, 0, 0, .3);
	padding: 3px 1px;
	overflow: hidden;
	width: 70%;
	margin: 10px 5px;
}

.button03 {
	display: block;
	position: relative;
	background-color: #289a3e;
	border-radius: 4px;	
	color: #fff;
	line-height: 52px;
	-webkit-transition: none;
	transition: none;
	box-shadow: 0 3px 0 #bbb;
	text-shadow: 0 1px 1px rgba(0, 0, 0, .3);
	overflow: hidden;
	width: 75%;
	margin: 15px auto;
}

@media screen and (max-width: 767px) {
.button03 {
	width: 90%;
}
}

.button03 a {
	color: #fff;
	font-size: 16px;
}

.button04 {
	display: block;
	position: relative;
	background-color: #fb98a3;
	border-radius: 15px;	
	color: #fff;
	line-height: 52px;
	-webkit-transition: none;
	transition: none;
	box-shadow: 0 3px 0 #bbb;
	text-shadow: 0 1px 1px rgba(0, 0, 0, .3);
	padding: 5px 30px;
	overflow: hidden;
	width: 85%;
	margin: 15px auto;
}

.button05 {
	display: block;
	position: relative;
	background-color: #E83C5D;
	border-radius: 15px;	
	color: #fff;
	line-height: 52px;
	-webkit-transition: none;
	transition: none;
	box-shadow: 0 3px 0 #bbb;
	text-shadow: 0 1px 1px rgba(0, 0, 0, .3);
	padding: 5px 10px;
	overflow: hidden;
	width: 75%;
	margin: 15px auto;
}

/*検索ボックスボタン*/
.button_search {
	display: block;
	position: relative;
	-webkit-transition: none;
	transition: none;
	padding: 5px 10px;
	overflow: hidden;
	width: 80%;
	margin: 10px auto;
	/* border-top: 1px solid #c5c5c5; */
	/* border-right: 1px solid #c5c5c5; */
	/* border-bottom: 3px solid #96d800; */
	/* border-left: 1px solid #c5c5c5; */
	background: #ed2f2f;
}

@media screen and (max-width: 979px) {
.button_search {
    width: 78%;
}
}

@media screen and (max-width: 695px) {
.button_search {
    width: 80%;
    /* height: 40%; */
    border-radius: 10px;
}
}

.reflection {
	background-color: #fff;
	height: 100%;
	width: 30px;
	top: -180px;
	left: 0;
	position: absolute;
	opacity: 0;
	transform: rotate(45deg);
	animation: reflection 3s ease-in-out infinite;
	-webkit-transform: rotate(45deg);
	-webkit-animation: reflection 3s ease-in-out infinite;
	-moz-transform: rotate(45deg);
	-moz-animation: reflection 3s ease-in-out infinite;
	-ms-transform: rotate(45deg);
	-ms-animation: reflection 3s ease-in-out infinite;
	-o-transform: rotate(45deg);
	-o-animation: reflection 3s ease-in-out infinite;
}

@keyframes reflection {
	0% { transform: scale(0) rotate(45deg); opacity: 0; }
	80% { transform: scale(0) rotate(45deg); opacity: 0.5; }
	81% { transform: scale(4) rotate(45deg); opacity: 1; }
	100% { transform: scale(50) rotate(45deg); opacity: 0; }
}

.hikaku_btn {
	display: block;
	position: relative;
	background-color: #ff0000;
	border-radius: 4px;
	color: #fff;
	line-height: 11px;
	transition: none;
	box-shadow: 0 3px 0 #bbb;
	text-shadow: 0 1px 1px rgb(0 0 0 / 30%);
	padding: 3.5px 6px;
	overflow: hidden;
	width: 100%;
	margin: 5px auto;
}

.hikaku_btn:hover {
  background-color: #ff00009e;
}

.hikaku_btn:active {
  transform: translateY(2px);
}

/*-------------------------ランキングボックスボタン------------------------------------*/
.koshiki_btn {
	display: block;
	position: relative;
	border-radius: 4px;
	background: linear-gradient(0deg, rgba(204, 1, 2, 1), rgba(250, 3, 3, 1) 50%, rgba(204, 1, 2, 1));
	color: #fff;
	line-height: 52px;
	-webkit-transition: none;
	transition: none;
	box-shadow: 0 3px 3px #6c6464;
	text-shadow: 0 2px 2px rgba(0, 0, 0, .3);
	padding: 15px;
	overflow: hidden;
	width: 75%;
	margin: 4% auto 3% auto;
}

@media screen and (max-width: 767px) {
.koshiki_btn {
	width: 90%;
}
}

@media screen and (min-width: 820px) {
.koshiki_btn {
	margin: 0 auto 2% auto;
}
}

.koshiki_btn a {
	color: #fff;
	font-size: 16px;
}

.koshiki_btn:hover {
  background-color: #ff00009e;
}

.koshiki_btn:active {
  transform: translateY(2px);
}

.koshiki_btn02 {
	display: block;
	position: relative;
	border-radius: 4px;
	background: #ff0000c4;
	color: #fff;
	padding: 5px;
	overflow: hidden;
	width: 75%;
	margin: 4% auto 3% auto;
}

@media screen and (max-width: 767px) {
.koshiki_btn02 {
	width: 90%;
}
}

.koshiki_btn02 a {
	color: #fff;
	font-size: 16px;
}

.koshiki_btn02:hover {
  background-color: #ff00009e;
}

.koshiki_btn02:active {
  transform: translateY(2px);
}

.button_text {
	color: #fff !important;
	margin: 0 auto;
	font-size: 16px;
	text-align: center;
}

.button_text2 {
	color: #fff !important;
	margin: 0 auto;
	font-size: 19px;
	text-align: center;
}

.btn_under_text {
	font-size: 11px;
	display: block;
	margin: 0 20px 5%;
}

h5 img {
	border: none;
}

h5 a {
	color: #333;
	text-decoration: underline;
	font-size: 20px;
}

    /* アニメーションの定義 */
    @keyframes pyonpyon {
        0%, 100% {
            transform: translateY(0);
            animation-timing-function: ease-in-out;
        }
        50% {
            transform: translateY(-2px); /* 揺れ幅を極小（2px）に設定 */
            animation-timing-function: ease-in-out;
        }
    }

    /* ぴょんぴょんさせる外枠 */
    .jump-animation-container {
        display: inline-block;
        animation: pyonpyon 2.5s infinite; /* 2.5秒かけてゆっくり1往復 */
        margin: 1px auto;
        vertical-align: middle;
        line-height: 1;
    }

    /* バッジのデザイン（極小サイズ） */
    .student-badge {
        background-color: #3b82f6; /* 指定の青色 */
        color: #ffffff;            /* 白文字 */
        padding: 2px 6px;          /* さらにコンパクトに */
        border-radius: 50px;       /* カプセル型 */
        font-weight: bold;
        font-size: 12px;           /* 最小クラスの文字サイズ */
        font-family: "Hiragino Sans", "Meiryo", sans-serif;
        border: 1px solid #ffffff; /* 細い白縁 */
        box-shadow: 0 1px 3px rgba(59, 130, 246, 0.2);
        white-space: nowrap;
        display: inline-block;
        -webkit-font-smoothing: antialiased;
    }
/*ランキングボックス*/
.box01,.box02,.box03,.box04,.box05,.box06,.box07,.box08,.box09,.box010 {
	margin: 20px 5px 20px 5px;
	background: #fff;
	border-radius: 10px;
	border-color: #cbc5c5;
	border-width: 1px;
	box-shadow: 0 2px 2px 0 rgba(0,0,0,.14), 0 3px 1px -2px rgba(0,0,0,.12), 0 1px 5px 0 rgba(0,0,0,.2);
}

.box01 {
	border-color: #eed932;
}

.box02 {
	border-color: #a2a1a1b3;
}

.box03 {
	border-color: #803f31ad;
}

.box04,.box05,.box06,.box07,.box08,.box09,.box010 {
	padding: 0 5px;
}

/*王冠アイコン設定*/
.box01 h5 img, .box02 h5 img, .box03 h5 img {
	border: none;
	margin: -9px 0 0;
	animation: 3s ease 0s normal none infinite running spin;
}

@keyframes spin {
	0% {
	transform: rotateY(0deg);
}
	70% {
	transform: rotateY(0deg);
}
	100% {
	transform: rotateY(360deg);
}
}

.box04 h5 img, .box05 h5 img, .box06 h5 img, .box07 h5 img, .box09 h5 img, .box10 h5 img {
	border: none;
	margin: -4px 0 0;
}

.box_waku {
	max-width: 600px;
	margin: auto;
}

@media screen and (min-width: 820px) {
.box_waku {
	max-width: 820px;
}
}

.rankingbox_title {
	margin: 20px auto 10px;
	padding: 10px 0 0 0;
}

.rankingbox_title_label {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 20px auto 15px;
	padding: 0;
}

.rankingbox_title_label_text {
	position: relative;
	width: fit-content;
	margin-left: auto;
	margin-right: auto;
	padding: 15px;
	border-radius: 999px;
	background-color: #3c84f2d1;
	color: #fff;
	line-height: 1;
	font-weight: 700;
	text-align: center;
}

.rankingbox_title_label_text:after {
	content: "";
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	position: absolute;
	display: block;
	border: 5px solid transparent;
	border-top: 8px solid #00a597;
}

.rankingbox_title_text {
	margin: 0 auto;
	font-size: 22px;
	line-height: 1.3;
	font-weight: 700;
	text-align: center;
	position: relative;
	color: #00a597;
}

.rankingbox_background {
	width: 100%;
	position: relative;
	display: block;
	margin: 0px auto;
	padding: 0 5px 2px;
	background-color: #F3FFD8;
	border-radius: 0 0 10px 10px;
}

/* クラスではなくIDで指定することで優先順位を上げます */
#search_box.ribbon_search {
    display: block;
    box-sizing: border-box;    /* 横幅の計算を崩さない */
    width: 100%;
    margin: 0 0 5px 0;
    padding: 5px 0;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
    border-top: 1px solid #c5c5c5;
    border-right: 1px solid #c5c5c5;
    border-bottom: 3px solid #006aff;
    border-left: 1px solid #c5c5c5;

    /* 背景グラデーション */
    background: #ffffff; 
    background: linear-gradient(to bottom, #ffffff 0%, #ffffff 52%, #f1f1f1 52%, #f4f4f4 100%);
}

/*----------------------------------------------*/

.logo_frame {
	display: inline-block;
	text-align: center;

}

.img_frame {
	display: block;
	margin: 0 auto;
}

/*----------------------------------------------*/
/*タイトルボックス*/
.heading_box01{
	font-size: 20px;
	padding: 10px 0;
	text-align: center;
	font-weight: bold;
}

/*---- フォーム ----*/
input[type=checkbox]{
	display: none;
}

input[type=radio]{
	display: none;
}

.form_box02 {
	clear: both;
}

.form_box02 > ul {
	display: table;
	width: 100%;
	font-size: 14px;
	margin: 0 0 5px 0;
	padding: 5px 0 5px 10px;
	border: 1px solid #d1d1d1;
}

.form_box02 > ul > li {
	display: table-cell;
	vertical-align: middle;
	padding: 8px 5px 8px 10px;
}

.form_box02 > ul > li:first-child {
	width: 25%;
	border-right: 1px solid #e1e1e1;
	padding: 0 5px 0 0;
	font-weight: bold;
}
ul.form_koumoku {
	padding: 0;
}

.form_koumoku li {
	display: inline-block;
	padding: 0 10px 5px 0;
}

.form_koumoku input {
	margin: 0 0 0 0;
	vertical-align: top;
}

.form_koumoku label {
	vertical-align: middle;
	display: block;
	background-color: #f8f8f8;
	overflow: hidden;
	border-radius: 15px;
	padding: 3px;
	text-decoration: underline;
	color: blue;
	cursor: pointer;
	margin: 1px;
}

.form_koumoku input[type=radio]:checked ~ label {
	background-color: #b3d4fc;
}

.form_koumoku input[type=checkbox]:checked ~ label {
	background-color: #b3d4fc;
}

.select_koumoku {
	width: 65%;
	border: 1px solid #bbbbbb;
	background-color: white;
	border-radius: 15px;
	appearance: none;
	-webkit-appearance: none;
	padding: 0 0 0 10px;
}

ul.select li.form_arrow {
	position: relative;
	padding-right: 30px;
}

ul.select li.form_arrow select.select_koumoku {
	position: absolute;
	top: 0;
}

ul.select li.form_arrow::after {
	content: "\25BC";
	font-size: 10px;
	position: absolute;
	right: 34%;
	transform: translateY(-43%);
}

ul.popular_waku {
	border-color: #9E9E9E;
	border-style: inherit;
	border-width: 1px 1px 1px;
	border-radius: 1rem;
	background-color: #ffeb3b29;
	margin: 5px;
	padding: 5px 0 7px 27px;
	list-style-type: disclosure-closed;
}

div.popular_waku {
	border-color: #9E9E9E;
	border-style: inherit;
	border-width: 1px 1px 1px;
	border-radius: 1rem;
	background-color: #ffeb3b29;
	padding-block-end: 7px;
	margin: 5px;
	padding: 5px;
}

.popular_waku p {
	font-size: 14px;
}


.button_box {
	text-align: center;
}

.submit {
	width: 100%;
}

input#slider1, input#slider2, input#slider3 {
    width: 45%;
	margin: 3px auto;
}

button#decrease1,button#decrease2,button#increase1,button#increase2 {
	border: solid 1px #80808040;
	width: 28px;
	height: 28px;
	padding: 0px;
	border-radius: 5px;
	background: #fff;
	box-shadow: 0 1px 0 rgb(0 0 0 / 12%);
	font-size: 18px;
}

/*---- 矢印表示　---*/
.arrow {
    width: 0;
    margin: 10px auto; 
    border-style: solid;
    /* 左右を 150px から 100px 程度に小さくする、または vw を使う */
    border-width: 30px 100px 0 100px; 
    border-color: #6380e1 transparent transparent transparent;
    margin-top: 15px;
    margin-bottom: 15px;
    animation: flash 1s infinite;
    animation-direction: alternate;
    animation-play-state: running;
}

/* さらに念押しで、画面幅が狭いスマホ用の設定を追加 */
@media screen and (max-width: 375px) {
    .arrow {
        border-width: 20px 80px 0 80px; /* もっと思い切って小さくする */
    }
}

.card {
	width: 100%;
	background-color: #f3f6022b;
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid #cbc5c5;
	box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .12), 0 1px 5px 0 rgba(0, 0, 0, .2);
	margin: 5px auto;
	box-sizing: border-box;
}
@media (max-width: 600px) {
.card {
	width: 95%;
}
}
.header {
	background-color: #f9fafb;
	text-align: center;
	font-weight: 700;
	color: #1f2937;
}
.card-divider {
	height: 2px;
	background-color: #cbd5e1;
	width: 100%;
}
.content {
display: flex;
justify-content: center;
align-items: center;
}

@media (min-width: 601px) {
.content {
min-height: 65px;
}
}
/*---注釈アコーディオン---*/
.cp_box *, .cp_box *:before, .cp_box *:after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
.cp_box {
	position: relative;
}
.cp_box label {
	position: absolute;
	z-index: 1;
	bottom: 0;
	width: 100%;
	height: 140px; /* グラデーションの高さ */
	cursor: pointer;
	text-align: center;
	background: linear-gradient(to bottom, rgba(250, 252, 252, 0) 0%, rgba(250, 252, 252, 0.95) 70%);
}
.cp_box input:checked + label {
	background: inherit; /* 開いた時にグラデーションを消す */
}
.cp_box label:after {
	line-height: 2rem;
	font-size: 14px;
	position: absolute;
	z-index: 2;
	bottom: 20px;
	width:7rem;
	content: '続きを読む';
	transform: translate(-50%, 0);
	color: #ffffff;
	border-radius: 20px;
	background-color: #9E9E9E;
}
.cp_box input {
	display: none;
}
.cp_box .cp_container {
	overflow: hidden;
	height: 150px; /* 開く前に見えている部分の高さ */
	transition: all 0.5s;
}
.cp_box input:checked + label {
	/* display: none ; 閉じるボタンを消す場合解放 */
}
.cp_box input:checked + label:after {
	content: '閉じる';
}
.cp_box input:checked ~ .cp_container {
	height: auto;
	padding-bottom: 55px; /* 閉じるボタンのbottomからの位置 */
	transition: all 0.5s;
}
body {
	font-family: 'Inter', 'Noto Sans JP', sans-serif;
	background-color: #f5faff;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.ranking-launch-message {
	text-align: center;
	font-weight: 900;
	font-size: 1.3rem;
	color: #ffffff;
	background: linear-gradient(135deg, #1e40af, #3b82f6);
	padding: 10px;
	border-radius: 6px;
	margin-bottom: 10px;
}

.recommendation-box {
	background-color: #ffffff;
	border-radius: 16px;
	border: 4px solid rgba(34, 85, 164, 0.3);
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
	text-align: center;
	padding: 0.5rem;
	max-width: 44rem;
	width: 100%;
	margin: auto;
}

.section-title {
	font-size: 28px;
	font-weight: bold;
	color: #001E4B;
	border-bottom: 4px solid rgba(34, 85, 164, 0.5);
	padding-bottom: 10px;
	display: inline-block;
}
@media (max-width: 600px) {
    .section-title {
        font-size: 24px;
    }
}



.card-img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	box-shadow: 0 4px 6px rgba(0,0,0,0.3);
	display: block;
}

.main-desc {
	font-size: 18px;
	font-weight: bold;
	color: #1f2937;
}

.highlight-box {
	display: inline-block;
	background-color: #fffbeb;
	border-left: 5px solid #d97706;
	color: #92400e;
	padding: 16px;
	margin: 10px;
	border-radius: 6px;
	box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
	text-align: left;
}
.criteria-wrapper {
		max-width: 1024px;
		margin: 0.5rem auto;
		padding: 15px;
		background-color: #ffffff;
		border-radius: 1.5rem;
		box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
		border: 1px solid #bfdbfe;
		box-sizing: border-box;
}
/*イントロ*/
.intro01 {
	margin: 5px;
	font-weight: bold;
	font-size: 17px;
	text-align: center;
}

@media screen and (max-width: 479px) {
.intro01 {
	font-size: 16px;
}
}
.point-list
Specificity: (0,1,0)
 {
	padding: 10px;
	display: flex;
	gap: 5px;
	flex-direction: column;
	align-content: center;
}
.point-list p {
	font-size: 1rem;
	color: #111827;
	line-height: 1.625;
	text-align: left;
}
@media (min-width: 768px) {
	.point-list p {
	text-align: center;
}

.page-style {
    align-items: center;
    justify-content: center;
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    width: 95%;
    margin-left: auto;
    margin-right: auto;
}
.text_verysmall_mitsubishi {
    color: black;
    margin: 5px;
    background: #f1f1f1;
    border: 1px solid #e1e1e1;
    border-radius: 4px;
    font-size: 10px;
}


}
