/*
Theme Name: りぷ文通
Theme URL: rep-buntsu.com
Description: Original Theme
Author: Replact.
*/

/***
共通
**/
:root{
  --border-radius: 3px;
}

html {
  font-size: 62.5%;
}

body{
  font-family: 'Zen Maru Gothic', sans-serif;
  font-size: 1.7rem;
}

a{
  text-decoration: none;
  color: #5396f9;
}

a:hover{
  text-decoration: underline;
}

dt{
  background: #f2f8ef;
  padding: 20px;
  font-size: 1.6rem;
}

dd{
  border: 3px solid #f2f8ef;
  padding: 20px;
  font-size: 1.5rem;
  margin-bottom: 15px;

  & p{
    margin-bottom: 1em;
    letter-spacing: .03rem;
    line-height: 2.8rem;
  }
}

.text_left{
  text-align: left;
}

.text_center{
  text-align: center;
}

.not_br_div br{
  display: none;
}

@media (min-width: 768px){
  .not_br_div br{
    display: block;
  }
}

/** reCAPTCHA　バッジを非表示 **/
.grecaptcha-badge {
  visibility: hidden;
}

.wrap_area{
  width: 100%;
  padding-right: 20px;
  padding-left: 20px;
  margin: 0 auto;
}

/** 768px以上 **/
@media (min-width: 768px){
  .wrap_area{
    max-width: 750px;
  }
}

/** 1024px以上 **/
@media (min-width: 1024px){
  .wrap_area{
    max-width: 900px;
    padding: 0;
  }
}

/** 1240px以上 **/
@media (min-width: 1240px){

}

/**
* ヘッダー
**/
.header{
  background: white;
  padding: 30px 0;
  width: 100%;
  position: fixed;
  z-index: 999;
  top: 0;
}

.header_inner{
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  padding: 0 40px;
  gap: 0;
}

.header_nav_desktop{
  display: flex;
  gap: 35px;
  margin-bottom: 0;
  padding: 0;
  & li{
    list-style: none;
  }
  & a{
    color: #ddadc4;
    font-size: 1.5rem;
    font-weight: bold;
    text-decoration: none;
    transition: .2s;
  }
  & a:hover{
   color: #e18db4;
  }
}

.header_logo{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: max-content;
}

.site_title{
  color: #e7b4cc;
  font-size: 2rem;
  font-weight: bold;
  transition: .2s;
  &:hover{
    text-decoration: none;
    color: #e18db4;
  }
}

/** ハンバーガーメニュー **/
#header_menu_btn {
  cursor: pointer;
  height: 22px;
  width: 25px;
  position: relative;
  transition: .2s;
  &:hover .header_menu_btn_line{
    background: #e18db4;
  }
}

.header_menu_btn_line {
  background: #e7b4cc;
  border-radius: 3px;
  position: absolute;
  right: 0;
  transform-origin: right;
  transition: .3s;
  height: 4px;
  width: 100%;
  z-index: 100;
}

.header_menu_btn_line:first-child{
  top: 0;
}

.header_menu_btn_line:nth-child(2){
  top: 9px;
}

.header_menu_btn_line:nth-child(3){
  bottom: 0;
}

#header_menu_btn.active .header_menu_btn_line:first-child{
  transform: rotate(-45deg);
}

#header_menu_btn.active .header_menu_btn_line:nth-child(2){
  opacity: 0;
}

#header_menu_btn.active .header_menu_btn_line:nth-child(3){
  transform: rotate(45deg);
}


/* ハンバーガーメニューのコンテンツ */
.header_menu_content{
  position: fixed;
  top: 0;
  right: 0;
  width: 500px;
  height: 100%;
  background: white;
  z-index: 80;
  transition: .2s;
  visibility: hidden;
  opacity: 0;
}

#header_menu_btn.active + .header_menu_content{
  visibility: visible;
  opacity: 1;
}

.header_inner::after {
  background: rgb(197 197 197 / 50%);
  backdrop-filter: blur(3px);
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0.2s, opacity 0.2s;
}

.header_inner.overlay-active::after {
  visibility: visible;
  opacity: 1;
}

.header_menu_content_header{
  display: flex;
  justify-content: center;
  align-items: center;
  height: 82px;
}

.header_menu_content_body{
  padding: 40px;
  padding-top: 50px;
}

.header_menu_content_footer{
  padding: 40px;
}

.header_menu_content_loginBtn {
  background: #e7b4cc;
  border-radius: 3px;
  color: white;
  display: block;
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 55px;
  padding: 15px;
  text-align: center;
  transition: .2s;
  width: 100%;
  &:hover {
    background: #e18db4;
    color: white;
    text-decoration: none;
  }
}

.header_menu_content_nav{
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 0;
  margin: 0;
  & li{
    list-style: none;
  }
  & a{
    color: #333;
    font-size: 2rem;
    font-weight: bold;
    text-decoration: none;
    &:hover{
      text-decoration: underline;
    }
  }
}

