@charset "UTF-8";

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

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

@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap");

html {
  font-size: 62.5%;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.8;
  letter-spacing: 0;
  box-sizing: border-box;
  color: var(--Text);
  --Text: #393939;
  --Text_blue: #1a0dab;
  --Main: #3bbbc7;
  --Sub: #4473c7;
  --Accent: #a71616;
  --Back: #f66c21;
  --Grey: #707f89;
  --CTA: #cc2e23;
  --yellow: #fef8d0;
}

body {
  font-size: 1rem;
  box-sizing: border-box;
  line-height: 1.8;
  background-color: #fff;
  word-break: break-all;
  overflow-x: hidden;
  position: relative;
  font-feature-settings: "palt";
}

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

.accent {
  color: #cc2e23;
  font-weight: bold;
}

.yellow {
  color: var(--yellow);
  font-weight: bold;
}

.forPC {
  display: inline-block;
}

.forSP {
  display: none;
}

body:not(.result_page) .adTxt {
  text-align: right;
  max-width: 1000px;
  /* 横幅 LPに合わせて調整 */
  padding: 0;
  margin: 0 auto;
  position: absolute;
  top: 26px;
  right: 0;
}

#area .adTxt {
  margin: 0 auto 6px;
}

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

body:not(.result_page) .txt--clinicfor {
  font-size: 16px;
  text-align: right;
  width: 1000px;
  margin-left: auto;
  margin-right: auto;
  margin-top: -4px;
  position: absolute;
  top: 0;
}

.adTxt {
  text-align: right;
  max-width: 1000px;
  /* 横幅 LPに合わせて調整 */
  padding: 0;
  margin: 0 auto;
}

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

.txt--clinicfor {
  font-size: 16px;
  text-align: right;
  width: 1000px;
  margin-left: auto;
  margin-right: auto;
  margin-top: -4px;
}

#area .txt--clinicfor {
  display: none;
}

.marker {
  background: linear-gradient(transparent 70%, var(--yellow) 70%);
}

/* ------------------------------
ヘッダー
------------------------------ */
#HEADER_LINE {
}

#HEADER_LINE .header_line {
  width: 1000px;
  margin: 0 auto;
}

#HEADER_LINE .header_line h1 {
  font-weight: normal;
}

header {
  max-width: 1000px;
  width: 100%;
  margin: 0 auto 6px;
  position: relative;
}

/* ------------------------------
コンテンツエリア
------------------------------ */
#CONTENTS .contents {
  font-size: 1.6rem;
  width: 1000px;
  margin: 0 auto;
  max-width: 100%;
}

/* ------------------------------
TYPE
------------------------------ */
section.type {
  background-color: var(--Main);
  padding-bottom: 30px;
  margin-top: 70px;
}

.type__wrap {
  display: grid;
  grid-template-columns: 35% 1fr 1fr;
  gap: 16px;
  padding: 0 30px;
  margin-top: 30px;
}

.type__box {
  border-radius: 10px;
  text-align: center;
  background-color: #fff;
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  gap: 0;
}

.type__box__head {
  border-radius: 10px 10px 0 0;
  color: #fff;
  font-size: 24px;
  font-weight: bold;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
}

.type__head__num {
  font-size: 30px;
  margin-right: 4px;
}

.type__box:nth-of-type(1) .type__box__head {
  background-color: #ba9144;
}

.type__box:nth-of-type(2) .type__box__head {
  background-color: #888888;
}

.type__box:nth-of-type(3) .type__box__head {
  background-color: #d38358;
}

.type_ttl_bnr {
  margin: 0 auto;
  display: block;
}

.type__box__inner {
  padding: 30px;
  border-radius: 0 0 10px 10px;
  display: grid;
  grid-template-rows: 313px 38px 59px 1fr;
  gap: 10px;
}

.type__box:nth-of-type(1) .type__box__inner {
  background-color: #fef8d0;
}

.type__box:nth-of-type(2) .type__box__inner {
  background-color: #e9edf3;
}

.type__box:nth-of-type(3) .type__box__inner {
  background-color: #f4e5dc;
}

