@charset "utf-8";

* {
  color: #3D3D3D;
  text-decoration: none;
  font-style: normal;
  font-weight: normal;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
  border: 0;
  font-family: 'Hiragino Sans', 'ヒラギノ角ゴシック', 'Noto Sans JP', '游ゴシック', '游ゴシック体', 'Yu Gothic', 'YuGothic', 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic proN', 'Noto Sans CJK JP CJK JP', 'メイリオ', 'Meiryo', 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
dialog,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}

body {
  background-color: #F7F5F3;
}

h1,
h2,
h3,
h4,
h5,
p {
  line-height: 1.48;
}

h2 {
  text-align: center;
  font-size: 5.333333vw;
  margin-bottom: 3.2vw;
  font-weight: 600;
}

h2>span {
  font-size: 4.266666vw;
  font-weight: inherit;
}

p {
  font-size: 3.733333vw;
}

img {
  width: 100%;
}

.pc {
  display: none !important;
}

.sp {
  display: block !important;
}

ol,
ul {
  list-style-type: none;
}

a {
  text-decoration: none;
}

@media screen and (min-width: 768px) {
  h2 {
    font-size: 32px;
    margin-bottom: 48px;
  }

  h2>span {
    font-size: 16px;
  }

  p {
    font-size: 16px;
  }

  .pc {
    display: block !important;
  }

  .sp {
    display: none !important;
  }
}

/* ul.footnote ol.footnote */
ol.footnote {
  counter-reset: number 0;
}

ul.footnote li,
ol.footnote li {
  font-size: 2.93333vw;
  text-align: left;
  position: relative;
  line-height: 1.32;
}

ul.footnote li {
  margin-left: 1em;
}

ol.footnote li {
  margin-left: 2em;
}

ul.footnote li:not(:first-of-type),
ol.footnote li:not(:first-of-type) {
  margin-top: 1.06609vw;
}

ul.footnote li::before,
ol.footnote li::before {
  font-size: inherit;
  position: absolute;
}

ul.footnote li::before {
  content: '※';
  left: -1em;
}

ol.footnote li::before {
  counter-increment: number 1;
  content: '※'counter(number);
  left: -2em;
}

/* ul.circle ul.square*/
ul.circle li,
ul.square li {
  text-align: left;
  margin-left: 1em;
  position: relative;
  margin-top: 2.13333vw;
}

ul.circle li:not(:first-of-type),
ul.square li:not(:first-of-type) {
  margin-top: 1.06666vw;
}

ul.circle li::before,
ul.square li::before {
  font-size: inherit;
  position: absolute;
  left: -1em;
  content: '';
  background-color: #3D3D3D;
  width: 0.72727em;
  height: 0.72727em;
  top: 0.36363em;
}

ul.circle li::before {
  border-radius: 9999px;
}

ul.square li::before {
  border-radius: 0.18181em;
}

/* ul.dot */
ul.dot li {
  margin-left: 1em;
  position: relative;
  text-align: left;
}

ul.dot li::before {
  content: '・';
  font-size: inherit;
  position: absolute;
  left: -1em;
}

@media screen and (min-width: 768px) {

  /* ul.footnote ol.footnote */
  ul.footnote li,
  ol.footnote li {
    font-size: 11px;
  }

  ul.footnote li:not(:first-of-type),
  ol.footnote li:not(:first-of-type) {
    margin-top: 4px;
  }

  /* ul.circle ul.square*/
  ul.circle li:not(:first-of-type),
  ul.square li:not(:first-of-type) {
    margin-top: 12px;
  }

  ul.circle li::before,
  ul.square li::before {
    width: 0.72727em;
    height: 0.72727em;
    top: 0.36363em;
  }
}

.box {
  width: 87.2vw;
  background-color: #fff;
  border-radius: 3.2vw;
  margin: 0 auto;
  padding: 6.4vw 4.266666vw;
}

.box .box {
  width: 100%;
  background-color: #f7f5f3;
  border-radius: 2.133333vw;
  margin: 0 auto;
  padding: 4.266666vw;
}

@media screen and (min-width: 768px) {
  .box {
    border-radius: 16px;
    padding: 32px;
  }

  .box .box {
    border-radius: 12px;
    padding: 32px;
  }
}


/* テキストリンク */
.text_link {
  color: #cc0000;
}

.text_link.icon {
  font-size: inherit;
  position: relative;
  padding-right: 1.1em
}

.text_link.icon::after {
  content: '';
  background-image: url(../images/link_type2.png);
  background-size: 100%;
  background-repeat: no-repeat;
  width: 1em;
  height: 1.04166666667em;
  position: absolute;
  font-size: inherit;
  bottom: 0.2em;
  margin-left: 0.1em;
}

/* 上付き */
.sup_text {
  font-weight: inherit !important;
  font-size: 0.6em;
  vertical-align: top;
  color: inherit;
}

/* ラインの装飾 */
.deco_text {
  position: relative;
  display: inline-block;
}

.deco_text::before,
.deco_text::after {
  content: '';
  background-color: #333;
  width: 0.26666vw;
  height: 110%;
  border-radius: 9999px;
  position: absolute;
  bottom: -0.53333vw;
  margin: auto;
}

.deco_text::before {
  transform: rotate(-20deg);
  left: -0.5em;
}

.deco_text::after {
  transform: rotate(20deg);
  right: -0.5em;
}

