html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 100vh; /* 高さを画面いっぱいに */
  background: #fe456e;  /* 中身と同じ色 */
  /*  背景画像  */
  background-image: url(img/bg.png);
  background-size: 20px 20px;
  background-attachment: fixed;
}
/* モーダルのオープニング導火線風 */
.spark {
  position:absolute;
  width:3px;
  height:3px;
  border-radius:50%;
  background:orange;
  pointer-events:none;
  opacity:1;
}
/* 共通 */
.challenge-wrapper{
	max-width: 1000px; /* 読みやすい幅を確保 */
	margin: 0px auto;
	background: #fff; /* 中は白などシンプルに */
	border-radius: 10px;
}
.challenge-container {
  padding: 30px;

  /* グラデーションボーダー */
  border: 6px solid;
  border-image-slice: 1;
  border-width: 12px;
  border-image-source: linear-gradient(90deg, #FFBBA0, #FFE082, #FFD54F);
}
@media (max-width: 768px) {
  .challenge-container {
    border-width: 6px;
    padding: 20px;
  }
}
.section-common{
	margin: 30px 0px;
}
.section-common a{
	background-color: ;
	color: #2ec86e;
}
.section-common a:hover{
	color: #fe456e;
	text-decoration: underline;
}

.challenge-header {
	background: none;
}
.marker {
  background: linear-gradient(transparent 60%, #ffeb3b 60%); /* 黄色マーカー */
  padding: 0 2px;
}
/* タイトル */
.banner-wrapper {
/*   text-align: center; */
  padding: 0px;
}

.banner-title {
	width: 100%;
/*   font-family: "Zen Maru Gothic", sans-serif; */
  font-family: 'Bangers', sans-serif;
  font-size: 3rem;
  font-weight:bold;
  margin: 0;
  background:aqua;
  color: #5D4037;
  border-radius: 10px;/*

  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
*/
}
.banner-text .tmi {
  font-size: 2rem;
  letter-spacing:30px;
  margin: 0;
}

.banner-text .subtitle {
  font-size: 3.5rem;
  margin: 0;
  letter-spacing: 1px;
}
.banner-text p{
	text-align: center;
}
.plane-icon i {
  font-size: 2.5rem;
  color: #ff4747;
  transform: rotate(20deg);
  animation: fly 3s linear infinite;
}

.plane-icon.right i {
  transform: rotate(-20deg);
  animation-direction: reverse;
}

@keyframes fly {
  0% { transform: translateY(0) rotate(20deg); }
  50% { transform: translateY(-4px) rotate(20deg); }
  100% { transform: translateY(0) rotate(20deg); }
}
.highlight-box {
  background-color: #ffffff;
  padding: 15px 20px;
  border-radius: 8px;        /* 角丸で柔らかく */
  margin: 15px 0;            /* 上下に余白 */
  line-height: 1.4;
  color: #4e4e4e;
}
.highlight-box p {
	width: 90%;
  margin: 1em auto;           /* 上下の余白を調整 */
  font-weight: 500;        /* 強調しすぎない */
  font-size: 1.4rem;         /* スマホで読みやすいサイズ */
  line-height: 1.6;        /* 行間を広めに */
  color: #4e4e4e;          /* 優しい濃さ */
  text-align: left;        /* 左揃え */
}
#countdown{
	display: flex;
	align-items: center;
	gap:5px;
	justify-content: center;
	margin-top: 20px;
	background-color: #1d1d1d;
	padding: 2.0rem;
	border-radius: 0px;
}
#countdown .countdown-label {
  font-size: 3.5rem;   /* 好きなサイズに調整 */
  font-weight: bold;   /* 太字も可能 */
  color: white;
}
#countdown .countdown-label-mission {
  font-size: 2.5rem;   /* 好きなサイズに調整 */
  font-weight: bold;   /* 太字も可能 */
  color: #fffd6f;
}
@media (max-width: 768px) {
	#countdown{
		padding: 10px;
	}
  #countdown .countdown-label-mission{
	  font-size: 2.0rem;
  }
  #countdown .countdown-label{
	  font-size: 3.0rem;
	  color: white;
  }
  #countdown .countdown-label,
  #countdown .countdown-label-mission
   {
    display: block;       /* ブロック化して横幅100% */
    width: 100%;          /* 横幅いっぱい */
    text-align: center;   /* 中央寄せ（左右端まで広げたいなら left/right） */
  }
}

