@charset "utf-8";
@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,700,900&subset=japanese');
@import url('https://fonts.googleapis.com/css2?family=Wix+Madefor+Text:ital,wght@0,400..800;1,400..800&display=swap');
 
/* ============================================
   共通変数・リセット
   ============================================ */
:root {
	--red: #db0034;
	--yellow: #fff770;
	--yellow-btn: #ffff6e;
	--pink-light: #ffd1d6;
	--text: #ffffff;
	--font: 'Wix Madefor Text', 'Noto Sans JP', 'メイリオ', 'Meiryo', sans-serif;
}
 
/* ============================================
   WordPressテンプレート調整
   ============================================ */
body .group,
body .box-white,
body .post-content { padding: 0; }

body .inner > header,
body .inner dl.periodText { display: none !important; }

body .post-content :is(p, h2, h3) { margin: 0; }

@media screen and (max-width: 768px) { /*  SP(768px以下) */
	body .group { padding: 0 0 80px; }
	body main > .title_area,
	body .group::before { display: none !important; }
	body .group .inner { width: 100%; }

	#campaign {
		margin-top: 8px; /* Tokaiロゴとの距離 */
		background: #ffdcce;
	}
	#campaign .pc { display: none !important; }
	#campaign .sp { display: block !important; }

	.content-main img,
	#campaign .content img.img-responsive {
		width: 100%;
		height: auto;
		vertical-align: top;
	}
}

@media print, screen and (min-width: 769px) { /* pc */
	body header.title_area,
	body .group:nth-of-type(2n-1)::before { display: none !important; }

	body .inner {
		width: 100%;
		max-width:1600px;
	}

	#campaign div.image { text-align: center; }
	#campaign .pc { display: block !important; }
	#campaign .sp { display: none !important; }
	#campaign img { display: block; }

	#campaign .content-topic {
		margin: 0 auto;
		padding: 68px 0 100px;
	}
	#campaign .content-topic a:hover {
		text-decoration: none;
		opacity: 0.7;
	}
}

/* ============================================
   #campaign 基本設定（共通）
   ============================================ */


#campaign {
	background-image: url(images/bg_red.jpg);
	background-color: var(--red);
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: 100% auto;
}
 
body #campaign p,
body #campaign li,
body #campaign a {
	font-family: var(--font);
	font-size: 14px;
	line-height: 1.75em;
	color: var(--text);
}
 
#campaign h1,
#campaign h2,
#campaign h3,
#campaign h4,
#campaign h5 {
	font-family: var(--font);
	line-height: 1.4em;
	font-feature-settings: "palt";
}

#campaign img {
	display: block;
	width: 100%;
}
 
#campaign a {
	color: var(--yellow);
}
 
/* ---- header ---- */

#campaign header{
	padding: 30px 3vw 60px;
}
#campaign header h1{
	width: 100%;
	max-width: 1000px;
	margin: 30px auto;
}

#campaign header p {
	padding: 0 5vw;
	font-weight: bold;
	text-align: center;
}

.float {
	animation: float 3s ease-in-out infinite;
}

@keyframes float {
	0%, 100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-10px);
	}
}


/* ---- main ---- */
#campaign .wrapper {
	padding: 50px 5vw 40px;
}
#campaign .wrapper2 {
	padding: 50px 0vw 40px;
}
#campaign .carpet{
	background-color: #e9214c;
}

#campaign h2.section-heading {
	text-align: center;
	font-size: 28px;
	font-weight: bold;
	color: #fff;
	margin: 0 0 50px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
}
#campaign h2.section-heading::before,
#campaign h2.section-heading::after {
	content: "✦";
	font-size: 22px;
	color: #ffe88a;
}

#campaign .outer {
	max-width: 760px;
	margin: 0 auto;
	display: flex;
	align-items: flex-start;
	gap: 60px;
}
#campaign .text-box { flex: 1; }
#campaign .img-box  { flex-shrink: 0; width: 270px;}


#campaign .text-box strong {
	color: #ffe88a;
	font-size: 22px;
	font-weight: bold;
}
#campaign .text-box p {
	margin: 0 0 24px;
	font-size: 18px;
}

/* 注釈リスト */
#campaign .note-list {
	list-style: none;
	padding: 0;
	margin: 30px 0 0;
	font-size: 13px;
	line-height: 1.7;
}
#campaign .note-list li {
	position: relative;
	padding-left: 1em;
	margin-bottom: 5px;
}
#campaign .note-list li::before {
	content: "※";
	position: absolute;
	left: 0;
}


