@charset "utf-8";

/*================================
Layout
================================*/
body {
    position: relative;
    overflow-x: hidden;
}

html.nonScroll,
body.nonScroll {
    overflow: hidden;
}

.wrapper {
    position: relative;
}

.inner {
    margin-inline: auto;
}

.w1280 {
    width: 100%;
    max-width: 1320px;
    margin-inline: auto;
    padding-inline: 20px;
}

.w1215 {
    width: 100%;
    max-width: 1255px;
    margin-inline: auto;
    padding-inline: 20px;
}

.w1100 {
    width: 100%;
    max-width: 1140px;
    margin-inline: auto;
    padding-inline: 20px;
}

.w988 {
    width: 100%;
    max-width: 1028px;
    margin-inline: auto;
    padding-inline: 20px;
}
.w864 {
    width: 100%;
    max-width: 904px;
    margin-inline: auto;
    padding-inline: 20px;
}

.w810 {
    width: 100%;
    max-width: 850px;
    margin-inline: auto;
    padding-inline: 20px;
}

/*================================
Common
================================*/


/*================================
Header
================================*/
.header .inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding-block: 20px;
}
@media screen and (min-width: 768px) {
.header .inner .nav .nav_upper {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.header .inner .nav .nav_upper .nav_upper_company {
    display: flex;
    align-items: center;
}

.header .inner .nav .nav_upper .nav_upper_company li {
    position: relative;
}

.header .inner .nav .nav_upper .nav_upper_company li a {
    display: block;
    width: fit-content;
    padding-inline: 15px;
    font-size: 13px;
    font-weight: 700;
    color: #000000;
}

.header .inner .nav .nav_upper .nav_upper_company li.current-menu-item a {
    color: var(--c-brown);
}

.header .inner .nav .nav_upper .nav_upper_company li:before {
    content: "|";
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-55%);
    color: #000000;
    font-size: 13px;
}

.header .inner .nav .nav_upper .nav_upper_company li:nth-of-type(3):before {
    display: none;
}

.header .inner .nav .nav_upper .nav_upper_pickup {
    display: flex;
    align-items: center;
    justify-content: center;
}

.header .inner .nav .nav_upper .nav_upper_pickup li a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 166px;
    height: 45px;
    font-size: 14px;
    font-weight: 700;
    color: #FFF;
}

.header .inner .nav .nav_upper .nav_upper_pickup li:nth-of-type(1) a {
    background: var(--c-gray);
}

.header .inner .nav .nav_upper .nav_upper_pickup li:nth-of-type(2) a {
    background: var(--c-brown);
}

.header .inner .nav .nav_upper .nav_upper_pickup li.current-menu-item a {
    background: var(--c-lightgray);
}

.header .inner .nav .nav_lower {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-block: 40px 10px;
    column-gap: 20px;
}

.header .inner .nav .nav_lower .nav_lower_gnav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.header .inner .nav .nav_lower .nav_lower_gnav li a {
    display: flex;
    align-items: center;
    padding-inline: 15px;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.7;
    color: #000;
}

.header .inner .nav .nav_lower .nav_lower_gnav li.current a,
.header .inner .nav .nav_lower .nav_lower_gnav li.current-menu-item > a  {
    color: var(--c-brown);
    line-height: 1.7;
}

.header .inner .nav .nav_lower .nav_lower_sns a {
    display: block;
    line-height: 1;
    width: 19px;
    height: 19px;
}

.header .inner .nav .nav_lower .nav_lower_sns a img {
    object-fit: contain;
}

.menu-item-has-children {
    position: relative;
}

.menu-item-has-children .sub-menu {
    visibility: hidden;
    pointer-events: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    z-index: 10;
    background: #FFF;
    box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.35);
}

.pll-parent-menu-item .sub-menu{
    left: inherit;
    right: 0;
}

.menu-item-has-children:hover .sub-menu {
    visibility: visible;
    pointer-events: all;
    width: 19em;
}

.pll-parent-menu-item:hover .sub-menu {
    width: 10em;
}

.menu-item-has-children .sub-menu li {
    display: block;
}

.header .inner .nav .nav_lower .nav_lower_gnav li.menu-item-has-children .sub-menu a {
    padding: 1em;
    display: flex;
    justify-content: space-between;
    font-size: 13px;

}

.header .header_igm {
    width: 23px;
    height: 23px;
}

.hamburger {
    display: none;
}
}
/*================================
Contents Common
================================*/
.mv {
    position: relative;
}
.mv img,
.mv video {
    width: 100%;
    height: auto;
    max-height: 600px;
    object-fit: cover;
}
.mv .mv_title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    font-size: 30px;
    font-weight: 500;
    letter-spacing: 0.5em;
    line-height: 2.12;
    color: #FFF;
    text-align: center;
    z-index: 1;
    text-shadow: 2px 3px 3px rgba(0, 0, 0, 0.4);
}

.flex {
    display: flex;
}

.flex.col2 {
    align-items: center;
    justify-content: space-between;
}

.bg_beige {
    background: rgba(228,225,223,0.5);
}

.section_header {
    text-align: center;
}

.section_title,
.acm_detail_intro h2 {
    font-size: 32px;
    font-weight: 500;
    letter-spacing: 0.2em;
    line-height: 1.6;
}

.section_title .section_title_sub {
    margin-top: 10px;
    font-size: 24px;
}

.section_title > small {
    font-size: 20px;
}

.section_header .notes {
    margin-top: 20px;
    font-size: 14px;
}

.contents section:last-of-type {
    padding-bottom: 120px;
}

