/*
 * TOWN - pattern of daily wear -
 * WordPress テーマ「town-sewing」の style.css から、トップページで使っている指定だけを抜き出したもの。
 * レイアウトは Bootstrap 4.3.1（css/bootstrap.min.css）を利用。
 */

/* ---------- ベース ---------- */

body {
	margin: 0;
	background: #fff;
	font-family: a-otf-gothic-bbb-pr6n, sans-serif;
	font-weight: 400;
	font-style: normal;
	color: #000 !important;
}

img {
	max-width: 100%;
	height: auto;
}

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- 見出し ---------- */

h1 {
	display: inline-block;
}

h1 img {
	width: 150px;
	height: auto;
}

h2 {
	font-family: a-otf-midashi-go-mb31-pr6n, sans-serif;
	font-weight: 600;
	font-style: normal;
	letter-spacing: 0.2rem;
	display: inline-block;
	margin-left: 40px;
}

h3 {
	font-size: 2rem;
	font-family: a-otf-midashi-go-mb31-pr6n, sans-serif;
	font-weight: 600;
	font-style: normal;
	letter-spacing: 0.2rem;
	line-height: 3rem;
	color: #f475ff;
}

h3.normal {
	color: #000;
}

h4 {
	font-size: 1.6rem;
	font-family: a-otf-midashi-go-mb31-pr6n, sans-serif;
	font-weight: 600;
	font-style: normal;
	line-height: 3rem;
}

/* ---------- 背景色 ---------- */

.bg-yellow {
	background: #fff177;
}

.bg-gray {
	background: #f3f3f3;
}

.bg-blue {
	background: #aacbf6;
}

.bg-red {
	background: #f9bfcd;
}

/* ---------- 画像 ---------- */

img.border {
	border: 1px solid #eee;
}

img.book {
	width: 90%;
}

img.profile {
	max-width: 220px;
}

img.class-logo {
	max-width: 280px;
	width: 100%;
}

.hero img {
	display: block;
	width: 100%;
	padding: 0;
	margin: 0;
}

/* ---------- テキスト ---------- */

p.block-txt {
	width: 50%;
	margin: 0 auto;
	text-align: left;
}

p.lead {
	font-size: 1.2rem;
	line-height: 2.5rem;
}

.class-box {
	border: 1px solid #333;
}

/* ---------- 購入ボタン ---------- */

.btn-buy {
	display: inline-block;
	color: #343a40;
	background: #fff;
	border: 1px solid #dee2e6;
}

.btn-buy:hover {
	color: #343a40;
	background: #e9ecef;
	text-decoration: none;
}

/* ---------- スマートフォン ---------- */

@media screen and (max-width: 767px) {
	h1 {
		display: block;
		text-align: center;
	}

	h1 img {
		width: 70%;
	}

	h2 {
		text-align: center;
		display: block;
		margin: 0;
		padding-bottom: 20px;
	}

	h3,
	h3.normal {
		font-size: 1.3rem;
		line-height: 2rem;
	}

	h4 {
		font-size: 1.2rem;
		line-height: 2rem;
	}

	img.book {
		width: 100%;
	}

	p.block-txt {
		width: 100%;
	}

	p.lead {
		font-size: 1rem;
		line-height: 2rem;
	}

	.btn-buy {
		display: block;
		width: 100%;
	}
}

/* ---------- 6冊目（使えるボトムス）用の追加 ---------- */

.bg-pink {
	background: #ffedfd;
}

ul.item-list {
	list-style: none;
	padding: 0;
	margin: 0 auto;
	max-width: 640px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 4px 24px;
	text-align: left;
}

ul.item-list .num {
	display: inline-block;
	width: 2em;
	color: #f475ff;
	font-weight: 600;
}

/* 書誌情報など、確定待ちの仮テキスト（差し替え後に削除） */
.tbd {
	background: #fff3a8;
	color: #c00;
}

@media screen and (max-width: 767px) {
	ul.item-list {
		grid-template-columns: 1fr;
	}
}

/* ---------- 余白とファーストビュー（6冊目版で整理） ---------- */

/* ヘッダー＋メインビジュアルをブラウザの高さに収める */
.first-view {
	display: flex;
	flex-direction: column;
	max-height: 100vh;
	max-height: 100svh;
}

.site-header {
	flex: none;
	padding-top: 16px;
	padding-bottom: 8px;
}

.first-view .hero {
	flex: 0 1 auto;
	height: 75vw; /* 画像の縦横比 4:3 */
	min-height: 0;
	background: #f3f3f3;
}

.first-view .hero img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* セクションの上下余白 */
.sec {
	padding-top: 72px;
	padding-bottom: 72px;
}

/* 同じ白背景が続くときは上の余白を詰める */
.sec-cont {
	padding-top: 0;
}

.sec h3 {
	margin-bottom: 24px;
}

.sec p.lead {
	margin-bottom: 1.5rem;
}

.sec .container > :last-child,
.sec .col-12 > :last-child,
.sec p.lead:last-child {
	margin-bottom: 0;
}

ul.item-list {
	margin-top: 32px;
	margin-bottom: 56px;
}

.samples p {
	margin-bottom: 32px;
}

.samples p:last-child {
	margin-bottom: 0;
}

/* 書籍ブロック */
h3 + .book-row {
	margin-top: 40px;
}

.book-info h4 {
	margin-bottom: 12px;
}

.book-info small {
	display: block;
}

.book-info small.spec {
	margin-top: 16px;
}

.book-info p.buy {
	margin-top: 12px;
	margin-bottom: 0;
}

.book-info small + p.buy {
	margin-top: 40px;
}

.book-row p:has(> img.book) {
	margin-bottom: 0;
}

@media screen and (max-width: 767px) {
	.sec {
		padding-top: 48px;
		padding-bottom: 48px;
	}

	.sec-cont {
		padding-top: 0;
	}

	h3 + .book-row {
		margin-top: 24px;
	}

	.book-info {
		margin-top: 24px;
	}

	ul.item-list {
		margin-bottom: 40px;
	}

	.samples p {
		margin-bottom: 16px;
	}
}