@media screen and (min-width: 768px) {

  .deco_text::before,
  .deco_text::after {
    width: 1.5px;
    height: 90%;
    bottom: 0;
  }

  .deco_text::before {
    left: -0.8em;
  }

  .deco_text::after {
    right: -0.8em;
  }
}


/* btn */
.btn {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-radius: 9999px;
  margin: auto;
}

.btn_text {
  font-size: 4.266666vw;
}

.btn_type1 {
  background-color: #FCFCFC;
  border: solid 0.26652vw #E0DEDC;
  box-sizing: border-box;
  position: relative;
  width: 68.8vw;
  height: 14.9334vw;
}

.btn_type1>.btn_text {
  color: #4D4639;
  font-weight: 600;
}

.btn_type1::after {
  content: '';
  background-image: url(../images/link_type1.png);
  background-size: contain;
  background-repeat: no-repeat;
  width: 3.33333vw;
  height: 3.2vw;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 3.997867vw;
  margin: auto 0;
}

.btn_type2 {
  background-color: #cc0000;
  position: relative;
  width: 70.13333vw;
  height: 14.93333vw;
}

.btn_type2::after {
  content: '';
  background-image: url(../images/arrow_type1.png);
  background-size: contain;
  background-repeat: no-repeat;
  width: 4.266666vw;
  height: 4.266666vw;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 3.997867vw;
  margin: auto 0;
}

.btn_type2>.btn_text {
  color: #fff;
}

.btn_type3 {
  background-color: #FCFCFC;
  border: solid 0.26652vw #E0DEDC;
  box-sizing: border-box;
  position: relative;
  width: 23.2vw;
  height: 9.6vw;
}

.btn_type3>.btn_text {
  color: #4D4639;
  font-weight: 600;
  font-size: 2.933333vw;
}

@media screen and (min-width: 768px) {
  .btn_text {
    font-size: 16px;
  }

  .btn_type1 {
    border: solid 1.5px #E0DEDC;
    width: 258px;
    height: 56px;
  }

  .btn_type1::after {
    width: 12px;
    height: 13px;
    right: 14px;
  }

  .btn_type2 {
    width: 263px;
    height: 56px;
  }

  .btn_type2::after {
    width: 16px;
    height: 16px;
    right: 8px;
  }

  .btn_type3 {
    border: solid 2px #E0DEDC;
    width: 188px;
    height: 48px;
  }

  .btn_type3>.btn_text {
    font-size: 16px;
  }
}

/* modal */
.modal_open {
  cursor: pointer;
}

.modal_wrap {
  background-color: rgba(0, 0, 0, 0.25);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 100vw;
  height: 100vh;
  z-index: 10000;
}

.modal {
  width: 76.53333vw;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  position: absolute;
  margin: auto;
  background-color: #fff;
  border-radius: 4vw;
  height: min-content;
  max-height: 80vh;
  box-sizing: border-box;
  overflow-y: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.modal_content::-webkit-scrollbar {
  display: none;
}

.modal_content {
  display: block;
  padding: 8.53333vw 6.4vw;
  text-align: center;
}

.modal_title {
  font-size: 4.266666vw;
  text-align: center;
  margin: 0 auto 3.2vw;
  font-weight: 600;
}

.modal_content .inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3.2vw;
}

.modal_text {
  text-align: left;
  font-size: 3.733333vw;
}

.modal_close {
  cursor: pointer;
  font-size: 4vw;
  margin-top: 5.33333vw;
  font-weight: 600;
  width: 100%;
}

/* modal_type2 */
.modal.modal_type2 {
  width: 100%;
  max-height: 90vh;
  background-color: #F0EEEC;
  border-radius: 4vw 4vw 0 0;
  top: auto;
  bottom: 0;
  overflow: hidden;
}

.modal.modal_type2 .modal_content {
  padding-top: 8.53333vw;
  ;
  padding-bottom: 0;
}

.modal.modal_type2 .modal_content .content_inner {
  overflow-y: scroll;
  max-height: 70vh;
  scrollbar-width: none;
  padding-bottom: 21.333333vw;
}

.modal.modal_type2 .sp .close_wrap {
  display: flex;
  justify-content: flex-end;
  position: relative;
}

.modal.modal_type2 .sp .modal_close {
  position: absolute;
  width: 5.333333vw;
  height: 5.333333vw;
  margin: 7.466666vw 7.466666vw 0 0;
  border-radius: 9999px;
  cursor: pointer;
}

.modal.modal_type2 .sp .modal_close::before,
.modal.modal_type2 .sp .modal_close::after {
  content: '';
  display: block;
  position: absolute;
  background-color: #333;
  width: 4.8vw;
  height: 0.533333vw;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  border-radius: 9999px;
}

.modal.modal_type2 .sp .modal_close::before {
  transform: rotate(45deg);
}

.modal.modal_type2 .sp .modal_close::after {
  transform: rotate(-45deg);
}

.modal.modal_type2 .modal_content ul.dot {
  margin-bottom: 1em;
}