.link a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 200px;
    height: 38px;
    font-size: 14px;
    color: #FFF;
    text-align: center;
    background: var(--c-gray);
}

.link.lightbrown a {
    background: var(--c-lightbrown);
}
.link.brown a {
    background: var(--c-brown);
}
.link.green a {
    background: var(--c-green);
}
.link.gray a {
    background: var(--c-gray);
}
.link.yellow a {
    background: var(--c-yellow);
}
.link.red a {
    background: var(--c-red);
}

.link a:before {
    content: "";
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    background: url(../img/common/icon_arrow_white@2x.webp) no-repeat center center;
    width: 7px;
    height: 11px;
    background-size: cover;
    z-index: 1;
}

.service_list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 48px 38px;
}

.service_list .item {
    padding: 18px 15px 45px;
    border: 1px solid rgba(153,153,153,0.31);
    background: #FFF;
}

.service_list .item .img {
    width: 100%;
    max-height: 333px;
    overflow: hidden;
}

.service_list .item .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.service_list .item .text {
    padding: 70px 20px 50px;
    text-align: center;
}

.service_list .item .text .label {
    font-size: 18px;
    font-weight: 500;
    line-height: 2.5;
}

.service_list .item .link {
    width: 200px;
    height: 38px;
    margin-inline: auto;
}

.acm_list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));;
    gap: 48px 38px;
}

.acm_list .item {
    padding: 18px 15px 45px;
    border: 1px solid rgba(153,153,153,0.31);
    background: #FFF;
}

.acm_list .item .img {
    width: 100%;
    max-height: 333px;
    overflow: hidden;
}

.acm_list .item .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.acm_list .item .text {
    padding: 70px 20px 50px;
    text-align: center;
}

.acm_list .item .text .label {
    font-size: 18px;
    font-weight: 500;
    line-height: 2.5;
}

.acm_list .item .link {
    width: 200px;
    height: 38px;
    margin-inline: auto;
}

.breadcrumbs {
    padding-block: 20px;
}

.breadcrumbs ul {
    display: flex;
    align-items: center;
}

.breadcrumbs ul li {
    position: relative;
    padding: 0 20px;
    font-size: 12px;
}

.breadcrumbs ul li:after {
    content: ">";
    position: absolute;
    top: 50%;
    right: 0px;
    transform: translateY(-50%);
}

.breadcrumbs ul li:last-of-type:after {
    display: none;
}


.breadcrumbs ul li a {
    color: #000;
}

.pager {
	margin:160px auto 0;
	padding:0 0 0 0;
}

.pager_inner {
	display:-webkit-flex;
	display:flex;
	-webkit-flex-flow:row wrap;
	flex-flow:row wrap;
	-webkit-justify-content:center;
	justify-content:center;
}

.back,
.next {
	position:relative;
	box-sizing:border-box;
	margin:10px 0;
	border:1px solid #999;
	width:22px;
	height:22px;
	text-indent:-9999px;
}

.back a,
.next a {
	display:block;
	width:100%;
	height:100%;
	text-indent:-9999px;
}

.back::after,
.next::after {
	position:absolute;
	top:calc(50% - 4px);
	display:block;
	box-sizing:border-box;
	border-top:1px solid #ccc;
	width:8px;
	height:8px;
	content:"";
	pointer-events: none;
}

.back::after {
	border-left:1px solid #ccc;
	left:calc(50% - 2px);
	transform:rotate(315deg);
}

.pager ol {
	display:-webkit-inline-flex;
	display:inline-flex;
	-webkit-flex-flow:row wrap;
	flex-flow:row wrap;
	-webkit-justify-content:center;
	justify-content:center;
	margin:0 10px;
	list-style-type:none;
}

.pager ol li {
	margin:12px 0;
	padding:0 20px;
	line-height:18px;
	font-size:18px;
}

.pager ol li a {
	display: block;
	color:#000;
	text-decoration:none;
}

.pager ol li a:hover,
.pager ol li.current a {
	color:var(--color-mainblue);
}

.pager ol li+li {
	border-left:1px solid #ccc;
}

.next::after {
	border-right:1px solid #ccc;
	left:calc(50% - 6px);
	transform:rotate(45deg);
}

.back:hover::after,
.next:hover::after {
	border-color:var(--color-mainblue);
}

/*================================
Home
================================*/
.home .mv {
    position: relative;
    width: 100%;
}

.home .mv .mv_title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    color: #FFF;
    text-align: center;
    z-index: 1;
}

.home .mv .mv_title .en {
    font-weight: 300;
    font-size: 19px;
}

.home .mv .mv_title .main {
    margin-top: 50px;
    font-weight: 300;
    font-size: 30px;
    letter-spacing: 0.5em;
}

.home .mv .mv_title .sub {
    margin-top: 50px;
    font-weight: 300;
    font-size: 16px;
    line-height: 1.8;
}

.home .mv .img img {
    width: 100%;
    height: auto;
}

.mv .img:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.56);
}

.home .section_normal {
    padding: 170px 0 85px 0;
}

.home .home_about {
    padding-top: 100px;
    padding-bottom: 40px;
}

.home .home_about .flex {
    align-items: flex-start;
    column-gap: 60px;
}

.home .home_about .flex .img {
    width: 50%;
}

.home .home_about .flex .img img {
    width: 100%;
}

.home .home_about .flex .right {
    display: flex;
    flex-direction: column;
    width: 50%;
    row-gap: 47px;
    padding-top: 17px;
    padding-right: calc(50vw - 550px);
    text-align: right;
}