#campaign .box {
	max-width: 940px;
	margin: 0 auto 27px;
}
#campaign .box2 {
	max-width: 700px;
	margin: 20px auto 20px;
}

#campaign .box2 + p{
	width: fit-content;
	margin: 35px auto 20px;
}


#campaign .entry-area{
	text-align: center;
}

/* キャラクター画像 */
#campaign .entry-icon {
	display: block;
	width: 170px;
	height: auto;
	margin: 0 auto -10px; /* 下にマイナスマージンでボタンに重ねる */
	position: relative;
	z-index: 0;
	animation: float 3s ease-in-out infinite;
}
@keyframes floeat {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-1px); }
}


/* 応募フォームボタン */
#campaign .entry-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	width: 100%;
	max-width: 480px;
	padding: 22px 36px;
	background: #ffe88a;
	color: #c8102e;
	font-size: 22px;
	font-weight: bold;
	text-decoration: none;
	border-radius: 999px;
	transition: transform 0.2s ease-out;
	position: relative;
	z-index: 1;
}
#campaign .entry-btn::after {
	content: "";
	width: 12px;
	height: 12px;
	border-top: 3px solid #c8102e;
	border-right: 3px solid #c8102e;
	transform: rotate(45deg);
}
#campaign .entry-btn:hover,
#campaign .entry-btn:active {
	transform: scale(0.98);
}

#campaign #period {
	margin: 40px 0 0;
	font-size: 20px;
	font-weight: bold;
	line-height: 1.7;
}

/* 注意書き */
#campaign .entry-notes {
	width: fit-content;
	margin: 30px auto 0;
	text-align: left;
	font-size: 14px;
	line-height: 1.8;
}
#campaign .entry-notes p {
	margin: 0 0 16px;
}
#campaign .entry-notes p:last-child {
	margin-bottom: 0;
}
#campaign .entry-notes a {
	color: #fff;
	text-decoration: underline;
}


#campaign .terms-area {
	color: #fff;
	padding: 60px 20px;
}

/* 各ブロック共通 */
#campaign .terms-block {
	max-width: 800px;
	margin: 0 auto;
}
#campaign .terms-block + .terms-block {
	margin-top: 50px; /* 注意事項と応募規約の間隔 */
}

/* h3見出し */
#campaign .terms-block h3 {
	font-size: 22px;
	font-weight: bold;
	text-align: center;
	margin: 0 0 24px;
	padding-bottom: 12px;
	border-bottom: 2px solid #ffe88a; /* 黄色のアンダーライン */
	color: #ffe88a;
}

/* 応募規約のリード文 */
#campaign .terms-intro {
	margin: 0 0 20px;
	line-height: 1.8;
}

/* リスト */
#campaign .terms-block ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
#campaign .terms-block ul li {
	position: relative;
	padding-left: 1.2em;
	margin-bottom: 12px;
	line-height: 1.8;
	font-size: 14px;
}
#campaign .terms-block ul li::before {
	content: "・";
	position: absolute;
	left: 0;
	color: #ffe88a;
	font-weight: bold;
}
#campaign .terms-block ul li:last-child {
	margin-bottom: 0;
}

/* リンク */
#campaign .terms-block a {
	color: #fff;
	text-decoration: underline;
}
#campaign .terms-block a:hover {
	opacity: 0.8;
}


 
/* ============================================
   SP（〜768px）
   ============================================ */
@media screen and (max-width: 768px) {

	#campaign header p {
		font-size: 14px;
		text-align; left;
	}
	#campaign .text-box p {
		font-size: 15px;
	}
	#campaign h2.section-heading {
		font-size: 22px;
		margin-bottom: 30px;
		gap: 14px;
	}
	#campaign .outer {
		flex-direction: column;
		gap: 30px;
		align-items: center;
	}
	#campaign .entry-icon {
		width: 170px;
		margin-bottom: -10px;
	}
	#campaign .entry-btn {
		font-size: 18px;
		padding: 18px 24px;
	}
	#campaign .period {
		font-size: 16px;
	}
	#campaign .entry-notes {
		font-size: 12px;
	}
	#campaign .terms-area {
		padding: 40px 16px;
	}
	#campaign .terms-block + .terms-block {
		margin-top: 40px;
	}
	#campaign .terms-block h3 {
		font-size: 18px;
		margin-bottom: 18px;
	}
	#campaign .terms-block ul li {
		font-size: 13px;
		margin-bottom: 10px;
	}
}
 
/* ============================================
   PC（769px〜）
   ============================================ */
@media print, screen and (min-width: 769px) {
	#campaign header p {
		font-size: 18px;
	}
}