.type__box__logo {
  padding: 4px 10px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.type__box__logo.dmm a {
  display: flex;
  justify-content: center;
}

.type__box__logo.padding img {
  padding: 8px;
  box-sizing: border-box;
}

.type__box__logo img {
  width: auto;
}

.type__box__ttl {
  font-weight: bold;
  background-color: #fff;
  border-radius: 40px;
  padding: 4px 0;
}

.type__box__bnr {
  display: flex;
  justify-content: center;
  align-items: center;
}

.type__box__txt {
  font-size: 16px;
  line-height: 1.3;
}

.type__box__txt .price__num {
  font-size: 28px;
}

a.cta {
  border-radius: 40px;
  background-color: var(--CTA);
  color: #fff;
  text-decoration: none;
  font-weight: bold;
  text-align: center;
  padding: 10px 10px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  font-size: 18px;
  width: 100%;
  box-sizing: border-box;
  text-decoration: none;
}

.type__annotation {
  line-height: 1;
  padding: 0 30px;
  margin-top: 6px;
}

/* ------------------------------
REVIEW
------------------------------ */
section.review {
  background: repeating-linear-gradient(
      90deg,
      #d5f1f3,
      #d5f1f3 1px,
      transparent 1px,
      transparent 32px
    ),
    repeating-linear-gradient(0deg, #d5f1f3, #d5f1f3 1px, #fff 1px, #fff 32px);
  background-size: 32px 32px;
  background-position: 50% 50%;
  aspect-ratio: 3.3 / 2.9;
  position: relative;
  width: 100%;
}

.review__wrap {
  padding: 0 60px 30px;
}

.type_review_bnr {
  margin: 0 auto;
  display: block;
}

.review__icon {
  position: absolute;
  content: "";
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  height: 50px;
  width: 50px;
  display: block;
}

.review__icon::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background: url(../img/review__icon.svg) no-repeat center;
  background-size: 64%;
  top: 0%;
  left: 0;
}

.review__icon::after {
  position: absolute;
  content: "";
  width: 2px;
  height: 100%;
  top: 0%;
  right: -24%;
  background-color: var(--Main);
}

.review__wrap dl {
  text-align: center;
}

.review__wrap dl.review_kuchikomi {
  margin-top: 54px;
}

.review__wrap dt {
  border: solid 2px var(--Main);
  border-radius: 8px;
  box-shadow: 5px 7px 0px 4px var(--Main);
  font-size: 26px;
  background-color: #fff;
  display: inline-block;
  padding: 16px 30px 16px 100px;
  position: relative;
  font-weight: bold;
  box-sizing: border-box;
  width: 100%;
}

.review__wrap .review_graph dt {
  padding: 20px 30px 20px 100px;
}

.review__wrap .review_kuchikomi dd {
  align-items: center;
  gap: 30px;
}

.review__wrap .review_kuchikomi dd:first-of-type {
  margin-top: 28px;
}

.review__wrap .review_kuchikomi dd:not(:first-of-type) {
  margin-top: 6px;
}

.review__wrap .review_kuchikomi dd:nth-of-type(odd) {
  justify-content: right;
  display: grid;
  grid-template-columns: 84% 87px;
  padding: 0px 40px;
}

.review__wrap .review_kuchikomi dd:nth-of-type(even) {
  justify-content: left;
  display: grid;
  grid-template-columns: 87px 84%;
  padding: 0px 40px;
}

.review__wrap .review_graph dd {
  /* display: grid;
	grid-template-columns: 380px 1fr;
	align-items: center; */
  gap: 50px;
  margin-top: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.review__ico {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.review_kuchikomi .review__txt {
  background-color: var(--Sub);
  font-size: 22px;
  padding: 14px 12px;
  border-radius: 14px;
  color: #fff;
  position: relative;
}

.review_kuchikomi .review__txt.left {
  text-align: left;
}

.review__wrap .review_kuchikomi dd:nth-of-type(odd) .review__txt {
  background-color: var(--Sub);
}

.review__wrap .review_kuchikomi dd:nth-of-type(even) .review__txt {
  background-color: var(--Main);
}

.review__wrap .review_kuchikomi dd:nth-of-type(odd) .review__txt::before {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
  border-left: 14px solid var(--Sub);
  border-right: 0;
  right: -14px;
  top: 30%;
}

.review__wrap .review_kuchikomi dd:nth-of-type(even) .review__txt::before {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
  border-right: 14px solid var(--Main);
  border-left: 0;
  left: -14px;
  top: 30%;
}

.review__wrap .review_graph .review__txt {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 20px;
}

.review__wrap .review_graph .review__txt .fukidashi {
  background-color: var(--Sub);
  color: #fff;
  font-size: 22px;
  padding: 16px 28px;
  border-radius: 14px;
  position: relative;
}

.review__wrap .review_graph .review__txt .fukidashi::before {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
  border-right: 14px solid var(--Sub);
  border-left: 0;
  left: -14px;
  top: 30%;
}

.review__wrap .review_graph .review__txt .bottom__tx {
  font-size: 22px;
  color: var(--Sub);
  font-weight: bold;
  text-decoration: underline;
  text-decoration-color: var(--Sub);
  line-height: 1.6;
}

.review__ico img.review_graph {
  width: 380px;
  height: 380px;
}

/* ------------------------------
MIN
------------------------------ */
section.min {
  padding-bottom: 10px;
  background-color: #fff;
}

.type_min_bnr {
  background-color: #effaff;
}

.min__table {
  border: solid 2px #b3b3b3;
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 0;
}

.min__table .min__table__logo {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.min__table tr:first-of-type td:first-of-type .min__table__logo {
  aspect-ratio: unset;
}

.min__table tr:first-of-type th {
  width: 9%;
}

.min__table th {
  font-size: 14px;
  background-color: #effaff;
  border-right: solid 1px #b3b3b3;
  border-left: solid 1px #b3b3b3;
  padding: 10px 0;
}

.min__table tr:not(:last-of-type) th {
  border-bottom: solid 1px #b3b3b3;
}

.min__table tr:first-of-type th {
  border-top: solid 1px #b3b3b3;
}

.min__table tr:last-of-type th {
  border-bottom: solid 1px #b3b3b3;
}

.min__table td {
  width: calc(91% / 5);
  font-size: 16px;
  text-align: center;
  padding: 20px 12px;
}

.min__table tr:nth-of-type(2) td {
  padding: 20px 12px;
}

#area .min__table tr:nth-of-type(2) td {
  padding: 10px 12px;
}

.min__table th + td,
.min__table td + td {
  border-bottom: solid 1px #b3b3b3;
  border-right: solid 1px #b3b3b3;
}

.min__table tr td:first-of-type {
  background-color: #fef8d0;
}

.min__table tr:first-of-type td {
  border-top: solid 1px #b3b3b3;
  padding: 10px;
}

.min__table tr:last-of-type td {
  vertical-align: bottom;
}

.min__table__name {
  font-size: 16px;
  margin-top: 10px;
  display: block;
}

.min__table__name.forSP {
  display: none;
}

.min__table__name.single {
  height: 43px;
  line-height: 43px;
}

.min__eva {
  display: block;
  margin-inline: auto;
  margin-bottom: 6px;
  width: 54px;
}

.min__table .cta {
  margin-top: 4px;
  padding: 14px 0;
}

.min__annotation {
  line-height: 1.1;
  padding: 0 10px;
}

.min__table tr td:first-of-type {
  position: relative;
}

.min__table tr td:first-of-type {
  border-right: solid 2px #f29b39;
}

.min__table tr th {
  border-right: solid 2px #f29b39;
}

.min__table tr td:first-of-type,
.min__table tr td:nth-of-type(2),
.min__table tr td:nth-of-type(3),
.min__table tr td:last-of-type {
  position: relative;
}

.min__table tr:first-of-type td:first-of-type::before {
  position: absolute;
  content: "";
  height: 2px;
  width: 100%;
  background-color: #f29b39;
  top: 0;
  left: 0;
}

.min__table tr:last-of-type td:first-of-type::before {
  position: absolute;
  content: "";
  height: 2px;
  width: 100%;
  background-color: #f29b39;
  bottom: 0;
  left: 0;
}

.min__table tr:first-of-type td:first-of-type::after {
  position: absolute;
  content: "";
  height: 76px;
  width: 76px;
  top: 0;
  left: 0;
  background: url(../img/ico_min_01.svg) no-repeat center;
  background-size: 100%;
}

.min__table tr:first-of-type td:nth-of-type(2)::after {
  position: absolute;
  content: "";
  height: 76px;
  width: 76px;
  top: 0;
  left: 0;
  background: url(../img/ico_min_02.svg) no-repeat center;
  background-size: 100%;
}

.min__table tr:first-of-type td:nth-of-type(3)::after {
  position: absolute;
  content: "";
  height: 76px;
  width: 76px;
  top: 0;
  left: 0;
  background: url(../img/ico_min_03.svg) no-repeat center;
  background-size: 100%;
}

/* ------------------------------
RANKING
------------------------------ */
section.ranking {
  background-color: #fff;
  margin-top: 40px;
}

.rank__wrap {
  margin-top: 40px;
}

.rank__box {
  border-radius: 40px;
  padding: 30px 40px 40px;
  background-color: #e8edf3;
}

.rank__box:not(:first-of-type) {
  margin-top: 60px;
}

.rank__wrap > .rank__box:nth-of-type(1) {
  background-color: #fef8d0;
}

.rank__wrap > .rank__box:nth-of-type(2) {
  background-color: #e9edf3;
}

.rank__wrap > .rank__box:nth-of-type(3) {
  background-color: #f4e5dc;
}

.rank__head {
  display: grid;
  grid-template-columns: 110px 1fr;
  height: 70px;
  gap: 24px;
  position: relative;
}

.rank__wrap > .rank__box:nth-of-type(1) .rank__head::after {
  position: absolute;
  content: "";
  background: url(../img/rank_ico01.svg) no-repeat center;
  background-size: 100%;
  width: 74px;
  height: 46px;
  left: 7%;
  top: -57px;
  transform: translateX(-50%);
}

.rank__wrap > .rank__box:nth-of-type(2) .rank__head::after {
  position: absolute;
  content: "";
  background: url(../img/rank_ico02.svg) no-repeat center;
  background-size: 100%;
  width: 74px;
  height: 46px;
  left: 7%;
  top: -57px;
  transform: translateX(-50%);
}

.rank__wrap > .rank__box:nth-of-type(3) .rank__head::after {
  position: absolute;
  content: "";
  background: url(../img/rank_ico03.svg) no-repeat center;
  background-size: 100%;
  width: 74px;
  height: 46px;
  left: 7%;
  top: -57px;
  transform: translateX(-50%);
}

.rank__num {
  position: relative;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 60px;
  font-weight: bold;
  width: 110px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  gap: 2px;
}

.rank__wrap > .rank__box:nth-of-type(1) .rank__num {
  color: #ba9144;
}

.rank__box .rank__num::before {
  position: absolute;
  content: "";
  width: 3px;
  height: 100%;
  background-color: #000;
  right: 0;
}

.rank__wrap > .rank__box:nth-of-type(1) .rank__num::before {
  position: absolute;
  content: "";
  width: 3px;
  height: 100%;
  background-color: #ba9144;
  right: 0;
}

.rank__wrap > .rank__box:nth-of-type(2) .rank__num {
  color: #888888;
}

.rank__wrap > .rank__box:nth-of-type(2) .rank__num::before {
  position: absolute;
  content: "";
  width: 3px;
  height: 100%;
  background-color: #888888;
  right: 0;
}

.rank__box:nth-of-type(3) .rank__num {
  color: #d38358;
}

.rank__wrap > .rank__box:nth-of-type(3) .rank__num::before {
  position: absolute;
  content: "";
  width: 3px;
  height: 100%;
  background-color: #d38358;
  right: 0;
}

.rank__box .rank__num__tail {
  font-size: 30px;
  margin-top: 18px;
}

.rank__name {
  font-size: 28px;
  line-height: 1.4;
}

.rank__name__catch {
  margin: 0;
  font-size: 16px;
}

.rank__box__bnr {
  margin-top: 18px;
}

.rank__table {
  border: solid 1px #b3b3b3;
  border-collapse: collapse;
  margin-bottom: 0;
}

.rank__table th {
  background-color: #d5f1f3;
  width: 21%;
  border-right: solid 1px #b3b3b3;
}

.rank__table tr:not(:last-of-type) th {
  border-bottom: solid 1px #b3b3b3;
}

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

.rank__tag__list__wrap {
  margin-top: 10px;
}

.rank__tag__list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 4px;
}

.rank__tag {
  border: solid 1px var(--Sub);
  color: var(--Sub);
  border-radius: 20px;
  font-weight: bold;
  padding: 2px 10px;
  background-color: #fff;
  font-size: 14px;
}

.rank__tag.off {
  border: solid 1px #8e8e8e;
  color: #888888;
  background-color: #e9edf3;
}

.rank__point__wrap {
  margin-top: 40px;
  position: relative;
  border: solid 3px var(--Main);
  border-radius: 14px;
  background-color: #fff;
  padding: 26px 24px 24px;
}

.rank__point__wrap::before {
  position: absolute;
  content: "";
  width: 137px;
  height: 3px;
  background-color: #fff;
  left: 49.6%;
  transform: translateX(-50%);
  top: -3px;
}

.rank__point__head {
  font-weight: bold;
  font-size: 30px;
  letter-spacing: 2px;
  position: absolute;
  content: "";
  top: -32px;
  left: 50%;
  transform: translateX(-50%);
}

.rank__point__head::before {
  position: absolute;
  content: "";
  height: 3px;
  width: 100%;
  bottom: 3px;
  left: 0;
  background-color: var(--Sub);
}

.rank__point__head::after {
  position: absolute;
  content: "";
  height: 3px;
  width: 50%;
  bottom: 3px;
  right: 0;
  background-color: var(--Main);
}

.rank__point__head span:nth-child(odd) {
  color: var(--Sub);
}

.rank__point__head span:nth-child(even) {
  color: var(--Main);
}

.rank__point__wrap p {
  margin-bottom: 0;
}

.rank__point__ttl {
  position: relative;
  font-size: 20px;
  font-weight: bold;
  padding-left: 28px;
}

.rank__point__ttl:not(:first-of-type) {
  margin-top: 10px;
}

.rank__point__ttl::before {
  position: absolute;
  content: "";
  background: url(../img/icon_point.svg) no-repeat center;
  top: 50%;
  left: -2px;
  width: 28px;
  height: 28px;
  transform: translateY(-50%);
}

.rank__point__txt {
  font-size: 16px;
}

.rank__cta__wrap {
  text-align: center;
  margin-top: 30px;
}

.cta__catch {
  margin-bottom: 0;
  color: var(--Sub);
  font-size: 18px;
  text-align: center;
  display: inline-block;
  position: relative;
  padding: 0 24px;
  font-weight: bold;
}

.cta__catch::before {
  position: absolute;
  content: "";
  width: 2px;
  height: 80%;
  background-color: var(--Sub);
  transform: rotate(-32deg);
  bottom: 3px;
  left: 0;
}

.cta__catch::after {
  position: absolute;
  content: "";
  width: 2px;
  height: 80%;
  background-color: var(--Sub);
  transform: rotate(32deg);
  bottom: 3px;
  right: 0;
}

.cta.rank {
  font-size: 20px;
  margin-top: 6px;
  line-height: 1.3;
  padding: 16px 10px;
}

.cta.rank::before {
  position: absolute;
  content: "";
  background: url(../img/cta_btn_icon.svg) no-repeat center;
  background-size: 100%;
  width: 30px;
  height: 30px;
  right: 2%;
  top: 50%;
  transform: translateY(-50%);
}

.ranking__calender {
  width: 100%;
  text-align: center;
  margin-top: 30px;
}

.ranking__calender .forSP {
  width: 320px;
  margin: 0 auto;
}

.rank__more__btn {
  box-sizing: border-box;
  color: #fff;
  text-decoration: none;
  background: var(--Main);
  border-radius: 40px;
  font-size: 18px;
  font-weight: bold;
  width: calc(100% - 60px);
  padding: 20px;
  position: relative;
  cursor: pointer;
  margin: 60px auto;
  text-align: center;
}

.rank__more__btn::before {
  position: absolute;
  content: "";
  background: url(../img/rank_more_btn.svg) no-repeat center;
  background-size: 100%;
  width: 30px;
  height: 30px;
  right: 2%;
  top: 50%;
  transform: translateY(-50%);
}

.ranking__accordion_openarea {
  display: none;
}

/* ------------------------------
HIKAKU
------------------------------ */
.hikaku__container {
  background: repeating-linear-gradient(
    to right,
    /* 縦方向のストライプ */ #f7f9fc,
    /* ストライプの色1 */ #f7f9fc 31px,
    /* ストライプの幅 */ #ffffff 0px,
    /* ストライプの色2 */ #ffffff 51px
      /* ストライプの幅と次のストライプまでの間隔 */
  );
  border-radius: 50px;
  padding-bottom: 40px;
}

.hikaku__wrap {
  width: 100%;
  padding: 0 40px;
  box-sizing: border-box;
}

.hikaku__table {
  width: 100%;
  border: solid 3px var(--Main);
  margin-bottom: 0;
}

.hikaku__table th {
  background-color: var(--Main);
  color: #fff;
  border-bottom: solid 1px var(--Main);
  font-size: 16px;
}

.hikaku__table th:not(:last-of-type) {
  border-right: solid 1px #fff;
}

.hikaku__table td:not(:last-of-type) {
  border-right: solid 1px var(--Main);
}

.hikaku__table th:nth-of-type(1) {
  width: 26%;
}

.hikaku__table th:nth-of-type(2) {
  width: 29%;
}

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

.hikaku__table tr:not(:last-of-type) td {
  border-bottom: solid 1px var(--Main);
}

.hikaku__table__logo__wrap {
  display: block;
}

.hikaku__table__logo__wrap img {
  height: 40px;
  width: auto;
  margin-inline: auto;
  display: block;
}

a.cta.hikaku {
  padding: 10px 10px;
  font-size: 14px;
  width: 100%;
  margin-top: 10px;
}

/* ------------------------------
SUMMARY
------------------------------ */
section.summary {
  background-color: #fef8d0;
  border-radius: 80px;
}

.summary__wrap {
  padding: 0 40px 40px;
  border-right: solid 5px var(--Sub);
  border-left: solid 5px var(--Sub);
  border-bottom: solid 5px var(--Sub);
  border-radius: 0 0 80px 80px;
}

.summary__ttl__wrap {
  text-align: center;
}

.sumary__ttl {
  color: var(--Sub);
  position: relative;
  border-radius: 12px;
  border: solid 2px var(--Sub);
  background-color: #fff;
  display: inline-block;
  padding: 12px 44px;
  font-size: 22px;
  line-height: 1.4;
  font-weight: bold;
  box-shadow: 4px 5px 0px 1px var(--Sub);
  width: 60%;
}

.sumary__ttl::before {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 14px solid transparent;
  border-left: 14px solid transparent;
  border-top: 16px solid var(--Sub);
  border-bottom: 0;
  bottom: -21px;
  left: 50.5%;
  transform: translateX(-50%);
}

.sumary__ttl::after {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 10px solid transparent;
  border-left: 10px solid transparent;
  border-top: 15px solid #fff;
  border-bottom: 0;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
}

.summry__bnr {
  margin-top: 40px;
}

.summary__txt__wrap {
  margin-top: 20px;
}

.summary__txt__wrap p {
  margin-bottom: 0;
  margin-bottom: 0;
  font-size: 16px;
  line-height: 1.4;
}

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

.underline {
  background: linear-gradient(transparent 50%, #fff 50%);
  font-weight: bold;
}

/* ------------------------------
FORM
------------------------------ */
.Refine_Search_conditions_Area:not(:first-of-type) {
  margin-top: 28px;
}

.condition_ttl {
  position: relative;
  padding-left: 10px;
  font-size: 20px;
  font-weight: bold;
}

.condition_ttl::before {
  position: absolute;
  content: "";
  width: 5px;
  height: 100%;
  background-color: var(--Sub);
  left: 0;
  top: 0;
  border-radius: 10px;
}

.condition_ttl::after {
  position: absolute;
  content: "";
  width: 5px;
  height: 20%;
  background-color: var(--Main);
  left: 0;
  top: 0;
  border-radius: 10px;
}

.form__shinkou__grid {
  display: grid;
  grid-template-columns: repeat(3, 250px);
  gap: 20px;
}

.form__shinkou__grid input,
.mokuteki__list .checkbox_text input,
.kodawari__list .checkbox_text input,
.medicine__list .radiobtn_text input,
.shinsatsu__list .radiobtn_text input {
  display: none;
}

.form__shinkou__grid .multi-item .checkbox_text {
  border: solid 2px var(--Main);
  border-radius: 10px;
  padding: 10px;
  aspect-ratio: 4.5 / 3;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #fff;
}

.form__shinkou__ttl {
  position: relative;
  padding-left: 24px;
  margin-top: 10px;
  font-size: 18px;
  font-weight: bold;
}

.form__shinkou__ttl::before {
  position: absolute;
  content: "";
  background: url(../img/icon_point.svg) no-repeat center;
  background-size: 100%;
  top: 53%;
  left: 0;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
}

.form_icon {
  padding: 20px;
  aspect-ratio: 1 / 1;
  width: 90px;
  background-color: #d5f1f3;
  border-radius: 50%;
}

.shinkou__list .checkbox_text.multi.selected {
  background-color: #fef8d0;
  border-color: var(--Sub);
}

.shinkou__list .checkbox_text.multi.selected .form_icon {
  background-color: #fff;
}

.mokuteki__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 10px;
  font-weight: bold;
  font-size: 14px;
}

.mokuteki__list .checkbox_text {
  border: solid 2px var(--Main);
  border-radius: 10px;
  position: relative;
  padding: 10px 0 10px 34px;
  display: block;
  background-color: #fff;
}

.mokuteki__list .checkbox_text.selected {
  background-color: #fef8d0;
  border-color: var(--Sub);
}

.medicine__list .radiobtn_text::before {
  position: absolute;
  content: "";
  top: 50%;
  left: 3%;
  background: url(../img/form_unchecked.svg) no-repeat center;
  background-size: 100%;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
}

.medicine__list .radiobtn_text.on1::before {
  background: url(../img/form_checked.svg) no-repeat center;
}

.mokuteki__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 10px;
  font-weight: bold;
  font-size: 14px;
}

.mokuteki__list .checkbox_text {
  border: solid 2px var(--Main);
  border-radius: 10px;
  padding: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  background-color: #fff;
}

.mokuteki__list .checkbox {
  width: 20px;
  height: 20px;
}

.mokuteki__list .checkbox_text .checkbox {
  background: url(../img/form_unchecked.svg);
  background-size: 20px;
}

.mokuteki__list .checkbox_text.selected .checkbox {
  background: url(../img/form_checked.svg);
  background-size: 20px;
}

.medicine__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 10px;
  line-height: 1.3;
  margin-top: 10px;
  font-weight: bold;
  font-size: 14px;
}

