@charset "UTF-8";

/*======================================================
  Original style
======================================================== */

html {
  font-size: 62.5%;
}

body {
  margin: 0;
  padding: 0;
  height: 100%;
  color: #333;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5;
  word-wrap: break-word;
  font-family: "Noto Sans", "Noto Sans TC", "Noto Sans SC", "Noto Sans KR", "Noto Sans Thai", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Yu Gothic", "Yu Gothic Medium", "游ゴシック Medium", "游ゴシック体", "メイリオ", "Meiryo", sans-serif;
  overflow-x: hidden;
}

img {
  width: 100%;
  vertical-align: bottom;
}

li {
  list-style-type: none;
}

hr {
  display: none;
}

a {
  display: block;
}

button {
  border: none;
  appearance: none;
}

a:hover {
  opacity: .6;
}

.center {
  text-align: center;
}

.nowrap {
  white-space: nowrap;
}

.flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
}


/*================================================================
スマホ（全てのサイズで読み込む）
================================================================*

/*
background
---------------------------------*/
.bg-bl {
  background: #4061A8;
  color: #fff;
  font-weight: 400;
}

/*
wave
---------------------------------*/
.bg-area {
  position: relative;
  z-index: 0;
}

.wave {
  position: absolute;
  width: 100%;
  height: 20px;
  background: url(../img/parts/wave.png) repeat-x;
  background-size: 65px;
  z-index: 1;
}

.wave.upper {
  top: -1px;
  transform: rotate(180deg);
}

.wave.bottom {
  bottom: -1px;
}

/*
見出し（ｈ）
---------------------------------*/

h1 {
  line-height: 0;
}

h2 {
  text-align: center;
  color: #4061A8;
  font-size: 3.2rem;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .06rem;
}

#recommend h2,
#sns h2 {
  color: #DADF3F;
  font-weight: 500;
}

h3 {
  color: #fff;
  font-size: 2.2rem;
  text-align: center;
  font-weight: 700;
  line-height: 2.4;
  letter-spacing: .25rem;
}

/*
矢印（＞）デザイン
---------------------------------*/
.arrow {
  display: inline-block;
  position: relative;
  vertical-align: middle;
  margin-left: 5px;
  line-height: 1;
  transform: translate(-25%, -20%) rotate(45deg);
  z-index: 0;
}

.arrow::before,
.arrow::after {
  content: "";
  position: absolute;
  background: currentColor;
  border-radius: 0.1em;
  z-index: 0;
}

.arrow::before {
  top: 0;
  left: 0;
  right: 0;
  height: .1em;
}

.arrow::after {
  top: 0;
  right: 0;
  bottom: 0;
  width: .1em;
}


/*
header
================================================================*/
.topSide {
  position: relative;
  width: 100%;
  height: 60px;
  background: #4061A8;
  z-index: 9997;
}

.headerLogo {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 58%;
  max-width: 250px;
  z-index: 9997;
}

.headerBtn-wrap {
  position: fixed;
  top: 0;
  right: 0;
  width: 45%;
  height: 60px;
  max-width: 200px;
  z-index: 9998;
}

.snsBtn,
.transBtn,
.hamburger-menu {
  width: 32%;
  max-width: 60px;
  cursor: pointer;
}

.snsBtn {
  padding: 0 0 0 17px;
}

.transBtn {
  position: relative;
  padding: 0 7px;
  z-index: 9998;
}

.snsBtn a:hover,
.trans-menu:hover,
.hamburger-menu:hover {
  opacity: 1;
}

/*
ハンバーガー　ボタン部分
---------------------------------*/
.hamburger-menu {
  position: relative;
  top: -1px;
  height: 100%;
  z-index: 9998;
}

.hamburger-menu__bar {
  display: inline-block;
  position: absolute;
  top: 19px;
  left: 50%;
  width: 28px;
  height: 2px;
  border-radius: 2px;
  background: #fff;
  transform: translateX(-50%);
  transition: .5s;
  z-index: 9998;
}

.hamburger-menu__bar:nth-child(2) {
  top: 50%;
  transform: translate(-50%, -50%);
}

.hamburger-menu__bar:nth-child(3) {
  top: 39px;
  width: 16px;
  transform: translateX(-14px);
}

.hamburger-menu.active {
  background: #DADF3F;
}

.hamburger-menu.active .hamburger-menu__bar {
  top: 30px;
  transform: translateX(-50%) rotate(43deg);
  width: 30px;
  background: #4061A8;
}

.hamburger-menu.active .hamburger-menu__bar:nth-child(2) {
  display: none;
}

.hamburger-menu.active .hamburger-menu__bar:nth-child(3) {
  left: 50%;
  transform: translateX(-50%) rotate(-43deg);
  width: 30px;
}


/*
メニューリスト部分（翻訳）
---------------------------------*/

.hide {
  opacity: 0;
  visibility: hidden;
  transition: .5s;
}

.show {
  transition: .5s;
  opacity: 1;
  visibility: visible;
}

.trans-navigation {
  position: absolute;
  top: 62px;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: auto;
  border: solid 1px #fff;
  border-radius: 3px;
  z-index: 9998;
}

.trans-navigation::before,
.trans-navigation::after	{
  content: '';
	position: absolute;
	top: -1.2em;
	left: 50%;
	transform: translateX(-50%);
	border-right: 10px solid transparent;
	border-bottom: solid 1.2em #fff;
	border-left: 10px solid transparent;
  z-index: 9998;
}

.trans-navigation::after	{
	top: calc( 2px - 1.2em );
	border-bottom: solid 1.2em #4061A8;
}

.trans-navigation .navigation__list-item .navigation__link {
  padding: 8px 0;
}
.trans-navigation .navigation__list-item:first-child .navigation__link {
  padding: 13px 0 8px;
}
.trans-navigation .navigation__list-item:last-child .navigation__link {
  padding: 8px 0 13px;
}


/*
メニューリスト部分（グローバルメニュー）
-----------------------------------*/