.header_menu_snsBox{
  display: flex;
  justify-content: left;
  gap: 15px;
  & a:hover{
    text-decoration: underline;
    & svg{
      fill: #e18db4;
    }
  }
  & svg{
    height: 25px;
    width: 25px;
    transition: .2s;
  }
}

@media (max-width: 768px) {
  .header_nav_desktop{
    display: none;
  }

  .header_inner{
    justify-content: end;
  }

  .header_menu_content{
    width: 100%;
  }

  .header_menu_content_body,
  .header_menu_content_footer{
    padding: 20px;
  }
}

/**
Main
**/
.main{
  padding-top: 70px;
}

.asirai{
  background: #f2f8ef;
  padding: 70px 0;
}

.section_box{
  padding-top: 120px;
  padding-bottom: 50px;
}

.section_box_small{
  padding: 0;
  padding-bottom: 25px;
}

.section_header{
  margin-bottom: 50px;
}

.section_title{
  font-size: 2.7rem;
  font-weight: bold;
  margin-bottom: 43px;
  text-align: center;
}

.section_subTitle{
  font-size: 2.4rem;
  font-weight: bold;
  margin-bottom: 30px;
  text-align: left;
  line-height: 3.4rem;
}

.section_sub_title{
  font-size: 1.7rem;
  margin-bottom: 20px;
  text-align: center;
  margin-top: 56px;
}

.section_desc{
  font-size: 1.7rem;
  line-height: 2.9rem;
  letter-spacing: .03rem;
  margin-bottom: 20px;
}

.section_desc_omoi{
  background: #f2f8f2;
  border-radius: 3px;
  font-size: 1.5rem;
  padding: 30px;
  line-height: 2.7rem;
}

.section_videoBox{
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 20px;
  aspect-ratio: 16 / 9;

  & iframe{
    width: 100%;
    height: 100%;
    border-radius: 7px;
  }
}

@media not all and (min-width: 768px){
  .section_box{
    padding-top: 80px;
    padding-bottom: 100px;
  }

  .section_title{
    font-size: 2.4rem;
    margin-bottom: 30px;
  }

  .section_desc{
    font-size: 1.55rem;
  }
}

/** フッター **/
.footer{
  color: white;
}

.footer_top{
  background: #f2f8ef;
  padding: 50px 0;
  color: #333;
}

.footer_middle{
  background: #e7b4cc;
  padding: 50px 0;
  color: white;
}

.footer_bottom{
  background: #ddadc4;
}

.footer_top_word{
  font-size: 2.5rem;
  text-align: center;
  margin-bottom: 45px;
}

.footer_top_desc span{
  font-size: 1.2rem;
}

.footer_nav_ul{
  list-style-type: none;
  display: flex;
  justify-content: space-between;
  padding: 0;
}

.footer_nav_ul h3{
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 15px;
}

.footer_nav_ul h4{
  font-size: 1.3rem;
  font-weight: bold;
  margin-bottom: 10px;
}

.footer_nav_child_ul{
  list-style-type: none;
  padding-left: 0;
  margin-bottom: 15px;
}

.footer_nav_child_ul li{
  margin-bottom: 5px;
}

.footer_nav_child_ul a{
  color: white;
  font-size: 1.3rem;
}

.copyright{
  font-size: 1.5rem;
  text-align: center;
  padding: 20px 0;
}

@media not all and (min-width: 940px){
  .footer_nav_ul{
    display: block;
    padding-left: 0;
  }

  .footer_nav_ul > li{
    margin-bottom: 30px;
  }
}

/** 個別記事 **/
.article{
  min-height: 1000px;
  padding: 70px 110px;
}

.article_inner{
  padding: 25px 0;
}

.article_header{
  margin-bottom: 85px;
}

.article_header time{
  font-size: 2rem;
}

.article_title{
  font-size: 2.9rem;
  margin-top: 20px;
  line-height: 4.3rem;
}

/** 記事内の装飾 **/
.article_main{
  font-size: 1.6rem;
  margin-bottom: 100px;
}

.article_main h2{
  font-size: 2.4rem;
  margin-bottom: 25px;
  margin-top: 95px
}

.article_main h3{
  font-size: 2.2rem;
  margin-bottom: 25px;
  margin-top: 50px;
  border-left: 4px solid #e7b4cc;
  padding: 2px 10px;
}

.article_main h4{
  font-size: 2rem;
  margin-bottom: 25px;
  margin-top: 50px
}

.article_main p{
  margin-bottom: 1em;
  letter-spacing: .03rem;
  line-height: 2.8rem;

  & img{
    margin-bottom: 0;
  }
}

.article_main img{
  border-radius: 3px;
  margin-bottom: 15px;
}

.article_main table,
.column_box table{
  width: 100%;
  margin-bottom: 15px;
}

.article_main th,
.column_box th{
  background: #f2f8ef;
  width: 222px;
  text-align: center;
}

.article_main td,
.article_main th,
.column_box td,
.column_box th{
  border: 1px solid #bdd7b1;
  padding: 20px;
  font-size: 1.35rem;
  line-height: 2.8rem;
}

