/* ============================================================
   基本・グローバル
   ============================================================ */
html {
	font-family: "MS Pゴシック", sans-serif;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
}

body {
	color: #333;
	font-size: 14px;
	background-color: #FFF;
	line-height: 1.5;
	margin: 0;
}

img, video {
	max-width: 100%;
	height: auto;
}

a {
	position: relative;
	color: #4773BA;
	text-decoration: none;
	word-break: break-all;
}

h2 {
	margin: 0;
	color: #1E90FF;
	font-size: 18px;
}

h2.search_headline {
	margin: 16px 0 -4px 16px;
	font-size: 13px;
	color: #333;
	background: linear-gradient(transparent 60%, #FFD5EC 70%);
    width: 224px;
}

h3 {
	font-size: 16.5px;
	font-weight: 600;
	color: #333;
	text-align: left;
	margin-bottom: 4px;
}

span.red {
	color: red;
	font-weight: bold;
}

span.underline {
	background: linear-gradient(transparent 70%, #FFFF00 70%);
	font-weight: bold;
}

span.eighteen {
	color: #777;
	font-size: 9px;
	display: inline-block;
	font-weight: 300;
	margin-left: 6px;
	border: 0.7px solid #AAA;
	border-radius: 4px;
	padding: 1px 4px;
}

p.pr {
    margin: -32px 4px 0 0;
    text-align: right;
    z-index: 9999;
    position: relative;
}

span.pr {
    display: inline-block;
    margin-top: 8px;
    padding: 0 5px;
    background-color: #FFF;
    border-radius: 4px;
    color: #c95555;
    font-size: 10px;
    text-align: right;
    font-weight: 600;
    border: 0.5px solid #c95555;
}

p.time_post {
	font-size: 12px;
	text-align: left;
	padding: 0 4px 0 8px;
	margin-top: 0;
	color: #333;
	float: left;
}


/* ============================================================
   ヘッダー
   ============================================================ */
div.header {
	text-align: center;
	width: 100%;
	background-color: #FFF;
}

div.header_container {
	display: inline-block;
	width: 100%;
	margin-bottom: -12px;
}

img.header_sp {
	width: auto;
	height: 26px;
	padding: 0;
	margin: -4px 0;
}


/* ============================================================
   フッター
   ============================================================ */
footer {
	font-size: 12px;
	display: block;
	clear: both;
	background: #222;
	color: #fff;
	position: relative;
	text-align: center;
	padding: 32px 0;
	line-height: 24px;
}

footer a {
	text-decoration: underline;
}


/* ============================================================
   FVテキストエリア
   ============================================================ */
div.fv_text_area {
	margin: 0 16px 16px 16px;
}


/* ============================================================
   検索エリア
   ============================================================ */
.search_section {
	margin: 0 16px 8px 16px;
	text-align: left;
	display: inline-block;
}

.search_section table {
	font-size: 11px;
	table-layout: fixed;
	width: 100%;
	margin: 8px auto;
	border-spacing: 10px;
	background-color: #FFF9F1;
	border-radius: 8px;
	border: 1px solid #D9D9D9;
}

.search_section th {
	font-weight: 600;
	font-size: 12px;
	padding-top: 6px;
}

.search_section th span {
	color: #EFA1A5;
	margin-right: 8px;
}

.search_section td {
	border-radius: 8px;
	border: none;
	padding: 0;
}

.search_section label {
	font-size: 12px;
	display: block;
	height: 34px;
}

.search_section label span {
	display: flex !important;
	align-items: center;
	justify-content: flex-start;
	position: relative;
	padding: 8px 0 8px 6px;
	border-radius: 5px;
	background-color: #FFF;
	width: 94%;
	font-weight: 400;
	font-size: 10px;
	border: 0.5px solid #D9D9D9;
	max-height: 18px;
}

.search_section label span::before {
	content: '';
	display: block;
	width: 8px;
	height: 8px;
	border: 1px solid #999;
	background-color: #fff;
	border-radius: 2px;
	margin-right: 6px;
	flex-shrink: 0;
}

.search_section label input[type="checkbox"] {
	display: none;
}

.search_section label input[type="checkbox"]:checked + span {
	background-color: #f7dcdc;
}

.search_section label input:checked + span::before {
	content: '✓';
	color: #fff;
	background-color: #777;
	border-color: #777;
	font-size: 8px;
	line-height: 8px;
	text-align: center;
}

.search_section button {
	border: none;
	font-size: 14px;
	display: block;
	border-radius: 8px;
	background-color: #e98787;
	margin: 0 auto 4px auto;
	padding: 12px 48px 10px 48px;
	width: 96%;
	text-align: center;
	font-weight: 600;
	letter-spacing: 1.0px;
	color: #FFF;
}

div.search_item {
	padding: 16px;
	margin-bottom: 16px;
	border-bottom: 4px solid #DCDCDC;
}

span.search_items {
	margin: 4px;
	background-color: #bdffa2;
	display: inline-block;
	padding: 8px;
	border-radius: 5px;
	text-align: center;
	font-weight: 600;
	font-size: 12px;
	border: 0.5px solid #D9D9D9;
}


/* ============================================================
   ランキングエリア
   ============================================================ */
div.ranking_area {
	counter-reset: rank;
}

div.ranking_item_extra {
	padding: 16px;
	margin-bottom: 16px;
	border-bottom: 4px solid #DCDCDC;
}

div.ranking_item {
	padding: 16px;
	margin-bottom: 16px;
	border-bottom: 4px solid #DCDCDC;
}

div.ranking_item:before {
	counter-increment: rank;
	content: counter(rank);
	position: absolute;
	margin-top: -12px;
	margin-left: -12px;
	display: block;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background-color: #FF9933;
	font-size: 17px;
	color: #fff;
	line-height: 1.8;
	text-align: center;
	z-index: 99;
}

.ranking_area > div.ranking_item:nth-of-type(1)::before {
	background: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);
}

.ranking_area > div.ranking_item:nth-of-type(2)::before {
	background: linear-gradient(45deg, #757575 0%, #9E9E9E 45%, #E8E8E8 70%, #9E9E9E 85%, #757575 90% 100%);
}

.ranking_area > div.ranking_item:nth-of-type(3)::before {
	background: linear-gradient(45deg, #815a2b 0%, #815a2b 45%, #CC6600 70%, #993300 85%, #815a2b 90% 100%);
}

div.icon_block {
	float: left;
}

img.icon {
	width: 80px;
	height: 80px;
	margin-right: 12px;
	margin-bottom: 16px;
	box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .3), 0 1px 3px 1px rgba(60, 64, 67, .15);
	border-radius: 18px;
}

img.popular_badge_ranking {
	width: 40px;
	margin-top: -18px;
	margin-left: -40px;
	position: absolute;
	z-index: 999;
	animation: scalePulse 0.7s infinite alternate;
}

@keyframes scalePulse {
	0%   { transform: scale(1); }
	50%  { transform: scale(0.8); }
	100% { transform: scale(1.1); }
}

img.star {
	width: 88px;
	margin-right: 4px;
	margin-top: 2px;
	float: left;
}

div.star_point {
	font-size: 11px;
	margin-top: 6px;
}

div.tag_block {
	font-size: 10.5px;
	margin-left: 92px;
	min-height: 36px;
}

div.tag_block span {
	display: inline-block;
	font-size: 10px;
	margin: 4px 2px 0 2px;
	color: #333;
	background-color: #E6FFE9;
	padding: 2px 4px;
	border-radius: 4px;
}

img.main, video.main {
	box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .3), 0 1px 3px 1px rgba(60, 64, 67, .15);
	border-radius: 8px;
	margin: 4px 0;
}

div.point {
	background-color: #ffa337;
	border: solid 2px #ffa337;
	border-top-left-radius: 12px;
	border-top-right-radius: 12px;
	font-size: 14px;
	font-weight: 600;
	color: #FFF;
	text-align: center;
	margin-top: 8px;
	padding: 2px 0 0 0;
}

div.point_inline {
	position: relative;
	border: solid 2px #ffa337;
	line-height: 1.6;
	padding: 0.4em 0.5em;
	margin-bottom: 16px;
	border-bottom-left-radius: 12px;
	border-bottom-right-radius: 12px;
	text-align: left;
}

div.point_inline p {
	font-weight: 600;
	font-size: 14px;
}

div.description {
	margin-top: 8px;
}

div.review_section {
	margin: 16px 0;
	background: #FDE8E5;
	padding: 12px 0 6px 0;
	border-radius: 12px;
}

div.review_detail {
	padding: 0px 16px;
	margin: 4px 0px;
}

div.review_detail img {
	width: 30px;
	height: 30px;
	margin-right: 8px;
	border-radius: 50px;
	float: left;
}

.review_detail h4 {
	display: inline-block;
	font-size: 13px;
	margin: 4px 4px 4px 0;
}

.review_detail p {
	margin-top: 4px;
	font-size: 12px !important;
	display: inline-block;
}

div.sponsored {
	text-align: center;
	color: #999999;
	font-weight: 300;
	font-size: 12px;
	padding: 0px 0 12px 0;
}

img.wp_img_inread_bottom {
	margin: 8px auto 16px auto;
}


/* ============================================================
   CTA
   ============================================================ */
@keyframes cta_animation {
	0%, 16%, 32%, 100% {
		box-shadow: 0 3px 0 #b31d1d;
		top: 0;
	}
	8%, 24% {
		box-shadow: 0 0 0 #b31d1d;
		top: 3px;
	}
}

@keyframes cta_effect {
	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;
	}
}

