html {
  font-size: calc(100vw / 1920 * 10);
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

@media only screen and (min-width: 900px) {
    .sp-only {
        display: none;
    }
    a[href^="tel:"],
    .ac-menu {
        pointer-events: none;
    }
    
    .anchor {
        scroll-margin-top: 8.5rem;
    }
}

@media only screen and (max-width: 899px) {
  html {
    font-size: calc(100vw / 780 * 10);
  }
  .pc-only {
    display: none;
  }
  .anchor {
    scroll-margin-top: 13rem;
  }
}

body {
  font-family: noto-sans-cjk-jp, sans-serif;
  font-weight: 400;
  font-style: normal; 
  letter-spacing: .05em;
  -webkit-text-size-adjust: 100%;
  position: relative;
  overflow-x: clip;
  margin: 0;
  padding: 0;
  color: #263040;
}

h1,
h2,
h3,
h4,
h5,
p {
  background: none;
  margin: 0;
  padding: 0;
  font-weight: normal;
}

.f-min {
  font-family: shippori-mincho, sans-serif;
  font-weight: 400;
  font-style: normal;
}
.f-rb {
  font-family: roboto, sans-serif;
  font-weight: 400;
  font-style: normal;
}
.f-ga {
  font-family: garamond-premier-pro, serif;
  font-weight: 400;
  font-style: normal;  
}
.f-aw {
  font-family: "aw-conqueror-didot", serif;
  font-weight: 400;
}

ul, ol, dl, dt, dd {
  margin: 0;
  padding: 0;
}

ul li, ol li {
  list-style: none;
}

a {
  color: #263040;
  text-decoration: none;
  transition: .4s;
}

figure {
    margin: 0;
}

img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

.vertical {
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
}

.fadein {
    opacity: 0;
    transition: 2s;
}
.fadein.is-show {
    opacity: 1;
}

*, *:before,
*:after {
  box-sizing: border-box;
}

*:focus {
  outline: none;
}

#top .page-only,
#page .top-only,
.grecaptcha-badge {
    display: none;
}

/* header */
.menu-btn {
    width: 8.2rem;
    height: 8.2rem;
    transition: all 0.4s ease;
    position: absolute;
    right: 0;
    z-index: 13;
    cursor: pointer;
}
.menu-btn {
    top: 0;
    background-color: #8A9EA1;
}
.menu-btn > span {
    width: 3rem;
    height: 1px;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    transition: all 0.4s ease;
}
.menu-btn > span {
    background-color: #fff;
}
.menu-btn > span:nth-of-type(1) {
    top: 3rem;
}
.menu-btn > span:nth-of-type(2) {
    top: 4.2rem;
}
.menu-btn > span:nth-of-type(3) {
    top: 5.4rem;
}

/* header.fix */
.header .nav-inner {
    opacity: 0;
}
.header .nav-inner,
.header.fix .header-top,
.fix-only {
    display: none;
}
.header-top {
    display: grid;
    align-items: center;
    background-color: #85868C;
    color: #fff;
    position: relative;
}
.header.fix .menu-btn {
    background-color: #333;
}
#page .header.openNav .menu-btn,
#page .header.fix .menu-btn {
    top: 0;
    background-color: #2B2B30;
}
#page .header.openNav .menu-btn > span,
#page .header.fix .menu-btn > span {
    background-color: #fff;
}
@media only screen and (max-width: 899px) {
    .header-top {
        padding-left: 3.2rem;
    }
    #top .header-top {
        height: 8.2rem;
    }
    .header-top:after {
        content: "";
        width: 1px;
        position: absolute;
        right: 8.2rem;
    }
    #top .header-top:after {
        height: 100%;
        background-color: #fff;
        top: 0;
    }
    #page .header-top {
        height: 7rem;
    }
    #page .header-top:after {
        background-color: #2B2B30;
        top: 7rem;
        height: 8rem;
    }
    .header-top .top-txt {
        font-size: 2rem;
        line-height: 1;
    }
    #page .header-top .top-txt {
        text-align: center;
    }
    #top .header-inner .header-logo {
        width: 40rem;
        margin: 10rem auto 11rem;
        text-align: center;
    }
    #page .header-inner {
        height: 8rem;
        border-bottom: 1px solid #2B2B30;
    }
    #page .header-inner .header-logo {
        width: 26rem;
        padding: 1rem 0 1.8rem 3.2rem;
    }
    .header.fix {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 10;
    }
    .header-top .sns-menu,
    .header.fix .header-logo {
        display: none;
    }
    #page .header.fix .header-inner {
        border-bottom: none;
    }
    .header.fix .menu-btn {
        width: 10rem;
        height: 10rem;
    }
    .header.fix .menu-btn > span {
        width: 4.2rem;
    }
    .header.fix .menu-btn > span:nth-of-type(1) {
        top: 3.2rem;
    }
    .header.fix .menu-btn > span:nth-of-type(2) {
        top: 4.6rem;
    }
    .header.fix .menu-btn > span:nth-of-type(3) {
        top: 6rem;
    }
}
@media only screen and (min-width: 900px) {
    .header-top {
        height: max(5rem, 50px);
    }
    .header-top .top-txt {
        text-align: center;
        font-size: max(1.2rem,12px);
    }
    .header-top .sns-menu,
    .header-top .info-txt {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
    }
    .header-top .info-txt {
        right: 4.2rem;
        text-align: right;
        font-size: min(1.4rem,12px);
    }
    .header-top .info-txt a {
        color: #fff;
    }
    .header-top .sns-menu {
        left: 3.8rem;
        display: flex;
        align-items: center;
        column-gap: 3.8rem;
    }
    .header-top .sns-menu li a {
        display: block;
        width: max(2rem, 20px);
    }
    .header .menu-btn,
    .header.fix .nav-inner {
        display: none;
    }
    #top .header.fix,
    #page .header .fix {
        display: block;
    }
}

