@charset "UTF-8";
/* CSS Document */


/* ////////////////////////////////////////////////////////////////////////////////

	Common

//////////////////////////////////////////////////////////////////////////////// */

@font-face {
  font-family: 'sns_ico';
  src:
    url('../fonts/sns_ico.ttf?z7sza2') format('truetype'),
    url('../fonts/sns_ico.woff?z7sza2') format('woff'),
    url('../fonts/sns_ico.svg?z7sza2#sns_ico') format('svg');
  font-weight: normal;
  font-style: normal;
}

i.snsIcon {
  font-family: 'sns_ico' !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

	color: #000;
}

.icon-search:before { content: "\e908";}
.icon-arrow1_left:before { content: "\e90c";}
.icon-arrow1_bottom:before { content: "\e90d";}
.icon-arrow1_right:before { content: "\e90e";}
.icon-arrow1_top:before { content: "\e90f";}
.icon-arrow2_left:before { content: "\e910";}
.icon-arrow2_bottom:before { content: "\e911";}
.icon-arrow2_right:before { content: "\e912";}
.icon-arrow2_top:before { content: "\e913";}
.icon-link:before { content: "\e914";}
.icon-note:before { content: "\e915";}
.icon-ap:before { content: "\e900";}
.icon-blo:before { content: "\e901";}
.icon-fb:before { content: "\e902";}
.icon-hp:before { content: "\e903";}
.icon-in:before { content: "\e904";}
.icon-line:before { content: "\e905";}
.icon-spo:before { content: "\e906";}
.icon-tt:before { content: "\e907";}
.icon-yt:before { content: "\e909";}
.icon-x:before { content: "\e90a";}
.icon-wb:before { content: "\e90b";}
.icon-arrow3_top:before { content: "\ea3a";}
.icon-arrow3_right:before { content: "\ea3c";}
.icon-arrow3_bottom:before { content: "\ea3e";}
.icon-arrow3_left:before { content: "\ea40";}


html {
	scroll-behavior: smooth;
}
body {
  font-family: "IBM Plex Sans JP", sans-serif;
	font-size: min(3.2vw, 14px);
	line-height: 1.8;
	-webkit-text-size-adjust: 100%;
  background-color: #ededed;
}

img {
	max-width: 100%;
	height: auto;
}
ul { list-style: none;}

.anim {
	opacity: 0;
	transition: all .6s ease-out;
}
.anim.on {
	opacity: 1;
}

a {
  color: #000;
}

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

	.sp { display: none !important;}

	a { transition: all 0.3s ease-out;}
	a:hover { opacity: 0.5;}

}
@media screen and (max-width: 820px) {

	.pc { display: none !important;}

}


/* ////////////////////////////////////////////////////////////////////////////////

	Header

//////////////////////////////////////////////////////////////////////////////// */
header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: min(3vw, 15px) min(12vw, 100px) min(3vw, 15px) min(4vw, 20px);
  background-color: #ededed;
  position: sticky;
  top: 0;
  left: 0;
  width: 100vw;
  z-index: 1000;
}
header .hdrBlock {
  display: flex;
  align-items: center;
  gap: min(6vw, 40px);
}

header h1 {
  width: min(30vw, 200px);
  line-height: 0;
}
header .hdrNavWrap .hdrNav {
  display: flex;
  gap: min(5vw, 25px);
}
header .hdrNavWrap .hdrNav a {
  text-decoration: none;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: min(2vw, 10px);
}
header .hdrNavWrap .hdrNav .forFirstTime a {
  color: #005744;
}
header .hdrNavWrap .hdrNav a span {
  display: block;
  width: 2em;
  height: 2em;
  aspect-ratio: 1/1;
}

header .hdrNavWrap .hdrNav li:nth-child(1) a span {
  width: 1.6em;
  background: url("../images/navi_ico01.png") no-repeat center center / contain;
}
header .hdrNavWrap .hdrNav li:nth-child(2) a span {
  background: url("../images/navi_ico02.png") no-repeat center center / contain;
}
header .hdrNavWrap .hdrNav li:nth-child(3) a span {
  width: 2.2em;
  background: url("../images/navi_ico03.png") no-repeat center center / contain;
}
header .hdrNavWrap .hdrNav li:nth-child(4) a span {
  width: 2.5em;
  background: url("../images/navi_ico04.png") no-repeat center center / contain;
}
header .hdrNavWrap .hdrNav li:nth-child(5) a span {
  background: url("../images/navi_ico05.png") no-repeat center center / contain;
}
header .hdrNavWrap .hdrNav li:nth-child(6) a span {
  width: 1.6em;
  background: url("../images/navi_ico06.png") no-repeat center center / contain;
}

header .hdrBtn {
  display: flex;
  align-content: center;
  gap: min(2vw, 10px);
}
header .hdrBtn a {
  display: block;
  text-decoration: none;
  width: 140px;
  text-align: center;
  padding: min(1vw, 4px) min(2vw, 10px) min(0.7vw, 3px);
  border-radius: min(1vw, 5px);
  font-weight: bold;
}
header .hdrBtn .appraisalBtn a {
  background-color: #cf102b;
  border: #cf102b solid 2px;
  color: #fff;
}
header .hdrBtn .contactBtn a {
  background-color: #fff;
  text-align: center;
  border: #000 solid 2px;
}


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

  .hdrNavWrap {
    display: none;
  }

}

#globalNavi {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 1000;
  background-color: rgba(0,0,0,0.60);

  display: none;
}
#globalNavi .globalNaviMain {
  position: absolute;
  top: 0;
  right: 0;
  width: 1140px;
  max-width: calc(100% - 40px);
  background-color: #ededed;
  border-radius: min(4vw, 20px) 0 0 min(4vw, 20px);
  padding: min(4vw, 20px) min(10vw, 80px) min(8vw, 60px) min(8vw, 60px);
}
#globalNavi .menuLogo {
  width: 180px;
  line-height: 0;
  margin-bottom: min(6vw, 40px);
}

#globalNavi .hdrNav {
  display: flex;
  justify-content: space-around;
  gap: min(5vw, 25px);
  padding-bottom: min(4vw, 20px);
  border-bottom: #aeaeae solid 1px;
}
#globalNavi .hdrNav a {
  text-decoration: none;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: min(2vw, 10px);
}
#globalNavi .hdrNav .forFirstTime a {
  color: #005744;
}
#globalNavi .hdrNav a span {
  display: block;
  width: 2em;
  height: 2em;
  aspect-ratio: 1/1;
}

#globalNavi .hdrNav li:nth-child(1) a span {
  width: 1.6em;
  background: url("../images/navi_ico01.png") no-repeat center center / contain;
}
#globalNavi .hdrNav li:nth-child(2) a span {
  background: url("../images/navi_ico02.png") no-repeat center center / contain;
}
#globalNavi .hdrNav li:nth-child(3) a span {
  width: 2.2em;
  background: url("../images/navi_ico03.png") no-repeat center center / contain;
}
#globalNavi .hdrNav li:nth-child(4) a span {
  width: 2.5em;
  background: url("../images/navi_ico04.png") no-repeat center center / contain;
}
#globalNavi .hdrNav li:nth-child(5) a span {
  background: url("../images/navi_ico05.png") no-repeat center center / contain;
}
#globalNavi .hdrNav li:nth-child(6) a span {
  width: 1.6em;
  background: url("../images/navi_ico06.png") no-repeat center center / contain;
}