.home .home_about .flex .right .section_title {
    font-size: 32px;
}

.home .home_about .flex .right .text {
    font-size: 16px;
    line-height: 2.5;
}

.home .home_service .service_list {
    margin-top: 140px;
}

.home .home_concept {
    position: relative;
    margin-top: 100px;
    background: url(../img/home/bg_home_concept.webp) no-repeat center center;
    background-size: cover;
    min-height: 599px;
}

.home .home_concept .catch {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    text-align: right;
}

.home .home_concept .catch .title {
    font-size: 39px;
    font-weight: 500;
    line-height: 2.5;
    color: #FFF;
}

.home .home_concept .catch p {
    margin-top: 20px;
    font-size: 16px;
    line-height: 2.5;
    color: #FFF;
}

/*================================
Accommodation
================================*/
.mv + .reserve {
    padding: 20px 20px;
    background: #4E4E50;
}

.acm_intro {
    padding: 100px 20px;
    text-align: center;
}

.acm_intro .text {
    padding-block: 50px;
}

.acm_intro .title {
    font-size: 32px;
    font-weight: 500;
    left: 0.2em;
    line-height: 1.6;
}

.acm_intro .text p {
    margin-top: 50px;
    letter-spacing: 0.1em;
    line-height: 2.5;
}

.acm_intro .link a {
    margin-inline: auto;
}

.acm_important {
    background: rgba(228,225,223,0.5);
}

.acm_important .inner {
    padding: 140px 20px 110px;
}

.acm_important .section_contents {
    margin-top: 100px;
    align-items: center;
    column-gap: 80px;
}

.acm_important .section_contents .text {
    width: 50%;
    text-align: center;
}

.acm_important .section_contents .text ol {
      list-style-type: none;
}

.acm_important .section_contents .text ol li {
    position: relative;
    padding-top: 55px;
    padding-bottom: 40px;
}

.acm_important .section_contents .text ol li:before {
    content: counter(list-item);
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: #4E4E50;
    border-radius: 50%;
    color: #FFF;
    font-size: 21px;
}

.acm_important .section_contents .text .title {
    font-size: 22px;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 2.5;
}

.acm_important .section_contents .text p {
    font-size: 15px;
    letter-spacing: 0.1em;
    line-height: 2.5;
}

.acm_important .section_contents .text .link a {
    margin-inline: auto;
}

.acm_important .section_contents .img {
    width: 50%;
}

.acm_about .inner {
    padding-block: 140px 110px;
}

.acm_about .acm_about_list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
}

.acm_about .acm_about_list .item {
    text-align: center;
}

.acm_about .acm_about_list .item .title {
    font-size: 26px;
    letter-spacing: 0.2em;
    line-height: 1.6;
}

.acm_about .acm_about_list .item .img {
    margin-top: 30px;
}

.acm_about .acm_about_list .item .img img {
    width: 100%;
}

.acm_about .acm_about_list .item .text {
    margin-top: 30px;
}

.acm_about .acm_about_list .item .text p {
    font-size: 15px;
    letter-spacing: 0.1em;
    line-height: 2.5;
}

.acm_about .link a {
    margin-top: 80px;
    margin-inline: auto;
}

.acm_map {
    background: rgba(228,225,223,0.5);
}

.acm_map .inner {
    padding: 140px 0 110px;
}

.acm_map .map {
    margin-top: 80px;
}

.acm_map .map iframe {
    filter: grayscale(100%);
}

.acm_map .acm_list {
    margin-top: 80px;
}

.book-form-inline {
    margin-top: -21px;
}

/*================================
Accommodation Detail
================================*/
.accommodation_detail section {
    padding: 170px 0 85px 0;
}
.accommodation_detail .acm_detail_intro {
    padding-top: 115px;
    text-align: center;
}
.acm_detail_intro .title,
.acm_detail_intro .title {
    margin-top: 70px;
}

.acm_detail_intro .text {
    margin-top: 70px;
}

.acm_detail_intro .text .catch,
.acm_detail_intro .text h3 {
    margin-top: 70px;
    font-size: 23px;
    letter-spacing: 0.1em;
    line-height: 2.5;
    color: var(--c-lightbrown);
}

.acm_detail_intro .text p {
    margin-top: 50px;
    letter-spacing: 0.1em;
    line-height: 2.5;
}

.acm_detail_intro .acm_slider {
    margin-top: 100px;
}

.acm_detail_intro .acm_vv {
    margin-top: 100px;
}

.section_sub_title {
    font-size: 21px;
    line-height: 2.5;
    letter-spacing: 0.1em;
}

.acm_detail_intro .acm_vv iframe {
    margin-top: 30px;
}

.accommodation_detail section.acm_detail_features {
    padding-top: 85px;
    background: rgba(228,225,223,0.5);
}

.acm_detail_features .section_contents {
    margin-top: 50px;
}

.acm_detail_features .acm_detail_features_text p {
    font-size: 20px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.1em;
    text-align: center;
}

.acm_detail_spec .section_contents {
    margin-top: 150px;
}

.acm_detail_spec .floor img {
    width: 100%;
}

.acm_detail_spec .spec {
    margin-top: 120px;
    column-gap: 70px;
    align-items: flex-start;
}

.acm_detail_spec .spec .left {
    flex: 1;
}

.acm_detail_spec .spec .right {
    width: 45%;
}

.acm_detail_spec .spec .text p {
    margin-top: 1.5em;
}

.acm_detail_spec .spec .text p:first-of-type {
    margin-top: 0;
}

.acm_detail_spec .spec .address {
    margin-top: 30px;
    text-align: center;
}

