@charset "UTF-8";

/*====== Element =====*/
body,
button, input, textarea {
    font-size: 15px;
    font-weight: 500;
    letter-spacing: .05em;
    line-height: 2.125;
}

h2, .h1 { font-size: 36px; font-size: min(9.6vw, 50px); line-height: 1.24; }

h3, .h2 { font-size: 28px; font-size: min(7.47vw, 38px); line-height: 1.32; }

h4, .h3 { font-size: 21px; font-size: min(5.6vw, 30px); line-height: 1.55; }

h5, .h4 { font-size: 18px; font-size: min(4.8vw, 24px); line-height: 1.769; }

h6, .h5 { font-size: 15px; font-size: min(4vw, 18px); line-height: 1.769; }

/*====== Common Style =====*/
.for_pc { display: none !important; }

.sp-tleft { text-align: left; }
.sp-tcenter { text-align: center; }
.sp-tright { text-align: right; }

/* margin */
.m-mtp_s { margin-top: 35px !important; }
.m-mtp_m { margin-top: 65px !important; }
.m-mtp_l { margin-top: 100px !important; }

.m-mbt_s { margin-bottom: 35px !important; }
.m-mbt_m { margin-bottom: 65px !important; }
.m-mbt_l { margin-bottom: 100px !important; }

/* section */
.m-sec01 {
    padding: 60px 0;
}

/* para */
.m-para * + * {
    margin-top: 2.125em;
}

/* lead */
.m-lead {
    margin-bottom: 45px;
}

.m-lead.is-center {
    text-align: center;
}

.m-lead__ttl {
    font-size: 26px;
    letter-spacing: .05em;
    line-height: 1.588;
    margin: 0;
}

.m-lead__txt {
    font-size: 16px;
    letter-spacing: .05em;
    line-height: 2;
    margin: 25px 0 0;
}

/* label - Main Text + Sub Text */
.m-lb01 {
    margin-bottom: 50px;
}

.m-lb01.is-center {
    text-align: center;
}

.m-lb01__en {
    font-size: 44px;
    letter-spacing: .05em;
    line-height: 1;
    margin: 0;
}

.m-lb01__ja {
    font-size: 15px;
    letter-spacing: .05em;
    line-height: 1.2;
    margin: 10px 0 0;
}

/* label - left border */
.m-lb02 {
    font-size: 22px;
    letter-spacing: .05em;
    line-height: 1.308;
    padding-left: 14px;
    margin: 0 0 20px;
    position: relative;
}

.m-lb02::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #887a70;
}

/* catch */
.m-catch01 {
    font-size: 25px;
    letter-spacing: .05em;
    line-height: 1.588;
    margin-bottom: 20px;
}

/* link - list */
.m-link-list__item {
    position: relative;
}

.m-link-list__item + .m-link-list__item {
    margin-top: -1px;
}

.m-link-list__item:first-child::before,
.m-link-list__item::after,
.m-link-list__a::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
}

.m-link-list__item:first-child::before {
    top: 0;
}

.m-link-list__item::after,
.m-link-list__a::after {
    bottom: 0;
}

.m-link-list__item:first-child::before,
.m-link-list__item::after {
    background: #c8cfc7;
}

.m-link-list__a {
    display: block;
    color: inherit;
    text-decoration: none;
    position: relative;
    z-index: 1;
}

.m-link-list__a:hover {
    opacity: 1;
}

.m-link-list__a::after {
    background: #887a70;
    width: 0;
    -webkit-transition: width .6s;
    transition: width .6s;
}

.m-link-list__a:hover::after {
    width: 38.7%;
}

.m-link-list__arrow {
    position: absolute;
    right: 0;
    top: 50%;
    width: 40px;
    height: 20px;
    margin-top: -10px;
    border: 1px solid rgba(136,122,112,.3);
    border-radius: 10px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    overflow: hidden;
    font-size: 12px;
    color: transparent;
}