.medicine__list .radiobtn_text {
  border: solid 2px var(--Main);
  border-radius: 10px;
  position: relative;
  padding: 10px 0 10px 34px;
  display: flex;
  align-items: center;
  background-color: #fff;
}

.medicine__list .radiobtn_text.on1 {
  background-color: #fef8d0;
  border-color: var(--Sub);
}

.shinsatsu__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 10px;
  font-weight: bold;
  font-size: 14px;
}

.shinsatsu__list .radiobtn_text {
  border: solid 2px var(--Main);
  border-radius: 10px;
  position: relative;
  padding: 10px 0 10px 34px;
  display: flex;
  align-items: center;
  background-color: #fff;
}

.shinsatsu__list .radiobtn_text::before {
  position: absolute;
  content: "";
  top: 50%;
  left: 3%;
  background: url(../img/form_unselected.svg) no-repeat center;
  background-size: 100%;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
}

.shinsatsu__list .radiobtn_text.on2::before {
  background: url(../img/form_selected.svg) no-repeat center;
}

.shinsatsu__list .radiobtn_text.on2 {
  background-color: #fef8d0;
  border-color: var(--Sub);
}

.Refine_Search_submit {
  display: flex;
  gap: 24px;
  margin-top: 60px;
  justify-content: space-between;
}

