/* ==========================================
   自炊の森 iPhone・iPad持ち帰り手順 CSS
   ========================================== */
.howto-content {
	padding: 20px;
	max-width: 960px;
	margin: 0 auto;
}

.howto-card {
	background: #fff;
	padding: 20px;
	border-radius: 8px;
	border: 1px solid var(--border-color);
	line-height: 1.7;
	font-size: 1.0rem;
}

.howto-section {
	margin-bottom: 40px;
}

.howto-section:last-child {
	margin-bottom: 0;
}

.howto-section h2 {
	font-size: 1.25rem;
	border-left: 4px solid var(--theme-color);
	padding-left: 15px;
	margin-bottom: 20px;
	color: var(--text-main);
}

/* 手順カード：左に説明、右にイメージ図 */
.howto-step {
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: 24px;
	align-items: start;
	padding: 20px 0;
	border-top: 1px solid var(--border-color);
}

.howto-step:first-of-type {
	border-top: none;
	padding-top: 0;
}

.howto-text h3 {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 12px;
	font-size: 1.2rem;
	line-height: 1.4;
	color: var(--text-main);
}

.howto-num {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--theme-color);
	color: #fff;
	font-size: 1rem;
	font-weight: bold;
}

.howto-text p {
	margin: 0 0 10px;
}

.howto-text strong {
	color: var(--theme-color);
}

.howto-figure {
	margin: 0;
}

.howto-figure img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid #ddd;
	border-radius: 8px;
	background: var(--bg-light);
}

.howto-figure figcaption {
	margin-top: 6px;
	font-size: 0.8rem;
	color: var(--text-sub);
}

.howto-note {
	font-size: 0.9rem;
	color: var(--text-sub);
}

/* ご来店前の注意喚起(アプリの事前用意) */
.howto-lead-warn {
	color: var(--accent-orange-dark);
}

.howto-alert {
	margin-bottom: 24px;
	padding: 20px 22px;
	background: var(--accent-orange-light);
	border: 2px solid var(--accent-orange);
	border-radius: 8px;
}

.howto-alert-label {
	display: inline-block;
	margin-bottom: 8px;
	padding: 2px 14px;
	background: var(--accent-orange);
	color: #fff;
	font-size: 0.85rem;
	font-weight: bold;
	border-radius: 999px;
}

.howto-alert h3 {
	margin: 0 0 10px;
	font-size: 1.25rem;
	line-height: 1.4;
	color: var(--accent-orange-dark);
}

.howto-alert p {
	margin: 0 0 8px;
}

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

.howto-alert strong {
	color: var(--accent-orange-dark);
}

/* アプリの入手案内(イラスト無しの1カラム) */
.howto-step-prepare {
	grid-template-columns: 1fr;
	border-top: none;
	padding-top: 0;
}

/* 来店前の準備：説明ブロック・ケーブルの案内 */
.howto-block {
	padding: 4px 0 20px;
}

.howto-block h3 {
	margin: 0 0 10px;
	font-size: 1.2rem;
	line-height: 1.4;
	color: var(--text-main);
}

.howto-block p {
	margin: 0;
}

.howto-block strong {
	color: var(--theme-color);
}

.howto-callout {
	margin-top: 4px;
	padding: 16px 20px;
	background: var(--theme-bg);
	border: 1px solid var(--border-color);
	border-left: 4px solid var(--theme-color);
	border-radius: 8px;
}

.howto-callout h3 {
	margin-bottom: 6px;
}

/* SideBooksの入手カード：アイコン + アプリ名 + (スマホ・タブレット)公式バッジ / (PC)QRコード */
.howto-appcard {
	display: flex;
	align-items: center;
	justify-content: space-between;	/* アイコンは左、バッジ・QRコードは右 */
	gap: 20px;
	margin: 16px 0;
	padding: 16px;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 12px;
}

.howto-appicon {
	flex: 0 0 auto;
	display: block;
	line-height: 0;
}

.howto-appicon img {
	display: block;
	width: 96px;
	height: 96px;
}

.howto-appmark {
	flex: 0 0 auto;
	text-align: center;
}

.howto-appname {
	margin: 6px 0 0;
	font-size: 0.85rem;
	font-weight: bold;
	line-height: 1.3;
	color: var(--text-main);
}

/* アイコンの右の説明文(余った幅を使う) */
.howto-appdesc {
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.6;
	color: var(--text-main);
}

/* スマホ・タブレット(タッチ操作)は公式バッジ、PCはQRコード */
.howto-link-touch {
	display: none;
}

.howto-link-pc {
	display: flex;
	align-items: center;
	gap: 16px;
	min-width: 0;
}

/* Appleのガイドライン上、バッジは変形せず、周囲に余白を確保して表示する */
.howto-badge {
	display: inline-block;
	line-height: 0;
	margin: 4px 0;
}

.howto-badge img {
	display: block;
	width: auto;
	height: 44px;
}

.howto-qr {
	flex: 0 0 auto;
	display: block;
	line-height: 0;
	border: 1px solid #ddd;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
}

.howto-qr img {
	display: block;
	width: 110px;
	height: 110px;
}

.howto-qr-caption {
	margin: 0;
	max-width: 16em;
	font-size: 0.9rem;
	color: var(--text-sub);
}

@media (hover: none) and (pointer: coarse) {
	.howto-link-touch {
		display: block;
	}
	.howto-link-pc {
		display: none;
	}
}

/* うまくいかないとき */
.howto-trouble {
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
}

.howto-trouble li {
	padding: 14px 16px;
	margin-bottom: 10px;
	background: var(--bg-light);
	border-radius: 8px;
	border: 1px solid var(--border-color);
}

.howto-trouble li:last-child {
	margin-bottom: 0;
}

/* スマホ対応 */
@media (max-width: 768px) {
	.howto-content {
		padding: 10px;
	}
	.howto-section h2 {
		font-size: 1.1rem;
	}
	.howto-step {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.howto-text h3 {
		font-size: 1.1rem;
	}
	.howto-appcard {
		gap: 14px;
		padding: 14px;
		flex-wrap: wrap;
	}
	.howto-appdesc {
		flex: 1 1 140px;
		font-size: 0.85rem;
	}
	.howto-link-touch,
	.howto-link-pc {
		flex: 0 0 100%;
		justify-content: flex-end;
		text-align: right;
	}
	.howto-appicon img {
		width: 72px;
		height: 72px;
	}
}