/* 1. ヘッダー */
.progress-title{
	font-size: 3rem;
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: 600;
	font-style: normal;
	margin-bottom: 20px;
	margin-top: 0px;
	letter-spacing: 0.2em; /* 文字の間隔を広げる */
	color:#fe456e;
	border-bottom: 1px solid #fe456e;
	text-align: center;
	padding: 5px 0;
}
.progress-title.first {
  margin-top: -30px; /* 最初のだけ調整 */
}
@media (max-width: 768px) {
  .progress-title {
    font-size: 3.6rem; /* お好みで調整 */
  }
}

.mission-intro.simple {
  background: #fff;
  color: #333;
  padding: 2rem;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1.6;
  max-width: 700px;
  margin: 30px auto;
  font-weight: 500;
  font-size: 1.4rem;
}

.mission-intro.simple p {
  margin-bottom: 1.2rem;
}

.mission-intro.simple strong {
  color: #c49b00; /* 箔っぽい落ち着いた金色 */
  font-weight: 600;
}


.mission-card {
  background: #fffdf5; /* クリーム色で柔らかい印象 */
  border: 1px solid #e0d8c0;
  border-radius: 8px;
  padding: 20px;
  max-width: 700px;
  margin: 20px auto;
  font-family: "Yu Gothic","YuGothic","Hiragino Kaku Gothic Pro","sans-serif";
  color: #4a3f2c; /* 落ち着いた文字色 */
  line-height: 1.8;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.05);
}

.mission-card strong {
  display: block;
  font-size: 1.2em;
  color: #3b3023; /* タイトルを少し濃く */
}

.mission-card span {
  font-size: 0.95em;
  color: #6b5e4a;
}

.mission-card p {
	font-weight: 500;
  margin-bottom: 14px;
}

/* 2. 進捗バー */
.note-mobile {
    font-size: 0.7em;
    color: #ff4177;
    margin-bottom: 6px;
}
.progress-bar-container {
	position: relative;
	height: 30px;
	background: #eee;
	margin-top: 60px;
	border-radius: 20px;
	width: 100%;
}

.progress-bar {
	position: relative;
	height: 100%;
	line-height: 30px;
    text-align: center;
    color: #fff;
    font-weight: bold;
    border-radius: 20px;
}
.pin-modal-wrapper {
	display: none;
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: white;
	padding: 20px;
	box-shadow: 0 2px 10px rgba(0,0,0,0.3);
	z-index: 1000;
}
.pin-modal-content {
	position: relative;
}
.pin-close-btn {
/*
	position: absolute;
	top: 10px;
	right: 10px;
*/
	cursor: pointer;
	font-size: 20px;
}
.pin-modal-wrapper.show {
	display: block;
}
.progress-pin {
  position: absolute;
  top:-28px;
  transform: translateX(-70%);
  cursor: pointer;
  white-space: nowrap; /* 折り返さない */
}
/* ホバーで説明のラベルが出てくる */
.progress-pin::after {
    content: attr(data-label);
    position: absolute;
    bottom: 120%;
    left: 50%;
    transform: translateX(-50%);
    background: #333;
    color: #fff;
    padding: 5px 8px;
    border-radius: 5px;
    font-size: 12px;
    width: 145px;       /* 最大幅 */
    white-space: normal;     /* 折り返す */
    line-height: 1.4;        /* 行間 */
    text-align: left;      /* 中央寄せ */
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s;
}
.pin-label {
  padding: 4px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: bold;
  color: #f8f8f8;
  position: relative;
}
/* 文字だけ左に10pxずらす */
.progress-pin{
	margin-left: 6px;
}
.progress-pin[data-percent="100"] .pin-text {
    position: relative; /* ←追加 */
	left: 0px;        /* 100%のときだけ左に10px */
}
/* バー上の%表示部分のしたの三角 */
.pin-label::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 6px;
  border-style: solid;
  border-color: var(--pin-color, #000) transparent transparent transparent;
}