.m-link-list__a:hover .m-link-list__arrow {
    border-color: #887a70;
    background: #887a70;
}

.m-link-list__arrow::before,
.m-link-list__arrow::after {
    content: "\f061";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    -webkit-transition: -webkit-transform 0.4s ease;
    transition: -webkit-transform 0.4s ease;
    transition: transform 0.4s ease;
    transition: transform 0.4s ease, -webkit-transform 0.4s ease;
    color: #887a70;
}

.m-link-list__a:hover .m-link-list__arrow::before,
.m-link-list__a:hover .m-link-list__arrow::after {
    color: #fff;
}

.m-link-list__a:hover .m-link-list__arrow::before {
    -webkit-transform: translateX(40px);
            transform: translateX(40px);
}

.m-link-list__arrow::after {
    -webkit-transform: translateX(-40px);
            transform: translateX(-40px);
}

.m-link-list__a:hover .m-link-list__arrow::after {
    -webkit-transform: translateX(0);
            transform: translateX(0);
}

/* link - arrow */
.m-link01 {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.813em;
    color: #1a1a1a;
    line-height: 1.1;
    text-decoration: none;
}

.m-link01.is-white {
    color: #fff;
}

.m-link01__arrow {
    width: 3.333em;
    height: 1.667em;
    border: 1px solid rgba(136,122,112,.3);
    border-radius: 0.833em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    position: relative;
    overflow: hidden;
    font-size: 0.75em;
    color: transparent;
}

.m-link01:not(.is-anime):hover .m-link01__arrow,
.m-link01:not(.is-anime):hover .m-link01__arrow::before,
.m-link01:not(.is-anime):hover .m-link01__arrow::after {
    -webkit-transition: .7s;
    transition: .7s;
}

.m-link01:hover .m-link01__arrow {
    background: #887a70;
}

.is-white:not(:hover) .m-link01__arrow {
    border-color: #fff;
}

.m-link01__arrow::before,
.m-link01__arrow::after {
    content: "\f061";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    -webkit-transition: -webkit-transform 0.4s ease;
    transition: -webkit-transform 0.4s ease;
    transition: transform 0.4s ease;
    transition: transform 0.4s ease, -webkit-transform 0.4s ease;
    color: #1a1a1a;
}

.m-link01:hover .m-link01__arrow::before,
.m-link01:hover .m-link01__arrow::after {
    color: #fff;
}

.m-link01__arrow.is-blank::before,
.m-link01__arrow.is-blank::after {
    content: "\f35d";
}

.is-white .m-link01__arrow::before,
.is-white .m-link01__arrow::after {
    color: #fff;
}

.m-link01.is-anime:hover .m-link01__arrow::before {
    -webkit-transform: translateX(40px);
            transform: translateX(40px);
}

.m-link01__arrow::after {
    -webkit-transform: translateX(-40px);
            transform: translateX(-40px);
}

.m-link01.is-anime:hover .m-link01__arrow::after {
    -webkit-transform: translateX(0);
            transform: translateX(0);
}

/* link - arrow border */
.m-link02 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.813em;
    border-radius: 3em;
    border: solid 1px rgba(136,122,112,.3);
    color: #1a1a1a;
    line-height: 1.1;
    text-decoration: none;
    padding: 1.563em 1.875em;
    -webkit-transition: .7s;
    transition: .7s;
}

.m-link02:hover {
    background: #887a70;
    color: #fff;
    opacity: 1;
}

.m-link02.is-white {
    border-color: #fff;
    color: #fff;
}

.m-link02.is-white:hover {
    background: #fff;
    color: #1a1a1a;
}

.m-link02__arrow {
    width: 3.333em;
    height: 1.667em;
    background: #887a70;
    border-radius: 0.833em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    position: relative;
    overflow: hidden;
    font-size: 0.75em;
    color: transparent;
}

.m-link02:hover .m-link02__arrow {
    background: #fff;
}

