@charset "utf-8";


@media screen and (min-width: 768px) {
  html {
    font-size: 10px;
  }
}

figure {
  position: relative;
}

sup {
  font-size: 10px;
}

main {
  color: #1a1a1a;
}

[id] {
  scroll-margin-top: 180px; 
}

@media only screen and (max-width:768px) {
  [id] {
    scroll-margin-top: 80px; 
  }
}

.aic {
  align-items: center;
}

.tac {
  text-align: center;
}

.inner {
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 20px;
}

.row-reverse {
  flex-direction: row-reverse;
  justify-content: left;
}

.main_bg {
  background-image: url(../images/access/bg_01.png);
  overflow: hidden;
}

@media only screen and (max-width:768px) {
  .m_0_sp {
    margin: 0 !important;
  }
  
  .mt_20_sp {
    margin-top: 20px !important;
  }
}

@media only screen and (max-width:768px) {
  .mvCap {
    text-align: left;
  }
}


/*---------------------------------------------------------------

 mainVisual

--------------------------------------------------------------- */
.mainVisual {
  padding-top: 160px;
	width: 100%;
	color: #fff;
	position: relative;
}
.mv {
  position: relative;
  background-image: url(../images/location/kv.jpg);
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
	height: 500px;
	width: 100%;
	text-align: center;
}
.mainVisual .cell {
	position: absolute;
  width: 90%;
	top: 30%;
  left: 50%;
  transform: translateX(-50%);
}
.mainVisual .title {
  font-family: 'Noto Serif JP', serif;
	font-size: 50px;
	letter-spacing: 0.15em;
	text-shadow:0px 0px 1px rgba(0, 0, 0, 0.8),
  0 0 5px rgba(0, 0, 0, 0.5),
  0 0 10px rgba(0, 0, 0, 0.5),
  0 0 15px rgba(0, 0, 0, 0.5),
  0 0 20px rgba(0, 0, 0, 0.5);
  line-height: 1;
}
.mainVisual .en {
  width: 209px;
  margin: 0 auto;
	letter-spacing: 0.2em;
}
@media only screen and (max-width:980px) {
  .mainVisual {
    padding-top: 80px;
  }
  .mv {
    background-image: url(../images/location/kv.jpg);
    height: 300px;
    background-position: center center;
  }
  .mainVisual .cell {
    position: absolute;
    top: 10%;
    left: 50%;
    transform: translateX(-50%);
  }
  .mainVisual .title {
    font-size: 42px;
    letter-spacing: 0.1em;
    line-height: 1.4;
  }
}
@media only screen and (max-width:768px) {
  .mv {
    background-image: url(../images/location/kv_sp.jpg);
    height: 300px;
    background-position: center center;
  }
  .mainVisual .title {
    font-size: 32px;
    letter-spacing: 0.1em;
    line-height: 1.4;
  }
}

/* ===========================================
top_lead
==============================================*/
.top_lead {
  position: relative;
  padding: 80px 0;
  z-index: 2;
}

