@charset "UTF-8";

*
{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body
{
	font-family: 'M PLUS 1p', sans-serif;
	background: #f0f0f0;
	color: #000;
}

/* ===== 印刷ボタンバー（画面のみ） ===== */
.screen-only
{
	background: #fff;
	border-bottom: 1px solid #ddd;
	padding: 12px 20px;
	display: flex;
	align-items: center;
	gap: 16px;
}

.screen-only .btn-print
{
	background: #e63340;
	color: #fff;
	border: none;
	padding: 9px 28px;
	font-family: inherit;
	font-size: 13px;
	border-radius: 3px;
	cursor: pointer;
	letter-spacing: 0.05em;
}

.screen-only .btn-print:hover
{
	background: #c02030;
}

.screen-only .note
{
	font-size: 11px;
	color: #888;
}

/* ===== A4ページ ===== */
.page
{
	width: 210mm;
	min-height: 297mm;
	margin: 20px auto;
	background: #fff;
	padding: 14mm 15mm 12mm;
	box-shadow: 0 2px 16px rgba(0, 0, 0, .15);
}

/* ===== ページヘッダー ===== */
.page-header
{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: 7px;
	margin-bottom: 9px;
}

.page-header img
{
	height: 50px;
}

.page-header img.companylogo
{
	height: 30px;
}

.page-header .header-label
{
	font-size: 10px;
	color: #000;
	letter-spacing: 0.03em;
}

/* ===== プランタイトル・概要 ===== */
.pagetitle
{
	text-align: center;
	font-weight: bold;
	font-size: 14px;
	padding-bottom: 10px;
}

.plan-title
{
	font-size: 18px;
	font-weight: bold;
	text-align: center;
	margin-bottom: 10px;
	line-height: 1.4;
}

.plan-desc
{
	font-size: 12px;
	text-align: center;
	line-height: 1.65;
	padding-bottom: 14px;
}

/* ===== 区切り ===== */
.divider
{
	border: none;
	border-top: 1px solid #e8e8e8;
	margin: 15px 0;
}

/* ===== スポットブロック ===== */
.spot
{
	display: flex;
	gap: 10px;
	align-items: flex-start;
}

/* 画像エリア：2枚横並び */
.spot-imgs
{
	flex: 0 0 auto;
	width: 50mm;
	display: flex;
	gap: 3px;
}

.spot-imgs span
{
	display: block;
	width: 21.4mm;
	height: 28mm;
	overflow: hidden;
	border-radius: 2px;
	background: #f5f5f5;
}

.spot-imgs span img
{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* テキストエリア */
.spot-txt
{
	flex: 1;
	min-width: 0;
}

.spot-txt h2
{
	font-size: 17px;
	font-weight: bold;
	border-left: 3px solid #000;
	padding-left: 5px;
	margin-bottom: 4px;
	line-height: 1.4;
}

.spot-txt p
{
	font-size: 13px;
	line-height: 1.65;
}

/* ===== ページフッター ===== */
.page-footer
{
	margin-top: 10px;
	padding-top: 6px;
	border-top: 1px solid #eee;
	text-align: center;
	font-size: 9px;
	color: #bbb;
}

/* ===== エラー ===== */
.error
{
	text-align: center;
	padding: 60px 20px;
	color: #999;
	font-size: 13px;
}

/* ===== 印刷時 ===== */
@media print
{
	@page
	{
		size: A4 portrait;
		margin: 0;
	}

	body
	{
		background: #fff;
	}

	.screen-only
	{
		display: none;
	}

	.page
	{
		width: 210mm;
		min-height: 297mm;
		margin: 0;
		padding: 14mm 15mm 12mm;
		box-shadow: none;
	}
}