/* achieved用のラベル */
.pin-label::before {
  content: "CLEAR!";
  white-space: pre; /* \A を改行として解釈 */
  position: absolute;
  top: -2em;
  left: 50%;
  transform: translateX(-50%) rotate(-5deg);
  
  font-size: 1rem;
  font-weight: 900;
  letter-spacing: 2px;
  color: #fff;
  background: linear-gradient(45deg, #ffeb98, #ff009a);
  padding: 4px 10px;
  border-radius: 6px;
  box-shadow: 0px 1px 1px rgba(0,0,0,0.4);
  text-shadow: 0 0 4px rgba(0,0,0,0.8);
  
  display: none; /* 通常は非表示 */
  animation: popIn 0.4s ease-out forwards;
}
/* 出現アニメーション */
@keyframes popIn {
  0% { transform: translateX(-50%) scale(0.5) rotate(-5deg); opacity: 0; }
  80% { transform: translateX(-50%) scale(1.1) rotate(-5deg); opacity: 1; }
  100% { transform: translateX(-50%) scale(1) rotate(-5deg); }
}
/* achieved時だけ表示 */
.achieved .pin-label::before {
  display: block;
}
.current-percentage-span{
	font-size: 1.5em;
	color: #ff4fb3;
	font-family:sans-serif;
	font-weight: bold;
}
/*
.progress-pin[data-percent="100"] {
  transform: translateX(-100%) !important;
}
*/

/* PCホバー時に表示 */
@media (hover: hover) {
    .progress-pin:hover::after,
    .progress-pin:hover::before {
        opacity: 1;
    }
}
.stage-wrapper {
  display: grid;
  gap: 1.2em;
  margin: 1.5em 0;
}

.stage-card {
 margin-top: 10px;
  border-radius: 10px;
  padding: 1em 1.2em;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  background: #fff;
}

.current-stage {
  border-left: 6px solid #4caf50;
}

.next-stage {
  border-left: 6px solid #ff9800;
}

.stage-title {
  margin: 0 0 .5em;
  font-size: 1.1em;
  font-weight: bold;
}

.stage-progress,
.stage-reward,
.stage-next-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: .5em 0;
}

.stage-progress-value,
.stage-reward-value,
.stage-next-value {
  font-weight: bold;
  font-size: 1.2em;
}

.stage-progress-value {
  color: #4caf50;
}

.stage-next-value {
  color: #ff9800;
}

.note {
  font-size: 0.9em;
  color: #666;
}

.goal-complete {
  text-align: center;
  font-size: 1.2em;
  font-weight: bold;
  color: #4caf50;
}


/* 3.特典一覧 */
.reward-image{
	width: 100%;
	margin: 20px auto 5px auto;
}
.reward-image img{
	max-width: 100%;
	height: auto;
}
.character-list {
	width: 100%;
}
.character-header-content{
	display: flex;
	align-items: stretch;
	gap:20px;
}
.character-card {
	margin: 0;
	margin-top: 10px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  overflow: hidden;
  padding: 20px;
}
.character-img-container img {
  width: 100%;
  height: auto;
  object-fit: contain; /* キャラを縮めすぎない */
  max-height: 300px;   /* キャラの見栄えを確保 */
  border-radius: 1rem;
}

.character-name {
  	font-size: 1.5rem;
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: 700;
	font-style: normal;
	margin-bottom: 20px;
	letter-spacing: 0.2em; /* 文字の間隔を広げる */
	color:#ff4f79;
	border-bottom: 4px dotted #ff4f79;
	text-align: center;
	padding-bottom: 10px;
	display: inline-block;
}

.character-desc {
  background: #fff3f3;
  border-radius: 12px;
  padding: 1rem;
  width: 100%;
}
.main-offer {
  font-size: 2.2em;
  font-weight: bold;
  color: #e60033;
  transform: rotate(-4deg);   /* ちょい斜めPOP感 */
  display: inline-block;
  text-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  line-height: 1.3;
}

.main-offer .highlight {
  font-size: 1.3em;
  color: #ff9900;   /* 金・オレンジ調 */
}

.sub-desc {
  margin-top: 10px;
  font-size: 0.9em;
  color: #555;
}

.secret-card {
  opacity: 0.85;
}
.character-desc .soon {
  font-size: 1.4em;
  color: #ff4081; /* ピンク系で目立たせる */
}

.character-desc .highlight {
  font-weight: bold;
  color: #1976d2; /* 青系で数字を強調 */
}

.character-desc .emphasis {
  font-weight: bold;
  color: #d32f2f; /* 赤系で限定感を演出 */
}

.character-desc .special .big {
  font-size: 1.5em;
  color: #ff9800; /* ゴールドっぽいオレンジ */
  text-shadow: 1px 1px 3px rgba(0,0,0,0.2);
}

.character-desc .note {
  font-size: 0.9em;
  color: #666;
  margin-top: 0.5em;
}
.present-attention-note{
	font-size: 12px;
	color: #686868;
}

