@charset "UTF-8";

/*------------------------------------
ベース共通設定
-------------------------------------*/

html {
    font-size: .78125vw;
    /*font-size: 62.5%;  1rem = 10px */
    scroll-behavior: smooth;
}

body {
    color: #111111;
    font-family:
        "Yu Gothic",
        "Yu Gothic UI",
        "Helvetica Neue",
        "Segoe UI",
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Noto Sans JP",
        sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 1.6;
    position: relative;
/*    letter-spacing: 0.05em;*/
    background: #ffffff;
    overflow-x: hidden;
}

.dinde{
    font-family: "din-2014", sans-serif;
    font-weight: 600;
    font-size: 1.8rem;
}

.dinbo{
    font-family: "din-2014", sans-serif;
    font-weight: 700;
    font-size: 1.8rem;
}

.shippome{
    font-family: "shippori-mincho",
        "Hiragino Mincho ProN",
        "Yu Mincho",
        "YuMincho",
        "MS PMincho",
        serif;
    font-weight: 500;
}

.shipposb{
    font-family: "shippori-mincho",
        "Hiragino Mincho ProN",
        "Yu Mincho",
        "YuMincho",
        "MS PMincho",
        serif;
    font-weight: 600;
}

.f11{
    font-size: 1.1rem;
}

.f12{
    font-size: 1.2rem;
}

.f14{
    font-size: 1.4rem;
}

.f18{
    font-size: 1.8rem;
}

bold{
    font-weight: bold;
}

a,img{
    transition: 0.2s;
}

a{
    color: #e84a01;
}

.pc{
    display: block;
}

.sp,.sp_nav{
    display: none;
}

/*------------------------------------
in-view
-------------------------------------*/

/* 初期状態 */
.fadein{
    opacity: 0;
    transform: translateY(15px);
    transition: 
        opacity .6s ease,
        transform .6s cubic-bezier(.22,1,.36,1);
    will-change: opacity, transform;
}

/* 表示状態 */
.fadein.is-inview{
    opacity: 1;
    transform: translateY(0);
}

/* 初期 */
.neon-img{
    opacity: 0;
}

/* 初期は見えない */
.neon-img{
    opacity: 0;
}

/* inview時に一度だけ再生 */
.fadein.is-inview.neon-img{
    animation: img-flicker-strong 2s ease-out 0.5s 1 both;
}

@keyframes img-flicker-strong{

    /* --- 初期：高速チカチカ --- */
    0%   { opacity: 0;   filter: brightness(.6); }
    5%   { opacity: 1;   filter: brightness(1.8); }
    8%   { opacity: .2;  filter: brightness(.8); }
    12%  { opacity: 1;   filter: brightness(2); }
    16%  { opacity: .3;  filter: brightness(.9); }
    20%  { opacity: 1;   filter: brightness(1.9); }
    25%  { opacity: .4;  filter: brightness(.9); }

    /* --- 中盤：少し安定し始める --- */
    35%  { opacity: 1;   filter: brightness(1.3); }
    45%  { opacity: .7;  filter: brightness(1.1); }
    55%  { opacity: 1;   filter: brightness(1); }

    /* --- 終盤：強く光って定着 --- */
    70%  { opacity: 1;   filter: brightness(1); }
    85%  { opacity: 1;   filter: brightness(1); }
    100% { opacity: 1;   filter: brightness(1); }
}

/*------------------------------------
COMING SOON
-------------------------------------*/

.coming-soon-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;

    opacity: 0;
    visibility: hidden;
    transition: opacity .4s ease, visibility .4s ease;
}

.coming-soon-modal.is-open {
    opacity: 1;
    visibility: visible;
}

.coming-soon-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.6);
    opacity: 0;
    transition: opacity .4s ease;
}

.coming-soon-modal.is-open .coming-soon-modal__backdrop {
    opacity: 1;
}

.coming-soon-modal__content {
    position: relative;
    max-width: 520px;
    margin: 0 auto;
    top: 50%;
    transform: translateY(-45%);
    background: #fff;
    border-radius: 16px;
    padding: 24px 20px;
    text-align: center;

    opacity: 0;
    transition: all .4s ease;
}

.coming-soon-modal.is-open .coming-soon-modal__content {
    transform: translateY(-50%);
    opacity: 1;
}

.coming-soon-modal__eyebrow {
    letter-spacing: .08em;
    font-weight: 700;
    margin-bottom: 8px;
}

.coming-soon-modal__title {
    font-size: 20px;
    margin-bottom: 12px;
}

.coming-soon-modal__text {
    font-size: 14px;
    line-height: 1.7;
    margin-bottom: 16px;
}

.coming-soon-modal__close {
    display: inline-block;
    padding: 10px 16px;
    border: 1px solid #111;
    background: #111;
    color: #fff;
    border-radius: 999px;
    cursor: pointer;
}


/*------------------------------------
ヘッダー
-------------------------------------*/
header .sp_menu_bar{
    display: none;
}

header .pc_menubar .orBar{
    width: 100%;
    height: 3rem;
    background: #cc6600;
    color: #fff;
    display: flex;
    justify-content: space-between;
    position: relative;
}

header .pc_menubar .hd_L {
    display: flex;
    align-items: center;
    padding-left: 1rem;
}

header .pc_menubar .hd_R {
    display: flex;
    align-items: center;
}

header .site_logo{
    width: 10rem;
    background: #111;
    padding: 1rem 1.5rem 0 1.5rem;
    position: absolute;
    top: 0;
    left: 50%;
    margin-left: -5rem;
    z-index: 2;
}

header .site_logo::after {
    position: absolute;
    left: 50%;
    margin-left: -5rem;
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 5rem solid transparent;
    border-left: 5rem solid transparent;
    border-top: 1.5rem solid #111111;
    border-bottom: 0;
}

header .pc_menubar .hd_R .phonenum.f12 {
    height: 100%;
    margin-left: 2rem;
}

header .pc_menubar .hd_R .phonenum.f12 a {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #111;
    color: #fff;
    height: 100%;
    width: 20rem;
    line-height: 1;
}

header .pc_menubar .hd_R .phonenum.f12 a .dinde {
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    margin-bottom: 1px;
    margin-left: 1rem;
    display: inline-block;
}

header .pc_menubar .hd_menu{
    display: flex;
    justify-content: space-between;
    height: 4.5rem;
    padding: 0.5rem 0;
}

header .pc_menubar ul.hd_menuR,
header .pc_menubar ul.hd_menuL{
    display: flex;
    width: 46%;
}

header .pc_menubar .menu01,
header .pc_menubar .menu02,
header .pc_menubar .menu05,
header .pc_menubar .menu06{
    width: 30%;
}

header .pc_menubar .menu03,
header .pc_menubar .menu04{
    width: 40%;
}

header .pc_menubar .menu01,
header .pc_menubar .menu02,
header .pc_menubar .menu04,
header .pc_menubar .menu05{
    border-right: 1px solid #898989;
}


header .pc_menubar ul.hd_menuR li a,
header .pc_menubar ul.hd_menuL li a{
    display: flex;
    width: 100%;
    height: 100%;
    justify-content: center;
    align-items: center;
    color: #111;
    transition: 0.2s;
}

/* ベース */
header .pc_menubar ul.hd_menuR li a,
header .pc_menubar ul.hd_menuL li a{
    position: relative;
    display: flex;
    width: 100%;
    height: 100%;
    justify-content: center;
    align-items: center;
    color: #111;

    transition: transform .25s ease, color .25s ease;
}

/* hoverアクション */


    header .pc_menubar ul.hd_menuR li a:hover,
    header .pc_menubar ul.hd_menuL li a:hover{
        transform: translateY(-1px);
        color: #f05a28;
    }

    header .pc_menubar ul.hd_menuR li a:hover::after,
    header .pc_menubar ul.hd_menuL li a:hover::after{
        opacity: 1;
        transform: translateX(-50%) scale(1.1);
    }

/* 下層ページ現在地 */

header .pc_menubar .hd_menu li.current a{
    color: #f05a28;
}


/*------------------------------------
トップページ：FV
-------------------------------------*/

section.front_fv {
    line-height: 0;
}

.fv_txt {
    text-indent: -9999px;
    margin-left: -9999px;
    height: 0;
    line-height: 0;
}


/*------------------------------------
CTA
-------------------------------------*/
.cta{
    border-top: 0.5rem solid #e84a02;
    background: url(assets/images/bg_cta.jpg) center center no-repeat;
    background-size: cover;
    padding: 2rem;
}

.cta h2{
    font-size: 1.8rem;
    color: #fff;
    text-align: center;
}


/* ボタン配置 */
.cta_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 1rem 0;
}