#globalNavi .subMenu {
  display: flex;
  justify-content: space-around;
  align-items: center;
  padding: min(4vw, 20px) 0;
}
#globalNavi .subMenu li a {
  font-size: min(3.2vw, 14px);
  font-weight: bold;
  text-decoration: none;
}
#globalNavi .subMenu li.contact a {
  color: #005744;
  border: #005744 solid 1px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(2vw, 10px);
  padding: min(1vw, 6px) min(6vw, 30px) min(1vw, 5px) min(6vw, 30px);
  border-radius: 100px;
}
#globalNavi .subMenu li.contact a::before {
  content: "";
  display: block;
  width: 1.3em;
  aspect-ratio: 40/37;
  background: url("../images/ico_mail.png") no-repeat center center / contain;
}
#globalNavi .menuFlex {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}
#globalNavi #shopSearch {
  padding: 0;
  width: 49%;
  margin-bottom: 0;
}
#globalNavi #shopSearch h3 {
  margin-bottom: min(3vw, 15px);
  font-size: min(3.8vw, 20px);
}
#globalNavi #shopSearch .topShopSearchInr {
  height: 100%;
  padding: min(6vw, 20px) min(6vw, 30px) min(6vw, 20px) min(6vw, 30px);
}
#globalNavi #shopSearch .searchForm {
  margin-bottom: 0;
}
#globalNavi #shopSearch .searchForm .searchInput input[type="text"],
#globalNavi #shopSearch .searchForm .searchInput input[type="search"] {
  font-size: 16px;
  width: 65%;
}
#globalNavi .bnrAppraisal {
  padding: 0;
  width: 49%;
  line-height: 0;
  position: relative;
}
#globalNavi .bnrAppraisal ul {
  position: absolute;
  bottom: min(4vw, 20px);
  left: 0;
  width: 100%;
  display: flex;
  padding: 0 min(4vw, 20px);
  gap: 0 min(2vw, 10px);
}


#menuButton {
  display: block;
  width: min(14vw, 80px);
  aspect-ratio: 165/143;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 9999;
  background: url("../images/menu_btn_bg.png") no-repeat right top / contain;
}
#menuButton.active {
  background: url("../images/menu_btn_bg_open.png") no-repeat right top / contain;
}
#menuButton span {
  display: block;
  background: #005744;
  width: 50%;
  height: 3px;
  position: absolute;
  top: 42%;
  left: 56%;
  transition: all 0.4s;
}
#menuButton.active span {
  background: #ffe512;
}
#menuButton span:nth-child(1) { transform: translate(-50%, -350%) rotate(0deg);}
#menuButton span:nth-child(2) { transform: translate(-50%, 250%) rotate(0deg);}
#menuButton span:nth-child(3) { transform: translate(-50%, -50%);}
#menuButton.active span:nth-child(1) { transform: translate(-50%, -50%) rotate(45deg);}
#menuButton.active span:nth-child(2) { transform: translate(-50%, -50%) rotate(-45deg);}
#menuButton.active span:nth-child(3) { opacity: 0;}

#menuButton:hover {
  opacity: 1;
}

@media screen and (min-width: 821px) {
  #globalNavi .spBtn {
    display: none;
  }
}
@media screen and (max-width: 820px) {

  #globalNavi .menuLogo {
    padding: min(5vw, 25px) min(4vw, 20px);
    margin-bottom: 0;
    width: min(40vw, 180px);
  }
  #globalNavi .globalNaviMain {
    border-radius: 0;
    width: 100%;
    max-width: 100%;
    height: 100%;
    padding: 0;
  }

  #globalNavi .hdrNav {
    gap: 0;
    flex-direction: column;
    padding-bottom: 0;
  }
  #globalNavi .hdrNav li {
    width: 100%;
    border-top: #aeaeae solid 1px;
  }

  #globalNavi .hdrNav li.forFirstTime {
    border: none;
    position: absolute;
    top: min(6.4vw, 60px);
    right: min(14vw, 100px);
    width: fit-content;
    padding: 0;
  }
  #globalNavi .hdrNav li.forFirstTime a {
    padding: 0;
  }

  #globalNavi .hdrNav a {
    padding: min(3vw, 15px) min(4vw, 20px);
  }
  #globalNavi .hdrNav a span {
    display: block;
    width: 2em;
    height: 2em;
    aspect-ratio: 1/1;
  }

  #globalNavi .hdrNav li:nth-child(1) a span {
    width: 2.5em;
  }
  #globalNavi .hdrNav li:nth-child(2) a span {
    width: 2.5em;
  }
  #globalNavi .hdrNav li:nth-child(3) a span {
    width: 2.5em;
  }
  #globalNavi .hdrNav li:nth-child(4) a span {
    width: 2.5em;
  }
  #globalNavi .hdrNav li:nth-child(5) a span {
    width: 2.5em;
  }
  #globalNavi .hdrNav li:nth-child(6) a span {
    width: 2.5em;
  }

  #globalNavi .subMenu li.contact {
    padding: min(4vw, 20px);
    width: 100%;
    border: none;
  }
  #globalNavi .subMenu li.contact a {
    width: 80%;
    margin: 0 auto;
    font-size: min(3.8vw, 20px);
  }

  #globalNavi .subMenu {
    padding: 0;
    flex-wrap: wrap;
    gap: 0;
  }
  #globalNavi .subMenu li {
    width: 50%;
    border-bottom: #aeaeae solid 1px;
  }
  #globalNavi .subMenu li:nth-child(even) {
    border-left: #aeaeae solid 1px;
  }
  #globalNavi .subMenu li a {
    display: block;
    text-align: center;
    padding: min(3vw, 15px);
  }

  #globalNavi .menuFlex {
    display: none;
  }

  #globalNavi .spBtn {
    display: flex;
    align-items: flex-end;
  }
  #globalNavi .spBtn li {
    width: 50%;
    line-height: 0;
  }

}

/* ////////////////////////////////////////////////////////////////////////////////

	Footer

//////////////////////////////////////////////////////////////////////////////// */
footer {
  padding: min(7vw, 50px) min(6vw, 60px);
  width: 100vw;
  background: #005744;
  color: #fff;
}
footer .ftrBlock {
  display: flex;
  align-items: center;
  gap: min(6vw, 40px);
  width: 100%;
}
footer .ftrBlock:first-child {
  border-bottom: #fff solid 1px;
  padding-bottom: min(5vw, 25px);
  margin-bottom: min(6vw, 30px);
}
footer .ftrBlock:last-child {
  justify-content: space-between;
}

footer .ftrLogo {
  width: min(36vw, 170px);
  line-height: 0;
}
footer .ftrAddress {
  font-size: min(3vw, 12px);
}


footer .ftrNav {
  display: flex;
  gap: min(5vw, 25px);
  margin-bottom: min(6vw, 30px);
}
footer .ftrNav a {
  text-decoration: none;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: min(2vw, 10px);
  color: #fff;
  font-size: min(3.6vw, 16px);
}
footer .ftrNav a span {
  display: block;
  width: 2em;
  height: 2em;
  aspect-ratio: 1/1;
}

footer .ftrNav li:nth-child(1) a span {
  width: 1.6em;
  background: url("../images/navi_ico01_w.png") no-repeat center center / contain;
}
footer .ftrNav li:nth-child(2) a span {
  background: url("../images/navi_ico02_w.png") no-repeat center center / contain;
}
footer .ftrNav li:nth-child(3) a span {
  width: 2.2em;
  background: url("../images/navi_ico03_w.png") no-repeat center center / contain;
}
footer .ftrNav li:nth-child(4) a span {
  width: 2.5em;
  background: url("../images/navi_ico04_w.png") no-repeat center center / contain;
}
footer .ftrNav li:nth-child(5) a span {
  background: url("../images/navi_ico05_w.png") no-repeat center center / contain;
}
footer .ftrNav li:nth-child(6) a span {
  width: 1.6em;
  background: url("../images/navi_ico06_w.png") no-repeat center center / contain;
}

footer .subMenu {
  display: flex;
  gap: min(4vw, 20px);
}
footer .subMenu li a {
  color: #fff;
  text-decoration: none;
  font-size: min(3.2vw, 12px);
}

footer .copyright {
  font-size: min(3vw, 12px);
}

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

  footer {
    padding-right: 0;
    padding-left: 0;
  }
  footer .ftrBlock {
    flex-direction: column;
  }
  footer .ftrBlock:first-child {
    margin-bottom: 0;
  }
  footer .ftrAddress {
    margin: 0 min(4vw, 20px);
  }
  footer .ftrNav {
    flex-direction: column;
    gap: 0;
    margin-bottom: 0;
  }
  footer .ftrNav li {
    border-bottom: #fff solid 1px;
  }
  footer .ftrNav li a {
    padding: min(4vw, 20px) min(4vw, 20px);
  }
  footer .ftrNav li:nth-child(1) a span {
    width: 2.5em;
  }
  footer .ftrNav li:nth-child(2) a span {
    width: 2.5em;
  }
  footer .ftrNav li:nth-child(3) a span {
    width: 2.5em;
  }
  footer .ftrNav li:nth-child(4) a span {
    width: 2.5em;
  }
  footer .ftrNav li:nth-child(5) a span {
    width: 2.5em;
  }
  footer .ftrNav li:nth-child(6) a span {
    width: 2.5em;
  }

  footer .subMenu {
    flex-wrap: wrap;
    gap: 0;
  }
  footer .subMenu li {
    width: 50%;
    border-bottom: #fff solid 1px;
  }
  footer .subMenu li:nth-child(odd) {
    border-right: #fff solid 1px;
  }
  footer .subMenu li a {
    display: block;
    text-align: center;
    padding: min(4vw, 20px) min(4vw, 20px);
  }

}