.Refine_Search_submit span {
  background-color: var(--Sub);
  font-size: 23px;
  border-radius: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  padding: 12px 0;
}

.Refine_Search_cta button {
  width: 100px;
  height: 100%;
  background-color: unset;
  border-radius: 15px;
  font-size: 16px;
  border: none;
}

.Refine_Search_submit input {
  background-color: #4473c7;
  border-radius: 40px;
  border: none;
  color: #fff;
  width: 20%;
  height: 100%;
  padding: 16px 10px;
  font-size: 16px;
  align-self: center;
}

/* 20250219 検索項目こだわり条件追加 */
.kodawari__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 10px;
  font-weight: bold;
  font-size: 14px;
}

.kodawari__list .checkbox_text {
  border: solid 2px var(--Main);
  border-radius: 10px;
  padding: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  background-color: #fff;
}

.kodawari__list .checkbox {
  width: 25px;
  height: 25px;
}

.kodawari__list .checkbox_text.soon .checkbox {
  background: url(../img/ico_kodawari_soon.svg);
  background-size: 25px;
}

.kodawari__list .checkbox_text.kensa .checkbox {
  background: url(../img/ico_kodawari_kensa.svg);
  background-size: 25px;
}

.kodawari__list .checkbox_text.japan .checkbox {
  background: url(../img/ico_kodawari_japan.svg);
  background-size: 25px;
}

