@charset "UTF-8";
/* ============================================================
   夏休みキッズ Special フェア LP
   crafthearttokai.jp / #campaign 内スタイル
   ============================================================ */

/* --------- 調整・消去（既存踏襲） --------- */
body .box-white{ background-color: #efefef; }
body .box-white,
body .post-content{ padding: 0; }
body .group{ padding: 0 0 80px; }
body main > .title_area,
body .group::before,
body .inner > header,
body .inner dl.periodText{ display: none !important; }
body .group .inner{ width: 100%; max-width: 1480px; }
body .post-content p{ margin: 0; }

#campaign .pc { }
#campaign .sp { display: none !important; }
@media screen and (max-width: 768px){
	#campaign .pc { display: none !important; }
	#campaign .sp { display: block !important; }
}

/* ---- カラー・変数定義 ---- */
#campaign {
	--pink:        #ff9dc4;
	--pink-deep:   #ff6fa5;
	--pink-pale:   #fef6f6;
	--pink-bg:     #ffe3ee;
	--mint:        #a8e6dd;
	--mint-pale:   #e5f8f5;
	--blue:        #0a73d4;   /* 見出しの水色文字 */
	--blue-deep:   #1c8fca;
	--yellow:      #ffe45c;
	--purple:      #c9b6f0;
	--text:        #0a73d4;
	--white:       #ffffff;

	--radius:      20px;
	--radius-lg:   28px;
	--shadow:      0 6px 18px rgba(255, 120, 165, .18);
	--shadow-btn:  0 4px 0 rgba(255, 111, 165, .45);

	--font: "Hiragino Maru Gothic ProN", "Hiragino Maru Gothic Pro",
	        "Zen Maru Gothic", "M PLUS Rounded 1c",
	        "ヒラギノ丸ゴ ProN", "メイリオ", Meiryo, sans-serif;
}

/* ---- ベース ---- */
#campaign {
	max-width: 960px;
	margin: 0 auto;
	padding: 0 0 80px;
	font-family: var(--font);
	color: var(--text);
	line-height: 1.9;
	background: var(--pink-pale);
	overflow: hidden;
}

#campaign img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}

#campaign p {
	margin: 0 0 1em;
	font-size: 15px;
}

/* ============================================================
   H1 / KV
   ============================================================ */
#campaign header h1 {
	margin: 0;
	text-align: center;
}
#campaign header h1 img {
	width: 100%;
}

/* ============================================================
   イントロ
   ============================================================ */
#campaign #intro {
	text-align: center;
	padding: 50px 24px 20px;
}
#campaign #intro h2 {
	margin: 0 0 24px;
	font-size: 22px;
	line-height: 1.6;
	font-weight: 700;
	color: var(--pink-deep);
}
#campaign #intro p {
	color: var(--text);
	font-size: 15px;
}
#campaign #intro .period {
	display: inline-block;
	margin: 8px auto 0;
	padding: 10px 32px;
	background: var(--mint);
	border-radius: 999px;
	color: var(--white);
	font-size: 19px;
	font-weight: 700;
	letter-spacing: .04em;
}

/* ============================================================
   PRODUCT ブロック
   ============================================================ */
#campaign #product {
	padding: 0 20px;
}

/* --- セクション見出し h3（水色ポップ文字） --- */
#campaign #product > h3,
#campaign .whitebox > h3 {
	position: relative;
	margin: 56px 0 28px;
	text-align: center;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.5;
	color: var(--blue);
}
#campaign #product > h3 span,
#campaign .whitebox > h3 span {
	display: inline-block;
	font-size: 27px;
	color: var(--blue);
	text-shadow:
		2px 2px 0 var(--white),
		-2px 2px 0 var(--white),
		2px -2px 0 var(--white),
		-2px -2px 0 var(--white),
		3px 4px 0 rgba(168, 230, 221, .8);
	letter-spacing: .01em;
}
/* ============================================================
   whitebox（各商品カード）
   ============================================================ */
#campaign .whitebox {
	position: relative;
	max-width: 720px;
	margin: 0 auto 32px;
	padding: 40px 28px 32px;
	background: var(--white);
	border-radius: var(--radius-lg);
	text-align: center;
}


