@charset "UTF-8";
@import url('css/reset.css');

body{
background: #f4f5f5;
color: #1c3d7a;
font-weight: lighter;
font-size: 1rem;
font-family: Noto Sans JP, sans-serif, Open Sans, Hiragino Kaku Gothic ProN, Meiryo;
/*-- font-family: Noto Sans JP, sans-serif, Open Sans, Hiragino Kaku Gothic ProN, Meiryo; --*/
letter-spacing: 3px;
line-height: initial;
overflow: hidden;
overflow-y: scroll;
}

html.lenis, html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-scrolling iframe {
  pointer-events: none;
}

/*
------------------------------------------------------
common-1
------------------------------------------------------
*/

.noto-sans-jp {
font-family: "Noto Sans JP", sans-serif;
font-optical-sizing: auto;
font-weight: 100;
font-style: normal;
}


::selection {
background: #1c3d7ab8;
}

a{
color: #1c3d7a;
text-decoration: none;
}

h1 {
ext-align: center;
font-weight: lighter;
font-size: 2rem;
}

h2{
font-weight: lighter;
font-size: 1rem;
}

h3{
margin-bottom: 3rem;
}

p, li, dt, dd {
font-size: .8rem;
letter-spacing: 2px;
}

img{
object-fit: cover;
}

.non-display{
display: none !important;
}

.flex_box{
display: flex;
}

.sub_head{
}

.red{
color: red;
}

.link {
margin-top: 3rem;
font-size: .8rem;
}

.link a {
display: inline-block;
border-bottom: 1px solid #1c3d7a;
}

.link-btn{
margin-top: 0px;
}

.link-btn a{
display: inline-block;
border-bottom: 1px solid #fff;
}

.time{
	font-size: .8rem;
}

.attention{
margin-top: 3rem;
background: #1c3d7a;
padding: 1rem;
text-align: start;
color: #fff;
}

.fixed{
position: fixed;
}

/*
------------------------------------------------------
common-2
------------------------------------------------------
*/

.main_content {
width: 100%;
height: auto;
position: relative;
margin-left: auto;
margin-right: auto;
}

/* パンくず */
.breadcrumb_box {
width: 100%;
display: inline-block;
margin-top: 10rem;
margin-bottom: 5rem;
}


.breadcrumb_box nav {
display: contents;
}


.breadcrumb {
width: 95%;
ax-width: 1380px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
list-style: none;
}


.breadcrumb_box nav li {
display: inline-block;
margin: 0;
}


.breadcrumb li:not(:last-of-type)::after {
content: "›";
margin: 0 .6em;
}


/*
------------------------------------------------------
header
------------------------------------------------------
*/

header {
top: 2rem;
position: fixed;
width: 100%;
z-index: 100;
}

header .flexbox {
display: flex;
justify-content: space-between;
align-items: flex-start;
width: 95%;
margin: 0 auto;
}


/* ===== 固定ヘッダー（共通設定） ===== */
.site-header {
position:fixed;
top:0;
left:0;
padding-top: 20px;
padding-bottom: 20px;
width:100%;
ackground: #f4f5f538;
color:;
z-index:1000;
}

/* PC表示（768px以上）のときだけアニメーションを有効にする */
@media screen and (min-width: 768px) {
  .site-header {
    transition: transform .3s ease;
  }

  .site-header.hide {
    transform: translateY(-100%);
  }
}

.header-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:16px 20px;
}

/* ロゴ横ボタン設置のためのグループ化 */
.head_logo_group {
display: flex;
align-items: center;
gap: 3rem;
}

header .head_logo a {
letter-spacing: 0.2em;
text-transform: uppercase;
text-decoration: none;
}

/* ロゴ横ボタンの追加指示のみを反映 */
.head_insta_btn a {
display: inline-block;
font-size: .8rem;
text-decoration: none;
order-bottom: 1px solid;
}

.head_insta_btn a:hover {
opacity: 0.7;
}

/* PC用ヘッダーメニュー */
header nav:not(#full-menu) .full-menu-content ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
align-items: flex-start;
}

header nav:not(#full-menu) li {
margin-left: 45px;
position: relative;
}

header nav:not(#full-menu) li a {
text-decoration: none;
letter-spacing: 0.2em;
display: inline-block;
padding-bottom: 4px;
order-bottom: 1px solid;
white-space: nowrap;
}

/* PC用ヘッダーメニュー（垂直配置） */
header nav:not(#full-menu) .sub-menu {
list-style: none;
padding: 0;
margin: 0;
position: relative;
top: 0;
left: 0;
display: flex;
flex-direction: column; /* 縦に並べる */
align-items: flex-start;
}

header nav:not(#full-menu) .sub-menu li {
margin-left: 0 !important;
margin-bottom: 15px;
display: block;
width: 100%;
}

/* PC用予約ボタン */
header nav:not(#full-menu) li.reservation {
border-bottom: none !important;
}

header nav:not(#full-menu) li.reservation a {
display: inline-block;
padding: 1px 18px;
background: #1c3d7a;
color: #fff;
border-radius: 20px;
border: none;
}


/* SP用ヘッダーメニュー（PCでは非表示） */
.service-toggle, .close-toggle, .extra-content, #full-menu {
display: none;
}

#full-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
    background: rgba(242, 242, 242, 0.98);
    z-index: 200;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s ease;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#full-menu.is-active {
    opacity: 1;
    visibility: visible;
}

#full-menu .full-menu-content {
    width: 100%;
}

#full-menu .full-menu-content ul {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: center;
    display: block; /* 横並びを解除 */
}

#full-menu .full-menu-content > ul > li {
    margin: 0 auto 2.5rem auto; /* 中央寄せ */
    width: fit-content;
}

#full-menu .full-menu-content > ul > li > a {
    font-size: 24px;
    color: #93a593;
    letter-spacing: 0.3em;
    border-bottom: 1px solid rgba(147, 165, 147, 0.3);
    padding-bottom: 5px;
    display: block;
}

/* SPメニュー内のサブメニュー */
#full-menu .sub-menu {
list-style: none;
padding: 15px 0 0 0;
margin: 0;
position: static !important; /* 絶対配置を解除 */
display: block !important;
opacity: 1 !important;
visibility: visible !important;
}

#full-menu .sub-menu li {
margin: 0 auto 10px auto !important;
}

#full-menu .sub-menu li a {
font-size: 14px;
color: #93a593;
opacity: 0.7;
border-bottom: none;
display: block;
}