.kodawari__list .checkbox_text.visit .checkbox {
  background: url(../img/ico_kodawari_visit.svg);
  background-size: 25px;
}

.kodawari__list .checkbox_text.selected {
  background-color: #fef8d0;
  border-color: var(--Sub);
}

/* ------------------------------
FOOTER
------------------------------ */
.footer {
  width: 100%;
  background-color: var(--Sub);
  font-size: 16px;
}

.footer_menu {
  background-color: var(--Sub);
  font-size: 16px;
  margin-top: 80px;
}

.footer_inner .link ul {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 22px;
}

.footer_inner .link ul li {
  position: relative;
}

.footer_inner .link ul li a {
  color: #fff;
  text-decoration: none;
}

.footer_inner .link ul li:first-of-type::before {
  position: absolute;
  content: "／";
  bottom: 0;
  color: #fff;
  height: 100%;
  width: 4px;
  right: -7px;
}

.footer_menu_inner {
  padding: 20px 100px;
  width: 70%;
  margin-inline: auto;
}

.widget_text h3,
.widget_text li a {
  color: #fff;
  text-decoration: none;
}

.widget_text li a {
  font-weight: normal;
}

.copyright_inner {
  text-align: center;
  color: #a2b9e3;
  font-size: 13px;
}

/* ========================================================
検索結果
=========================================================*/
body.result_page {
  background: repeating-linear-gradient(
      90deg,
      #d5f1f3,
      #d5f1f3 1px,
      transparent 1px,
      transparent 32px
    ),
    repeating-linear-gradient(
      0deg,
      #d5f1f3,
      #d5f1f3 1px,
      #e5f7fa 1px,
      #e5f7fa 32px
    );
  background-size: 32px 32px;
  background-position: 50% 50%;
  width: 100%;
  aspect-ratio: 3.3 / 2.9;
  position: relative;
}