.cta_btn li:first-child {
    margin-right: 2rem;
}

.cta_btn li a {
    width: 36rem;
    height: 6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.2rem 1.2rem;
    border-radius: 5rem;
    text-decoration: none;
    font-weight: 400;
    border: 0.3rem solid #fff;
    position: relative;
    padding-left: 4rem;
}

.cta_btn li a .f18 {
    font-size: 1.8rem;
    font-weight: bold;
    display: inline-block;
    margin-right: 0.5rem;
}


.cta_btn li img {
    width: 3rem;
    height: auto;
    display: block;
    position: absolute;
    left: 4%;
}

/* ボタン色（例：クラス名に合わせて） */
.cta_btn_bk a{
    background: #111;
    color: #fff;
    border: 1px solid rgba(255,255,255,.25);
    transition: transform .2s ease, box-shadow .2s ease;
}

.cta_btn_or a{
    background: linear-gradient(
        180deg,
        #ff4d00 0%,
        #ff7a1a 60%,
        #ff8c2a 100%
    );
    color: #fff;
    transition: transform .2s ease, box-shadow .2s ease;
}


/* ホバー */
.cta_btn_or a:hover{
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(255,100,0,.35);
}

.cta_btn_bk a:hover{
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0,0,0,.5);

}

/*------------------------------------
トップページ：お知らせ
-------------------------------------*/
.frontPage .news {
    background: #111;
    padding: 0 2rem;
}

.frontPage .news .inner{
    width: 100%;
    margin: 0 auto;
    display: flex;
    padding: 0.5rem;
    min-height: 2rem;
    justify-content: center;
}

.frontPage .news h2{
    color: #fff;
    font-weight: bold;
    text-align: right;
    margin-right: 4rem;
}

.frontPage .news-item {
    display: flex;
    font-size: 1.4rem;
    color: #fff;
    margin-bottom: 1rem;
}

.frontPage .news-item:last-child {
    margin-bottom: 0;
}

.frontPage .news-item a{
    color: #fff;
    display: inline-block;
}

.frontPage .news-item::before {
    content: "▶";
    color: #fff;
}

.frontPage .news-item a p {
    line-height: 1.3;
    display: inline;
    border-bottom: 1px dashed #fff;
}

/*------------------------------------
トップページ：開催中のキャンペーン
-------------------------------------*/
.campaign{
    padding: 0 2rem;
}

.campaign .inner{
    margin: 0 auto;
    padding: 6rem 0 8rem;
    width: 83%;
}

h2.ttl_or_g{
    text-align: center;
    margin-bottom: 4rem;
}

h2.ttl_or_g img{
    display: block;
    width: 31.5rem;
    margin: 0 auto;    
}

h2.ttl_or_g .sub_ttl {
    font-weight: 500;
    margin-top: 1rem;
    display: block;
}

ul.campaign-list {
    display: flex;
    justify-content: center;
}

li.campaign-item:first-child {
    margin-right: 2rem;
}

/*------------------------------------
トップページ：開催中のキャンペーン
-------------------------------------*/
.frontPage .philosophy{
    width: 100%;
    height: 46rem;
    background: url(assets/images/bg_ttl-philosophy_pc.jpg) right top no-repeat;
    background-size: cover;
    display: flex;
    align-items: center;
}

.frontPage .philosophy .inner{
    padding: 0 8rem;
}

.frontPage .philosophy h2{
    margin-bottom: 3rem;
}

.frontPage .philosophy h2 img {
    display: block;
    width: 28rem;
}

.frontPage .philosophy h2 .sub_ttl {
    color: #fff;
    font-size: 3.4rem;
    margin-top: -5rem;
    display: block;
    letter-spacing: 0;
}

.frontPage .philosophy .txtarea p {
    color: #fff;
    margin-bottom: 1em;
    font-size: 1.5rem;
}

/*------------------------------------
トップページ：厚みある体験
-------------------------------------*/

.lineup{
    margin-top: 6rem;
}

.lineup h2{
    width: 100%;
    height: 26.5rem;
    background: url(assets/images/bg_ttl-lineup01_pc.png) center center no-repeat;
    background-size: cover;
    position: relative;
    margin-bottom: 2rem;
}

.lineup h2::after{
    content: "";
    display: block;
    margin: 0 auto;
    background: url(assets/images/bg_ttl-lineup02.png) center center no-repeat;
    background-size: contain;
    width: 8rem;
    height: 2.25rem;
    position: absolute;
    bottom: -2.25rem;
    left: 50%;
    margin-left: -4rem;
}

.lineup h2 img {
    display: block;
    width: 36rem;
    position: absolute;
    text-align: center;
    z-index: 1;
    top: 2.4rem;
    right: 0;
    left: 0;
    border: 0;
    margin: auto;
    height: 100%;
}

.lineup h2 .sub_ttl {
    position: relative;
    display: block;
    z-index: 2;
    text-align: center;
    padding-top: 5rem;
    font-size: 1.4rem;
    letter-spacing: 0;
}

.lineup h2 .sub_ttl::after{
    content: "";
    display: block;
    width: 7rem;
    height: 0.3rem;
    background: rgba(249,130,68,0.5);
    margin: 2rem auto;
    
}

.lineup h2 .ttl01{
    font-size: 2rem;
    display: block;
    text-align: center;
    position: relative;
    z-index: 2;
}

.lineup h2 .ttl01 span{
    font-size: 1.5rem;
}

.lineup h2 .ttl02{
    font-size: 3.4rem;
    display: block;
    text-align: center;
    position: relative;
    z-index: 2;
}

.lineup h2 .ttl02 span{
    font-size: 2.8rem;
}

.lineup ul li {
    padding: 6rem 2rem;
}

.lineup ul li .inner{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 83%;
    margin: 0 auto;
}

.lineup ul li .eyecatch {
    width: 66%;
    position: relative;
}

.lineup ul li.personal .eyecatch .icon{
    display: block;
    width: 9rem;
    position: absolute;
    right: 2rem;
    top: -1rem;
}

.lineup ul li.studio .eyecatch .icon{
    display: block;
    width: 9rem;
    position: absolute;
    left: 2rem;
    top: -1rem;
}

.lineup ul li h3 .sub_ttl {
    display: block;
    font-weight: 600;
    margin: 1rem 0 3rem;
}

.lineup ul li h3 .sub_ttl::after {
    content: "";
    display: block;
    width: 7rem;
    height: 0.3rem;
    background: #e95b1a;
    margin-top: 2rem;
}

.lineup ul li.personal{
    background: #f5f3ee;
}

.lineup ul li.gym h3 img{
    width: 26.5rem;
    display: block;
}

.lineup ul li.personal h3 img{
    width: 32.3rem;   
    display: block;
}

.lineup ul li.studio h3 img{
    width: 30.2rem;   
    display: block;
}

.lineup ul li .textbox {
    width: 31%;
}

.lineup ul li .textbox p{
    text-align: justify;
    letter-spacing: 0;
}

.lineup ul li.gym .textbox,
.lineup ul li.studio .textbox{
    margin-left: 3%;
}

.lineup ul li.personal .textbox{
    margin-right: 3%;
}

.lineup ul li .pickup {
    color: #e95b1a;
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
}

.lineup ul li .pickup img {
    width: 1.7rem;
    display: inline-block;
    margin-right: 0.5rem;
}

.btn_more a {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #111;
    width: 18rem;
    height: 6rem;
    border-radius: 10rem;
    color: #fff;
    font-family: din-2014, sans-serif;
    font-weight: 600;
    font-size: 1.8rem;
    position: relative;
    padding-right: 2%;
    transition: 0.3s;
    margin: 3rem auto 0;
}

.btn_more a::after{
    content: "";
    position: absolute;
    right: 8%;
    top: 50%;
    width: 1rem;
    height: 1rem;
    border-left: 2px solid #fff;
    border-top: 2px solid #fff;
    transform: translate(-50%, -40%) rotate(135deg);
}

.btn_more a:hover {
    background: #ef601d;
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0,0,0,.3);
}

/*------------------------------------
トップページ：館内マップ
-------------------------------------*/

.floorMap .floorBG{
    background: url(assets/images/bg_floormap.jpg) no-repeat;
    background-size: cover;
    padding: 6rem 2rem;
}

.floorMap .floorBG h2{
    color: #fff;
    text-align: center;
    margin-bottom: 3rem;
}

.floorMap .floorBG h2 img {
    display: block;
    width: 22rem;
    margin: 0 auto 2rem;
}

.floorMap .floorBG h2 .ttl01 {
    display: block;
    font-size: 2rem;    
}

.floorMap .floorBG h2 .ttl02 {
    display: block;
    font-size: 3.2rem;    
}