.article_main table p,
.column_box table p{
  margin: 0;
}

.page_img{
  width: 100%;
  border-radius: 7px;
  margin-bottom: 35px;
}

/**
スクロールテーブル
**/
.scroll_table{
  overflow-x: auto;
  margin-bottom: 20px;
}

.scroll_table table{
  min-width: 620px;
}

/***/

.article_main li{
  margin-bottom: 5px;
  font-size: 1.45rem;
}

.article_main li p{
  margin: 0;
}


.article_news_more{
  display: flex;
  justify-content: center;
  align-items: center;
  height: 110px;
}

.article_news_more_link{
  font-size: 2rem;
  color: #333;
}

@media not all and (min-width: 768px){
  .article{
    padding: 55px 0px;
    padding-top: 11px;
  }

  .article_header{
    margin-bottom: 55px;
  }

  .article_title{
    font-size: 2.5rem;
    margin-top: 7px;
  }

  .article_main p,
  .article_main ul,
  .article_main ol{
    font-size: 1.6rem;
  }

  .article_main table p{
    font-size: 1.5rem;
  }
}

/** パンくずリスト **/
.breadcrumb{
  display: flex;
  flex-wrap: wrap;
  list-style-type: none;
  padding-left: 0;
  margin-bottom: 15px;
}

.breadcrumb li{
  font-size: 1.2rem;
}

.breadcrumb a{
  color: #666;
}

.bread_next{
  position: relative;
  padding-left: 20px;
  margin-left: 10px;
}

.bread_next::before{
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  margin: auto;
  width: 8px;
  height: 8px;
  border-right: 1px solid #999;
  border-top: 1px solid #999;
  transform: translateY(-50%) rotate(45deg);
}

/** カテゴリー **/
.category{
  padding-top: 110px;
  margin-bottom: 130px;
}

.category_header{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 60px;
}

.category_count{
  font-size: 2rem;
}

.category_boxs{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 45px;
}

.category_item{
  width: calc(50% - 10px);
}

.category_item:hover{
  & .category_description h3{
    color: #e7b4cc;
  }

  & .category_item_picture img{
    transform: scale(1.2);
  }
}

.category_item_picture{
  aspect-ratio: 1.618 / 1;
  overflow: hidden;
  border-radius: 3px;
  display: block;

  & img{
    aspect-ratio: 1.618 / 1;
    display: block;
    max-width: 100%;
    transition: transform 0.2s ease;
  }
}

.category_description{
  padding-top: 10px;
  min-height: 125px;

  & h3{
    color: #333;
    font-size: 1.6rem;
    font-weight: bold;
    line-height: 2.6rem;
    transition: color 0.2s ease;

    font-size: 1.5rem;
    line-height: 2.4rem;
  }
}

.category_item_link:hover{
  text-decoration: none;
}

.category_tags{
  margin-bottom: 5px;
  & span{
    background: #ccc;
    padding: 4px 8px;
    font-size: 1.3rem;
    border-radius: 3px;
    color: white;
    font-weight: bold;
    margin-right: 8px;
  }

  & time{
    font-size: 1.5rem;
    color: #999;
  }
}

/** 768px以上 **/
@media (min-width: 768px){
  .category_boxs{
    gap: 15px;
  }

  .category_item{
    width: calc(33.3333333% - 15px);
  }

  .category_description h3{
    font-size: 1.6rem;
    line-height: 2.6rem;
  }
}

/** Contact form 7 **/
.wpcf7-textarea{
  width: 100%;
}

.wpcf7-form-control:not(.wpcf7-submit){
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 5px 10px;
  margin: 3px;
  margin-left: 0;
  margin-bottom: 0;
  font-size: 1.4rem;
}

@media not all and (min-width: 768px){
  .wpcf7 input,
  .wpcf7 textarea,
  .wpcf7 select{
    width: 100%;
  }
}

/**
* コンタクト
**/

.contact_item{
  padding: 19px 28px;
  padding-bottom: 1px;
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  border-radius: 3px;
  margin-bottom: 30px;
}

.contact .contact_item .contact_title{
  margin-bottom: 3px;
  font-weight: bold;
}

.contact_body p{
  margin: 0;
}

@media not all and (min-width: 768px){
  .contact_body .join_small_word{
    font-size: 1.3rem;
  }
}

/** りぷ友 シングルページ **/
.rs_inner{
  padding: 0 110px;
}

.rs_header{
  background: #f2f8ef;
}

.rs_header_inner{
  padding-top: 50px;
  text-align: center;
  overflow: hidden;
}

.rs_img{
  background: white;
  border: 4px solid #ccc;
  border-radius: 100%;
  height: 150px;
  width: 150px;
  margin-bottom: 20px;
}

.rs_name{
  font-size: 2.6rem;
  margin-bottom: 25px;
}

.rs_message{
  color: #668160;
  font-size: 1.5rem;
  text-align: left;
  margin-bottom: 20px;
}

.rs_message p{
  margin-bottom: 0;
}

.rs_badge{
  margin-bottom: 20px;
}

