.downloadBtn {
  margin: 10px 0 20px 0;
  text-align: center;
}

.downloadBtn img {
  width: 343px;
  max-width: 100%;
}

.stampModal {
  position: fixed;
  left: 0;
  z-index: 9999999;
  display: none;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
}

.stampModal.isOpen {
  top: 0;
  display: block;
}

.stampModalBox {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 820px;
  height: 70%;
  margin: 0 0 0 -410px;
  -webkit-box-shadow: 0 0 50px rgba(0, 0, 0, 0.1);
  box-shadow: 0 0 50px rgba(0, 0, 0, 0.1);
}

.stampModalDetail {
  display: block;
  width: 100%;
  height: calc(100% - 92px);
  margin: 0 0 0;
  overflow-y: auto;
  text-align: center;
  background: #EAEAEA;
}

.stampModal__textClose__batsu {
  position: absolute;
  top: 14px;
  right: 15px;
  width: 23px;
  height: 23px;
  cursor: pointer;
  background: #FFF;
  border-radius: 50%;
  border: none;
}

.stampModal__textClose__batsu::before,
.stampModal__textClose__batsu::after {
  position: absolute;
  top: 7px;
  left: 11px;
  display: block;
  width: 1.4px;
  height: 9.8px;
  content: "";
  background: #157599;
  border-radius: 100px;
}

.stampModal__textClose__batsu::before {
  transform: rotate(45deg);
}

.stampModal__textClose__batsu::after {
  transform: rotate(-45deg);
}

body.isStampModalOpen {
  overflow: hidden;
}

.YJTcouponBanner img {
  width: 343px;
  max-width: 100%;
}

.anchorLink__prizeBtn img {
  margin-top: 13px;
  margin-bottom: 0;
}

.stampCardContainer.stampCardBackground {
  margin: 10px 200px 0;
  display: block;
  background-color: #ffffff;
  border-radius: 10px;
  padding: 20px 0;
}

.missionDataErrorArea {
  margin: 0 auto 20px;
  max-width: 550px;
  background-color: #ffffff;
  border-radius: 10px;
  padding: 20px;
  font-weight: bold;
  text-align: center;
}

.currentCard {
  position: relative;
}

.currentCardInfo {
  margin: 0 6% 2px;
  padding: 0 90px;
}

.infoPremium {
  display: block;
  width: 100%;
  padding-bottom: 3px;
}

.currentCard img {
  display: block;
  width: 100%;
}

.progress img {
  display: block;
  width: 100%;
}

.stampCount {
  max-width: 305px;
  padding: 6px 10px 10px;
  font-size: 17px;
  line-height: 1;
  color: #000;
  text-align: center;
  background: #FFF6CC;
  border-radius: 8px;
  margin: 11px auto 0;
  position: relative;
}

.stampCount:before {
  content: '';
  position: absolute;
  top: -8px;
  left: 50%;
  width: 0;
  height: 0;
  border: 10px solid transparent;
  border-bottom-color: #FFF6CC;
  border-top: 0;
  margin-left: -8px;
}

.keepStampCount {
  margin-left: 5px;
  font-size: 28px;
  font-weight: bold;
}

.showStampModal {
  display: inline-block;
  margin: 10px 0 2px;
  padding: 0;
  border: none;
  font-size: 14px;
  color: #157599;
  background: none;
  cursor: pointer;
}

.stampModalBox__stampHeader {
  position: relative;
  padding: 14px 0 11px;
  overflow: hidden;
  background: #0C9F50;
}

.stampModalBox__stampHeaderTitle {
  padding: 0 0 0 0;
  font-size: 15px;
  font-weight: bold;
  color: #FFF;
  text-align: center;
}

.stampModalBox__stampFooter {
  z-index: 99999;
  width: 100%;
  height: 44px;
  text-align: center;
  cursor: pointer;
  background: #FFF;
}

.stampModal__textClose__footer {
  display: block;
  width: 100%;
  padding: 10px 0;
  border: none;
  font-size: 16px;
  color: #157599;
  cursor: pointer;
}