@media screen and (min-width: 768px) {
  .modal {
    width: 734px !important;
    border-radius: 20px !important;
    max-height: 80vh !important;
    top: 0 !important;
    bottom: 0 !important;
    background-color: #fff !important;
  }

  .modal.modal_type2 .modal_content {
    padding-top: 0;
    padding-bottom: 0 !important;
  }

  .modal.modal_type2 .modal_content .content_inner {
    padding-bottom: 32px !important;
  }

  .modal_content {
    padding: 32px !important;
  }

  .modal_title {
    font-size: 18px;
    margin-bottom: 16px;
  }

  .modal_content img {
    width: 360px;
    margin: 0 auto;
  }

  .modal .modal_content .content_inner {
    height: auto !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .modal_content .inner {
    flex-direction: column-reverse;
    gap: 16px;
  }

  .modal_text {
    font-size: 16px;
    text-align: center;
  }

  .modal.modal_type2 .modal_text {
    text-align: left;
  }

  .modal_close {
    font-size: 15px;
    margin-top: 24px;
  }

  .modal_close.btn {
    width: 263px;
  }
}

/* header */
.header {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 2;
  padding: 4.26666vw 0 4.26666vw 6.4vw;
  background-color: #F0EEEC;
}

.header img {
  width: 56vw;
  margin: auto 0;
  display: block;
}

@media screen and (min-width: 768px) {
  .header {
    padding: 24px 0 24px 40px;
  }

  .header img {
    width: 340px;
  }
}

/* fv */
.fv {
  background-color: #F7F5F3;
}

.fv .slider_item {
  width: 87.2vw;
  box-sizing: border-box;
}

.fv .slider_item:not(:first-of-type) {
  margin-left: 6.4vw;
}

.fv .slider_item_inner {
  padding: 4.266666vw 0 4.266666vw 0;
}

.fv .slider_item img {
  height: 38.666666vw;
}

.fv .logos {
  display: block;
  width: 29.066666vw;
  margin: 0 6.4vw 2.133333vw auto;
}

.fv .lead {
  text-align: center;
  background-color: #f8ebc0;
  padding: 3.2vw 6.4vw 4.266666vw;
}

.fv .lead .deco_text p {
  font-size: 3.2vw;
  line-height: 1.48;
  font-weight: 600;
}

.fv .lead div.wrap {
  display: flex;
  justify-content: space-between;
  gap: 1.6vw;
  margin-top: 1.066666vw;
}

.fv .lead div.wrap div img {
  display: block;
  width: 29.866666vw;
  height: 14.399999vw;
}

.fv .lead div.wrap p {
  text-align: left;
  letter-spacing: -0.02em;
  font-size: 3.733333vw;
}

.fv .lead div.wrap p span {
  color: #cc0000;
  font-weight: 600;
}

@media screen and (min-width: 768px) {
  .fv .slider_item {
    max-width: 1020px;
    width: 79.6875vw;
  }

  .fv .slider_item:not(:first-of-type) {
    margin-left: 32px;
  }

  .fv .slider_item_inner {
    padding: 40px 0 28px;
  }

  .fv .slider_item img {
    max-height: 451px;
    height: 35.234375vw;
  }

  .fv .logos {
    width: 228px;
    margin: 0 130px 32px auto;
  }

  .fv .lead {
    padding: 12px 32px 24px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .fv .lead div.wrap {
    max-width: 1020px;
    width: 100%;
    justify-content: center;
    gap: 80px;
    align-items: end;
    margin-top: 0;
  }

  .fv .lead div.wrap>div .deco_text p {
    font-size: 16px;
  }

  .fv .lead div.wrap>div {
    display: block;
    margin-top: 0;
    margin-bottom: 12px;
  }

  .fv .lead div.wrap>div p {
    font-size: 26px;
    text-align: center;
    font-weight: 600;
  }

  .fv .lead div.wrap img {
    width: 185px;
    height: 101.61px;
  }
}

/* .premium */
.premium {
  border-radius: 4.266666vw 0 0 0;
  margin-top: -4.266666vw;
  background-color: #F7F5F3;
  padding: 8.533333vw 6.4vw 13.866666vw;
}

.premium h2+p {
  font-weight: 300;
}

.premium ul {
  margin: 6.4vw auto 0;
}

.premium h3 {
  font-size: 3.733333vw;
  text-align: center;
  font-weight: 600;
  margin-top: 10.666666vw;
  ;
}

.premium h3+p {
  margin-top: 2.133333vw;
}

.premium .accordion_item {
  width: 87.2vw;
  margin: 6.4vw auto 0;
  background-color: #FFF;
  box-shadow: 0 0 0.533049vw rgba(0, 0, 0, .12);
  border-radius: 3.2vw;
}

.premium .accordion_title {
  position: relative;
  cursor: pointer;
  text-align: left;
  padding: 4.266666vw;
}

.premium .accordion_title::before,
.premium .accordion_title::after {
  content: '';
  position: absolute;
  border-radius: 9999px;
  background-color: #3D3D3D;
  width: 3.2vw;
  height: 0.533333vw;
  top: 0;
  bottom: 0;
  right: 5.6vw;
  margin: auto 0;
  transition: 0.25s;
}

.premium .accordion_title::after {
  transform: rotate(90deg);
}

.premium .accordion_title.open::after {
  transform: none;
}

.premium .accordion_title p {
  font-weight: 600;
  width: 19em;
}

.premium .accordion_content p {
  font-size: 4.266666vw;
  line-height: 1.48;
}

.premium .accordion_content {
  padding: 4.266666vw;
  border-top: 0.26666vw solid #F2F2F2;
}

.premium .accordion_content table {
  width: 77.86667vw;
  border: solid 0.26666vw #D9D9D9;
  border-spacing: 0;
  overflow: hidden;
  border-radius: 2.13333vw;
  margin: 0 auto;
}

.premium .accordion_content table tr th,
.premium .accordion_content table tr td {
  text-align: center;
  vertical-align: middle;
}

.premium .accordion_content table tr th {
  font-weight: 600;
}

.premium .accordion_content table tr td {
  height: 10.66666vw;
}

.premium .accordion_content table tr.none th,
.premium .accordion_content table tr.none td {
  color: #a2a2a2;
}

.premium .accordion_content table tr.none th {
  background-color: #dfdddb !important;
}

.premium .accordion_content table tr.none td {
  background-color: #E6E6E6 !important;
}

.premium .accordion_content table tr:first-of-type {
  border-bottom: solid 0.26666vw #fff;
}

.premium .accordion_content table tr th:first-of-type {
  background-color: #EBEAE6;
  width: 17.32vw;
  font-size: 2.888vw;
  font-weight: 600;
}

.premium .accordion_content table tr:first-of-type th {
  font-size: 2.888vw;
  height: 9.624vw;
}

.premium .accordion_content table tr:first-of-type th:first-of-type {
  width: 17.32vw;
}

.premium .accordion_content table tr:first-of-type th:nth-of-type(2) {
  background-color: #DE7545;
  width: 20.448vw;
}

.premium .accordion_content table tr:first-of-type th:nth-of-type(3) {
  background-color: #DE5C45;
  width: 20.448vw;
}

.premium .accordion_content table tr:first-of-type th:last-of-type {
  background-color: #CC0000;
  width: 21.170666vw;
}

.premium .accordion_content table tr:first-of-type th:not(:first-of-type) {
  color: #fff;
}

.premium .accordion_content table tr th span,
.premium .accordion_content table tr td span {
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
}

.premium .accordion_content table tr td span {
  font-size: 4.330666vw;
  font-weight: inherit;
}

.premium .accordion_content table tr:not(:first-of-type) td {
  background-color: #FFFFFF;
  font-size: 3.733333vw;
  font-weight: 600;
}

.premium .accordion_content table tr>* {
  border-right: solid 0.26666vw #d4d2cf;
  border-bottom: solid 0.26666vw #d4d2cf;
}

.premium .accordion_content table tr>*:last-child {
  border-right: none;
}

.premium .accordion_content table tr:last-child>* {
  border-bottom: none;
}

.premium .accordion_content table tr:first-of-type td {
  font-weight: 600;
}

.premium .accordion_content table+ul.footnote {
  margin: 2.133333vw auto 0;
}

@media screen and (min-width: 768px) {
  .premium {
    border-radius: 24px 0 0 0;
    margin-top: -24px;
    padding: 64px 15px 96px;
  }

  .premium>.inner {
    max-width: 1020px;
    width: 100%;
    margin: 0 auto;
  }

  .premium h2 {
    margin-bottom: 16px;
  }

  .premium h2+p {
    text-align: center;
    margin-bottom: 52px;
  }

  .premium .accordion_wrap {
    display: flex;
    justify-content: center;
    align-items: start;
    gap: 16px;
    flex-wrap: wrap;
  }

  .premium ul {
    margin: 20px auto 0;
  }

  .premium h3 {
    font-size: 20px;
    margin-top: 52px;
  }

  .premium h3+p {
    margin-top: 8px;
    text-align: center;
  }

  .premium .accordion_item {
    width: 502px;
    margin: 0;
    box-shadow: 0 0 2px rgba(0, 0, 0, .12);
    border-radius: 16px;
  }

  .premium .accordion_title {
    font-size: 16px;
    padding: 20px 32px 16px 32px;
  }

  .premium .accordion_title::before,
  .premium .accordion_title::after {
    width: 12px;
    height: 2px;
    right: 33px;
  }

  .premium .accordion_content p {
    font-size: 16px;
  }

  .premium .accordion_content {
    padding: 0 32px 20px 32px;
    border-top: none;
  }

  .premium .accordion_content>.inner {
    padding: 20px 0 0 0;
    border-top: solid 2px #F2F2F2;
  }

  .premium .accordion_content table {
    width: 100%;
    border: solid 0.9px #D9D9D9;
    border-radius: 8px;
  }

  .premium .accordion_content table tr td {
    height: 46.91px;
  }

  .premium .accordion_content table tr:first-of-type {
    border-bottom: solid 0.9px #fff;
  }

  .premium .accordion_content table tr th:first-of-type {
    width: 86px;
    font-size: 14px;
  }

  .premium .accordion_content table tr:first-of-type th {
    font-size: 14px;
    height: 36.09px;
  }

  .premium .accordion_content table tr:first-of-type th:first-of-type {
    width: 86px;
  }

  .premium .accordion_content table tr:first-of-type th:nth-of-type(2) {
    width: 117px;
  }

  .premium .accordion_content table tr:first-of-type th:nth-of-type(3) {
    width: 117px;
  }

  .premium .accordion_content table tr:first-of-type th:last-of-type {
    width: 121px;
  }

  .premium .accordion_content table tr td span {
    font-size: 20px;
  }

  .premium .accordion_content table tr:not(:first-of-type) td {
    font-size: 14px;
  }

  .premium .accordion_content table tr>* {
    border-right: solid 0.9px #d4d2cf;
    border-bottom: solid 0.9px #d4d2cf;
  }

  .premium .accordion_content table+ul.footnote {
    margin: 8px auto 0;
  }
}

/* plan_summary */
.plan_summary {
  border-radius: 4.266666vw 0 0 0;
  margin-top: -4.266666vw;
  background-color: #f0eeec;
  padding: 8.533333vw 6.4vw 12.8vw;
}

.plan_summary h2 {
  font-size: 5.333333vw;
}

.plan_summary h2+p {
  margin-top: 1.066666vw;
  font-weight: 300;
}

.plan_summary .tab {
  width: 87.2vw;
  margin: 0 auto;
}

.plan_summary .tab_index {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  text-align: center;
  margin-top: 5.333333vw;
}

.plan_summary .tab_index>li {
  font-weight: 600;
  width: 28.712vw;
  padding: 3.2vw 0;
  font-size: 3.2vw;
  background-color: #fff;
  border-radius: 2.13333vw 2.13333vw 0 0;
  border: 0.26666vw solid #E0DEDC;
  border-bottom: none;
  box-sizing: border-box;
  cursor: pointer;
  text-align: center;
}

.plan_summary .tab_index>li.active {
  color: #fff;
  border: none;
}

.plan_summary .tab_index>li:first-of-type.active {
  background-color: #DE7545;
}

.plan_summary .tab_index>li:nth-of-type(2).active {
  background-color: #DE5C45;
}

.plan_summary .tab_index>li:last-of-type.active {
  background-color: #CC0000;
}

.plan_summary .tab_index>li:last-of-type {
  position: relative;
}

.plan_summary .tab_index>li:last-of-type span.bubble_tab {
  font-size: 2.933333vw;
  font-weight: 600;
  background-image: url(../images/bubble_tab.png);
  background-size: 100%;
  background-repeat: no-repeat;
  width: 18.133333vw;
  height: 7.733333vw;
  position: absolute;
  top: -4.533333vw;
  left: 0;
  right: 0;
  margin: 0 auto;
  padding: 1.066666vw 0 2.4vw;
  display: flex;
  justify-content: center;
  align-items: center;
}

.plan_summary .tab_content {
  display: none;
  background-color: #ffffff;
  padding: 6.4vw 4.266666vw;
  border-radius: 0 0 2.13333vw 2.13333vw;
}

.plan_summary .tab_content.tab_content:first-of-type.active {
  border-top: 0.53333vw solid #DE7545;
}

.plan_summary .tab_content.tab_content:nth-of-type(2).active {
  border-top: 0.53333vw solid #DE5C45;
}

.plan_summary .tab_content.tab_content:last-of-type.active {
  border-top: 0.53333vw solid #CC0000;
}

.plan_summary .tab_content.active {
  display: block;
}

.plan_summary .tab_content h3 {
  font-size: 4.266666vw;
}

.plan_summary .tab_content ul {
  margin-top: 4.266666vw;
}

.plan_summary .tab_content li {
  display: flex;
  justify-content: space-between;
  font-size: 3.733333vw;
}

.plan_summary .tab_content li+li {
  margin-top: 3.2vw;
  padding-top: 3.733333vw;
  border-top: 0.26666vw solid #E0DEDC;
}

.plan_summary .tab_content li p:first-of-type>span {
  font-size: 2.93333vw;
}

.plan_summary .tab_content li p:nth-of-type(2) {
  font-weight: 600;
}

.plan_summary .tab_content h4 {
  font-size: 4.266666vw;
  text-align: left;
  font-weight: 600;
}

.plan_summary .inner .wrap ul.footnote {
  margin-top: 4.266666vw
}

.icon_question.icon {
  position: relative;
  padding-right: 8vw;
  display: inline-block;
}

.icon_question.icon::after {
  content: '';
  background-image: url(../images/icon_question.png);
  background-size: contain;
  background-repeat: no-repeat;
  width: 5.6vw;
  height: 5.6vw;
  position: absolute;
  bottom: -0.266666vw;
  right: 0;
}

@media screen and (min-width: 768px) {
  .plan_summary {
    border-radius: 24px 0 0 0;
    margin-top: -24px;
    padding: 72px 15px 96px;
  }

  .plan_summary>.inner {
    max-width: 1020px;
    width: 100%;
    margin: 0 auto;
  }

  .plan_summary .inner .wrap {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 32px;
    margin-top: 52px;
  }

  .plan_summary .inner .wrap ul.footnote {
    margin-top: 0;
    max-width: none;
    width: 100%;
  }

  .plan_summary .inner .wrap ul.footnote li:not(:first-of-type) {
    margin-top: 8px;
  }

  .plan_summary h2 {
    font-size: 32px;
    margin-bottom: 16px;
  }

  .plan_summary h2>span {
    font-size: 18px;
  }

  .plan_summary h2+p {
    text-align: center;
  }

  .plan_summary h3 {
    font-size: 20px;
  }

  .plan_summary h3+p {
    margin-top: 8px;
    font-size: 16px;
  }

  .plan_summary .tab {
    max-width: 494px;
    min-width: 395px;
    width: 100%;
  }

  .plan_summary .tab_index {
    margin-top: 0;
  }

  .plan_summary .tab_index>li {
    max-width: 163.33px;
    width: 100%;
    padding: 12px 0;
    font-size: 14px;
    border-radius: 8px 8px 0 0;
    border: 1.5px solid #E0DEDC;
  }

  .plan_summary .tab_index>li:last-of-type span.bubble_tab {
    font-size: 12px;
    width: 68px;
    height: 29px;
    top: -16px;
    padding: 4px 0 9px;
  }

  .plan_summary .tab_index>li.active:last-of-type span.bubble_tab {
    top: -17.5px;
  }

  .plan_summary .tab_content {
    padding: 24px 32px 16px;
    border-radius: 0 0 12px 12px;
  }

  .plan_summary .tab_content.tab_content:first-of-type.active {
    border-top: 2px solid #DE7545;
  }

  .plan_summary .tab_content.tab_content:nth-of-type(2).active {
    border-top: 2px solid #DE5C45;
  }

  .plan_summary .tab_content.tab_content:last-of-type.active {
    border-top: 2px solid #CC0033;
  }

  .plan_summary .tab_content ul {
    margin-top: 14px;
  }

  .plan_summary .tab_content li {
    font-size: 16px;
  }

  .plan_summary .tab_content li+li {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1.5px solid #E0DEDC;
  }

  .plan_summary .tab_content h4 {
    font-size: 18px;
  }

  .icon_question.icon {
    padding-right: 32px;
  }

  .icon_question.icon::after {
    width: 21px;
    height: 21px;
    bottom: 1px;
  }
}

/* recommendation */
.recommendation {
  background-color: #f0eeec;
  border-radius: 4.266666vw 0 0 0;
  margin-top: -4.266666vw;
  padding: 8.533333vw 6.4vw 12.8vw;
}

.recommendation h2 {
  margin-bottom: 5.333333vw;
}

.recommendation_list {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 2.133333vw;
}

.recommendation .box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 3.2vw 4.266666vw;
}

.recommendation .box p {
  width: 46.133333vw;
  font-weight: 600;
}

.recommendation .box img {
  width: 29.333333vw
}

.recommendation .accordion_item {
  width: 87.2vw;
  margin: 5.333333vw auto 0;
  background-color: #FFF;
  box-shadow: 0 0 0.533049vw rgba(0, 0, 0, .12);
  border-radius: 3.2vw;
}

.recommendation .accordion_title {
  position: relative;
  cursor: pointer;
  text-align: left;
  padding: 4.266666vw;
}

.recommendation .accordion_title::before,
.recommendation .accordion_title::after {
  content: '';
  position: absolute;
  border-radius: 9999px;
  background-color: #3D3D3D;
  width: 3.2vw;
  height: 0.533333vw;
  top: 0;
  bottom: 0;
  right: 5.6vw;
  margin: auto 0;
  transition: 0.25s;
}

.recommendation .accordion_title::after {
  transform: rotate(90deg);
}

.recommendation .accordion_title.open::after {
  transform: none;
}

.recommendation .accordion_title p {
  font-weight: 600;
  width: 19em;
}

.recommendation .accordion_content p {
  line-height: 1.48;
}

.recommendation .accordion_content {
  padding: 4.266666vw 3.2vw;
  border-top: 0.26666vw solid #F2F2F2;
}

@media screen and (min-width: 768px) {
  .recommendation {
    border-radius: 24px 0 0 0;
    margin-top: -24px;
    padding: 72px 15px 96px;
  }

  .recommendation>.inner {
    max-width: 1020px;
    width: 100%;
    margin: 0 auto;
  }

  .recommendation h2 {
    margin-bottom: 52px;
  }

  .recommendation_list {
    flex-direction: row;
    gap: 20px;
  }

  .recommendation .box {
    width: 327px;
    padding: 16px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 13.02px;
    border-radius: 12px;
  }

  .recommendation .box p {
    width: 100%;
    text-align: center;
  }

  .recommendation .box img {
    width: 100%
  }

  .recommendation .accordion_item {
    width: 100%;
    max-width: 674px;
    margin: 24px auto 0;
    box-shadow: 0 0 2px rgba(0, 0, 0, .12);
    border-radius: 16px;
  }

  .recommendation .accordion_title {
    padding: 16px 28px 16px 16px;
  }

  .recommendation .accordion_title::before,
  .recommendation .accordion_title::after {
    width: 12px;
    height: 2px;
    right: 22px;
  }

  .recommendation .accordion_title p {
    width: 97%;
  }

  .recommendation .accordion_content {
    padding: 0 16px 16px 16px;
    border-top: none;
  }

  .recommendation .accordion_content>.inner {
    padding: 16px 0 0 0;
    border-top: 2px solid #F2F2F2;
  }
}

/* features */
.features {
  background-color: #f7f5f3;
  padding: 8.533333vw 6.4vw 12.8vw;
  border-radius: 4.266666vw 0 0 0;
  margin-top: -4.266666vw;
}

.features .box {
  padding: 3.2vw 4.266666vw;
}

.features .point li+li {
  margin-top: 3.2vw;
}

.features h2 {
  font-size: 5.333333vw;
  margin-bottom: 5.333333vw;
}

.features .point li .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3.2vw;
}