.rs_badge_inner{
  display: flex;
  gap: 5px;
}

.rs_badge_img{
  height: 30px;
}

.rs_main{
  margin-bottom: 30px;
}

.rs_sukitag{
  color: #9d9797;
  font-size: 1.4rem;
  margin-right: 5px;
}

.rs_sukitag:hover{
  color: #e7b4cc;
}

.rs_main_inner{
  padding-top: 20px;
}

.rs_waring{
  background: #ff7878;
  border-radius: 7px;
  color: white;
  padding: 4px 14px;
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 20px;
}

.rs_waring p{
  margin: 0;
}

.rs_main_box{
  display: flex;
  flex-wrap: wrap;
}

.rs_content{
  min-height: 500px;
  padding-top: 20px;
}

.rs_profile{
  width: 100%;
}

.rs_profile_table{
  width: 100%;
  font-size: 1.6rem;
}

.rs_profile_table th{
  font-weight: normal;
  padding: 10px;
  min-width: 240px;
  padding-left: 30px;
}

.rs_profile_table tr{
  padding: 10px 0;
  display: block;
  border-bottom: 1px solid #ccc;
}

.tab-label {
  padding: 7px 0;
  order: -1;
  font-size: 1.5rem;
  font-weight: bold;
  color: #686363;
  border-radius: 6px;
  cursor: pointer;
  width: calc(33.3333333%);
  text-align: center;
}

.tab-content {
    width: 100%;
    display: none;
}

/* アクティブなタブ */
.tab-switch:checked+.tab-label {
    background: #f2f8ef;
}

.tab-switch:checked+.tab-label+.tab-content {
     display: block;
}

/* ラジオボタン非表示 */
.tab-switch {
    display: none;
}

.rs_footer_inner{
  padding-top: 20px;
  margin-bottom: 40px;
  overflow: hidden;
}

/**
りぷ友検索のシングル　｜　おすすめのりぷ友
**/
.rs_recommend_title{
  border-left: 4px solid #e7b4cc;
  font-size: 2rem;
  padding: 10px 15px;
  margin-bottom: 20px;
}

.rs_pager{
  display: flex;
  justify-content: center;
  gap: 5px;
  margin-bottom: 20px;
}

.rs_pager_link{
  background: #f2f8ef;
  padding: 40px 60px;
  border-radius: 3px;
  font-size: 1.5rem;
  color: #dd5696;
  width: calc(50% - 5px);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: space-between;

  &:hover{
    text-decoration: none;

    & .rs_pager_left{
      transform: translateX(-10px);
    }

    & .rs_pager_right{
      transform: translateX(10px);
    }
  }

  & svg{
    color: #c7c7c7;
    height: 48px;
  }
}

.rs_pager_name{
  color: #333;
  font-size: 1.6rem;
  font-weight: bold;
}

.rs_pager_title{
  margin: 0;
  color: #333;
  font: 1.4rem;
}

@media not all and (min-width: 768px){
  .rs_inner{
    padding: 0;
  }

  .tab-label{
    font-size: 1.4rem;
  }

  .rs_profile_table{
    font-size: 1.5rem;
  }

  .rs_profile_table th{
    min-width: 185px;
    padding-left: 15px;
  }

  .rs_pager_link{
    padding: 16px 20px;

    &:hover{
      transform: translateY(3px);
    }

    & svg{
      height: 30px;
    }
  }

  .rs_pager_name{
    font-size: 1.5rem;
  }
}

/**
りぷ友検索
**/
.riputomo_archive{
  margin-bottom: 100px;
}

.riputomo_form{
  margin: 20px 0;
}

.riputomo_form_wrap{
  background: #f2f8ef;
  border-radius: 7px;
  padding: 20px;
}

.riputomo_input{
  border: 2px solid #e7b4cc;
  border-radius: 3px;
  font-size: 1.55rem;
  padding: 4px 10px;
}

.riputomo_input_keyword{
  width: 350px;
  padding: 7px 10px;
}

.riputomo_select{
  width: fit-content;
}

.riputomo_form_keyword{
  margin-bottom: 20px;
}

.riputomo_form_details{
  border-radius: 5px;
  margin-bottom: 20px;
}

.riputomo_form_title{
  font-size: 1.5rem;
  font-weight: bold;
}

.riputomo_form_table{
  font-size: 1.5rem;
}

.riputomo_form_result{
  background: #e2eddd;
  width: 100%;
  border-radius: 5px;
  margin-bottom: 20px;
  padding: 10px;
}

.riputomo_form_result_box{
  padding: 5px;
}

.riputomo_form_result_word{
  font-size: 1.4rem;
  margin-bottom: 3px;
  font-weight: bold;
}

@media not all and (min-width: 768px){
  .riputomo_input_keyword,
  .riputomo_form button{
    width: 100%;
  }
}