.result_page .rank__box {
  background-color: #fef8d0;
}

.result.ng-scope {
  margin-top: 40px;
}

.searchConditions {
  border: solid 3px var(--Sub);
  background-color: #fff;
  border-radius: 20px;
  position: relative;
}

.searchConditions::before {
  position: absolute;
  content: "";
  width: 273px;
  height: 3px;
  background-color: #fff;
  left: 50%;
  transform: translateX(-50%);
  top: -3px;
}

.searchConditions__ttl {
  position: absolute;
  content: "";
  background-color: var(--Sub);
  font-size: 20px;
  color: #fff;
  padding: 4px 28px;
  border-radius: 30px;
  left: 50%;
  transform: translateX(-50%);
  top: -21px;
}

.searchConditions__wrap {
  padding: 20px;
}

.searchConditions__wrap dl {
  font-size: 18px;
  font-weight: bold;
  position: relative;
  padding-left: 20px;
  display: flex;
  gap: 6px;
}

.searchConditions__wrap dl::before {
  position: absolute;
  content: "";
  background: url(../img/icon_point.svg) no-repeat center;
  background-size: 100%;
  top: 50%;
  left: -2px;
  width: 18px;
  height: 18px;
  transform: translateY(-50%);
}

.searchConditions__wrap dl dt {
  white-space: nowrap;
  display: flex;
  align-items: center;
}

.result_page .ranking__calender:not(id1) {
  display: none;
}

.result_data__area {
  margin-top: 30px;
}

.result_page .rank__head {
  display: block;
}