.features .point li .wrap .point_num {
  width: 14.933333vw;
  display: block;
}

.features .point li .wrap h3 {
  font-size: 3.2vw;
  margin-top: 1.066666vw;
  font-weight: 600;
}

.features .point li .wrap p {
  font-size: 3.2vw;
  margin-top: 1.066666vw;
}

.features .point li .wrap img {
  width: 18.666666vw;
}

.features .point li .wrap ul.footnote {
  margin-top: 1.066666vw;
}

.features .point li .btn {
  margin-top: 2.133333vw;
}

.features .table_wrap {
  position: relative;
  margin-top: 13.866666vw;
}

.features .box .table_wrap .poinco_point3 {
  position: absolute;
  top: -11.733333vw;
  right: 0;
  width: 66.133333vw;
}

.features .box .table_wrap table {
  font-size: 3.2vw;
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border-radius: 2.13333vw;
  border: solid 0.26666vw #D4D2CF;
}

.features .box .table_wrap table th,
.features .box .table_wrap table td {
  border-bottom: solid 0.26666vw #D4D2CF;
  border-right: solid 0.26666vw #D4D2CF;
  text-align: center;
  background-color: #ffffff;
  font-weight: 600;
  font-size: 3.2vw;
  vertical-align: middle;
}


.features .box .table_wrap table tr:last-child>* {
  border-bottom: none;
}