/* ////////////////////////////////////////////////////////////////////////////////

	Common

//////////////////////////////////////////////////////////////////////////////// */

main {
  max-width: 1320px;
  padding: min(8vw, 60px) min(5vw, 60px) min(10vw, 80px);
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

#mainColumn {
  width: calc(100% - 350px);
}
.contentBlock {
  background-color: #fff;
  padding: min(7vw, 40px) min(5vw, 30px);
  border-radius: min(4vw, 20px);
  margin-bottom: min(6vw, 30px);
}
.contentBlock.fitSide {
  padding: min(7vw, 40px) 0;
}
.contentBlock h3 {
  text-align: center;
  color: #0e5945;
  font-size: min(5.2vw, 28px);
  margin-bottom: min(6vw, 30px);
}

.boxList {
  display: flex;
  flex-wrap: wrap;
  gap: min(3vw, 15px) calc((100% - 24% * 4) / 3 );
}
.boxList li {
  width: 24%;
}
.boxList li.wide {
  width: 100%;
  border: #0e5945 solid 1px;
  border-radius: min(4vw, 20px);
  padding: min(4vw, 30px) min(3vw, 15px);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.boxList li > a {
  display: block;
  border: #0e5945 solid 1px;
  border-radius: min(4vw, 20px);
  height: 100%;
  overflow: hidden;
  padding: min(4vw, 30px) min(3vw, 15px);
  text-decoration: none;
}
.boxList.noLink li {
  display: block;
  border: #0e5945 solid 1px;
  border-radius: min(4vw, 20px);
  height: 100%;
  overflow: hidden;
  padding: min(4vw, 30px) min(3vw, 15px);
  text-decoration: none;
}
.boxList li .thumb {
  line-height: 0;
  padding: 0 min(1vw, 15px);
}
.boxList li p {
  margin-top: min(2vw, 10px);
  color: #0e5945;
  text-align: center;
  font-weight: bold;
}

.boxList li.wide .itemKindIco {
  width: 21%;
  line-height: 0;
}
.boxList li.wide .itemKindTxt {
  width: calc(100% - 25%);
}
.boxList li.wide .itemKindTxt h4 {
  font-size: min(3.8vw, 20px);
  margin-bottom: min(3vw, 15px);
  color: #0e5945;
}
.boxList li.wide .itemKindTxt p {
  font-size: min(3vw, 12px);
  text-align: left;
}
.boxList li.wide .itemKindTxt .basicBtn {
  margin-top: min(4vw, 20px);
}
.boxList li.wide .itemKindTxt .basicBtn a {
  margin-right: 0;
  max-width: 180px;
  font-size: min(3vw, 12px);
}

.contentBnr {
  line-height: 0;
  margin-bottom: min(6vw, 30px);
}


.basicBtn {
  margin-top: min(7vw, 40px);
}
.basicBtn a {
  display: block;
  text-align: center;
  text-decoration: none;
  border: #0e5945 solid 2px;
  border-radius: 100px;
  color: #0e5945;
  font-size: min(3.6vw, 16px);
  font-weight: bold;
  padding: min(2.2vw, 7px) min(2vw, 10px) min(2vw, 5px);
  max-width: 260px;
  margin: 0 auto;
}

#contentBnrTop {
  max-width: 1320px;
  padding: 0 min(5vw, 60px);
  margin: 0 auto min(6vw, 30px);
  line-height: 0;
}

#shopSearch {
  padding: 0 min(5vw, 60px);
  margin-bottom: min(6vw, 30px);
}
#mainColumn #shopSearch {
  padding: 0;
}
#shopSearch .topShopSearchInr {
  background: url("../images/search_bg.gif") repeat center center / 130px;
  max-width: 1200px;
  margin: 0 auto;
  padding: min(6vw, 20px) min(6vw, 60px) min(6vw, 30px) min(6vw, 60px);
  border-radius: min(4vw, 20px);
}
#mainColumn #shopSearch .topShopSearchInr {
  padding: min(4vw, 20px) min(6vw, 40px) min(6vw, 30px) min(6vw, 40px);
}
#shopSearch h3 {
  color: #fff;
  text-align: center;
  font-size: min(4.8vw, 26px);
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(4vw, 20px);
  margin-bottom: min(4vw, 20px);
}
#shopSearch h3::before {
  content: "";
  display: block;
  width: 1.1em;
  aspect-ratio: 1/1;
  background: url("../images/ico_search.png") no-repeat center center / contain;
}

#shopSearch .searchForm {
  display: flex;
  justify-content: center;
  gap: min(3vw, 20px);
}
#shopSearch .searchForm .currentLocation a {
  display: flex;
  gap: min(2vw, 10px);
  align-items: center;
  background-color: #fff;
  color: #a60d22;
  text-decoration: none;
  font-size: min(4.2vw, 20px);
  font-weight: bold;
  padding: min(1.2vw, 7px) min(4vw, 20px) min(1vw, 5px);
  border-radius: min(2vw, 10px);
}
#shopSearch .searchForm .currentLocation a::before {
  content: "";
  display: block;
  width: 1.1em;
  aspect-ratio: 51/62;
  line-height: 0;
  background: url("../images/ico_ping_red.png") no-repeat center center / contain;
}
#shopSearch .searchForm .searchInput,
#shopSearch .searchForm .searchInput form {
  display: flex;
  justify-content: center;
  width: 100%;
}
#shopSearch .searchForm .searchInput input[type="text"],
#shopSearch .searchForm .searchInput input[type="search"] {
  color: #fff;
  font-size: min(3.6vw, 18px);
  padding: min(1.2vw, 7px) min(4vw, 20px) min(1vw, 5px);
  border: #fff solid 2px;
  border-radius: min(2vw, 10px) 0 0 min(2vw, 10px);
  width: 50%;
}
#shopSearch .searchForm .searchInput input[type="text"]:focus,
#shopSearch .searchForm .searchInput input[type="search"]:focus {
  outline: none;
}
#shopSearch .searchForm .searchInput input[type="text"]::placeholder,
#shopSearch .searchForm .searchInput input[type="search"]::placeholder {
  color: #fff;
}
#shopSearch .searchForm .searchInput input[type="submit"] {
  border-radius: 0 min(2vw, 10px) min(2vw, 10px) 0;
  background: #fff url("../images/ico_search_red.png") no-repeat center center / 40%;
  width: min(8vw, 60px);
}
#shopSearch .topShopSearchInr > P {
  color: #fff;
  text-align: center;
  font-size: min(3.4vw, 16px);
}

#shopSearch .searchBtnList {
  display: flex;
  justify-content: space-between;
  max-width: 1024px;
  margin: min(2vw, 10px) auto 0;
}
#shopSearch .searchBtnList li {
  width: 32%;
}
#shopSearch .searchBtnList li a {
  display: flex;
  justify-content: center;
  align-items: center;
  border: #fff solid 2px;
  text-decoration: none;
  color: #fff;
  font-weight: bold;
  font-size: min(4.8vw, 20px);
  border-radius: min(2vw, 10px);
  gap: min(4vw, 20px);
  padding: min(4vw, 15px) min(3vw, 15px);
}
#shopSearch .searchBtnList li a .btnIcon {
  line-height: 0;
  width: 2.8em;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
}
#shopSearch .searchBtnList li a .btnIcon img {
  height: 50%;
  width: 50%;
  object-fit: contain;
  object-position: center;
}


#sideColumn {
  width: 320px
}
#sideColumn .bnrAppraisal {
  line-height: 0;
  margin-bottom: min(4vw, 20px);
}

