@charset "UTF-8";

/* ====================================
   Home Template 専用スタイル
   ==================================== */

/* ====================================
   最新情報セクション
   ==================================== */

.articles-nav {
	margin-bottom: 2em;
	padding: 1em;
	background: light-dark(#f9f9f9, #2a2a2a);
	border-radius: 8px;
}

.articles-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.articles-list li {
	border-bottom: 1px solid light-dark(#e0e0e0, #444);
	padding: 0.75em 0;
}

.articles-list li:last-child {
	border-bottom: none;
}

.articles-list a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	text-decoration: none;
	color: light-dark(#333, #ddd);
	transition: color 0.2s;
}

.articles-list a:hover {
	color: light-dark(#007bff, #4a9eff);
}

.articles-list time {
	font-size: 0.9em;
	color: light-dark(#666, #999);
	white-space: nowrap;
	margin-left: 1em;
}

.articles-more {
	margin-top: 1em;
	text-align: right;
}

.articles-more a {
	color: light-dark(#007bff, #4a9eff);
	text-decoration: none;
	font-weight: bold;
}

.articles-more a:hover {
	text-decoration: underline;
}

/* ====================================
   店舗情報セクション（home専用）
   ==================================== */

.shop-section {
	margin-bottom: 3em;
}

.shop-name {
	/* components.css の h2 スタイルを継承 */
}

.info-section,
.links-section {
	margin-bottom: 2em;
}

.sns-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
}

/* 店舗写真ギャラリー */
.shop-photo-gallery {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
}

.shop-photo-gallery img {
	width: calc((100% - 1em) / 3);
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 4px;
	cursor: pointer;
	transition: opacity 0.2s;
}

.shop-photo-gallery img:hover {
	opacity: 0.85;
}

@media (max-width: 767px) {
	.shop-photo-gallery img {
		width: calc((100% - 0.5em) / 2);
	}
}

/* ====================================
   法定表示セクション（店舗情報内に配置）
   ==================================== */

.legal-section {
	margin-top: 2em;
	grid-column: 1 / -1;
	font-size: 0.8em;
}

.legal-heading {
	font-weight: bold;
	margin-bottom: 0.5em;
	color: light-dark(#666, #999);
}

.legal-table {
	border-collapse: collapse;
}

.legal-table th,
.legal-table td {
	padding: 0.4em 0.6em;
	border: 1px solid light-dark(#ddd, #444);
	text-align: left;
}

.legal-table th {
	background: light-dark(#f5f5f5, #333);
	font-weight: normal;
	color: light-dark(#666, #aaa);
	white-space: nowrap;
}

.legal-table td {
	background: light-dark(#fff, #2a2a2a);
	color: light-dark(#333, #ddd);
}

/* ====================================
   情報リスト（店舗情報・法定表示共通）
   ==================================== */

.info-list,
.legal-list {
	display: grid;
	gap: 0;
}

.info-list dt,
.info-list dd,
.legal-list dt,
.legal-list dd {
	margin: 0;
	padding: 0.5em 0;
	border-bottom: 1px solid light-dark(#ddd, #444);
}

.info-list dt,
.legal-list dt {
	font-weight: bold;
	color: light-dark(#555, #bbb);
	font-size: 0.85em;
}

.info-list dd,
.legal-list dd {
	color: light-dark(#333, #ddd);
}

/* PC: 横並び表形式 */
@media (min-width: 768px) {
	.info-list,
	.legal-list {
		grid-template-columns: 7em 1fr;
	}

	.info-list dt,
	.legal-list dt {
		grid-column: 1;
	}

	.info-list dd,
	.legal-list dd {
		grid-column: 2;
	}

	/* 同一行のdt/ddのborderを揃える */
	.info-list dt,
	.info-list dd,
	.legal-list dt,
	.legal-list dd {
		border-bottom: 1px solid light-dark(#eee, #444);
	}
}

/* SP: 縦並び */
@media (max-width: 767px) {
	.info-list,
	.legal-list {
		grid-template-columns: 1fr;
	}

	.info-list dt,
	.legal-list dt {
		padding-bottom: 0.2em;
		border-bottom: none;
	}

	.info-list dd,
	.legal-list dd {
		padding-top: 0;
		margin-bottom: 0.5em;
	}
}