.features .box .table_wrap table tr td:last-child {
  border-right: none;
  font-size: 4.8vw;
  font-weight: 600;
}

.features .box .table_wrap table tr:first-child th {
  background-color: #707070;
  color: #ffffff;
  height: 13.066666vw;
  line-height: 1.2;
  border-right: none;
}

.features .box .table_wrap table tr:first-child th span {
  font-size: 2.666666vw;
  font-weight: 300;
  color: inherit;
}

.features .box .table_wrap table tr:nth-child(2) th:nth-child(n+2) {
  background-color: #ffffff;
  height: 10.666666vw;
}

.features .box .table_wrap table tr:nth-child(n+2) th {
  width: 44vw;
  height: 11.466666vw;
  background-color: #ebeae6;
}

.features .box .table_wrap table tr:nth-child(4) td {
  background-color: #fcf5e0;
  color: #CC0033;
}

.features .box .table_wrap table tr:nth-child(4) td span {
  font-size: 6.4vw;
  font-weight: inherit;
  color: inherit;
  font-family: inherit;
}

.features .box .table_wrap table+ol.footnote {
  margin-top: 4.266666vw;
}

.features .box .table_wrap table+ol.footnote li span {
  font-weight: 600;
}

@media screen and (min-width: 768px) {
  .features {
    border-radius: 24px 0 0 0;
    margin-top: -24px;
  }

  .features {
    padding: 72px 15px 96px;
  }

  .features .box {
    padding: 32px;
  }

  .features .point li+li {
    margin-top: 24px;
  }

  .features h2 {
    font-size: 32px;
    margin-bottom: 52px;
  }

  .features .point li .wrap {
    gap: unset;
  }

  .features .point li .wrap .point_num {
    width: 73px;
  }

  .features .point li .wrap h3 {
    font-size: 20px;
    margin-top: 8px;
  }

  .features .point li .wrap p {
    font-size: 20px;
    margin-top: 0;
  }

  .features .point li .wrap img {
    width: 90px;
  }

  .features .point li .btn {
    margin-top: 16px;
  }

  .features .table_wrap {
    margin-top: 72px;
    padding: 32px;
    display: flex;
    flex-direction: row;
    align-items: start;
    gap: 35px;
    background-color: #f7f5f3;
  }

  .features .point {
    max-width: 1020px;
    margin: auto;
  }

  .features .box {
    width: 100%;
  }

  .features .box .table_wrap .poinco_point3 {
    width: 199px;
    right: -62.788px;
    left: 0;
    top: -62px;
    margin: 0 auto;
  }

  .features .box .table_wrap table {
    max-width: 486px;
    width: 100%;
    font-size: 12px;
    border-radius: 8px;
    border: solid 2px #D4D2CF;
  }

  .features .box .table_wrap table tr+tr th {
    border-right: solid 2px #D4D2CF;
  }

  .features .box .table_wrap table th,
  .features .box .table_wrap table td {
    border-bottom: solid 2px #D4D2CF;
    font-size: 14px;
  }

  .features .box .table_wrap table tr td:last-child {
    font-size: 18px;
  }

  .features .box .table_wrap table tr:first-child th {
    width: 486px;
    height: 49px;
  }

  .features .box .table_wrap table tr:first-child th span {
    font-size: 12px;
  }

  .features .box .table_wrap table tr:nth-child(n+2) th {
    width: 199px;
    height: 43px;
  }

  .features .box .table_wrap table td {
    width: 288px;
    height: 43px;
  }

  .features .box .table_wrap table tr:nth-child(4) td span {
    font-size: 24px;
  }

  .features .box .table_wrap table+ol.footnote {
    width: 371px;
    margin-top: 0;
  }

  .features .box .table_wrap table+ol.footnote li {
    font-size: 12px;
  }
}