#sideColumn .sideNav {
  background-color: #fff;
  border-radius: min(4vw, 20px);
  padding: min(6.5vw, 40px) min(6vw, 30px);
}
#sideColumn .sideNav .sideNavTitle {
  background-color: #0e5945;
  border-radius: min(2vw, 10px);
  text-align: center;
  color: #fff;
  font-size: min(3.6vw, 18px);
  font-weight: bold;
  padding: min(2vw, 10px) min(2vw, 10px) min(1.7vw, 8px);
  margin-top: min(6vw, 40px);
}
#sideColumn .sideNav .sideNavTitle:first-child {
  margin-top: 0;
}
#sideColumn .sideNav > ul {
  margin-top: min(4vw, 20px);
}
#sideColumn .sideNav > ul li {
  border-bottom: #0e5945 solid 2px;
  padding: min(2vw, 10px) 0;
}
#sideColumn .sideNav > ul li a {
  text-decoration: none;
  color: #0e5945;
  font-weight: bold;
  font-size: min(3.4vw, 16px);
}

#sideColumn .sideNav > ul.icoNav li a {
  display: flex;
  align-items: center;
  gap: min(3vw, 15px);
  font-size: min(4vw, 18px);
  font-weight: bold;
}
#sideColumn .sideNav > ul.icoNav li a span {
  display: block;
  width: min(6.4vw, 28px);
  aspect-ratio: 1/1;
  line-height: 0;
}
#sideColumn .sideNav > ul.icoNav li a span img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}


#sideColumn .sideNav .listBtn {
  margin-top: min(4vw, 20px);
}
#sideColumn .sideNav .listBtn a {
  display: block;
  text-align: center;
  text-decoration: none;
  border: #0e5945 solid 2px;
  border-radius: 100px;
  color: #0e5945;
  font-size: min(3.4vw, 16px);
  font-weight: bold;
  padding: min(1.2vw, 7px) min(2vw, 10px) min(1vw, 5px);
}



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

  main {
    flex-direction: column;
    gap: min(8vw, 60px);
  }

  #mainColumn {
    width: 100%;
  }

  .boxList {
    justify-content: space-between;
  }
  .boxList li {
    width: 48%;
  }

  #sideColumn {
    display: none;
  }

  #shopSearch .searchForm {
    flex-direction: column;
  }
  #shopSearch .searchForm .currentLocation a {
    font-size: min(4.2vw, 20px);
    padding: min(1.4vw, 7px) min(4vw, 20px) min(1.1vw, 5px);
  }

  #shopSearch .searchForm .searchInput input[type="text"],
  #shopSearch .searchForm .searchInput input[type="search"] {
    width: 80%;
    padding: min(1.7vw, 7px) min(4vw, 20px) min(1.5vw, 5px);
  }
  #shopSearch .searchForm .searchInput input[type="submit"] {
    width: 20%;
  }

  #shopSearch .searchBtnList {
    flex-direction: column;
    gap: min(3vw, 15px);
  }
  #shopSearch .searchBtnList li {
    width: 100%;
  }


}


/* ////////////////////////////////////////////////////////////////////////////////

	Index

//////////////////////////////////////////////////////////////////////////////// */
#mainVisual {
}
#mainVisual .mainSlide {
  line-height: 0;
}
#mainVisual .mainSlide li img {
  width: 100% !important;
  height: auto !important;
}


#topIntro {
  padding: min(6vw, 30px) min(5vw, 60px) min(10vw, 80px);
  background: url("../images/intro_bg.png") no-repeat center bottom/ 100%;
  box-shadow: 0px 6px 10px 2px rgba(87, 53, 0, 0.2);
  margin-bottom: min(8vw, 60px);
  overflow: hidden;
}
#topIntro h3 {
  text-align: center;
  color: #0e5945;
  font-size: min(4.6vw, 28px);
  margin-bottom: min(6vw, 30px);
}
#topIntro .introList {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 min(4vw, 80px);
}
#topIntro .introList li {
  width: 280px;
}
#topIntro .introList li:first-child {
  transform: translateY(14%) rotate(-8deg);
}
#topIntro .introList li:last-child {
  transform: translateY(14%) rotate(8deg);
}
#topIntro .introList li .illust {
  line-height: 0;
  border-radius: min(4vw, 20px);
  overflow: hidden;
  margin-bottom: min(2vw, 10px);
}
#topIntro .introList li .copy {
  text-align: center;
  color: #0e5945;
  font-weight: bold;
  font-size: min(2.8vw, 28px);
  line-height: 1.6;
}
#topIntro .introList li p {
  font-size: min(3vw, 12px);
  margin-top: min(2vw, 10px);
}

#topIntro > p {
  font-size: min(3vw, 12px);
  width: 280px;
  margin: min(2vw, 10px) auto 0;
}

.pickup-swiper .swiper-slide {
  transition: transform 0.8s ease;
  transform: scale(0.9) rotateY(0deg);
}

.pickup-swiper .swiper-slide-active {
  transform: scale(1) rotateY(0deg);
  opacity: 1;
  z-index: 2;
}

.pickup-swiper .swiper-slide-prev,
.pickup-swiper .swiper-slide-next,
.pickup-swiper .swiper-slide-prev-prev,
.pickup-swiper .swiper-slide-next-next {
  opacity: 1;
  z-index: 1;
}

.pickup-swiper .swiper-slide-prev {
  transform: rotate(-12deg) translateY(20%) scale(0.9);
}
.pickup-swiper .swiper-slide-next {
  transform: rotate(12deg) translateY(20%) scale(0.9);
}

.pickup-swiper .swiper-slide-prev-prev {
  transform: rotate(-20deg) translateY(60%) scale(0.8);
}
.pickup-swiper .swiper-slide-next-next {
  transform: rotate(20deg) translateY(60%) scale(0.8);
}

.swiper-horizontal>.swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
  display: none;
}

.swiper-button-prev,
.swiper-button-next {
  display: none;
}


.pickup-swiper .swiper-slide .illust {
  line-height: 0;
  border-radius: min(4vw, 20px);
  overflow: hidden;
  margin-bottom: min(2vw, 10px);
}
.pickup-swiper .swiper-slide .copy {
  text-align: center;
  color: #0e5945;
  font-weight: bold;
  font-size: min(2.8vw, 28px);
  line-height: 1.6;
}



.AandP {
  background-color: #e9cd2c;
  border-radius: min(4vw, 20px);
  padding: min(7vw, 40px) min(5vw, 30px);
  margin-bottom: min(6vw, 30px);
}
.AandP h3 {
  text-align: center;
  color: #0e5945;
  font-weight: bold;
  font-size: min(5.2vw, 32px);
}
.AandP > p {
  text-align: center;
  color: #0e5945;
}
.AandP .AandPBtnList {
  display: flex;
  justify-content: space-between;
  margin-top: min(6vw, 30px);
}
.AandP .AandPBtnList li {
  width: 31%;
}
.AandP .AandPBtnList li a {
  display: flex;
  justify-content: center;
  align-items: center;
  border: #0e5945 solid 2px;
  background-color: #fff;
  text-decoration: none;
  color: #0e5945;
  font-weight: bold;
  font-size: min(4.2vw, 20px);
  border-radius: min(4vw, 20px);
  gap: min(3vw, 15px);
  padding: min(5vw, 25px) min(3vw, 15px);
}
.AandP .AandPBtnList li a .btnIcon {
  line-height: 0;
  height: 1.8em;
}
.AandP .AandPBtnList li a .btnIcon img {
  height: 100%;
  width: auto;
}
.AandP .AandPBtnList li a p {

}

.voiceList {
  display: flex;
  justify-content: space-between;
  width: 90%;
  margin: 0 auto;
}
.voiceList li {
  width: 29%;
}
.voiceList li .thumb {
  background-color: #ededed;
  width: 80%;
  aspect-ratio: 1/1;
  margin: 0 auto min(3vw, 15px);
  border-radius: 50%;
  overflow: hidden;
}
.voiceList li .profile {
  text-align: center;
  font-size: min(3.4vw, 16px);
  font-weight: bold;
  margin-bottom: min(2vw, 10px);
}

