/*
Theme Name: ennkickboxingwp
Description: enn kickboxing studio WPテーマ
Author:
Version: 1.00
License:
License URI:
Text Domain:
Tested up to: 6.2
Requires PHP: 8.0
*/

/* Josh's Custom CSS Reset --- more customized */
*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}html,body{height:100%}body{line-height:1.0;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:inline-block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;font-size:100%}#root,#__next{isolation:isolate}

/* Basic settings */
br {letter-spacing:0;}
ul, li {list-style:none;}
img, a img {border:0; text-decoration:none;}
mark {background:#ff0; color:#000;}
b, strong {font-weight:bold;}
table {border-collapse:collapse; border-spacing:0;}

/* Base Set */
html {
-ms-text-size-adjust:100%;
-webkit-text-size-adjust:100%;
font-size: 62.5%;
}
body {
color:#444;
font-family: -apple-system, BlinkMacSystemFont, Roboto, Arial, "Noto Sans JP",sans-serif;
font-size: 1.6rem;
line-height:1.0;
}
a {
background-color:transparent;
outline:0;
text-decoration:none;
transition: all .5s;
}

:root{
  --pcl: 1320px;
  --pcm: 1080px;
  --mid: 500;
  --bold: 700;
  --col-a: #fc4700;
}

/* -------------------------------------------------------
common
---------------------------------------------------------- */
html, body {
  height: auto;
  min-height: 100%;
}
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.footer {
  margin-top: auto;
}
.cp {
  padding: 1rem 0;
  font-size: 80%;
  text-align: center;
}

h1, h2, h3, h4 {
  font-weight: normal;
}

a:link    {color:#111;}
a:visited {color:#111;}
a:hover   {color:#e95513;}
a:active  {color:#ccc;}


body.post-type-archive-news {
  background: linear-gradient(145deg, rgba(255, 235, 237, 1) 0%, rgba(255, 229, 216, 1) 50%, rgba(255, 254, 224, 1) 100%);
  background-repeat: no-repeat;
  background-size: 100% 100%; /* ← ここが重要 */
}



/* header
------------------------------------------------ */
@media screen and (min-width:1081px){
  .header{
    position: fixed;
    width: 100%;
    height: 8rem;
    background-color: #fff;
    box-shadow: 0 0 10px rgba(0,0,0,.2);
    z-index: 990;
  }
  .header .inner{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 98rem;
    height: 100%;
    margin: 0 auto;
  }
  .header .inner .title{
    width: 30rem;
  }
  .header .inner .nav{
    flex: 1;
  }
  .header .inner .nav ul{
    display: flex;
    justify-content: flex-end;
    gap: 2rem;
  }
  .navbar,
  .nav_inner_link{
    display: none;
  }
  .header .inner .nav li span{
    display: none;
  }
}
@media screen and (max-width:1080px){
  .header{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 6rem;
    background-color: #fff;
    z-index: 100;
  }
  .header .inner{
    display: flex;
    align-items: center;
    width: 100%;
    height: 6rem;
    padding-left: 1rem;
  }
  .header .inner .title img{
    width: 20rem;
    height: auto;
  }
  /* nav ------------------------- */
  .navbar{
    position: fixed;
    top: 0;
    right: 0;
    z-index: 9999;
  }
  .drawer_btn{
    position: relative;
    width: 6rem;
    height: 6rem;
    background-color: #fff;
    border: none;
    cursor: pointer;
  }
  .drawer_btn > span{
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 2rem;
    height: 2px;
    background-color: #e95513;
    transform: translateX(-50%);
  }
  .drawer_btn > span:first-child{
    transform: translate(-50%, calc(-50% - 0.5rem));
    transition: transform 0.3s ease;
  }
  .drawer_btn > span:nth-child(2){
    transform: translate(-50%, -50%);
    transition: opacity 0.3s ease;
  }
  .drawer_btn > span:last-child{
    transform: translate(-50%, calc(-50% + 0.5rem));
    transition: transform 0.3s ease;
  }

  .drawer_btn.active > span:first-child{
    transform: translate(-50%, -50%) rotate(-45deg);
  }
  .drawer_btn.active > span:nth-child(2){
    opacity: 0;
  }
  .drawer_btn.active > span:last-child{
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .nav{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(255,255,255,.8);
    opacity: 0;
    visibility: hidden;
    transition: all .3s;
    z-index: 9998;
  }
  .nav.active{
    opacity: 1;
    visibility: visible;
  }
  .nav_inner{
    position: relative;
    width: 100%;
    height: 100%;
    margin: 0;
  }
  .nav_inner .nav_menu{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80%;
  }
  .nav_inner ul{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
  }
  .nav_inner ul li{
    border-bottom: 1px solid #333;
  }
  .nav_inner ul li a{
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 1em;
    color: #111;
    font-size: 1.6rem;
    text-decoration: none;
  }
  .caret-right {
    display: inline-block;
    vertical-align: middle;
    color: #111;
    line-height: 1;
    width: 0;
    height: 0;
    border-style: solid;
    border-color: transparent;
    border-width: 0.375em 0.64952em;
    border-left-color: currentColor;
    border-right: 0;
  }
  .nav_inner ul li a.now{
    color: #fc4700;
  }

  .nav_inner_link{
    margin-top: 4rem;
  }
  .nav_inner_link a{
    display: block;
    width: 100%;
    text-align: center;
  }
  .nav_inner_link a img{
    width: 100%;
    max-width: 30rem;
    height: auto;
  }

  /* メニュー展開時、背景を固定 */
  body.active{
    height: 100%;
    overflow: hidden;
  }
  body.active .content{
    filter: blur(4px);
    transition: filter .3s ease;
  }
}


/* contents
------------------------------------------------ */
.content.price,
.content.contact,
.content.blog,
.content.news{
  margin-top: 16rem;
  padding-bottom: 10rem;
}
.content.blogall{
  margin-top: 16rem;
  padding-bottom: 10rem;
  background-image: url(images/bg2.png);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: contain;
}

@media screen and (max-width:767px){
  .content{
    margin-top: 6rem;
  }
  .content.price,
  .content.contact,
  .content.blog,
  .content.blogall{
    margin-top: 8rem;
    padding-bottom: 8rem;
  }
  .content.news{
    margin-top: 0;
    padding-top: 8rem;
    padding-bottom: 8rem;
  }
}

.b_t{
  text-align: center;
}
.b_t img{
  width: auto;
  height: 16rem;
}
@media screen and (max-width:767px){
  .b_t img{
    width: auto;
    height: 9.6rem;
  }
}

/* fv */
.fv_wrap .fv{
  position: relative;
  width: 100%;
  height: 50rem;
  background-image: url(images/main_img.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.fv_wrap .fv .logomark{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.fv_wrap .fv .logomark img{
  width: 24rem;
  height: auto;
}
.fv_wrap .fv .join_btn{
  position: absolute;
  bottom: -10rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}
.fv_wrap .fv .join_btn img{
  width: 800px;
  height: auto;
}

@media screen and (max-width:767px){
  .fv_wrap .fv{
    height: 30vh;
  }
  .fv_wrap .fv .logomark img{
    width: 16rem;
    height: auto;
  }
  .fv_wrap .fv .join_btn{
    bottom: -5rem;
    width: 90%;
  }
  .fv_wrap .fv .join_btn img{
    width: 100%;
    max-width: 350px;
    height: auto;
  }
}

@media screen and (min-width:768px) and (max-width:1080px){
  .fv_wrap .fv{
    height: 30rem;
  }
  .fv_wrap .fv .logomark img{
    width: 15rem;
    height: auto;
  }
  .fv_wrap .fv .join_btn{
    bottom: -8rem;
    width: 80%;
  }
  .fv_wrap .fv .join_btn img{
    width: 100%;
  }
}


/* about */
.about_outer{
  position: relative;
  width: 100%;
  padding-top: 18rem;
  padding-bottom: 8rem;
  background: #fff9ef url(images/about_bg1.jpg) no-repeat;
  background-position: center top;
  background-size: 100% auto;
}
.about_arrow{
  text-align: center;
}
.about_arrow img{
  width: 100%;
  height: auto;
}

.about_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.about_point{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  width: 100%;
  margin-top: 8rem;
}
.about_point img{
  width: 100%;
  height: auto;
}

.sukima_wrap{
  margin-top: 10rem;
  padding-bottom: 20rem;
  background-image: url(images/bg2.png);
  background-repeat: no-repeat;
  background-position: center bottom;
}
.sukima_catch{
  text-align: center;
}
.sukima_catch img{
  width: auto;
  height: 12rem;
}
.sukima_list{
  max-width: 500px;
  margin-top: 6rem;
  margin-right: auto;
  margin-left: auto;
}
.sukima_list li{
  display: flex;
  align-items: center;
  font-size: 2.8rem;
}
.sukima_list li img{
  width: auto;
  height: 4rem;
}
.sukima_list li + li{
  margin-top: 2rem;
}

@media screen and (max-width:767px){
  .about_outer{
    padding-top: 10rem;
    padding-bottom: 4rem;
  }
  .about_wrap{
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .about_wrap .about_title img{
    width: 100%;
    height: auto;
  }
  .about_point{
    margin-top: 4rem;
  }
  .sukima_wrap{
    margin-top: 4rem;
    padding-bottom: 10rem;
  }
  .sukima_catch{
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .sukima_catch img{
    width: 100%;
    height: auto;
  }
  .sukima_list_wrap{
    display: flex;
    justify-content: center;
  }
  .sukima_list{
    display: inline-block;
    margin-top: 4rem;
    margin-right: auto;
    margin-left: auto;
  }
  .sukima_list li{
    font-size: clamp(1.6rem, 4.5vw, 2rem);
  }
  .sukima_list li img{
    width: auto;
    height: 2.8rem;
  }
  .sukima_list li + li{
    margin-top: 2rem;
  }
}

/* message */
.message_outer{
  width: 100%;
  padding-top: 18rem;
  padding-bottom: 2rem;
  background-image: url(images/message_bg.jpg);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
}
.message_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.message_title{
  margin-bottom: 8rem;
  text-align: center;
}

.message_title h2{
  margin-top: 6rem;
  color: #222;
  font-size: 4.4rem;
  font-weight: var(--bold);
}
.message_box{
  padding-bottom: 10rem;
  color: var(--col-a);
  font-size: 3.2rem;
  line-height: 1.6;
  text-align: justify;
}
.message_box .message_em{
  margin-bottom: 1em;
  font-weight: var(--bold);
  text-align: center;
}

@media screen and (max-width:767px){
  .message_outer{
    padding-top: 10rem;
  }
  .message_wrap{
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .message_title{
    margin-bottom: 4rem;
  }
  .message_title h2{
    margin-top: 3.2rem;
    font-size: 2.4rem;
  }
  .message_box{
    padding-bottom: 4.8rem;
    font-size: 1.6rem;
  }
  .message_box .message_em{
    font-size: 2rem;
  }
}


/* plan */
.plan_outer{
  background-image: url(images/bg3.png);
  background-repeat: no-repeat;
  background-position: left center;
  background-size: contain;
}
.plan_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-top: 8rem;
  padding-right: 4rem;
  padding-left: 4rem;
}

.plan_wrap .campaign{
  margin-top: 3.2rem;
}
.plan_list{
  border-top: 2px dotted #ccc;
}
.plan_list li{
  padding: .5em 1em;
  border-bottom: 2px dotted #ccc;
  font-size: 4rem;
}
.plan_list.flx li,
.plan_list2 li.flx{
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.plan_list.flx li .price,
.plan_list2 li.flx .price{
  font-weight: var(--bold);
  text-align: right;
}

.plan_wrap .female,
.plan_wrap .male{
  margin-top: 8rem;
  text-align: center;
}
.plan_wrap .female h3,
.plan_wrap .male h3{
  margin-bottom: 4rem;
  font-size: 4rem;
  font-weight: var(--bold);
}
.taxin{
  margin-top: 1em;
  font-size: 3.2rem;
  font-weight: var(--bold);
  text-align: right;
}

.tebura_title{
  margin-bottom: 3rem;
}
.plan_list2{
  border-top: 1px solid #444;
}
.plan_list2 li{
  padding: .5em 1em;
  border-bottom: 1px solid #444;
  font-size: 4rem;
}

.mantoman_title{
  margin-bottom: 4rem;
  text-align: center;
}
.mantoman_title h3{
  color: #fc4700;
  font-size: 4.8rem;
  font-weight: var(--bold);
  letter-spacing: normal;
}
.price_item_title{
  margin-bottom: 4rem;
  font-size: 3.2rem;
  text-align: center;
}
.price_table{
  width: 100%;
  border-top: 1px solid #444;
}
.price_table th,
.price_table td{
  padding: .5em 0;
  font-size: 4rem;
  text-align: center;
}
.price_table th{
  border-right: 1px solid #444;
  border-bottom: 1px solid #444;
  font-weight: normal;
}
.price_table td{
  border-bottom: 1px solid #444;
  font-weight: var(--bold);
}
.m2m_btn{
  margin-top: 4rem;
  text-align: center;
}
.m2m_btn img{
  width: auto;
  height: 10rem;
}

@media screen and (max-width:767px){
  .plan_wrap{
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .plan_list li{
    padding: 1em 1rem;
    font-size: 1.8rem;
    line-height: 1.8;
  }
  .plan_wrap .female,
  .plan_wrap .male{
    margin-top: 4.8rem;
  }
  .plan_wrap .female h3,
  .plan_wrap .male h3{
    margin-bottom: 1em;
    font-size: 2.4rem;
  }
  .taxin{
    font-size: 1.6rem;
  }
  .plan_list2 li{
    padding: 1em 1rem;
    font-size: 1.8rem;
  }
  .mantoman_title{
    margin-bottom: 2.4rem;
  }
  .mantoman_title h3{
    font-size: 2.8rem;
  }
  .price_item_title{
    margin-bottom: 2.8rem;
    font-size: 2rem;
  }
  .price_table th,
  .price_table td{
    font-size: 1.8rem;
  }
  .m2m_btn img{
    width: auto;
    height: 4.8rem;
  }
}

@media screen and (min-width:768px) and (max-width:1080px){
  .plan_wrap .female h3,
  .plan_wrap .male h3{
    font-size: 3.2rem;
  }
  .plan_list li,
  .plan_list2 li{
    font-size: 2.6rem;
  }
  .taxin{
    font-size: 2.4rem;
  }
  .price_table th,
  .price_table td{
    font-size: 2.6rem;
  }
}

/* greeting */
.greeting_outer{
  position: relative;
  width: 100%;
  margin-top: 16rem;
  padding-top: 16rem;
  padding-bottom: 10rem;
  background-image: url(images/greeting_bg.jpg);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
}
.greeting_outer > .try_btn{
  position: absolute;
  top: -5rem;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
}
.greeting_outer > .try_btn img{
  width: 100rem;
  height: auto;
}
.greeting_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.greeting_title{
  text-align: center;
}
.greeting_title img{
  width: auto;
  height: 16rem;
}
.greeting_box{
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 4rem;
  margin-top: 6.4rem;
}
.greeting_box .greeting_photo{
  width: 35rem;
}
.greeting_box .greeting_txt{
  flex: 1;
  height: 35rem;
  overflow-y: scroll;
  padding-right: 2rem;
  color: #fff;
  line-height: 2;
}
.greeting_txt .profile_name{
  font-size: 2.8rem;
}
.greeting_txt .profile_name .name{
  display: inline-block;
  margin-left: 2.8rem;
  font-size: 200%;
}
.greeting_box .greeting_txt p{
  font-size: 1.8rem;
  text-align: justify;
}

@media screen and (max-width:767px){
  .greeting_outer{
    margin-top: 10rem;
    padding-top: 8rem;
    padding-bottom: 8rem;
  }
  .greeting_outer > .try_btn{
    top: -2rem;
    width: 80%;
  }
  .greeting_outer > .try_btn img{
    width: 100%;
    height: auto;
  }
  .greeting_title img{
    width: 100%;
    height: auto;
    max-height: 9.6rem;
  }
  .greeting_box{
    flex-direction: column;
  }
  .greeting_box .greeting_photo{
    width: 100%;
    height: auto;
  }
  .greeting_txt .profile_name{
    font-size: 2rem;
  }
  .greeting_txt .profile_name .name{
    display: inline-block;
    margin-left: 2rem;
    font-size: 200%;
  }
  .greeting_box .greeting_txt{
    height: auto;
    padding-right: 0;
  }
  .greeting_box .greeting_txt p{
    font-size: 1.6rem;
  }
}

@media screen and (min-width:768px) and (max-width:1080px){
  .greeting_outer > .try_btn{
    width: 80%;
  }
  .greeting_outer > .try_btn img{
    width: 100%;
    height: auto;
  }
  .greeting_box .greeting_txt{
    height: auto;
    padding-right: 0;
  }
  .greeting_box .greeting_photo{
    width: 35%;
  }
  .greeting_txt .profile_name{
    font-size: 2rem;
  }
  .greeting_txt .profile_name .name{
    display: inline-block;
    margin-left: 2.8rem;
    font-size: 200%;
  }
}

/* staff */
.staff_outer{
  margin-top: 10rem;
  padding-top: 10rem;
  background-image: url(images/bg4.png);
  background-repeat: no-repeat;
  background-position: right top;
  background-size: contain;
}
.staff_photo{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8rem;
  width: 100%;
  max-width: var(--pcm);
  margin-top: 8rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.staff_photo li p{
  margin-top: 1em;
  font-size: 3.2rem;
  text-align: center;
}

@media screen and (max-width:767px){
  .staff_outer{
    margin-top: 8rem;
    padding-top: 8rem;
  }
  .staff_photo{
    display: block;
  }
  .staff_photo li p{
    margin-top: .5em;
    font-size: 2.8rem;
  }
  .staff_photo li + li{
    margin-top: 4rem;
  }
}

/* blog home */
.home_blog_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-top: 10rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.home_blog_list{
  margin-top: 4rem;
}
.home_blog_list li{
  padding-top: 1em;
  padding-bottom: 1em;
  border-top: 2px dotted #ccc;
  font-size: 2.8rem;
  line-height: 1.8;
}
.home_blog_list li a{
  display: flex;
  flex-direction: row;
  gap: 4rem;
}
.home_blog_list li a .date{
  white-space: nowrap;
  color: #e95513;
}
.home_blog_list li a .post_title{
  flex: 1;
}
.home_blog_list .home-no-post{
  padding-top: 3rem;
  padding-bottom: 3rem;
  text-align: center;
}
.blog_link{
  font-size: 2.8rem;
  text-align: right;
}

.movie_wrap{
  position: relative;
  width: 100%;
  max-width: var(--pcm);
  margin-top: 10rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
  z-index: 10;
}
.movie_wrap .movie_title{
  margin-bottom: 4rem;
  text-align: center;
}
.movie_wrap .movie_title img{
  width: auto;
  height: 4rem;
}
.movie_wrap .no-movie{
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16/9;
  background-color: #feceb8;
}
.movie_wrap .no-movie img{
  width: auto;
  height: 2rem;
}

@media screen and (max-width:767px){
  .home_blog_wrap{
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .home_blog_list li{
    font-size: 1.8rem;
  }
  .home_blog_list li a{
    flex-direction: column;
    gap: 1rem;
  }
  .blog_link{
    font-size: 1.8rem;
  }
  .movie_wrap{
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .movie_wrap .movie_title{
    margin-bottom: 2.8rem;
  }
  .movie_wrap .movie_title img{
    width: auto;
    height: 2.4rem;
  }
}

@media screen and (min-width:768px) and (max-width:1080px){
  .home_blog_list li a{
    flex-direction: column;
    gap: 1rem;
  }
}

/* equipment */
.equipment_wrap{
  position: relative;
  margin-top: 10rem;
  padding-top: 10rem;
  padding-bottom: 10rem;
  background-color: #fff9ee;
  z-index: 0;
}
.equipment_wrap .equipment_bg_mark{
  position: absolute;
  top: -20rem;
  right: 0;
  z-index: 1;
}
.equipment_wrap .equipment_bg_mark img{
  width: 46rem;
  height: auto;
}

.equipment_title{
  margin-bottom: 8rem;
}
.equipment_photo.fst{
  position: relative;
  display: grid;
  grid-template-rows: 292px 292px;
  grid-template-columns: 608px 368px;
  gap: 2.4rem;
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
  z-index: 10;
}
.equipment_photo.fst .item_a{
  grid-row: 1/3;
  grid-column: 1/2;
}
.equipment_photo.fst .item_b{
  grid-row: 1/2;
  grid-column: 2/3;
}
.equipment_photo.fst .item_c{
  grid-row: 2/3;
  grid-column: 2/3;
}

.equipment_photo.sec{
  display: grid;
  grid-template-rows: 292px 292px;
  grid-template-columns: 368px 608px;
  gap: 2.4rem;
  width: 100%;
  max-width: var(--pcm);
  margin-top: 2.4rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;

}
.equipment_photo.sec .item_d{
  grid-row: 1/2;
  grid-column: 1/2;
}
.equipment_photo.sec .item_e{
  grid-row: 2/3;
  grid-column: 1/2;
}
.equipment_photo.sec .item_f{
  grid-row: 1/3;
  grid-column: 2/3;
}

.equipment_photo.fst .item_a,
.equipment_photo.fst .item_b,
.equipment_photo.fst .item_c,
.equipment_photo.sec .item_d,
.equipment_photo.sec .item_e,
.equipment_photo.sec .item_f{
  position: relative;
  width: 100%;
  height: 100%;
  background-color: #feceb8;
}

.equipment_photo.fst .item_a .name_box,
.equipment_photo.fst .item_b .name_box,
.equipment_photo.fst .item_c .name_box{
  position: absolute;
  right: 0;
  bottom: 1.8rem;
  z-index: 2;
}
.equipment_photo.sec .item_d .name_box,
.equipment_photo.sec .item_e .name_box,
.equipment_photo.sec .item_f .name_box{
  position: absolute;
  bottom: 1.8rem;
  left: 0;
  z-index: 2;
}
.equipment_photo .name_box.name{
  min-width: 8rem;
  padding: .5rem 2rem;
  background-color: #fff;
  color: #111;
  font-size: 1.4rem;
  text-align: center;
}

.equipment_photo .no-img{
  display: flex;
  justify-content: center;
  align-items: center;
}
.equipment_photo .no-img img{
  width: auto;
  height: 2rem;
}
.equipment_photo .photo img{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: auto;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (max-width:767px){
  .equipment_wrap .equipment_bg_mark{
    position: absolute;
    top: -10rem;
    right: 0;
    z-index: 1;
    text-align: right;
  }
  .equipment_wrap .equipment_bg_mark img{
    width: 40%;
    height: auto;
  }
  .equipment_photo.fst,
  .equipment_photo.sec{
    display: block;
  }
  .equipment_photo.fst .item_a,
  .equipment_photo.fst .item_b,
  .equipment_photo.fst .item_c,
  .equipment_photo.sec .item_d,
  .equipment_photo.sec .item_e,
  .equipment_photo.sec .item_f{
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1/1;
    background-color: #feceb8;
  }
  .equipment_photo.fst .item_b,
  .equipment_photo.fst .item_c,
  .equipment_photo.sec .item_d,
  .equipment_photo.sec .item_e,
  .equipment_photo.sec .item_f{
    margin-top: 1rem;
  }
  .equipment_photo .no-img{
    width: 100%;
    height: 100%;
  }
}
@media screen and (min-width:768px) and (max-width:1080px){
  .equipment_wrap .equipment_bg_mark{
    top: -20rem;
    right: 0;
  }
  .equipment_wrap .equipment_bg_mark img{
    width: 36rem;
    height: auto;
  }
  .equipment_photo.fst {
    grid-template-rows: auto auto; /* 高さは自動にする */
    grid-template-columns: 1fr 0.6fr; /* PCと比率を近いまま縮小 */
    gap: 1rem;
  }
  .equipment_photo.sec {
    margin-top: 1rem;
    grid-template-rows: auto auto; /* 高さは自動にする */
    grid-template-columns: 0.6fr 1fr; /* PCと比率を近いまま縮小 */
    gap: 1rem;
  }
  /* アスペクト比を保持（PCの比率をそのまま使う） */
  .item_a { aspect-ratio: 608 / 584; } /* 292 * 2 → 584 */
  .item_b { aspect-ratio: 368 / 292; }
  .item_c { aspect-ratio: 368 / 292; }

  .item_d { aspect-ratio: 368 / 292; }
  .item_e { aspect-ratio: 368 / 292; }
  .item_f { aspect-ratio: 608 / 584; }

  /* 画像を比率内でフィット */
  .equipment_photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

/* info home */
.home_info_outer{
  background-image: url(images/bg2.png);
  background-repeat: no-repeat;
  background-position: right center;
  background-size: contain;
}
.home_info_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-top: 10rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.home_info_list{
  margin-top: 4rem;
}
.home_info_list li{
  padding-top: 1em;
  padding-bottom: 1em;
  border-top: 2px dotted #ccc;
  font-size: 2.8rem;
  line-height: 1.8;
}
.home_info_list li a{
  display: flex;
  flex-direction: row;
  gap: 4rem;
}
.home_info_list li a .date{
  white-space: nowrap;
  color: #e95513;
}
.home_info_list li a .post_title{
  flex: 1;
}

@media screen and (max-width:767px){
  .home_info_wrap{
    margin-top: 8rem;
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .home_info_list li a{
    flex-direction: column;
    gap: 1rem;
  }
  .home_info_list li{
    font-size: 1.8rem;
  }
}

@media screen and (min-width:768px) and (max-width:1080px){
  .home_info_list li a{
    flex-direction: column;
    gap: 1rem;
  }
}

.home_sns_wrap{
  width: 100%;
  max-width: 80rem;
  margin-top: 10rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.home_sns_wrap .inner{
  display: flex;
  flex-direction: row;
  align-items: center;
}
.home_sns_wrap .inner .home_sns_txt{
  flex: 1;
}
.home_sns_wrap .inner .home_sns_txt .item{
  position: relative;
  padding-bottom: .5em;
  padding-left: .8em;
  border-bottom: 2px solid #333;
  font-size: 3.6rem;
}
.home_sns_wrap .inner .home_sns_txt .item::before{
  content: "●";
  position: absolute;
  bottom: -1rem;
  left: -.5rem;
  font-size: 2rem;
}

.home_sns_wrap .inner .home_sns_area{
  width: 30rem;
  height: 30rem;
  padding: 2rem;
  background-color: #fff;
  border: 2px solid #333;
}
.home_sns_wrap .inner .home_sns_area img{
  width: 100%;
  height: auto;
}

@media screen and (max-width:767px){
  .home_sns_wrap{
    margin-top: 6.4rem;
  }
  .home_sns_wrap .inner{
    flex-direction: column;
  }
  .home_sns_wrap .inner .home_sns_txt .item{
    border-bottom: 0;
    font-size: 2.4rem;
    text-align: center;
  }
  .home_sns_wrap .inner .home_sns_txt .item::before{
    content: "";
  }
}

/* access */
.access_outer{
  margin-top: 10rem;
  padding-top: 10rem;
  padding-bottom: 10rem;
  background: #fff9ee url(images/bg5.png) no-repeat left bottom;
  background-size: contain;
}
.access_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.access_wrap .map{
  margin-top: 8rem;
}
.access_wrap .map iframe{
  width: 100%;
  height: 45rem;
}

@media screen and (max-width:767px){
  .access_outer{
    margin-top: 8rem;
    padding-top: 8rem;
  }
  .access_wrap{
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .access_wrap .map{
    margin-top: 4.8rem;
  }
  .access_wrap .map iframe{
    width: 100%;
    height: 30rem;
  }
}

/* faq */
.faq_outer{
  margin-top: 10rem;
  padding-top: 10rem;
  padding-bottom: 10rem;
  background: url(images/bg3.png) no-repeat left bottom;
  background-size: contain;
}
.faq_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.faq_list{
  width: 100%;
  margin-top: 8rem;
  padding-bottom: 2rem;
  border-bottom: 2px dotted #ccc;
}

.faq_list dt{
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 3.2rem;
  cursor: pointer;
}
.faq_list dl:first-child{
  padding-top: 2rem;
  border-top: 2px dotted #ccc;
}
.faq_list dl + dl{
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 2px dotted #ccc;
}

.faq_list dt .q_icon,
.faq_list dt .openclose{
  width: 8rem;
}
.faq_list dt .faq_q{
  flex: 1;
}
.faq_list dt img,
.faq_list dd img{
  width: auto;
  height: 6rem;
}
.faq_list dd .answer{
  display: flex;
  justify-content: space-between;
  width: 100%;
  margin-top: 2rem;
  font-size: 2.2rem;
  line-height: 2;
}
.faq_list dd .a_icon{
  width: 8rem;
}
.faq_list dd .faq_txt{
  flex: 1;
  padding-right: 8rem;
}

/* 最初は全て閉じる */
.faq_list dl dd {
  overflow: hidden;
  height: 0;
  transition: height 0.3s ease;
}
/* アイコンクリック領域を少し広げる（任意） */
.openclose img {
  transition: transform 0.3s ease;
}
/* 開いたときの回転など（任意） */
dt.active .openclose img {
  width: 6rem;
  height: 6rem;
  transform: rotate(180deg);
}

.faq_wrap > .try_btn{
  width: 80%;
  margin-top: 10rem;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

@media screen and (max-width:767px){
  .faq_outer{
    margin-top: 0;
  }
  .faq_wrap{
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .faq_list{
    margin-top: 4.8rem;
  }
  .faq_list dt{
    font-size: 1.8rem;
    font-weight: var(--bold);
    line-height: 1.6;
  }
  .faq_list dt .q_icon,
  .faq_list dt .openclose,
  .faq_list dd .a_icon{
    width: 6rem;
  }
  .faq_list dt .openclose{
    text-align: right;
  }
  .faq_list dt .openclose img{
    width: 4rem;
    height: 4rem;
  }
  .faq_list dt img,
  .faq_list dd img{
    width: 4rem;
    height: auto;
  }
  .faq_list dd .answer{
    font-size: 1.6rem;
  }
  .faq_list dd .faq_txt{
    padding-right: 0;
  }
  .faq_wrap > .try_btn{
    margin-top: 6.4rem;
    width: 100%;
  }
}

@media screen and (min-width:768px) and (max-width:1080px){
  .faq_list dt{
    font-size: 2.8rem;
  }
  .faq_list dt .faq_q{
    line-height: 1.4;
  }
}


/* page
----------------------------- */
/* plan */
.price_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}

.price_intro{
  margin-top: 8rem;
  padding: 1em;
  border-top: 2px dotted #ccc;
  border-bottom: 2px dotted #ccc;
  font-size: 3.2rem;
  line-height: 2;
  text-align: center;
}
.price_wrap .campaign{
  margin-top: 8rem;
}
.price_wrap .link_box{
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 2rem;
}
.price_wrap .link_box .lb_cell{
  width: 50%;
}

.price_wrap .kickboxing{
  margin-bottom: 4.8rem;
  padding-top: 10rem;
}
.kickboxing .section_title{
  text-align: center;
}
.kickboxing .section_title h3{
  color: #fc4700;
  font-size: 4.8rem;
  font-weight: var(--bold);
  letter-spacing: normal;
}

.price_block + .price_block{
  margin-top: 4.8rem;
}
.price_block_title{
  margin-bottom: 2rem;
  font-size: 3.2rem;
  text-align: center;
}
.price_page_table table{
  width: 100%;
}
.price_page_table th,
.price_page_table td{
  padding: .5em 0;
  font-size: 4rem;
  text-align: center;
}
.price_page_table th{
  border-bottom: 1px solid #444;
  font-weight: normal;
}
.price_page_table th.cell_m{
  background-color: #60b0e5;
  color: #fff;
}
.price_page_table th.cell_f{
  background-color: #f26590;
  color: #fff;
}
.price_page_table td{
  border-bottom: 1px solid #444;
}
.price_page_table th:first-child,
.price_page_table td:first-child{
  border-right: 1px solid #444;
}

.content.price .plan_wrap{
  padding-top: 12rem;
}

@media screen and (max-width:767px){
  .price_wrap{
    padding-top: 4rem;
    padding-right: 2rem;
    padding-bottom: 4rem;
    padding-left: 2rem;
  }
  .price_intro{
    margin-top: 4.8rem;
    padding: 1em;
    font-size: 1.8rem;
    line-height: 2;
  }
  .price_wrap .campaign{
    margin-top: 4.8rem;
  }
  .kickboxing .section_title h3{
    font-size: 3.2rem;
  }
  .price_block_title{
    font-size: 1.8rem;
  }
  .price_page_table th,
  .price_page_table td{
    font-size: 1.8rem;
  }
}

@media screen and (min-width:768px) and (max-width:1080px){
  .price_block_title{
    font-size: 3.2rem;
  }
  .price_page_table th,
  .price_page_table td{
    padding: .5em 0;
    font-size: 2.8rem;
    text-align: center;
  }
}

/* join */
.join_outer{
  background-image: url(images/bg6.png);
  background-repeat: no-repeat;
  background-position: left top;
  background-size: contain;
}
.join_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-top: 16rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}

.join_link_wrap{
  display: flex;
  flex-direction: row;
  gap: 2rem;
  width: 80%;
  margin-top: 8rem;
  margin-right: auto;
  margin-left: auto;
}
.join_link_wrap .join_link_cell{
  width: 50%;
}
.join_link_cell .item_box{
  padding: 2rem 0;
  background-color: #fff;
  border: 2px solid #fc4700;
  border-radius: 1rem;
  text-align: center;
}
.join_link_cell .item_box .item_name{
  font-size: 2.8rem;
  font-weight: var(--bold);
}
.join_link_cell .item_box .item_price{
  margin-top: 1rem;
  color: #fc4700;
  font-size: 4.8rem;
  font-weight: var(--bold);
}
.join_link_cell .arrow{
  padding-top: 1rem;
  text-align: center;
}
.join_link_cell .arrow img{
  width: 40%;
  height: auto;
}

.join_wrap .join_btn{
  margin-top: 4rem;
  text-align: center;
}
.join_wrap .join_btn img{
  width: 100%;
  height: auto;
}

@media screen and (max-width:767px){
  .join_link_wrap{
    width: 100%;
  }
  .join_link_wrap{
    margin-top: 4.8rem;
    flex-direction: column;
  }
  .join_link_wrap .join_link_cell{
    width: 100%;
  }
  .join_link_wrap .join_link_cell.fst .arrow{
    display: none;
  }
}

@media screen and (min-width:768px) and (max-width:1080px){
  .join_link_wrap{
    width: 90%;
  }
}


/* personal */
.personal_outer{
  margin-top: 10rem;
  padding-top: 10rem;
  padding-bottom: 8rem;
  background-image: url(images/personal_bg.png);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
}
.personal_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.personal_txt{
  margin-top: 4.8rem;
  line-height: 2;
}
.personal_txt p{
  font-size: 3.2rem;
  text-align: justify;
}

@media screen and (max-width:767px){
  .personal_txt p{
    font-size: 1.8rem;
  }
}

@media screen and (min-width:768px) and (max-width:1080px){
  .personal_txt p{
    font-size: 2rem;
  }
}

/* flow */
.flow_outer{
  padding-top: 16rem;
  background-image: url(images/bg7.png);
  background-repeat: no-repeat;
  background-position: left top;
}
.flow_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.flow_catch{
  position: relative;
  width: 100%;
  height: 7.6rem;
  margin-top: 4.8rem;
  text-align: center;
}
.flow_catch::before{
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #71aaa5;
  z-index: 0;
}
.flow_catch_img{
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 50%;
  background-color: #fff;
  z-index: 1;
}
.flow_catch_img img{
  width: 100%;
  height: auto;
}
.flow_wrap .program{
  margin-top: 4.8rem;
}
.flow_movie{
  margin-top: 8rem;
}
.flow_movie_title{
  font-size: 4rem;
  text-align: center;
}
.flow_movie .movie_wrap{
  margin-top: 4rem;
}
.flow_movie .no-movie{
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16/9;
  background-color: #feceb8;
}
.flow_movie .no-movie img{
  width: auto;
  height: 2rem;
}

@media screen and (max-width:767px){
  .flow_outer{
    padding-top: 10rem;
    background-size: contain;
  }
  .flow_wrap{
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .flow_catch{
    height: 4.8rem;
    margin-top: 3.2rem;
  }
  .flow_catch_img{
    width: 80%;
  }
  .flow_movie{
    margin-top: 4.8rem;
  }
  .flow_movie_title{
    font-size: 2.8rem;
  }
}

@media screen and (min-width:768px) and (max-width:1080px){
  .flow_outer{
    padding-top: 12rem;
    background-size: 80% auto;
  }
  .flow_catch{
    height: 6.4rem;
  }
  .flow_catch_img{
    width: 60%;
  }
}

.campaign_outer{
  margin-top: 16rem;
  padding-top: 10rem;
  background-image: url(images/syokai_bg.jpg);
  background-repeat: no-repeat;
  background-position: left top;
  background-size: cover;
}
.campaign_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
/*
.campaign_wrap .campain_title{
  margin-bottom: 4rem;
  color: #fff;
  font-size: 8rem;
  font-weight: var(--bold);
  text-shadow: 0 5px 10px rgba(0,0,0,.5);
  text-align: center;
}
.campaign_wrap .referral{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50%;
  height: 8rem;
  margin-right: auto;
  margin-bottom: 4rem;
  margin-left: auto;
  background-color: #fff;
  border: 6px solid #ea5e92;
  border-radius: 4rem;
  color: #ea5e92;
  font-size: 4.8rem;
  font-weight: var(--bold);
  box-shadow: 0 10px 10px rgba(0,0,0,.5);
}
*/
.campaign_wrap .campain_title{
  text-align: center;
}
.campaign_wrap .referral{
  text-align: center;
}
.campaign_wrap .referral img{
  width: 100%;
  max-width: 40rem;
  height: auto;
}
.campaign_wrap .syogetu{
  margin-bottom: 4rem;
}
.camp_link_wrap{
  display: flex;
  flex-direction: row;
  gap: 3rem;
  margin-top: 4rem;
}

@media screen and (max-width:767px){
  .campaign_outer{
    margin-top: 8rem;
  }
  .campaign_wrap{
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .campaign_wrap .campain_title{
    font-size: 3.2rem;
  }
  .campaign_wrap .referral{
    width: 80%;
    height: 6.4rem;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 2.4rem;
    text-align: center;
  }
  .campaign_wrap .syogetu{
    margin-bottom: 2rem;
  }
  .camp_link_wrap{
    gap: 2rem;
    margin-top: 2rem;
  }
}

/* news 一覧 */
.news_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.news_list_wrap{
  margin-top: 8rem;
}
.news_list_wrap li{
  padding-top: 3rem;
  padding-bottom: 3rem;
  border-top: 2px dotted #ccc;
}
.news_list_wrap li a{
  display: flex;
  flex-direction: row;
  gap: 4rem;
}
.news_list_wrap li a .desc{
  flex: 1;
  padding-top: 2rem;
}
.news_list_wrap li a .desc .date{
  color: #fc4700;
  font-size: 2.4rem;
}
.news_list_wrap li a .desc .post_title{
  margin-top: 1rem;
  font-size: 3.2rem;
  line-height: 1.6;
}

.news_list_wrap li a .eyecatch{
  position: relative;
  width: 30rem;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.news_list_wrap li a .eyecatch img{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (max-width:767px){
  .news_wrap{
    padding-top: 4rem;
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .news_list_wrap{
    margin-top: 4.8rem;
  }
  .news_list_wrap li a{
    flex-direction: column;
    gap: 2rem;
  }
  .news_list_wrap li a .desc{
    padding-top: 0;
  }
  .news_list_wrap li a .desc .date{
    font-size: 1.8rem;
  }
  .news_list_wrap li a .desc .post_title{
    font-size: 2rem;
  }
  .news_list_wrap li a .eyecatch{
    width: 100%;
  }
}

/* blog 一覧 */
.blog_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.blog_list_wrap{
  margin-top: 8rem;
}
.blog_list_wrap ul{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8rem;
  padding-top: 4rem;
  padding-bottom: 4rem;
  border-top: 2px dotted #ccc;
  border-bottom: 2px dotted #ccc;
}
.blog_list_wrap li figure{
  position: relative;
  width: 100%;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.blog_list_wrap li figure img{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.blog_list_wrap li .desc{
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid #333;
}
.blog_list_wrap li .desc .date{
  color: #fc4700;
  font-size: 2.4rem;
}
.blog_list_wrap li .desc .post_title{
  margin-top: 1rem;
  font-size: 3.2rem;
  line-height: 1.6;
}

.blog_archive_navi{
  margin-top: 4.8rem;
  text-align: center;
}
.blog_archive_navi .inner{
  display: flex;
  justify-content: center;
  font-size: 3.2rem;
}
.blog_archive_navi .inner .space{
  width: 5rem;
}

.blog_wrap .no-post{
  font-size: clamp(2rem, 4vw, 2.4rem);
  text-align: center;
}

@media screen and (max-width:767px){
  .blog_wrap{
    padding-top: 4rem;
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .blog_list_wrap{
    margin-top: 4.8rem;
  }
  .blog_list_wrap ul{
    display: block;
  }
  .blog_list_wrap ul li + li{
    margin-top: 6rem;
  }
  .blog_list_wrap li .desc .date{
    font-size: 1.8rem;
  }
  .blog_list_wrap li .desc .post_title{
    font-size: 2rem;
  }
  .blog_archive_navi .inner{
    font-size: 2.4rem;
  }
}

@media screen and (min-width:768px) and (max-width:1080px){
  .blog_list_wrap li .desc .post_title{
    font-size: 2.4rem;
  }
}

/* news & blog 詳細 */
.single_title{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.post_outer{
  background-image: url(images/bg3.png);
  background-repeat: no-repeat;
  background-position: left bottom;
}
.post_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-top: 4rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.post_header{
  margin-bottom: 4rem;
  padding-top: 2rem;
  border-top: 2px dotted #ccc;
}
.post_header .date{
  color: #fc4700;
  font-size: clamp(1.8rem, 2.5vw, 2.4rem);
}
.post_header h1{
  margin-top: 1rem;
  font-size: clamp(2.4rem, 2.5vw, 3.2rem);
  line-height: 1.6;
}

.post_body{
  line-height: 2;
}
.post_body .eyecatch{
  width: 100%;
  aspect-ratio: 3/2;
  overflow: hidden;
  margin-bottom: 4rem;
}
.post_body .eyecatch figure{
  position: relative;
  width: 100%;
  height: 100%;
}
.post_body .eyecatch figure img{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.post_body h2{
  margin-top: 4rem;
  margin-bottom: 3rem;
  padding-bottom: 2rem;
  border-bottom: 2px dotted #ccc;
  font-size: clamp(2rem, 2.5vw, 2.8rem);
}

.post_body p + p,
.post_body p + figure,
.post_body figure + p{
  margin-top: 1em;
}

.post_footer{
  margin-top: 4rem;
  padding-top: 4rem;
  padding-right: 2rem;
  padding-left: 2rem;
  border-top: 2px dotted #ccc;
}
.post_footer .inner{
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 2rem;
}
.post_footer .inner .footer_nav{
  flex: 1;
  display: flex;
  justify-content: flex-start;
}
.post_footer .inner .footer_nav .no-link{
  color: #ccc;
}
.post_footer .inner .footer_nav .space{
  width: 3rem;
  text-align: center;
}
.post_footer .inner .back{
  text-align: right;
}

@media screen and (max-width:767px){
  .post_outer{
    padding-top: 4rem;
  }
  .single_title,
  .post_wrap{
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .post_footer{
    padding-right: 0;
    padding-left: 0;
  }
  .post_footer .inner{
    font-size: 1.6rem;
  }
}


/* contact */
.contact_wrap{
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding-right: 4rem;
  padding-left: 4rem;
}
.btn_wrap{
  margin-top: 8rem;
}
.btn_box + .btn_box{
  margin-top: 4rem;
}
.contact_info{
  margin-top: 8rem;
  text-align: center;
}
.contact_info p{
  font-size: 3.2rem;
  line-height: 1.6;
}

.form_body{
  margin-top: 8rem;
}
.form_body .cell + .cell{
  margin-top: 3rem;
}
.form_body .cell .item{
  margin-bottom: 1rem;
  padding-left: 1rem;
}
.form_body .cell .item .required{
  color: #fc4700;
}
.form_body .cell .item_txt .required{
  color: #fc4700;
  font-size: 1.6rem;
}
.form_body .cell .input{
  font-size: 2.4rem;
}
.form_body .cell .item_txt{
  font-size: 2.4rem;
}
.form_body .cell .check_list{
  margin-top: 2rem;
}
.form_body .cell .check_list li input[type=radio]{
  margin-right: 1rem;
}
.form_body .cell .textarea > textarea{
  font-size: 2.4rem;
  line-height: 1.4;
}
.form_body .submit_btn{
  margin-top: 4rem;
  text-align: center;
}
.form_body .submit_btn input[type=submit]{
  width: 30%;
  padding-top: 1rem;
  padding-bottom: 1rem;
  background-color: #888;
  border: 0;
  color: #fff;
  font-size: 2.4rem;
}

.contact_wrap .backtohome{
  margin-top: 4rem;
  text-align: center;
}
.contact_wrap .backtohome a{
  display: inline-block;
  padding: 1em 2em;
  border: 1px solid #ccc;
  border-radius: 4px;
}

@media screen and (max-width:767px){
  .contact_wrap{
    padding-top: 4rem;
    padding-right: 2rem;
    padding-left: 2rem;
  }
  .btn_wrap{
    margin-top: 4.8rem;
  }
  .btn_box + .btn_box{
    margin-top: 2rem;
  }
  .contact_info{
    margin-top: 4.8rem;
    text-align: left;
  }
  .contact_info p{
    font-size: 1.8rem;
  }
  .form_body .submit_btn input[type=submit]{
    width: 40%;
  }
  .form_body .cell .textarea > textarea{
    font-size: 1.6rem;
  }
}


/* footer
------------------------------------------------ */
.footer{
  background-color: #a2a2a2;
  color: #fff;
}
.footer .inner{
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  width: 100%;
  max-width: var(--pcm);
  margin-right: auto;
  margin-left: auto;
  padding: 3.2rem 4rem;
  font-size: 2rem;
}
.footer .inner .footer_address{
  width: 60%;
  line-height: 2;
}
.footer .inner .footer_biz_hours{
  flex: 1;
  line-height: 1.4;
}
.f_b_h{
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.f_b_h dt{
  width: 14rem;
}
.f_b_h dd{
  flex: 1;
}

@media screen and (max-width:767px){
  .footer .inner{
    flex-direction: column;
    padding-right: 2rem;
    padding-left: 2rem;
    font-size: 1.6rem;
  }
  .footer .inner .footer_address{
    width: 100%;
  }
  .footer .inner .footer_biz_hours{
    margin-top: 4rem;
  }
  .f_b_h dt{
    width: 10rem;
  }
}

@media screen and (min-width:768px) and (max-width:1080px){
  .footer .inner{
    font-size: 1.6rem;
    padding: 3.2rem 2.4rem;
  }
  .f_b_h dt{
    width: 6em;
  }
}


/*
form
---------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
button,
textarea{
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
input{
  box-sizing: border-box;
}
input[type="text"],
input[type="email"],
input[type="tel"]{
  width: 100%;
  padding: .5em;
  border: 1px solid #ccc;
  border-radius: 4px;
}
textarea{
  box-sizing: border-box;
  width: 100%;
  padding: 1rem;
  border: 1px solid #ccc;
  border-radius: 4px;
}

/* contact form 7 */
.wpcf7-not-valid-tip{
  margin-top: 1rem;
  font-size: 1.6rem;
}
.wpcf7-list-item{
  display: block;
  margin-left: 1rem;
}
.wpcf7-list-item + .wpcf7-list-item{
  margin-top: 1em;
}
.form_body .cell .check_list{
  font-size: 2.4rem;
}
.form_body .cell textarea.wpcf7-textarea{
  height: 8em;
  font-size: 2.4rem;
  line-height: 1.4;
}
@media screen and (max-width:767px){
  .form_body .cell textarea.wpcf7-textarea{
    font-size: 1.6rem;
  }
}
.wpcf7 form .wpcf7-response-output{
  padding: 1em;
}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output{
  background-color: #ffb900;
}

/* for WordPress
---------------------------------------------------------- */
/* post-navigation */
.archive_page_navi {
  margin-top: 8rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

.archive_page_navi .nav-links {
  flex-direction: row;
}

.archive_page_navi .page-numbers{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 6rem;
  height: 6rem;
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 3rem;
  color: #666;
  font-size: 1.6rem;
}
.archive_page_navi .page-numbers + .page-numbers{
  margin-left: 1rem;
}
.archive_page_navi .page-numbers.current{
  background-color: #e5e5e5;
  border: 0;
  color: #fff;
}
.archive_page_navi .page-numbers.dots{
  background-color: inherit;
  border: 0;
}
.archive_page_navi a.page-numbers:hover{
  background-color: #fc4700;
  border-color: #fc4700;
  color: #fff;
}
@media screen and (max-width:767px){
  .archive_page_navi .page-numbers{
    width: 3rem;
    height: 3rem;
    border-radius: 1.5rem;
    font-size: 1.2rem;
  }
}

.single_pagenav{
  margin-top: 4rem;
  padding-top: 4rem;
  border-top: 2px dotted #ccc;
}
.single_pagenav .nav-links{
  display: grid;
  grid-template-columns: 1fr 8rem 1fr;
  column-gap: 2rem;
  font-size: 1.4rem;
}
.single_pagenav .nav-links .nav-home{
  order: 2;
  text-align: center;
}
.single_pagenav .nav-links .nav-previous{
  order: 3;
  text-align: right;
}
.single_pagenav .nav-links .nav-next{
  order: 1;
  text-align: left;
}
.single_pagenav .nav-links .nav-home a{
  display: inline-block;
  padding: 1.2rem 2rem;
  background-color: #eee;
}
.single_pagenav .nav-links .nav-previous a,
.single_pagenav .nav-links .nav-next a{
  display: inline-block;
  padding: 1.2rem 3rem;
  background-color: #eee;
}

/* search */
.wp-block-search__label{
  display: none;
}
.wp-block-search__button.wp-element-button{
  padding-right: 1rem;
  padding-left: 1rem;
  border: 0;
  border-radius: .2rem;
  font-size: 1.4rem;
}

/* post */
.blocks-gallery-caption{
  font-size: 1.4rem;
}


/* WP comment */
.comments_block {
  margin-top: 8rem;
  padding-top: 4rem;
  border-top: 1px solid #ddd;
}
.comments_block .comments_title_block {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 3rem;
}
.comments_title h3 {
  display: inline-block;
  padding-bottom: 1rem;
  border-bottom: 1px solid #36c;
  font-weight: bold;
}
.comments_num {
  font-size: 1.4rem;
}
ol.comments-list .comment + .comment {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px dotted #ddd;
}
.comment-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
.comment-author img {
  vertical-align: middle;
}
.comment-metadata {
  font-size: 1.4rem;
}
.comment-metadata a {
  color: #999;
}
.comment-reply-title {
  margin-bottom: 1em;
  font-weight: bold;
}
.comment-body .reply{
  margin-top: 1rem;
  font-size: 1.4rem;
  text-align: right;
}

.comment-respond {
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid #eee;
}
.comment-form-comment label,
.comment-form-author label,
.comment-form-email label,
.comment-form-url label {
  display: block;
}
.form-submit input {
  padding: 1em 2em;
  font-size: 1.4rem;
}
.comment-meta .comment-awaiting-moderation {
  display: inline-block;
  margin-top: 1rem;
  color: #999;
  font-size: 1.4rem;
  line-height: 1.4;
}
.comment-form-comment textarea{
  width: 100%;
}
.comment-form a{
  text-decoration: underline;
}

/* 404 */
.wrap404{
  margin-top: 16rem;
}
.container404{
  text-align: center;
}
.header404 .title404{
  font-size: 2.4rem;
  font-weight: var(--fwb);
}
.error404_body{
  margin-top: 4rem;
  line-height: 2;
}
.error404_body .back{
  margin-top: 1em;
}

/* -------------------------------------------------------
Break Point
---------------------------------------------------------- */
@media screen and (max-width:767px){
  .pc, .tab{display: none;}
}/* end smartphone only */

@media screen and (min-width:768px){
  .sp{display: none;}
  a[href^="tel:"] {
    pointer-events: none;
  }
}/* end TAB & PC */

@media screen and (min-width:768px) and (max-width:1080px){
  .pc{display: none;}
}/* end TAB only */

@media screen and (min-width:1081px){
  .sp, .tab {display: none;}
}/* end PC */