/* header.openNav */
.menu-btn.openNav > span {
    background-color: #fff;
}
.menu-btn.openNav > span:nth-of-type(1),
.header.fix .menu-btn.openNav > span:nth-of-type(1){
    transform: translateX(-45%) rotate(-45deg);
    top: 50%;
}
.menu-btn.openNav > span:nth-of-type(2),
.header.fix .menu-btn.openNav > span:nth-of-type(2){
    transform: translateX(-45%) rotate(45deg);
    top: 50%;
}
.menu-btn.openNav > span:nth-of-type(3) {
    display: none;
}
.header.openNav .nav-inner {
    position: fixed;  
    top: 0;
    right: 0;
    opacity: 1;
    color: #fff;
    padding: 14rem 0 8rem;
}
.nav-inner .header-nav-logo {
    width: 26rem;
    margin: 0 auto 14rem;
}
.menu-wrap .menu-ttl {
    border-bottom: 1px solid #fff;
    padding-bottom: 1.6rem;
    margin-bottom: 2rem;
    font-size: 3.2rem;
}
.nav-inner .header-menu li a {
    display: block;
    color: #fff;
    font-size: 2.8rem;
}
@media only screen and (max-width: 899px) {
    .header.openNav .nav-inner {
        display: block;
        width: 50%;
        height: 100%;
        z-index: 10;
        overflow-y: scroll;
        overflow-x: hidden;
        background-color: rgba(138,158,161,.9);
    }
    .nav-inner .header-menu {
        display: grid;
        text-align: center;
        row-gap: 6rem;
        margin-bottom: 18rem;
    }
    .nav-inner .sns-menu {
        width: 4rem;
        margin: 0 auto;
        display: grid;
        row-gap: 6rem;
    }
}
@media only screen and (min-width: 900px) {
    .header.fix .menu-btn {
        position: fixed;
        z-index: 10;
        display: block;
        width: 4.16vw;
        height: 4.16vw;
    }
    .header.fix .menu-btn > span {
        width: 1.71vw;
    }
    .header.fix .menu-btn > span:nth-of-type(1) {
        top: 1.45vw;
    }
    .header.fix .menu-btn > span:nth-of-type(2) {
        top: 2.03vw;
    }
    .header.fix .menu-btn > span:nth-of-type(3) {
        top: 2.6vw;
    }
    .header.fix .menu-btn.openNav > span:nth-of-type(1), 
    .header.fix .menu-btn.openNav > span:nth-of-type(2) {
        top: 50%;
    }
    .header.fix.openNav .nav-inner {
        width: max(36rem,360px);
        height: 100vh;
        padding: 11rem 0 7rem;
        z-index: 9;
        display: block;
        background: rgba(51,51,51,.75);
        overflow-y: scroll;
    }
    .nav-inner .header-nav-logo {
        width: max(24rem,240px);
        margin: 0 auto 13rem;
    }
    .nav-inner .header-menu {
        display: grid;
        text-align: center;
        row-gap: max(4rem, 40px);
        margin-bottom: 17rem;
    }
    .nav-inner .header-menu li a {
        font-size: max(1.6rem,16px);
        display: inline-block
    }
    .nav-inner .header-menu li a:hover {
        text-decoration: underline;
    }
    .nav-inner .sns-menu {
        display: flex;
        align-items: center;
        justify-content: center;
        column-gap: max(3.7rem, 37px);
    }
    .nav-inner .sns-menu li a {
        width: max(2rem, 20px);
    }
}

