@charset "UTF-8";

/* ========================================================
ベース設定
=========================================================*/
:root {
	/* カラー */
	--Text: #2A2A2A;
	--Text_blue: #1A0DAB;
	--Main: #6BD1CE;
	--Sub: #DFF5F4;
	--Accent: #D40000;
	--Back: #F6F6F6;
	--Back_strong: #E7F1F7;
	--CTA: #f75e2f;
	--Pink: #eb446c;
	--Light_gray :#f4f4f4;
	--Dark_gray :#969696;;
	/* 文字サイズ */
	--FontSizeSP: 10px;
	/* 375px 〜 768px */
	--FontSizeSP2: 4.2666666667vw;
	/* 〜　374px */
}

@font-face {
	font-family: "Noto Sans JP";
	font-style: normal;
	font-weight: 700;
	src: url("../fonts/Noto_Sans_JP_Bold.woff") format("woff");
	font-display: swap;
}

@font-face {
	font-family: "Noto Sans JP";
	font-style: normal;
	font-weight: 500;
	src: url("../fonts/Noto_Sans_JP_Medium.woff") format("woff");
	font-display: swap;
}

@font-face {
	font-family: "Noto Sans JP";
	font-style: normal;
	font-weight: 400;
	src: url("../fonts/Noto_Sans_JP_Regular.woff") format("woff");
	font-display: swap;
}

@font-face {
	font-family: "Zen Maru";
	font-style: normal;
	font-weight: 400;
	src: url("../fonts/Zen_Maru_Medium.woff") format("woff");
	font-display: swap;
}

@font-face {
	font-family: "Zen Maru";
	font-style: bold;
	font-weight: 700;
	src: url("../fonts/Zen_Maru_Bold.woff") format("woff");
	font-display: swap;
}

html {
	font-family: "Noto Sans JP";
	line-height: 1.5;
	color: var(--Text);
	font-size: var(--FontSizeSP);
}

body {
	font-family: "Noto Sans JP";
	font-size: 1.5rem;
	background-color: #fff;
	color: var(--Text);
	padding: 0;
	margin: 0;
	line-height: 1.5;
	box-sizing: border-box;
	word-break: break-word;
	/* break-wordは非推奨のため、word-breakを使用 */
	font-feature-settings: "palt";
}

.forPC {
	display: none;
}

.forPC-inline {
	display: none;
}

.forSP {
	display: block;
}

a {
	font-weight: bold;
	text-decoration: underline;
	color: var(--Text_blue);
	transition: all ease 0.3s;
}

a:hover {
	opacity: 0.6;
	text-decoration: none;
}

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


/* ========================================================
ステマ対策
=========================================================*/

.adTxt {
	text-align: right;
	max-width: 100%;
	padding: 2px 6px;
	/* 左右余白 LPに合わせて調整 */
	margin: 4px auto 6px;
	position: absolute;
	content: "";
	right: 0;
	bottom: 6px;
}

.result_page .adTxt {
	padding-top: 4px;
}

.adTxt span {
	font-size: 14px;
	font-weight: bold;
	border: 1px solid var(--Text);
	/* 枠色 変数名がTextでない場合は変更 */
	padding: 2px 14px;
	background-color: #fff;
}

/* ========================================================
共通
=========================================================*/
.accent{
	color: var(--CTA);
}
.bold {
	font-weight: bold;
}

.line-through {
	text-decoration: line-through;
}
.dashed_bottom {
	border-bottom: dashed 1px var(--CTA);
}

/* ========================================================
ヘッダー
=========================================================*/
.header {
	width: 100%;
	position: relative;
}
/* ========================================================
SECTION TYPE
=========================================================*/
.type__wrap{
	width: 100%;
	overflow-x: scroll;
}
.type__table{
	width: 486px;
	border: solid 1px #000;
	border-collapse: collapse;
}

.type__table thead tr:first-of-type th{
	background-color: var(--Main);
	color: #fff;
	padding: 4px;
	width: calc(100% / 3);
}

.type__table thead tr:first-of-type th + th{
	border-left: solid 1px #000;
}

.type__table thead tr:first-of-type th:first-of-type{
	width: 7%;
	position: sticky;
	left: 0;
	background-color: var(--Main);
}

.type__table thead tr:first-of-type th:nth-of-type(2){
	width: 17%;
}

.type__table tbody tr th:first-of-type{
	position: sticky;
	left: 0;
	border-right: solid 1px #000;
	border-bottom: solid 1px #000;
	background-color: #fff;
	padding: 6px;
}

.type__table tbody tr:first-of-type th,
.type__table tbody tr:first-of-type td{
	background-color: var(--Sub);
}


.type__table tbody tr th::not(first-of-type){
	border-top: solid 1px #000;
}

.type__table tbody tr td + th,
.type__table tbody tr th + td,
.type__table tbody tr td + td,
.type__table tbody tr:first-of-type th:first-of-type{
	border-top: solid 1px #000;
}

.type__table tbody tr th + td{
	border-right: solid 1px #000;
}

.type__table tbody tr td{
	padding: 6px;
}