.navigation {
  position: fixed;
  top: 60px;
  right: -170px;
  width: 75%;
  max-width: 160px;
  height: auto;
  border-radius: 0 0 0 3px;
  overflow-y: auto;
  transition: all .5s ease;
  z-index: 9998;
}

.navigation.is_active {
  right: 0;
}

.navigation .navigation__list-item .navigation__link {
  padding: 12px 0;
}
.navigation .navigation__list-item:first-child .navigation__link {
  padding: 17px 0 12px;
}
.navigation .navigation__list-item:last-child .navigation__link {
  padding: 12px 0 17px;
}


/*
メニューリスト部分（共通）
---------------------------------*/

.navigation__link:hover {
  color: #4061A8;
  background: #DADF3F;
  opacity: 1;
}

.navigation__link {
  transition: .5s;
  white-space: nowrap;
}



/*
main
================================================================*/

/*
main visual
----------------------------------------------------------------*/

.mv {
  position: relative;
  top: 0;
}

.main-illust.sp {
  height: calc(100vh - 45px);
  object-fit: cover;
}

.ribbon {
  position: absolute;
  top: 12px;
  max-width: 600px;
}

.ribbon .sp_ribbon {
  display: block;
}

.ribbon .pc_ribbon {
  display: none;
}

@media screen and (min-width:600px) {
  .ribbon .sp_ribbon {
    display: none;
  }
  .ribbon .pc_ribbon {
    display: block;
  }
}

.stores {
  position: absolute;
  bottom: 6vw;
  left: 3%;
  width: 33%;
  max-width: 200px;
  z-index: 0;
}

/*
scrollを促すアニメーション
--------------------------*/
.scroll {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 90px;
  -webkit-transition: all 0.3s ease-out;
	        transition: all 0.3s ease-out;
	-webkit-animation: scroll-move 2s 1s ease-in-out infinite;
	        animation: scroll-move 2s 1s ease-in-out infinite;
          z-index: 0;
}

@-webkit-keyframes scroll-move {
	0% {
		bottom: 4%;
		opacity: 0.1;
	}
	60% {
		bottom: 6%;
		opacity: 1;
	}
	100% {
		bottom: 3%;
		opacity: 0.3;
	}
}
@keyframes scroll-move {
	0% {
		bottom: 4%;
		opacity: 0.1;
	}
	60% {
		bottom: 6%;
		opacity: 1;
	}
	100% {
		bottom: 3%;
		opacity: 0.3;
	}
}

/*
about
----------------------------------------------------------------*/

.intro {
  font-size: 1.8rem;
  line-height: 1.8;
}

.videoComment {
  display: inline-block;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  color: #4061A8;
  font-size: 2.2rem;
  font-weight: 700;
  z-index: 0;
}

.videoComment::before,
.videoComment::after {
  display: inline-block;
  position: absolute;
  bottom: 5px;
  content: "";
  width: 22px;
  height: 25px;
  background: url(../img/parts/fuki.png) no-repeat;
  background-size: 22px;
  z-index: 0;
}

.videoComment::before {
  left: -27px;
  background-position: left center;
  transform: scale(-1, 1);
}

.videoComment::after {
  right: -25px;
  background-position: right center;
}

.video {
  width: 100%;
}

.video iframe {
  width: 100%;
  height: 300px;
  aspect-ratio: 16 / 9;
}

.videoComment-2 {
  width: 100%;
  text-align: center;
  font-size: 1.8rem;
  line-height: 1.6;
}


/*point
------------*/

.pointList {
  margin: 0 auto;
  max-width: 640px;
}

.pointList-item {
  width: 48%;
  max-width: 280px;
}

@media screen and (min-width:420px) {
  .pointList-item {
    width: 46%;
  }
}

.headline {
  display: block;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  padding: 0 30px;
  height: 50px;
  text-align: center;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 50px;
  letter-spacing: .1rem;
  z-index: 0;
}

.pointList-item:nth-child(3) .headline {
  padding: 5px 0;
  font-size: 1.7rem;
  line-height: 20px;
}


.headline:before, .headline:after {
  position: absolute;
  content: '';
  width: 0px;
  height: 0px;
  z-index: 1;
}

.headline:before {
  top: -2px;
  left: -1px;
  border-width: 28px 0px 28px 10px;
  border-color: transparent transparent transparent #fff;
  border-style: solid;
}

.headline:after {
  top: -2px;
  right: -1px;
  border-width: 28px 10px 28px 0px;
  border-color: transparent #fff transparent transparent;
  border-style: solid;
}

.pointList-itemImg {
  margin: 0 auto;
}

.img-taxfree {
  padding: 0 0 2px 0;
  width: 78px;
}

.img-payment {
  padding: 10px 0;
  width: 93px;
}

.img-coupon {
  padding: 12.5px 0;
  width: 130px;
}

.img-language {
  padding: 10px 0;
  width: 110px;
}

.pointList-item .ex {
  height: 72px;
}

/*
Recommend
----------------------------------------------------------------*/

/*------slick-------*/

.slick-dotted.slick-slider {
  margin-bottom: 85px;
}

.slider {
  width: 100%;
}

/*矢印*/

.slick-arrow::before {
  content:"" !important;
  width: 100% !important;
  height: 100% !important;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
}

.slick-prev,
.slick-next {
  width: 40px;
  height: 40px;
  z-index: 1;
}

.slick-prev {
  left: -15px;
}

.slick-prev::before {
  background: url(../img/parts/arrow-prev.png) no-repeat !important;
  background-size: contain !important;
  opacity: 1;
}

.slick-next {
  right: -15px;
}

.slick-next::before {
  background: url(../img/parts/arrow-next.png) no-repeat !important;
  background-size: contain !important;
  opacity: 1;
}

/*スライドさせるカード*/

.slickItem {
  width: 90vw;
  max-width: 540px;
  margin: 0 30px;
  padding: 15px 20px 35px;
  color: initial;
  background: #fff;
  border-radius: 20px;
}

/*商品写真*/