/* gloval-menu */
@media only screen and (min-width: 900px) {
    #top .header .header-inner {
        width: 70.31%;
        margin: auto;
        display: flex;
        flex-direction: row-reverse;
        justify-content: space-between;
        align-items: center;
        padding: max(6rem, 60px) 0;
    }
    #top .header-inner .header-logo {
        width: 35rem;
        margin: auto;  /* ナビなし */
    }
    #top .gloval-menu {
        display: grid;
        grid-auto-flow: column;
        grid-template-rows: repeat(4,1fr);
        row-gap: 2.7rem;
        column-gap: max(9.2rem, 92px);
    }
    #top .gloval-menu li a {
        display: inline-block;
        font-size: max(1.4rem,14px);
        font-weight: 500;
        padding: 1rem 0 .5rem;
        border-bottom: 1px solid transparent;
    }
    #page .header-inner {
        width: 150rem;
        margin: auto;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        padding: 3rem 0 4.8rem;
        border-bottom: 1px solid #2B2B30;
    }
    #page .header-inner .header-logo {
        width: 23rem;
    }
    #page .global-nav {
        position: relative;
        padding-top: 4.3rem;
    }
    #page .gloval-menu {
        display: flex;
        column-gap: 3.2rem;
    }
    #page .gloval-menu li a {
        font-size: max(1.4rem, 10px);
        font-weight: 600;
    }
}