.type__logo__wrap{
	width: 80px;
	height: 80px;
	border: solid 1px #000;
	border-radius: 10px;
	margin-inline: auto;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #fff;
}
.type__logo__wrap > a{
	display: contents;
}
.type__logo{
	width: 94%;
}

.type__link{
    line-height: 1.3;
    display: block;
    margin-top: 6px;
}

/* ========================================================
SECTION IDEAL
=========================================================*/
section.ideal{
	margin-top: 16px;
	box-sizing: border-box;
}
.ideal__small{
	display: block;
    text-align: right;
    font-size: 10px;
    margin-top: -12px;
    padding-right: 6px;
}
.ideal__wrap{
	width: 100%;
	margin-top: 36px;
}
.ideal__container{
	width: 100%;
	position: relative;
}
.ideal__box{
	border: solid 1px #000;
    border-radius: 14px;
	aspect-ratio: 4/3;
}
.ideal__box.kigu{
	width: 100%;
	height: 100%;
	position: relative;
	box-sizing: border-box;
}
.ideal__box.kigu::before{
	position: absolute;
    content: "";
    transform: translateX(-50%);
    background-color: #fff;
    height: 3px;
    width: 29%;
    top: -1px;
    left: 49%;
}
.ideal__box__ttl{
	font-size: 24px;
}
.ideal__box.kigu .ideal__box__ttl{
	position: absolute;
	content: "";
    top: -10%;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	justify-content: center;
	align-items: center;
}
.ideal__box.ai{
	position: absolute;
	content: "";
	top: 50%;
	left: 50%;
	transform: translateX(-50%) translateY(-50%);
	width: 51%;
    height: 42%;
	background-color: var(--Sub);
	border: solid 3px var(--Pink);
}
.ideal__box.ai::before{
	position: absolute;
    content: "";
    transform: translateX(-50%);
    background-color: var(--Sub);
    height: 4px;
    width: 47%;
    top: -3px;
    left: 49%;
}
.ideal__box.ai .ideal__box__ttl{
	position: absolute;
	content: "";
	top: -27%;
    left: 53%;
	transform: translateX(-50%);
	font-size: 32px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.ideal__ico{
	width: 50px;
	height: 50px;
}

.ideal__logo__wrap{
	border: solid 1px #000;
    aspect-ratio: 7 / 4;
	width: 26%;
	height: auto;
    display: flex;
    align-items: center;
	justify-content: center;
    padding: 2px;
	background-color: #fff;
	z-index: 5;
}
.ideal__box.ai .ideal__logo__wrap{
    width: 64%;
}

.ideal__box.kigu .ideal__logo__wrap:nth-of-type(1){
	position: absolute;
	content: "";
	top: 14%;
    left: 19%;
	transform: translateX(-50%) translateY(-50%);
}

.ideal__box.kigu .ideal__logo__wrap:nth-of-type(2){
	position: absolute;
	content: "";
    top: 14%;
    right: -9%;
	transform: translateX(-50%) translateY(-50%);
}
.ideal__box.kigu .ideal__logo__wrap:nth-of-type(3){
	position: absolute;
	content: "";
    bottom: -8.5%;
    left: 16%;
	transform: translateX(-50%) translateY(-50%);
}
.ideal__box.kigu .ideal__logo__wrap:nth-of-type(4){
	position: absolute;
	content: "";
    bottom: -8.5%;
    right: 21.6%;
	transform: translateX(-50%) translateY(-50%);
}
.ideal__box.kigu .ideal__logo__wrap:nth-of-type(5){
	position: absolute;
	content: "";
	bottom: -8.5%;
    right: -12%;
	transform: translateX(-50%) translateY(-50%);
}
.ideal__box.ai .ideal__logo__wrap:nth-of-type(1){
    position: absolute;
    content: "";
	top: 50%;
    right: -17%;
    transform: translateX(-50%) translateY(-50%);
}
.ideal__wrap p {
    margin: 6px auto 0;
    padding: 0 6px;
    font-size: 14px;
}

/* ========================================================
SECTION FORM
=========================================================*/

.form {
	margin-top: 28px;
}

.Refine_Search_Box_Ttl {
    text-align: center;
    font-weight: bold;
}

.Refine_Search_Box_Input {
	padding: 0px 20px 10px;
}

.Refine_Search_Box_Input dl{
	margin-top: 0;
}

.Refine_Search_conditions_Area:not(:first-of-type) {
	margin-top: 0px;
}

.condition_ttl {
	font-size: 14px;
	font-weight: bold;
}

.multi-available {
	font-size: 12px;
	font-weight: bold;
	color: #fff;
	background-color:var(--Main);
	padding: 2px 10px;
	border-radius: 80px;
	margin-left: 8px;
}

.nayami__list,
.futae__list,
.way__list,
.price__list,
.kodawari__list {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin-top: 8px;
	margin-left: 0;
}

input[type=checkbox],
input[type=radio] {
	display: none;
}

.radiobtn_text,
.checkbox_text {
	font-size: 14px;
	font-weight: bold;
	border-radius: 8px;
	border: solid 1px #c4c4c4;
	background-color: #fff;
	width: calc((100% - 71px)/2);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 12px 12px 12px 16px;
	position: relative;
}

.checkbox_text{
	width: calc((100% - 113px)/2);
}
.kodawari__list .checkbox_text{
	padding: 12px 12px 12px 36px;
}
.nayami__list .radiobtn_text:nth-of-type(1):before{
	position: absolute;
	content: "";
	background: url(../img/ico_maibotsu.svg);
	background-size: 100%;
	width: 40px;
	height: 40px;
	left: 5%;
}
.nayami__list .radiobtn_text:nth-of-type(2):before{
	position: absolute;
	content: "";
	background: url(../img/ico_sekkai.svg);

	background-size: 100%;
	width: 40px;
	height: 40px;
	left: 5%;
}
.futae__list .radiobtn_text:nth-of-type(1):before{
	position: absolute;
	content: "";
	background: url(../img/ico_suehiro.svg);
	background-size: 100%;
	width: 40px;
	height: 40px;
	left: 5%;
}
.futae__list .radiobtn_text:nth-of-type(2):before{
	position: absolute;
	content: "";
	background: url(../img/ico_heikou.svg);
	background-size: 100%;
	width: 40px;
	height: 40px;
	left: 5%;
}
.futae__list .radiobtn_text:nth-of-type(3):before{
	position: absolute;
	content: "";
	background: url(../img/ico_mix.svg);
	background-size: 100%;
	width: 40px;
	height: 40px;
	left: 5%;
}
.kodawari__list .checkbox_text:nth-of-type(6)::before{
	position: absolute;
	content: "";
	background: url(../img/kodawari_gakuwai.svg);
	background-size: 100%;
	width: 32px;
	height: 32px;
	left: 3%;
}
.kodawari__list .checkbox_text:nth-of-type(1)::before{
	position: absolute;
	content: "";
	background: url(../img/ico_simulation.svg);
	background-size: 100%;
	width: 32px;
	height: 32px;
	left: 3%;
}
.kodawari__list .checkbox_text:nth-of-type(2)::before{
	position: absolute;
	content: "";
	background: url(../img/ico_design.svg);
	background-size: 100%;
	width: 32px;
	height: 32px;
	left: 3%;
}
.kodawari__list .checkbox_text:nth-of-type(3)::before{
	position: absolute;
	content: "";
	background: url(../img/ico_time.svg);
	background-size: 100%;
	width: 32px;
	height: 32px;
	left: 3%;
}
.kodawari__list .checkbox_text:nth-of-type(4)::before{
	position: absolute;
	content: "";
	background: url(../img/ico_doctor.svg);
	background-size: 100%;
	width: 32px;
	height: 32px;
	left: 3%;
}
.kodawari__list .checkbox_text:nth-of-type(5)::before{
	position: absolute;
	content: "";
	background: url(../img/kodawari_doctor.svg);
	background-size: 100%;
	width: 32px;
	height: 32px;
	left: 3%;
}
.price__list .checkbox_text {
	width: calc((100% - 9px)/2);
	padding: 12px 12px 12px 16px;
	display: flex;
}

.multi-item {
	width: calc((100% - 9px)/2);
	margin: 0;
}

.radiobtn_text.on,
.radiobtn_text.on01,
.radiobtn_text.on02,
.checkbox_text.selected {
	border: solid 2px var(--Main);
    position: relative;
}

.checkbox {
	border-radius: 6px;
}

.price__list .radiobtn_text.on01 .radiobox::before {
	position: absolute;
	content: "";
	background: url(../img/checkbox.png)no-repeat center center;
	background-size: 34px;
	width: 34px;
	height: 34px;
	left: -6px;
	top: -2.5px;
}

.frequency {
	display: flex;
	flex-wrap: wrap;
}

.medicine,
.kodawari {
	position: relative;
}

.checkbox_text::before {
	position: absolute;
	content: "";
	width: 24px;
	height: 24px;
	display: block;
	left: 46px;
}

.price__list .checkbox_text:nth-of-type(1)::before {
	background: url(../img/ico_capsule.png)no-repeat center;
	background-size: 24px;
}

.price__list .checkbox_text:nth-of-type(2)::before {
	background: url(../img/ico_kanpo.png)no-repeat center;
	background-size: 24px;
}

.price__list .checkbox_text:nth-of-type(3)::before {
	background: url(../img/ico_question.png)no-repeat center;
	background-size: 24px;
}

.checkbox_text.selected {
	position: relative;
}

.nayami__list .checkbox_text:nth-of-type(3).selected::after,
.nayami__list .checkbox_text:nth-of-type(4).selected::after {
	top: 57%;
}

.Refine_Search_submit {
	padding: 0 20px;
}

.Refine_Search_cta input {
	background-color: transparent;
	border: none;
	color: #fff;
	font-weight: bold;
	font-size: 18px;
	padding: 20px 26px;
	width: 100%;
}

.Refine_Search_cta .cta-btn {
	border-radius: 78px;
	font-size: 18px;
	/* padding: 20px 26px; */
	margin-top: 32px;
	position: relative;
	position: relative;
}

.Refine_Search_cta .cta-btn::after {
	background: url(../img/ico_arrow.svg)no-repeat center;
	background-size: 24px;
	position: absolute;
	content: "";
	width: 24px;
	height: 24px;
	right: 20px;
}

.Refine_Search_cta input,
.Refine_Search_cta .noSubmit,
.Refine_Search_submit input[type="submit"] {
	display: block;
    background-color: #23a5b1;
    text-decoration: none;
    color: #fff;
    font-weight: bold;
    justify-content: center;
    align-items: center;
    transition: all .3s;
    width: 100%;
    margin: 0px auto;
    line-height: 50px;
    border: none;
    border-radius: 10px;
    border-bottom: solid 3px #186f77;
    font-size: 17px;
    position: relative;
}
.Refine_Search_submit{
    padding: 0 20px;
    position: relative;
}
.Refine_Search_submit::before{
	position: absolute;
    content: "";
    width: 10px;
    height: 10px;
    border-bottom: solid 3px #fff;
    border-right: solid 3px #fff;
    right: 9%;
    transform: rotate(-45deg);
    top: 41%;
    z-index: 10;
}
#bigword {
	font-size: 14px;
    font-weight: bold;
    border-radius: 8px;
    border: solid 1px #c4c4c4;
	color: #000;
    background-color: #fff;
	height: 58px;
    position: relative;
	padding: 0 8px;
	width: 100%;
}
/* 地域選択 */
#smword {
	position: relative;
  }