div.cta_block {
	margin: 16px 0;
	text-align: center;
}

div.cta_upper {
	font-weight: 600;
	text-align: center;
	margin-bottom: 4px;
	color: blue;
}

div.cta_normal {
	font-size: 20px;
	display: inline-block;
	text-align: center;
	font-weight: 600;
	width: 100%;
	padding: 16px 0;
	text-decoration: none;
	position: relative;
	background-color: #ff2727;
	border-radius: 40px;
	overflow: hidden;
	color: #FFF;
	animation: cta_animation 2.5s infinite !important;
}

div.cta_normal::before {
	position: absolute;
	content: '';
	display: inline-block;
	top: -180px;
	left: 0;
	width: 30px;
	height: 100%;
	background-color: #fff;
	animation: cta_effect 3s ease-in-out infinite;
}

div.cta_min {
	text-align: center;
	background-color: #FF3333;
	float: right;
	color: #FFF;
	border-radius: 20px;
	font-size: 12px;
	padding: 8px 16px;
	font-weight: 600;
	letter-spacing: 1.0px;
	margin-top: -46px;
	position: relative;
	display: inline-block;
	overflow: hidden;
	animation: cta_animation 2.5s infinite !important;
}

div.cta_min::before {
	position: absolute;
	content: '';
	display: inline-block;
	top: -180px;
	left: 0;
	width: 30px;
	height: 100%;
	background-color: #fff;
}