/* footer */
.footer-top {
    width: 70rem;
    margin: 4rem auto;
}
.footer-top iframe {
    width: 100%;
    height: 56rem;
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: grayscale(100%);
    vertical-align: bottom;
}
.footer-top .access-wrap {
    background-color: #F5F5F5;
    padding: 10rem 0 14rem;
    text-align: center;
}
.footer-logo {
    display: block;
    width: 36rem;
    margin: 0 auto 12rem;
}
.footer-top .txt-wrap {
    display: grid;
    row-gap: 5rem;
}
.footer-top .address strong {
    font-size: 3.2rem;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 3rem;
    display: block;
}
.footer-top .access-nav {
    display: grid;
    row-gap: 2.8rem;
}
.footer-top .access-nav li a {
    display: grid;
    width: 56rem;
    line-height: 10rem;
    background-color: #fff;
    border-radius: 5.5rem;
    place-content: center;
    margin: auto;
    color: initial;
}
.footer-top .access-nav li a span {
    position: relative;
    padding-left: 7.2rem;
    font-size: 2.8rem;
}
.footer-top .access-nav li a span:before {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
}
.footer-top .access-nav li.train a span:before {
    width: 3.2rem;
    height: 3.6rem;
    background: url(../img/common/icon-train.svg) 0 / contain no-repeat;     
}
.footer-top .access-nav li.car a span:before {
    width: 3.6rem;
    height: 3.2rem;
    background: url(../img/common/icon-car.svg) 0 / contain no-repeat;     
}
@media only screen and (max-width: 899px) {
    .footer-top .address.txt {
        font-size: 2.4rem;
        line-height: 2;
    }
}
@media only screen and (min-width: 900px) {
    .footer-top {
        width: 180rem;
        margin: 0 auto 6.5rem;
    }
    .footer-top iframe {
        height: 35rem;
    }
    .footer-logo {
        width: 25rem;
        margin: 0 auto 6.9rem;
    }
    .footer-top .access-wrap {
        padding: 6rem 0 10rem;
    }
    .footer-top .txt-wrap {
        max-width: 1200px;
        margin: auto;
        font-size: max(1.4rem,14px);
        align-items: center;
        /* grid-template-columns: 1fr 1fr; */
        justify-content: center;  /* ナビなし */
    }
    .footer-top .txt-wrap .tel {
        position: relative;
        padding-left: max(4.6rem,46px);
    }
    .footer-top .txt-wrap .tel:before {
        content: "";
        width: max(2.3rem,23px);
        height: 1px;
        background-color: #333333;
        transform: rotate(-45deg) translateY(-50%);
        position: absolute;
        top: 50%;
        left: max(1rem, 10px);
    }
    .footer-top .address {
        text-align: left;
        /* padding-right: 4rem; */
        text-align: center;  /* ナビなし */
        /* width: max-content;
        margin-left: auto; */
    }
    .footer-top .address strong {
        font-size: max(1.8rem,18px);
        margin-bottom: 1.5rem;
    }
    .footer-top .access-nav {
        grid-template-columns: repeat(2, 1fr);
        column-gap: 1.5rem;
        width: 60rem;
    }
    .footer-top .access-nav li a {
        width: auto;
    }
    .footer-top .access-nav li a {
        line-height: max(5rem,50px);
    }
    .footer-top .access-nav li a:hover {
        background-color: #333333;
        color: #fff;
    }
    .footer-top .access-nav li a span {
        padding-left: max(3.6rem,36px);
        font-size: max(1.4rem,14px);
    }
    .footer-top .access-nav li.train a span:before {
        width: max(1.6rem,16px);
        height: max(1.8rem,18px);
    }
    .footer-top .access-nav li.car a span:before {
        width: max(1.8rem,18px);
        height: max(1.6rem,16px);
    }
    .footer-top .access-nav li.train a:hover span:before {
        background: url(../img/common/icon-train-w.svg) 0 / contain no-repeat;    
    }
    .footer-top .access-nav li.car a:hover span:before {
        background: url(../img/common/icon-car-w.svg) 0 / contain no-repeat;    
    }
}
@media only screen and (min-width: 900px) and (max-width: 1140px) {
    .footer-top .txt-wrap {
        padding: 0 2%;
        grid-template-columns: 1fr;   
    }
    .footer-top .address {
        margin: auto;
        text-align: center;
        padding-right: 0;
    }
    .footer-top .access-nav {
        width: auto;
    }
}