#smword select {
	display: none;
	position: absolute;
	top: 0;
	font-size: 14px;
    font-weight: bold;
    border-radius: 8px;
    border: solid 1px #c4c4c4;
    background-color: #fff;
	height: 58px;
    position: relative;
	padding: 0 8px;
	width: 100%;
	color: #000;
  }
  #smword select.on {
	display: block;
  }
  #Refine_Search_Area .area_select {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
	margin-top: 4px;
	margin-left: 0;
}

/* ========================================================
SECTION COMPARISON
=========================================================*/
section.comparison{
	margin-top: 20px;
}
.comparison__wrap{
	width: 100%;
}
.comparison__table{
	width: 100%;
	border-collapse: collapse;
	border: solid 1px #000;
}
.comparison__table th{
	border-bottom: solid 1px #000;
}
.comparison__table thead th{
	color: #fff;
	padding: 14px 0;
	position: relative;
}
.comparison__table thead th.maibotsu{
	background-color: var(--Main);
}
.comparison__table thead th.sekkai{
	background-color: var(--Dark_gray);
}

.comparison__table thead th.maibotsu::before,
.comparison__table thead th.sekkai::before{
	position: absolute;
	content: "";
	right: 8%;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
}
.comparison__table thead th.maibotsu::before{
	background: url(../img/ico_maibotsu.svg)no-repeat center;
	background-size: 100%;
	width: 37px;
	height: 37px;
}
.comparison__table thead th.sekkai::before{
	background: url(../img/ico_sekkai.svg)no-repeat center;
	background-size: 100%;
	width: 37px;
	height: 37px;
}
.comparison__table thead th.maibotsu::after,
.comparison__table thead th.sekkai::after{
    position: absolute;
    content: "";
    background-color: #fff;
    border-radius: 50%;
    top: 50%;
	right: 8%;
    transform: translateY(-50%);
    width: 43px;
    height: 43px;
}