/*
------------------------------------------------------
ファーストビュー
------------------------------------------------------
*/
.fv .title,
.side_sns_wrapper,
.fv_bottom_group{
z-index: 99	}


.fv_article{
border-bottom: 1px solid;
}

.fv .title,
.single-information_fv .title{
height: fit-content;
position: absolute;
left: 9%;
bottom: 15rem;
}

.fv .kv img{
width: 66%;
height: 100vh;
object-fit: cover;
position: absolute;
right: 0;
bottom: 0;
}

.fv_b_common{
width: 100%;
height: 50vh;
position: relative;
}

.fv_b_common .catch_copy{
width: 95%;
position: absolute;
display: block;
left: 2.5%;
top: 50%;
transform: translate(0%, -50%);
z-index: 99;
}



/* サイドに固定したSNSボタン */
.side_sns_wrapper {
position: fixed;
right: 2.5%;
top: 50%;
transform: translateY(-50%);
z-index: 100;
width: fit-content;
height: fit-content;
}

.side_sns_wrapper ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 20px;
}

.side_sns_wrapper ul li a {
display: block;
width: 20px;
height: 20px;
transition: opacity 0.3s;
}

.side_sns_wrapper ul li a:hover {
opacity: 0.6;
}

.side_sns_wrapper ul li a img {
width: 100%;
height: 100%;
object-fit: contain;
}

/* ファーストビューの下に設置したマーキーなニュースとスクロール */
.fv_bottom_group{
margin: 0 auto;
transform: translateX(2.5%);
width: 95%;
position: fixed;
display: flex;
align-items: center;
justify-content: space-between;
bottom: 2rem;
z-index: 10;
font-size: .8rem;
}

.fv_news{
width: 200px;
left: 5%;
z-index: 3;
border-bottom: 1px solid;
padding-bottom: 5px;
}

.fv_news_list{
white-space: nowrap;
}

.fv_news_list li{
border-bottom: none;
}

.fv_news .marquee {
margin-bottom: 0;
overflow: hidden;
display: flex;
}

.fv_news .marquee div {
display: flex;
animation: marquee 12s linear infinite both;
}

.fv_news .marquee span {
display: block;
font-size: .8rem;
padding: 0 8px;
white-space: nowrap;
}

@keyframes marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

.fv, 
.single-information_fv{
width: 100%;
height: 100vh;
position: relative;
}

.fv .catch_copy,
.single-information_fv .catch_copy{
width: 34%;
height: 100vh;
position: relative;
display: block;
}

.single-information_fv{
display: none;
}



/*
------------------------------------------------------
個別ページ TOP
------------------------------------------------------
*/

/* トップページのファーストビュー*/
.fv_concept_content{
position: relative;
margin: 0 auto;
width: 95%;
height: 100dvh;
}

.fv_concept_content .content_inner{
position: absolute;
bottom: 0;
margin:;
width: fit-content;
height: auto;
}

.fv_concept_content h1{
font-size: 9rem;
font-weight: bold;
top: 50%;
transform: translateY(-25%);
}


.concept_img_content{
display: block;
width: 100%;
height: 100vh;
position: relative;
}

.concept_img_content img{
width: 100%;
height: 100vh;
position: absolute;
display: block;
    object-position: top;
}

/* トップページのABOUT*/
.top_about_content {
width: 100%;
margin: 5rem 0 0;
}

.top_about_content .content_inner{
width: 95%;
max-width: 1380px;
margin-left: auto;
margin-right: auto;
position: relative;
}

.top_about_content .flex_box{
display: flex;
}

.top_about_content .sub_head{
width: 50%;
osition: absolute;
}

.top_about_content .concept-movie{
width: 100%;
}

.top_about_content .concept-movie video{
width: 100%;
}

.top_about_content .concept-img {
    width: 100%;
    margin-right: auto;
    margin-right: auto;
        margin-left: 0;
}

.top_about_content .concept-img img{
    width: 100%;
    margin-bottom: 6rem;
}

.top_about_content .txet-content{
width: 100%;
}

.top_about_content .txet-content p{
font-size: 3rem;
font-weight: bold;
text-align: justify;
}


.flip-text {
    perspective: 1000px;
}

.flip-text span {
    display: inline-block;
    opacity: 0;
    transform: rotateX(-90deg) translateY(20px);
    transform-origin: top center;
    /* transitionの時間を0.8sから少し短めの0.6sにすると、よりキレが出ます */
    transition: 
        transform 0.6s cubic-bezier(0.2, 0.6, 0.3, 1), 
        opacity 0.6s ease, 
        color 0.6s ease;
    will-change: transform, opacity;
}

.flip-text span.active {
    opacity: 1;
    transform: rotateX(0deg) translateY(0);
}


/* 固定表示のためのラッパー */
.sticky-text-wrapper {
    position: relative;
    height: 200vh; /* スクロールさせるための「長さ」を確保 */
}

.top_about_content .txet-content {
    position: sticky;
    top: 15vh; /* 画面中央付近に固定 */
    width: 100%;
}

/* 1文字ずつの初期状態 */
.scroll-reveal-text span {
    color: #e4e4e4; /* 初期はグレー */
    display: inline; /* 文章の改行を崩さない */
    transition: color 0.1s linear;
}

/* 活性化した時の色 */
.scroll-reveal-text span.active {
 color: #1c3d7a;
}

.top_about_content .link{
width: fit-content;
margin-left: auto;	
}



.animation_content{
margin-top: 15rem;
}

.animation_content .marquee {
  width: calc(100% + 112px);
  overflow: hidden;
  display: flex;
  border-top: 1px solid;
    border-bottom: 1px solid;
    
}
.animation_content .marquee div {
  display: flex;
  animation: marquee 40s linear infinite both;
}
.animation_content .marquee span {
  display: block;
font-size: 1rem;

  padding: 0 24px;
  white-space: nowrap;
}
@keyframes marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

/* トップページのMENU*/
.top_service_content .comment {
margin-top: 1rem;
}

.top_service_content * {
color: #1c3d7a;
}

.top_service_content{
background: ;
width: 95%;
max-width: 1380px;
margin: 0 auto;
padding: 15rem 0;
}

.top_service_content .content_inner {
width: 100%;
}

.top_service_content .l_content{
width: 40%
}

.top_service_content .l_content .concept-img img{
width: 100%;
height: 40rem;
}

.top_service_content .r_content{
width: 55%;
margin-left: auto;
}

.top_service_content .service_select{
width: 100%;
margin-top: 3rem;
}