.top_lead::before {
  content: '';
  position: absolute;
  background-image: url(../images/location/bg_01.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 1;
}

.top_lead .inner {
  position: relative;
  z-index: 3;
  max-width: 1400px;
}

.top_lead_wrap {
  writing-mode: vertical-rl;
  text-orientation: upright;
  margin: 0 auto;
}

.top_lead_title {
  font-size: clamp(2.8rem, -1.125rem + 5.104vw, 5rem);
  line-height: calc(80/50);
  letter-spacing: 0.1em;
  margin-left: clamp(2.2rem, -2.796rem + 6.497vw, 5rem);
}

.top_lead_text {
  font-size: clamp(1.3rem, 0.051rem + 1.624vw, 2rem);
  line-height: calc(40/20);
  letter-spacing: 0.05em;
}

@media only screen and (max-width:768px) {
  .top_lead {
    padding: 30px 0;
  }

  .top_lead_wrap {
    writing-mode: horizontal-tb;
    margin: 0 auto;
  }

  .top_lead::before {
    background-image: url(../images/location/bg_sp.png);
    height: 30%;
  }
  
  .top_lead_title {
    font-size: clamp(3rem, 2.046rem + 2.545vw, 4rem);
    text-align: center;
    margin-left: auto;
  }
  
  .top_lead_text {
    max-width: 500px;
    margin-top: 30px;
    margin: 30px auto 0;
    font-size: clamp(1.8rem, 1.418rem + 1.018vw, 2.2rem);
    line-height: calc(40/20);
    letter-spacing: 0.05em;
  }
}

/* ===========================================
link_are
==============================================*/
.link_are {
  padding: 60px 0;
  background: rgb(229,177,117);
  background: linear-gradient(90deg, rgba(229,177,117,0.5) 0%, rgba(209,129,68,0.5) 100%);
}

.link_are .inner {
  max-width: 1280px;
}

.link_btn_wrap {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  column-gap: 20px;
  flex-direction: row-reverse;
  direction: rtl;
}

.link_btn:hover {
  transition: .4s;
  opacity: .9;
  box-shadow: rgba(0, 0, 0, 0.55) 0px 5px 15px;
}

.link_btn.active {
  pointer-events: none;
}

@media only screen and (max-width:768px) {
  .link_are {
    padding: 24px 0;
  }

  .link_btn_wrap {
    grid-template-columns: repeat(1,1fr);
  }

  .link_btn {
    max-width: 650px;
    margin-left: auto;
    margin-right: auto;
  }

  .link_btn.active {
    pointer-events: all;
  }
}


/* ===========================================
section共通
==============================================*/
.section_kv {
  position: relative;
  width: 100%;
  height: 500px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.section_kv_cap {
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 6px;
  color: #fff;
  font-size: clamp(1.4rem, 0.531rem + 1.13vw, 2rem);
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-align: right;
  background-color: rgba(0, 0, 0, 1);
  z-index: 5;
}

.section_kv_cap.right {
  left: auto;
  right: 0;
}

.section_top {
  padding-top: 100px;
}

.section_top .inner {
  max-width: 1920px;
  padding: 0;
}

.section_top_wrap {
  display: flex;
  align-items: center;
  justify-content: right;
}

.row-reverse.section_top_wrap {
  display: flex;
  align-items: center;
  justify-content: left;
}

.section_top_img {
  width: 50%;
}

.section_top_body {
  margin-right: 5%;
}

.row-reverse .section_top_body {
  margin-left: 5%;
  margin-right: auto;
}

.section_top_title {
  font-size: clamp(2.6rem, 0.997rem + 2.085vw, 5rem);
  line-height: calc(80/50);
  letter-spacing: 0.1em;
}

.section_top_text {
  font-size: clamp(1.2rem, -0.227rem + 1.856vw, 2rem);
  line-height: calc(35/20);
  letter-spacing: 0.1em;
}

.section_contents {
  margin-top: 60px;
}

.section_contents .inner {
  max-width: 1320px;
}

.section_contents_wrap {
  display: flex;
  justify-content: space-between;
}

.section_contents_wrap.bottom {
  margin-top: 60px;
}

.section_contents_body {
  width: 56.25%;
}

.section_contents_text {
  font-size: clamp(1.3rem, 0.698rem + 0.783vw, 1.7rem);
  line-height: 1.8;
  letter-spacing: 0.05em;
}

.section_contents_img {
  width: 37.5%;
}

.section_img_text {
  margin-top: 8px;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.section_img_flex {
  margin-top: 60px;
  display: flex;
}

@media only screen and (max-width:768px) {
  .section_kv {
    height: 210px;
  }
  
  .section_kv_cap {
    top: 0;
    bottom: auto;
    text-align: left;
  }
  
  .section_top {
    padding-top: 80px;
  }
  
  .section_top_wrap,
  .row-reverse.section_top_wrap {
    display: block;
  }
  
  .section_top_img {
    width: 100%;
    margin-top: 30px;
  }

  .section_top_body {
    margin-right: auto;
    margin-left: 5%;
  }

  .section_top_title {
    font-size: clamp(3rem, 2.046rem + 2.545vw, 4rem);
  }
  
  .section_top_text {
    font-size: clamp(1.8rem, 1.418rem + 1.018vw, 2.2rem);
  }
  
  .section_contents {
    margin-top: 30px;
  }

  .section_contents_wrap {
    display: block;
  }
  
  .section_contents_body {
    width: 100%;
  }
  
  .section_contents_text {
    font-size: 15px;
    line-height: 2;
  }
  
  .section_contents_img {
    margin: 20px auto 0;
    width: 90%;
  }
  
  .section_img_text {
    margin-top: 8px;
    font-size: 15px;
    line-height: 2;
  }
  
  .section_img_flex {
    width: 90%;
    margin: 30px auto 0;
    display: block;
  }
}



/* ===========================================
history
==============================================*/
.history {
  padding-bottom: 130px;
}

.history .section_kv {
  position: relative;
  background-image: url(../images/location/kv_history.jpg);
  z-index: 4;
}

.history_label {
  position: absolute;
  max-width: 500px;
  top: 50%;
  right: 6.25%;
  transform: translateY(-50%);
}

.section_contents.bg_black {
  background-color: #2b0404;
  margin-top: 0;
  padding-top: 80px;
  padding-bottom: 100px;
  color: #fff;
}

.section_contents.bg_black .section_contents_wrap {
  margin-top: clamp(3rem, -2.793rem + 7.533vw, 7rem);
  margin-top: 20px;
  column-gap: 30px;
}

.section_contents.bg_black .section_contents_wrap.mt {
  margin-top: clamp(3rem, -2.793rem + 7.533vw, 7rem);
}

.section_contents.bg_black .section_contents_body {
  width: 100%;
  max-width: 619px;
}

.section_contents.bg_black .mt {
  margin-top: 60px;
}

.section_contents.bg_black .section_contents_text {
  font-size: clamp(1.3rem, 0.698rem + 0.783vw, 1.7rem);
  line-height: 2;
}

.section_contents_body_img {
  width: 100%;
  max-width: 600px;
}

.in_flex {
  margin-top: 30px;
  display: flex;
  align-items: center;
}

.in_flex_body {
  margin-left: 10%;
}

.in_flex_name {
  font-size: clamp(1.8rem, 1.366rem + 0.565vw, 2.1rem);
  letter-spacing: 0.1em;
}

.in_flex_text {
  margin-top: 14px;
  font-size: clamp(1.3rem, 0.576rem + 0.942vw, 1.8rem);
  line-height: 2;
  letter-spacing: 0.05em;
  font-family: sans-serif;
}

.section_contents_body2 {
  width: 100%;
  max-width: 470px;
}

.section_contents_body2 .section_contents_title {
  font-size: clamp(2rem, 0.552rem + 1.883vw, 3rem);
  line-height: 2;
  letter-spacing: 0.05em;
}

.section_contents_body_img2 {
  width: 100%;
  max-width: 750px;
}

.section_contents_body_img2 .in_flex {
  column-gap: 10px;
  margin-top: 0;
}

.history .section_top {
  position: relative;
  z-index: 3;
}

.history .section_top .inner {
  position: relative;
  z-index: 10;
}

.history .section_top::before {
  content: '';
  position: absolute;
  background-image: url(../images/location/bg_.history.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  width: 100%;
  height: 100%;
  top: 50px;
  left: 0;
  z-index: 1;
}

.history_img {
  margin-top: 40px;
  position: relative;
}

.history_text_img {
  position: absolute;
  max-width: 1150px;
  width: 80%;
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
}

.history_bottom_img {
  margin-top: 50px;
}

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

  .section_contents.bg_black {
    padding-bottom: 60px;
  }
  .section_contents.bg_black .section_top_title {
    font-size: 26px;
  }

  .section_contents_body_img figure {
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    width: 100vw;
  }

  .section_contents.bg_black .section_contents_body {
    margin-top: 20px;
  }

  .section_contents.bg_black .wide_img {
    margin-top: 30px;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    width: 100vw;
  }

  .section_contents_body_img2 .in_flex {
    flex-direction: column;
    margin-top: 20px;
    row-gap: 10px;
  }

  .section_contents.bg_black .section_contents_text {
    font-size: clamp(1.3rem, 0.698rem + 0.783vw, 1.7rem);
    margin-top: 10px;
  }
  
  .history {
    padding-bottom: 60px;
  }
  
  .history .section_kv {
    background-image: url(../images/location/kv_history_sp.jpg);
  }
  
  .history_label {
    position: absolute;
    max-width: clamp(26rem, 22.183rem + 10.178vw, 30rem);
    top: 75%;
    right: 50%;
    transform: translate(50% ,0%);
  }

  .history .section_top::before {
    width: 100%;
    height: 40%;
    top: 10%;
  }
  
  .history_img {
    margin-top: 40px;
    position: relative;
  }
  
  .history_text_img {
    position: absolute;
    max-width: 1150px;
    width: 80%;
    top: 10%;
    left: 50%;
    transform: translateX(-50%);
  }
  
  .history_bottom_img {
    margin-top: 40px;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
  }
  .history_bottom_img .section_img_text {
    padding: 0 20px;
  }
  

}

/* ===========================================
tarumi
==============================================*/
.tarumi {
  padding-bottom: 130px;
}

.tarumi .section_kv {
  background-image: url(../images/location/kv_tarumi.jpg);
}

.tarumi_label {
  position: absolute;
  max-width: 500px;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

.tarumi .section_top {
  position: relative;
  z-index: 3;
}

.tarumi .section_top .inner {
  position: relative;
  z-index: 10;
}

.tarumi .section_top::before {
  content: '';
  position: absolute;
  background-image: url(../images/location/bg_tarumi.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 1;
}

@media only screen and (max-width:768px) {
  .tarumi {
    padding-bottom: 60px;
  }
  
  .tarumi .section_kv {
    position: relative;
    z-index: 5;
    background-image: url(../images/location/kv_tarumi_sp.jpg);
  }
  
  .tarumi_label {
    position: absolute;
    max-width: clamp(26rem, 22.183rem + 10.178vw, 30rem);
    top: 75%;
    left: 50%;
    transform: translate(-50% ,0%);
  }
  
  .tarumi .section_top::before {
    height: 60%;
  }
}

/* ===========================================
jamesyama
==============================================*/
.jamesyama {
  padding-bottom: 130px;
}

.jamesyama .section_kv {
  background-image: url(../images/location/kv_jamesyama.jpg);
}

.jamesyama_label {
  position: absolute;
  max-width: 500px;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

.jamesyama .section_contents,
.jamesyama .section_top {
  position: relative;
  z-index: 20;
}

.bg_jamesyama {
  position: relative;
  z-index: 10;
}

.bg_jamesyama::before {
  content: '';
  position: absolute;
  background-image: url(../images/location/bg_jamesyama.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  width: 100%;
  height: 50%;
  top: 40%;
  left: 0;
  z-index: 1;
}

.jamesyama .section_top {
  padding-top: 0;
}

.jamesyama .shop_contents.border_none {
  padding: 20px 0 80px;
  border-bottom: none;
}

.jamesyama .section_bottom {
  padding: 100px 0;
  background-color: #f0ddbf;
}

.jamesyama .section_bottom .inner {
  max-width: 1320px;
}

.jamesyama .section_bottom_wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.jamesyama_title_icon {
  margin-right: 20px;
}

@media only screen and (max-width:768px) {
  .jamesyama {
    padding-bottom: 60px;
  }
  
  .jamesyama .section_kv {
    background-image: url(../images/location/kv_jamesyama_sp.jpg);
  }
  
  .jamesyama_label {
    position: absolute;
    max-width: clamp(26rem, 22.183rem + 10.178vw, 30rem);
    top: 75%;
    left: 50%;
    transform: translate(-50% ,0%);
  }

  .bg_jamesyama::before {
    background-image: url(../images/location/bg_sp.png);
    width: 100%;
    height: 20%;
    top: 60%;
    left: 0;
    z-index: 1;
  }

  .jamesyama .section_bottom {
    padding: 50px 0;
  }


  .bg_jamesyama .shop_contents.border_none {
    padding: 20px 0 30px;
    margin-bottom: 20px;
    border-bottom: 1px solid #8a754b;
  }

  .bg_jamesyama .shop_contents.border_none.sp_pt {
    padding-top: 50px;
  }
  
  .jamesyama .section_bottom_wrap {
    display: block;
  }
  
  .jamesyama .section_contents_wrap.bottom .section_contents_img {
    width: 100vw;
    margin: 0;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
  }

  .jamesyama .section_contents_wrap.bottom .section_contents_body {
    margin-top: 30px;
  }

  .jamesyama_title_icon {
    position: absolute;
    top: 0;
    left: clamp(23rem, 15.366rem + 20.356vw, 31rem);
    width: 100px;
    margin-right: 0;
  }
}

/* ===========================================
spot
==============================================*/
.spot {

}

.spot .section_kv {
  background-image: url(../images/location/kv_spot.jpg);
}

.spot_label {
  position: absolute;
  max-width: 500px;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

.spot .section_contents.pb {
  padding-bottom: 80px;
}

.spot_top {
  padding-top: clamp(5rem, -2.241rem + 9.416vw, 10rem);
}

.spot_top.suma {
  margin-top: 80px;
  position: relative;
}

.spot_top.suma::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100px;
  top: 0;
  left: 0;
  right: 0;
  background: linear-gradient(180deg, rgba(250, 195, 161,.6) 0%, rgba(255,255,255,0) 100%);
  z-index: 1;
}

.spot_top:last-child {
  padding-bottom: 60px;
}

.spot_top .inner {
  max-width: 1300px;
  padding: 0;
}

.spot_top_wrap {
  display: flex;
  align-items: center;
  justify-content: right;
  margin-left: auto;
  margin-right: calc(50% - 50vw);
  padding-left: 20px;
}

.spot_top_wrap2 {
  display: flex;
  align-items: center;
  justify-content: left;
  margin-right: auto;
  margin-left: calc(50% - 50vw);
  padding-right: 20px;
}

.spot_top_img {
  width: 55.556%;
}

.spot_top_body {
  width: 46%;
  margin-right: 5.556%;
}

.row-reverse .spot_top_body {
  margin-left: 5%;
  margin-right: auto;
}

.spot_top_bigtitle {
  color: #984a00;
  font-size: clamp(5rem, 1.814rem + 4.143vw, 7.2rem);
  line-height: 1.5;
  letter-spacing: 0.1em;
}

.spot_top_title {
  font-size: clamp(2.6rem, 1.441rem + 1.507vw, 3.4rem);
  line-height: calc(80/50);
  letter-spacing: 0.1em;
}

.spot_top_text {
  font-size: clamp(1.3rem, 0.576rem + 0.942vw, 1.8rem);
  line-height: 2;
  letter-spacing: 0.05em;
  margin-top: 16px;
}

.spot_box {
  padding: clamp(3rem, -1.515rem + 5.871vw, 6rem);
  background-color: #f0ddbf;
}

.spot_box_wrap {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  column-gap: 40px;
}

.spot_box_text {
  margin-top: 10px;
  font-size: clamp(1.2rem, 0.598rem + 0.783vw, 1.6rem);
  font-family: sans-serif;
  letter-spacing: 0.037em;
}

.spot_bus {
  background-image: url(../images/location/bg_bus.png);
  padding: 80px 0;
}

.spot_bus_wrap {
  position: relative;
  display: flex;
  justify-content: space-between;
}

.spot_bus_wrap::after {
  content: '';
  position: absolute;
  background-color: #ad9e81;
  width: 1px;
  height: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

.spot_bus_item {
  width: 46.875%;
}

.spot_bus_title {
  color: #984a00;
  font-size: clamp(1.6rem, 0.396rem + 1.566vw, 2.4rem);
  letter-spacing: 0.05em;
  line-height: 2.5;
}

.spot_bus_item_title {
  font-size: clamp(2.6rem, 1.396rem + 1.566vw, 3.4rem);
  letter-spacing: 0.05em;
  line-height: calc(60/34);
}

.spot_bus_item_text {
  font-size: clamp(1.6rem, 0.396rem + 1.566vw, 2.4rem);
  letter-spacing: 0.04em;
  line-height: calc(39/25);
}

.spot_bus_inflex {
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
}

.spot_bus_inflex_item {
  width: 48.4%;
}


@media only screen and (max-width:768px) {
  
  .spot .section_kv {
    background-image: url(../images/location/kv_spot_sp.jpg);
  }

  .spot .section_kv_cap {
    top: auto;
    bottom: 0;
  }
  
  .spot_label {
    position: absolute;
    max-width: clamp(26rem, 22.183rem + 10.178vw, 30rem);
    top: 75%;
    left: 50%;
    transform: translate(-50% ,0%);
  }
  
  .spot .section_contents.pb {
    margin-top: 0;
    padding-bottom: 0px;
  }
  
  .spot_top {
    padding-top: 66px;
  }
  
  .spot_top:last-child {
    padding-bottom: 60px;
  }
  
  .spot_top .inner {
    max-width: 1300px;
    padding: 0;
  }
  
  .spot_top_wrap {
    display: flex;
    flex-direction: column;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
  }


  .spot_top.suma {
    margin-top: 50px;
    padding-top: 40px;
  }
  
  .spot_top_wrap2 {
    display: flex;
    flex-direction: column;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
  }
  
  .spot_top_img {
    width: 100vw;
    margin-top: 20px;
    order: 1;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
  }
  
  .spot_top_body {
    display: contents;
    width: 100%;
    margin-right:0;
  }
  
  .row-reverse .spot_top_body {
    margin-left: 5%;
    margin-right: auto;
  }
  
  .spot_top_bigtitle {
    font-size: 48px;
    margin-right: auto;
  }
  
  .spot_top_title {
    font-size: 30px;
    margin-right: auto;
  }
  
  .spot_top_text {
    order: 2;
    font-size: clamp(1.3rem, 0.576rem + 0.942vw, 1.8rem);
    line-height: 2;
    letter-spacing: 0.05em;
    margin-top: 16px;
  }
  
  .spot_box {
    padding: 20px 18px;
  }
  
  .spot_box_wrap {
    display: grid;
    grid-template-columns: repeat(1,1fr);
    row-gap: 20px;
  }

  .spot_box_item {
    display: flex;
    justify-content: space-between;
  }

  .spot_box_img {
    width: 40%;
  }
  
  .spot_box_text {
    width: 54%;
    margin-top: 0;
    font-size: 16px;
    line-height: 1.5;
  }
  
  .spot_bus {
    margin-top: 40px;
    padding: 40px 0;
  }
  
  .spot_bus_wrap {
    display: block;
    margin-top: 14px;
  }
  
  .spot_bus_wrap::after {
    content: none;
  }
  
  .spot_bus_item {
    width: 100%;
  }

  .spot_bus_item.pt {
    padding-top: 30px;
  }
  
  .spot_bus_item.border-bottom {
    width: 100%;
    border-bottom: 1px solid #8a754b;
    padding-bottom: 30px;
  }
  
  .spot_bus_title {
    font-size: 18px;
    letter-spacing: 0.05em;
    line-height: 3;
  }
  
  .spot_bus_item_title {
    font-size: 27px;
    letter-spacing: 0.01em;
    line-height: calc(40/27);
  }
  
  .spot_bus_item_text {
    font-size: 18px;
    letter-spacing: 0.05em;
    line-height: calc(30/18);
  }
  
  .spot_bus_inflex {
    display: block;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  
  .spot_bus_inflex_item {
    width: 100%;
    margin-top: 30px;
  }
}

.spot_area {
  margin-top: 80px;
}

.spot_area_title {
  padding: 20px 10px;
  text-align: center;
  font-size: clamp(1.8rem, -0.307rem + 2.74vw, 3.2rem);
  letter-spacing: 0.1em;
  background-color: #e0c399;
}

.spot_area_text {
  margin-top: 30px;
  font-size: clamp(2rem, 0.495rem + 1.957vw, 3rem);
  letter-spacing: 0.05em;
  line-height: 2;
  text-align: center;
}

@media only screen and (max-width:768px) {
  .spot_area {
    margin-top: 40px;
  }
  .spot_area.mt0 {
    margin-top: 0;
  }
  
  .spot_area_title {
    padding: 14px 0;
    font-size: 24px;
    line-height: 1.4;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
  }
  
  .spot_area_text {
    margin-top: 20px;
    font-size: 18px;
    letter-spacing: 0.05em;
    line-height: 1.8;
    text-align: left;
  }

  .spot_area .shop_contents_col {
    padding: 20px 0 0;
    border-bottom: none;
  }
}


/* ===========================================
town
==============================================*/
.town {
  padding-bottom: 130px;
}

.town .section_kv {
  background-image: url(../images/location/kv_town.jpg);
}

.town_label {
  position: absolute;
  max-width: 500px;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

.town_top_lead {
  font-size: clamp(1.4rem, 0.798rem + 0.783vw, 1.8rem);
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 2;
  margin: 40px 0;
}

.town_cap {
  font-size: clamp(1.4rem, 0.798rem + 0.783vw, 1.8rem);
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-top: 6px;
}

.town_cap2 {
  font-size: clamp(1.4rem, 0.798rem + 0.783vw, 1.8rem);
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-top: 30px;
}

.town_title_wrap {
  margin: 60px auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.town_title_box_wrap {
  width: 36%;
  max-width: 460px;
}

.town_title_box {
	padding: clamp(1.7rem, -0.256rem + 2.544vw, 3rem);
	background: #5d377a;
  text-align: center;
  line-height: 1.8;
  letter-spacing: 0.15em;
  font-size: clamp(1.8rem, -0.006rem + 2.348vw, 3rem);
	color: #FFF;
	outline: 1px solid rgb(255, 255, 255);
	outline-offset: -10px;
}

.town_title_box span {
  font-size: clamp(1.4rem, -0.105rem + 1.957vw, 2.4rem);
}

.town_title_text {
  width: 60%;
  margin-left: 2%;
  font-size: clamp(1.2rem, 0.297rem + 1.174vw, 1.8rem);
  line-height: 2;
  letter-spacing: 0.03em;
}

.town_img_flex {
  margin-top: 60px;
  column-gap: 20px;
  display: flex;
  justify-content: space-between;
}

.town_map {
  margin-top: 60px;
}

.town_open_img {
  position: relative;
}

.town_icon {
  position: absolute;
  top: -17%;
  right: -40px;
  width: 140px;
}

.town .shop_box_title {
  font-size: clamp(1.4rem, -0.383rem + 2.174vw, 2.4rem);
  font-weight: 300;
  line-height: calc(40/24);
  letter-spacing: 0.02em;
}

@media only screen and (max-width:1440px) {
  .town_icon {
    right: -2%;
    width: clamp(10rem, 3.333rem + 7.407vw, 14rem);
  }
}

@media only screen and (max-width:900px) {
  .town_icon {
    right: -2%;
    width: 100px;
  }
}

@media only screen and (max-width:768px) {
  .town {
    padding-bottom: 80px;
  }
  
  .town .section_kv {
    background-image: url(../images/location/kv_town.jpg);
  }
  
  .town_label {
    position: absolute;
    max-width: 500px;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
  }

  .town .commonSpModalImage:after {
    top: auto;
    bottom: 0;
    right: auto;
    left: 0;
  }
  
  .town_top_lead {
    font-size: 17px;
    text-align: left;
    line-height: 1.6;
    padding: 0 20px;
    margin: 80px 0 20px;
  }
  
  .town_cap {
    font-size: clamp(1.4rem, 0.798rem + 0.783vw, 1.8rem);
    padding: 0 10px;
    margin-top: 6px;
  }

  .town_cap2 {
    font-size: clamp(1.4rem, 0.798rem + 0.783vw, 1.8rem);
    padding: 0 ;
    margin-top: 26px;
  }

  .town_img.mt {
    margin-top: 22px;
  }

  .town_wide_img {
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
  }
  
  .town_title_wrap {
    margin: 40px auto 40px;
    display: block;
  }
  
  .town_title_box_wrap {
    width: 100%;
    max-width: 460px;
    margin: 0 auto;
  }
  
  .town_title_box {
    padding: 20px 10px;
    font-size:24px;
    outline-offset: -4px;
    line-height: 1.3;
  }
  
  .town_title_box span {
    font-size: 16px;
  }
  
  .town_title_text {
    width: 100%;
    margin-left: 0;
    margin: 20px auto 0;
    letter-spacing: 0.05em;
    font-size: 17px;
    line-height: 1.6;
  }
  
  .town_img_flex {
    margin-top: 30px;
    column-gap: 20px;
    display: block;
  }
  
  .town_img.mt {
    margin-top: 22px;
  }
  
  .town_map {
    margin-top: 10px;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
  }
  
  .town_open_img.mt {
    position: relative;
    margin-top: 60px;
  }
  
  .town .shop_box_title {
    font-size: 18px;
    line-height: calc(40/24);
    letter-spacing: 0.1em;
  }
}




/* ===========================================
shop
==============================================*/

.shop_box {
  padding: clamp(3rem, -1.515rem + 5.871vw, 6rem);
  margin-top: clamp(3rem, -1.515rem + 5.871vw, 6rem);
  background-color: #f0ddbf;
}

.shop_box.bg_white {
  padding: clamp(3rem, -1.515rem + 5.871vw, 6rem);
  background-color: #fff;
}

.shop_box_wrap {
  display: flex;
  justify-content: space-between;
}

.shop_box_img {
  width: 32%;
}

.shop_box_img2 {
  width: 43.75%;
}

.shop_box_img3 {
  width: 47%;
  max-width: 560px;
}

.shop_box_body {
  width: 65%;
}

.shop_box_body2 {
  width: 53%;
}

.shop_box_body3 {
  width: 49%;
}

.shop_box_title {
  font-size: clamp(2.6rem, 1.697rem + 1.174vw, 3.2rem);
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.shop_box_title span {
  font-size: 24px;
  letter-spacing: 0.1em;
}

.shop_box_text {
  margin-top: clamp(1rem, -0.505rem + 1.957vw, 2rem);
  font-family: sans-serif;
  font-size: clamp(1.2rem, 0.448rem + 0.978vw, 1.7rem);
  line-height: 2.2;
  letter-spacing: 0.05em;
}

.shop_info {
  margin-top: clamp(2rem, -1.01rem + 3.914vw, 4rem);
  font-family: sans-serif;
}

.shop_info dl {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

.shop_info dl:nth-child(2) {
  margin-top: 10px;
}

.shop_info dt {
  width: 60px;
  font-size: clamp(1.2rem, 0.448rem + 0.978vw, 1.7rem);
  line-height: 2;
}

.shop_info dd {
  width: calc(100% - 80px);
  font-size: clamp(1.2rem, 0.448rem + 0.978vw, 1.7rem);
  line-height: 2;
}

.shop_contents {
  padding: 70px 0 60px;
  border-bottom: 1px solid #8a754b;
}

.shop_contents_wrap {
  display: flex;
  justify-content: space-between;
  column-gap: 30px;
}

.shop_contents_img_top {
  width: 100%;
  max-width: 640px;
}

.shop_contents_body_top {
  width: 100%;
  max-width: 580px;
}

.shop_contents_img {
  width: 37.5%;
}

.shop_contents_body {
  width: 56%;
}

.shop_contents_title {
  font-size: clamp(2.2rem, 0.752rem + 1.883vw, 3.2rem);
  letter-spacing: 0.1em;
  line-height: 1.4;
}

.shop_contents_title span {
  font-size: 20px;
  letter-spacing: 0.1em;
  line-height: 2;
}

.shop_contents_text {
  margin-top: 20px;
  font-size: clamp(1.3rem, 0.548rem + 0.978vw, 1.8rem);
  line-height: 2;
  letter-spacing: 0.05em;
}

.shop_contents_text2 {
  margin-top: 20px;
  font-size: clamp(1.2rem, 0.598rem + 0.783vw, 1.6rem);
  font-family: sans-serif;
  line-height: 2;
  letter-spacing: 0.05em;
}

.shop_contents_inflex {
  display: flex;
  margin-top: 30px;
}

.inflex_img {
  width: 36%;
}

.inflex_body {
  margin-left: 5%;
}

.inflex_body p {
  font-size: clamp(1.2rem, 0.598rem + 0.783vw, 1.6rem);
  font-family: sans-serif;
  line-height: 2;
}

.shop_contents_flex {
  margin-top: clamp(3rem, -1.515rem + 5.871vw, 6rem);
  display: grid;
  grid-template-columns: repeat(3,1fr);
  column-gap: 30px;
}

.shop_contents_flex2col {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  column-gap: 50px;
  padding: 70px 0 60px;
  border-bottom: 1px solid #8a754b;
}

.shop_contents_col_body {
  margin-top: clamp(1.8rem, 2.402rem + -0.783vw, 1.4rem);
}

.shop_contents_col_title {
  font-size: clamp(2rem, 0.495rem + 1.957vw, 3rem);
  letter-spacing: 0.05em;
  line-height: 1.3;
}

.shop_contents_col_text {
  margin-top: clamp(1rem, -0.505rem + 1.957vw, 2rem);
  font-size: clamp(1.3rem, 0.698rem + 0.783vw, 1.7rem);
  letter-spacing: 0.05em;
  line-height: 2;
}

.shop_contents_col_text2 {
  font-family: sans-serif;
  margin-top: clamp(0.4rem, -0.804rem + 1.566vw, 1.2rem);
  font-size: clamp(1.1rem, 0.498rem + 0.783vw, 1.5rem);
  letter-spacing: 0.03em;
  line-height: 2;
}

@media only screen and (max-width:768px) {
  .shop_box {
    padding: clamp(3rem, -1.515rem + 5.871vw, 6rem);
    margin-top: clamp(3rem, -1.515rem + 5.871vw, 6rem);
    background-color: #f0ddbf;
  }
  
  .shop_box_wrap {
    display: block;
  }
  
  .shop_box_img,
  .shop_box_img2,
  .shop_box_img3 {
    width: 100%;
  }
  
  .shop_box_body,
  .shop_box_body2,
  .shop_box_body3 {
    width: 100%;
    margin-top: 20px;
  }
  
  .shop_box_title {
    font-size: 26px;
  }
  
  .shop_box_title span {
    font-size: 18px;
    letter-spacing: 0.1em;
  }
  
  .shop_box_text {
    font-size: 16px;
    line-height: 2;
  }
  
  .shop_info {
    margin-top: clamp(2rem, -1.01rem + 3.914vw, 4rem);
    font-family: sans-serif;
  }
  
  .shop_info dl {
    display: block;
  }
  
  .shop_info dl:nth-child(2) {
    margin-top: 10px;
  }
  
  .shop_info dt {
    width: 60px;
    font-size: 16px;
    line-height: 2;
  }
  
  .shop_info dd {
    width:100%;
    font-size: 16px;
    line-height: 2;
  }
  
  .shop_contents {
    padding: 40px 0 30px;
  }
  
  .shop_contents_wrap {
    display: block;
  }
  
  .shop_contents_img {
    width: 100%;
  }
  
  .shop_contents_body {
    width: 100%;
    margin-top: 20px;
  }

  .shop_contents_body_top {
    margin-top: 20px;
  }
  
  .shop_contents_title {
    font-size: 22px;
  }
  
  .shop_contents_text {
    margin-top: 14px;
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.05em;
  }
  
  .shop_contents_text2 {
    margin-top: 10px;
    letter-spacing: 0.05em;
    font-size: 14px;
    line-height: 1.8;
  }
  
  .shop_contents_inflex {
    display: block;
    margin-top: 14px;
  }
  
  .inflex_img {
    width: 85%;
    margin-left: auto;
    margin-right: auto;
  }
  
  .inflex_body {
    margin: 10px auto 0;
  }
  
  .inflex_body p {
    font-size: 15px;
    line-height: 1.8;
  }
  
  .shop_contents_flex {
    margin-top: 0;
    grid-template-columns: repeat(1,1fr);
  }
  
  .shop_contents_flex2col {
    grid-template-columns: repeat(1,1fr);
    padding-top: 0;
    padding-bottom: 30px;
  }
  
  .shop_contents_flex .shop_contents_col,
  .shop_contents_flex2col .shop_contents_col {
    padding: 40px 0 10px;
    border-bottom: 1px solid #8a754b;
  }
  
  .shop_contents_flex .shop_contents_col:last-child {
    border-bottom: none;
  }
  
  .shop_contents_flex2col .shop_contents_col:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .shop_contents_col.border_none {
    border-bottom: none;
  }

  .shop_contents_col_body {
    margin-top: 16px;
  }
  
  .shop_contents_col_title {
    font-size: 24px;
    letter-spacing: 0.05em;
    line-height: 1.3;
    text-align: left;
  }
  
  .shop_contents_col_text {
    margin-top: 14px;
    font-size: 14px;
    letter-spacing: 0.05em;
    line-height: 1.8;
  }
  
  .shop_contents_col_text2 {
    margin-top: 10px;
    text-align: left;
    letter-spacing: 0.05em;
    font-size: 14px;
    line-height: 1.8;
  }
}


/* ===========================================
shopping
==============================================*/
.shopping {
  margin-top: 40px;
}

.shopping_title {
  padding: 20px 0;
  text-align: center;
  font-size: clamp(2.6rem, 1.246rem + 1.761vw, 3.5rem);
  letter-spacing: 0.1em;
  background-color: #e0c399;
}

.shopping_text {
  margin-top: 30px;
  font-size: clamp(2rem, 0.495rem + 1.957vw, 3rem);
  letter-spacing: 0.05em;
  line-height: 2;
  text-align: center;
}

@media only screen and (max-width:768px) {
  .shopping {
    margin-top: 40px;
  }
  
  .shopping_title {
    padding: 14px 0;
    font-size: 24px;
    line-height: 1.4;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
  }
  
  .shopping_text {
    margin-top: 20px;
    font-size: 18px;
    letter-spacing: 0.05em;
    line-height: 1.8;
    text-align: left;
  }

  .shopping .shop_contents_col {
    padding: 20px 0 0;
    border-bottom: none;
  }
}

/* ===========================================
map_area
==============================================*/
.map_area {
  position: relative;
  margin: 50px auto 0;
}

.map_area .inner {
  position: relative;
  max-width: 1110px;
  z-index: 3;
}

.map_area::before {
  content: '';
  position: absolute;
  background-image: url(../images/location/bg_map.png);
  background-size: contain;
  background-position: center;
  background-repeat: repeat-x;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 1;
}

@media only screen and (max-width:768px) {
  .map_area {
    margin: 30px auto 0;
  }

  .map_area::before {
    content: '';
    position: absolute;
    background-image: url(../images/location/bg_map.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    height: 70%;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    z-index: 1;
  }
}