.footer-btm {
    background-color: #85868C;
    color: #fff;
    padding: 20rem 0 4rem;
}
.footer-btm .inner {
    width: 60rem;
    margin: auto;
}
.footer-menu li a {
    display: block;
    font-size: 2.4rem;
    color: #fff;
    line-height: 3.2;
    letter-spacing: 0;
}
.footer .sns-menu li a {
    font-size: 2.8rem;
    color: #fff;
}
.footer .sns-menu li img {
    vertical-align: middle;
    margin-right: 4rem;
}
.footer .sns-menu li.x img {
    width: 4.8rem;
}
.footer .sns-menu li:not(.x) img {
    width: 5rem;
}
.footer-btm small {
    text-align: center;
    font-size: 2.2rem;
    display: block;
}
#pagetop {
    right: 2rem;
    cursor: pointer;
}
#pagetop img {
    width: 14rem;
}
@media only screen and (max-width: 899px) {
    .footer-btm .menu-wrap {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        height: 70rem;
        margin-bottom: 18rem;
    }
    .footer .sns-menu {
        width: 22.8rem;
        margin: 0 auto 18rem;
        display: grid;
        row-gap: 7rem;
    }
}
@media only screen and (min-width: 900px) {
    .footer-btm {
        padding: 17rem 0 4rem;
    }
    .footer-btm .inner {
        width: 120rem;
        min-width: 800px;
        margin: auto;
    }
    .footer-btm nav {
        display: grid;
        margin-bottom: 17rem;
        align-items: flex-start;
        /* grid-template-columns: 77% 23%;
        justify-content: space-between; */
        justify-content: center;  /* ナビなし */
    }
    .footer-btm .menu-wrap {
        display: grid;
        grid-template-columns: repeat(3,1fr);
    }
    .footer-menu li a,
    .footer .sns-menu li a {
        font-size: max(1.4rem,14px);
    }
    .footer-menu li a:hover {
        text-decoration: underline;
    }
    .footer .sns-menu {
        display: grid;
        row-gap: max(2.7rem,27px);
        padding-top: 1rem;
    }
    .footer .sns-menu li.x img {
        width: max(2.4rem,24px);
    }
    .footer .sns-menu li:not(.x) img {
        width: max(2.5rem,25px);
    }
    .footer-btm small {
        font-size: max(1.2rem,12px);
    }
    #pagetop img {
        width: 90px;
    }
}

/* ttl */
.main .top-txt {
    font-size: 4rem;
    font-weight: 600;
    line-height: 1.7;
}
.txt {
    font-size: 2.8rem;
    line-height: 2;
    letter-spacing: .1em;
}
.txt + .txt {
    margin-top: 4rem;
}
@media only screen and (min-width: 900px) {
    .main .top-txt {
        font-size: 3rem;
    }
    .txt {
        font-size: max(1.4rem,12px);
        line-height: 2;
    }
    .txt + .txt {
        margin-top: 2rem;
    }
}

/* link */
.arrow-btn {
    display: grid;
    width: 60rem;
    background: url(../img/common/arrow.svg) center right 4rem / 6rem 8px no-repeat;
    border: 1px solid #333;
    border-radius: 5rem;
    padding: 3rem 10rem 3rem 4rem;
    font-size: 2.8rem;
    line-height: 1;
    letter-spacing: .1em;
}
.arrow-btn.l2 {
    line-height: 1.5;
    border-radius: 7.2rem;
}
.arrow-b {
    position: relative;
    display: block;
}
.arrow-b:after {
    content: "";
    width: 6rem;
    height: 8px;
    position: absolute;
    background: url(../img/common/arrow.svg) 0 / contain no-repeat;
}

@media only screen and (min-width: 900px) {
    .arrow-btn {
        width: max(35rem, 350px);
        font-size: max(1.4rem, 14px);
        padding: max(2rem, 20px) max(5.4rem, 54px) max(2rem, 20px) max(2.4rem, 24px);
        background-position: center right max(2.4rem, 24px);
        background-size: max(3rem, 30px) 4px;
        border-radius: max(2.7rem, 27px);
    }
    .arrow-btn:hover {
        background-image: url(../img/common/arrow-w.svg);
        background-color: #333333;
        color: #fff;
    }
    .arrow-btn.l2 {
        width: max(46rem, 460px);
    }
    .arrow-b:after {
        width: max(3rem, 30px);
        height: max(.4rem, 4px);
    }
}