.productImg {
  margin: 0 auto;
  max-width: 220px;
  height: 170px;
}

.pabron .productImg img {
  padding: 20px 22px 0;
}

.roihi .productImg img {
  padding: 25px 15px 0;
}

.pateco .productImg img {
  padding: 5px 53px 0;
}

.lifter .productImg img {
  padding: 5px 41px 0;
}

.dhc-rip .productImg img {
  padding: 0 77px 0;
}

.productName {
  margin: 20px auto 15px;
  max-width: 265px;
  height: 53px;
  text-align: center;
  font-size: 1.8rem;
  font-weight: 700;
}

.dhc-rip .productName {
  line-height: 53px;
}

.productComment {
  margin: 0 auto;
  max-width: 265px;
  height: 105px;
  font-weight: 500;
}

/*ドット*/

.slick-dots {
  bottom: -38px;
}

.slick-dots li button::before {
  color: #BCC6FF;
  font-size: .9rem;
  opacity: 1;
}

.slick-dots li.slick-active button::before {
  color: #DADF3F;
  opacity: 1;
}


/*
store
----------------------------------------------------------------*/

#detailMap-hokkaido,
#detailMap-okinawa,
#hokkaidoStores,
#okinawaStores {
  display: none;
}

#detailMap-hokkaido.active,
#detailMap-okinawa.active,
#hokkaidoStores.active,
#okinawaStores.active {
  display: block;
}


/* 全体地図
---------------------------------*/

.wholeMap-wrapper {
  margin: 50px auto 10px;
  width: 350px;
  height: 380px;
}

.wholeMap {
  position: relative;
  padding-top: 115px;
  z-index: 0;
}

.pftList li a:hover {
  opacity: 1;
}

.pftList-btn,
.pftList-shape {
  position: absolute;
  cursor: pointer;
  z-index: 0;
}

/*クリック・ホバーで色を変える*/

.pftList-btn .after,
.pftList-shape .after {
  display: none;
}

.pftList-btn.active .after,
.pftList-shape.active .after,
.pftList-btn.hover .after,
.pftList-shape.hover .after {
  display: block;
}

.pftList-btn.active .before,
.pftList-shape.active .before,
.pftList-btn.hover .before,
.pftList-shape.hover .before {
  display: none;
}


.pftList-btn {
  width: 72px;
}

.pftList-btn.pftList-hokkaido {
  top: 20px;
  right: 105px;
}

.pftList-shape.pftList-hokkaido {
  top: 0;
  right: 10px;
  width: 120px;
}

.pftList-btn.pftList-okinawa {
  top: 90px;
  left: 45px;
}

.pftList-shape.pftList-okinawa {
  top: 115px;
  left: 90px;
  width: 40px;
}

.line {
  position: absolute;
  top: 90px;
  left: 65px;
  width: 110px;
  transform: rotate(180deg);
  z-index: -1;
}

.honshu {
  padding-left: 10px;
  width: 265px;
}

/* 詳細地図
---------------------------------*/

#detailMap-wrapper {
  margin-top: -80px;
  padding-top: 80px;
  width: 100%;
}

.detailMap-flame {
  position: relative;
  width: 100%;
  height: 335px;
  background: #EBE8E8;
  border-radius: 20px;
  z-index: 0;
}

.detailMap-flame::after {
  content: "";
  position: absolute;
  bottom: 99%;
  left: 75%;
  margin-left: -10px;
  width: 0;
  height: 0;
  border: solid transparent;
  border-color: #c4cee400;
  border-top-width: 30px;
  border-bottom-width: 30px;
  border-left-width: 15px;
  border-right-width: 15px;
  border-bottom-color: #EBE8E8;
  pointer-events: none;
  z-index: 0;
}

.detailMap {
  position: relative;
  left: 50%;
  transform: translateX(-48%);
  width: 350px;
  height: 335px;
  z-index: 0;
}

.place {
  position: absolute;
  width: 72px;
  z-index: 0;
}

.place a .after {
  display: none;
}

.place a:hover .after {
  display: block;
}

.place a:hover .before {
  display: none;
}

.place a:hover {
  opacity: 1;
}

/*北海道*/

#detailMap-hokkaido {
  background: url(../img/parts/active_hokkaido.png) no-repeat top 45% left 65%;
  background-size: 275px;
}

.place.sapporo {
  top: 143px;
  left: 130px;
  width: 77px;
}

.place.otaru {
  top: 136px;
  left: 56px;
}

.place.niseko {
  top: 173px;
  left: 23px;
}

.place.noboribetsu {
  bottom: 75px;
  left: 86px;
}

.place.hakodate {
  bottom: 28px;
  left: 69px;
}

/*沖縄*/

#detailMap-okinawa {
  background: url(../img/parts/active_okinawa.png) no-repeat top 45% left 60%;
  background-size: 180px;
}

.place.naha {
  bottom: 95px;
  left: 70px;
}

.place.tomigusuku {
  bottom: 30px;
  left: 55px;
}

/* 店舗情報
---------------------------------*/

.storeInfo-area {
  margin-top: 50px;
  background: #4061A8;
  border-radius: 20px;
}

.storeInfo-inner {
  background: #fff;
  border-radius: 15px;
}

.paymentList {
  justify-content: center;
}

.paymentList-item {
  margin: 3px 0;
  font-size: 1.2rem;
  font-weight: 700;
}

.paymentList-item.creca {
  padding: 0 20px 0 25px;
  background: url(../img/parts/creca.png) no-repeat left center / 23px;
}

.paymentList-item.union {
  padding: 0 20px 0 22px;
  background: url(../img/parts/unionpay.png) no-repeat left center / 21px;
}

.paymentList-item.wechat {
  padding: 0 20px 0 60px;
  background: url(../img/parts/wechat-pay.png) no-repeat left center / 55px;
}

.paymentList-item.alipay {
  padding: 0 20px 0 83px;
  background: url(../img/parts/alipay.png) no-repeat left center / 80px;
}

.paymentList-item.kakao {
  padding: 0 20px 0 40px;
  background: url(../img/parts/kakaopay.png) no-repeat left center / 36px;
}