.acm_detail_spec .sns {
    margin-top: 30px;
}

.acm_detail_spec .sns_list {
    display: flex;
    align-items: center;
    column-gap: 20px;
    margin-top: 10px;
}

.sns_list .item a {
    display: flex;
    align-items: center;
    column-gap: 10px;
    color: #000;
}

.acm_detail_guide {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(3, auto);
    row-gap: 40px;
    column-gap: 40px;
    margin-top: 100px;
}

.acm_detail_guide .item .title {
    display: flex;
    align-items: center;
    column-gap: 10px;
    font-size: 18px;
    line-height: 1.6;
}

.acm_detail_guide .item .acm_detail_guide_list {
    display: grid;
    grid-template-columns: 1fr 14em;
    row-gap: 10px;
    margin-top: 20px;
}

.acm_detail_guide .item .acm_detail_guide_list .distance,
.acm_detail_guide .item .acm_detail_guide_list .label {
    font-size: 15px;
}

.accommodation_detail section.acm_detail_reserve {
    padding-top: 100px;
    background: rgba(228,225,223,0.5);
}

.acm_detail_reserve .section_header {
    padding-bottom: 80px;
}

.acm_detail_reserve .section_contents {
    padding: 80px 40px;
    background: #FFF;
}

.acm_detail_reserve_box {
    display: flex;
    align-items: center;
    column-gap: 70px;
}

.acm_detail_reserve_box .acm_detail_reserve_calender {
    width: 40%;
}

.acm_detail_reserve_box .acm_detail_reserve_widget {
    flex: 1;
}

/*================================
Page Common
================================*/
.page section .inner {
    padding-block: 70px;
}

.page .section_header .lead,
.single-accommodation .section_header .lead {
    padding: 0 20px;
    margin-top: 50px;
    font-size: 16px;
    line-height: 2.5;
}

.page .section_contents {
    margin-top: 70px;
}

.shift_box {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    column-gap: 64px;
}

.shift_box:after {
    content: "";
    position: absolute;
    top: 70px;
    left: 15%;
    width: 300vw;
    height: 100%;
    background: #FAFAF7;
    z-index: -1;
}

.shift_box.shift_box_reverse:after {
    content: "";
    position: absolute;
    top: 70px;
    left: inherit;
    right: 15%;
    width: 300vw;
    height: 100%;
    background: #FAFAF7;
    z-index: -1;
}

.shift_box .img {
    position: relative;
    width: 600px;
    z-index: 0;
}

.shift_box.shift_box_reverse .img {
    order: 2;
}

.shift_box .text {
    flex: 1;
    padding: 140px 0 0 0;
}

.shift_box.shift_box_reverse .text {
    order: 1;
}

.shift_box .text .title {
    font-size: 26px;
    line-height: 2.5;
}

.shift_box .text p {
    margin-top: 10px;
    font-size: 15px;
    font-weight: 500;
    line-height: 2.5;
}

.grid_list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    column-gap: 140px;
}

.grid_list .item {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    row-gap: 40px;
}

.grid_list .img img {
    width: 100%;
}

.grid_list .label .title {
    text-align: center;
    font-size: 18px;
    font-weight: 500;
    line-height: 2.5;
}

.grid_list .text .label .text p {
    font-size: 15px;
    line-height: 2.5;
}

.border_list {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.border_list dt,
.border_list dd {
    padding: 30px 20px;
    border-bottom: 1px solid #CCC;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.6;
}

.border_list dt:last-of-type,
.border_list dd:last-of-type {
    border-bottom: none;
}

.border_list .link {
    margin-top: 20px;
}

/*================================
About
================================*/
.about .about_message {
    background: url(../img/about/bg_about_message.webp) no-repeat center center;
    background-size: cover;
}

.about .service_list .item {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    row-gap: 35px;
}

.about .service_list .item .text {
    padding: 0 20px 0;
}

/*================================
Company
================================*/
section.company_intro .inner {
    padding-bottom: 0;
}

.company_intro_box {
    display: flex;
    justify-content: space-between;
    column-gap: 50px;
    padding-block: 100px;
}

.company_intro_box .img {
    display: flex;
    flex-direction: column;
    row-gap: 50px;
    width: 50%;
    max-width: 400px;
}

.company_intro_box .text {
    flex: 1;
}

.company_intro_box .text .company_intro_service {
    margin-block: 20px;
}

.company_overview .border_list {
    grid-template-columns: 10em 1fr;
}

/*================================
Contact
================================*/
.contact_accept {
    margin-top: 20px;
    padding: 30px 20px;
    text-align: center;
}

.contact_accept p {
    font-size: 18px;
    line-height: 1.6;
}

.page section.contact_main .inner {
    padding-top: 0;
}

.contact_main .section_contents {
    margin-top: 0;
}

.contact_main .contact_section_title {
    margin-bottom: 36px;
    padding-bottom: 36px;
    font-size: 20px;
    text-align: center;
    border-bottom: 1px solid #CCC;
}

.contact_box .item {
    display: flex;
    align-items: flex-start;
    column-gap: 40px;
    padding-block: 30px;
}

.contact_box .item .label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: 20px;
    width: 15em;
    font-size: 16px;
}

.contact_box .item .required span {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5px 20px;
    font-size: 16px;
    color: #FFF;
    background: #88765A;
}

.contact_box .item .input {
    flex: 1;
}

.contact_box .item .notes {
    margin-top: 20px;
}

.contact_box input[type="text"],
.contact_box input[type="tel"],
.contact_box input[type="email"],
.contact_box textarea {
    width: 100%;
    padding: 15px 20px;
    background: #F9F9F9;
    border: 1px solid #CCC;
}

