/* planページ用css */
.plan_sp {
  display: block;
}

.plan_pc {
  display: none;
}

@media (min-width: 1105px) {
  .plan_sp {
    display: none;
  }

  .plan_pc {
    display: block;
  }
}

/* ----- old css ----- */
#plan .cp_tabpanels {
  display: flex;
  margin-top: 120px;
  position: relative;
  padding-left: 5%;
  text-align: center;
}

#plan dl.price01 {
  width: 100%;
  padding: 25px 20px;
}

#plan dl.price02 {
  width: 100%;
  padding: 25px 20px;
}

#plan dl.price03 {
  width: 100%;
  padding: 25px 20px;
  height: 100%;
}

#plan dl dt {
  position: relative;
  top: -100px;
  margin: 0 auto -70px auto;
  font-size: 80%;
}

#plan dl dd.tl {
  margin: 15px auto 20px auto;
  text-align: center;
}

#plan dl dd {
  margin: 0 auto;
  text-align: center;
}

#plan .cp_tab input[type='radio'],
#plan .cp_tab label {
  display: none;
}

#plan dl dd ul {
  list-style-type: none;
  text-align: left;
}

#plan dl dd ul li {
  margin: 3px 0px;
}

@media screen and (max-width:1104px) {

  #plan #first_tab01,
  #plan #second_tab01,
  #plan #third_tab01 {
    margin-right: 0;
    padding-right: 0;
    padding-left: 0;
    width: 100%;
  }

  #plan .txt {
    width: 90%;
    margin: 0 auto;
  }

  #plan .cp_tabpanels {
    letter-spacing: normal;
    display: block;
    margin-left: 0px;
    left: 0px;
    margin-top: 90px;
    padding-left: 0px;
  }

  #plan .cp_tab input[type='radio'],
  #plan .cp_tab label {
    letter-spacing: normal;
    display: inline-block;
  }

  #plan .cp_tab *,
  .cp_tab *:before,
  .cp_tab *:after {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }

  #plan .cp_tab {
    letter-spacing: -.40em;
    margin: 3em auto 0 auto;
    text-align: center;
  }

  #plan .cp_tab>input[type='radio'] {
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    outline: none;
    background: none;
    -webkit-appearance: none;
    appearance: none;
    display: none;
  }

  #plan .cp_tab .cp_tabpanel {
    display: none;
  }

  #plan .cp_tab>input:first-child:checked~.cp_tabpanels>.cp_tabpanel:first-child,
  #plan .cp_tab>input:nth-child(3):checked~.cp_tabpanels>.cp_tabpanel:nth-child(2),
  #plan .cp_tab>input:nth-child(5):checked~.cp_tabpanels>.cp_tabpanel:nth-child(3),
  #plan .cp_tab>input:nth-child(7):checked~.cp_tabpanels>.cp_tabpanel:nth-child(4),
  #plan .cp_tab>input:nth-child(9):checked~.cp_tabpanels>.cp_tabpanel:nth-child(5),
  #plan .cp_tab>input:nth-child(11):checked~.cp_tabpanels>.cp_tabpanel:nth-child(6) {
    display: block;
  }

  #plan .cp_tab>label {
    font-weight: bold;
    text-align: center;
    position: relative;
    display: inline-block;
    padding: 10px 22px;
    margin: 0 auto;
    cursor: pointer;
    border-collapse: collapse;
  }

  #plan .cp_tab>input:first-child:checked+label {
    font-weight: bold;
    text-align: center;
    color: #FFF;
    border-collapse: collapse;
  }

  #plan .cp_tab>input:nth-child(3):checked+label {
    font-weight: bold;
    text-align: center;
    color: #FFF;
    border-collapse: collapse;
  }

  #plan .cp_tab>input:nth-child(5):checked+label {
    font-weight: bold;
    text-align: center;
    color: #FFF;
    border-collapse: collapse;
  }
}

/* ----- new css ----- */
/* 料金プラン */
#plan {
  padding: 113px 0 0;
  background-color: #000;
  border-bottom: none;
}

.planpage_space {
  padding: 8px;
}

#plan .section_title {
  margin-top: 0px;
  padding-left: 8px;
  font-size: 58px;
  text-align: left;
  letter-spacing: 0.02em;
  line-height: 1;
  font-family: futura-pt, sans-serif;
  font-weight: 600;
  border-top: 0.5px solid #fff;
}

#plan .section_sub_title {
  padding-left: 8px;
  border-top: 0.5px solid #fff;
  border-bottom: none;
}

#plan .section_description {
  padding: 0 8px;
}

#plan .color_box {
  margin-top: 20px;
  border-top: 0.5px solid #fff;
  border-bottom: 0.5px solid #fff;
}

#plan .cp_tab {
  margin-top: 0;
  font-size: 20px;
}

#plan .cp_tab>input:first-child:checked+label,
#plan .cp_tab>input:nth-child(3):checked+label,
#plan .cp_tab>input:nth-child(5):checked+label {
  color: #000;
  background: #fff;
  border: none;
}

#plan .cp_tab>label:nth-child(2),
#plan .cp_tab>label:nth-child(4),
#plan .cp_tab>label:nth-child(6) {
  color: #fff;
  border-bottom: 0.5px solid #fff;
}

#plan .cp_tab>label:nth-child(2),
#plan .cp_tab>label:nth-child(4) {
  border-right: 0.5px solid #fff;
}

#plan .cp_tab>label:nth-child(6) {
  border-right: none;
}