div.cta_os_text {
	font-size: 12px;
}

div.r18_normal {
	font-size: 11px;
	text-align: center;
	margin-top: 2px;
}


/* ============================================================
   矢印アイコン
   ============================================================ */
.arrow {
	position: relative;
	display: block;
	vertical-align: middle;
	margin: 8px auto;
	padding: 0 0 0 22px;
}

.arrow::before,
.arrow::after {
	position: absolute;
	top: 2.5px;
	bottom: 0;
	left: 0;
	content: "";
	vertical-align: middle;
}

.arrow_point::before {
	width: 18px;
	height: 18px;
	-webkit-border-radius: 50%;
	border-radius: 50%;
	background: #ff6a6a;
	margin-top: 0;
}

.arrow_point::after {
	top: 8px;
	left: 4px;
	width: 5px;
	height: 5px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}


/* ============================================================
   TOP3エリア
   ============================================================ */
div.top3_section {
	margin: 16px 8px 32px 8px;
}

div.top3_section_meta {
	counter-reset: rank;
	margin-bottom: 16px;
}

div.top3_headline {
	background-color: #FFF;
	margin: 16px 0 8px 0;
}

div.top3_item {
	background-color: #FFF;
	padding: 16px 8px 0 8px;
	min-height: 98px;
	border-bottom: 1px solid #DCDCDC;
}