.contact_box input[type="file"]::file-selector-button {
    padding: 10px 20px;
    background: #575757;
    color: #FFF;
}

.wpcf7-checkbox {
    display: flex;
    flex-direction: column;
    row-gap: 10px;
}

.wpcf7-list-item {
    margin-left: 0;
    margin-right: 1em;
}

.contact_acceptance {
    display: flex;
    flex-direction: column;
    justify-content: center;
    row-gap: 15px;
    border-top: 1px solid #CCC;
    margin-top: 50px;
    padding-top: 50px;
    text-align: center;
}

.contact_submit {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.contact_submit .wpcf7-submit {
    position: relative;
    width: fit-content;
    margin-inline: auto;
    margin-top: 20px;
    background: #88765A;
}

.contact_submit .wpcf7-submit:before {
    content: "";
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    background: url(../img/common/icon_arrow_white@2x.webp) no-repeat center center;
    width: 7px;
    height: 11px;
    background-size: cover;
    z-index: 1;
}

.contact_submit input[type="submit"] {
    padding: 30px 80px;
    color: #FFF;
    font-size: 18px;
}

.wpcf7-spinner {
    position: absolute;
    bottom: -40px;
    left: 50%;
    transform: translateX(-50%);
}

.wpcf7-not-valid-tip {
    margin-top: 20px;
}

/*================================
Kiyaku
================================*/
.article_main .article_title {
    margin-top: 50px;
}

.article_main p {
    margin-top: 20px;
}

.default_list {
    list-style: disc;
}

.default_list li {
    margin-left: 1.25em;
    line-height: 2.5;
}

.article_main .default_list {
    margin-top: 20px;
}

.article_main .default_list li {
    margin-left: 2.25em;
}

.article_main .link {
    margin-top: 20px;
}

/*================================
Tokushoho
================================*/
.tokushoho .border_list {
    grid-template-columns: 16em 1fr;
}

/*================================
FAQ
================================*/
.faq_group {
    margin-top: 100px;
}

.faq_group .faq_group_label {
    margin-bottom: 40px;
    font-size: 24px;
    font-weight: 500;
    line-height: 2.5;
    text-align: center;
}

.faq_group .faq_list {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 20px;
}

.faq_group .faq_list .question {
    position: relative;
    padding: 35px 30px 35px 135px;
}

.faq_group .faq_list .answer {
    position: relative;
    padding: 30px 30px 30px 135px;
}

.faq_group .faq_list .question:before,
.faq_group .faq_list .answer:before {
    position: absolute;
    left: 30px;
    top: 15px;
    content: "";
    display: flex;
    align-items: center;
    justify-content: center;
    width: 55px;
    height: 55px;
    border-radius: 50%;
    color: #FFF;
    line-height: 1;
}

.faq_group .faq_list .question:before {
    content: "Q";
    top: 20px;
    background: #575757;
}

.faq_group .faq_list .answer:before {
    content: "A";
    top: 25px;
    background: #88765A;
}


.faq_group .faq_list .question {
    background: #ECECEC;
}

.faq_group .link {
    margin-top: 20px;
}

/*================================
Service
================================*/
.service_intro .service_list {
    margin-top: 200px;
    row-gap: 120px;
    column-gap: 70px;
}

.service_intro .service_list .item {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 4;
    row-gap: 35px;
    padding: 0;
    border: none;
    background: #FFF;
}

.service_intro .service_list .text {
    padding: 0 20px 0;
}

.service_intro .service_list .text p {
    margin-top: 40px;
}

.service_intro .service_list .service_list_features {
    position: relative;
    margin-top: 15px;
    padding: 50px 20px 40px;
    border: 1px solid #CCC;
    text-align: center;
}

.service_intro .service_list .service_list_features .label {
    position: absolute;
    top: -19px;
    left: 50%;
    transform: translateX(-50%);
    width: fit-content;
    padding: 5px 40px;
    border: 1px solid #CCC;
    background: #FFF;
    font-size: 16px;
}

.service_intro .service_list .service_list_features .default_list {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.service_intro .service_list .service_list_features .default_list li {
    /* width: fit-content;
    margin-inline: auto; */
}

.service .about_message {
    background: url(../img/service/bg_service_message.webp) no-repeat center center;
    background-size: cover;
}

/*================================
Service detail Common
================================*/
.service .mv .img:after {
    display: none;
}

.section_header_bg {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 250px;
}

.section_header_bg .section_title {
    color: #FFF;
}

.service_detail_intro .inner:has(.section_header_bg) {
    padding-top: 0;
}

.service_detail_intro .catch {
    margin-bottom: 40px;
    font-size: 23px;
    line-height: 2.5;
    text-align: center;
}

.service_detail_intro_list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    column-gap: 10px;
    row-gap: 50px;
}

.service_detail_intro_list img {
    width: 100%;
}

.service_detail_intro .lead {
    margin-top: 50px;
    text-align: center;
}

.service_detail_point_list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    column-gap: 70px;
    row-gap: 50px;
}

.service_detail_point_list .item {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    row-gap: 35px;
    padding: 0;
}

.service_detail_point_list .item .title {
    text-align: center;
    font-size: 18px;
    font-weight: 500;
    align-self: center;
}

.service_detail_point_list .item p {
    text-align: center;
}

.service_detail_point_list img {
    width: 100%;
}

.service_detail_facility_list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    column-gap: 15px;
    row-gap: 15px;
}