/**
りぷ友
**/
.user_box{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.user_item{
  background: #F2F8EF;
  border-radius: 7px;
  width: calc(33.3333333% - 10px);
  border: 3px solid #f2f8ef;
  overflow: hidden;
}

.user_item:hover{
  transform: translateY(3px);
}

.user_link{
  display: block;
  color: #333;
  height: 100%;
}

.user_link:hover{
  text-decoration: none;
  color: #333;
}

.user_header{
  max-height: 120px;
  overflow: hidden;
}

.user_header_back_img{
  width: 100%;
}

.user_bukatu{
  font-weight: bold;
  background: #e7b4cc;
  color: white;
  padding: 5px 10px;
  border-radius: 7px;
  font-size: 1.2rem;
  margin-right: 5px;
}

.user_tag{
  color: #9d9797;
  font-size: 1.2rem;
  margin-right: 5px;
  margin-bottom: 5px;
  line-height: 1.8rem;
}

.riputomo_badge{
  position: absolute;
  height: 28px;
  opacity: .7;
}

.rb_1{
  top: 0;
  left: 0;
}

.rb_2{
  top: 0;
  left: 30px;
}

.rb_3{
  top: 0;
  left: 60px;
}

.user_desc{
  font-size: 1.2rem;
  padding: 20px;
  position: relative;
  padding-top: 48px;
}

.user_img{
  background: white;
  border: 3px solid #f2f8ef;
  border-radius: 100%;
  height: 95px;
  width: 95px;
  position: absolute;
  top: -52px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 888;
}

.user_badge{
  margin-bottom: 10px;
  display: flex;
  gap: 5px;
}

.user_badge_img{
  height: 25px;
}

.user_name{
  font-size: 1.6rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 0px;
}


@media not all and (min-width: 1200px){
  .user_item{
    width: calc(50% - 10px);
  }
}

@media not all and (min-width: 768px){
  .user_box{
    gap: 5px;
  }

  .user_header{
    display: block;
  }

  .user_header figure{
    text-align: center;
  }

  .user_item{
    width: calc(50% - 5px);
  }

  .user_name{
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 0px;
  }

  .user_desc{
    font-size: 1.25rem;
  }

  .user_adress{
    font-size: 1.3rem;
    font-weight: bold;
    margin-bottom: 20px;
  }
}

/**
シングル記事のアドセンス
**/
.single_ad{
  margin-bottom: 40px;
  min-height: 300px;
}

.single_ad_test{
  height: 280px;
  width: 336px;
  background: red;
}


/**
ボタン
**/
.btn,
.wpcf7-submit{
  width: fit-content;
  background: #e7b4cc;
  border: 1px solid #e7b4cc;
  border-radius: 55px;
  color: white;
  display: block;
  text-align: center;
  padding: 18px 33px;
  margin: 0px auto;
  font-size: 1.55rem;
}

.btn:hover,
.wpcf7-submit:hover{
  background: #e18db4;
  color: white;
  text-decoration: none;
}

.btn_small,
.wpcf7-submit{
  border-radius: 7px;
  font-size: 1.5rem;
  padding: 10px 25px;
  letter-spacing: 0.14rem;
}

.btn_key{
  font-size: 1.17rem;
  text-align: center;
  margin-bottom: 8px;
  font-weight: bold;
}

.btn_box{
  padding-top: 10px;
}

/**
ページテンプレート
**/
.page_article{
  padding: 70px 0;
}


/**
プラン
**/
.plan_boxs{
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 20px;
}

.plan_trial_box{
  background: #f2f8ef;
  border-radius: 3px;
  width: 100%;
  padding: 40px 15px 30px 15px;
  margin-bottom: 10px;
}

.plan_item{
  background: #f2f8ef;
  border-radius: 7px;
  width: calc(25% - 10px);
  padding: 20px;
}

.plan_trial_item{
  margin: 0 auto;
}

.plan_title{
  text-align: center;
  font-size: 1.7rem;
  font-weight: bold;
  margin-bottom: 7px;
}

.plan_priceBox{
  margin-bottom: 20px;
}

.plan_priceBox_price{
  font-size: 2.5rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 0px;
}

.priceBox_price_big{
  font-size: 2.7rem;
}

.plan_priceBox_taxPrice{
  font-size: 1.4rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 0px;
}

.plan_key{
  font-size: 1.17rem;
  text-align: center;
  margin-bottom: 30px;
  font-weight: bold;
  background: #ffffff;
  border-radius: 3px;
  padding: 5px 0;
}

.plan_warning{
  color: #898989;
  font-size: 1.2rem;
}

@media not all and (min-width: 768px){
  .plan_item{
    width: 100%;
  }
}

/**
メリット
**/
.merit_box{
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}

.merit_item{
  background: #f2f8ef;
  border-radius: 7px;
  width: calc(33.3333333% - 3px);
  padding: 20px;
}

.merit_num{
  font-size: 2rem;
}

.merit_title{
  font-weight: bold;
  font-size: 1.5rem;
  text-align: center;
  line-height: 2.1rem;
  margin-bottom: 10px;
}

.merit_img{
  margin-bottom: 20px;
  text-align:center;
}

.merit_desc{
  font-size: 1.35rem;
  color: #878787;
  font-weight: bold;
  padding: 0 16px;
}

@media not all and (min-width: 768px){
  .merit_item{
    width: calc(50% - 3px);
  }

  .sp_block_span{
    display: block;
  }

  .merit_img{
    margin-bottom: 7px;
  }

  .merit_title{
    margin-bottom: 8px;
    font-size: calc(1.275rem + 0.3vw);
  }

  .merit_desc{
    padding: 0 5px;
    font-size: 1.3rem;
  }
}

/**
とどけばいいな
**/
.todoke_main{
  min-height: 500px;
}

.todoke_tag_link{
  background: #e7b4cc;
  border-radius: 20px;
  color: white;
  font-size: 1.4rem;
  padding: 7px 19px;
  font-weight: bold;
  display: inline-block;
  margin-right: 5px;
}

.todoke_tag_link:hover{
  color: white;
  text-decoration: none;
  transform: translateY(6px);
}

.todoke_article_letter_box{
  display: flex;
  justify-content: center;
  gap: 5px;
}

.todoke_item{
  background: #f2f8ef;
  border-radius: 5px;
  margin-bottom: 5px;
  width: 100%;
}

.todoke_item:hover{
  transform: translateY(3px);
}

.todoke_item_link{
  padding: 20px;
  display: block;
}

.todoke_item_link:hover{
  text-decoration: none;
}

.todoke_item_title{
  color: #333;
  font-weight: bold;
  margin-bottom: 5px;
}

.todoke_item_desc{
  font-size: 1.5rem;
  color: #333;
  margin-bottom: 0;
}

.todoke_item_date{
  color: #9d9797;
  font-size: 1.4rem;
  margin-left: 10px;
}

.todoke_item_tag{
  color: #9d9797;
  font-size: 1.4rem;
  margin-right: 5px;
}

@media not all and (min-width: 768px){
  .todoke_item_title{
    font-size: 1.55rem;
  }

  .todoke_item_desc{
    font-size: 1.3rem;
  }
}

.ugoku_r{
  position: relative;
}

.ugoku{
  height: 94px;
  bottom: 0;
  position: absolute;
  left: 60%;
  mix-blend-mode: multiply;
}

@media not all and (min-width: 768px){

  .ugoku{
    left: inherit;
    right: 0;
  }
}

/**

**/
.box{
  background: #f2f8ef;
  border-radius: var(--border-radius);
  padding: 20px 26px;
  margin-bottom: 15px;
  font-size: 1.55rem;

  & p, ul, ol, img{
    margin-bottom: 0;
  }
}

.box ul li{
  list-style: none;
  position: relative;
  &::before{
    content: "・";
    position: absolute;
    left: -20px;
    top: -1;
    font-size: 1.7rem;
    font-weight: bold;
  }
}

.boxType_1{
  border:1px solid #ccc;
  border-radius: 3px;
  padding: 17px 20px;
  font-size: 1.4rem;
  margin-top: 20px;
  & p{
    margin-bottom: 0;
  }
}

.boxType_1_title{
  margin-bottom: 8px;
  font-weight: bold;
}

/** セクション　宣言 **/
.first_view{
  text-align: center;
}

.first_view p{
  margin-bottom: 20px;
  line-height: 3.4rem;
  font-size: 1.8rem;
}

.first_view h2{
  margin-bottom: 46px;
  font-size: 2.5rem;
}

@media not all and (min-width: 768px){
  .first_view{
    display: block;
    text-align: left;
    font-size: 1.7rem;
    padding: 0;
  }

  .first_view h2{
    font-size: 2rem;
  }
}

/** キャンペーン **/
.seciton_compagian{
  background: #f2f8ef;
  padding: 50px 0;
}

.campaign{
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}

.campaign_img{

  & img{
    width: 292px;
    height: 110px;
    border-radius: 6px;
  }

  & img:hover{
    transform: translateY(3px);
  }
}

/** お知らせ **/
.news_list{
  padding-left: 0;
}

.news_list li{
  list-style: none;
  border-bottom: 1px solid #b6d3a7;
  margin-bottom: 20px;
  padding-bottom: 20px;
}

.news_list_link{
  color: #333;
  display: inline-block;
  font-size: 1.5rem;
}

.news_list_link:hover{
  text-decoration: underline;
}

.news_list_time{
  display: block;
  width: 100%;
  font-size: 1.5rem;
}

.news_list_more{
  font-size: 1.4rem;
  color: #333;
  display: block;
  text-align: right;
}

/** 事業内容 **/
.work_box{
  margin-bottom: 20px;
}

.work_item{
  width: calc(33% - 10px);
  background: #F2F8EF;
  border-radius: 7px;
  padding: 20px;
  scroll-snap-align: center;
  display: inline-block;
  white-space: normal;
}

.work_item_img{
  max-height: 200px;
  margin: 0 auto;
  display: block;
  margin-bottom: 20px;
}

.work_title{
  margin-bottom: 10px;
}

.work_title_name{
  font-size: 1.7rem;
  font-weight: bold;
  display: block;
  text-align: center;
}

.work_desc{
  font-size: 1.5rem;
}

.work_link{
  font-size: 1.5rem;
  font-weight: bold;
}

@media not all and (min-width: 868px){
  .work_box{
    display: flex;
    justify-content: center;
    position: relative;
    gap: 43px;
    flex-wrap: wrap;
    padding-top: 10px;
    margin: 43px 0;
    overflow-x: inherit;
  }

  .work_item{
    width: 100%;
    display: flex;
    padding: 0;
    background: white;
    gap: 15px;
    align-items: center;
  }

  .work_item_img{
    height: 120px;
    width: 120px;
    margin: 0;
  }

  .work_title_name{
    font-size: calc(1.375rem + 0.3vw);
  }

  .work_desc{
    font-size: 1.35rem;
  }
}



.slider_user_box{
  scroll-snap-type: x mandatory;
  white-space: nowrap;
  overflow-x: auto;
  margin-bottom: 30px;
}

.slider_user_item{
  scroll-snap-align: center;
  display: inline-block;
  white-space: normal;
  background: white;
  height: 400px;
}

@media not all and (min-width: 868px){
  .slider_user_item{
    width: calc(70% - 5px);
  }
}

/**
* ページネーション
**/
.pagination{
  width: 100%;
  text-align: center;
  margin-bottom: 15px;
}

.page-numbers{
  background: #e7b4cc;
  border-radius: 6px;
  color: white;
  padding: 11px 18px;
  font-size: 1.4rem;
  display: inline-block;
}

.page-numbers:hover{
  background: #e18db4;
  color: white;
  text-decoration: none;
}

.current{
  background: #e18db4;
}

/**
* こだわり
**/
.kodawari_box{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px;
  margin-top: 60px;
}


.kodawari_item{
  display: flex;
  align-items: center;
  gap: 20px;
  width: 100%;
  margin: 0;
}

.kodawari_details{
  width: calc(65% - 10px);
}

.kodawari_img{
  width: calc(35% - 10px);
  & img{
    padding: 15px;
    width: 100%;
    border-radius: 3px;
  }
}

.kodawari_title{
  font-size: calc(1.475rem + 0.3vw);
  margin-bottom: 10px;
  font-weight: bold;
}

.kodawari_desc{
  font-size: 1.35rem;
  line-height: 2.4rem;
}

@media (min-width: 768px) {
  .kodawari_box{
    gap: 40px;
  }

  .kodawari_item{
    width: calc(50% - 20px);
  }

  .kodawari_title{
    margin-bottom: 17px;
    font-size: 1.7rem;
  }

  .kodawari_desc{
    font-size: 1.5rem;
    line-height: 2.7rem;
    margin: 0;
  }
}

@media (min-width: 1024px) {
  .kodawari_item{
    gap: 25px;
  }
}

/**
カラム
**/
.column_box{
  display: flex;
  gap: 50px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 30px;
}

.column_2{
  width: calc(50% - 50px);
  margin: 0;
}

.column_2 img{
  border-radius: 7px;
}

.column_sub_title{
  border-left: 4px solid #e7b4cc;
  font-size: 1.65rem;
  font-weight: bold;
  padding-left: 8px;
  margin-bottom: 20px;
}

@media not all and (min-width: 868px){

  .column_left_to_bottom{
    flex-direction: column-reverse;
  }

  .column_2{
    width: 100%;
  }
}

/**
 こんな人にオススメ
**/
.recommended_title{
  margin-bottom: 35px;
}

.recommended_desc{
  margin-bottom: 50px;
}

.recommended_word{
  background: #f2f8ef;
  border-radius: 7px;
  padding: 30px;
  font-size: 1.45rem;
  position: relative;
  max-width: 410px;
  margin: 0 auto;
  margin-bottom: 30px;

  & p{
    margin: 0;
  }
}

.recommended_word::before{
  background: #f2f8ef;
  content: "";
  height: 20px;
  width: 20px;
  position: absolute;
  bottom: -9px;
  transform: rotate(45deg);
}

.recommended_other{
  padding: 30px;
  max-width: 410px;
  margin: 0 auto;

  & p{
    font-size: 1.6rem;
    text-align: center;
    position: relative;
  }

  & p::before{
    content: "";
    height: 46px;
    border-left: 1px solid #333;
    position: absolute;
    left: 29px;
    transform: rotate(320deg);
    top: 7px;
  }

  & p::after{
    content: "";
    height: 46px;
    border-left: 1px solid #333;
    position: absolute;
    right: 29px;
    transform: rotate(45deg);
    top: 7px;
  }
}

@media not all and (min-width: 868px){
  .recommended_other{
    padding: 30px 0;

    & p::before{
      height: 30px;
      left: 3%;
      bottom: 0;
      top: inherit;
      transform: rotate(335deg);
    }

    & p::after{
      height: 30px;
      right: 5%;
      bottom: 0;
      top: inherit;
      transform: rotate(20deg);
    }
  }
}

/**
トップページの動物
**/
.animal_address{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 60px;
}

.animal_address_item{
  width: calc(20.2% - 10px);
  text-align: center;

  & p{
    font-size: 1.3rem;
    margin: 0;
  }

  & img{
    margin-bottom: 5px;
  }
}

@media not all and (min-width: 868px){

  .animal_address{
    gap: 20px;
  }

  .animal_address_item{
    width: calc(33.333% - 20px);
    text-align: center;
  }

  .animal_address_item p{
    font-size: 1.1rem;
    margin: 0;
  }
}

/**
ギャラリー
**/
.gallery{
  background: #f2f8ef;
}

.gallery-icon{
  padding: 10px;
}

.gallery-icon img{
  width: 100%;
  height: auto;
}

/**
みらいれたー
**/
.shi{
  font-size: 1.64rem;
  background: #f2f8ef;
  padding: 100px;
  line-height: 3.6rem;
}

.shi_title{
  font-size: 2.3rem;
  margin-bottom: 27px;
}

.new-mirai {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: -38px;
}

.new-mirai::before {
  content: "New";
  transform: rotate(-15deg);
  font-size: 2.2rem;
  margin-top: -40px;
}


@media not all and (min-width: 868px){

  .shi{
    font-size: 1.5rem;
    padding: 50px 35px;
    line-height: 3.3rem;
  }
}

/**
* 支払い方
**/
.pay_list{
  display: flex;
  justify-content: space-around;
}

.pay_item{
  width: calc(33.333% - 20px);
}

.pay_item h3{
  text-align: center;
  font-weight: bold;
  font-size: 1.9rem;
}

.pay_select_box{
  background: #ccc;

}

@media not all and (min-width: 868px){

  .pay_list{
    justify-content: center;
    flex-wrap: wrap;
    gap: 40px;
  }

  .pay_item{
    width: 100%;
    text-align: center;
  }

}


/**
* コメント(口コミ)
**/
.comment_inner{
  padding-top: 50px;
}

.comment_title{
  margin-bottom: 10px;
  text-align: center;
  font-size: 2.5rem;
}

.comment_description{
  font-size: 1.5rem;
  text-align: center;
  margin-bottom: 30px;
}

.comment_box{
  scroll-snap-type: x mandatory;
  white-space: nowrap;
  overflow-x: auto;
  padding-bottom: 5px;
  margin-bottom: 25px;
}

.comment_item{
  background: #f2f8ef;
  border-radius: 3px;
  display: inline-block;
  scroll-snap-align: center;
  vertical-align: top;
  width: 270px;
  margin-left: 2px;
}

.comment_item:hover,
.category_kutikomi_item:hover{
  transform: translateY(3px);
}

.comment_link{
  color: #333;
}

.comment_link:hover{
  color: #333;
  text-decoration: none;
}

.comment_picture{
  height: 200px;
  display: block;
  overflow: hidden;
}

.comment_img{
  border-radius: 7px 7px 0 0;
  width: 100%;
  min-height: 100%;
}

.comment_content{
  white-space: normal;
  padding: 20px;
  font-size: 1.4rem;
  min-height: 200px;
}

.comment_more{
  height: 400px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.5rem;
  text-align: center;
  font-weight: bold;
}

.comment_more_click{
  color: #555555;
  font-size: 1.2rem;
}

/**
* 口コミ　カテゴリー
**/
.category_kutikomi_box{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.category_kutikomi_item{
  background: #f2f8ef;
  width: calc(33.333% - 10px);
}

@media not all and (min-width: 868px){

  .category_kutikomi_item{
    width: 100%;

    .comment_content{
      min-height: inherit;
    }
  }
}

.splide__slide img {
  width: auto;
  height: 100%;
  object-fit: cover;
}

/*
* よくある質問
*/
.faq_details{
  margin-bottom: 20px;
  &[open] .faq_summary{
    background: #9dcd9c;
  }
}

.faq_summary{
  background: #c1e7c1;
  border-radius: 3px;
  padding: 16px 20px;
  font-size: 1.4rem;
  font-weight: bold;
  transition: .2s;
  &:hover{
    background: #9dcd9c;
  }
}

.faq_descBox{
  background: white;
  border-radius: 3px;
  padding: 20px 20px;
  font-size: 1.35rem;
  line-height: 2.4rem;
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  & p{
    margin: 0;
  }
  & img{
    height: 180px;
  }
}

@media (min-width: 768px) {
  .faq_summary{
    padding: 16px 38px;
    font-size: 1.5rem;
  }

  .faq_descBox{
    padding: 20px 30px;
    flex-wrap: nowrap;
    align-items: center;
    & p{
      font-size: 1.4rem;
      padding: 20px 30px;
    }
  }
}

/* 利用規約 */
.termBox{
  font-size: 1.4rem;

  & h2{
    font-size: 1.8rem;
    font-weight: bold;
    margin-top: 40px;
    margin-bottom: 20px;
  }

  & p{
    margin-bottom: 1em;
    line-height: 2.8rem;
  }
}