div.top3_item_meta {
	background-color: #FFF1F1;
	padding: 16px 24px 0 24px;
	min-height: 98px;
	border-bottom: 1px solid #DCDCDC;
}

div.top3_item_meta:before {
	counter-increment: rank;
	content: counter(rank);
	position: absolute;
	margin-top: -12px;
	margin-left: -12px;
	display: block;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background-color: #FF9933;
	font-size: 17px;
	color: #fff;
	line-height: 1.8;
	text-align: center;
	z-index: 99;
}

div.top3_item_meta:nth-of-type(1)::before {
	background: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);
}

div.top3_item_meta:nth-of-type(2)::before {
	background: linear-gradient(45deg, #757575 0%, #9E9E9E 45%, #E8E8E8 70%, #9E9E9E 85%, #757575 90% 100%);
}

div.top3_item_meta:nth-of-type(3)::before {
	background: linear-gradient(45deg, #815a2b 0%, #815a2b 45%, #CC6600 70%, #993300 85%, #815a2b 90% 100%);
}

img.rank {
	width: 40px;
	height: 40px;
	margin: 16px 8px -16px -10px;
	float: left;
}

img.icon_top3 {
	width: 74px;
	height: 74px;
	float: left;
	margin: 2px 12px 16px 0;
	box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .3), 0 1px 3px 1px rgba(60, 64, 67, .15);
	border-radius: 18px;
}

div.summary {
	margin: -8px 0 0 128px;
	height: 46px;
}

div.summary p {
	font-size: 11px;
	color: #666;
	line-height: 1.2;
}

div.summary_meta {
    margin: -8px 0 0 88px;
    height: 46px;
}

div.summary_meta p {
	font-size: 11px;
	color: #666;
	line-height: 1.2;
	margin-top: 12px;
}


/* ============================================================
   アンケートエリア
   ============================================================ */
div.survey_section {
	margin: 16px 16px 32px 16px;
}


/* ============================================================
   1位再表示エリア
   ============================================================ */
div.redisplay_area {
	margin-bottom: 16px;
}

div.redisplay_item {
	padding: 16px;
	margin-bottom: 16px;
	border-bottom: 4px solid #DCDCDC;
}


/* ============================================================
   ページトップへ戻るボタン
   ============================================================ */
.back-to-top-btn {
	width: 82%;
	text-align: center;
	margin: 32px auto 32px auto;
	display: grid;
}

#back-to-top-btn {
	padding: 8px 40px;
	background-color: #333;
	color: #fff;
	text-align: center;
	line-height: 40px;
	border-radius: 5px;
	font-size: 14px;
}


/* ============================================================
   メディアクエリ
   ============================================================ */
@-ms-viewport { width: device-width; }
@viewport     { width: device-width; }

@media screen and (max-width: 743px) {
	div.header_container {
		padding: 10px 0 4px 0;
		margin-bottom: 0;
	}
}

@media screen and (min-width: 744px) {
	div.container {
		max-width: 393px;
		margin: 0 auto;
	}
	div.header {
		background-color: #FFF;
	}
	div.header_container {
		padding: 8px 0;
		margin-top: 4px;
	}
}

@media screen and (min-width: 1200px) {
	div.container {
		max-width: 393px;
		margin: 0 auto;
	}
	div.header {
		padding-left: 0;
		text-align: center;
	}
}