.top_service_content .service .service_select .content_inner {
width: 100%;
margin: 0;
}

.top_service_content .service_select .content_inner .grid{
display: grid;
gap: 0 16px;
grid-template-columns: repeat(2, 1fr);
}

.top_service_content .service_select .item{
display: block;
width: ;
height: ;
}

.top_service_content .service_select .item a{
display: block;
padding: 2rem 0 2rem .5rem;
}

.top_service_content .service_select li {
box-sizing: content-box;
border-top: 1px solid;
border-bottom: 1px solid;
}

.top_service_content .service_select li:nth-of-type(n+3){
border-top: none;
}


/*
------------------------------------------------------
個別ページ About
------------------------------------------------------
*/

.about_content {
width: 100%;
margin-top: 5rem;
margin-bottom: 0;
margin-left: 0;
margin-right: 0;
}

.about_content .content_inner{
margin-right: auto;
margin-left: auto;
width: 95%;
max-width: 1380px;
}

.about_concept .concept_text {
font-size: 5rem;
}

.about_concept .comment{
	margin-top: 3rem;
	display: block;
}

.about_concept .about_img{
width: 25rem;
height: 17rem;
margin-top: 5rem;
}

.about_concept .about_img img{
width: 100%;
height: 100%;
object-fit: cover;
}


/*-- about_select nav --*/
.about_content .select_nav{
width: 100%;
margin-left: auto;
margin-right: auto;
padding-top: 1rem;
padding-bottom: 1rem;
border-top: 1px solid;
border-bottom: 1px solid;
}

.about_content .select_nav ul{
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
width: 100%;
}

.about_content .select_nav ul:first-child{
margin-top: 0;
}

.about_content .select_nav li {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
position: relative;
}

.about_content .select_nav li a{
display: block;
text-align: center;
padding: 1em;
letter-spacing: .06em;
line-height: 1;
white-space: nowrap;
}


/*-- about_conccet --*/
.about_concept{
margin-top: 10rem;
}

.about_concept .concept{
width: 50%;
margin-left: auto;
}


/*-- about_value --*/
.about_value{
margin-top: 20rem;
}

.about_value .sub_head{
text-align: center;
}

.about_value .value {
margin-top: 3rem;
}

.about_value .grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
}

.about_value .about_value_section{
text-align: center;
font-size: 3rem;
padding-top: 11rem;
padding-bottom: 12rem;
border-right: 1px solid;
}

.about_value .about_value_section:last-child{
border-right: none;
}


/*-- about_staff --*/
.about_staff{
margin-top: 20rem;
}

.about_staff .flex_box{
}

.about_staff .staff {
width: 60%;
margin-left: auto;
}

.about_staff .staff .flex_box{
justify-content: end;
}

.about_staff_profile_box{
width: 40%;
}

.first{
margin-right: 3rem;
}

.about_staff_comment{
font-size: .8rem;
}

.about_staff_profile_box img{
width: 100%;
}


/*-- about_outline --*/
.about_outline .flex_box{
display: flex;
justify-content: space-between;	
}

.about_outline{
margin-top: 20rem;
}

.about_outline .about_outline_img {
position: relative;
}

.about_outline_content{
margin-top: 1rem;
}

.about_outline .about_outline_img img{
    width: 25rem;
    height: 30rem;
}

.about_outline .outline_data {
width: 95%;
margin-left: auto;
}

.about_outline .outline_data .data_list_blk:first-child{
border-top: 1px solid;
}

.about_outline .outline_data .data_list_blk{
flex-direction: row;
padding-block: 2rem;
border-bottom: 1px solid;
}

.data_list_blk.flex_box{
	justify-content: unset;
}

.about_outline dl{
width: 100%;
margin-top: 0;
margin-left: auto;
}

.about_outline dt{
width: 10rem;
padding-right: 4rem;
}

.about_outline dd{
width: 100%;
}


/*-- about_access --*/
.about_access{
margin-top: 20rem;
}

.about_access .flex_box{
justify-content: space-between;
}

.map_content{
margin-top: 1rem;	
}

.about_access .google_map{
width: 50%;
margin-top: 3rem;
}

.about_access .access_data{
width: 45%;
margin-top: 3rem;
}



/*
------------------------------------------------------
個別ページ Service
------------------------------------------------------
*/

.service_content {
width: 100%;
margin-top: 5rem;
margin-bottom: 0;
margin-left: 0;
margin-right: 0;
}

.service_content .content_inner{
margin-left: auto;
margin-right: auto;
width: 95%;
max-width: 1380px;
}

.service_content .service_img{
margin-top: 10rem;
}

.service_content .service_img img{
width: 100%;
height: 20rem;
}

/* メニューのセレクトナビ */
.service_content .select_nav{
width: 100%;
margin-left: auto;
margin-right: auto;
padding-top: 1rem;
padding-bottom: 1rem;
border-top: 1px solid;
border-bottom: 1px solid;
}

.service_content .select_nav ul{
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
width: 100%;
}

.service_content .select_nav ul:first-child{
margin-top: 0;
}

.service_content .select_nav li {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
position: relative;
}

.service_content .select_nav li a{
display: block;
text-align: center;
padding: 1em;
letter-spacing: .06em;
line-height: 1;
white-space: nowrap;
}

.service_comment{
width: ;
margin-top: 3rem;
text-align: center;
margin-right: auto;
margin-left: auto;
}

.service_comment p{
font-size: 3rem;
font-weight: bold;
}

.service_data{
position: relative;
margin-top: 7.5rem;
padding-top: 7.5rem;
margin-right: auto;
}

.service_data .sub_head {
width: 35%;
position: absolute;
}

.service_list {
width: 60%;
margin-left: auto;
}

.data_list_blk{
ustify-content: space-between;
}

.service_list .data_list_blk:first-child{
border-top: 1px dotted;
}

.service_list .data_list_blk{
flex-direction: row;
padding-block: 2rem;
border-bottom: 1px dotted;
}

.service_list dl{
width: 100%;
margin-right: auto;
}

.service_list dt{
width: 20%;
padding-right: 0rem;
}

.service_list dd{
width: 80%;
}

.service_data .reservation{
width: fit-content;
display: flex;
margin-top: 3rem;
}

.service_data .reservation a{
width: 100%;
color: #fff;
background: #1c3d7a;
padding: 1rem;
font-size: .8rem;
}


/*
------------------------------------------------------
個別ページ info
------------------------------------------------------
*/
.info_content .content_inner{
width: 95%;
ax-width: 1380px;
margin-left: auto;
margin-right: auto;
}

