#main {
  height: calc(100dvh - 50px);
  overflow: auto;
}

h1 {
  padding-bottom: 5px;
  border-bottom: 2px solid #ccc;
}

p {
  margin: 0;
}

.price {
  align-items: end;
  text-align: end;
  margin: 5px 0;
  font-weight: bold;
  font-size: 16px;
  color: #333333;
}

.product-wrap {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}

/* 商品 */
.product {
  display: flex;
  width: calc(50% - 20px);
  flex-wrap: wrap;
  justify-content: center;
  box-shadow: 0px 0px 1px 0px #777;
  margin: 10px auto;
  border-radius: 5px;
}

.product:active {
  background-color: rgb(200 200 200 / 50%);
}

.product img {
  margin: 0.5em;
  display: block;
  width: 80%;
  height: 150px;
  object-fit: contain;
}

/* 商品説明文章 */
.description {
  text-align: left;
  margin-left: 3px;
  width: 100%;
  margin: 5px;
  padding: 5px;
  color: black;
}

/* 商品リンク */
.product-wrap div {
  /* color: black; */
  text-decoration: none;
  /* margin: 5px;
  padding: 5px; */
  border-radius: 5px;
}

.divPrice {
  display: flex;
  padding: 0;
  margin: 0;
  justify-content: space-between;
  align-items: center;
}

.soldOut {
  color: red;
  font-size: 0.8rem;
  font-weight: bold;
}

/*----------------------------------------------------------------------*/
/* 共通 */
a {
  text-decoration: none;
  color: #333;
}
.hidden {
  display: none;
}

/*----------------------------------------------------------------------*/
/* ログイン・新規登録 */
.signup {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 1em;
  padding-bottom: 0;
}

.signup.hidden {
  display: none;
}

.signuplist {
  margin-right: 20px;
  display: inline-block;
  vertical-align: middle;
  font-size: 0.9rem;
  color: #573f00;
}
.signuplist img {
  display: inline-block;
  vertical-align: middle;
  width: 25px;
  height: 25px;
  margin-right: 5px;
}

/* .signuplist a {
  display: inline-block;
  vertical-align: middle;
  font-size: 0.9rem;
  color: #573f00;
} */

#caData {
  margin: 5px 15px;
  text-align: right;
  font-size: 14px;
}

#caData.hidden {
  display: none;
}

#caName {
  font-size: 18px;
  margin: 0 5px;
}

#caPoint {
  font-size: 15px;
  margin: 0 10px;
}
/*----------------------------------------------------------------------*/
/* 再注文 */
.reorder {
  display: flex;
  justify-content: center;
  margin-top: 15px;
}

.reorder span {
  border-bottom: solid 1px brown;
  color: brown;
}

/*----------------------------------------------------------------------*/
/* クーポン告知 */
#Coupon {
  padding: 0.5em;
  margin-left: 1.5em;
  margin-right: 1.5em;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  background-color: #333333;
}

.CouponTxt {
  display: block;
  width: 90%;
  height: auto;
  margin-left: 1em;
  margin-right: 1em;
  padding: 0.5em;
  color: #ffffff;
  text-align: center;
  font-size: 0.8em;
  font-weight: 500;
}

/* スライドショー */
.slide img {
  width: 100%;
  border-radius: 8px;
  display: block;
}

.slide {
  margin-inline: auto;
  margin: 25px 0 35px 0;
  position: relative;
}
.swiper {
  max-width: 500px;
}

/*----------------------------------------------------------------------*/
.jump {
  display: flex;
  justify-content: center;
  flex-direction: column;
  margin: 20px;
}

.btn-group {
  display: flex;
  justify-content: center;
}

.jump-btn {
  display: block;
  margin: 0.6rem;
  font-size: 0.9rem;
  font-weight: bold;
  background-color: lemonchiffon;
  border-radius: 10px;
  border: 5px solid lemonchiffon;
  box-shadow: 2px 2px 3px 3px #d3d3d3;
  cursor: pointer;
}

.jump-btn:hover {
  transform: translateY(3px);
  box-shadow: none;
}

.line {
  display: flex;
  align-items: center;
  padding: 0.5em;
}

.line::after {
  content: "";
  height: 1px;
  flex-grow: 1;
  margin-left: 1em;
  margin-right: 1em;
  background-color: #666;
}

.line_title {
  width: 100%;
  height: 2rem;
  margin: 0;
  padding-bottom: 0.5em;
  display: inline-block;
  vertical-align: middle;
  text-align: center;
}