.Refine_Search_Title {
  font-size: 24px;
  text-align: center;
  font-weight: bold;
}

.shindan__block.re_form {
  margin-top: 50px;
}

.result_page .Refine_Search_Box_Inner {
  margin-top: 10px;
}

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

.result_page .rank__tag__list {
  display: none;
}

/* ========================================================
コラム
=========================================================*/
.page-lower {
  padding-top: 5rem;
}

.pankuz {
  margin-bottom: 24px;
}

.pankuz ul {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: scroll;
}

.pankuz ul a img {
  width: 20px;
  height: 20px;
}

.pankuz li {
  font-size: 14px;
  white-space: nowrap;
}

.pankuz__home {
  text-decoration: underline;
}

.pankuz ul a {
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 4px;
  color: inherit;
}

.inner {
  width: 100%;
  max-width: 1010px;
  padding-right: 25px;
  padding-left: 25px;
  margin-right: auto;
  margin-left: auto;
  box-sizing: border-box;
}

.page-lower .header {
  background: none;
  max-width: 100vw;
  text-align: center;
}

.page-lower img {
  display: block;
  margin-inline: auto;
}

.column__inner__bnr {
  margin-top: 10px;
}

.header h1 {
  position: relative;
}

.page-lower h1 {
  position: relative;
  text-align: center;
  max-width: 100%;
  font-size: 2.7rem;
  font-weight: bold;
  padding: 0 2.5rem;
  display: inline-block;
  margin-inline: auto;
  /* align-items: center; */
  justify-content: center;
  border: solid 2px var(--Main);
  border-radius: 8px;
  box-shadow: 5px 7px 0px 4px var(--Main);
}

.page-lower h1::before {
  position: absolute;
  content: "";
  width: 80px;
  height: 2px;
  background-color: #fff;
  top: -2px;
  left: 10%;
}

.page-lower h1::after {
  position: absolute;
  content: "";
  width: 60px;
  height: 2px;
  background-color: var(--Sub);
  top: -2px;
  left: 11%;
  border-radius: 10px;
}

.page-lower .adTxt + .inner {
  margin-top: -70px;
}

.page-lower h2 {
  width: 100%;
  text-align: left;
  position: relative;
  font-weight: bold;
  font-size: 1.8rem;
  padding: 4px 0 4px 14px;
  margin-top: 5rem;
}

.page-lower h2::before {
  position: absolute;
  content: "";
  width: 5px;
  height: 100%;
  background-color: var(--Sub);
  left: 0;
  top: 0;
  border-radius: 10px;
}

.page-lower h2::after {
  position: absolute;
  content: "";
  width: 5px;
  height: 14%;
  background-color: var(--Main);
  left: 0;
  top: 0;
  border-radius: 10px;
}

.card__bnr-img {
  width: 100%;
  margin-top: 1.25rem;
}

.page-lower p {
  margin-top: 1rem;
}

.page-lower .cm__point {
  margin-top: 2rem;
}

.page-lower .cm__point__list {
  border: 2px solid var(--Sub);
  border-radius: 6px;
  padding: 1.875rem 1.25rem 1.5625rem;
  margin-top: -1rem;
}

.page-lower .cm__point__list li {
  position: relative;
  font-size: 1.2rem;
  line-height: 1.5;
  padding-left: 1rem;
}

.page-lower .cm__point__list li::before {
  content: "";
  background-color: var(--Sub);
  max-width: 5px;
  min-width: 5px;
  height: 5px;
  border-radius: 100px;
  position: absolute;
  top: 0.5em;
  left: 0;
}

.page-lower .cmn__table {
  margin-top: 1.5rem;
  width: 100%;
  display: flex;
  margin-top: 0.625rem;
  border: 1px solid var(--Text);
  border-right: 0;
}

.page-lower .cmn__table dl {
  flex: 1;
  border-right: 1px solid var(--Text);
}

.page-lower .cmn__table dt {
  background-color: var(--Sub);
  text-align: center;
  font-size: 1.1rem;
  font-weight: bold;
  color: #fff;
}

.page-lower .cmn__table dd {
  text-align: center;
  padding: 0.625rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  vertical-align: middle;
}

.page-lower .cmn__table dd p {
  margin-top: 0;
  font-size: 1.1rem;
}

.page-lower .cmn__table dl {
  flex: 1;
  border-right: 1px solid var(--Text);
}

.page-lower dl {
  border: solid 3px var(--Main);
  border-radius: 10px;
  padding: 20px;
  margin-top: 20px;
  font-size: 14px;
}

.cm__check {
  position: relative;
  font-weight: bold;
  font-size: 16px;
  display: flex;
  justify-content: left;
}

.cm_check_num {
  position: relative;
  width: 28px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10;
  color: #fff;
  margin-right: 4px;
}

.cm_check_num::before {
  position: absolute;
  content: "";
  background: url(../img/icon_point.svg) no-repeat center;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 28px;
  z-index: -1;
  transform: translateX(-50%) translateY(-50%);
}

.page-lower .cm__check + p {
  margin-top: 0.5rem !important;
}

.page-lower h3 {
  border-left: 4px solid var(--Sub);
  padding-left: 0.625rem;
  margin-top: 2.5rem;
}

.page-lower .adTxt + .inner {
  margin-top: -70px;
}

a.column_btn {
  box-sizing: border-box;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  text-decoration: none;
  background: var(--CTA);
  border-radius: 40px;
  margin-bottom: 4px;
  padding: 14px 28px;
  width: 100%;
  position: relative;
  margin-top: 60px;
  font-size: 16px;
  line-height: 1.4;
  text-align: center;
}

