.sp390 {
  display: none
}
@media screen and (min-width: 1921px) {
  #gnavi {
    max-width: 1920px;
    left: 50%;
    transform: translateX(-50%)
  }
  header, .s02_dl, .box_slider {
    margin: 0 auto;
    max-width: 1920px
  }
}
@media screen and (min-width: 751px) {
  #lightboxOverlay, #lightbox {
    min-width: var(--content-width) !important;
    width: 100% !important
  }
  .sp {
    display: none !important
  }
  a:hover {
    text-decoration: none
  }
  .to-top a:hover, .s01_post p a:hover {
    opacity: .7
  }
  .list-nav .has-nav:hover .sub-nav-wrap {
    opacity: 1;
    visibility: visible
  }
  .list-nav .sub-nav a:hover, .s01_post p a:hover, .f_menu dl dd a:hover {
    color: #425b51
  }
  .list-nav .sub-nav a:hover:before, .f_menu dl dd a:hover:before {
    background-color: #425b51
  }
  .list-nav .has-nav:hover .en:after, .list-nav .nav-link:hover .en:after, .list-nav .nav-item.active .en:after {
    opacity: 1
  }
  .scroll a:hover {
    opacity: .5
  }
  .btn01 a:not(.no_hover):hover {
    background: #222;
    color: #fff
  }
  .btn01 a:not(.no_hover):hover:after {
    background: #fff
  }
  .s01_list li a:hover:after {
    width: 100%;
    height: 100%;
    clip-path: none;
    z-index: -1
  }
  .btn_tel.btn_fix {
    display: none;
  }
}
@media screen and (min-width: 751px)and (max-width: 1800px) {
  header.fixed #gnavi .inner:before {
    width: calc(100% - 350px)
  }
  header.fixed #gnavi .btn_tel {
    width: 350px
  }
  header.fixed #gnavi .btn_tel .num {
    font-size: 22px
  }
  header.fixed #gnavi .btn_tel .num:after {
    width: 100%
  }
  header.fixed #gnavi .btn_tel .time {
    font-size: 13px
  }
  header.fixed #gnavi .btn_tel a {
    font-size: 14px
  }
  header.fixed #gnavi .btn_tel a > span:first-child {
    margin-right: 0
  }
  header.fixed #gnavi .list-nav {
    padding-right: 20px
  }
  .box_slider .slider_img {
    height: 100vh;
  }
  .box_slider .main_title:after {
    width: 110%;
    height: 150%
  }
  .box_slider .f_big {
    font-size: 7vw !important
  }
  .box_slider .f_small {
    font-size: 3vw !important
  }
  .box_slider .slider01, .box_slider .slider02, .box_slider .slider03, .box_slider .slider04 {
    background-size: cover;
  }
  .s01_tit {
    margin-left: 0
  }
  .s01_tit:before {
    right: 110%
  }
  .s01_post {
    width: 1000px;
    margin-right: 0
  }
  .s01_box01 .inner {
    justify-content: space-between
  }
  .s01_box02 .inner {
    width: 1240px
  }
  .s01_list li {
    width: 248px
  }
  .s01_list li a {
    height: 260px
  }
  .s01_list li .title {
    padding-top: 30px;
    font-size: 20px
  }
  .s01_box02 h3 {
    font-size: 100px
  }
  #sec02 .box_tit h3 {
    font-size: 140px;
    top: -68px;
    margin-bottom: -50px
  }
  .s02_dl .s02_tit01 {
    font-size: 34px
  }
  .s03_box {
    width: 96%
  }
  .s03_border:before {
    background-size: 100% auto;
    width: 16vw;
    height: 23vw;
    right: 20px
  }
  .s05_cont {
    width: 600px;
    margin-left: 0;
    padding: 80px 80px 80px 50px
  }
  .s05_cont h4 {
    font-size: 30px
  }
  #sec05 .box_tit {
    margin-right: 0
  }
  #sec05 h3 {
    font-size: 100px
  }
}
@media screen and (min-width: 751px)and (max-width: 1560px) {
  header.fixed #gnavi .inner:before {
    width: calc(100% - 280px)
  }
  header.fixed #gnavi .btn_tel {
    width: 280px
  }
  .s03_list li {
    width: 200px;
    height: 200px;
    padding: 10px
  }
  .s03_list li span {
    background-size: 90% auto;
    font-size: 20px
  }
}
@media screen and (min-width: 751px)and (max-width: 1460px) {
  .box_slider {
    margin: 0
  }
  header.fixed .list-nav .nav-item {
    padding: 0 27px
  }
  .s02_dl dl dd {
    padding-top: 0px
  }
  .list-nav .sub-nav-wrap {
    left: 135%
  }
}
@media screen and (min-width: 751px)and (max-width: 1300px) {
  .list-nav .nav-link .jp {
    font-size: 17px
  }
  header.fixed .list-nav .nav-item {
    padding: 0 20px
  }
  .s01_tit {
    margin-left: 60px
  }
  .s01_post {
    width: 900px;
    margin-right: 30px;
    margin-left: 0
  }
  .s01_list {
    padding-left: 20px
  }
  .s01_list li {
    width: 240px
  }
  .s01_list li a {
    height: 250px
  }
  .s01_box02 .box_tit {
    padding-right: 30px
  }
  .s05_img {
    width: 430px;
    margin-left: -50px
  }
  #sec05 .box_tit {
    padding-right: 40px;
    margin-left: 0;
    margin-right: 0
  }
  .s03_border:before {
    width: 15.5vw;
    height: 22vw;
    right: 10px
  }
  .s05_cont {
    margin-left: 20px
  }
  footer .inner {
    width: 1200px
  }
}
@media screen and (min-width: 1px)and (max-width: 750px) {
  p, blockquote, th, td, pre, address, li, dt, dd {
    font-size: 160%
  }
  #wrapper {
    min-width: unset !important
  }
  .pc {
    display: none !important
  }
  * {
    column-gap: 0px !important;
    row-gap: 0px !important
  }
  .inner {
    width: 100%;
    padding-left: 3%;
    padding-right: 3%
  }
  #menu-toggle {
    display: block
  }
  #gnavi {
    --offset: 70px;
    position: fixed;
    z-index: 50;
    top: var(--offset) !important;
    left: 0;
    width: 100%;
    height: calc(100% - var(--offset));
    padding-bottom: 100px;
    overflow: auto;
    opacity: 0;
    visibility: hidden;
    transition: all .3s;
    background: rgba(255, 255, 255, .95)
  }
  #gnavi .inner {
    width: 100%;
    height: auto;
    padding: 0 3%;
    flex-direction: column;
    align-items: center
  }
  #gnavi .inner:after {
    display: none
  }
  #gnavi .inner .btn_tel {
    display: block !important;
    text-align: center;
    width: 100%;
    max-width: 380px;
    margin: 0 auto
  }
  #gnavi .inner .btn_tel .num {
    font-size: 34px
  }
  #gnavi .inner .btn_tel .num:after {
    width: 110%
  }
  body.open-nav #gnavi {
    opacity: 1;
    visibility: visible
  }
  .list-nav {
    display: block;
    width: 100% !important;
    padding: 0 !important;
    margin-bottom: 30px
  }
  .list-nav .nav-item {
    padding: 0 !important;
    border-bottom: solid 1px #fff
  }
  .list-nav .nav-item:before, .list-nav .nav-item:after {
    display: none
  }
  .list-nav .nav-item .nav-link {
    padding: 10px 15px !important;
    position: relative;
    align-items: flex-start;
    border-bottom: #ccc 1px solid
  }
  .list-nav .has-nav .nav-link:after {
    content: "";
    width: 0;
    height: 0;
    border-top: 6px solid rgba(0, 0, 0, 0);
    border-bottom: 6px solid rgba(0, 0, 0, 0);
    border-left: 10px solid #315b4a;
    position: absolute;
    z-index: 1;
    right: 15px;
    top: calc(50% - 5px);
    transform: rotate(90deg);
    display: block
  }
  .list-nav .has-nav .nav-link.open:after {
    transform: rotate(270deg)
  }
  .list-nav .sub-nav-wrap {
    display: none
  }
  .list-nav .sub-nav-wrap {
    padding: 0 !important;
    position: relative;
    left: 0;
    top: 0;
    width: 100%;
    transform: none;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transition: none
  }
  .list-nav .sub-nav {
    padding: 20px
  }
  .list-nav .sub-nav a {
    font-size: 14px
  }
  .list-nav .sub-nav a:before {
    top: 1px
  }
  header {
    padding: 0;
    z-index: 10
  }
  body.open-nav #head_top {
    background: rgba(0, 0, 0, .8)
  }
  #head_top {
    position: fixed;
    height: 70px;
    transition: .2s all
  }
  #head_top.bg {
    background: rgba(0, 0, 0, .8)
  }
  #head_top .btn_tel {
    display: none
  }
  #head_top h1 {
    margin-bottom: 0
  }
  #head_top h1 a {
    flex-shrink: inherit;
    width: 200px
  }
  #head_top h1 span {
    font-size: 12px;
    padding: 0 0 0 10px;
    margin-left: -8px
  }
  #top_info .main_cirle {
    justify-content: center;
    width: 100%;
    padding-left: 9%
  }
  #top_info .main_cirle li {
    border-color: #e7e7e7
  }
  .main_cirle .item .f_size2 {
    font-size: 14px;
  }
  #top_info .main_cirle .scroll {
    margin: 0 0 0 auto;
    position: absolute;
    right: 0;
    bottom: -1vw
  }
  #top_info .main_cirle .scroll a {
    font-size: 12px;
    background-size: 10px auto;
    height: 90px;
    margin-bottom: 0
  }
  .box_slider {
    overflow: hidden;
    height: 92vw
  }
  .box_slider .slider_img {
    height: 92vw
  }
  .box_slider .slider01 {
    background: url("../images/slider01_sp.jpg") center top no-repeat;
    background-size: cover;
  }
  .box_slider .slider02 {
    background: url("../images/slider02_sp.jpg") center top no-repeat;
    background-size: cover;
  }
  .box_slider .slider03 {
    background: url("../images/slider03_sp.jpg") center top no-repeat;
    background-size: cover;
  }
  .box_slider .slider04 {
    background: url("../images/slider04_sp.jpg") center top no-repeat;
    background-size: cover;
  }
  .box_slider .main_title:after {
    display: none
  }
  .box_slider .main_title {
    bottom: 50%;
    left: 50%;
    transform: translate(-50%, 50%);
    background: rgba(34, 34, 34, .5);
    width: 70%;
    height: 24vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0 !important;
    margin: 0;
    text-align: center
  }
  .box_slider .main_title .f_big {
    font-size: 9vw !important
  }
  .box_slider .main_title .f_small {
    font-size: 4vw !important
  }
  .box_slider .main_slider.cus02 .f_small {
    margin-top: 2vw
  }
  .main_cirle .item {
    width: 140px;
    height: 140px;
    font-size: 18px
  }
  #sec01 {
    padding: 20px 0 70px
  }
  #sec01 .inner {
    flex-direction: column;
    align-items: center
  }
  .s01_tit:before {
    display: none
  }
  .s01_post {
    width: 100%;
    margin: 0;
    height: 200px
  }
  .s01_post p {
    font-size: 16px;
    padding-bottom: 10px;
    margin-bottom: 15px
  }
  .s01_post p .title {
    font-size: 14px
  }
  .s01_tit {
    margin: 0 0 30px
  }
  .s01_tit h3 {
    font-size: 40px;
    text-align: center
  }
  .s01_tit .btn01 {
    margin: 0 auto;
    width: 180px
  }
  .s01_box02 {
    padding-top: 50px
  }
  .s01_box02 .box_tit {
    flex-direction: column;
    align-items: center;
    margin-bottom: 40px
  }
  .s01_box02 h3, .s01_box02 .sub_tit3 {
    -webkit-writing-mode: initial;
    -moz-writing-mode: initial;
    -ms-writing-mode: initial;
    writing-mode: initial;
    -webkit-text-orientation: initial;
    -moz-text-orientation: initial;
    -ms-text-orientation: initial;
    text-orientation: inherit
  }
  .s01_box02 h3 {
    margin: 0 0 20px;
    font-size: 40px
  }
  .s01_box02 .sub_tit3 {
    font-size: 24px
  }
  .box_tit h3 {
    margin: 0 0 20px !important;
    font-size: 40px !important
  }
  .box_tit .sub_tit3 {
    font-size: 24px !important;
    line-height: 1.4em
  }
  .s01_box02 .inner:before {
    top: -80px;
    right: auto;
    left: 60%
  }
  .s01_box02 .inner:after {
    bottom: -20px
  }
  .s01_list li {
    width: calc(50% - 10px);
    margin: 5px !important
  }
  .s01_list li a {
    height: auto;
    padding: 3vw 3vw 4vw 4vw
  }
  .s01_list li a:before {
    width: 24vw;
    height: 22vw;
    background-size: 100% auto
  }
  .s01_list li a:after {
    width: 10vw;
    height: 10vw
  }
  .s01_list li .img {
    width: 15vw
  }
  .s01_list li .title {
    font-size: 4.5vw;
    background-size: 18vw auto;
    padding-top: 5vw;
    letter-spacing: .1em
  }
  .s01_list li .title i {
    font-size: 2.8vw;
    margin-top: 1vw
  }
  #sec02 {
    padding: 0
  }
  #sec02 .box_tit {
    margin-bottom: 40px
  }
  #sec02 .box_tit h3 {
    top: -20px;
    margin-bottom: 0 !important
  }
  #sec02 .box_tit .sub_tit3 span {
    width: 260px;
    height: 40px;
    font-size: 18px
  }
  #sec02 .box_tit .sub_tit3 span:before, #sec02 .box_tit .sub_tit3 span:after {
    width: 40px;
    left: -20px
  }
  #sec02 .box_tit .sub_tit3 span:after {
    left: auto;
    right: -20px
  }
  .s02_dl dl {
    flex-direction: column !important;
    background-size: 100% auto !important;
    background-position: center bottom !important;
    width: 107%;
    margin: 0 -3.5%;
    padding: 0 25px 60px
  }
  .s02_dl dl:last-child {
    padding-bottom: 50px
  }
  .s02_dl dl dt {
    margin-bottom: 20px
  }
  .s02_dl dl dd {
    padding: 0 !important;
    width: 100%;
    margin: 0
  }
  .s02_dl dl dd p {
    font-size: 16px;
    letter-spacing: 0
  }
  .s02_dl .s02_tit01 {
    font-size: 24px
  }
  .s02_dl .s02_tit01 .en {
    font-size: 24px
  }
  .s02_dl .s02_tit01 .num {
    font-size: 80px
  }
  .s02_dl dl.dl01 dt:before, .s02_dl dl.dl03 dt:before {
    right: 10px;
    bottom: 10px
  }
  .s02_dl dl.dl02 dt:before, .s02_dl dl.dl04 dt:before {
    left: 10px;
    bottom: 10px
  }
  .s02_dl dl.dl01 dt:after, .s02_dl dl.dl03 dt:after {
    height: calc(100% - 20px);
    left: -10px;
    top: 10px
  }
  .s02_dl dl.dl02 dt:after, .s02_dl dl.dl04 dt:after {
    height: calc(100% - 20px);
    right: -10px;
    top: 10px
  }
  .s02_dl dl dt span {
    right: -15px;
    width: 260px;
    height: 36px;
    font-size: 22px
  }
  .s02_dl dl:nth-child(odd) dt span {
    left: -15px;
    right: auto
  }
  #sec03 {
    padding: 0 3% 50px
  }
  .s03_box {
    padding: 10px
  }
  .s03_box:before {
    height: 60px
  }
  .s03_box:after {
    background-size: 300px auto
  }
  .s03_border {
    padding: 30px 0
  }
  .s03_border:after {
    border-width: 2px
  }
  .s03_border:before {
    background-size: 100% auto;
    width: 28vw;
    height: 40vw;
    bottom: -10px;
    right: 0
  }
  .s03_border .sub_tit3 {
    font-size: 20px !important
  }
  .s03_list li {
    width: 35vw;
    height: 35vw;
    padding: 1vw;
    margin: 1vw !important
  }
  .s03_list li span {
    font-size: 4vw;
    background-size: 90% auto
  }
  .s04_box01 {
    padding: 50px 0 40px;
    background-attachment: inherit
  }
  .s04_box01:before {
    background-size: 40% auto, 40% auto
  }
  .s04_box01 .box_tit h3 {
    top: -20px;
    margin-bottom: 0 !important
  }
  .s04_box01 .box_tit h3:before, .s04_box01 .box_tit h3:after {
    width: calc(50% - 118px)
  }
  .s04_box01 .box_tit .sub_tit3 {
    padding: 0 20px
  }
  .s04_box02 {
    height: 250px;
    background-size: auto 100%;
    margin: 80px 0 50px
  }
  .s04_box02 .s04_tit {
    top: -20px;
    padding: 0
  }
  .s04_box02 .s04_tit span {
    font-size: 24px;
    width: 34px
  }
  #sec05 {
    padding: 40px 0 50px
  }
  #sec05 .inner {
    flex-direction: column
  }
  #sec05 .box_tit {
    margin: 0 auto 30px;
    flex-direction: column;
    align-items: center;
    text-align: center
  }
  #sec05 h3, #sec05 .sub_tit3 {
    -webkit-writing-mode: initial;
    -moz-writing-mode: initial;
    -ms-writing-mode: initial;
    writing-mode: initial;
    -webkit-text-orientation: initial;
    -moz-text-orientation: initial;
    -ms-text-orientation: initial;
    text-orientation: inherit
  }
  .s05_img {
    top: 0;
    margin: 0 auto 80px;
    max-width: 350px
  }
  .s05_img .box_name {
    bottom: -50px;
    right: -20px;
    width: 180px;
    height: 134px
  }
  .s05_img .box_name:before {
    background-size: 100% auto
  }
  .s05_img .box_name span {
    font-size: 14px
  }
  .s05_img .box_name .jp {
    font-size: 24px
  }
  .s05_img .box_name .en {
    font-size: 14px
  }
  .s05_cont {
    width: 100%;
    margin: 0;
    padding: 30px 20px 20px;
    background: url(../images/s05_bg01.png) left 5px top 5px no-repeat, url(../images/s05_bg02.png) right 5px bottom 5px no-repeat #fff;
    background-size: 50px auto, 50px auto
  }
  .s05_cont h4 {
    font-size: 20px
  }
  footer {
    padding-bottom: 20px;
    margin-bottom: 50px;
  }
  .footer_bnr {
    padding: 30px 3%;
  }
  .f_bnr01 {}
  .f_bnr01 a {}
  .f_bnr01 a span {
    /*font-size: 24px;
    padding-left: 50px;
    background-size: 40px auto;*/
  }
  .f_info, .f_detail {
    flex-direction: column;
    align-items: center;
    margin-bottom: 25px
  }
  .f_info .btn_tel {
    margin: 0 auto;
    width: 100%;
    max-width: 380px
  }
  .f_info .btn_tel .num {
    font-size: 34px
  }
  .f_info .btn_tel .num:after {
    width: 110%
  }
  .f_info .f_address {
    margin: 20px 0;
    font-size: 14px
  }
  .f_detail .f_time {
    margin: 20px auto 0
  }
  .f_detail .f_time span {
    font-size: 13px;
    padding-left: 0;
    line-height: 1.6em
  }
  .f_map {
    height: 290px;
    margin-bottom: 30px
  }
  .f_menu {
    padding: 0;
    margin-bottom: 40px
  }
  .f_menu dl {
    margin-bottom: 10px
  }
  .f_menu dl dt {
    font-size: 24px;
    padding-bottom: 8px;
    margin-bottom: 20px
  }
  .f_menu dl dd p {
    width: 50% !important
  }
  .f_menu dl dd a {
    font-size: 14px
  }
  .f_menu dl dd a:before {
    top: 4px
  }
  #f_logo {
    max-width: 233px
  }
  address {
    font-size: 12px
  }
  .footer01 {
    padding: 40px 0 130px
  }
  .to-top {
    bottom: 90px;
    right: 3%
  }
  .to-top > a {
    width: 55px;
    height: 55px
  }
  .to-top > a span {
    font-size: 13px
  }
  .btn_tel.btn_fix {
    display: block;
    width: 100%;
    max-width: 100%;
    position: fixed;
    z-index: 5;
    bottom: -70px;
    left: 0;
    transition: 0.3s all;
  }
  .btn_tel.btn_fix a {
    height: 50px;
    background: #3d983d;
    padding-top: 0;
  }
  .btn_tel.btn_fix a .num {
    font-size: 24px;
    margin: 0;
  }
  .btn_tel.btn_fix a .num:after {
    display: none;
  }
  .btn_fix.show {
    bottom: 0;
  }
}
@media screen and (max-width: 590px) {
  #top_info .main_cirle {
    bottom: 4vw
  }
  #top_info .main_cirle .item {
    width: 25vw;
    height: 25vw;
    font-size: 3vw
  }
  #top_info .main_cirle .item .f_size1 {
    font-size: 5vw
  }
  #top_info .main_cirle .item .f_size2 {
    font-size: 2.8vw
  }
  #top_info .main_cirle .item .f_size3 {
    font-size: 3.5vw
  }
  .s03_list li {
    width: 37vw;
    height: 37vw
  }
  .s02_dl dl dd p br {
    display: none
  }
}
@media screen and (max-width: 390px) {
  .sp390 {
    display: block
  }
  #head_top h1 a {
    width: 45vw
  }
  #head_top h1 span {
    font-size: min(12px, 3vw);
    padding-left: 2vw
  }
  .s05_img {
    max-width: 280px
  }
  .s04_box01 .box_tit .sub_tit3 {
    font-size: 20px !important
  }
  .s03_border {
    padding: 30px 0
  }
}
@media screen and (max-width: 360px) {
  .s02_dl .s02_tit01 {
    font-size: 22px
  }
  .f_info .f_address {
    font-size: 13px
  }
  address {
    font-size: 10px
  }
  .f_menu dl dd p {
    width: 100% !important
  }
  .s05_img .box_name {
    right: -10px
  }
  .s05_cont h4 {
    font-size: 17px
  }
  .s05_cont p {
    font-size: 15px
  }
} /*# sourceMappingURL=responsive.css.map */