.info_content .flex_box{
display: flex;
align-items: flex-start;
justify-content: space-between;
}

.info_content .r_content{
width: 25%
}

.info_content .l_content{
width: 66%
}

.info_content .article{
width: 100%;
}

.info_content .article li:first-child {
border-top: 1px dotted;
}

.info_content .article li {
display: flex;
border-bottom: 1px dotted;
line-height: 5rem;
}



/*
------------------------------------------------------
single-info
------------------------------------------------------
*/

.single-information_fv .catch_copy,
.single-information_fv .fv_bottom_group{
display: none;

}

.single-information-content{

    /* top: 66%; */
    /* transform: translate(0%, -50%); */
    width: 100%;
    margin-top: 16rem;
    margin-left: auto;
    margin-right: auto;
}

.single-information-content .content_inner{
width: fit-content;
margin-left: auto;
margin-right: auto;
}


.article h1{
text-align: center;
}

.article img{
width: 100%;
}

.article.flexbox{
width: 95%;
margin-top: 18rem;
margin-bottom: 0;
margin-left: auto;
margin-right: auto;
}

.single-information_fv{
display: block;
width: 100%;
height: auto;
position: relative;
}

.article{
margin-top: 3rem;
}


/*
------------------------------------------------------
個別ページ contact
------------------------------------------------------
*/
/* コンタクトページのセレクトナビ*/
.contact_content .select_nav{
width: 100%;
margin-left: auto;
margin-right: auto;
padding-top: 1rem;
padding-bottom: 1rem;
border-top: 1px solid;
border-bottom: 1px solid;
}

.contact_content .select_nav ul{
display: -webkit-box;
display: -ms-flexbox;
display: block;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: left;
width: 100%;
}

.contact_content .select_nav ul:first-child{
margin-top: 0;
}

.contact_content .select_nav li {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
position: relative;
}

.contact_content p{
margin-bottom: 1rem;
}

.contact_content .select_nav li a{
display: block;
text-align: left;
padding: 1em;
letter-spacing: .06em;
line-height: 1;
white-space: nowrap;
}

.contact_content .content_inner{
width: 95%;
ax-width: 1380px;
margin: 0px auto;
box-sizing: border-box;
padding-right: 2rem;
}

.contact_content .flex_box{
display: flex;
align-items: flex-start;
justify-content: space-between;
}


.contact_content .r_content{
width: 25%
}

.contact_content .l_content{
width: 66%
}

.contact_tel,
.contact_sns,
.contact_form{
font-size: .8rem;
margin-top: 3rem;
}

.contact_form form{
margin-top: -2rem;
}

.form-field {
margin-bottom: 4rem;
width: 100%;
}

label {
font-size: .8rem;
display: block;
margin-top: 3rem;
}

select{
width: 100%;
padding: 10px 0;
border: none;
border-bottom: 1px solid #000;
background-color: transparent;
outline: none;
cursor: pointer;
border-radius: 0; /* iOSで丸くなるのを防ぐ */
-webkit-appearance: none; /* デフォルトの矢印を消して自作する場合 */
}

input[type="text"], input[type="email"], input[type="tel"], select,textarea {
width: 100%;
padding: 10px 0;
border: none;
border-bottom: 1px solid;
background-color: transparent;
color:;
outline: none;
}

button {
padding: 10px 20px;
border: none;
background-color:;
color: #000;
cursor: pointer;
}

input[type=checkbox],input[type=radio] {
-webkit-appearance: none;
-moz-appearance: none;
-ms-appearance: none;
-o-appearance: none;
appearance: none;
position: relative;
right: 0;
bottom: 0;
left: 0;
height: 20px;
width: 20px;
vertical-align: -0.8rem;
transition:all .15s ease-out 0s;
color: #fff;
cursor: pointer;
display: inline-block;
margin: .4rem;
outline: none;
border-radius: 10%;
}

input[type=checkbox]:before,input[type=checkbox]:after {
position: absolute;
content: "";
background: ;
transition: all .2s ease-in-out;
}

input[type=checkbox]:before {
left: 2px;
top: 6px;
width: 0;
height: 2px;
transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
}

input[type=checkbox]:after {
right: 9px;
bottom: 3px;
width: 2px;
height: 0;
transform: rotate(40deg);
-webkit-transform: rotate(40deg);
-moz-transform: rotate(40deg);
-ms-transform: rotate(40deg);
-o-transform: rotate(40deg);
transition-delay: .2s;
}

input[type=checkbox]:checked:before {
left: 1px;
top: 10px;
width: 6px;
height: 2px;
}

input[type=checkbox]:checked:after {
right: 7px;
bottom: 2px;
width: 2px;
height: 14px;
}

input[type=checkbox]:indeterminate:before,input[type=checkbox]:indeterminate:after {
width: 7px;
height: 2px;
transform: rotate(0);
-webkit-transform: rotate(0);
-moz-transform: rotate(0);
-ms-transform: rotate(0);
-o-transform: rotate(0);
}

input[type=checkbox]:indeterminate:before {
left: 1px;
top: 7px;
}

input[type=checkbox]:indeterminate:after {
right: 1px;
bottom: 7px;
}

.checkbox-section {
margin-bottom: 50px;
}

.checkbox-section input[type="checkbox"] {
height: 20px;
width: 20px;
vertical-align: -0.8rem;
transition:all .15s ease-out 0s;
color: #fff;
cursor: pointer;
display: inline-block;
margin: .4rem;
outline: none;
border-radius: 100%;
margin-right: 10px;
transform:scale(1.5);
border: 1px solid ;
}

.checkbox-section input[type="checkbox"]:checked {
background: #000000;
}




a.policy{
color: ;
text-decoration: underline;
}

.page-template-page-contact-confirm .form-field{
border-bottom: 1px solid ;
width: 37%;
}

.button-container {
margin-top: 70px;
}

.button-container p {
display: block;
gap: 20px;
align-items: center;
}

/* クラス名を .wpcf7-submit から .submit-btn に変更 */
.submit-btn {
    margin-top: 3rem;
    padding: 10px 20px;
    background-color: transparent; /* 必要に応じて指定 */
    border: 1px solid #000;      /* 枠線など cavalのトーンに合わせて */
    color: #000;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 200px;
    transition: transform 0.2s ease;
}

.submit-btn:active {
    transform: scale(0.95);
}