.pc .buttonBlock {
  padding: 20px 0 10px;
}

.stampCardItems {
  height: unset;
  padding: 16px;
}

.stampCardItem {
  width: 15%;
  margin: 0 0.8% 10px;
}

.stampGotDetail {
  height: 63px;
  padding: 8px 13px 16px;
}

.stampGotDate__detail,
.stampGotDate__detail--none {
  margin: 0 0 5px 0;
}

.stampGotDate__detail,
.stampGotDate__detail--none,
.stampGotDetail,
.stampGotDetail--none {
  font-size: 1.2rem;
}

.content {
  background-color: transparent;
}

.stampContent {
  background-color: transparent;
}

.missionClear {
  position: relative;
}

.missionClear::after {
  position: absolute;
  bottom: 27%;
  right: -5.5%;
  display: block;
  width: 13%;
  height: 100%;
  content: "";
  background: url(https://s.yimg.jp/images/points/toku_campaign/camp2024/yjapp202407st/img/stamp_clear.png) no-repeat;
  background-size: contain;
  background-position-y: bottom;
}

.bottomWeeklyMission {
  max-width: 520px;
  margin: 0 auto 5%;
}

.bottomWeeklyMissionClear {
    position: relative;
    max-width: 520px;
    margin: 0 auto 5%;
}

.bottomWeeklyMissionClear::after {
    position: absolute;
    bottom: 27%;
    right: -5.5%;
    display: block;
    width: 13%;
    height: 100%;
    content: "";
    background: url(https://s.yimg.jp/images/points/toku_campaign/camp2024/yjapp202407st/img/stamp_clear.png) no-repeat;
    background-size: contain;
    background-position-y: bottom;
}

.mission_detail_item {
  background-color: #ffffff;
  padding: 4% 10px 10px;
  border-radius: 10px;
  margin: 16px 0;
}

.missionTopArea {
  position: relative;
  max-width: 545px;
  margin: 20px auto 0;
  padding: 20px 20px 16px;
  border-radius: 10px;
  background-color: #fff;
}

.mission_box {
  padding: 0 0 16px;
  background-color: transparent;
}

.missionArea_title {
  width: 75%;
  margin: 0 0 22px 4px;
}

.missionArea_fukidashi {
  width: 20%;
  position: absolute;
  right: 3.5%;
  top: -3%;
}

.missionAboutLink {
  max-width: 545px;
  margin: 0 auto;
  text-align: right;
}

.missionAboutLink a {
  display: inline-block;
  background: url(https://s.yimg.jp/images/points/toku_campaign/camp2024/yjapp202407st/img/icon_explanation.svg) no-repeat;
  padding-left: 20px;
  background-position: 0;
  font-weight: bold;
  color: #157599;
}

.mission_items {
  width: 100%;
}

.mission_items li img {
  width: 100%;
}

.stampCodes {
  max-width: 545px;
  margin: 20px auto 20px;
  padding: 23px 13px 13px;
  border-radius: 10px;
  background-color: #FFF6CC;
  padding-top: 24px;
}

.mission_title {
  margin-bottom: 20px;
}

.button {
  min-width: 305px;
}

.stampTerm__before,
.stampTerm__endCard,
.stampAlert__limited{
  border: 2px solid #FFCDD2;
  background-color: #FFEBEE;
}

.noteArea {
  max-width: 545px;
  margin: 0 auto 20px;
}

.stampLogin {
  background-color: #fff;
  border-radius: 10px;
  max-width: 545px;
  margin: 0 auto 20px;
  padding: 20px 20px 0;
}

.buttonSet {
  left: 0;
  right: 0;
  width: 100%;
  margin: 0;
}

.praizeContent {
  margin: 0 0 20px;
}

.pc .snsBlock {
  padding: 20px 0 20px 0;
  margin: 20px 0 0 0;
  background: #fff;
  border-radius: 10px;
}

.reloadBtn {
  border: none;
  background-image: url(https://s.yimg.jp/images/points/toku_campaign/camp2024/yjapp202407st/img/getStamp_reloadBtn.png);
  background-size: 30px 30px;
  width: 30px;
  height: 30px;
  background-color: transparent;
  cursor: pointer;
  margin: -4px;
}

.reload {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 10;
}

.missionAnchorLink {
  margin: -4px 4px 4px;
  text-align: right;
}

.missionAnchorLink a {
  display: inline-block;
  background: url(https://s.yimg.jp/images/points/toku_campaign/camp2024/yjapp202403st/img/icon_arrowUp.svg) no-repeat;
  background-position: 0;
  background-size: 14px;
  padding-left: 20px;
  font-weight: bold;
  color: #157599;
}

.mission_detail_item_incomplete, .mission_detail_item_complete {
  display: none;
}

.show-incomplete .mission_detail_item_incomplete {
  display: block;
}

.show-complete .mission_detail_item_complete {
  display: block;
}

/* ========================================
   スタンプ獲得履歴 グリッドレイアウト
   ======================================== */
.stampHistoryGrid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px 6.5px;
  padding: 12.5px 16px;
}

/* ========================================
   スタンプ獲得履歴 カード
   ======================================== */
.stampHistoryCard {
  position: relative;
  background: #fafafa;
  border-radius: 4px;
  padding: 8px 6px 3px;
  height: 76px;
  font-size: 1.2rem;
  word-break: break-all;
  text-align: left;
  box-shadow: 0px 1px 6px 0px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: #666;
  font-weight: bold;
}

.stampHistoryCard__header {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 4px;
  border-bottom: 1px dashed #e8e8e8;
}

.stampHistoryCard__date {
  font-size: 11px;
  font-weight: bold;
  color: #666;
  line-height: 1.2;
}

/* ラベル共通 */
.stampHistoryCard__label {
  display: inline-block;
  border-radius: 100px;
  padding: 2px;
  height: 16px;
  font-size: 1.0rem;
  font-weight: bold;
  line-height: 1.4;
}

/* 利用済ラベル（グレー背景） */
.stampHistoryCard__label--used {
  background: #c9c9c9;
  color: #444;
  width: 60px;
  min-width: 60px;
  text-align: center;
  white-space: nowrap;
  line-height: 1.2;
  font-weight: normal;
}

/* 利用前ラベル（赤背景） */
.stampHistoryCard__label--unused {
  background: #ff0034;
  color: #fff;
  padding: 2px 4px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

.stampHistoryCard__labelIcon {
  width: 10px;
  height: 11px;
  flex-shrink: 0;
}

/* ========================================
   スタンプ獲得履歴 アコーディオン
   ======================================== */
.stampGotDetail__text--max {
  display: none;
}

.stampHistoryCard .stampGotDetail__text--limited {
  font-size: 11px;
  line-height: 1.1;
}

.stampHistoryCard.isExpanded {
  height: auto;
}

.stampHistoryCard.isExpanded .stampGotDetail__text--max {
  display: block;
  font-size: 11px;
  line-height: 1.1;
}

.stampHistoryCard.isExpanded .stampGotDetail__text--limited {
  display: none;
}

.stampHistoryCard .stampGotDetail__btn {
  display: none;
  position: relative;
  width: 100%;
  height: 12px;
  background: linear-gradient(to bottom, transparent, rgba(250, 250, 250, 0.9));
  border-radius: 4px;
  cursor: pointer;
}

.stampHistoryCard .stampGotDetail__btn.js-has-overflow {
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
}

.stampHistoryCard.isExpanded .stampGotDetail__btn.js-has-overflow {
  position: relative;
}

.stampHistoryCard .stampGotDetail__btn::after {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -70%) rotate(45deg);
}

.stampHistoryCard.isExpanded .stampGotDetail__btn::after {
  transform: translate(-50%, -30%) rotate(-135deg);
}

/* ========================================
   空表示エリア（未ログイン・開始前）
   ======================================== */
.stampHistoryEmpty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  padding: 40px 24px;
}

.stampHistoryEmpty__text {
  color: #444;
  text-align: center;
  font-family: "Hiragino Sans";
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  line-height: 1.4;
}