/* --- リード（＼ 〜 ／）吹き出し --- */
#campaign .readtext {
	margin: 0 auto 24px;
	text-align: center;
}
#campaign .readtext p {
	display: inline-block;
	position: relative;
	margin: 0;
	padding: 10px 28px;
	background: var(--mint-pale);
	border-radius: 999px;
	font-family: var(--font);
	font-size: 15px;
	font-weight: 700;
	color: var(--blue-deep);
}
#campaign .readtext p::after {
	content: "";
	position: absolute;
	bottom: -8px;
	left: 50%;
	transform: translateX(-50%);
	border-style: solid;
	border-width: 9px 8px 0 8px;
	border-color: var(--mint-pale) transparent transparent transparent;
}

/* --- 商品画像 --- */
#campaign .event-image {
	margin: 0 0 22px;
}
#campaign .event-image img {
	border-radius: var(--radius);
}
/* ワークショップ等のバナーは縦並び */
#campaign .event-image a {
	display: block;
	margin: 0 0 12px;
}
#campaign .event-image a:last-child {
	margin-bottom: 0;
}
#campaign .event-image a img {
	width: 100%;
}

/* --- 商品名 h4（プライス強調） --- */
#campaign .whitebox h4 {
	margin: 0 0 16px;
	font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "メイリオ", Meiryo, sans-serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--text);
}
#campaign .whitebox h4 span {
	color: var(--pink-deep);
	font-size: 22px;
}
#campaign .whitebox h4 span b {
	font-size: 38px;
	line-height: 1;
	color: var(--pink-deep);
	font-weight: 600;
	vertical-align: -2px;
}

#campaign .whitebox p {
	text-align: left;
	font-size: 14px;
	color: var(--text);
}

/* ============================================================
   ボタン（シール風CTA）
   ============================================================ */
#campaign .buttons {
	margin: 24px 0 0;
	text-align: center;
}
#campaign .buttons a {
	display: inline-block;
	position: relative;
	min-width: 280px;
	margin: 8px auto 0;
	padding: 16px 40px;
	background: linear-gradient(180deg, var(--pink) 0%, var(--pink-deep) 100%);
	border-radius: 999px;
	color: var(--white);
	font-size: 17px;
	font-weight: 500;
	text-decoration: none;
	letter-spacing: .02em;
	box-shadow: var(--shadow-btn);
	transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
#campaign .buttons a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 22px;
	width: 8px;
	height: 8px;
	border-top: 2px solid var(--white);
	border-right: 2px solid var(--white);
	transform: translateY(-50%) rotate(45deg);
}
#campaign .buttons a:hover {
	transform: translateY(2px);
	box-shadow: 0 2px 0 rgba(255, 111, 165, .45);
	filter: saturate(1.05);
}
/* 白抜きボタン（サブ／アプリ導線） */
#campaign .buttons a:nth-child(2) {
	background: var(--white);
	color: var(--pink-deep);
	border: 2px solid var(--pink);
	box-shadow: 0 4px 0 rgba(255, 111, 165, .25);
}
#campaign .buttons a:nth-child(2)::after {
	border-color: var(--pink-deep);
}

/* ============================================================
   ENDING
   ============================================================ */
#campaign #ending {
	max-width: 720px;
	margin: 60px auto 0;
	padding: 44px 28px;
	text-align: center;
	background: var(--pink-bg);
	border-radius: var(--radius-lg);
}
#campaign #ending h2 {
	margin: 0 0 16px;
	font-size: 22px;
	font-weight: 800;
	color: var(--pink-deep);
}
#campaign #ending p {
	color: var(--text);
}

/* ============================================================
   レスポンシブ（SP）
   ============================================================ */
@media screen and (max-width: 767px) {
	#campaign { padding-bottom: 50px; }

	#campaign #intro { padding: 36px 18px 12px; }
	#campaign #intro h2 { font-size: 21px; }
	#campaign #intro .period { font-size: 16px; padding: 9px 22px; }

	#campaign #product { padding: 0 14px; }

	#campaign #product > h3,
	#campaign .whitebox > h3 { margin: 44px 0 22px; font-size: 18px; }
	#campaign #product > h3 span,
	#campaign .whitebox > h3 span { font-size: 22px; }
	#campaign #product > h3::before,
	#campaign #product > h3::after { width: 20px; height: 20px; }
	#campaign #product > h3::before { left: 0; }
	#campaign #product > h3::after  { right: 0; }

	#campaign .whitebox { padding: 30px 18px 26px; }
	#campaign .whitebox h4 { font-size: 18px; }
	#campaign .whitebox h4 span b { font-size: 34px; }

	#campaign .buttons a {
		display: block;
		min-width: 0;
		width: 100%;
		box-sizing: border-box;
		padding: 15px 30px;
		font-size: 16px;
	}

	#campaign #ending { margin: 44px 14px 0; padding: 34px 20px; }
}