/* cv_area */
.cv_area {
  background-color: #f0eeec;
  padding: 10.66666vw 6.4vw;
}

.cv_area .box {
  background-color: #ffffff;
  padding: 8.53333vw 6.4vw;
  border-radius: 3.2vw;
}

.cv_area .box p {
  font-size: 4.26666vw;
  font-weight: 600;
  text-align: center;
}

.cv_area .box p>span {
  color: #cc0000;
  font-weight: inherit;
}

.app_dl {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 68.26666vw;
  margin: 6.4vw auto 0;
}

.ios {
  width: 28.79999vw;
}

.android {
  width: 35.19999vw;
}

@media screen and (min-width: 768px) {

  /* cv_area */
  .cv_area {
    padding: 72px 20px 96px;
    border-radius: 32px 0 0 0;
    margin-top: -32px
  }

  .cv_area .box {
    width: 670px;
    padding: 32px 20px;
    margin: 0 auto;
    border-radius: 16px;
  }

  .cv_area .box p {
    font-size: 20px;
  }

  .app_dl {
    width: 323px;
    margin: 24px auto 0;
    justify-content: space-between;
  }

  .ios {
    width: 138px;
  }

  .android {
    width: 169px;
  }
}


/* faq */
.faq {
  background-color: #f7f5f3;
  border-radius: 4.266666vw 0 0 0;
  margin-top: -4.266666vw;
  padding: 8.533333vw 6.4vw;
}