.searchMap {
  background-color: #bcd6cf;
  padding: min(4vw, 40px);
  position: relative;
}
.searchMap > p {
  position: absolute;
  top: min(4vw, 30px);
  left: min(4vw, 30px);
  font-size: min(3.8vw, 20px);
  font-weight: bold;
  color: #0e5945;
}
.searchMap .searchMapInr {
  width: 620px;
  max-width: 100%;
  margin: 0 auto;
  position: relative;
}
.searchMap .searchMapInr .mapImg {
  line-height: 0;
}
.searchMap .searchMapInr .mapImg img {
  filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.3));
}

.ping {
  position: absolute;
  line-height: 0;
  width: 3.4%;
}
.ping a {
  text-decoration: none;
}
.ping a::before {
  display: block;
  background-color: #0e5945;
  color: #fff;
  text-align: center;
  line-height: 1.6;
  white-space: nowrap;
  position: absolute;
  z-index: 1;
  padding: min(0.8vw, 4px) min(2vw, 15px) min(0.4vw, 3px);
  border-radius: 100px;
}
.ping.ping01 {
  top: 14%;
  left: 84%;
}
.ping.ping01 a::before {
  content: "北海道";
  top: 5%;
  left: 145%;
}
.ping.ping02 {
  top: 41%;
  left: 69%;
}
.ping.ping02 a::before {
  content: "東北";
  top: 5%;
  left: 145%;
}
.ping.ping03 {
  top: 60%;
  left: 52%;
}
.ping.ping03 a::before {
  content: "北陸・甲信越";
  top: -100%;
  left: 50%;
  transform: translateX(-50%);
}
.ping.ping04 {
  top: 65%;
  left: 62%;
}
.ping.ping04 a::before {
  content: "関東";
  top: 5%;
  left: 145%;
}
.ping.ping05 {
  top: 71%;
  left: 48%;
}
.ping.ping05 a::before {
  content: "中部";
  top: 5%;
  left: 150%;
}
.ping.ping06 {
  top: 74%;
  left: 38%;
}
.ping.ping06 a::before {
  content: "関西";
  top: 120%;
  left: 50%;
  transform: translateX(-50%);
}
.ping.ping07 {
  top: 67%;
  left: 23%;
}
.ping.ping07 a::before {
  content: "中国";
  top: -105%;
  left: 50%;
  transform: translateX(-50%);
}
.ping.ping08 {
  top: 76%;
  left: 27%;
}
.ping.ping08 a::before {
  content: "四国";
  top: 120%;
  left: 50%;
  transform: translateX(-50%);
}
.ping.ping09 {
  top: 82%;
  left: 12%;
}
.ping.ping09 a::before {
  content: "九州・沖縄";
  top: 5%;
  right: 126%;
}

.faqList {
  display: flex;
  flex-direction: column;
  gap: min(4vw, 20px);
}
.faqList li {
  background-color: #f8f8f8;
  padding: min(4vw, 20px);
  border-radius: min(4vw, 20px);
}
.faqList li .faqQ {
  border-bottom: #000 solid 1px;
  font-size: min(3.6vw, 18px);
  padding-left: min(7vw, 40px);
  font-weight: bold;
  padding-bottom: min(2vw, 10px);
  margin-bottom: min(3vw, 15px);
  position: relative;
}
.faqList li .faqQ::before {
  content: "Q";
  position: absolute;
  top: 0;
  left: min(1vw, 5px);
  font-size: min(4.4vw, 26px);
  font-weight: bold;
  color: #0e5945;
  line-height: 1.2;
}
.faqList li .faqA {
  padding-left: min(7vw, 40px);
  position: relative;
}
.faqList li .faqA::before {
  content: "A";
  position: absolute;
  top: 0;
  left: min(1vw, 5px);
  font-size: min(4.4vw, 26px);
  font-weight: bold;
  color: #0e5945;
  line-height: 1.2;
}



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

  .ping a:hover {
    opacity: 1;
  }
  .ping a img {
    transition: all 0.3s ease-out;
  }
  .ping a:hover img {
    transform: scale(1.3);
  }

}
@media screen and (max-width: 820px) {


  #topIntro > p {
    font-size: min(2.8vw, 12px);
    width: 98%;
    margin: min(8vw, 60px) auto 0;
  }

  .AandP .AandPBtnList {
    flex-direction: column;
    gap: min(3vw, 15px);
  }
  .AandP .AandPBtnList li {
    width: 100%;
  }


  .voiceList {
    width: 100%;
    flex-direction: column;
    gap: min(6vw, 30px);
  }
  .voiceList li {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .voiceList li .thumb {
    width: 30%;
    margin: 0;
  }
  .voiceList li .txt {
    width: 65%;
  }
  .voiceList li .txt p {
    line-height: 1.6;
  }
  .voiceList li .profile {
    text-align: left;
  }


  .ping {
    width: 3.9%;
  }
  .ping a::before {
    font-size: 2.2vw;
  }
  .ping.ping01 a::before {
    top: -5%;
    left: 130%;
  }
  .ping.ping02 a::before {
    top: -5%;
    left: 130%;
  }
  .ping.ping03 a::before {
    top: -135%;
  }
  .ping.ping04 a::before {
    top: -5%;
    left: 130%;
  }
  .ping.ping05 {
    left: 47%;
  }
  .ping.ping05 a::before {
    top: -5%;
    left: 130%;
  }

  .ping.ping07 a::before {
    top: -135%;
  }

	.ping.ping08 {
    left: 25%;
  }
}



/* ////////////////////////////////////////////////////////////////////////////////

	Lower page

//////////////////////////////////////////////////////////////////////////////// */
#pageHead {
  background-color: #fff;
  padding: min(6vw, 30px) min(5vw, 60px);
}
#pageHead .pageHeadInr {
  display: flex;
  align-items: center;
  gap: min(4vw, 20px);
}
#pageHead .pageHeadInr .titleIcon {
  height: min(7vw, 50px);
  line-height: 0;
}
#pageHead .pageHeadInr .titleIcon img {
  height: 100%;
  width: auto;
}
#pageHead .pageHeadInr h2 {
  font-size: min(5.4vw, 28px);
  letter-spacing: 0.1em;
  padding-top: 0.2em;
}

.itemListWrap {
  margin-bottom: min(9vw, 40px);
}
.itemListWrap h4 {
  background-color: #0e5945;
  color: #fff;
  padding: min(2vw, 8px) min(5vw, 30px);
  border-radius: min(1.4vw, 8px);
  font-size: min(3.8vw, 18px);
  margin-bottom: min(5vw, 25px);
}
.itemListWrap .itemList {
  display: flex;
  flex-wrap: wrap;
  gap: min(4vw, 20px) calc((100% - 32.5% * 3) / 2);
}
.itemListWrap .itemList li {
  width: 32.5%;
  border-radius: min(2vw, 10px);
  background-color: #fff;
  box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.2);
  overflow: hidden;
}
.itemListWrap .itemList li .thumb {
  line-height: 0;
  margin-bottom: min(2vw, 10px);
}
.itemListWrap .itemList li .cat {
  margin: 0 min(2vw, 10px) min(1vw, 5px);
  background-color: #bca418;
  color: #fff;
  width: fit-content;
  border-radius: 100px;
  font-size: min(3vw, 12px);
  font-weight: 500;
  padding: min(1vw, 4px) min(4vw, 20px) min(1vw, 2px);
}
.itemListWrap .itemList li .name {
  margin: 0 min(2vw, 10px);
  font-weight: bold;
  font-size: min(3.4vw, 16px);
}
.itemListWrap .itemList li .priceWrap {
  border-top: #c3c3c3 solid 1px;
  margin: min(2vw, 10px) min(2vw, 10px);
  padding-top: min(2vw, 10px);
  color: #da4040;
}
.itemListWrap .itemList li .priceWrap > p {
  font-weight: bold;
}
.itemListWrap .itemList li .priceWrap .price {
  font-size: min(4.6vw, 28px);
}


.itemHeadBnr {
  line-height: 0;
  margin-bottom: min(6.5vw, 40px);
}
.itemDetailWrap h4 {
  background-color: #0e5945;
  color: #fff;
  padding: min(2vw, 8px) min(5vw, 30px);
  border-radius: min(1.4vw, 8px);
  font-size: min(3.8vw, 18px);
  margin-bottom: min(5vw, 25px);
}
.itemDetailWrap .itemDetail {
  margin-bottom: min(6.5vw, 40px);
}
.itemDetailWrap .itemDetail p + p {
  margin-top: min(4vw, 20px);
}