.paymentList-item.naver {
  padding: 0 20px 0 42px;
  background: url(../img/parts/naver-pay.png) no-repeat left center / 39px;
}

.paymentList-item.jko {
  padding: 0 20px 0 19px;
  background: url(../img/parts/jkopay.png) no-repeat left center / 17px;
}

.paymentList-item.kpus {
  padding: 0 0 0 20px;
  background: url(../img/parts/kplus.png) no-repeat left center / 18px;
}

@media screen and (min-width:425px) {
  .paymentList-item {
    font-size: 1.4rem;
  }

  .paymentList-item.creca {
    padding: 0 20px 0 27px;
    background-size: 25px;
  }

  .paymentList-item.union {
    padding: 0 20px 0 25px;
    background-size: 23px;
  }

  .paymentList-item.wechat {
    padding: 0 20px 0 65px;
    background-size: 59px;
  }

  .paymentList-item.alipay {
    padding: 0 20px 0 85px;
    background-size: 83px;
  }

  .paymentList-item.kakao {
    padding: 0 20px 0 45px;
    background-size: 40px;
  }

  .paymentList-item.naver {
    padding: 0 20px 0 47px;
    background-size: 43px;
  }

  .paymentList-item.jko {
    padding: 0 20px 0 21px;
    background-size: 18px;
  }

  .paymentList-item.kpus {
    padding: 0 0 0 22px;
    background-size: 19px;
  }
}

.jump-area {
  margin-top: -45px;
  padding-top: 70px;
}

.storeList-item:not(:last-child) {
  border-bottom: solid 2px #707070;
}

.ph-store,
.txtContent {
  width: 100%;
}

.ph-store img {
  height: 150px;
  object-fit: cover;
  border-radius: 10px;
}

@media screen and (min-width:400px) {
  .ph-store img {
    height: 200px;
  }
}

.storeName-area {
  justify-content: flex-start;
}

.storeName-area p {
  font-weight: 700;
}

.placeLabel {
  display: inline-block;
  margin: 15px 0 2px;
  padding: 1px 8px;
  min-width: 46px;
  text-align: center;
  font-size: 1.4rem;
  line-height: 1.3;
  border: solid 1px #333;
  border-radius: 4px;
}

.storeName {
  width: 100%;
  font-size: 2rem;
}

.location {
  margin: 12px 0 3px;
}

.storeList-item dl {
  margin: 0 3% 10px 0;
}

.storeList-item .location + .flex,
.storeList-item dl .flex {
  justify-content: flex-start;
}

.storeList-item dl dt {
  margin-right: 3px;
  min-width: 46px;
  text-align: center;
  font-size: 1.4rem;
  line-height: 1.3;
  border: solid 1px #333;
  border-radius: 4px;
}

.storeList-item dl .flex:first-child {
  margin-bottom: 4px;
}

.btn-gmap {
  display: inline-block;
  margin-bottom: 1.5em;
  padding-left: 1.1em;
  color: #4061A8;
  font-size: 90%;
  font-weight: 700;
  background: url(../img/parts/icon-map.png) no-repeat left -3px center / 1.2em;
  border-bottom: solid 1px #4061A8;
}

.paymentSup-list {
  justify-content: flex-start;
  margin-top: 15px;
}

.paymentSup-list-item {
  display: flex;
  align-items: center;
  margin: 5px 6px 0 0;
}

.paymentSup-list-item.creca {
  width: 25px;
}

.paymentSup-list-item.union {
  width: 23px;
}

.paymentSup-list-item.wechat {
  width: 59px;
}

.paymentSup-list-item.alipay {
  width: 83px;
}

.paymentSup-list-item.kakao {
  width: 40px;
}

.paymentSup-list-item.naver {
  width: 43px;
}

.paymentSup-list-item.jko {
  width: 18px;
}

.paymentSup-list-item.kplus {
  width: 19px;
}

/*上部に戻る矢印*/

.storeList-item {
  position: relative;
  justify-content: flex-start;
  align-items: flex-start;
  z-index: 0;
}

#return-arrow {
  position: absolute;
  top: 19px;
  right: 5px;
  z-index: 9990;
}

#return-arrow .arrow {
  width: .8em;
  height: .8em;
  transform: translate(25%, 0) rotate(-45deg);
  z-index: 9990;
}

#return-arrow .arrow::before,
#return-arrow .arrow::after {
  background: #848a97;
}

#return-arrow .arrow::before {
  height: 0.2em;
}

#return-arrow .arrow::after {
  width: 0.2em;
}

.storeList-item.daiou #return-arrow,
.storeList-item.iias #return-arrow {
  top: -25px;
}

.storeList-item:last-child #return-arrow.bottom {
  top: initial;
  bottom: 0;
}


/* comment area
---------------------------------*/

.emphasize {
  color: #4061A8;
  font-size: 2.4rem;
  font-weight: 700;
}