.faq h2 {
  margin-bottom: 8.53333vw;
  font-size: 5.86666vw;
}

.faq_item {
  background-color: #FFF;
  box-shadow: 0 0 0.533049vw rgba(0, 0, 0, .12);
  border-radius: 3.2vw;
}

.faq_item:not(:first-of-type) {
  margin-top: 2.13333vw;
}

.question {
  display: flex;
  align-items: center;
  position: relative;
  cursor: pointer;
  padding: 4.266666vw 3.2vw;
}

.question img {
  width: 4vw;
  height: 3.98133vw;
  margin: 0 2.4vw 0 0;
}

.question p {
  font-size: 4.266666vw;
  line-height: 1.48;
  padding-left: 4.266666vw;
  width: 15em;
  display: flex;
  align-items: center;
  background-image: linear-gradient(to top, #D4D2CF, #D4D2CF 0.26652vw, transparent 0.533049vw);
  background-size: 0.319829vw 0.90618vw;
  background-position: left;
  background-repeat: repeat-y;
}

.answer {
  padding: 0 3.2vw 4.266666vw 3.2vw;
}

.answer .inner {
  padding: 4.266666vw 0 0 10.66666vw;
  border-top: 0.26666vw solid #F2F2F2;
}

.answer * {
  font-size: 4.266666vw !important;
  line-height: 1.48;
}

.answer .mt {
  margin-top: 1em;
}

.question::before,
.question::after {
  content: '';
  position: absolute;
  border-radius: 9999px;
  background-color: #3D3D3D;
  width: 3.2vw;
  height: 0.533333vw;
  top: 0;
  bottom: 0;
  right: 3.733333vw;
  margin: auto 0;
  transition: 0.25s;
}

.question::after {
  transform: rotate(90deg);
}

.question.open::after {
  transform: none;
}

.faq .btn {
  margin-top: 8.53333vw;
}

.faq .btn+p {
  text-align: center;
  margin-top: 4.266666vw;
}

@media screen and (min-width: 768px) {
  .faq {
    border-radius: 24px 0 0 0;
    margin-top: -24px;
    padding: 72px 32px;
  }

  .faq>.inner {
    max-width: 670px;
    width: 100%;
    margin: 0 auto;
    box-sizing: content-box;
  }

  .faq h2 {
    margin-bottom: 40px;
    font-size: 32px;
  }

  .faq_item {
    margin: 0 auto 0;
    box-shadow: 0 0 2px rgba(0, 0, 0, .12);
    border-radius: 12px;
    box-sizing: border-box;
  }

  .faq_item:not(:first-of-type) {
    margin-top: 16px;
  }

  .question {
    padding: 16px;
  }

  .question img {
    width: 15px;
    height: 14.93px;
    margin: 0 9px 0 0;
  }

  .question p {
    font-size: 16px;
    padding-left: 14px;
    width: 36em;
    background-image: linear-gradient(to top, #D4D2CF, #D4D2CF 1px, transparent 1px);
    background-size: 1px 3px;
  }

  .answer {
    padding: 0 16px 16px 16px;
  }

  .answer .inner {
    padding: 16px 0 0 40px;
    border-top: 1px solid #F2F2F2;
  }

  .answer * {
    font-size: 16px !important;
  }

  .question::before,
  .question::after {
    width: 10px;
    height: 2px;
    right: 12px;
  }

  .faq .btn {
    margin-top: 40px;
  }

  .faq .btn+p {
    font-size: 14px;
    margin-top: 16px;
  }

}

/* company_info */
.company_info {
  background-color: #EBEAE6;
  font-size: 2.933333vw;
  padding: 6.4vw;
}

.company_info dl+dl {
  margin-top: 4.266666vw;
}

.company_info dt p {
  font-weight: 600;
}

.company_info p {
  font-size: 2.933333vw;
}

.company_info ul.square {
  margin: 4.266666vw 0;
}

@media screen and (min-width: 768px) {
  .company_info {
    font-size: 11px;
    padding: 24px 0px;
  }

  .company_info>.inner {
    max-width: 670px;
    width: 100%;
    margin: 0 auto;
  }

  .company_info dl:not(:first-of-type) {
    margin-top: 12px;
  }

  .company_info dt:not(:first-of-type) {
    margin-top: 4px;
  }

  .company_info p {
    font-size: 11px;
  }

  .company_info ul.square {
    margin: 16px 0;
  }
}

/* copy */
.copy {
  padding: 8.53333vw 0;
  text-align: center;
  background-color: #F0EEEC;
}

.copy p {
  font-size: 3.2vw;
  color: #706B61;
}

@media screen and (min-width: 768px) {
  .copy {
    padding: 32px 20px;
  }

  .copy p {
    font-size: 12px;
  }
}

/* float_btn */
.float_btn {
  position: fixed;
  width: 100%;
  bottom: 0;
  background: rgba(247, 245, 243, 0.94);
  padding: 3.2vw 0 5.33333vw;
  z-index: 2;
}

@media screen and (min-width: 768px) {
  .float_btn {
    padding: 12px 0 24px;
  }
}