.pickUpItem {
  display: flex;
  flex-wrap: wrap;
  gap: min(3vw, 15px) calc((100% - 32% * 3) / 2);
}
.pickUpItem li {
  width: 32%;
  border: #0e5945 solid 1px;
  border-radius: min(2vw, 10px);
  overflow: hidden;
}
.pickUpItem li .itemThumb {
  line-height: 0;
  border-bottom: #0e5945 solid 1px;
  width: 100%;
  aspect-ratio: 124/85;
}
.pickUpItem li .itemThumb img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  object-fit: cover;
}
.pickUpItem li .pickupTxt {
  padding: min(4vw, 20px);
}
.pickUpItem li .pickupTxt h5 {
  font-size: min(3.2vw, 14px);
  color: #0e5945;
  margin-bottom: min(2vw, 10px);
  line-height: 1.6;
}
.pickUpItem li .pickupTxt p {
  font-size: min(3vw, 12px);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pickUpItem li .pickupTxt .basicBtn {
  margin-top: min(4vw, 20px);
}
.pickUpItem li .pickupTxt .basicBtn a {
  font-size: min(3vw, 12px);
}


.itemCatHead {
  text-align: center;
  margin-bottom: min(8vw, 60px);
}
.itemCatHead p {
  font-size: min(4vw, 20px);
  font-weight: bold;
}

.itemCatDetail {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: min(8vw, 60px);
}
.itemCatDetail .itemCatTxt {
  width: 50%;
}
.itemCatDetail .itemCatTxt P + p {
  margin-top: min(4vw, 20px);
}
.itemCatDetail .itemCatImg {
  width: 47%;
  line-height: 0;
  border: #0e5945 solid 1px;
  border-radius: min(2vw, 10px);
  overflow: hidden;
}
.itemCatDetail .itemCatImg img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

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

  .itemListWrap .itemList {
    justify-content: space-between;
    gap: min(4vw, 20px) 0;
  }
  .itemListWrap .itemList li {
    width: 49%;
  }


  .itemDetailWrap .pickUpItem li {
    width: 48%;
  }

}


.shopList {
  margin-top: min(8vw, 60px);
}
.shopList.searchResults {
  margin-top: 0;
}
.shopList > dt {
  background-color: #005744;
  border-radius: min(1.8vw, 8px);
  color: #fff;
  padding: min(2vw, 10px) min(4vw, 20px) min(1.8vw, 8px);
  font-size: min(3.6vw, 18px);
  font-weight: bold;
  letter-spacing: 0.1em;
  position: relative;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.shopList > dd + dt {
  margin-top: min(4vw, 20px);
}
.shopList > dt span {
  width: 1em;
  aspect-ratio: 1/1;
  position: relative;
}
.shopList > dt span::before,
.shopList > dt span::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background-color: #fff;
  transform: translateY(-50%);
  position: absolute;
  top: 50%;
  left: 0;
}
.shopList > dt span::after {
  transform: translateY(-50%) rotate(90deg);
  transition: all 0.5s ease-out;
}
.shopList > dt.on span::after {
  transform: translateY(-50%) rotate(0deg);
}

.shopList > dd {
  padding: 0 min(4vw, 20px);
  display: none;
}
.shopList.searchResults > dd {
  display: block !important;
  padding: 0;
}
.shopList > dd .shopWrap {
  padding: min(5vw, 25px) 0;
  border-bottom: #ccc solid 1px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.shopList > dd .shopInfo {
  width: 65%;
}
.shopList > dd .shopInfo h4 {
  color: #005744;
  font-size: min(4vw, 18px);
  margin-bottom: min(4vw, 20px);
}
.shopList > dd .shopInfo h4 a {
  color: #005744;
  text-decoration: none;
}
.shopList > dd .shopInfo .shopData {
  display: flex;
  flex-wrap: wrap;
  font-weight: 500;
}
.shopList > dd .shopInfo .shopData > dt {
  width: 100px;
  margin-bottom: min(1vw, 5px);
}
.shopList > dd .shopInfo .shopData > dd {
  width: calc(100% - 100px);
  margin-bottom: min(1vw, 5px);
}

.shopList > dd .shopPhoto {
  width: 30%;
  line-height: 0;
  border-radius: min(2vw, 10px);
  overflow: hidden;
}


.contentBlock .shopName .area {
  color: #005744;
  font-size: min(3.2vw, 14px);
  font-weight: bold;
  margin-bottom: min(2vw, 10px);
}
.contentBlock .shopName h3 {
  text-align: left;
}

.shopDetail h4 {
  background-color: #0e5945;
  color: #fff;
  padding: min(2vw, 8px) min(5vw, 30px);
  border-radius: min(1.4vw, 8px);
  font-size: min(3.8vw, 18px);
  margin-bottom: min(5vw, 25px);
}
.shopDetail .shopDetailList {
  display: flex;
  flex-wrap: wrap;
  gap: 0 20px;
  padding: 0 min(5vw, 30px);
}
.shopDetail .shopDetailList dt,
.shopDetail .shopDetailList dd {
  border-bottom: #c3c3c3 solid 1px;
  padding: min(3vw, 15px) 0;
}
.shopDetail .shopDetailList dt {
  width: 130px;
  font-size: min(3.4vw, 16px);
  font-weight: bold;
  color: #4b4a4a;
}
.shopDetail .shopDetailList dd {
  width: calc(100% - 150px);
}
.shopDetail .shopDetailList dd.tel {
  font-size: min(3.4vw, 16px);
  font-weight: bold;
  color: #4b4a4a;
}
.shopDetail .shopDetailList dd a {
  color: #000;
  text-decoration: underline;
}
.shopDetail .shopDetailList dd.tel a {
  color: #4b4a4a;
}

.shopDetail .comment {
  background-color: #fcf9ec;
  padding: min(14vw, 70px) min(6vw, 30px) min(6vw, 30px);
  border: #000 solid 2px;
  border-radius: min(2vw, 10px);
  margin: min(8vw, 60px) min(5vw, 30px) min(8vw, 60px);
  position: relative;
}
.shopDetail .comment::before {
  content: "お店からのコメント";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  background: url("../images/comment_baloon.png") no-repeat center top / contain;
  font-size: min(3.4vw, 16px);
  font-weight: bold;
  padding: min(4vw, 20px) min(4vw, 24px) min(7vw, 30px);
  transform: translate(-10%, -30%);
}
.shopDetail .comment p + p {
  margin-top: min(4vw, 20px);
}

.shopAddress {
  font-size: min(3.4vw, 16px);
  margin-bottom: min(6vw, 30px);
}

.iframeBox.shopMap {
  width: 100%;
  aspect-ratio: 77/26;
}
.iframeBox iframe {
  width: 100%;
  height: 100%;
}


.handledList {
  display: flex;
  flex-wrap: wrap;
  gap: min(4vw, 20px) calc((100% - 11% * 8) / 7);
}
.handledList li {
  width: 11%;
}
.handledList li a {
  display: block;
  background-color: #005744;
  border-radius: min(2vw, 10px);
  line-height: 0;
}
.handledList li p {
  font-size: min(2.9vw, 11px);
  font-weight: bold;
  width: fit-content;
  margin: min(1vw, 5px) auto 0;
  line-height: 1.4;
  color: #005744;
}

.shopPic {
  display: flex;
  justify-content: space-between;
  margin-bottom: min(8vw, 60px);
}
.shopPic .shopSlideWrap {
  width: 80%;
  border-radius: min(2vw, 10px);
  overflow: hidden;
}
.shopPic .shopSlideWrap .shopSlide {
  line-height: 0;
}