.floorMap .map {
    width: 64rem;
    margin: 0 auto;
}


.floorMap .slideShow {
    padding: 2rem 0;
    background: #cc6600;
}

.floorMap .bf-carousel {
    width: 100%;
    overflow: hidden;
}

.floorMap .bf-carousel .swiper-slide {
    height: auto;
}

.floorMap .bf-carousel img {
    width: 100%;
    height: 100%;
    display: block;
    aspect-ratio: 3 / 2; 
    object-fit: cover;
}

.floorMap .bf-carousel {
    padding: 1.6rem 0;
}

/*------------------------------------
6つのポイント
-------------------------------------*/
.reasons{
    margin-top: 6rem;
}

.reasons h2{
    width: 100%;
    height: 22rem;
    background: url(assets/images/bg_ttl-reasons01.png) center center no-repeat;
    background-size: cover;
    position: relative;
    margin-bottom: 8rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.reasons h2::after{
    content: "";
    display: block;
    margin: 0 auto;
    background: url(assets/images/bg_ttl-reasons02.png) center center no-repeat;
    background-size: contain;
    width: 8rem;
    height: 2.25rem;
    position: absolute;
    bottom: -2.25rem;
    left: 50%;
    margin-left: -4rem;
}

.reasons h2 img {
    display: block;
    width: 16.7rem;
    position: absolute;
    text-align: center;
    z-index: 1;
    top: -1rem;
    right: 0;
    left: 0;
    border: 0;
    margin: auto;
    height: 100%;
}

.reasons h2 .ttl01 {
    font-size: 2rem;
    display: block;
    text-align: center;
    position: relative;
    z-index: 2;
    margin-top: 4rem;
}

.reasons h2 .ttl02 {
    font-size: 3.4rem;
    display: block;
    text-align: center;
    position: relative;
    z-index: 2;
}

.reasons h2 .ttl02 span {
    font-size: 2.8rem;
}

.reasons h2 .ttl02::after {
    content: "";
    display: block;
    width: 7rem;
    height: 0.3rem;
    background: rgba(249, 130, 68, 0.5);
    margin: 2rem auto;
}

.reasons ul.reasons_list {
    width: 75%;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
}

.reasons ul.reasons_list li{
    width: 48%;
    margin-bottom: 4rem;
}

.reasons ul.reasons_list li:nth-child(2n+1){
    margin-right: 4%;
}

.reasons ul.reasons_list li .photo {
    line-height: 0;
    margin-bottom: 2rem;
}

.reasons ul.reasons_list h3 {
    font-weight: bold;
    font-size: 3rem;
    padding: 0 1rem;
    display: flex;
}

.reasons ul.reasons_list h3 .icon {
    width: 6rem;
    margin-right: 2rem;
    display: inline-block;
    margin-top: 0.3rem;
}

.reasons ul.reasons_list li:first-child h3 .icon {
    width: 5.4rem;
    margin-right: 2rem;
    display: inline-block;
    margin-top: 0.3rem;
}

.reasons ul.reasons_list p {
    padding: 1rem;
    text-align: justify;
}

.reasons ul.reasons_list .LOGO_alsok {
    display: inline-block;
    width: 20rem;
    margin-top: 0.3rem;
}

.reasons .icon-plus{
    width: 7.5rem;
    margin: 0 auto -5rem;
    position: relative;
    z-index: 2;
}

.reasons .andmore{
    width: 85%;
    margin: 0 auto 8rem;
    background: url(assets/images/bg_ttl-point.jpg) no-repeat;
    background-size: cover;
    padding: 8rem 2rem 6rem;
}

.reasons .andmore h3{
    font-size: 3rem;
    margin-bottom: 2rem;
    color: #fff;
    text-align: center;
}


.reasons .more_list {
    display: flex;
    flex-wrap: wrap;
    width: 90%;
    margin: 0 auto;
    justify-content: center;
}

.reasons .more_list li {
    width: 18%;
    margin: 0.5%;
}

/*------------------------------------
トップページ：利用者のリアルな声
-------------------------------------*/

.Googlereviews {
    padding: 4rem 2rem 10rem;
}

.Googlereviews h2{
    position: relative;
    margin-bottom: 6rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.Googlereviews h2 img {
    display: block;
    width: 22rem;
    position: absolute;
    text-align: center;
    z-index: 1;
    top: 3.5rem;
    right: 0;
    left: 0;
    border: 0;
    margin: auto;
    height: 100%;
}

.Googlereviews h2 .ttl01 {
    font-size: 2rem;
    display: block;
    text-align: center;
    position: relative;
    z-index: 2;
    margin-top: 4rem;
}

.Googlereviews h2 .ttl02 {
    font-size: 3.2rem;
    font-weight: 500;
    display: block;
    text-align: center;
    position: relative;
    z-index: 2;
}

.Googlereviews h2 .ttl02 .shipposb {
    font-size: 4rem;
    letter-spacing: -5px;
    display: inline-block;
    margin-right: 8px;
}



/*------------------------------------
トップページ：スタッフ紹介
-------------------------------------*/
.staff::before {
    content: "";
    width: 100%;
    height: 6rem;
    background: url(assets/images/bg_ttl-staff01.png) no-repeat;
    background-size: contain;
    display: block;
    position: absolute;
    top: 0;
}

.staff{
    color: #fff;
    background-color: #111;

    background-image:
        url("assets/images/bg_ttl-staff02.png"),
        url("assets/images/bg_ttl-staff03.png");

    background-repeat:
        no-repeat,
        no-repeat;

    background-position:
        right 5.2rem,
        left bottom;

    background-size:
        contain,
        contain;
    padding: 8rem 0 6rem;
    position: relative;
}

.staff h2.ttl_or_g img{
    width: 18.3rem;
}

.staff h2.ttl_or_g .sub_ttl{
    color: #fff;
}

.staff ul.staff_list {
    width: 75%;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    margin-top: 6rem;
}

.staff ul.staff_list li {
    width: 46%;
    margin-bottom: 4rem;
}

.staff ul.staff_list li:nth-child(2n+1) {
    margin-right: 8%;
}

.staff ul.staff_list li .photo {
    position: relative;
    margin-bottom: 1rem;
}

.staff ul.staff_list li .photo img{
    position: relative;
    z-index: 2;
}

.staff ul.staff_list li .photo::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    border: 2px solid #e84a02;
    position: absolute;
    top: -1rem;
    left: -1rem;
    z-index: 1;
}

.staff ul.staff_list li .katagaki {
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.333;
    margin-bottom: 1rem;
}

.staff ul.staff_list li h3.name {
    font-size: 3rem;
    font-weight: bold;
    margin-bottom: 2rem;
    display: flex;
    align-items: center;
    letter-spacing: 0.05em;
}

.staff ul.staff_list li h3.name .romaji{
    display: inline-block;
    margin-left: 2rem;
}

.staff ul.staff_list li dt {
    border: 1px solid #fff;
    width: 5em;
    text-align: center;
    border-radius: 5rem;
    margin-bottom: 1rem;
}

.staff ul.staff_list li dd {
    margin-bottom: 2rem;
    text-align: justify;
}

/*------------------------------------
トップページ：料金のご案内
-------------------------------------*/
.priceList {
    background: #f5f3ee;
    padding: 4rem 2rem 6rem;
}

.priceList h2 {
    position: relative;
    margin-bottom: 6rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.priceList h2 img {
    width: 22rem;
    display: block;
    position: absolute;
    text-align: center;
    z-index: 1;
    top: 3.5rem;
    right: 0;
    left: 0;
    border: 0;
    margin: auto;
}

.priceList h2 .shipposb {
    font-size: 3.2rem;
    font-weight: 500;
    display: block;
    text-align: center;
    position: relative;
    z-index: 2;
    margin-top: 7rem;
}

.priceList .price-block {
    width: 75%;
    margin: 0 auto;
    text-align: center;
    margin-bottom: 6rem;
}

h3.price-block__label {
    width: 100%;
    font-size: 2.8rem;
    background: #313131;
    color: #fff;
    line-height: 1.3;
    margin-bottom: 1rem;
}

h3.price-block__label.price-block__label--gray {
    background: #959595;
}

.price-card {
    margin-top: 3rem;
}

h4.price-card__title {
    font-weight: bold;
    font-size: 1.8rem;
}

dl.price-dl {
    border: 2px solid #313131;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 2rem;
}

dt.price-dl__dt {
    font-weight: bold;
    margin-right: 4rem;
}

dt.price-dl__dt span {
    font-size: 1.4rem;
    font-weight: 500;
}

dd.price-dl__dd {
    display: flex;
    justify-content: left;
    align-items: center;
}

dd.price-dl__dd span.tax {
    font-size: 1.2rem;
}

dd.price-dl__dd span.yen {
    font-weight: bold;
    font-size: 1.8rem;
    margin-left: 1rem;
}

dd.price-dl__dd .price {
    font-weight: bold;
    font-size: 3.2rem;
    margin-left: 1rem;
}

dd.price-dl__dd .range {
    font-weight: bold;
}

dd.price-dl__dd .icon_note {
    font-size: 1.2rem;
    vertical-align: top;
}

h4.price-card__title .accent {
    font-size: 2.2rem;
    color: #e84a01;
}

dd.price-dl__dd .tani {
    font-weight: bold;
    margin-right: 1rem;
}

.price-group {
    display: flex;
}

dt.price-dl__dt span.notice {
    display: block;
    text-align: left;
    line-height: 1;
    font-size: 1.2rem;
}

.price-group dl.price-dl {
    width: 50%;
}

dl.price-dl.price-dl--wide {
    border-bottom: none;
}

.price-group dl.price-dl:first-child {
    border-right: none;
}

p.price-card__footnote {
    font-size: 1.2rem;
    text-align: left;
    margin-bottom: -2rem;
}

.price-group__card {
    width: 50%;
}

.price-group .price-group__card dl.price-dl {
    width: 100%;
}

.price-group .price-group__card:first-child dl.price-dl {
    border-right: none;
}

p.price-block__link {
    text-align: right;
    font-weight: 500;
    margin-top: 1rem;
}

p.price-block__link a.link-arrow{
    transition: 0.2s;
    display: inline-flex;
    align-items: center;
}

p.price-block__link a.link-arrow span.udline{
    border-bottom: 1px dashed #e84a01;
    font-weight: bold;
    margin-top: 0.4rem;
}

p.price-block__link a.link-arrow::before{
    content: "";
    display: inline-block;
    background: url(assets/images/ico_yajirushi_orline.png) no-repeat;
    background-size: contain;
    width: 2.75rem;
    height: 2.75rem;
    margin-right: 1rem;
    transition: 0.2s;
}

p.price-block__link a.link-arrow:hover{
    opacity: 0.8;
}

p.price-block__link a.link-arrow:hover::before{
    margin-right: 0.5rem;
}


/*------------------------------------
トップページ：入会までの流れ
-------------------------------------*/
.flow h2 {
    width: 100%;
    height: 33rem;
    background: url(assets/images/bg_ttl-nyukai.jpg) center center no-repeat;
    background-size: cover;
    position: relative;
    margin-bottom: 2rem;
    color: #fff;
    font-size: 3.2rem;
    text-align: center;
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

.flow h2 span::after {
    content: "";
    display: block;
    width: 7rem;
    height: 0.3rem;
    background: #e95b1a;
    margin: 2rem auto;
}

ol.flow_list {
    display: flex;
    width: 83%;
    margin: 6rem auto;
}

ol.flow_list li {
    width: 30%;
    position: relative;
}

ol.flow_list span.triangle{
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-top: 2rem solid transparent;
    border-bottom: 2rem solid transparent;
    border-left: 2rem solid #e94a04;
    border-right: 0;   
    margin: 12% 1%;
}

ol.flow_list li .step {
    width: 8rem;
    height: 8rem;
    background: #e94a04;
    border-radius: 5rem;
    color: #fff;
    position: absolute;
    top: -2rem;
    left: -2rem;
    display: flex;
    justify-content: center;
    align-items: center;
}

ol.flow_list li .step p.dinde {
    font-size: 4rem;
    line-height: 1;
}

ol.flow_list li .step p.dinde span {
    font-size: 1.3rem;
    display: block;
    text-align: center;
    letter-spacing: 1px;
}

ol.flow_list li h3 {
    text-align: center;
    color: #e94a04;
    font-weight: bold;
    font-size: 2.4rem;
    margin-bottom: 1rem;
}

p.flow_list__text {
    text-align: justify;
}

p.flow_list__text a {
    font-weight: bold;
    border-bottom: 1px dashed #e94a04;
}


/*------------------------------------
トップページ： よくあるご質問
-------------------------------------*/

.faq {
    background: #f5f3ee;
    padding: 6rem 2rem 17rem;
}

.faq .inner{
    width: 83%;
    margin: 0 auto;
    display: flex;    
}

.faq .inner .left {
    width: 23%;
    margin-right: 2%;
}

.faq .inner .right {
    width: 75%;
}

.faq h2.ttl_or_g img {
    width: 13.3rem;
}


/* ============ FAQ Accordion ============ */

.flame_QA {
    width: 100%;
}

/* クリックしやすいように */
.flame_QA .QA {
    border-bottom: 1px solid rgba(0,0,0,.25);
}

/* checkboxは見せない */
.flame_QA .QA > input[type="checkbox"]{
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

/* ラベル行（質問） */
.flame_QA .QA label{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem;
    padding: 2.2rem 0;
    cursor: pointer;
}

/* aで囲ってるので、余計な装飾を消す */
.flame_QA .QA > a{
    display: block;
    text-decoration: none;
    color: inherit;
}

/* 質問文 */
.flame_QA .QA .que{
    margin: 0;
    font-weight: 700;
    padding-left: 2.4rem;
    position: relative;
}

.flame_QA .QA .que::before {
    content: "Q.";
    font-family: din-2014, sans-serif;
    font-weight: 600;
    font-size: 2.4rem;
    line-height: 1;
    color: #e94a04;
    position: absolute;
    left: 0;
    top: 0;
}

/* 右の矢印モチーフ（div.tab） */
.flame_QA .QA .tab{
    flex: 0 0 auto;
    width: 1.5rem;
    height: 1.5rem;
    border-right: 3px solid #f05a28;
    border-bottom: 3px solid #f05a28;
    transform: rotate(45deg);
    transition: transform .25s ease;
}

/* 回答エリア（閉じてる時） */
.flame_QA .QA .cp_actab-content{
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease;
}

/* 回答の背景（必要なら） */
.flame_QA .QA .cont_bg{
    padding: 0 0 2.2rem;
}

/* 回答文 */
.flame_QA .QA .ans{
    margin: 0;
    font-size: 1.4rem;
    line-height: 1.9;
}

/* ---------- OPEN状態（checked） ---------- */

/* checkedなら回答を開く */
.flame_QA .QA > input[type="checkbox"]:checked ~ .cp_actab-content{
    max-height: 40rem; /* 回答が長いなら増やしてOK */
}

/* checkedなら矢印を「上向き」に */
.flame_QA .QA > input[type="checkbox"]:checked ~ a label .tab{
    transform: rotate(-135deg);
}


/*------------------------------------
fixed CTA
-------------------------------------*/
.cta_fix{
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 990;

    background: rgba(17,17,17,.7); /* #111 70% */
    backdrop-filter: blur(6px);     /* 任意：雰囲気UP（不要なら消す） */

    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity .35s ease, transform .35s ease, visibility .35s ease;
}

/* 表示状態 */
.cta_fix.is-visible{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* footerにくっつく状態（fixed→absoluteへ） */
.cta_fix.is-sticky{
    position: absolute;
    bottom: auto;
}


/*------------------------------------
TOPに戻るボタン
-------------------------------------*/
.btnTop{
    position: fixed;
    right: 2.0rem;
    bottom: 0; 
    z-index: 991;
    width: 5.2rem;
    height: 5.2rem;

    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}

/* CTAが見えたらToTopも表示 */
.btnTop.is-visible{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* CTAがfooter手前でabsolute化したらToTopもabsoluteに */
.btnTop.is-sticky{
    position: absolute;
}

.btnTop__link{
    display: block;
    width: 100%;
    height: 100%;
    background: #898989;
    border-radius: 6rem;
    position: relative;
    text-decoration: none;
    transition: 0.2s;
}

/* 白い山形（^） */
.btnTop__link::before{
    content: "";
    position: absolute;
    left: 50%;
    top: 55%;
    width: 2rem;
    height: 2rem;
    border-left: 3px solid #fff;
    border-top: 3px solid #fff;
    transform: translate(-50%, -40%) rotate(45deg);
}

.btnTop__link:hover{ 
    background: #cc6600;
}

/*------------------------------------
フッター：リンク、コピーライト
-------------------------------------*/
footer {
    display: flex;
    flex-wrap: wrap;
}

footer a{
    color: #fff;
    transition: 0.2s;
}

footer a:hover{
    color: #ff8c2a;
}

footer .left {
    background: #111;
    color: #fff;
    width: 35%;
    text-align: center;
    padding: 4rem 2rem 2rem;
}

footer .LOGO{
    width: 30rem;
    margin: 1rem auto 0;
}

footer .LOGO a{
    transition: 0.2s;
    transform: scale(1,1);
    display: block;
}

footer .LOGO a:hover{
    transform: scale(1.05,1.05);
}

footer .sitecaption {
    font-size: 1.4rem;
    color: #e6e6e6;
}

footer .adress {
    color: #e6e6e6;
}

footer .sitename {
    font-weight: bold;
    font-size: 1.8rem;
}

footer .phonenum .dinde {
    font-size: 3rem;
    margin-left: 1rem;
}

footer .features {
    font-size: 1.4rem;
    margin: 1em 0;
}

footer ul.sns {
    display: flex;
    justify-content: center;
    align-items: center;
}

footer ul.sns li {
    background: #fff;
    border-radius: 5rem;
    margin: 1rem;
}

footer ul.sns li a {
    display: block;
    padding: 1rem;
}

footer ul.sns li a img {
    width: 3rem;
    display: block;
    transition: 0.2s;
    transform: scale(1,1);
}

footer ul.sns li a:hover img {
    transform: scale(1.1,1.1);
}

footer .right {
    background: #222;
    color: #fff;
    width: 65%;
    padding: 10rem 2rem 0;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: center;
}

ul.footer_menu {
    width: 60%;
    display: flex;
    flex-wrap: wrap;
    margin-top: 1rem;
}

ul.footer_menu li {
    width: 47%;
    margin-right: 3%;
    margin-bottom: 10%;
}

ul.footer_menu a::before,
footer .right dl dt::before{
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    border-style: solid;
    border-top: 0.7rem solid transparent;
    border-bottom: 0.7rem solid transparent;
    border-left: 1rem solid #ffffff;
    border-right: 0;
    margin-right: 1rem;
}

footer .right dl {
    width: 35%;
}

footer .right dl dd img{
    transform: scale(1,1);
    transition: 0.2s;
}

footer .right dl dd img:hover{
    transform: scale(1.05,1.05);
}


ul.footer_menu02 a::before {
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    border-style: solid;
    border-top: 0.5rem solid transparent;
    border-bottom: 0.5rem solid transparent;
    border-left: 0.8rem solid #ffffff;
    border-right: 0;
    margin-right: 1rem;
}

ul.footer_menu02 {
    width: 100%;
    display: flex;
    font-size: 1.3rem;
    border-top: 1px dashed #fff;
    padding-top: 1rem;
    margin-top: 4rem;
}

ul.footer_menu02 li {
    margin-right: 2rem;
}


footer .copyright {
    width: 100%;
    background: #cc6600;
    text-align: center;
    font-size: 12px;
    color: #fff;
}





/*------------------------------------
下層ページ：共通ヘッダー
-------------------------------------*/

.fv-lower {
    width: 100%;
    height: 20vw;
    display: flex;
    align-items: center;
    background: url(assets/images/fv-lower_page.jpg) center center no-repeat;
    background-size: cover;
}

.fv-lower h1.page_title {
    font-size: 3rem;
    color: #fff;
    text-align: left;
    font-weight: bold;
    margin-left: 12vw;
}

.fv-lower h1.page_title .ttl_en{
    font-size: 1.5rem;
    display: block;
    margin-left: 2px;
    font-weight: 500;
}

.page article {
    padding: 6rem 2rem 20rem;
}


/*------------------------------------
404エラーページ
-------------------------------------*/

.error404 article {
    padding: 6rem 2rem 8rem;
    text-align: center;
}



/*------------------------------------
下層ページ：パンくず
-------------------------------------*/

nav.breadcrumb {
    background: #111;
    padding: 2px 2rem;
}

ul.pankz {
    width: 83%;
    margin: 0 auto;
    font-size: 1.4rem;
    color: #fff;
}

ul.pankz li {
    display: inline;
}

ul.pankz li::before {
    content: ">";
    display: inline-block;
    padding: 0 1rem;
}

ul.pankz li:first-child::before {
    content: "";
    display: none;
    padding: 0;
}

ul.pankz li:last-child {
    font-weight: 500;
}

ul.pankz li:last-child::before {
    font-weight: 400;
}
ul.pankz li a {
    display: inline-block;
    color: #ff8c2a;
    border-bottom: 1px dashed #ff8c2a;
    line-height: 1;
}





/*------------------------------------
下層ページ：
-------------------------------------*/


/*------------------------------------
下層ページ：
-------------------------------------*/

/*------------------------------------
下層ページ：プライバシーポリシー
-------------------------------------*/
.privacy-policy .fv-lower h1{
    writing-mode: horizontal-tb;
}

.privacy-policy .fv-lower h1 .sub_ttl {
    display: block;
    margin-top: 2rem;
}

/*------------------------------------
下層ページ：体験申し込みフォーム　page-id-55,page-id-57
-------------------------------------*/
.page-id-55 .fv-lower,
.page-id-57 .fv-lower{
    background: url(assets/images/fv-lower_trial.jpg) center center no-repeat;
    background-size: cover;
}

.trial-form{
    background: #f5f3ee;
}

.trial-form h2 {
    font-size: 3rem;
    text-align: center;
    font-weight: bold;
    margin-bottom: 4rem;
    font-family: "shippori-mincho", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
}

.trial-form h2::after {
    content: "";
    display: block;
    width: 4rem;
    height: 0.2rem;
    background: rgba(249, 130, 68, 1);
    margin: 2rem auto;
}

.trial-form .inner {
    width: 60vw;
    margin: 0 auto;
}

.trial-form .inner .kengaku {
    font-size: 1.5rem;
    border: 1px dashed #898989;
    text-align: center;
    padding: 1rem;
    background: rgba(256, 256, 256, 0.3);
    margin: 4rem 0 6rem;
}

.trial-form .inner .intro {
    text-align: center;
    margin: 4rem 0;
}

.trial-form .inner .intro p{
    margin-bottom: 1em;
}


.trial-form ul.notice {
    font-size: 1.4rem;
}

.trial-form ul.notice li{
    
}

.trial-form ul.notice li::before{
    content: "※";    
}

/* iOSでのデフォルトスタイルをリセット */
input[type="submit"],
input[type="button"] {
    border-radius: 50px;
    -webkit-box-sizing: content-box;
    -webkit-appearance: button;
    appearance: button;
    border: 0.3rem solid #fff;
    box-sizing: border-box;
    cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
    display: none;
}
input[type="submit"]::focus,
input[type="button"]::focus {
    outline-offset: -2px;
}

.contact .page-fv{
    background: url(assets/images/contact_fv_bg.png) center center no-repeat;
    background-size: cover;
}

.contact .page_content {
    padding: 2rem 0 6rem;
}

.contact .page_content h2 {
    margin-bottom: 4rem;
}

.contact div.inner {
    max-width: 80rem;
    width: 90%;
}

.contact .intro {
    text-align: center;
    margin: 2rem auto 6rem;
}

form.wpcf7-form dl {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 6rem;
}

form.wpcf7-form dl:last-of-type{
    padding-bottom: 0;
    border: none;
}

form.wpcf7-form dl dt {
    width: 30%;
    display: flex;
    justify-content: flex-end;
}

form.wpcf7-form dl .hissu {
    display: inline-block;
    line-height: 1.5;
    font-size: 1.3rem;
    background: rgba(249, 130, 68, 1);
    color: #fff;
    padding: 0 10px;
    margin-left: 0.5em;
}

form.wpcf7-form dl dd{
    width: 65%;
}

form.wpcf7-form dl.flex-start{
    align-items: flex-start;
}

select.wpcf7-form-control.wpcf7-select {
    padding: 5px 10px;
    width: auto;
    font-size: 16px;
}

span.wpcf7-list-item {
    line-height: 2.33333;
    margin: 0;
    display: block;        
}

.gym_taikenQ {
    font-size: 1.4rem;
    margin-top: 1em;
}

.gym_radio {
    display: flex;
}

.gym_radio span.wpcf7-list-item.first {
    margin-right: 4em;
}

input.wpcf7-validates-as-date {
    padding: 4px 10px;
    font-size: 16px;
}

.date_time p.kibou + p {
    margin: 5px 0 15px;
    padding-left: 1em;
    display: flex;
    align-items: center;
}

.date_time .wpcf7-form-control-wrap {
    margin: 0 10px;
}



input.wpcf7-form-control.wpcf7-text,
textarea.wpcf7-form-control{
    width: 100%;
    outline: none;
    padding: 5px 10px;
    font-size: 16px;
    font-family: inherit;
    color: #1e1e1e;
    border: 1px solid #1e1e1e;
}

textarea.wpcf7-form-control {
    height: 15rem;
}

.confirm {
    text-align: center;
    margin: 6rem 0 4rem;
}

.confirm a {
    color: #e84a01;
    display: inline-block;
    font-weight: 500;
    border-bottom: 1px dashed #e84a01;
    line-height: 1.333;
}

.confirm a:hover {
    opacity: 0.8;
}

.wpcf7-spinner {
    display: block;
}

.wpcf7 .wpcf7-submit:disabled {
    border: 2px solid #e6e6e6;
    background: #e6e6e6;
    color: #fff;
}

.wpcf7-submit {
    display: block;
    max-width: 36rem;
    height: 6rem;
    width: 100%;
    margin: 0 auto;
    font-size: 2rem;
    font-weight: bold;
    font-family: inherit;
    background: linear-gradient(180deg, #ff4d00 0%, #ff7a1a 60%, #ff8c2a 100%);
    color: #fff;
    border: 0.3rem solid #fff;
}

.wpcf7-submit:hover{
    opacity: 0.8;
    transition: 0.2s;
}

.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output{
    border-color: #e7e3d1;
}

.contact .thanks_txt{
    text-align: justify;
    margin: 4rem auto 8rem;
}

p.btn_more.btn_back {
    justify-content: center;
}

p.btn_more.btn_back a {
    padding-right: 0;
    text-decoration: none;
    color: #fff;
    font-weight: 500;
    font-size: 1.6rem;
    margin-top: 6rem;
}

p.btn_more.btn_back a:hover{
    opacity: 1;
}

p.btn_more.btn_back a::before {
    right: auto;
    left: -5rem;
}

p.btn_more.btn_back a::after {
    right: auto;
    left: -5rem;
    transform: rotate(-34deg);
}

p.btn_more.btn_back a span {
    right: auto;
    left: -9rem;
}

p.btn_more.btn_back a:hover::before, 
p.btn_more.btn_back a:hover::after {
    left: -5.5rem;
}

/*------------------------------------
固定ページ：フリー入力
-------------------------------------*/
/* ==========================
Entry Base
========================== */

.page_free_content{
    max-width: 860px;
    margin: 0 auto;
    line-height: 1.9;
    color: #111;
    font-size: 1.6rem;
}

/* --------------------------
Headings
-------------------------- */

.page_free_content h2 {
    font-size: 3rem;
    text-align: center;
    font-weight: bold;
    margin-bottom: 4rem;
    font-family: "shippori-mincho", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
}

.page_free_content h2::after {
    content: "";
    display: block;
    width: 4rem;
    height: 0.2rem;
    background: rgba(249, 130, 68, 1);
    margin: 2rem auto;
}

.page_free_content h3{
    font-family:"shippori-mincho", serif;
    font-size:2.2rem;
    margin:4rem 0 1.5rem;
    letter-spacing:.05em;
}

.page_free_content h4{
    font-family:"din-2014", sans-serif;
    font-size:1.8rem;
    margin:3rem 0 1rem;
    font-weight:700;
}

/* --------------------------
Paragraph
-------------------------- */

.page_free_content p{
    margin-bottom:2rem;
}

/* --------------------------
List
-------------------------- */

.page_free_content ul,
.page_free_content ol{
    margin:2rem 0 2rem 2rem;
}

.page_free_content li{
    margin-bottom:1rem;
}

.page_free_content ul li{
    list-style:disc;
}

.page_free_content ol li{
    list-style:decimal;
}

/* --------------------------
Blockquote
-------------------------- */

.page_free_content blockquote{
    border-left:3px solid #f05a28;
    padding:2rem 2rem;
    margin:3rem 0;
    background:#f7f7f7;
    font-style:italic;
}

/* --------------------------
Links
-------------------------- */

.page_free_content a{
    color:#f05a28;
    text-decoration:underline;
    transition:.2s;
}

.page_free_content a:hover{
    opacity:.7;
}

/* --------------------------
Table
-------------------------- */

.page_free_content table{
    width:100%;
    border-collapse:collapse;
    margin:3rem 0;
    font-size:1.4rem;
}

.page_free_content th,
.page_free_content td{
    border:1px solid #ddd;
    padding:1.2rem;
}

.page_free_content th{
    background:#111;
    color:#fff;
    font-family:"din-2014", sans-serif;
}

/* --------------------------
Images
-------------------------- */

.page_free_content img{
    max-width:100%;
    height:auto;
    margin:3rem 0;
}

/* --------------------------
HR
-------------------------- */

.page_free_content hr{
    border:none;
    border-top:1px solid #ddd;
    margin:5rem 0;
}



/*------------------------------------
404 NOT FOUND
-------------------------------------*/


/*------------------------------------
Firefoxのみ
-------------------------------------*/
@-moz-document url-prefix() {


    input.wpcf7-form-control.wpcf7-text, textarea.wpcf7-form-control {
        width: 100%;
        outline: none;
        padding: 10px;
        font-size: 1.6rem;
        font-family: inherit;
        color: #727171;
        border-radius: 8px;
        border: 1px solid #727171;
    }

    .wpcf7-form-control.wpcf7-file {
        font-size: 1.6rem;
    }

}



@media screen and (max-width:1000px){
    /*------------------------------------
    ベース共通設定
    -------------------------------------*/
    html {
        font-size: 54.6875%;
    }

    .pc{
        display: none;
    }

    .sp{
        display: block;
    }


    /*------------------------------------
    ヘッダー
    -------------------------------------*/
    
    header .site_logo {
        position: static;
        padding: 0;
        margin: 0 1rem;
        width: 15rem;
        line-height: 0;
        background: none;
    }
    
    header .site_logo::after{
        display: none;
    }
    
    .sp_menubar {
        width: 100%;
        position: absolute;
        top: 0;
        z-index: 1000;
        height: 7rem;
        background: rgba(17, 17, 17, 0.9);
        font-weight: 500;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        color: #fff;
    }

    .sp_menubar.fixed {
        position: fixed;
        top: 0;
        left: 0;
    }
    
    .sp_menubar .hd_txt {
        font-size: 1.4rem;
    }

    .sp_nav{
        display: flex;
        flex-direction: column;
        justify-content: center;
        opacity: 0;
        background: rgba(17, 17, 17, 0.9);
        width: 100%;
        z-index: -1;
        position: fixed;
        top: 0;
        border-bottom: 1px solid #eeeae7;
        transition: .3s;
        height: 100%;
        font-weight: 500;
        color: #fff;
        text-align: center;
    }
    
    .sp_nav h2{
        text-align: center;
        color: #fff;
        font-size: 2.4rem;
        font-family: din-2014, sans-serif;
        font-weight: 600;
        letter-spacing: 0.1em;
        margin-bottom: 4rem;
    }
    
    .sp_nav a{
        color: #fff;
    }
    
    ul.sp_linkList {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        padding: 4rem;
    }
    
    ul.sp_linkList li {
        width: 30%;
        text-align: center;
    }
    
    ul.sp_linkList li a {
        padding: 4rem;
        display: flex;
        height: 14rem;
        justify-content: center;
        align-items: center;
    }
    
    ul.sp_linkList li.menu01 {
        border-right: 1px dashed #fff;
        border-bottom: 1px dashed #fff;
    }
    ul.sp_linkList li.menu02 {
        border-right: 1px dashed #fff;
        border-bottom: 1px dashed #fff;
    }
    ul.sp_linkList li.menu03 {
        border-bottom: 1px dashed #fff;
    }
    ul.sp_linkList li.menu04 {
        border-right: 1px dashed #fff;
    }
    
    ul.sp_linkList li.menu05 {
        border-right: 1px dashed #fff;
    }


    .sp_nav_btn {
        text-align: center;
        font-size: 1.4rem;
        font-weight: bold;
        padding-top: 1rem;
        transition: .3s;
        width: 48px;
        height: 100%;
        cursor: pointer;
        position: absolute;
        right: 1rem;
        overflow: hidden;
    }
    
    .sp_nav.active {
        opacity: 1;
        z-index: 997;
    }

    .sp_nav_btn .border {
        display: block;
        width: 80%;
        height: 2px;
        background: #fff;
        margin: 0 auto 8px;
        transition: .3s;
    }

    .sp_nav_btn.open .txt::before{
        content: " CLOSE ";
        display: block;
    }

    .sp_nav_btn.open .border:nth-child(1) {
        transform-origin: 1px 7px;
        transform: rotate(22deg);
    }
    .sp_nav_btn.open .border:nth-child(2) {
        transform-origin: 14px 0px;
        transform: rotate(-22deg);
    }
    .sp_nav_btn.open .border:nth-child(3) {
        opacity: 0;
    }
    
    .sp_nav_btn.open .txt {
        font-size: 1.3rem;
    }

    
    .sp_menubar .phone a {
        background: #cc6600;
        display: inline-flex;
        padding: 0 2rem;
        width: 7rem;
        height: 7rem;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 0;
        right: 8rem;
    }
    
    .sp_menubar .phone img {
        width: 2.5rem;
        display: block;
        margin-bottom: 3px;
    }
    
    .sp_menubar .phone .txt {
        font-size: 1.3rem;
        display: block;
        color: #fff;
    }
    

    .sp_nav ul.sns {
        margin-top: 2rem;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .sp_nav ul.sns li {
        background: #fff;
        border-radius: 5rem;
        margin: 1rem;
    }

    .sp_nav ul.sns li a {
        display: block;
        padding: 1rem;
    }

    .sp_nav ul.sns li a img {
        width: 3rem;
        display: block;
        transition: 0.2s;
        transform: scale(1,1);
    }
    
    .sp_nav .phonenum .dinde {
        font-size: 4rem;
        display: inline-block;
        margin-left: 1rem;
    }
    
    .sp_nav .adress {
        margin-bottom: 1rem;
    }
    
    

    /*------------------------------------
    トップページ：FV
    -------------------------------------*/
    
    .frontPage,.page,.error404 {
        padding-top: 7rem;
    }

    
    /*------------------------------------
    404エラーページ
    -------------------------------------*/

    .error404 article {
        text-align: justify;
    }



    /*------------------------------------
    トップページ：Phirosophy
    -------------------------------------*/
    .frontPage .philosophy {
        width: 100%;
        height: auto;
        background: none;
        background-size: cover;
        display: block;
        align-items: center;
    }
    
    .bg_philosophy.sp {
        background: url(assets/images/bg_ttl-philosophy_sp.jpg) right -5rem no-repeat;
        background-size: cover;
        width: 100%;
        height: 44rem;
        display: block;
    }
    
    .frontPage .philosophy .inner{
        background: #111;
        padding: 4rem 4rem 6rem;
        margin-top: -10rem;
    }
    
    /*------------------------------------
    トップページ：館内マップ
    -------------------------------------*/
    
    .floorMap .map {
        width: 90%;
    }

    /*------------------------------------
    トップページ：lineup
    -------------------------------------*/
    
    .lineup ul li .inner {
        flex-direction: column;
    }
    
    .lineup ul li.personal .inner {
        flex-direction: column-reverse;
    }
    
    .lineup ul li .eyecatch {
        width: 100%;
    }
    
    .lineup ul li .textbox {
        width: 100%;
    }
    
    .lineup ul li.gym .textbox, .lineup ul li.studio .textbox {
        margin-left: 0;
        margin-top: 2rem;
    }
    
    .lineup ul li.personal .textbox {
        margin-right: 0;
        margin-top: 2rem;
    }
    


    /*------------------------------------
    トップページ：6つのポイント
    -------------------------------------*/

    .reasons ul.reasons_list {
        width: 90%;
    }
    
    .reasons ul.reasons_list h3 {
        font-size: 2.4rem;
    }
    
    .reasons ul.reasons_list h3 .icon {
        width: 5rem;
    }
    
    .reasons ul.reasons_list li:first-child h3 .icon {
        width: 4.5rem;
    }
    
    .reasons ul.reasons_list .LOGO_alsok {
        width: 15rem;
    }
    
    
    /*------------------------------------
    トップページ：スタッフ紹介
    -------------------------------------*/    
    .staff ul.staff_list {
        width: 90%;
    }
    
    .staff ul.staff_list li {
        width: 47.5%;
    }
    
    .staff ul.staff_list li:nth-child(2n+1) {
        margin-right: 5%;
    }
    
    /*------------------------------------
    トップページ：料金のご案内
    -------------------------------------*/    
    .priceList .price-block {
        width: 90%;
    }
    
    .price-group {
        flex-direction: column;
    }
    
    .price-group dl.price-dl {
        width: 100%;
    }
    
    .price-group dl.price-dl:first-child {
        border-right: 2px solid #313131;
        border-bottom: none;
    }
    
    h3.price-block__label {
        padding: 6px 0;
    }
    
    dt.price-dl__dt {
        width: 50%;
        margin-right: 0;
    }
    
    dt.price-dl__dt span {
        display: block;
    }
    
    dd.price-dl__dd{
        width: 50%;
    }
    
    dt.price-dl__dt span.notice {
        text-align: center;
    }
    
    .price-group__card {
        width: 100%;
    }
    
    .price-group__card:first-child {
        margin-bottom: 3rem;
    }
    
    .price-group .price-group__card:first-child dl.price-dl {
        border-right: 2px solid #313131;
    }
    
    /*------------------------------------
    トップページ：入会までの流れ
    -------------------------------------*/
    
    ol.flow_list {
        width: 90%;
    }
    
    
    /*------------------------------------
    トップページ：FAQ
    -------------------------------------*/
    
    .faq {
        padding: 6rem 0rem 15rem;
    }

    .faq .inner {
        width: 90%;
        flex-wrap: wrap;
    }
    
    .faq .inner .left {
        width: 25%;
        margin-right: 5%;
    }
    
    .faq .inner .right {
        width: 70%;
    }
    
    .btn_more.sp {
        width: 100%;
        margin-top: 2rem;
    }
    

    /*------------------------------------
    フッター：リンク、コピーライト
    -------------------------------------*/
    
    footer .left {
        width: 100%;
    }
    
    footer .right {
        width: 100%;
        padding: 4rem;
    }

    ul.footer_menu02 {
        margin-top: 0;
    }

    footer .googlemap iframe {
        display: block;
        max-width: 100%;
    }

    .googlemap {
        width: 100%;
        background: #111;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    /*------------------------------------
    共通：CTA
    -------------------------------------*/
    .cta_btn li:first-child {
        width: 45%;
        margin-right: 2rem;
    }
    
    li.cta_btn_or {
        width: 45%;
    }
    
    .cta_btn li a {
        width: 100%;
        border: 1px solid #fff;
    }
    
    .cta_btn li img {
        width: 2.5rem;
        left: 8px;
    }
    

    /*------------------------------------
    下層ページ：体験フォーム
    -------------------------------------*/
    
    .trial-form .inner {
        width: 100%;
        font-size: 16px;
    }
    
    .trial-form .inner .kengaku {
        width: 80%;
        margin: 4rem auto 6rem;
    }
    
    form.wpcf7-form dl {
        display: block;
        margin-bottom: 4rem;
    }
    
    form.wpcf7-form.init {
        width: 80%;
        margin: 0 auto;
    }
    
    form.wpcf7-form dl dt {
        width: 100%;
        justify-content: flex-start;
        margin-bottom: 1rem;
    }
    
    form.wpcf7-form dl dd {
        width: 100%;
    }

    /*------------------------------------
    下層ページ：
    -------------------------------------*/


    /*------------------------------------
    下層ページ：
    -------------------------------------*/


    /*------------------------------------
    下層ページ：
    -------------------------------------*/

    /*------------------------------------
    アーカイブページ：
    -------------------------------------*/


}

@media screen and (max-width:500px){

    /*------------------------------------
    ベース共通設定
    -------------------------------------*/
/*COMING SOONポップアップ*/
    .coming-soon-modal__content {
        width: 90%;
    }
    
    .btnTop__link {
        background: rgba(137,137,137,.8);
    }

    /*------------------------------------
    ヘッダー
    -------------------------------------*/
    
    .sp_menubar .hd_txt{
        text-indent: -9999px;
    }
    
    .sp_nav h2 {
        margin-bottom: 2rem;
    }
    
    ul.sp_linkList {
        padding: 2rem 0;
    }
    
    ul.sp_linkList li a {
        padding: 1rem;
        height: 10rem;
    }
    
    /*------------------------------------
    CTA
    -------------------------------------*/

    .cta h2 {
        font-size: 1.7rem;
    }
    
    .cta {
        padding: 2rem 1rem;
    }
    
    .cta_btn li:first-child {
        width: 40%;
        margin-right: 2%;
    }
    
    li.cta_btn_or {
        width: 56%;
    }
    
    .cta_fix .cta_btn {
        margin: 1rem 1rem 2rem;
    }
    
    

    /*------------------------------------
    トップページ：お知らせ
    -------------------------------------*/
    
    .frontPage .news .inner {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .frontPage .news h2 {
        margin: 1rem 0;
    }
    
    .frontPage ul.news-list {
        margin-bottom: 1rem;
    }
    
    /*------------------------------------
    トップページ：キャンペーン
    -------------------------------------*/
    
    .campaign .inner {
        padding: 6rem 0;
        width: 100%;
    }
    
    ul.campaign-list {
        flex-direction: column;
    }

    li.campaign-item:first-child {
        margin-right: 0;
        margin-bottom: 2rem;
    }

    /*------------------------------------
    トップページ：philosophy
    -------------------------------------*/
    
    .bg_philosophy.sp {
        background: url(assets/images/bg_ttl-philosophy_sp.jpg) right top no-repeat;
        background-size: contain;
        width: 100%;
        height: 32rem;
        display: block;
    }
    
    .frontPage .philosophy h2 .sub_ttl {
        font-size: 3rem;
    }
    
    .frontPage .philosophy h2 img {
        width: 24rem;
    }
    
    .frontPage .philosophy .inner {
        padding: 4rem 3rem 6rem;
    }
    
    .frontPage .philosophy .txtarea p{
        text-align: justify;
        font-size: 1.6rem;
    }

    /*------------------------------------
    トップページ：lineup
    -------------------------------------*/
    .lineup h2{
        margin-bottom: 6rem;
    }
    
    .lineup ul li {
        padding: 0;
        margin: 4rem 0 6rem;
    }
    
    .lineup ul li.personal {
        background: none;
    }
    
    .lineup ul li .inner{
        width: 100%;
    }
    
    .lineup ul li .textbox {
        padding: 0 2rem;
    }
    
    .lineup ul li.personal .eyecatch .icon,
    .lineup ul li.studio .eyecatch .icon{
        width: 7rem;
    }
    
    /*------------------------------------
    トップページ：館内マップ
    -------------------------------------*/    
    .floorMap .map {
        width: 100%;
    }
    
    .floorMap .slideShow {
        padding: 1rem 0;
    }
    
    /*------------------------------------
    トップページ：6つのポイント
    -------------------------------------*/    
    .reasons h2 {
        height: 24rem;
        margin-bottom: 6rem;
    }
    
    .reasons h2 .ttl02 {
        line-height: 1.333;
    }
    
    .reasons h2 .ttl01 {
        font-size: 1.6rem;
        margin-top: 2rem;
    }
    
    .reasons h2 img {
        top: 0;
    }
    
    .reasons ul.reasons_list {
        width: 100%;
        padding: 0 2rem;
    }
    
    .reasons ul.reasons_list li {
        width: 100%;
    }
    
    .reasons ul.reasons_list li:nth-child(2n+1) {
        margin-right: 0;
    }
    
    .reasons .andmore {
        width: 100%;
        margin: 0 0 6rem;
        padding: 6rem 2rem 4rem;
    }
    
    .reasons .icon-plus {
        width: 6rem;
        margin: 0 auto -4rem;
    }
    
    .reasons .andmore h3 {
        font-size: 2.4rem;
    }
    
    .reasons .more_list li {
        width: 29.3%;
        margin: 2%;
    }
    
    .reasons .more_list li:last-child{
        display: none;
    }
    
        
    /*------------------------------------
    トップページ：スタッフ紹介
    -------------------------------------*/  
    
    .staff{
        padding: 8rem 0 3rem;
    }
    
    .staff ul.staff_list {
        width: 100%;
        padding: 0 3rem;
    }
    
    .staff ul.staff_list li {
        width: 100%;
    }
    
    .staff ul.staff_list li:nth-child(2n+1) {
        margin-right: 0%;
    }
    
    /*------------------------------------
    トップページ：料金のご案内
    -------------------------------------*/    
    
    .priceList {
        padding: 4rem 2rem 2rem;
    }
    
    .priceList .price-block {
        width: 100%;
    }
    
    dl.price-dl {
        padding: 1rem;
    }
    
    dt.price-dl__dt span {
        font-size: 1.2rem;
    }
    
    dd.price-dl__dd .price {
        font-size: 2rem;
        margin-left: 2px;
    }
    
    dd.price-dl__dd .tani {
        font-size: 1.2rem;
    }
    
    dd.price-dl__dd span.tax {
        font-size: 1.1rem;
    }
    
    dd.price-dl__dd {
        width: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .price-block.price-block__personal dt.price-dl__dt {
        width: 40%;
        line-height: 1.3333;
    }
    
    .price-block.price-block__personal dd.price-dl__dd {
        width: 60%;
    }
    
    /*------------------------------------
    トップページ：入会までの流れ
    -------------------------------------*/   
    
    .flow h2 {
        height: 22rem;
        padding-top: 2rem;
    }
    
    ol.flow_list {
        width: 100%;
        padding: 0 2rem;
        margin: 4rem 0 6rem;
        flex-direction: column;
    }
    
    ol.flow_list li {
        width: 90%;
        margin: 0 auto;
    }
    
    ol.flow_list span.triangle {
        transform: rotate(90deg);
        margin: 4rem auto;
    }
    
    
    
    /*------------------------------------
    トップページ：FAQ
    -------------------------------------*/   
    .faq .inner .left {
        width: 100%;
        margin-right: 0;
    }
    
    .faq .inner .right {
        width: 100%;
    }
    

    
    /*------------------------------------
    フッター
    -------------------------------------*/

    ul.footer_menu {
        width: 100%;
        margin-top: 0rem;
    }
    
    ul.footer_menu li {
        width: 100%;
        margin-right: 0%;
        margin-bottom: 2rem;
    }
    
    footer .right dl {
        width: 100%;
    }
    
    footer .right dl dt{
        margin-bottom: 1rem;
    }
    
    ul.footer_menu02 {
        margin-top: 2rem;
    }
    
    ul.footer_menu02 {
        margin-top: 2rem;
        flex-direction: column;
    }
    
    /*------------------------------------
    共通：内部・外部リンクボタン
    -------------------------------------*/
    
    /*------------------------------------
    下層ページ：共通ヘッダー
    -------------------------------------*/

    .fv-lower {
        width: 100%;
        height: 37.5vw;
        display: flex;
        align-items: center;
        background: url(assets/images/fv-lower_page_sp.jpg) center center no-repeat;
        background-size: cover;
    }

    .page-id-55 .fv-lower,
    .page-id-57 .fv-lower{
        background: url(assets/images/fv-lower_trial_sp.jpg) center center no-repeat;
        background-size: cover;
    }
    
    
    /*------------------------------------
    パンくずリスト
    -------------------------------------*/
    
    ul.pankz {
        width: 100%;
    }


    /*------------------------------------
    下層ページ：体験申し込みフォーム
    -------------------------------------*/
    
    .trial-form ul.notice li{
        position: relative;
        padding-left: 1em;
    }

    .trial-form ul.notice li::before{
        content: "※";
        position: absolute;
        left: 0;
    }
    
    .trial-form .inner .intro {
        text-align: justify;
        margin: 4rem 0;
    }
    
    .trial-form .inner .kengaku {
        width: 100%;
        margin: 4rem auto 6rem;
    }
    
    form.wpcf7-form.init {
        width: 100%;
        margin: 0 auto;
    }
    
    .date_time p.kibou + p {
        padding-left: 0;
    }
    
    .date_time .wpcf7-form-control-wrap {
        margin: 0 5px;
    }

    .trial-form .inner {
        width: 100%;
    }
    
    form.wpcf7-form dl {
        display: block;
        margin-bottom: 4rem;
    }

    form.wpcf7-form dl dt {
        width: 100%;
        justify-content: flex-start;
        margin-bottom: 1rem;
        font-size: 16px;
    }

    form.wpcf7-form dl dd {
        width: 100%;
        font-size: 16px;
    }

    textarea.wpcf7-form-control {
        height: 20rem;
    }
    
    .gym_taikenQ {
        font-size: 14px;
        margin-top: 1em;
    }
    
/*  カレンダー 

    .wpcf7 input[type="date"]{
        width:100%;
        height:48px;
        padding:0 1.5rem;
        font-size:1.6rem;
        border:1px solid #ccc;
        border-radius:4px;
        background:#fff;
        appearance:none;
        -webkit-appearance:none;
    }
    .wpcf7 input[type="date"]::-webkit-calendar-picker-indicator{
        opacity:0;
        position:absolute;
        right:0;
    }
    
    .wpcf7-form-control-wrap{
        position:relative;
        display:inline-block;
    }

    .wpcf7-form-control-wrap::after{
        content:"";
        position:absolute;
        right:1.2rem;
        top:50%;
        transform:translateY(-50%);
        width:18px;
        height:18px;
        background:url(/assets/images/ico-calendar.svg) no-repeat center/contain;
        pointer-events:none;
    }
    */

    .wpcf7 input[type="date"]::before{
        content:"";
        display: inline-block;
        width:18px;
        height:18px;
        background:url(assets/images/ico-calender.png) no-repeat center/contain;
        margin-right: 2px;
    }
    
    

    /*------------------------------------
    404 NOT FOUND
    -------------------------------------*/

}

@media screen and (max-width:320px){

}