@charset "utg-8";

/* PC用のCSSはメディアクエリの外に記述する */
.is_sp {
  display: none;
}

.is_sp_flex {
  display: none;
}

.is_pc {
  display: block;
}

.is_pc_flex {
  display: flex;
}

@media screen and (max-width: 959px) {
  /* 959px以下に適用されるCSS（タブレット用） */
  .is_sp {
    display: block;
  }

  .is_sp_flex {
    display: flex;
  }

  .is_pc {
    display: none;
  }

  .is_pc_flex {
    display: none;
  }

  /* ////////////////////////
   header
  //////////////////////// */
  header .container {
    width: 100%;
    height: 60px;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
  }

  header .header_logo {
    width: 210px;
  }

  header .header_nav ul li.reserve {
    width: 60px;
  }

  header .header_nav ul li a {
    height: 60px;
  }

  header .header_nav ul li.reserve a:before {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }

  header .header_nav ul li.spmenu {
    width: 60px;
    position: relative;
  }

  header .header_nav ul li.spmenu a {
    padding-top: 5px;
    row-gap: 8px;
  }

  header .header_nav ul li.spmenu a:before {
    content: "";
    display: block;
    width: 25px;
    height: 25px;
    height: 18px;
    background: url("images/icon_spmenu.png") no-repeat center center;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
  }

  header .header_nav ul li.spmenu a.active:before {
    background: url("images/icon_spmenu_close.png") no-repeat center center;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
  }

  /* header .header_nav ul li.spmenu a:before {
    content: "";
    display: block;
    width: 25px;
    height: 25px;
    height: 18px;
    background: url("images/icon_spmenu.png") no-repeat center center;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    margin: auto;
  }

  header .header_nav ul li.spmenu a.active:before {
    background: url("images/icon_spmenu_close.png") no-repeat center center;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
  } */

  /* ////////////////////////
   header menu_sp
  //////////////////////// */
  header {
    position: relative;
  }

  header .menu_sp {
    display: none;
    position: fixed;
    top: 60px;
    right: 0;
    left: 0;
    background-color: #f2f5f8;
    z-index: 1000;
    width: 100%;
    height: 100vh;
    overflow-y: scroll;
  }

  header .menu_sp .menu_container {
    width: 80%;
    margin: 0 auto;
  }

  .drawer__items {
    padding: 30px 0;
    margin-bottom: 120px;
  }

  .drawer__items li a {
    display: block;
    padding: 15px 0;
  }

  .drawer__items li a.nav_sp {
    color: #6f6f6f;
    position: relative;
    padding-left: 30px;
    font-size: 18px;
    letter-spacing: 2px;
  }

  .drawer__items li a.nav_sp:before {
    content: "";
    display: block;
    width: 12px;
    height: 3px;
    background-color: #42bad4;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin-top: auto;
    margin-bottom: auto;
  }

  .drawer__items li a.nav_reserve_sp {
    width: min(360px, 100%);
    margin-inline: auto;
  }


  /* - - - - - - - - - - - - - - - -
   toppage
  - - - - - - - - - - - - - - - - */
  /* ////////////////////////
   section common
  //////////////////////// */
  section .container {
    width: 90%;
  }

  section .sec_ttl p {
    font-size: 28px;
    letter-spacing: 10px;
  }

  section .sec_ttl h2 {
    font-size: 16px;
    letter-spacing: 5px;
  }

  section .sec_ttl h2:after {
    height: 3px;
    width: 60px;
    margin-top: 12px;
  }

  

  /* ////////////////////////
   visual_wrap
  //////////////////////// */
  #visual_wrap {
    /* background-image: url("images/main_visual10-2-sp.jpg"); */
    /* height: 700px; */
    /* align-items: flex-end;
    width: 100%;
    height: calc((700 / 390) * 100vw);
    margin-top: 60px;
    object-fit: cover; */
    /* width: 100%;
    min-height: 100vh; */
  }

  .visual__slider{
    padding-top: 60px;
  }

  .visual__sliderImg {
    aspect-ratio: 390 / 700;
    /* aspect-ratio: 700 / 390; */
  }

  #visual_wrap .bl_lead p span {
    padding: 0 5px;
    font-size: 36px;
    letter-spacing: 5px;
  }

  #visual_wrap .bl_lead p {
    margin-bottom: 10px;
  }

  #visual_wrap .bl_name {
    margin-bottom: 20px;
  }

  #visual_wrap .bl_name p {
    color: #ffffff;
    font-size: 22px;
    letter-spacing: 2px;
  }

  #visual_wrap .bl_name p span {
    font-size: 12px;
  }

  /* ////////////////////////
   about_wrap
  //////////////////////// */
  #about_wrap {
    background-image: url("images/sec_about_bg_sp.jpg");
  }

  #about_wrap .sec_ct h3 {
    font-size: 20px;
    margin-bottom: 30px;
  }

  #about_wrap .sec_ct p {
    font-size: 16px;
  }

  /* ////////////////////////
   commitment_wrap
  //////////////////////// */
  #commitment_wrap .sec_ct .bl_point ul {
    flex-wrap: wrap;
  }

  #commitment_wrap .sec_ct .bl_point ul li.pt {
    width: 48%;
  }

  #commitment_wrap .sec_ct .bl_point ul li.pt:nth-child(1),
  #commitment_wrap .sec_ct .bl_point ul li.pt:nth-child(2) {
    margin-bottom: 35px;
  }

  #commitment_wrap .sec_ct .bl_recommend {
    background-image: url("images/sec_commitment_bibblebg_sp.png");
    width: 100%;
    padding: 30px 0;
  }

  #commitment_wrap .sec_ct .bl_recommend .bl_bubble {
    width: 280px;
  }

  #commitment_wrap .sec_ct .bl_recommend .bl_checklist {
    flex-wrap: wrap;
  }

  #commitment_wrap .sec_ct .bl_recommend .bl_checklist01 {
    margin-right: 0;
  }

  /* ////////////////////////
   menu_wrap
  //////////////////////// */
  #menu_wrap .bl_menu {
    flex-wrap: wrap;
  }

  #menu_wrap .bl_menu .bl_img {
    width: 100%;
    margin-right: 0;
  }

  #menu_wrap .bl_menu .bl_cont {
    width: 100%;
    text-align: center;
  }

  #menu_wrap .bl_menu .bl_cont p.bl_ttl {
    margin-bottom: 0;
  }

  #menu_wrap .bl_menu .bl_cont p.bl_price {
    margin-bottom: 30px;
  }

  #menu_wrap .bl_menu .bl_btn {
    width: 100%;
  }

  #menu_wrap .bl_menu .bl_btn a {
    width: 100%;
  }

  /* ////////////////////////
   voice_wrap
  //////////////////////// */
  #voice_wrap .bl_voice {
    flex-wrap: wrap;
  }

  #voice_wrap .bl_voice .bl_person {
    width: 100%;
    margin-bottom: 20px;
  }

  #voice_wrap .bl_voice .bl_person .bl_img {
    width: 40%;
  }

  #voice_wrap .bl_voice .bl_person .bl_profile p {
    font-weight: bold;
  }

  #voice_wrap .bl_voice .bl_comment {
    width: 100%;
  }

  /* ////////////////////////
   column_wrap
  //////////////////////// */
  #column_wrap .bl_columns ul li {
    width: 100%;
  }

    /* ////////////////////////
   comic-column_wrap
  //////////////////////// */
  #comic-column_wrap .bl_columns ul li {
    width: 100%;
  }

  /* ////////////////////////
   access_wrap
  //////////////////////// */
  #access_wrap {
    overflow: hidden;
  }

  #access_wrap .bl_access {
    flex-wrap: wrap;
  }

  #access_wrap .bl_access .bl_detail {
    width: 100%;
    margin-bottom: 30px;
  }

  #access_wrap .bl_access .bl_map {
    width: 100%;
  }

  #access_wrap .bl_access .bl_map iframe {
    width: 100vw;
    height: 250px;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 0;
  }

  #access_wrap .bl_collabo .bl_clinic ul li {
    width: 80%;
  }

  /* ////////////////////////
   company_wrap
  //////////////////////// */
  #company_wrap {
    padding-top: 100px;
  }

  #company_wrap .sec_ct {
    flex-wrap: wrap;
  }

  #company_wrap .sec_ct .bl_profile {
    width: 100%;
    flex-wrap: wrap;
  }

  #company_wrap .sec_ct .bl_profile .bl_img {
    width: 100%;
    margin-bottom: 30px;
  }

  #company_wrap .sec_ct .bl_profile .bl_img img {
    width: 50%;
    display: block;
    margin: 0 auto;
  }

  #company_wrap .sec_ct .bl_profile .bl_company {
    width: 100%;
    margin-bottom: 20px;
  }

  #company_wrap .sec_ct .bl_detail {
    width: 100%;
  }

  #company_wrap .sec_ct .bl_detail ul li {
    flex-wrap: wrap;
  }

  #company_wrap .sec_ct .bl_detail ul li:before {
    display: none;
  }

  #company_wrap .sec_ct .bl_detail ul li p.bl_bold {
    width: 100%;
    padding-left: 0;
    position: relative;
    padding-bottom: 5px;
    margin-bottom: 8px;
  }

  #company_wrap .sec_ct .bl_detail ul li p.bl_bold:before {
    content: "";
    display: block;
    width: 100%;
    height: 3px;
    background-color: #e38fa7;
    position: absolute;
    bottom: 0;
  }

  #company_wrap .sec_ct .bl_detail ul li p.bl_txt {
    width: 100%;
  }

  .warranty {
    padding-block: 100px 80px;
  }

  .warranty__titleDecoration::before{
    position: absolute;
    content: "";
    background-image: url("images/crown-icon.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 17px;
    height: 32px;
    top: 50%;
    left: calc(50% - 110px);
    transform: translateY(-87%);
  }

  .warranty__titleDecoration::after{
    position: absolute;
    content: "";
    background-image: url("images/crown-icon.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 17px;
    height: 32px;
    top: 50%;
    right: calc(50% - 104px);
    transform: translateY(-87%) rotateY(180deg);
  }

  .warranty__texts {
    margin-top: 32px;
  }

  .p-sponsor__items {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
  }

  .p-support__text {
    text-align: left;
    word-break: auto-phrase;
  }

  .p-support__items {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
  }

  .sitemap__list {
    display: block;
  }

  .sitemap__item:nth-child(n+2) {
    margin-top: 40px;
  }



}
@media screen and (max-width: 480px) {
  /* 480px以下に適用されるCSS（スマホ用） */

  /* - - - - - - - - - - - - - - - -
   column_page
  - - - - - - - - - - - - - - - - */
  .page_column .column_ct {
    padding: 40px 30px;
  }

  .page_column .column_ct ul {
    margin: 1em 0;
    padding-left: 40px;
    list-style-type: disc;
    background-color: #ffeaee;
    border-radius: 20px;
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding: 20px 30px;
    margin-bottom: 30px;
  }

  .page_column .column_ct ol {
    margin: 1em 0;
    padding-left: 40px;
    list-style-type: decimal;
    background-color: #ffeaee;
    border-radius: 20px;
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding: 20px 30px;
    margin-bottom: 30px;
  }

  .p-sponsor__items {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .p-support__items {
    grid-template-columns: 1fr;
    gap: 32px;
  }

}

/* SPサイズ非表示 */
@media screen and (max-width: 768px) {
  .is-sp {
    display: none;
  }
}

/* PCサイズ非表示 */
@media screen and (min-width: 769px) {
  .is-pc {
    display: none;
  }
}