.shopPic .shopThumb {
  width: 18.31%;
  display: flex;
  flex-direction: column;
  gap: calc((100% - 22.89% * 4) / 3);
}
.shopPic .shopThumb li {
  height: 22.89%;
  line-height: 0;
  cursor: pointer;
  position: relative;
  border-radius: min(2vw, 10px);
  overflow: hidden;
}
.shopPic .shopThumb li::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: #005744 solid 4px;
  opacity: 0;
  transition: all 0.3s ease-out;
  border-radius: min(2vw, 10px);
}
.shopPic .shopThumb li.active::after {
  opacity: 1;
}
.shopPic .shopThumb li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.pointTxt {
  text-align: center;
  margin-bottom: min(8vw, 60px);
}
.pointTxt .pointTtl {
  color: #ea3535;
  font-size: min(3.8vw, 20px);
  font-weight: bold;
  margin: 0 auto min(4vw, 20px);
  width: fit-content;
  background: url("../images/ttl_bg01.png") no-repeat center bottom / 100%;
  padding-bottom: min(2vw, 10px);
}
.pointTxt .pointTtl::before {
  content: "";
  display: inline-block;
  background: url("../images/ico_point.png") no-repeat center center / contain;
  width: min(20vw, 70px);
  aspect-ratio: 146/64;
  margin-right: min(3vw, 15px);
}

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

  .shopList > dd .shopWrap {
    flex-direction: column;
    gap: min(4vw, 20px);
  }
  .shopList > dd .shopInfo {
    width: 100%;
  }
  .shopList > dd .shopInfo .shopData > dt {
    width: 25vw;
  }
  .shopList > dd .shopInfo .shopData > dd {
    width: calc(100% - 100px);
  }
  .shopList > dd .shopPhoto {
    width: 100%;
  }


  .shopDetail .shopDetailList {
    gap: 0;
    justify-content: space-between;
    padding: 0;
  }
  .shopDetail .shopDetailList dt {
    width: 25vw;
  }
  .shopDetail .shopDetailList dd {
    width: calc(100% - 27vw);
  }

  .shopDetail .comment {
    margin: min(8vw, 60px) 0 min(8vw, 60px);
  }

  .iframeBox.shopMap {
    aspect-ratio: 77 / 77;
  }

  .handledList {
    gap: min(4vw, 20px) calc((100% - 23% * 4) / 3);
  }
  .handledList li {
    width: 23%;
  }

  .shopPic {
    flex-direction: column;
    gap: min(3vw, 15px);
  }
  .shopPic .shopSlideWrap {
    width: 100%;
  }
  .shopPic .shopThumb {
    width: 100%;
    flex-direction: row;
    gap: calc((100% - 22.89% * 4) / 3);
  }
  .shopPic .shopThumb li {
    width: 22.89%;
    height: inherit;
    aspect-ratio: 141/89;
  }
  .shopPic .shopThumb li::after {
    border: #005744 solid 2px;
  }

}



.faqAnchor {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: min(8vw, 60px);
  gap: min(2vw, 20px) 0;
}
.faqAnchor li {
  width: 49%;
}
.faqAnchor li a {
  display: block;
  background: #fff;
  text-decoration: none;
  border: #005744 solid 1px;
  color: #005744;
  font-size: min(3.4vw, 16px);
  font-weight: bold;
  padding: min(3vw, 15px) min(8vw, 60px) min(3vw, 15px) min(6vw, 40px);
  border-radius: 100px;
  position: relative;
}
.faqAnchor li a::after {
  content: "";
  display: block;
  position: absolute;
  top: 45%;
  right: min(6vw, 40px);
  width: min(3vw, 15px);
  aspect-ratio: 1/1;
  border-bottom: #005744 solid 2px;
  border-right: #005744 solid 2px;
  transform: translateY(-50%) rotate(45deg);
}

.faqList + .faqTtl {
  margin-top: min(8vw, 60px);
}


@media screen and (max-width: 820px) {
  .faqAnchor li {
    width: 100%;
  }

}


.privacyWrap h5 {
  color: #005744;
  margin-top: min(6vw, 40px);
  font-size: min(3.6vw, 18px);
  font-weight: bold;
  margin-bottom: min(1vw, 5px);
}
.privacyWrap p {
  margin-bottom: min(3vw, 15px);
}


.companyInfo {
  margin-bottom: min(6vw, 30px);
}
.companyInfo li {
  padding: min(4vw, 20px) 0;
  border-bottom: #bdbdbd solid 1px;
  display: flex;
  justify-content: space-between;
}
.companyInfo li .ttl {
  width: 24%;
  font-weight: bold;
}
.companyInfo li .txt {
  width: 72%;
}

.gMap {
  width: 100%;
  aspect-ratio: 73/34;
}
.gMap iframe {
  width: 100%;
  height: 100%;
}



.feature {
  display: flex;
  justify-content: space-between;
}
.feature li {
  width: 32%;
  position: relative;
  line-height: 0;
}
.feature li .basicBtn {
  position: absolute;
  bottom: min(4vw, 20px);
  left: 50%;
  width: 80%;
  transform: translateX(-50%);
}
.feature li a {
  line-height: 1.8;
  background-color: #fff;
  font-size: min(3.2vw, 14px);
}


.reasonBox {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.reasonBox + .reasonBox {
  margin-top: min(6vw, 30px);
}
.reasonBox:nth-of-type(even) {
  flex-direction: row-reverse;
}
.reasonBox .pic {
  width: 42%;
  line-height: 0;
  border: #065b42 solid 2px;
  border-radius: min(4vw, 20px);
  overflow: hidden;
}
.reasonBox .txt {
  width: 53%;
}
.reasonBox .txt h4 {
  font-size: min(4vw, 20px);
  color: #065b42;
  font-weight: bold;
  margin-bottom: min(3vw, 15px);
}
.reasonBox .txt h4 span {
  font-size: 1.4em;
  margin-right: 0.4em;
  color: #a4c0b9;
}


.pointBox {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: min(7vw, 40px);
}
.pointBox .pic {
  width: 26%;
  line-height: 0;
  border: #065b42 solid 2px;
  border-radius: min(4vw, 20px);
  overflow: hidden;
}
.pointBox .txt {
  width: 67%;
}
.pointBox .txt h4 {
  font-size: min(4vw, 20px);
  color: #065b42;
  font-weight: bold;
  margin-bottom: min(3vw, 15px);
}
.pointBox .txt h4 span {
  margin-right: 0.4em;
}

.peaceBox {
  background-color: #f9ef9b;
  border-radius: min(4vw, 20px);
  padding: min(6vw, 40px) min(5vw, 40px);
}
.peaceBox h5 {
  text-align: center;
  font-size: min(4.2vw, 24px);
  font-weight: bold;
  color: #065b42;
  margin-bottom: min(4vw, 20px);
}
.peaceBox .peaceList {
  width: fit-content;
  margin: 0 auto;
}
.peaceBox .peaceList li {
  display: flex;
  align-items: center;
  gap: min(4vw, 20px);
  color: #6a6868;
  font-weight: bold;
}
.peaceBox .peaceList li + li {
  margin-top: min(2vw, 10px);
}
.peaceBox .peaceList li .num {
  background-color: #e9cd2c;
  width: 40px;
  aspect-ratio: 1/1;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #065b42;
  font-weight: bold;
}
.peaceBox .peaceList li .peaceTxt {
  width: calc(100% - 60px);
}


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

  .feature {
    flex-direction: column;
    gap: min(3vw, 15px);
  }
  .feature li {
    width: 100%;
  }

  .reasonBox,
  .reasonBox:nth-of-type(even) {
    flex-direction: column;
    gap: min(3vw, 15px);
  }

  .reasonBox .pic {
    width: 100%;
  }
  .reasonBox .txt {
    width: 100%;
  }

  .pointBox {
    align-items: flex-start;
  }
  .pointBox .txt h4 span {
    display: block;
  }
  .peaceBox .peaceList li .num {
    width: 8vw;
  }
  .peaceBox .peaceList li .peaceTxt {
    width: calc(100% - 8vw);
  }
}



.identityTtl {
  color: #005744;
  font-size: min(4.2vw, 24px);
  font-weight: bold;
  margin-bottom: min(3vw, 15px);
  text-align: center;
}
.identityTtl span {
  color: #d92b2b;
}
.identityTxt {
  text-align: center;
  margin-bottom: min(6vw, 40px);
}

.boxList.noLink {
  margin-bottom: min(4vw, 20px);
}
.boxList.noLink li {
  padding-right: 0;
  padding-left: 0;
}

.note {
  font-size: min(3vw, 12px);
}

.faqAnchor.threeColumn li {
    width: 32%;
}