/* 4. 参加条件・期間 */
.conditions-description{
	padding: 0;
	margin: 20px auto;
	line-height: 1.8;
	color: #444;
	background: #fff8f9;      /* 淡いピンク背景で読みやすく */
	border-left: 8px solid #ff4fb3; /* 左に強調ライン */
	padding: 12px 16px 12px 28px;
	margin-bottom: 12px;
	border-radius: 6px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
.conditions-section i {
    font-size: 0.5em; /* 小さくする */
    color: #ff4fb3;   /* 好きな色に変更可能 */
    margin: 0px 6px; /* 文字との間隔 */
    position: relative;
    top: -2px;   /* pxで微調整して上げる */
}
/* 5. 参加方法 */
.howto-steps {
  list-style: none;
  padding: 0;
  margin: 0;
}

.howto-steps li {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  background: #fff;
  border-radius: 12px;
  padding: 1rem;
  margin: 0 auto;
  max-width: 600px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.05);
}

.step-number {
  background: #6c4be5; /* 紫系で強調 */
  color: #fff;
  font-weight: bold;
  border-radius: 50%;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.step-title {
  font-weight: bold;
  margin-bottom: 0.3rem;
}

.step-arrow {
  text-align: center;
  color: #6c4be5;
  margin: 0.5rem 0;
}
.step-arrow i {
  font-size: 30px; /* 任意の大きさ */
}
/* 注意事項 */
.campaign-info{
	background: #fbfbfb;
/* 	border-left: 8px solid #ffd900; */
	border-radius: 6px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
	padding: 20px;
}
.campaign-info ul{
	list-style: none;
	font-size: 1.1rem;
	color: #626262;
	text-align: left;
	line-height: 1.8;
	margin-bottom: 2rem;
}
.campaign-info .section-title {
    font-weight: 600;       /* 少し太め */
    font-size: 1.1em;       /* 見出しっぽく */
    border-bottom: 2px solid #ccc;
    padding-bottom: 4px;
    margin-top: 10px;       /* 前の段落と余白 */
    margin-bottom: 5px;
}
.campaign-info i {
    font-size: 0.5em; /* 小さくする */
    color: #ff4fb3;   /* 好きな色に変更可能 */
    margin-right: 6px; /* 文字との間隔 */
    position: relative;
    top: -2px;   /* pxで微調整して上げる */
}
@media (max-width: 768px) {
  .campaign-info {
    padding: 0;
    background: transparent;
  }
}

/* SNSで応援 */
.sns-share-section {
  background: #fdf4e3; /* うっすら黄みがかった紙色 */
  border: 1px solid #d6c3a1; /* ほんのり色付きの枠線 */
  border-radius: 8px; /* 角を少し丸める */
  padding: 20px;
  margin: 20px 0;
  box-shadow: 4px 4px 10px rgba(0,0,0,0.1); /* 紙が浮いてる感じ */
  font-family: "Yu Mincho","serif"; /* 古風な明朝体 */
  background-image: linear-gradient(transparent, rgba(255,255,255,0.05)); /* 微妙な紙のムラ感 */
  position: relative;
  text-align: center;
}
/* SNSメッセージ */
.sns-message {
  margin: 10px 0;
  line-height: 1.5;
  color: #5b4636; /* 少しセピア寄りの文字色 */
}

/* ボタン */
.share-button {
  background: #e6d4b8;
  border: 1px solid #c1a97f;
  padding: 8px 12px;
  margin-right: 10px;
  border-radius: 4px;
  cursor: pointer;
  font-weight: bold;
  color: #5b4636;
  transition: all 0.2s ease;
}

.share-button:hover {
  background: #d6c1a1;
  box-shadow: 1px 1px 3px rgba(0,0,0,0.2);
}/* 中嶋さんへの指示コメント */
.designer-note{
	color: #ff749e;
}

@keyframes hud-flicker {
  0%, 19%, 21%, 50%, 55%, 100% { opacity: 1; }
  20%, 22%, 54% { opacity: 0.5; }
}

.hud-text {
  animation: hud-flicker 2s infinite;
}
/* スマホ用 */
@media (max-width: 600px) {
	.challenge-wrapper{
		width: 100%; /* 読みやすい幅を確保 */
		margin:0px;
/* 		padding-top: 70px; */
		background: #fff; /* 中は白などシンプルに */
	}
	/* 共通 */
	.challenge-container {
		padding: 10px 20px;
  	}
	/* タイトル */
	.banner-wrapper {
		text-align: center;
		padding: 20px;
		box-shadow: 0 4px 6px rgba(0,0,0,0.05); /* 影も淡めに */
		color: #5c5c5c;
		font-weight: 700;
		font-size: 1.0rem;
	}
	.banner-text .subtitle {
	  font-size: 2.5rem;
	  margin: 0;
	  letter-spacing: 1px;
	}
	#countdown{
		display: block;
		margin-top: 10px;
	}
	#countdown div{
		font-size: 12px;
		font-weight: 500;
	}
	.banner-wrapper p {
	    font-size: 0.95rem;    /* 文字が画面に収まりやすく */
	    line-height: 1.7;      /* 行間を少し広く */
	}
	/* 1. ヘッダー */
	.progress-title{
		font-size: 1.8rem;
	}
	
	
	/* 2.進捗バー */
	.message-container-flex-box{
		display: block;
		text-align: center;
	}
	.message-current-percentage-flex-box{
		justify-content: center;
	}
	.stage-reward,
	.stage-next-content {
	  display: block;
	}
	.progress-bar{
		font-size: 12px;
	}
	.progress-pin::after {
		display: none;
	}
	.pin-label {
		font-size: 10px;
		padding: 3px 6px;
		border-radius: 2px;
	}
	/* achieved用のラベル */
	.pin-label::before {
	  content: "CLEAR!";
	  top: -2.5em;   /* 上に配置 */
	  font-size: 0.6rem;
	}
	/* 文字だけ左に10pxずらす */
	.progress-pin[data-percent="100"] .pin-text {
		left: 0px;        /* 100%のときだけ左に10px */
	}
	/* 3.特典一覧 */
	.reward-image{
		width: 100%;
	}
	.character-card{
		margin-top: 10px;
	}
	.character-name {
	  	font-size: 1.2rem;
		letter-spacing: 0.1em; /* 文字の間隔を広げる */
	}
	
	.character-header-content {
        display: block;
    }
	.character-img-container{
		width: 100%;
		margin-bottom: 10px;
	}
	.character-desc {
		font-size: 1.2rem;
	}
	.character-desc p,.character-desc strong,.current_stage-message-container .note{
		font-size: 1.2rem;
	}
	/* 4. 参加条件・期間 */
	.conditions-description{
		padding: 10px 10px;
	}
	.center-links a{
		font-size: 12px;
	}
	/* 注意事項 */
	.howto-section ul {
	  padding: 12px 16px;
	}
}