/* 以前使用していた矢印のアイコンをボタンにもつける場合 */
.submit-btn::after {
    content: "";
    display: inline-block;
    width: 1rem;
    height: 1rem;
    background: url(img/common/arrow.png) no-repeat;
    background-size: contain;
    transform: rotate(180deg);
    filter: invert(1);
}


.thanks-content {
    width: 100%;
    height: 100vh; /* 画面いっぱいの高さ */
    display: flex; /* Flexboxを開始 */
    align-items: center; /* 上下中央 */
    justify-content: center; /* 左右中央 */
}

.thanks-content .content-inner {
    width: 95%;
    max-width: 1200px; /* 必要に応じて最大幅を設定 */
    text-align: center; /* 中の文字を中央寄せ */
    /* position: fixed; や left: 2.5%; は削除します */
}

/* 以前指定していた H1 や P のスタイルをここにまとめると潔いです */
.thanks-content .content-inner h1 {
    font-size: 4rem;
    letter-spacing: 0.5rem;
    margin-bottom: 2rem;
}

.thanks-content .content-inner p {
    font-size: 0.8rem;
    margin-bottom: 3rem;
}

.thanks-content .content-inner .link {
    display: inline-block; /* ボタンを中央にするため */
}


/*
------------------------------------------------------
privacy_policy
------------------------------------------------------
*/

.privacy_policy_content {
width: 100%;
margin: 2rem 0 0;
}

.privacy_policy_content .content_inner{
margin: 0 auto;
width: 95%;
}

.privacy_policy{
display: block;
width: 100%;
}

.pp_section {
border-top: 1px dotted;
margin: 50px 0 0;
padding: 50px 0 0;
}

.pp_section:last-child{
border-bottom: none;
}

.pp-section {
    border-top: 1px dotted;
    margin: 50px 0 0;
    padding: 50px 0 0;
}


/*
------------------------------------------------------
404
------------------------------------------------------
*/

.notfound_content {
width: 100%;
margin: 2rem 0 0;
}

.notfound_content .content_inner{
margin: 0 auto;
width: 95%;
}


/*
------------------------------------------------------
footer
------------------------------------------------------
*/

/*------------- others_content -------------*/
.others_content{
clear: both;
height: auto;
}

.others_content .image_container {
display: flex;
width: 100%;
}

.others_content .image_item {
flex: 1;
position: relative;
overflow: hidden;
}

.others_content .image_item img {
display: block;
width: 100%;
height: 20rem;
}

.others_content .image_text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #fff;
font-size: 20px;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.others_content .image_item img.gray {
filter: brightness(50%) grayscale(50%);
transition: all 0.3s ease-in;
}

.others_content .image_item img.gray:hover {
filter: none;
transition: all 0.3s ease-in;
}


/*------------- online -------------*/
.footer_online_content{
width: 100%;
background: #1c3d7a;
margin-top: 0rem;
}


.footer_online_content .content_inner {
display: block;
width: 95%;
margin: 0 auto;
padding: 0;
justify-content: space-between;
}

.footer_online_content .reservation{
margin-top: 0rem;
padding-top: 10rem;
padding-bottom: 10rem;
}

.footer_online_content .reservation .sub_head{
margin: 0 auto;
text-align: center;
}

.footer_online_content .online_tool{
width: 60%;
margin-left: auto;
margin-right: auto;
}

.online_item {
padding: 3rem 4rem;
text-align: center;
border-top: solid 1px #fff;
border-bottom: solid 1px #fff;
}

.online_item p{
color: #fff;
font-size: 2rem;
}

.reservation .comment p{
color: #fff;
margin-top: 1rem;
text-align: center;
}


.tool-icon {
height: 60px;
margin-bottom: 10px;
}
.download-links {
display: flex;
flex-direction: column;
align-items: center;
}

.download-icon {
margin: 5px 0;
width: 135px;
}
.gplay{
width: 156px;
}
.vertical-line {
width: 1px;
background-color: #fff;
height: 300px;
align-self: center;
}


/*------------- news -------------*/
.footer_news_content* {
color: #fff;
}

.footer_news_content {
ackground: #1c3d7a;
color: #1c3d7a;
width: 100%;
margin: 0;

}

.footer_news_content .content_inner {
display: block;
width: 95%;
margin: 0 auto;
padding: 15rem 0;
}

.footer_news_content .content_inner .flex_box{
display: flex;
align-items: flex-start;
justify-content: space-between;
}

.footer_news_content .select-nav li{
margin-top: 1rem;
cursor: pointer;
display: block;
}

.footer_news_content .select-nav li.active {
color: #fff;
}

.footer_news_content .content_inner .article{
width: 75%;
margin-top: 0;
}

.footer_news_content .article li:first-child {
border-top: 1px dotted #1c3d7a;
}

.footer_news_content .article li {
display: flex;
border-bottom: 1px dotted #1c3d7a;
line-height: 5rem;
}

.footer_news_content .content_inner .article .date{
width: 100%;
}

.footer_news_content .article a{
color: #1c3d7a;
}



/*------------- footer menu -------------*/
.footer_nav_content{
	margin-top: 3rem;
}

.footer_menu{
width: 100%;
margin-top: 5rem;
padding-bottom: 2rem;
}

footer .content_inner{
width: 95%;
margin: 0 auto;
}

footer .content_inner .flex_box {
display: flex;
justify-content: space-between;
}

.footer_l_content{
width: 35%;
}

.footer_l_content .footer_concept_img img{
width: 80%;
height: auto;
}

.footer_r_content{
width: 60%;
}

.footer_r_content .flex_box{
}

.footer_r_content .footer_l_nav{
width: 60%;
box-sizing: border-box;
padding-right: 1rem;
}

.footer_r_content .footer_l_nav .footer_etc{
margin-top: 5rem;
}

.footer_r_content .footer_r_nav{
width: 40%;
box-sizing: border-box;
padding-left: 1rem;
}

.footer_r_content .footer_r_nav .footer_sns{
margin-top: 5rem;
}

.footer_subhead{
border-bottom: 1px solid #1c3d7a;
}

.footer_r_content .footer_sitemap .footer_list {
display: grid;
}

.footer_list li {
margin-top: 1rem;
}

.footer_r_content .footer_list {
grid-template-columns: repeat(2, 1fr);
margin-top: 1.5rem;
}
 
.footer_bottom{
width: 100%;
margin-top: 10rem;
}

.footer_bottom .content_inner{
width: 95%;
}

.footer_bottom .footer_logo img{
width: 3rem;
height: auto;
}