.column__table {
  border-collapse: collapse;
  border: solid 1px var(--Main);
  margin-top: 4px;
  font-size: 12px;
}

.column__table th {
  background-color: #fff;
  border: solid 1px var(--Main);
  color: #333;
  font-weight: normal;
  padding: 12px 0;
}

.column__table .column__table__ttl {
  background-color: var(--Main);
  border-right: solid 1px #fff;
  color: #fff;
  font-weight: bold;
  padding: 14px 0;
}

.column__table .column__table__ttl:first-of-type {
  width: 19%;
}

.column__table td {
  background-color: #fff;
  border: solid 1px var(--Main);
}

.column__table tbody th,
.column__table tbody td {
  padding: 16px 6px;
}

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

/* ========================================================
20240609 追加
=========================================================*/
.hikaku__tag__list {
  display: flex;
  gap: 2px;
  justify-content: center;
}

.hikaku__tag {
  background-color: #d6f1f3;
  border-radius: 20px;
  padding: 6px 9px;
  font-size: 12px;
}

.hikaku__tag__list.center {
  justify-content: center;
}

.min__table td.hikaku__btm__pad {
  vertical-align: bottom;
  padding-bottom: 14px;
}

.min__table td.hikaku__btm__pad.mr {
  padding-bottom: 28px;
}

.min__table tr:nth-of-type(4) td,
.min__table tr:nth-of-type(5) td,
.min__table tr:nth-of-type(6) td {
  vertical-align: top;
}

#area .min__table tr:nth-of-type(6) td {
  line-height: 1.5;
}

.min__cta__catch {
  font-size: 14px;
}

.hikaku__th__tag {
  border-radius: 4px;
  padding: 3px 6px;
  color: #fff;
  margin-top: 4px;
  display: inline-block;
}

.hikaku__th__tag.g {
  background-color: #15b8c5;
}

.hikaku__th__tag.b {
  background-color: #4373c7;
}

/* ========================================================
20240606 header ロゴ追加
=========================================================*/
.header__logo {
  height: 60px;
  width: 100%;
  background-color: #fff;
}

.header__logo::before {
  position: absolute;
  content: "";
  background: url(../img/hair_future_header.png) no-repeat center;
  background-size: 100%;
  top: 0;
  left: 0;
  width: 194px;
  height: 57px;
  background-color: #fff;
  z-index: 100;
}

/* ========================================================
20240625 地域LP
=========================================================*/
.tiiki {
  font-size: 3rem;
  font-family: sans-serif;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 132px;
  height: 60px;
  position: absolute;
  top: 140px;
  left: 16%;
  color: #fff;
}

/* ========================================================
20240806
=========================================================*/
body.dummy a:not(.noScroll) {
  pointer-events: none;
  /* クリックイベントを無効化 */
  cursor: default;
  /* カーソルを通常の矢印に変更 */
  text-decoration: none;
  /* 下線を除去 */
  color: inherit;
  /* 親要素の色を継承 */
}

body.dummy a.cta,
body.dummy a.osusume__table-siteLink,
body.dummy a.comparisonTable__link,
body.dummy a.red_btn,
body.dummy a.hiyou_btn {
  color: #fff;
}

body.dummy .matome__block img:not(.matome_header) {
  width: 599px;
}

/* ========================================================
20241030 dutas 比較表追加
=========================================================*/
.arrow_down {
  display: block;
  width: 300px;
  margin: 0 auto 30px;
}

.hikaku_dutas .hikaku__container {
  background: none;
}

.hikaku_dutas .hikaku__table {
  table-layout: fixed;
}

.hikaku_dutas .hikaku__table th {
  width: 25%;
}

.hikaku_dutas .hikaku__table td {
  text-align: center;
}

/* ========================================================
20250220 jump追加
=========================================================*/
.jump {
  padding-bottom: 32px;
}

.jump__inner {
  max-width: 1000px;
  margin: 0 auto;
}

.jump__ttl img {
  width: 100%;
}

.jump__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  padding-inline: 50px;
}

.jump__link {
  display: block;
}

/* ========================================================
20250612 診断CTAボタン追加
=========================================================*/
.shindan__cta {
  margin: 15px 20px 20px;
  text-align: center;
}

.shindan__cta .cta__catch {
  color: #ff7700;
}

.shindan__cta .cta__catch::before {
  position: absolute;
  content: "";
  width: 2px;
  background-color: #ff7700;
  transform: rotate(-32deg);
  bottom: 3px;
  left: 0;
}

.shindan__cta .cta__catch::after {
  position: absolute;
  content: "";
  width: 2px;
  background-color: #ff7700;
  transform: rotate(32deg);
  bottom: 3px;
  left: right;
}

a.shindanCta {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px;
  background-color: #ff7700;
  color: #fff;
  font-size: 18px;
  text-decoration: none;
  border-radius: 16px;
  box-shadow: 2px 4px 4px rgba(0, 0, 0, 0.15);
}

.shindan__ctaArea {
  background-color: #eff9fe;
  padding-bottom: 10px;
}

/* ========================================================
20250626 usuge_taisaku追加
=========================================================*/
.usuge_taiskau {
  padding: 0 20px;
  margin: 0 auto;
}

.usuge_taiskau table.taisaku___table thead th {
  padding: 15px 10px;
}

.taisaku_text {
  text-align: center;
  font-size: 20px;
}

.bg_gray {
  background-color: #a6a6a6;
}

.bg_yellow {
  background-color: #fef8d0;
}

.clinic_color {
  color: #333;
}

.bg_black {
  background-color: black;
}

/* .background_dott {
  background-image: radial-gradient(#dfdddd 2px, transparent 1px);
  background-size: 20px 20px;
} */