.purchaseTtlWrap {
  display: flex;
  align-items: center;
  gap: min(4vw, 20px);
  margin-bottom: min(6vw, 30px);
}
.purchaseTtlWrap .purchaseIco {
  width: min(8vw, 60px);
}
.purchaseTtlWrap h3 {
  line-height: 1.2;
  margin: 0;
  text-align: left;
}
.purchaseTtlWrap p {
  color: #005744;
  font-weight: bold;
}

.flowList li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: min(2vw, 10px);
}
.flowList li + li {
  margin-top: min(6vw, 30px);
}
.flowList li .step {
  background-color: #e9cd2c;
  width: 60px;
  color: #005744;
  text-align: center;
  font-weight: bold;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-radius: 100px;
  padding: min(6vw, 40px) 0;
  font-size: min(4.2vw, 24px);
  line-height: 1.6;
  position: relative;
  z-index: 2;
}
.flowList li .step::before {
  content: "";
  display: block;
  background-color: #e9cd2c;
  position: absolute;
  top: 50%;
  left: 100%;
  width: 20px;
  height: 15px;
  border-radius: 0 100px 100px 0;
  transform: translateY(-50%);
}
.flowList li .step span {
  display: block;
  font-size: min(3.2vw, 14px);
}
.flowList li .flowTxt {
  width: calc(100% - 70px);
  background-color: #eaf3f1;
  border-radius: min(2vw, 10px);
  padding: min(6vw, 30px) min(6vw, 30px) min(6vw, 30px) min(7vw, 50px);
  position: relative;
  z-index: 1;
}
.flowList li .flowTxt::after {
  content: "";
  display: block;
  position: absolute;
  bottom: max(-3.9vw, -18px);
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  border-right: #005744 solid 3px;
  border-bottom: #005744 solid 3px;
  width: min(4vw, 16px);
  aspect-ratio: 1/1;
}
.flowList li:last-child .flowTxt::after {
  display: none;
}
.flowList li .flowTxt h5 {
  color: #005744;
  font-size: min(3.4vw, 16px);
  margin-bottom: min(1vw, 4px);
}
.flowList li .flowTxt span {
  display: inline-block;
  color: #d92b2b;
  font-weight: 500;
}

.purchaseIntro {
  margin-bottom: min(8vw, 60px);
  padding: 0 min(5vw, 30px);
}
.purchaseIntro p + p {
  margin-top: min(4vw, 20px);
}


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

}



.voiceBnr {
  line-height: 0;
  margin-bottom: min(6vw, 30px);
}

.voiceDetailList {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: min(3vw, 15px) 0;
}
.voiceDetailList li {
  width: 49%;
  border-radius: min(4vw, 20px);
  border: #065b42 solid 1px;
  padding: min(5vw, 25px);
}
.voiceDetailList li .voiceImg {
  margin: 0 auto min(3vw, 15px);
  width: 100%;
  max-width: 160px;
  line-height: 0;
}
.voiceDetailList li .gene {
  text-align: center;
  font-size: min(3.2vw, 14px);
  font-weight: bold;
  color: #4b4a4a;
  margin-bottom: min(4vw, 20px);
}
.voiceDetailList li .voiceTtl {
  text-align: center;
  margin-bottom: min(5vw, 25px);
  color: #4b4a4a;
  font-weight: bold;
  font-size: min(3.4vw, 16px);
}
.voiceDetailList li .voiceTtl span {
  background: linear-gradient(transparent 60%, #ffe512 60%);
  display: inline;
}
.voiceDetailList li p {
  font-size: min(3vw, 12px);
}




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

  .voiceDetailList li {
    width: 100%;
  }

}


.notFound {
  text-align: center;
  font-size: min(3.6vw, 18px);
  font-weight: bold;
  color: #065b42;
  padding: min(8vw, 60px) 0;
}



.contactNote {
  background-color: #ddece8;
  padding: min(6vw, 30px);
  margin-bottom: min(8vw, 60px);
}
.formList {
  padding-bottom: min(4vw, 20px);
  border-bottom: #bdbdbd solid 1px;
  margin-bottom: min(6vw, 30px);
}
.formList li {
  display: flex;
  padding: min(3vw, 15px) 0;
}
.formList li .inputTtl {
  width: 150px;
  color: #065b42;
  font-weight: bold;
  font-size: min(3.6vw, 16px);
}
.formList li .inputTtl span {
  font-weight: normal;
  font-size: min(3vw, 12px);
  color: #000;
}
.formList li .required {
  width: 45px;
}
.formList li .required span {
  background-color: #ea3535;
  text-align: center;
  color: #fff;
  display: block;
  width: 100%;
  padding: min(1vw, 5px) 0 min(0.8vw, 4px);
  font-size: min(2.8vw, 10px);
  line-height: 1.4;
}
.formList li .input {
  width: calc(100% - 195px);
  padding-left: min(4vw, 20px);
  font-size: 16px;
}
.formList li .input .radioWrap {
  display: flex;
  align-items: center;
  gap: min(4vw, 20px);
}
.formList li .input .radioWrap > div {
  display: flex;
  align-items: center;
  gap: min(1.8vw, 8px);
}
.formList li .input label {
  line-height: 1.4;
}
.formList li .input input[type="text"],
.formList li .input input[type="email"] {
  background-color: #ebebeb;
  font-size: 16px;
  display: block;
  width: 100%;
  padding: min(1vw, 5px) min(4vw, 20px);
  border-radius: min(1vw, 5px);
}
.formList li .input input[type="radio"] {
  width: min(4vw, 20px);
  height: min(4vw, 20px);
}
.formList li .input textarea {
  background-color: #ebebeb;
  font-size: 16px;
  display: block;
  width: 100%;
  padding: min(1vw, 5px) min(4vw, 20px);
  border-radius: min(1vw, 5px);
  height: 200px;
}
.formList li .input select {
  background: #ebebeb url("../images/ico_select.png") no-repeat 92% center / 15px;
  font-size: 16px;
  padding: min(1vw, 5px) min(8vw, 60px) min(1vw, 5px) min(4vw, 20px);
  border-radius: min(1vw, 5px);
}

.policyCheck {
  text-align: center;
}
.checkboxWrap {
  margin-top: min(2vw, 10px);
}
.checkboxWrap p {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(2vw, 10px);
}
.checkboxWrap input[type="checkbox"] {
  width: min(4vw, 20px);
  height: min(4vw, 20px);
}


.submit input[type="submit"] {
  display: block;
  text-align: center;
  text-decoration: none;
  background: #0e5945;
  border-radius: 100px;
  color: #fff;
  font-size: min(4vw, 16px);
  font-weight: bold;
  padding: min(1.2vw, 10px) min(8vw, 60px) min(1vw, 8px);
  margin: min(6vw, 30px) auto 0;
}
.submit input[type="submit"]:disabled {
  background-color: #bbb;
}

.form li {
  display: flex;
  padding: min(3vw, 15px) 0;
  border-bottom: #ccc solid 1px;
}
.form li .label {
  width: 200px;
}
.form li .input {
  width: calc(100% - 200px);
}

.submitWrap {
  margin-top: min(6vw, 30px);
  display: flex;
  justify-content: center;
  gap: min(6vw, 30px);
}
.submitWrap input[type="button"] {
  display: block;
  text-align: center;
  text-decoration: none;
  border: #0e5945 solid 2px;
  border-radius: 100px;
  color: #0e5945;
  font-size: min(4vw, 16px);
  font-weight: bold;
  padding: min(1.2vw, 10px) min(8vw, 60px) min(1vw, 8px);
}
.submitWrap input[type="submit"] {
  display: block;
  text-align: center;
  text-decoration: none;
  background: #0e5945;
  border: #0e5945 solid 2px;
  border-radius: 100px;
  color: #fff;
  font-size: min(4vw, 16px);
  font-weight: bold;
  padding: min(1.2vw, 10px) min(8vw, 60px) min(1vw, 8px);
}

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

  .formList li {
    flex-wrap: wrap;
    gap: min(3vw, 15px);
  }
  .formList li .input {
    width: 100%;
    padding: 0;
  }
  .formList li .inputTtl {
    width: auto;
  }

  .formList li .input .radioWrap {
    flex-direction: column;
    align-items: flex-start;
  }

}