.emphasize span {
  background:linear-gradient(transparent 60%, #DADF3F 60%);
}

.storeComment-area p:nth-child(2) {
  margin-top: 15px;
  font-size: 1.8rem;
}

.fukidashi span {
  position: relative;
  z-index: 0;
}

.fukidashi span::before,
.fukidashi span::after{
  content: "";
  display: inline-block;
  position: absolute;
  top: 5px;
  width: 1px;
  height: 17px;
  background: #333;
  z-index: 0;
}
.fukidashi span::before{
  left: -15px;
  transform: rotate(-35deg);
}
.fukidashi span::after{
  right: -15px;
  transform: rotate(35deg);
}

/*=== button ===*/

.externalLink-btn {
  position: relative;
  padding-bottom: 6px;
  width: 100%;
  max-width: 320px;
  z-index: 0;
}

.externalLink-btn .btn {
  position: relative;
  padding: 20px;
  color: #fff;
  letter-spacing: .1rem;
  font-weight: 500;
  line-height: 1.1;
  background: #4061A8;
  border-radius: 50px;
  box-shadow: 0px 4px 8px #496092c7;
  transition: all 0.2s ease;
  z-index: 0;
}

.externalLink-btn .btn .txt {
  display: block;
  position: relative;
  transform: translateX(10px);
  z-index: 2;
}

.externalLink-btn .btn .txt .arrow {
  position: absolute;
  top: 50%;
  left: 10px;
  width: 0.6em;
  height: 0.6em;
  transform: translate(-25%, -50%) rotate(45deg);
  z-index: 2;
}

/*-- 下に押し込まれる（立体が平面に） --*/

/*影の設定*/
.externalLink-btn .btn:before {
  content: "";
  position: absolute;
  top: 5px;
  left: 0;
  /*影の形状*/
  width: 100%;
  height: 100%;
  border-radius: 10px;
  z-index: -1;
}

/*hoverの際にY軸に4pxずらす*/
.externalLink-btn .btn:hover .txt {
  transform: translate(10px, 4px);
}

.externalLink-btn .btn:hover {
  box-shadow: none;
  background: transparent;
  opacity: 1;
}

.externalLink-btn .btn:hover::before {
  background: #4061A8;
  border-radius: 50px;
}


/*
sns
----------------------------------------------------------------*/

.snsList {
  margin: 0 auto;
  max-width: 800px;
}

.snsList-item {
  margin-bottom: 10px;
  padding: 10px;
  width: 32%;
  background: #fff;
  color: #333;
  font-size: 1.2rem;
  font-weight: 700;
  border-radius: 20px;
}

.snsLogo {
  display: flex;
  align-items: center;
  margin: 0 auto 10px;
  height: 35px;
}

.qrArea {
  padding: 10px 10px 15px 10px;
  width: 100%;
  border-radius: 15px;
}

.qrArea:hover {
  color: #fff;
}

.qrArea .txt {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 2em;
  text-align: center;
  line-height: 1.1;
}

.qr {
  margin: 10px auto 0;
  max-width: 70px;
}

@media screen and (min-width:600px) {
  .snsList-item {
    margin-bottom: 15px;
    padding: 15px 20px 20px;
  }

  .snsLogo {
    margin: 0 auto 15px;
}
}

/*
facebook/Instagram
-----------------------*/

.snsList-item.facebook,
.snsList-item.insta {
  width: 100%;
}

.countryList-item {
  width: 100%;
}

.countryList-item:nth-child(2) {
  margin: 5px 0;
}

@media screen and (min-width:370px) {

  .countryList-item {
    width: 32%;
    min-width: 105px;
    max-width: 165px;
  }

  @media screen and (max-width:767.98px) {
    .snsList-item.insta .countryList-item {
      width: 49%;
      max-width: 100%;
    }
  }
}

/*
facebook
-----------------------*/

.snsList-item.facebook .snsLogo {
  max-width: 150px;
}

.snsList-item.facebook .qrArea {
  background: #AAC9F1;
}

.snsList-item.facebook .qrArea:hover {
  background: #1877F2;
}

@media screen and (min-width:370px) {

  .snsList-item.facebook .qrArea {
    padding: 10px 0 15px 0;
  }

  .snsList-item.facebook .qrArea:nth-child(2) {
    margin: 0 1px;
  }
}

.newLine {
  display: none;
}

@media screen and (min-width:370px) and (max-width:400px) {
  .newLine {
    display: block;
  }
}

.snsList-item.facebook .qr {
  margin: 10px auto 0;
}

/*
Instagram
-----------------------*/

.snsList-item.insta .snsLogo {
  max-width: 160px;
}

.snsList-item.insta .qrArea {
  background: #CEADCC;
}

.snsList-item.insta .qrArea:hover {
  background: #A734B0;
}

/*
WeChat
-----------------------*/

.snsList-item.wechat .snsLogo {
  max-width: 150px;
}

.snsList-item.wechat .qrArea {
  background: #87D271;
}

.snsList-item.wechat .qrArea:hover {
  background: #2DC100;
}

/*
red
-----------------------*/

.snsList-item.red .snsLogo {
  max-width: 90px;
}

.snsList-item.red .qrArea {
  background: #FF7F76;
}

.snsList-item.red .qrArea:hover {
  background: #FF1100;
}

/*
weibo
-----------------------*/

.snsList-item.weibo .snsLogo {
  max-width: 105px;
}

.snsList-item.weibo .qrArea {
  background: #E47C87;
}

.snsList-item.weibo .qrArea:hover {
  background: #E6162D;
}

/*
Global shopping site
-----------------------*/

.gssBtn {
  display: block;
  margin: 10px auto 0;
  width: 100%;
  max-width: 800px;
}

.gssBtn a {
  padding: 5% 6%;
  background: #DADF3F;
  border-radius: 20px;
  box-shadow:  15px 15px 15px #30497e;
}

.gssBtn a:hover {
  box-shadow: inset 15px 15px 15px #a4a72f,
              inset -15px -15px 15px #ffff4f;
  opacity: 1;
}

.gssBtn .txtArea {
  width: 75%;
}

.gssBtn .satudora {
  padding-bottom: 5px;
}

.gssBtn .qr {
  width: 20%;
}

.gssBtn .area {
  margin-top: 5px;
  color: #333;
  font-size: 1.4rem;
  font-weight: 500;
}


/*
company
----------------------------------------------------------------*/

.companyInfo .flex {
  align-items: normal;
}

.companyInfo dt,
.companyInfo dd {
  display: flex;
  align-items: center;
  font-size: 1.5rem;
}

.companyInfo dt {
  padding: 8px 3px;
  font-weight: 500;
  width: 25%;
  border-top: solid 1px #4061A8;
  border-left: solid 1px #4061A8;
  background: #C4CEE4;
}

.companyInfo dd {
  padding: 8px 10px;
  width: 75%;
  border-top: solid 1px #4061A8;
  border-right: solid 1px #4061A8;
  border-left: solid 1px #4061A8;
}

.companyInfo .flex:last-child dt,
.companyInfo .flex:last-child dd {
  border-bottom: solid 1px #4061A8;
}

.companyInfo .flex:first-child dt {
  border-radius: 15px 0 0 0;
}

.companyInfo .flex:first-child dd {
  border-radius: 0 15px 0 0;
}

.companyInfo .flex:last-child dt {
  border-radius: 0 0 0 15px;
}

.companyInfo .flex:last-child dd {
  border-radius: 0 0 15px 0;
}

@media screen and (min-width:380px) {

  .companyInfo dt,
  .companyInfo dd {
    font-size: 1.6rem;
  }
}

@media screen and (min-width:440px) {

  .companyInfo dt,
  .companyInfo dd {
    padding: 10px;
  }
}

/* footer
================================================================*/

/*
常時固定ボタン
---------------------------------*/

#fixedWrap {
  position: fixed;
  bottom: 2px;
  right: 0;
  width: 28%;
  max-width: 150px;
  z-index: 9999;
}