.service_detail_facility_list img {
    width: 100%;
}

.service_detail_circle_list {
    display: grid;
    grid: auto-flow auto / repeat(3, 1fr);
    justify-content: center;
    justify-items: center;
    column-gap: 15px;
    row-gap: 50px;
}

.service_detail_circle_list .item {
    text-align: center;
}

.service_detail_circle_list .item .label {
    margin-top: 30px;
}

.service_detail_square_list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    column-gap: 15px;
    row-gap: 15px;
}

.service_detail_square_list .item {
    display: flex;
    align-items: center;
    justify-items: center;
    justify-content: center;
    flex-direction: column;
    height: 172px;
    text-align: center;
    background: #000;
}

.service_detail_square_list .item .label {
    font-size: 20px;
    color: #FFF;
}

.service_detail_square_list .item p {
    position: relative;
    margin-top: 30px;
    font-size: 18px;
    color: #FFF;
}

.service_detail_square_list .item p:before {
    content: "";
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 190px;
    height: 1px;
    background: #FFF;
}

.service_detail_flow_list_type1 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(159px, 1fr));
    justify-content: space-between;
    column-gap: 74px;
}

.service_detail_flow_list_type1 .item {
    position: relative;
    text-align: center;
}

.service_detail_flow_list_type1 .item:after {
    content: "";
    position: absolute;
    top: 70px;
    right: -48px;
    width: 14px;
    height: 24px;
    background: url(../img/common/icon_flow_list_type1@2x.webp) no-repeat center center;
    background-size: cover;
}

.service_detail_flow_list_type1 .item:last-of-type:after {
    display: none;
}

.service_detail_flow_list_type1 .item .label {
    margin-top: 24px;
    font-size: 18px;
    line-height: 2.5;
}

.service_detail_flow_list_type1 .item .label small {
    display: block;
    font-size: 14px;
    line-height: 1.8;
}

.service_detail_flow_list_type2 {
}

.service_detail_flow_list_type2 .item {
    position: relative;
    padding: 40px 0;
}

.service_detail_flow_list_type2 .item:after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 15px;
    transform: translateX(-50%);
    width: 25px;
    height: 13px;
    background: url(../img/common/icon_arrow_down_gray@2x.webp) no-repeat center center;
    background-size: cover;
}

.service_detail_flow_list_type2 .item:last-of-type::after {
    display: none;
}

.service_detail_flow_list_type2 .item_inner {
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: 70px;
    width: 100%;
    max-width: 904px;
    margin-inline: auto;
    padding-inline: 20px;
}

.service_detail_flow_list_type2 .item .img {
    width: 145px;
}

.service_detail_flow_list_type2 .item .text {
    flex: 1;
}

.service_detail_flow_list_type2 .item .text .label {
    font-size: 24px;
}

.service_detail_flow_list_type2 .item .text .label small {
    font-size: 16px;
}

.service_detail_flow_list_type2 .item .text p {
    margin-top: 10px;
    line-height: 1.8;
}

.service_detail_flow_list_type2 .item:nth-of-type(odd) {
    background: rgba(136,118,90,0.09);
}

.service_detail_flow_list_type2 .item:nth-of-type(even) {
    background: rgba(136,118,90,0.32);
}

.service_detail_contact .section_contents {
    text-align: center;
}

.service_detail_contact .section_contents p {
    text-align: center;
    font-size: 18px;
    font-weight: 500;
}

.service_detail_contact .section_contents .link_service a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 300px;
    height: 81px;
    margin-inline: auto;
    margin-top: 50px;
    background: #000;
    color: #FFF;
    font-size: 20px;
}

/*================================
Sharehouse
================================*/
.sharehouse .mv .img:after {
    display: none;
}

.sharehouse .section_header_bg {
    background: #75ADB2;
}

.sharehouse .service_detail_intro .catch {
    color: #75ADB2;
}

.service_detail_facility p {
    margin-top: 50px;
    text-align: center;
}

.sharehouse .service_detail_square_list .item {
    background: #75ADB2;
}

.service_detail_agreement .notes {
    margin-top: 50px;
    text-align: center;
}

.sharehouse .service_detail_contact .section_contents .link_service a {
    background: #75ADB2;
}

.sharehouse .about_message {
    background: url(../img/sharehouse/bg_sharehouse_message.webp) no-repeat center center;
    background-size: cover;
}

/*================================
Linen
================================*/
.linen .mv .img:after {
    display: none;
}

.linen .section_header_bg {
    background: #88765A;
}

.linen .service_detail_intro .catch {
    color: #88765A;
}

.linen .about_message {
    background: url(../img/linen/bg_linen_message.webp) no-repeat center center;
    background-size: cover;
}

.service_detail_linen_price_wrap {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 80px;
}

.service_detail_linen_price_box .title {
    font-size: 26px;
    font-weight: 500;
    line-height: 2.5;
    text-align: center;
    margin-bottom: 30px;
}

.service_detail_linen_price_set_list {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 5px;
}

.service_detail_linen_price_set_list .item {
    display: grid;
    grid-template-columns: 1fr 25%;
    column-gap: 5px;
    row-gap: 5px;
}

.service_detail_linen_price_set_list .item .name,
.service_detail_linen_price_set_list .item .price {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 102px;
    font-size: 16px;
    text-align: center;
    color: #FFF;
}

.service_detail_linen_price_set_list .item .name {
    background: #88765A;
}

.service_detail_linen_price_set_list .item .price {
    background: #333333;
}

.price_list_table {
    width: 100%;
    border-top: 1px solid #CCC;
    border-collapse: collapse;
}