/* メインヘッダー画像 */
.main-picture {
  margin-top: 0px;
  display: flex; /* ←中央揃えのためにflexに変更 */
  justify-content: center; /* 横方向に中央揃え */
}
.main-picture img {
  width: 100%;
  height: auto;
  display: block;
  
}
@media (max-width: 768px) {
  .main-picture img {
    margin-top: 70px;
    border-radius: 0;
    width: 100%;
  }
}

/* 最初の説明 */
.aaa {
  max-width: 1000px;      /* コンテンツの最大幅（お好みで） */
  margin: 0 auto;        /* 横方向の中央寄せ */
  text-align: left;      /* 中のテキストは左揃え */
  padding: 2rem 5rem;         /* 余白をつけると見やすい */
  background-color: transparent;
  margin-top: 2rem;
  line-height: 1.7;
}
.aaa .card {
  background: #fff;      /* 背景白 */
  border-radius: 12px;   /* 角丸 */
  padding: 3rem 4rem;         /* 内側余白 */
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); /* 影をつけるとカードっぽくなる */
}
.aaa a{
	color: #2ec86e;
}
.aaa p{
	margin-bottom: 20px;
}
.aaa p:last-child {
  margin-bottom: 0;
}
.card strong {
  color: #fe456e;       /* 文字色（ブランドカラーに合わせる） */
  font-weight: 700;     /* 太字（デフォルトのstrongより強調） */
  background: #fff0f5;  /* 背景色で目立たせる（任意） */
  padding: 0.2em 0.4em; /* 文字周りに余白 */
  border-radius: 6px;   /* 角丸でタグ風 */
}
.aaa img{
	width: 100%;
	margin-top: 2rem;
	border-radius: 10px;
}
.aaa .card.bottom:not(:first-child) {
  margin-top: 15px;
}
@media (max-width: 768px) {
  .aaa {
    width: 100%;
    padding: 10px;
    background-color:transparent;
  }
  .aaa .card{
	  padding: 2rem 2rem;
  }
  .aaa img{
	  width: 100%; 
  }
}


/* 種類カブ v2 */
.syuruikabu .text{
	background-color: #fe456e;
	color: white;
	margin-top: 10px;
	border-radius: 10px;
	padding: 20px;
	line-height: 1.5;
}
.syuruikabu img{
	width: 100%;
}