#plan dl.price01,
#plan dl.price02,
#plan dl.price03 {
  width: 100%;
  max-width: 400px;
  box-sizing: border-box;
}

#plan #first_tab01 {
  padding-left: 0;
}

#plan .cp_tab>label {
  width: calc(100% / 3);
  padding: 15px 0;
  border: none;
  font-family: futura-pt, sans-serif;
  font-weight: 500;
}

.plan_class {
  display: none;
}

#plan .plan_disc_txet {
  font-size: 14px;
  margin-bottom: 10px;
}

#plan .plan_disc_txet b {
  font-size: 20px;
  font-weight: bold;
}

#plan .cp_tabpanels {
  margin-top: 40px;
  color: #ffffff;
}

#plan dl.price01,
#plan dl.price02,
#plan dl.price03 {
  margin: 0 auto;
  padding: 0 30px 30px;
  box-sizing: border-box;
}

#plan .plan_price {
  margin: 20px 0;
  padding: 24px 0 20px;
  font-size: 24px;
  line-height: 1em;
  border-top: solid 1px #09499d;
  border-bottom: solid 1px #09499d;
}

#plan .plan_price_font {
  font-size: 27px;
  line-height: 1;
  font-family: futura-pt, sans-serif;
  font-weight: 500;
  letter-spacing: 0;
}

#plan .cp_tabpanel dd ul {
  margin-top: 20px;
}

#plan .plan_tax {
  font-size: 13px;
}

#plan .custom_txt {
  margin: 20px 0;
  padding: 20px 35px;
  font-size: 18px;
  line-height: 1.8;
  border: 1px solid #09499d;
}

#plan .plan_disc_txet2 {
  margin-top: 12px;
}

#plan .cp_tabpanel .custom_txt ul {
  margin-top: 0;
}

#plan .custom_subtxt {
  font-size: 20px;
  letter-spacing: 0.1em;
}

#plan .cp_tabpanel .button {
  width: 100%;
}

#plan .plan_content_box {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

#plan .plan_content_box li {
  display: flex;
  width: 49%;
  height: 45px;
  padding: 0 8px;
  font-size: 12px;
  line-height: 1;
  align-items: center;
  background: #222;
}

.check_text {
  margin-right: 5px;
  color: #2C74ED;
}

.uncheck {
  color: #999;
}

.mainplan .button {
  margin: 30px auto;
}

.mainplan_contact {
  padding: 0 8px;
  border-top: 0.5px solid #fff;
}

.planpage_space_01 {
  border-top: 0.5px solid #fff;
}

.planpage_space_02 {
  text-align: right;
  border-bottom: 0.5px solid #fff;
}

/* プラン詳細 */
#plan .plan_name {
  margin-top: 30px;
  margin-bottom: 15px;
  padding-left: 8px;
  font-size: 30px;
}

@media (min-width: 1105px) {

  /* 料金プラン */
  #plan {
    padding: 166px 0 0;
  }

  #plan .section_title {
    margin-left: calc((100% - 1000px)/2);
    margin-right: calc((100% - 1000px)/2);
  }

  #plan .section_title {
    padding-left: 0px;
    font-size: 100px;
    letter-spacing: 0.05em;
    text-align: left;
    border-top: 1px solid #fff;
  }

  #plan .section_sub_title {
    padding-left: calc((100% - 1000px)/2);
    margin-right: calc((100% - 1000px)/2);
    border-top: 1px solid #fff;
  }

  #plan .section_description {
    margin-left: calc((100% - 1000px)/2);
    padding-right: calc((100% - 1000px)/2);
    padding-left: 0;
    padding-bottom: 40px;
  }

  #plan .description_area,
  #plan .plan_name {
    margin-left: calc((100% - 1000px)/2);
    margin-right: calc((100% - 1000px)/2);
  }

  #plan .color_box {
    margin-top: 0;
    margin-left: calc((100% - 1000px)/2);
    margin-right: calc((100% - 1000px)/2);
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
  }

  .planpage_space {
    padding: 12px 0;
  }

  #plan .cp_tab {
    font-size: 24px;
    margin-left: calc((100% - 1000px)/2);
    margin-right: calc((100% - 1000px)/2);
  }

  #plan .cp_tabpanels {
    margin-top: 0;
    padding-left: 0;
    border-bottom: 1px solid #fff;
  }

  #plan #first_tab01,
  #plan #second_tab01 {
    width: 333px;
    padding-right: 0;
    border-left: 1px solid #fff;
  }

  #plan #third_tab01 {
    width: 333px;
    padding-right: 0;
    border-left: 1px solid #fff;
    border-right: 1px solid #fff;
  }

  #plan dl.price01,
  #plan dl.price02,
  #plan dl.price03 {
    padding: 30px;
  }

  #plan .plan_class {
    display: block;
    margin-bottom: 15px;
    font-size: 32px;
    letter-spacing: 0.02em;
    line-height: 1;
    font-family: futura-pt, sans-serif;
    font-weight: 600;
  }

  .mainplan_contact {
    padding: 0;
    border-top: none;
  }

  .planpage_space_01 {
    padding-left: calc((100% - 1000px)/2);
    margin-right: calc((100% - 1000px)/2);
    border-top: 1px solid #fff;
  }

  /* プラン詳細 */
  #plan .plan_name {
    margin-top: 60px;
    margin-bottom: 20px;
    padding: 0;
  }

  .planpage_space_02 {
    padding-left: calc((100% - 1000px)/2);
    padding-right: calc((100% - 1000px)/2);
    border-bottom: 1px solid #fff;
  }
}