.price_list_table th,
.price_list_table td {
    padding: 20px 20px;
    border-bottom: 1px solid #CCC;
    text-align: left;
}

.service_detail_linen_price_free {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    row-gap: 0;
    height: 172px;
    background: #88765A;
}

.service_detail_linen_price_free p {
    color: #FFF;
    font-size: 18px;
    font-weight: 500;
    vertical-align: bottom;
}

.service_detail_linen_price_free strong {
    display: inline-block;
    padding-inline: 0.5em;
    font-size: 30px;
    letter-spacing: 0.1em;
}

.service_detail_linen_price_box .notes {
    margin-top: 30px;
    font-size: 14px;
    text-align: center;
}

.linen .service_detail_agreement .service_detail_square_list {
    grid-template-columns: repeat(auto-fit, minmax(265px, 1fr));
    column-gap: 10px;
}

.linen .service_detail_agreement .service_detail_square_list .item {
    height: 265px;
    background: #88765A;
}

/*================================
Owner
================================*/
.owner .mv .img:after {
    display: none;
}

.owner .section_header_bg {
    background: #4E4E50;
}

.owner .service_detail_intro .catch {
    color: #4E4E50;
}

.owner .about_message {
    background: url(../img/owner/bg_owner_message.webp) no-repeat center center;
    background-size: cover;
}

.service_detail_reason_list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
    column-gap: 70px;
    row-gap: 60px;
}

.service_detail_reason_list .item {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    row-gap: 15px;
}

.service_detail_reason_list .item .title {
    font-size: 18px;
    align-self: center;
    text-align: center;
}

.service_detail_reason_list .item p {
    text-align: center;
}

.service_detail_reason_list img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.service_detail_services_list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
    column-gap: 10px;
    row-gap: 10px;
}

.service_detail_services_list .item {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 164px;
}

.service_detail_services_list .item .label {
    text-align: center;
    color: #FFF;
    font-size: 18px;
    letter-spacing: 0.05em;
}

.service_detail_services_list .item .label small {
    font-size: 14px;
}

.service_detail_services_list .item:nth-of-type(even) {
    background: #88765A;
}

.service_detail_services_list .item:nth-of-type(odd) {
    background: #333333;
}

.owner .service_detail_contact .inner {
    padding-top: 0;
}


/*================================
Partner
================================*/
.partner .mv .img:after {
    display: none;
}

.partner .section_header_bg {
    background: #CDAA5E;
}

.partner .service_detail_intro .catch {
    color: #CDAA5E;
}

.partner .about_message {
    background: url(../img/partner/bg_partner_message.webp) no-repeat center center;
    background-size: cover;
}

.service_detail_plus_list {
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: 88px;
}

.service_detail_plus_list .item {
    position: relative;
    text-align: center;
}

.service_detail_plus_list .item:after {
    content: "";
    position: absolute;
    top: 150px;
    right: -58px;
    display: block;
    width: 29px;
    height: 28px;
    background: url(../img/common/icon_plus_gray@2x.webp) no-repeat center center;
    background-size: cover;
}

.service_detail_plus_list .item:last-of-type:after {
    display: none;
}

.service_detail_plus_list .item .label {
    margin-top: 20px;
    font-size: 18px;
    text-align: center;
}

.service_detail_partner .lead {
    margin-top: 50px;
    text-align: center;
}

.partner .service_detail_contact .inner {
    padding-top: 0;
}

.partner .service_detail_model .inner {
    padding-top: 0;
}

.partner_model_example {
    position: relative;
    width: 100%;
    max-width: 884px;
    margin-inline: auto;
    padding: 64px 20px 46px;
    text-align: center;
    background: #CDAA5E;
    color: #FFF;
}

.partner_model_example p {
    color: #FFF;
    font-size: 17px;
}

.partner_model_example .label {
    position: absolute;
    top: -18px;
    left: 50%;
    transform: translateX(-50%);
    padding: 5px 70px;
    color: #CDAA5E;
    border: 2px solid #CDAA5E;
    background: #FFF;
}

.service_detail_model .lead {
    margin-top: 50px;
    text-align: center;
}

/*================================
EC
================================*/
.ec .mv .img:after {
    display: none;
}

.ec .section_header_bg {
    background: #9C3237;
}

.ec .service_detail_intro .catch {
    color: #9C3237;
}


/*================================
Blog
================================*/
.archive section .inner,
.category section .inner,
.blog section .inner,
.single:not(.single-accommodation) section .inner {
    padding-block: 120px;
}

.archive .section_contents,
.category .section_contents,
.blog .section_contents,
.single:not(.single-accommodation) .section_contents {
    margin-top: 80px;
}

.blog_list {
    margin-top: 120px;
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 20px;
}

.blog_list .item {
    display: flex;
    align-items: center;
    color: #000;
    column-gap: 20px;
}

.blog_list .item .date {
    width: 8em;
}

.blog_list .item .cat {
    width: 8em;
}

.cat .cat_link {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 7px 20px;
    background: #000;
    color: #FFF;
    font-size: 12px;
}

.cat .cat_link.info {
    background: #4E4E50;
}
.cat .cat_link.campaign {
    background: #835643;
}
.cat .cat_link.story {
    background: #EAB449;
}
.cat .cat_link.casestudy {
    background: #96877E;
}
.cat .cat_link.press {
    background: #66B5BC;
}


.blog_list .item .title {
    flex: 1;
}

.blog_list .item .title a {
    color: #000;
}

.pager {
    display: flex;
    align-items: center;
    justify-content: center;
	margin:100px auto 0;
	padding:32px 0 160px 0;
	border-top:1px solid #ccc;
}