#fixedWrap.is-hidden {
  visibility: hidden;
  opacity: 0;
  transition: .5s;
}

.couponBtn,
.ecBtn {
  text-align: center;
  border: solid 3px #fff;
  border-radius: 10px;
}

.couponBtn {
  padding: 12px 2px 10px;
  font-size: 1.5rem;
}

.img-coupon2 {
  margin: 0 auto;
  width: 85%;
}

.ecBtn {
  margin-top: 5px;
  padding: 5px 2px 8px;
  color: #4061A8;
  font-size: 1.2rem;
  line-height: 1.1;
  background: #DADF3F;
}

.img-cart {
  margin: 0 auto 5px;
  width: 32%;
}

/* page Top */

#pageTop a {
  margin: 5px auto 0;
  padding: 3px;
  width: 75%;
  max-width: 90px;
  line-height: 0;
}

.copyright {
  padding: 25px 0 15px;
  text-align: center;
  font-size: 1.4rem;
  letter-spacing: 0;
}


/*
coupon-screen
================================================================*/

.coupon-screen {
  padding: 20px 0;
  max-width: 400px;
}

.btn-square-pop {
  display: block;
  position: relative;
  margin: 20px auto;
  padding: 0.25em 0.5em;
  width: 92%;
  max-width: 600px;
  text-align: center;
  color: #FFF;
  font-size: 4rem;
  font-weight: 700;
  background: #C9D100;
  border-bottom: solid 2px #C9D100;
  border-radius: 4px;
  box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.2), 0 2px 2px rgba(0, 0, 0, 0.19);
}




