.privacy {
    width: fit-content;
    font-size: .7rem;
    margin-top: 1rem;
    border-bottom: 1px solid;
}

/*
------------------------------------------------------
animation
------------------------------------------------------
*/

#scrolltarget{
display: none;
position: fixed;
top: 0;
left: 0;
}

#cursor{
position: fixed;
background: #1c3d7a;
border-radius:10px;
width: 1em;
height: 1em;
margin: -10px 0 0 -10px;
z-index: 2;
pointer-events: none;
opacity: 0;
transition: transform 0.1s;
}

#stalker{
position: fixed;
background: #ffffff70;
width: 100px;
height: 100px;
border-radius:30px;
margin: -30px 0 0 -30px;
z-index: 1;
pointer-events: none;
opacity: 0;
transition: transform 0.5s;
}

#cursor.active,
#stalker.active{
transform: scale(4.5);
}

.loop {
overflow: hidden;
white-space: nowrap;
position: relative;
}

.p-content__container {
display: flex;
flex-direction: column;
justify-content: center;
flex-grow: 1;
}

.c-text {
overflow: hidden;
display: flex;
width: 100vw;
margin-inline:calc(50% - 50vw);
}

.c-text__item {
flex-shrink: 0;
white-space: nowrap;
font-size: 6vw;
letter-spacing: -.03em;
padding-inline:.1em;
color: #B19A7D;
background: linear-gradient(to right,#8c7c7c,#B19A7D);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

.c-text:not(.no-tick) .c-text__item:nth-child(odd) {
-webkit-animation: MoveLeft var(--tick-duration, 18s) var(--tick-delay, -9s) infinite linear;
animation: MoveLeft var(--tick-duration, 18s) var(--tick-delay, -9s) infinite linear;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}

 .c-text--reverse:not(.no-tick) .c-text__item:nth-child(odd) {
-webkit-animation: MoveLeft var(--tick-duration, 18s) var(--tick-delay, -9s) infinite linear reverse;
animation: MoveLeft var(--tick-duration, 18s) var(--tick-delay, -9s) infinite linear reverse;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}

.c-text:not(.no-tick) .c-text__item:nth-child(even) {
-webkit-animation: MoveLeft2 var(--tick-duration, 18s) infinite linear;
animation: MoveLeft2 var(--tick-duration, 18s) infinite linear;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}

.c-text--reverse:not(.no-tick) .c-text__item:nth-child(even) {
-webkit-animation: MoveLeft2 var(--tick-duration, 18s) infinite linear reverse;
animation: MoveLeft2 var(--tick-duration, 18s) infinite linear reverse;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}

@-webkit-keyframes MoveLeft {
0% {
-webkit-transform: translateX(100%);
transform: translateX(100%)
}

to {
-webkit-transform: translateX(-100%);
transform: translateX(-100%)
}
}

@keyframes MoveLeft {
0% {
-webkit-transform: translateX(100%);
transform: translateX(100%)
}

to {
-webkit-transform: translateX(-100%);
transform: translateX(-100%)
}
}

@-webkit-keyframes MoveLeft2 {
0% {
-webkit-transform: translateX(0);
transform: translateX(0)
}

to {
-webkit-transform: translateX(-200%);
transform: translateX(-200%)
}
}

@keyframes MoveLeft2 {
0% {
-webkit-transform: translateX(0);
transform: translateX(0)
}

to {
-webkit-transform: translateX(-200%);
transform: translateX(-200%)
}
}

@media screen and (min-width: 801px) {
.c-text__item {
font-size: 6vw;
}

.c-text:not(.no-tick) .c-text__item:nth-child(odd) {
-webkit-animation: MoveLeft var(--tick-duration, 24s) var(--tick-delay, -12s) infinite linear;
animation: MoveLeft var(--tick-duration, 24s) var(--tick-delay, -12s) infinite linear;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}

.c-text--reverse:not(.no-tick) .c-text__item:nth-child(odd) {
-webkit-animation: MoveLeft var(--tick-duration, 24s) var(--tick-delay, -12s) infinite linear reverse;
animation: MoveLeft var(--tick-duration, 24s) var(--tick-delay, -12s) infinite linear reverse;
-webkit-animation-fill-mode: both;
 animation-fill-mode: both;
}

.c-text:not(.no-tick) .c-text__item:nth-child(even) {
-webkit-animation: MoveLeft2 var(--tick-duration, 24s) infinite linear;
animation: MoveLeft2 var(--tick-duration, 24s) infinite linear;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}

.c-text--reverse:not(.no-tick) .c-text__item:nth-child(even) {
-webkit-animation: MoveLeft2 var(--tick-duration, 24s) infinite linear reverse;
animation: MoveLeft2 var(--tick-duration, 24s) infinite linear reverse;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}

}


/* pc 
@media screen and (min-width: 769px) {
.u_769{
display: none !important;
}

.o_769{
display: block;
}

.service-icon {
display: none;
}

.service {
display: block !important;
}

}
*/


/*
=================================================================================
tablet
=================================================================================
*/

@media only screen and (min-width: 768px) and (max-width: 1023px) {

#cursor{
display: none;
}

#stalker{
display: none;
}

.main-content {
width: 100%;
height: auto;
position: relative;
margin: 0 auto;
}

.single {
display: block;
width: 100%;
}

.single h2{
font-size: 2rem;
margin-bottom: 50px;
}

.single .text-content{
color: #acacac;
font-size: 1.5rem;
margin-bottom: 50px;
}

.service_content .select_nav li a {
text-align: start;
padding: 1em 10em 1em 1em;
}

}



/*
=================================================================================
smartPhone
=================================================================================
*/
@media screen and (max-width: 767px) {
/*
.u_769{
display: block;
}

.o_769{
display: none !important;
}
*/

.main_content {
width: 100%;
height: auto;
position: relative;
margin-left: auto;
margin-right: 0;
}

.br::before {
content: "\A";
white-space: pre;
}

.non-display{
display: block !important;
}

#cursor{
display: none;
}

#stalker{
display: none;
}

.sub_head {
margin-bottom: 1rem;
argin-left: -.6rem;
}

.breadcrumb_box {
    width: 88%;
    display: block;
    margin-top: 10rem;
    margin-left: auto;
    margin-bottom: 5rem;
}

/* ------------------------------------------------------
   header (SP用ハンバーガー対応)
--------------------------------------------------------- */

header {
    position: fixed;
    width: 100%;
    top: 1.5rem;
}