.pager_inner {
	display:-webkit-flex;
	display:flex;
	-webkit-flex-flow:row wrap;
	flex-flow:row wrap;
	-webkit-justify-content:center;
	justify-content:center;
}

.back,
.next {
	position:relative;
	box-sizing:border-box;
	margin:10px 0;
	border:1px solid #999;
	width:22px;
	height:22px;
	text-indent:-9999px;
}

.back a,
.next a {
	display:block;
	width:100%;
	height:100%;
	text-indent:-9999px;
}

.back::after,
.next::after {
	position:absolute;
	top:calc(50% - 4px);
	display:block;
	box-sizing:border-box;
	border-top:1px solid #ccc;
	width:8px;
	height:8px;
	content:"";
	pointer-events: none;
}

.back::after {
	border-left:1px solid #ccc;
	left:calc(50% - 2px);
	transform:rotate(315deg);
}

.pager ol {
	display:-webkit-inline-flex;
	display:inline-flex;
	-webkit-flex-flow:row wrap;
	flex-flow:row wrap;
	-webkit-justify-content:center;
	justify-content:center;
	margin:0 10px;
	list-style-type:none;
}

.pager ol li {
	margin:12px 0;
	/* padding:0 20px; */
	line-height:18px;
	font-size:18px;
}

.pager ol li a {
	display: block;
	color:#000;
	text-decoration:none;
    padding: 0 20px;
}

.pager ol li a:hover,
.pager ol li.current a {
	color:#006699;
}

.pager ol li+li {
	border-left:1px solid #ccc;
}

.next::after {
	border-right:1px solid #ccc;
	left:calc(50% - 6px);
	transform:rotate(45deg);
}

.back:hover::after,
.next:hover::after {
	border-color:#006699;
}

.blog_cat_list {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 10px;
}

.blog_cat_list li a {
    padding: 10px 20px;
    border: 1px solid #999;
    background: #FAFAF7;
    color: #393939;
}

.blog_cat_list li.current a {
    background: #E6E6E6;
}

.blog_detail {
    margin-top: 120px;
}

.blog_meta {
    display: flex;
    align-items: center;
    column-gap: 20px;
}

.blog_meta .date {
    font-size: 19px;
}

.blog_main .title {
    margin-top: 20px;
    font-size: 30px;
    line-height: 2.5;
}

.blog_content p,
.blog_content img,
.blog_content h2,
.blog_content h3,
.blog_content h4 {
    margin-top: 30px;
}

.blog_content h2 {
    margin-top: 40px;
    line-height: 2.5;
}

.blog_content p {
    line-height: 1.6;
}

.blog_content .size-full img {
    width: 100%;
    height: auto;
}


.topics_nav {
    margin-top: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: 60px;
}

.topics_nav .list {
    display: flex;
    justify-content: center;
    align-items: center;
}

.topics_nav .list a {
    position: relative;
    padding-left: 22px;
    color: #000;
}

.topics_nav a {
    font-size: 16px;
    line-height: 1;
}

.topics_back,
.topics_next {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 10px;
}

.topics_back:before,
.topics_next:after {
    content: "";
    display: inline-block;
	position:relative;
	box-sizing:border-box;
	border:1px solid #999;
	width:22px;
	height:22px;
	text-indent:-9999px;
}

.topics_nav .list a:after {
	position:absolute;
	top:calc(50% - 4px);
    left: 0;
	display:block;
	box-sizing:border-box;
	border-top:1px solid #CCCCCC;
	width:8px;
	height:8px;
	content:"";
	pointer-events: none;
	border-left:1px solid #CCCCCC;
    left: 0;
	transform:rotate(135deg);
}

.topics_back a,
.topics_next a {
	display:block;
    color: #000;
}

.topics_back a::after,
.topics_next a::after {
	position:absolute;
	top:calc(50% - 4px);
	display:block;
	box-sizing:border-box;
	border-top:1px solid #ccc;
	width:8px;
	height:8px;
	content:"";
	pointer-events: none;
}

.topics_back a::after {
	border-left:1px solid #ccc;
    left: 9px;
	transform:rotate(315deg);
}

.topics_next a::after {
	border-left:1px solid #ccc;
    right: 9px;
	transform:rotate(135deg);
}

/*================================
Footer
================================*/
.about_message {
    position: relative;
    min-height: 529px;
    background-size: cover;
}

.about_message .inner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    text-align: center;
    width: 100%;
}

.about_message .section_contents {
    margin-top: 0;
}

.about_message .inner .title {
    font-size: 31px;
    line-height: 1.6;
    letter-spacing: 0.5em;
    color: #FFF;
}

.about_message .inner .message {
    margin-top: 30px;
    line-height: 2.5;
    letter-spacing: 0.1em;
    color: #FFF;
}

.brand_message {
    position: relative;
    min-height: 529px;
    background: url(../img/common/bg_footer_message.webp) no-repeat center center;
    background-size: cover;
}

.brand_message .inner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    text-align: center;
}

.brand_message .inner .title {
    margin-top: 30px;
    font-size: 31px;
    line-height: 1.6;
    letter-spacing: 0.5em;
    color: #FFF;
}

.brand_message .inner .message {
    margin-top: 30px;
    line-height: 2.5;
    letter-spacing: 0.1em;
    color: #FFF;
}

.footer {
    padding-block: 100px 120px;
    text-align: center;
}

.footer .copy {
    margin-top: 20px;
    font-size: 10px;
    letter-spacing: 0.05em;
}