/*================================================================
 タブレット（画面幅768px以上で読み込む）
================================================================*/
@media screen and (min-width:768px) {

  .wave {
    height: 35px;
    background-size: 160px;
  }

  /*
  見出し（ｈ）
  ---------------------------------*/

  h2 {
    font-size: 3.6rem;
  }

  h2 + p {
    font-size: 1.8rem;
    letter-spacing: .05rem;
  }

  h3 {
    font-size: 3rem;
  }


  /*
  header
  ================================================================*/
  .topSide {
    height: 75px;
  }

  .headerLogo {
    max-width: 310px;
  }

  .headerBtn-wrap {
    height: 75px;
    max-width: 250px;
  }

  .snsBtn,
  .transBtn,
  .hamburger-menu {
    width: 32%;
    max-width: 75px;
    cursor: pointer;
  }

  .snsBtn {
    padding: 0 0 0 22px;
  }

  .transBtn {
    padding: 0 10px;
  }

  /*
  ハンバーガー　ボタン部分
  ---------------------------------*/

  .hamburger-menu__bar {
    top: 25px;
    width: 35px;
  }

  .hamburger-menu__bar:nth-child(3) {
    top: 49px;
    width: 20px;
    transform: translateX(-17px);
  }

  .hamburger-menu.active .hamburger-menu__bar {
    top: 35px;
    transform: translateX(-50%) rotate(43deg);
    width: 40px;
  }

  .hamburger-menu.active .hamburger-menu__bar:nth-child(3) {
    transform: translateX(-50%) rotate(-43deg);
    width: 40px;
  }

  /*
  メニューリスト部分（共通）
  ---------------------------------*/

  .trans-navigation,
  .navigation {
    font-size: 1.8rem;
  }

  /*
  メニューリスト部分（翻訳）
  ---------------------------------*/

  .trans-navigation {
    top: 85px;
    width: 160px;
  }

  .trans-navigation .navigation__list-item .navigation__link {
    padding: 13px 0;
  }
  .trans-navigation .navigation__list-item:first-child .navigation__link {
    padding: 18px 0 13px;
  }
  .trans-navigation .navigation__list-item:last-child .navigation__link {
    padding: 13px 0 18px;
  }

  /*
  メニューリスト部分（グローバルメニュー）
  -----------------------------------*/

  .navigation {
    top: 75px;
    right: -230px;
    max-width: 220px;
  }

  .navigation .navigation__list-item .navigation__link {
    padding: 18px 0;
  }
  .navigation .navigation__list-item:first-child .navigation__link {
    padding: 25px 0 18px;
  }
  .navigation .navigation__list-item:last-child .navigation__link {
    padding: 18px 0 25px;
  }

  /*
  main
  ================================================================*/
  /*
  mv
  ----------------------------------------------------------------*/
  .ribbon {
    top: -25px;
    max-width: 1100px;
    width: 73%;
    z-index: 9999;
  }

  .categoryList {
    position: absolute;
    top: 2%;
    right: 1%;
    max-width: 300px;
    width: 22%;
    height: 22.5%;
    max-height: 160px;
    z-index: 0;
  }

  .categoryList-item {
    position: absolute;
    width: 48%;
    z-index: 0;
  }

  .categoryList-item:first-child {
    top: 0;
    left: 0;
  }

  .categoryList-item:nth-child(2) {
    top: 0;
    right: 0;
  }

  .categoryList-item:nth-child(3) {
    bottom: 0;
    left: 0;
  }

  .categoryList-item:last-child {
    bottom: 0;
    right: 0;
  }

  .stores {
    top: 44%;
    width: 16%;
    max-width: 280px;
  }

  @media screen and (min-width:1800px) {
    .stores {
      top: 38%;
    }
  }

  /*
  about
  ----------------------------------------------------------------*/

  .intro {
    text-align: center;
  }

  .video iframe {
    height: 350px;
  }

  .videoComment {
    left: 10px;
    transform: rotate(-4deg);
  }

  p.videoComment + .flex {
    align-items: baseline;
    height: auto;
}

  .video {
    width: 72%;
  }

  .videoComment-2-wrapper {
    width: 26%;
    transform: translateX(10px);
  }

  .videoComment-2-wrapper .commentArea {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    background: url(../img/parts/bg-frame.png) no-repeat left 50% top;
    background-size: contain;
    width: 100%;
    max-width: 205px;
    height: 210px;
    z-index: 0;
  }

  .videoComment-2 {
    position: absolute;
    top: 22%;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    font-size: inherit;
    font-weight: 400;
    z-index: 0;
  }

  @media screen and (min-width:850px) {

    .videoComment-2-wrapper .commentArea {
      height: 230px;
    }

    .videoComment-2 {
      top: 23%;
    }
  }

  .characterWrap {
    justify-content: center;
  }

  .character-1,
  .character-2 {
    padding: 0 5px 0;
  }

  .character-1 {
    width: 44%;
    max-width: 93px;
  }

  .character-2 {
    width: 42%;
    max-width: 90px;
  }

  /*
  Recommend
  ----------------------------------------------------------------*/

  /*------slick-------*/

  /*矢印*/

  .slick-prev {
    left: -23px;
  }

  .slick-next {
    right: -23px;
  }

  /*スライドさせるカード*/

  .slickItem {
    width: 303px;
    margin: 0 10px;
  }

  /*coupon*/

  .couponInfo > p {
    text-align: center;
    font-size: 1.8rem;
    line-height: 1.6;
    letter-spacing: .05rem;
  }

  /*
  Store
  ----------------------------------------------------------------*/

  #store.inner {
    max-width: 1000px;
  }

  /* 全体地図
  ---------------------------------*/

  .wholeMap-wrapper {
    margin: 80px auto 0;
  }

  .honshu {
    padding-left: 10px;
    width: 265px;
  }

  /* 詳細地図
  ---------------------------------*/

  #detailMap-wrapper {
    margin: 80px auto 0;
    padding-top: 0;
    width: calc(100% - 350px);
    max-width: 380px;
  }

  .detailMap-flame {
    height: 380px;
  }

  .detailMap-flame::after {
    top: 50%;
    transform: translateY(-50%);
    left: -30px;
    border-color: #c4cee400;
    border-top-width: 15px;
    border-bottom-width: 15px;
    border-left-width: 15px;
    border-right-width: 30px;
    border-right-color: #EBE8E8;
  }

  .detailMap {
    top: 5%;
  }

  /* 店舗情報
  ---------------------------------*/

  .storeInfo-area {
    margin-top: 60px;
    padding-bottom: 30px;
  }

  .storeInfo-inner {
    padding-bottom: 20px;
  }

  .paymentList {
    margin: 10px auto 0;
    max-width: 830px;
  }

  .paymentList-item {
    font-size: 1.6rem;
  }

  .paymentList-item.creca {
    padding: 0 25px 0 30px;
    background-size: 28px;
  }

  .paymentList-item.union {
    padding: 0 25px 0 28px;
    background-size: 26px;
  }

  .paymentList-item.wechat {
    padding: 0 25px 0 75px;
    background-size: 69px;
  }

  .paymentList-item.alipay {
    padding: 0 25px 0 107px;
    background-size: 105px;
  }

  .paymentList-item.kakao {
    padding: 0 25px 0 50px;
    background-size: 45px;
  }

  .paymentList-item.naver {
    padding: 0 25px 0 50px;
    background-size: 46px;
  }

  .paymentList-item.jko {
    padding: 0 25px 0 23px;
    background-size: 20px;
  }

  .paymentList-item.kpus {
    padding: 0 0 0 25px;
    background-size: 21px;
  }

  .storeList-item {
    padding-bottom: 40px;
  }

  .jump-area {
    padding-top: 80px;
  }

  .ph-store {
    padding-right: 4%;
    width: 40%;
  }

  .txtContent {
    width: 60%;
  }

  .placeLabel {
    margin: 0;
  }

  .storeName {
    display: inline-block;
    margin-left: 8px;
    width: auto;
  }

  .storeList-item dl dt {
    margin-right: 6px;
  }

  .paymentSup-list {
    margin-top: 10px;
  }

  .paymentSup-list-item.creca {
    width: 30px;
  }

  .paymentSup-list-item.union {
    width: 29px;
  }

  .paymentSup-list-item.wechat {
    width: 70px;
  }

  .paymentSup-list-item.alipay {
    width: 100px;
  }

  .paymentSup-list-item.kakao {
    width: 48px;
  }

  .paymentSup-list-item.naver {
    width: 48px;
  }

  .paymentSup-list-item.jko {
    width: 22px;
  }

  .paymentSup-list-item.kplus {
    width: 24px;
  }

  /* comment area
  ---------------------------------*/

  .emphasize {
    font-size: 3.2rem;
  }

  .storeComment-area p:nth-child(2) {
    font-size: 2rem;
  }

  .externalLink-wrapper p {
    font-size: 1.8rem;
  }

  .fukidashi span::before,
  .fukidashi span::after{
    height: 19px;
  }
  .fukidashi span::before{
    left: -18px;
  }
  .fukidashi span::after{
    right: -18px;
  }

  /*=== button ===*/

  .externalLink-btn {
    max-width: 410px;
  }

  .externalLink-btn .btn {
    padding: 22px;
  }

  .externalLink-btn .btn .txt {
    font-size: 2rem;
  }

  .externalLink-btn .btn .txt .arrow {
    left: 15px;
  }

  /*
  sns
  ----------------------------------------------------------------*/

  .snsList-item {
    font-size: 1.6rem;
  }

  .snsLogo {
    height: 45px;
  }

  .qrArea {
    display: block;
    margin: 0 auto;
    padding: 15px 20px 20px;
    max-width: 165px;
  }

  .qrArea .txt {
    width: 100%;
  }

  .qr {
    margin: 10px auto 0;
    width: 80px;
    max-width: 80px;
  }

  /*
  facebook/Instagram
  -----------------------*/

  .snsList-item.facebook,
  .snsList-item.insta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 17px;
  }

  .snsList-item.facebook .snsLogo,
  .snsList-item.insta .snsLogo {
    margin: 0 auto;
    transform: translateX(-5px);
  }

  .snsList-item.insta .countryList {
    justify-content: flex-start;
  }

  .snsList-item.insta .countryList-item {
    margin-right: 3%;
  }

  /*
  facebook
  -----------------------*/

  .snsList-item.facebook .snsLogo {
    max-width: 175px;
  }

  .snsList-item.facebook .snsLogo img {
    margin: 0 auto;
    width: 90%;
  }

  .countryList {
    max-width: 525px;
  }

  .snsList-item.facebook .qrArea {
    padding: 15px 0 20px;
  }

  /*
  Instagram
  -----------------------*/

  .snsList-item.insta .snsLogo {
    max-width: 175px;
  }


  /*
  WeChat
  -----------------------*/

  .snsList-item.wechat .snsLogo {
    max-width: 170px;
  }

  /*
  red
  -----------------------*/

  .snsList-item.red .snsLogo {
    max-width: 110px;
  }

  /*
  weibo
  -----------------------*/

  .snsList-item.weibo .snsLogo {
    max-width: 125px;
  }

  /*
  Global shopping site
  -----------------------*/

  .gssBtn a {
    padding: 6%;
  }

  .gssBtn .txtArea {
    width: 86%;
  }

  .gssBtn .satudora {
    width: 50%;
  }

  .gssBtn .gss {
    padding-left: 10px;
    width: 50%;
  }

  .gssBtn .qr {
    margin: 0;
    width: 80px;
  }

  .gssBtn .area {
    font-size: 2.1rem;
  }

  /*
  company
  ----------------------------------------------------------------*/

  .companyInfo dt,
  .companyInfo dd {
    font-size: 1.8rem;
  }

  .companyInfo dt,
  .companyInfo dd {
    padding: 15px 20px;
  }


  /* footer
  ================================================================*/

  .copyright {
    padding: 45px 0 20px;
  }


  /*
  coupon-screen
  ================================================================*/

  .coupon-screen {
    padding: 20px 0;
    max-width: 400px;
  }


}