.m-link02:not(.is-anime):hover .m-link02__arrow,
.m-link02:not(.is-anime):hover .m-link02__arrow::before,
.m-link02:not(.is-anime):hover .m-link02__arrow::after {
    -webkit-transition: .7s;
    transition: .7s;
}

.is-white .m-link02__arrow {
    background: #fff;
}

.m-link02.is-white:hover .m-link02__arrow {
    background: #887a70;
}

.m-link02__arrow::before,
.m-link02__arrow::after {
    content: "\f061";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    -webkit-transition: -webkit-transform 0.4s ease;
    transition: -webkit-transform 0.4s ease;
    transition: transform 0.4s ease;
    transition: transform 0.4s ease, -webkit-transform 0.4s ease;
    color: #fff;
}

.m-link02:hover .m-link02__arrow::before,
.m-link02:hover .m-link02__arrow::after {
    color: #887a70;
}

.is-white .m-link02__arrow::before,
.is-white .m-link02__arrow::after {
    color: #887a70;
}

.m-link02.is-white:hover .m-link02__arrow::before,
.m-link02.is-white:hover .m-link02__arrow::after {
    color: #fff;
}

.m-link02.is-anime:hover .m-link02__arrow::before {
    -webkit-transform: translateX(40px);
            transform: translateX(40px);
}

.m-link02__arrow::after {
    -webkit-transform: translateX(-40px);
            transform: translateX(-40px);
}

.m-link02.is-anime:hover .m-link02__arrow::after {
    -webkit-transform: translateX(0);
            transform: translateX(0);
}

/* Column Box - left right */
.m-col-lr {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
}

.m-col-lr + .m-col-lr {
    margin-top: 40px;
}

.m-col-lr.is-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
}

.m-col-lr__l,
.m-col-lr__r {
    -ms-flex-preferred-size: 48.166%;
        flex-basis: 48.166%;
}

.m-col-lr.sp-clear {
    display: block;
}

.m-col-lr.sp-clear > * + * {
    margin-top: 15px;
}

/* table - border */
.m-table01 {
    width: 100%;
}

.m-table01 * {
    letter-spacing: normal;
}

.m-table01 tr,
.m-table01 .m-table__tr {
    border-bottom: solid 1px #c8cfc7;
}

.m-table01 th,
.m-table01 td,
.m-table01 .m-table__th,
.m-table01 .m-table__td {
    vertical-align: top;
    padding: 22px 0;
}

.m-table01 th,
.m-table01 .m-table__th {
    color: #887a70;
    font-weight: 700;
}

.m-table01 td,
.m-table01 .m-table__td {
    font-weight: 500;
}

/* map */
.m-map {
    position: relative;
    height: 0;
    padding-top: 80%;
}
.m-map iframe {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}


/*====== header =====*/
.anchorBlock {
    padding-top: 64px;
    margin-top: -64px;
}

.site-logo {
    display: block;
    background: 50% 50% no-repeat;
    background-size: 140px;
    padding: 5px;
}

.site-logo img {
    width: 140px;
    -webkit-transition: opacity .4s;
    transition: opacity .4s;
}

.is-first:not(.is-gnvOpen) .site-logo img {
    opacity: 0;
}

.site-header {
    position: fixed;
    z-index: 100;
    left: 0;
    top: 0;
    width: 100%;
    background: #fff;
    -webkit-transition: .4s;
    transition: .4s;
}

.is-first:not(.is-gnvOpen) .site-header {
    background: transparent;
    color: #fff;
}

.site-header__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 64px;
    padding-right: 90px;
}

.site-header__logo {
    padding: 0 10px;
    margin: 0;
}


/*====== toggle Navi =====*/
.toggle-button {
    position: fixed;
    z-index: 200;
    right: 0;
    top: 0;
    display: block;
    border: none;
    background: transparent;
    width: 86px;
    height: 64px;
    padding: 0;
    cursor: pointer;
}