.comparison__table tbody th{
	font-size: 12px;
	width: 10%;
	height: 60px;
}
.comparison__table tbody td{
	font-size: 13px;
	width: calc(90% / 2);
}

.comparison__table tbody td:first-of-type{
	background-color: #dff5f4;
}

.comparison__table th+ th,
.comparison__table td + td,
.comparison__table th + td{
	border-left: solid 1px #000;
}

.comparison__table tr:not(:last-of-type) td{
	border-bottom: solid 1px #000;
}


/* ========================================================
ポジショニングマップ
=========================================================*/
section.map{
	margin-top: 20px;
}
.map__small{
    display: block;
    text-align: right;
    font-size: 10px;
    margin-top: -12px;
    padding-right: 6px;

}
.positioningMap {
    margin-top: 12px;
}
.positioningMap__top {
	padding: 0 20px;
}
.positioningMap__top .flex {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.positioningMap__top-subTtl {
	font-size: 1.4rem;
	font-weight: bold;
	text-align: center;
}
.positioningMap__top-notes {
	font-size: 1rem;
	text-align: right;
	margin-top: 2px;
}
.positioningMap__top-ttl {
	font-size: 1.6rem;
	font-weight: bold;
	color: #fff;
	line-height: 36px;
	text-align: center;
	background: var(--Main);
	border-bottom: 4px solid var(--Sub);
	height: 36px;
}
.positioningMap__inner {
	background: repeating-linear-gradient(90deg, var(--Back), var(--Back) 1px, transparent 1px, transparent 32px),
		repeating-linear-gradient(0deg, var(--Back), var(--Back) 1px, #fff 1px, #fff 32px);
	background-size: 32px 32px;
	background-position: 50% 50%;
	width: 100%;
	aspect-ratio: 3.3 / 3;
	position: relative;
}
.positioningMap__inner::before {
    content: "";
    display: inline-block;
    background: #fffac7;
    border-radius: 50%;
    width: 41%;
    aspect-ratio: 1 / 1;
    position: absolute;
    top: -4%;
    left: 55.5%;
}
.positioningMap__inner::after {
    content: "";
    display: inline-block;
    background: url(../img/positioningmap_bg.svg) no-repeat center / 100% 91%;
    width: 82%;
    height: 100%;
    position: absolute;
    top: 10%;
    left: 48.5%;
    transform: translateX(-50%);
}
.positioningMap__label,
.positioningMap__subLabel {
	position: absolute;
	z-index: 2;
}
.positioningMap__subLabel {
	font-size: 1.2rem;
	font-weight: bold;
	line-height: 1;
	top: -1%;
	left: 50%;
	transform: translateX(-50%);
}
.positioningMap__label-01{
	font-size: 1.6rem;
	font-weight: bold;
	color: #fff;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	border-radius: 50%;
	width: 32px;
	height: 32px;
}
.positioningMap__label-01 {
	background: var(--Main);
	top: 3.5%;
	left: 50%;
	transform: translateX(-50%);
}
/* .positioningMap__label-02 {
	background: var(--Grey);
	top: 89%;
	left: 50%;
	transform: translateX(-50%);
} */
.positioningMap__label-02 {
  font-size: 1.05rem;
  font-weight: bold;
  line-height: 1.17;
  color: #fff;
  text-align: center;
  display: inline-block;
  padding: 8px;
}
.positioningMap__label-03,
.positioningMap__label-04 {
	font-size: 1.2rem;
	font-weight: bold;
	line-height: 1.17;
	color: #000;
	text-align: center;
	display: inline-block;
	padding: 8px;
}
.positioningMap__label-02 {
  color: var(--Text);
  top: 53.8%;
  transform: translateY(-50%);
  right: 0.5%;
}
.positioningMap__label-03 {
    top: 63.8%;
    transform: translateY(-50%);
    right: 1px;
    text-align: center;
}
.positioningMap__label-04 {
	background: var(--Grey);
	top: 54.8%;
	transform: translateY(-50%);
	left: 20px;
}
.positioningMap__item-logo {
	width: auto;
	height: 32px;
	margin: 0 auto;
}
.positioningMap__item-02 .positioningMap__item-logo {
	height: 21px;
}

.positioningMap__item {
	display: inline-block;
	background: #fff;
	border: 1px solid #707F89;
	border-radius: 4px;
	box-shadow: 0 4px #707F89;
	padding: 6px 8px 0;
	position: absolute;
	z-index: 1;
}
a.positioningMap__item {
	text-decoration: none;
}
.positioningMap__item-catch {
	font-size: 1rem;
	/* margin: 6px 0 0; */
	color: var(--Text);
  text-align: center;
  font-weight: normal;
}

.positioningMap__item-01 .positioningMap__item-catch {
  font-weight: bold;
}
.positioningMap__item-02 .positioningMap__item-catch{
  margin-top: 4px;
}

.positioningMap__item-01 {
    padding: 6px 6px 0;
	z-index: 1;
	top: 13%;
    right: 13%;
}
.positioningMap__item-01 img {
	width: auto;
	height: 62px;
}
.positioningMap__item-01_tx{
    font-size: 12px;
    position: absolute;
    right: 9%;
    top: 2%;
	text-align: center;
}
.positioningMap__item-01_tx::before{
	position: absolute;
    content: "";
    width: 1px;
    height: 73%;
    background-color: #000;
    left: -4%;
    bottom: 0;
    transform: rotate(-25deg);
}
.positioningMap__item-01_tx::after{
	position: absolute;
	content: "";
	width: 1px;
    height: 73%;
	background-color: #000;
	right: -4%;
    bottom: 0;
    transform: rotate(25deg);
}
.positioningMap__item-02 {
	top: 67%;
    left: 53%;
}
.positioningMap__item-03 {
	left: 53%;
    top: 45%;
}
.positioningMap__item-04 {
    top: 40%;
    left: 24%;
}
.positioningMap__item-05 {
	left: 24%;
    bottom: 14%;
}

.positioningMap__item-link {
	display: block;
}
.map__chushaku{
  color: #939292;
  padding-left: 20px;
}
/* ========================================================
SECTION HIKAKU
=========================================================*/
section.hikaku{
	margin-top: 14px;
}
.section__hikaku__wrap{
	width: 100%;
}

.hikaku__table{
	width: 100%;
	border: solid 1px var(--Main);
	border-collapse: collapse;
}
.hikaku__table th{
	width: 14%;
	font-size: 12px;
}

.hikaku__table td{
	width: calc(86% / 3);
	font-size: 13px;
	text-align: center;
	padding: 8px 2px;
	line-height: 1.3;
}

.hikaku__table tr td:first-of-type {
    background-color: #fffac7;
}

.hikaku__table tr th + td,
.hikaku__table tr td + td{
	border-left: solid 1px var(--Main);
	border-bottom: solid 1px var(--Main);
}

.hikaku__table thead tr:nth-of-type(1) th,
.hikaku__table thead tr:nth-of-type(1) td{
	text-align: center;
}

.hikaku__table tr th{
	background-color: var(--Sub);
	border-top: solid 1px var(--Main);
}

.hikaku__name{
	line-height: 1.3;
    display: block;
}

.hikaku__name.single{
	height: 36px;
    line-height: 36px;
}

.hikaku__logo{
	height: 57px;
    width: 100%;
    object-fit: contain;
}

.hikaku__logo.tcb{
    width: 74%;
    object-fit: cover;
    display: block;
    margin-inline: auto;
}

.hikaku__eva{
	width: 30px;
	height: 30px;
	display: block;
    margin-inline: auto;
	margin-bottom: 4px;
}

.hikaku__eva.bad{
    width: 26px;
}

.hikaku__cta__btn{
	border-radius: 4px;
    margin: 0px auto;
	width: 94%;
    padding: 10px 0;
    font-size: 13px;
    position: relative;
	background-color: var(--CTA);
    text-decoration: none;
    color: #fff;
    font-weight: bold;
    transition: all .3s;
	text-align: center;
	display: block;
	border-bottom: solid 3px #b14321;
}

.hikaku__cta__btn::before {
	position: absolute;
    content: "";
    width: 5px;
    height: 5px;
    border-bottom: solid 2px #fff;
    border-right: solid 2px #fff;
    right: 7%;
    transform: rotate(-45deg);
    top: 15.5px;
}


/* ========================================================
SECTION RANKING
=========================================================*/
section.ranking{
	margin-top: 18px;
}
.ranking_wrap{
	padding: 0 10px;
}
.ranking_wrap>.ranking__box:first-of-type{
	background-color: #fffac7;
	margin-top: 12px;
}
.ranking__box:not(:first-of-type){
	margin-top: 34px;
}
.ranking__box{
	box-shadow: 0px 0px 1px 0px #000;
	padding: 14px;
}
.ranking__head__tx{
	font-size: 14px;
}

.ranking__head a{
	font-size: 20px;
}

.rank__bnr{
	margin-top: 10px;
	width: 100%;
}

.ranking__point__wrap{
	background-color: var(--Light_gray);
	padding: 16px 10px;
	font-size: 14px;
	margin-top: 10px;
}

.ranking__point__wrap ul{
	padding: 0;
	margin: 0;
}

.ranking__point__wrap ul li{
	list-style-type: none;
	position: relative;
	margin-left: 0;
	padding-left: 24px;
}

.ranking__point__wrap ul li:not(:first-of-type){
	margin-top: 4px;
}

.ranking__point__wrap ul li::before{
	position: absolute;
	content: "";
	background: url(../img/point_check_ico.svg)no-repeat center;
	background-size: 100%;
	width: 14px;
	height: 14px;
	top: 0;
	left: 0;
	transform: translateY(50%);
}

.ranking__table__wrap{
	width: 100%;
	margin-top: 16px;
}

.ranking__table{
	width: 100%;
	border-collapse: collapse;
	border: solid 1px var(--Main);
	background-color: #fff;
}

.ranking__table th{
	width: 12%;
	font-size: 14px;
}

.ranking__table td{
	width: calc(88% / 3);
	font-size: 14px;
	text-align: left;
	padding: 8px;
	line-height: 1.3;
	background-color: #fff;
}

.ranking__table td.remove_padding{
	padding: 0;
}

.ranking__table tr th + td,
.ranking__table tr td + td{
	border-left: solid 1px var(--Main);
	border-bottom: solid 1px var(--Main);
}

.ranking__table thead tr:nth-of-type(1) th,
.ranking__table thead tr:nth-of-type(1) td{
	text-align: center;
}

.ranking__table tr th{
	background-color: var(--Sub);
	border-top: solid 1px var(--Main);
	line-height: 1.3;
	padding: 4px 0;
}

.ranking__table dd{
}
.ranking__table dl dd{
	margin-left: 0;
	padding: 6px 8px;
}

.ranking__table dl dd:not(:last-of-type){
	border-bottom: solid 1px var(--Main);
}

.ranking__txt__wrap{
	margin-top: 16px;
	font-size: 14px;
}

.ranking__txt__wrap p{
	margin: 0;
}

.ranking__txt__wrap p:not(:first-of-type){
	margin-top: 8px;
}

.ranking__ano{
	font-size: 1rem;
    line-height: 1.7;
    margin-top: 8px;
    color: var(--Dark_gray);
}

.rank__cta__btn{
	border-radius: 4px;
	border-bottom: solid 3px #b14321;
	margin: 16px auto 0px;
	width: 100%;
    padding: 10px 0;
    font-size: 17px;
    position: relative;
	background-color: var(--CTA);
    text-decoration: none;
    color: #fff;
    font-weight: bold;
    transition: all .3s;
	text-align: center;
	display: block;
	line-height: 1.4;
}

.rank__cta__btn::before {
	position: absolute;
    content: "";
    width: 10px;
    height: 10px;
    border-bottom: solid 3px #fff;
    border-right: solid 3px #fff;
    right: 5%;
    transform: rotate(-45deg);
    top: 29px;
}

.official__link{
	text-align: right;
	margin-top: 10px;
}

.shop {
    padding: 15px 4px;
	margin-top: 20px;
	background: #dff6f4;
}
.shop__ttl {
    font-size: 16px;
}
.ttl--txt {
    font-size: 15px;
    font-weight: bold;
    text-align: center;
    margin-top: 0;
}
.ttl--txt span {
    border-bottom: 2px solid #6ad1ce;
    padding-bottom: 2px;
}
.bg--wh {
    background: #fff;
    border: 1px solid #000;
    position: relative;
    width: 100% - 3px;
    padding: 15px;
    margin-right: 3px;
    margin-bottom: 3px;
}
.bg--wh::before {
    content: "";
    display: inline-block;
    background: #000;
    width: 1px;
    height: calc(100% - 2px);
    position: absolute;
    right: -4px;
    bottom: -4px;
}
.bg--wh::after {
    content: "";
    display: inline-block;
    background: #000;
    width: calc(100% - 2px);
    height: 1px;
    position: absolute;
    right: -4px;
    bottom: -4px;
}
.shop__inner {
    font-size: 14px;
	padding: 10px 15px;
    margin-top: 16px;
}

.shop__inner>dl>div{
	margin-top: 8px;
}
.shop dt {
    font-weight: bold;
    border-bottom: 1px solid #000;
	margin-top: 10px;
}
.shop dd{
	margin-top: 4px;
	margin-left: 0px;
}
.shop dd a, .shop dd span {
    display: inline-block;
	font-weight: bold;
}


/* ========================================================
SECTION RANKING 4位以下
=========================================================*/
.ranking__aco .ranking__box .ranking__head-wrap::before{
	background: url(../img/osusume_ico04.svg)center;
	background-size: 50px;
}
.ranking__more-btn {
	font-size: 16px;
	font-weight: bold;
	color: var(--Main);
	border: solid 1px var(--Main);
	padding: 32px 0;
	text-align: center;
	background-color: #fff;
	border-radius: 78px;
	margin-top: 30px;
	position: relative;
}

.ranking__more-btn::before {
	position: absolute;
	content: "4位以下を見る";
	left: 50%;
	top: 50%;
	transform: translateX(-50%) translateY(-50%);
}

.ranking__more-btn.on::before {
	position: absolute;
	content: "4位以下を閉じる";
}

.ranking__more-btn::after {
	position: absolute;
	content: "";
	background: url(../img/ranking_aco_btn.svg)no-repeat center;
	background-size: 24px;
	width: 24px;
	height: 24px;
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
}

.ranking__more-btn.on::after {
	transform: rotate(180deg);
	top: 30%;
}

.ranking__aco {
	margin-top: 32px;
	display: none;
}

/* ========================================================
SECTION SUMMARY
=========================================================*/
section.summary{
	margin-top: 50px;
}

.summary__wrap{
	padding: 0 10px;
}

.summary__bnr{
	width: 100%;
}

.summary__txt{
	font-size: 14px;
}

.summary__cta__ttl{
	margin: 0;
	text-align: center;
}

.summary__cta__logo{
	width: 44%;
    margin-inline: auto;
    display: block;
}

.summary__cta__btn{
	border-radius: 4px;
	margin: 0px auto 0px;
	width: 100%;
    padding: 10px 0;
    font-size: 17px;
    position: relative;
	background-color: var(--CTA);
    text-decoration: none;
    color: #fff;
    font-weight: bold;
    transition: all .3s;
	text-align: center;
	display: block;
	line-height: 1.4;
	border-bottom: solid 3px #b14321;
}

.summary__cta__btn::before {
	position: absolute;
    content: "";
    width: 10px;
    height: 10px;
    border-bottom: solid 3px #fff;
    border-right: solid 3px #fff;
    right: 5%;
    transform: rotate(-45deg);
    top: 29px;
}
/* ========================================================
FOOTER
=========================================================*/

.footer {
	padding: 20px;
	background-color: #000;
	color: #fff;
	margin-top: 30px;
}
.footer a{
	color: #fff;
}

.txt-lg {
	font-size: 14px;
}

dl:not(:first-of-type) {
	margin-top: 24px;
}

.footer .aco-cont{
	margin: 0;
}

.txt-md {
	font-size: 14px;
	font-weight: bold;
	padding: 0;
	margin: 4px 0 0;
}

.txt-md li {
	list-style-type: none;
}

.txt-md li:not(:first-of-type){
	margin-top: 8px;
}

.footer__bottom .footer__links {
	margin-top: 24px;
	border-top: solid 1px #fff;
	padding-top: 24px;
	gap: 40px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.footer__bottom .footer__links ul {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	padding: 0;
}

.footer__bottom ul li{
	list-style: none;
}

.footer__bottom ul li span {
	padding-left: 15px;
	padding-right: 10px;
	color: #fff;
}

.footer__bottom .footer__links a {
	font-size: 14px;
	text-decoration: none;
}

.footer__copy {
	text-align: center;
	font-size: 10px;
	margin-top: 14px;
	color: #909090;
}


/* ========================================================
検索結果ページ
=========================================================*/
.result_page #CONTENTS {
	background-color: #fff;
}

#PANKUZU {
	padding: 13px 0;
}

.imgttl_searchresult {
	margin-top: 8px;
}

.contents.clearfix {
	margin-top: 34px;
	padding: 0 20px;
}

.searchConditions {
	border: solid 2px var(--Main);
	position: relative;
	text-align: center;
}

.searchConditions__ttl {
	font-size: 16px;
	color: var(--Text);
	font-weight: bold;
	text-align: center;
	background-color: #fff;
	display: inline;
	padding: 4px 8px;
	position: absolute;
	top: -16px;
	left: 50%;
	white-space: nowrap;
	transform: translateX(-50%);
}

.searchConditions__wrap {
	border-collapse: collapse;
	margin-top: 8px;
	text-align: left;
	padding: 14px 14px 20px;
	font-size: 16px;
	font-weight: bold;
}

.searchConditions__wrap dl {
	display: flex;
	gap: 10px;
	align-items: center;
	border-bottom: dashed 1px #CCC;
	padding-bottom: 10px;
}

.searchConditions__wrap dt {
	text-align: center;
	position: relative;
	padding-right: 10px;
	width: 32%;
	white-space: nowrap;
}

.searchConditions__wrap dt::after {
	position: absolute;
	content: " :";
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}

.searchConditions__wrap dd {
	/* margin-top: 4px; */
	width: 68%;
}

.Refine_Result_Count {
	font-size: 16px;
	font-weight: bold;
	color: #2a2a2a;
	text-align: center;
	margin-top: 24px;
}

.result__match__accent {
	color: var(--CTA);
	display: inline-block;
}

.result.ng-scope {
	margin-top: 40px;
	padding: 0 20px;
	position: relative;
}

.card__inner::after {
	position: absolute;
	content: "";
	background: url(../img/waveline.png)no-repeat center;
	background-size: 100vw 4px;
	width: 100vw;
	height: 4px;
	margin: 24px calc(50% - 50vw) 0;
	top: -44px;
	left: 0;
}

.card__rank__header p {
	font-size: 14px;
	color: #2a2a2a;
	font-weight: bold;
}

.noLink {
	display: block;
	margin-top: 8px;
}

.noLink a {
	font-size: 20px;
	font-weight: bold;
	text-decoration: underline;
}

.card__bnr-img.noLink {
	margin-top: 22px;
}

.result_page .ranking___point-wrap .result.ng-scope ::after {
	width: 0;
}

.result_page .ranking__box__table th {
	line-height: 1.4;
}

.result_page .ranking__box__table td {
	vertical-align: middle;
}

/* .result_page .ranking__cta {
	width: 100%;
} */

.result_page small {
	font-size: smaller;
}

.result_page .inner{
	margin-top: 60px;
}


/* ========================================================
症例コンテンツ
=========================================================*/
.shorei{
	margin-top: 30px;
}
.ranking_shorei_wrap{
	margin-top: 20px;
	text-align: center;
}
.ranking_shorei_top{
    text-align: center;
    font-size: 20px;
    font-weight: bold;
    padding: 6px 0px;
    background-color: var(--Main);
    color: #fff;
    margin: 0;
}
.sample-slider{
	width:100%;
	position: relative;
}
.slider-wrap{
    margin-top: 10px;
    position: relative;
    border: solid 1px #000;
	padding: 0 0px 10px;
}
.swiper-pagination-bullets.swiper-pagination-horizontal{
	bottom: 58px !important;
}
.swiper-slide{
	background-color: #fff;
	border-radius: 14px;
	box-sizing: border-box;
}
.case__sectioin-wrap{
	position: relative;
	border-radius: 10px;
	text-align: center;
}
.sample-slider{
	width:100%;
	position: relative;
}
.slider__inside__ttl{
	font-weight: bold;
	font-size: 16px;
	margin: 4px auto 0;
	padding: 0 20px 0;
}
.sample-slider img{
	width: calc(100% - 180px);
	display: block;
	margin-inline: auto;
	margin: 4px auto;
}
.slider__inside__txt{
    margin: 6px auto 0;
    font-size: 13px;
    text-align: center;
}
.case__sectioin__txtarea{
	padding: 0 40px;
	margin-top: 40px;
}
.case__sectioin__txt{
	margin: 0;
	text-align: right;
	padding-right: 10px;
}
.case__sectioin__link{
    text-align: right;
    display: block;
	padding-right: 10px;
}
.swiper__official__link{
	display: block;
}
.case__sectioin__txt{
    margin: 30px auto 0;
	font-size: 12px;
}
.case__sectioin__cta{
	border-radius: 4px;
    border-bottom: solid 3px #b14321;
    margin: 4px auto 0px;
    width: 100%;
    padding: 16px 0;
    font-size: 17px;
    position: relative;
    background-color: var(--CTA);
    text-decoration: none;
    color: #fff;
    font-weight: bold;
    transition: all .3s;
    text-align: center;
    display: block;
    line-height: 1.4;
}
.case__sectioin__cta::before {
    position: absolute;
    content: "";
    width: 6px;
    height: 6px;
    border-bottom: solid 2px #fff;
    border-right: solid 2px #fff;
    right: 4%;
    transform: rotate(-45deg) translateY(-57%);
    top: 50%;
}