/*================================================================
PC（画面幅1080px以上で読み込む）
================================================================*/

@media screen and (min-width:1080px) {

  /*
  about
  ----------------------------------------------------------------*/

  /*point
  ------------*/

  .pointList {
    max-width: 100%;
  }

  .pointList-item {
    width: 22%;
  }

  .pointList-item:first-child,
  .pointList-item:nth-child(2) {
    margin-bottom: 0;
  }

  .headline {
    margin-bottom: 25px;
    height: 60px;
    font-size: 2rem;
    line-height: 60px;
  }

  .pointList-item:nth-child(3) .headline {
    font-size: 1.9rem;
    line-height: 24px;
  }

  .headline:before {
    border-width: 32px 0px 32px 13px;
  }

  .headline:after {
    border-width: 32px 13px 32px 0px;
  }

  .img-taxfree {
    width: 90px;
  }

  .img-payment {
    width: 110px;
  }

  .img-coupon {
    padding: 23.5px 0;
    width: 160px;
  }

  .img-language {
    padding: 20px 0;
    width: 136.5px;
  }

  .pointList-item .ex {
    margin-top: 15px;
  }

  /*
  Recommend
  ----------------------------------------------------------------*/

  /*------slick-------*/

  /*矢印*/

  .slick-prev {
    left: -45px;
  }

  .slick-next {
    right: -45px;
  }

  /*
  Store
  ----------------------------------------------------------------*/
  /* 全体地図
  ---------------------------------*/

  .wholeMap-wrapper {
    width: 470px;
    height: 455px;
  }

  .wholeMap {
    padding-top: 132px;
  }

  .pftList-btn.pftList-hokkaido {
    top: 30px;
    right: 195px;
  }

  .pftList-shape.pftList-hokkaido {
    top: 0;
    right: 79px;
    width: 140px;
  }

  .pftList-shape.pftList-okinawa {
    width: 47px;
  }

  .line {
    width: 129px;
  }

  .honshu {
    padding-left: 0;
    width: 310px;
  }

  /* 詳細地図
  ---------------------------------*/

  #detailMap-wrapper {
    max-width: 450px;
  }

  .detailMap-flame {
    height: 455px;
  }

  .detailMap {
    top: 11%;
    transform: translateX(-45%);
  }

  /*北海道*/

  #detailMap-hokkaido {
    background-size: 350px;
  }

  .place.sapporo {
    top: 155px;
    left: 96px;
  }

  .place.otaru {
    top: 145px;
    left: 19px;
  }

  .place.niseko {
    top: 188px;
    left: -17px;
  }

  .place.noboribetsu {
    bottom: 53px;
    left: 50px;
  }

  .place.hakodate {
    bottom: 1px;
    left: 30px;
  }

  /*沖縄*/

  #detailMap-okinawa {
    background-size: 230px;
  }

  .place.naha {
    bottom: 74px;
    left: 38px;
  }

  .place.tomigusuku {
    bottom: 0px;
    left: 20px;
  }

  /* 店舗情報
  ---------------------------------*/

  .storeInfo-area {
    padding-bottom: 35px;
  }

  /*上部に戻る矢印*/

  #return-arrow {
    top: 14px;
  }

  .storeList-item.daiou #return-arrow,
  .storeList-item.iias #return-arrow {
    top: -30px;
  }

}