.toggle-button span {
    position: absolute;
    left: 50%;
    top: 50%;
    display: block;
    width: 50px;
    height: 1px;
    margin: 0 0 0 -25px;
    background: #1a1a1a;
    font-size: 0;
    -webkit-transition: .3s;
    transition: .3s;
}

.toggle-button span::before,
.toggle-button span::after {
    content: "";
    position: absolute;
    right: 0;
    width: 100%;
    height: 100%;
    background: #1a1a1a;
    -webkit-transition: .3s;
    transition: .3s;
}

.toggle-button span::before {
    top: -8px;
}

.toggle-button span::after {
    top: 8px;
}

.is-first:not(.is-gnvOpen) .toggle-button span,
.is-first:not(.is-gnvOpen) .toggle-button  span::before,
.is-first:not(.is-gnvOpen) .toggle-button  span::after {
    background: #fff;
}

.toggle-nav {
    position: fixed;
    z-index: 110;
    left: 0;
    top: 0;
    background: #fff;
    width: 100%;
    height: 100%;
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0;
    -webkit-transition: opacity 1s, -webkit-transform 0;
    transition: opacity 1s, -webkit-transform 0;
    transition: transform 0, opacity 1s;
    transition: transform 0, opacity 1s, -webkit-transform 0;
}

.toggle-nav__inner {
    width: 100%;
    height: 100%;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.toggle-nav .site-header__logo {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 64px;
}

.toggle-nav__l {
    padding: 60px 10% 80px;
}

.toggle-nav .gnv {
    font-size: 18px;
    letter-spacing: .05em;
    line-height: 1.3;
}

.toggle-nav .gnv li {
    margin-bottom: 30px;
}

.toggle-nav__sns {
    font-size: 14px;
    letter-spacing: .05em;
    line-height: 1.2;
    margin-top: 70px;
}

.toggle-nav__sns li + li {
    margin-top: 20px;
}

/* menu Open */
.is-gnvOpen { overflow: hidden; }

.is-gnvOpen .toggle-button span {
    background: transparent;
}

.is-gnvOpen .toggle-button span::before,
.is-gnvOpen .toggle-button span::after {
    top: 0;
}

.is-gnvOpen .toggle-button span::before {
    -webkit-transform: rotate(-15deg) translateY(0px);
            transform: rotate(-15deg) translateY(0px);
}

.is-gnvOpen .toggle-button span::after {
    -webkit-transform: rotate(15deg) translateY(0px);
            transform: rotate(15deg) translateY(0px);
}

.is-gnvOpen .toggle-nav {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
}


/*====== page header =====*/
.page-kv {
    position: relative;
}

.page-kv__img {
    position: relative;
}

.page-kv__img::before {
    content: "";
    display: block;
    position: absolute;
    inset: 0;
    background: #000;
    opacity: .35;
}

.page-kv__img img {
    width: 100%;
    height: 100vh;
    -o-object-fit: cover;
       object-fit: cover;
}

.page-kv__over {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: absolute;
    inset: 0;
    color: #fff;
    padding: 40px 0 0;
}

.page-kv__txt {
    width: 100%;
    padding: 0 8%;
}

.page-kv__enTtl {
    font-size: 64px;
    font-size: min(17.07vw, 88px);
    letter-spacing: normal;
    line-height: .8;
    margin: 0;
}

.page-kv__ttl {
    font-size: 16px;
    font-size: min(4.27vw, 20px);
    letter-spacing: .05em;
    line-height: 1.5;
    margin: 25px 0 0;
}

.page-kv__ttl::before {
    content: "【";
}

.page-kv__ttl::after {
    content: "】";
}

/* content */
.page-content {
    padding: 60px 0 80px;
}

/* breadcrumbs */
.breadcrumbs {
    padding: 12px 0;
    color: #1B8DCB;
    font-size: 10px;
    font-weight: 500;
    text-align: right;
}

.breadcrumbs li {
    display: inline-block;
    line-height: 1;
}

.breadcrumbs a {
    color: #333333;
    font-weight: 700;
    text-decoration: none;
}

.breadcrumbs .fa-chevron-right {
    margin: 0 .5em;
    color: #333333;
    font-size: .75em;
}


/*====== footer =====*/
/* contact */
.site-cv {
    background: url("../image/footer/ft_bg.jpg") 50% 0 no-repeat;
    background-size: 380%;
    color: #fff;
    padding: 55px 0 50px
}

.site-cv__btns {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-line-pack: center;
        align-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 30px;
    max-width: 380px;
    margin: 60px auto 0;
}

/* footer */
.site-footer {
    padding: 55px 0 40px;
    background: #e7e3dd;
}

.site-footer .m-inner_m {
    max-width: 340px;
}

.site-footer__l {
    margin-bottom: 30px;
}

.site-footer__c {
    margin-bottom: 25px;
}

.site-footer__r {
    margin-bottom: 45px;
}

.site-footer__logo {
    margin-bottom: 20px;
}

.site-footer__logo img {
    width: 210px;
}

.site-footer__info {
    font-size: 14px;
    line-height: 1.625;
}

.site-footer__info p + p {
    margin-top: 5px;
}

.site-footer__mainNav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 1em;
    max-width: 20.5em;
}