.line_title p {
  display: inline-block;
  vertical-align: middle;
  padding: 0.5em;
  font-size: 1.2em;
}

.line_iconl {
  display: inline-block;
  vertical-align: middle;
  width: 1.2em;
  height: 1.2em;
}

.line_iconr {
  display: inline-block;
  vertical-align: middle;
  width: 1.2em;
  height: 1.2em;
  transform: scaleX(-1);
}

/*----------------------------------------------------------------------*/
/* お知らせ */
.news {
  padding: 0.5em;
  margin-left: 1.5em;
  margin-right: 1.5em;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  background-color: peachpuff;
}

.newsdate {
  display: block;
  width: 90%;
  height: auto;
  margin: 0.2em 1em 0 1em;
  color: #000;
  font-size: 0.8em;
  font-weight: bolder;
}

.newsmessage {
  display: block;
  width: 90%;
  height: auto;
  margin-left: 1em;
  margin-right: 1em;
  padding-top: 0.5em;
  color: #000;
  font-size: 0.8em;
}
.newsmessage span {
  display: flex;
  justify-content: right;
  color: #333;
  font-weight: bold;
  cursor: pointer;
}

.newsdetail {
  width: 90%;
  height: auto;
  margin-top: 0.5em;
  margin-left: 2em;
  margin-right: 2em;
  padding: 1em;
  color: #000;
  font-size: 0.8em;
  border: inset 1px #fff;
}
.newsMoreTitle {
  display: flex;
  justify-content: flex-end;
  width: 90%;
  height: auto;
  margin-left: 1em;
  margin-right: 1em;
  padding-top: 0.5em;
  color: #333;
  font-size: 0.8em;
  font-weight: bold;
}

/*----------------------------------------------------------------------*/
/* ピックアップ */
.pickup {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

.pickupitem {
  display: block;
  width: 48%;
  position: relative;
}

.pickup img {
  margin: 10px auto;
  display: block;
  width: 85%;
  border-radius: 20px;
  box-shadow: 2px 2px 3px 3px #d3d3d3;
}

.pickupitem p {
  position: absolute;
  top: 5px;
  /*画像の左上に配置*/
  left: 10px;
  margin: 0;
  /*余計な隙間を除く*/
  color: rgb(128, 0, 0);
  /*文字を白に*/
  background: peachpuff;
  /*背景色*/
  font-size: 0.8rem;
  line-height: 1;
  /*行高は1に*/
  padding: 0.5rem 1rem;
  /*文字周りの余白*/
}

/*----------------------------------------------------------------------*/
/* ランキング */
.ranklist {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}

.rank:active {
  background-color: rgb(200 200 200 / 50%);
}

.rank {
  display: flex;
  width: calc(50% - 20px);
  flex-wrap: wrap;
  justify-content: center;
  box-shadow: 0px 0px 1px 0px #777;
  margin: 10px auto;
  border-radius: 5px;
}

.rankContainer {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.rankContainer .img-base {
  justify-content: center;
  margin: 0.5em;
  width: 80%;
  height: 150px;
  display: block;
  object-fit: contain;
}
.rankContainer .img-overlay {
  position: absolute;
  top: -10px;
  left: -5px;
}
.rankContainer .description {
  color: black;
  text-decoration: none;
  margin: 5px;
  /*	font-size: 0.7em;*/
  padding: 5px;
  border-radius: 5px;
}
.rankName {
  color: black;
  text-decoration: none;
  margin: 0 10px 0 10px;
}

.rankSoldOut {
  color: red;
  font-size: 0.8rem;
  font-weight: bold;
  margin: 5px 10px 0 10px;
}

.rankPrice {
  color: black;
  text-decoration: none;
  margin: 5px 10px 0 10px;
  align-items: end;
  text-align: end;
  font-weight: bold;
  font-size: 16px;
  color: #333333;
}

/*----------------------------------------------------------------------*/
/* カテゴリー別商品 */
.prodtop {
  display: flex;
  justify-content: center;
  align-items: center;
  padding-left: 0.5em;
}

.prodtop img {
  width: 85%;
}

.prod {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  padding-left: 0.5em;
}

.proditem {
  display: block;
  width: 23%;
}

.proditem a {
  margin: 0.5em;
  font-size: 0.7em;
}

.proditem img {
  margin: 0.5em;
  display: block;
  width: 80%;
}

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