header .flexbox {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* 通常のナビゲーションを隠す */
header nav:not(#full-menu) {
    display: none !important;
}

/* SP時はロゴ横ボタンを隠す設定 */
.head_logo_group {
    display: block;
}


.head_logo{
top: 4.1rem;
left: -2.1rem;
position: absolute;
transform: rotate(-90deg);
font-size: .9rem;
}

.head_insta_btn {
    display: none;
}

/* ハンバーガーボタンを表示 */
.service-toggle {
    display: block !important;
    cursor: pointer;
    z-index: 1000;
}

.hamburger span {
    display: block;
    width: 25px;
    height: 1px;
    background: #93a593;
    margin-bottom: 7px;
}

.service-label {
    color: ;
}

/* SP用全画面メニュー */
#full-menu {
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
        background: rgb(240 240 240 / 96%);
    z-index: 200;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s ease;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#full-menu.is-active {
    opacity: 1;
    visibility: visible;
}

/* nssg.jp風：メニュー内容のフェードイン演出 */
#full-menu .full-menu-content {
    width: 100%;
    opacity: 0;
    transition: opacity 0.6s ease;
    transition-delay: 0s; /* 閉じる時は即座に消える */
}

#full-menu.is-active .full-menu-content {
    opacity: 1;
    transition-delay: 0.5s; /* 開く時は背景より少し遅れてフェードイン */
}

#full-menu .full-menu-content-inner{
width: 98%
}

#full-menu .full-menu-content ul {
    list-style: none;
    padding: 0;
    margin: 3rem 0 0 0;
    text-align: center;
    display: block !important; /* 横並びを強制解除 */
}

#full-menu .full-menu-content .full-menu-content-inner > ul > li {
	text-align: left;
margin: 0 0 2.5rem auto !important;
    width: 20rem;
    display: block !important;
}

#full-menu .full-menu-content .full-menu-content-inner > ul > li > a {
    font-size: 1rem;
    color: ;
    letter-spacing: 0.3em;
    border-bottom: 1px solid rgba(147, 165, 147, 0.3);
    padding-bottom: 5px;
    display: block;
}

/* SPメニュー内のサブメニュー */
#full-menu .sub-menu {
    list-style: none;
    padding: 15px 0 0 0;
    margin: 0;
    position: static !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

#full-menu .sub-menu li {
    margin: 0 auto 10px auto !important;
    display: block !important;
}

#full-menu .sub-menu li a {
    font-size: 14px;
    color: #93a593;
    opacity: 0.7;
    border-bottom: none;
    display: block;
}

#full-menu .full-menu-content-data{
width: 20rem;
margin-left: auto;
font-size: .8rem
}

#full-menu .full-menu-content-data span{
	display: block;
}

.shopname{
	font-size: 1.5rem !important;
}

.address{
}

/* FVの調整 */
.fv .concept_img_content img, 
.fv .kv img{
width: 91%;
height: 100vh;
object-fit: cover;
position: absolute;
right: 0;
bottom: 0;
}

.fv .catch_copy,
.single-information_fv .catch_copy{
width: fit-content;
position: absolute;
display: block;
op: 25vh;
}

.fv .title,
.single-information_fv .title{
position: fixed;
        top: 1.5rem;
        left: 13%;
}

.fv .title h1 ,
.single-information_fv .title h1{
    text-align: center;
    font-weight: lighter;
    font-size: .8rem;
    padding-left: 0; 
}

.fv_article {
bottom: 6rem;
}

.fv_article ul {
    width: 94%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
}


.side_sns_wrapper {
    position: fixed;
    left: 2.5%;
    top: 50%;
    transform: translateY(-50%);
    z-index: 99;

    width: fit-content;
    height: fit-content;

}

.side_sns_wrapper ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1.8rem;
}

.side_sns_wrapper ul li a {
    display: block;
    width: 1rem;
    height: 1rem;
    transition: opacity 0.3s;
}

/* 修正箇所：SP時の fv_bottom_group 表示設定 */
.fv_bottom_group {
width: 95%;
        position: fixed;
        display: block;
        justify-content: space-between;
        align-items: flex-end;
        /* bottom: 0; */
        left: 0;
        z-index: 99;
        font-size: .8rem;
}

.fv_news {
        bottom: 0rem;
        left: -5.8rem;
        width: 200px;
        border-bottom: 1px solid;
        padding-bottom: 0;
        position: absolute;
        transform: rotate(-90deg);
}

.fv_bottom_group .scroll{
	display: none;
}

.breadcrumb {
width: 95%;
margin: 0;
display: flex;
flex-wrap: wrap;
list-style: none;
}

/*
.top_about_content .content_inner,
.service .content_inner,
.catch_copy .content_inner,
.about_content .content_inner,
.service_content .content_inner,
.info_content .content_inner,
.single-information-content .content_inner,
.contact_content {
    width: 90%;
    argin-top: 3rem;
    margin-left: auto;
    margin-right: 0;
}
.footer_news_content .content_inner,
footer .content_inner{
width: 90%;
margin: 0 0 0 auto;
position: relative;
}
*/


/*
------------------------------------------------------
個別ページ TOP
------------------------------------------------------
*/

.fv_concept_content h1 {
font-size: 3rem;
op: 50%;
translate: 15% -12%;
ransform: translateX(15%);
}

.top_about_content .content_inner {
width: 88%;
margin-left: auto;
margin-right: 0;
position: relative;
}

.top_about_content .flex_box{
display: block;
}

.top_about_content .txet-content p {
    font-size: 1.5rem;
}

.top_about_content .l_content{
	width: 90%;
}

.top_about_content .r_content{
	width: 100%;
}

.top_about_content .sub_head {
width: 100%;
position: relative;
}

.top_about_content h1{
font-size: 2rem;
white-space: nowrap;
}

.top_about_content .comment{
display: block;
width: 80%;
margin-top: 2rem;
}

.top_about_content .concept-img {
    width: 100%;
    margin-top: 3rem;
    margin-right: auto;
    margin-right: auto;
        margin-left: 0;
}


.top_about_content .txet-content {
position: sticky;
top: 10vh;
width: 95%;
}

.top_about_content .concept-img img{
    width: 100%;
}

.top_service_content .content_inner {
width: 88%;
margin-left: auto;
margin-right: 0;
position: relative;
}

.service_select .content_inner {
width: 100%;
}


.animation_content {
    margin-top: 5rem;
}

.animation_content .marquee {
width: 100%;
overflow: hidden;
display: flex;
}