.fnv1 {
    font-size: 14px;
}

.fnv1__item {
    margin-bottom: 10px;
}

.fnv2 {
    font-size: 16px;
    letter-spacing: .05em;
    line-height: 1.1;
}

.fnv2__item:first-child::before,
.fnv2__item::after,
.fnv2__a::after {
    height: 2px;
}

.fnv2__item:first-child::before,
.fnv2__item::after {
    background: rgba(136,122,112,.3);
}

.fnv2__a {
    padding: 24px 0;
}

.fnv2__a:hover::after {
    width: 48.1%;
}

.fnv2__a .m-link-list__arrow {
    border-color: #887a70;
}

.site-footer__subNav {
    margin: 7px 0 0;
}

.site-footer__sns {
    margin-top: 22px;
}

.sns-item {
    font-size: 14px;
    letter-spacing: .05em;
    line-height: 1.3;
}

.sns-item + .sns-item {
    margin-top: 2em;
}

.sns-item__ttl {
    margin-bottom: 12px;
}

.sns-item__link {
    margin-bottom: 7px;
}

.sns-item__link i {
    color: #887a70;
}

.site-copy {
    padding: 20px 0;
    border-top: solid 1px rgba(26,26,26,.3);
    background: #e7e3dd;
    text-align: center;
}

.copyright {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .05em;
    line-height: 1;
}

/* accordion (js) */
.accordion__item + .accordion__item {
    margin-top: 15px;
}

.accordion__lb {
    position: relative;
    padding: .86em .86em;
    background: #e9ecef;
    font-size: 1.071em;
}

.accordion__lb::before {
    content: "\f055";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    top: 50%;
    right: 15px;
    -webkit-transform: translate(0, -50%);
            transform: translate(0, -50%);
}

.accordion__lb.is-active::before {
    content: "\f056";
}

.accordion__cont {
    display: none;
    padding: 1.2em 0;
}

.accordion__item:last-child .accordion__cont {
    padding-bottom: 0;
}

/* switch tab (js) */
.tabBox__tabBlock {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 2px;
    border-bottom: solid 1px #222;
}

.tabBox__tab {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 50px;
    padding: .3em .86em;
    background: #e9ecef;
    font-size: 1.071em;
    cursor: pointer;
}

.tabBox__tab.is-active {
    background: #333;
    color: #fff;
}

.tabBox__cont {
    display: none;
    padding: 1.7em 0 0;
}

.tabBox__cont.is-active {
    display: block;
}