.top_service_content {
    width: 100%;
    margin: 0;
    padding: 5rem 0;
}

.top_service_content .l_content .concept-img img {
    width: 100%;
    height: 15rem;
}

.top_service_content .service_select .grid {
grid-template-columns: 1fr;
}

.top_service_content .flex_box {
    display: block;
}

.top_service_content .l_content {
    width: 100%;
}

.top_service_content .r_content {
width: 100%;
margin-left: auto;
box-sizing: border-box;
padding-right: 1rem;
}

.top_service_content .service_select .content_inner .grid {
    display: grid;
    gap: 0 16px;
    grid-template-columns: repeat(1, 1fr);
}


/*
------------------------------------------------------
個別ページ About
------------------------------------------------------
*/

.about_content {
}

.about_content .content_inner{
margin-left: auto;
margin-right: 0;
width: 88%;
}

.about_content .select_nav li a {
text-align: start;
padding: 1em 6em 1em 1em;
}

.about_concept {
margin-top: 5rem;
padding-top: 5rem;
}

.about_concept .concept {
    width: 100%;
    margin-left: auto;
}
    
.about_concept .flex_box{
display: block;
}

.about_concept .concept_text {
font-size: 2rem;
}

.about_concept .comment{
	margin-top: 1rem;
	display: block;
}

.about_concept .about_img {
width: 15rem;
height: 20rem;
margin-top: 3rem;
}

.about_concept .about_img img {
width: 100%;
height: 100%;
object-fit: cover;
}

.about_outline .flex_box {
    display: block;
    justify-content: space-between;
}

.about_outline{
margin-top: 10rem;
}

.data_list_blk.flex_box {
    display: flex;
    justify-content: normal;
}

.about_outline .about_outline_img img {
position: relative;
width: 100%;
}

.about_outline .outline_data {
width: 100%;
margin-top: 3rem;
margin-left: auto;
box-sizing: border-box;
padding-right: 1rem;
}

.about_outline dt {
width: 4rem;
padding-right: 1rem;
flex-shrink: 0;
}

.about_access {
margin-top: 10rem;
}


.about_access .flex_box {
display: block;
}

.about_value .grid{
display: block;
}

.about_value .about_value_section{
border-right: none;
border-bottom: 1px solid;
}


/*
------------------------------------------------------
個別ページ Menu
------------------------------------------------------
*/

.service_content {
width: 100%;
margin-top: 5rem;
margin-bottom: 0;
margin-left: 0;
margin-right: 0;
}

.service_content .content_inner{
margin-left: auto;
margin-right: 0;
width: 88%;
}

.service_content .service_img{
margin-top: 10rem;
}

.service_comment {
width: 100%;
margin-top: 1rem;
text-align: justify;
margin-right: auto;
margin-left: auto;
box-sizing: border-box;
padding-right: 1rem;
}

.service_comment p{
font-size: 1.5rem;
font-weight: bold;
}

.service_content .select_nav li a {
text-align: start;
padding: 1em 6em 1em 1em;
}

.service_data {
position: relative;
margin-top: 5rem;
padding-top: 5rem;
margin-right: auto;
box-sizing: border-box;
padding-right: 1rem;
}

.service_data .sub_head {
width: 100%;
position: unset;
}

.service_list {
width: 100%;
margin-top: 1rem;
margin-left: auto;
}

.service_list dt {
width: 100%;
padding-right: 0rem;
}

.service_list dd {
width: 100%;
margin-top: 1rem;
}

.data_list_blk.flex_box{
display: block;
}

/*
------------------------------------------------------
個別ページ info
------------------------------------------------------
*/
.info_content {
width: 100%;
height: auto;
margin-top: 1rem;
margin-left: auto;
}

.info_content .content_inner{
margin-left: auto;
margin-right: 0;
width: 88%;
box-sizing: border-box;
padding-right: 1rem;
}

.info_content .flex_box{
display: block;
align-items: flex-start;
justify-content: inherit;
}

.info_content .r_content {
width: 100%;
}

.info_content .l_content {
width: 100%;
}

.attention {
margin-top: 3rem;
padding: 1rem 1rem;
text-align: justify;
color: #fff;
}
.single-information_fv{
	display: block;
width: 100%;
height: auto;
position: relative;	
}


.single-information-content h1{
text-align: left;
	
}

.single-information-content{
width: 100%;
margin-top: 16rem;
position: relative;
transform: none;
width: 100%;
margin-top: 16rem;
}

.single-information-content .content_inner{
margin-left: auto;
margin-right: 0;
width: 88%;
box-sizing: border-box;
padding-right: 1rem;
}

.article{
margin-top: 3rem;	
}



/*
------------------------------------------------------
個別ページ reservation
------------------------------------------------------
*/

.contact_content .content_inner{
margin-left: auto;
margin-right: 0;
width: 90%;
box-sizing: border-box;
padding-right: 1rem;
}

.contact_content .flex_box{
display: block;
align-items: flex-start;
justify-content: inherit;
}

.contact_content .r_content {
width: 100%;
}

.contact_content .l_content {
width: 100%;
}

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

.footer_online_content {
width: 100%;
argin-top: 5rem;
}

.online_item p {
font-size: 1em;
}

.others_content .image_container {
display: flex;
width: 100%;
height: auto;
margin-left: auto;
}

.others_content .image_item img {
display: block;
width: 100%;
height: 20rem;
}

.footer_news_content {
ackground: #1c3d7a;
olor: #fff;
idth: 100%;
argin: 5rem 0 0;
}

.footer_news_content .content_inner {
width: 88%;
margin-left: auto;
margin-right: 0;
position: relative;
display: block;
padding: 5rem 1rem 5rem 0;
box-sizing: border-box;
}


footer .content_inner{
width: 88%;
margin-left: auto;
margin-right: 0;
}

footer .content_inner .flex_box{
display: block;
}

.footer_l_content, .footer_r_content, 
.footer_online_content .online_tool {
width: 100%;
}

.footer_r_content{
width: 100%;
padding-right: 1rem;
box-sizing: border-box;
}

.footer_news_content .content_inner .flex_box{
display: block;
}

.footer_news_content .content_inner .article {
width: 100%;
margin-top: 1rem;
}

.footer_r_content .footer_l_nav {
width: 100%;
box-sizing: border-box;
padding-right: 0;
}

.footer_r_content .footer_r_nav {
width: 100%;
box-sizing: border-box;
margin-top: 5rem;
padding-left: 0;
}

}