/*
 * Hammock Life - Header / Nav / Footer / Mobile-Nav Styles
 * Source: mockup index.html
 *
 * 配置先: wp-content/themes/oceanwp-child-theme-master/assets/css/hl-header-footer.css
 *
 * クラスはすべて `hl-` プレフィックス化しており、OceanWP親テーマのスタイルとの衝突を最小化しています。
 * 親テーマ側の #site-header / #footer は functions.php で非表示化しています。
 */

/* === Base variables (mockupと同値) === */
.hl-mockup {
	--hl-primary: #7a8b6a;
	--hl-primary-light: #9aab8a;
	--hl-accent: #c4907a;
	--hl-accent-gold: #d4b896;
	--hl-bg: #f9f7f4;
	--hl-bg-warm: #f0ece5;
	--hl-text: #4a4a45;
	--hl-text-light: #8a8a82;
	--hl-border: #ddd8d0;
}

/* body 全体の基本タイポグラフィ(モックアップ準拠) */
body.hl-mockup {
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 300;
	color: #3c4043;
	background: #fcf9f8;
	line-height: 1.8;
	font-size: 14px;
	-webkit-font-smoothing: antialiased;
}

/* === Announcement Bar === */
.hl-announcement-bar {
	background: #7a8b6a;
	color: rgba(255, 255, 255, 0.92);
	text-align: center;
	padding: 9px 16px;
	font-size: 11px;
	letter-spacing: 0.12em;
	font-weight: 400;
}
.hl-announcement-bar span {
	color: var(--hl-accent-gold);
	font-weight: 500;
}

/* === Header === */
.hl-header {
	background: rgba(252, 249, 248, 0.95);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--hl-border);
	position: sticky;
	top: 0;
	z-index: 100;
}
.hl-header-inner {
	max-width: 1024px;
	margin: 0 auto;
	padding: 14px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.hl-logo a {
	display: inline-block;
	text-decoration: none;
	font-family: 'Cormorant Garamond', serif;
	font-size: 1.6rem;
	font-weight: 300;
	color: var(--hl-text);
	letter-spacing: 0.08em;
}
.hl-logo small {
	display: block;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.65rem;
	font-weight: 300;
	letter-spacing: 0.15em;
	color: var(--hl-text-light);
	margin-top: -2px;
}
.hl-logo .custom-logo {
	max-height: 48px;
	width: auto;
}
.hl-header-actions {
	display: flex;
	align-items: center;
	gap: 24px;
}
.hl-header-actions a {
	font-size: 13px;
	color: var(--hl-text-light);
	letter-spacing: 0.05em;
	text-decoration: none;
	transition: color 0.3s;
}
.hl-header-actions a:hover {
	color: var(--hl-primary);
}
.hl-cart-icon {
	position: relative;
}
.hl-cart-badge {
	position: absolute;
	top: -6px;
	right: -10px;
	background: var(--hl-accent);
	color: #fff;
	font-size: 10px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 500;
}

/* === Nav === */
.hl-nav {
	border-bottom: 1px solid var(--hl-border);
	background: var(--hl-bg);
}
.hl-nav-inner {
	max-width: 1024px;
	margin: 0 auto;
	padding: 0 24px;
	display: flex;
	justify-content: center;
	gap: 40px;
}
.hl-nav-inner a {
	padding: 14px 0;
	font-size: 13px;
	letter-spacing: 0.1em;
	color: var(--hl-text);
	text-decoration: none;
	position: relative;
	transition: color 0.3s;
}
.hl-nav-inner a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 2px;
	background: var(--hl-primary);
	transition: width 0.3s;
}
.hl-nav-inner a:hover {
	color: var(--hl-primary);
}
.hl-nav-inner a:hover::after {
	width: 100%;
}

/* === Footer === */
.hl-footer {
	background: #6b7b5c;
	color: #fff;
	padding: 56px 24px 24px;
}
.hl-footer-inner {
	max-width: 1024px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr 1.5fr;
	gap: 40px;
}
.hl-footer h4 {
	font-family: 'Cormorant Garamond', serif;
	font-size: 1.2rem;
	font-weight: 400;
	margin-bottom: 16px;
	letter-spacing: 0.05em;
	color: #fff;
}
.hl-footer p,
.hl-footer a {
	font-size: 13px;
	line-height: 2;
	opacity: 0.8;
	color: #fff;
	text-decoration: none;
}
.hl-footer a:hover {
	opacity: 1;
}
.hl-footer-note {
	margin-top: 16px;
	font-size: 11px;
	opacity: 0.6;
}
.hl-footer-contact-btn {
	display: inline-block;
	margin-top: 8px;
	padding: 10px 28px;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 2px;
	font-size: 11px;
	letter-spacing: 0.1em;
}
.hl-calendar iframe {
	border: 0;
	width: 100%;
	height: 280px;
	border-radius: 4px;
}
.hl-cal-legend {
	font-size: 11px;
	margin-top: 8px;
	opacity: 0.75;
}
.hl-cal-legend span {
	display: inline-block;
	width: 10px;
	height: 10px;
	background: #0b8043;
	border-radius: 2px;
	margin-right: 6px;
	vertical-align: middle;
}
.hl-footer-bottom {
	max-width: 1200px;
	margin: 40px auto 0;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
	font-size: 11px;
	opacity: 0.6;
	text-align: center;
}

/* === Mobile Bottom Nav === */
.hl-mobile-nav {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: #fff;
	border-top: 1px solid var(--hl-border);
	z-index: 200;
	padding: 8px 0 calc(8px + env(safe-area-inset-bottom));
}
.hl-mobile-nav-inner {
	display: flex;
	justify-content: space-around;
	align-items: center;
}
.hl-mobile-nav a {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 3px;
	font-size: 10px;
	color: var(--hl-text-light);
	letter-spacing: 0.05em;
	text-decoration: none;
}
.hl-mobile-nav a.active {
	color: var(--hl-text);
}
.hl-mobile-nav svg {
	width: 22px;
	height: 22px;
	stroke: currentColor;
	fill: none;
	stroke-width: 1.5;
}

/* === Responsive === */
@media (max-width: 768px) {
	/* 横スクロール防止 */
	html, body.hl-mockup {
		overflow-x: hidden;
	}

	.hl-header-inner {
		padding: 10px 14px;
		gap: 10px;
	}
	.hl-logo a {
		font-size: 1.25rem;
		line-height: 1.1;
		white-space: nowrap;
	}
	/* モバイルでは長いサブタイトルを非表示 (ヘッダー横幅を確保) */
	.hl-logo small {
		display: none;
	}
	/* アクション(検索/マイページ/カート) のゆとりを詰める */
	.hl-header-actions {
		gap: 14px;
	}
	.hl-header-actions a,
	.hl-header-actions button {
		font-size: 12px;
		letter-spacing: 0.02em;
	}
	.hl-nav {
		display: none;
	}
	.hl-announcement-bar {
		font-size: 10px;
		padding: 8px 12px;
		line-height: 1.5;
	}
	.hl-footer {
		padding: 40px 20px 24px;
	}
	.hl-footer-inner {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.hl-mobile-nav {
		display: block;
	}
	body.hl-mockup {
		padding-bottom: 70px;
	}
}

/* さらに狭い iPhone (SE等 375px以下) 向け微調整 */
@media (max-width: 380px) {
	.hl-header-actions {
		gap: 10px;
	}
	.hl-header-actions a,
	.hl-header-actions button {
		font-size: 11px;
	}
	.hl-logo a {
		font-size: 1.1rem;
	}
}

/* =============================================================
 * Blog (Journal) section
 * WordPress の Latest Posts ブロック (.wp-block-latest-posts__list)
 * をモックアップの .blog-list / .blog-card 風にスタイリング
 * ============================================================= */
body.hl-mockup ul.wp-block-latest-posts__list.is-grid {
	display: flex !important;
	flex-wrap: nowrap !important; /* is-grid の wrap を無効化 */
	justify-content: safe center;  /* 収まるときは中央、溢れる時は左端にフォールバック */
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 0 !important;
	margin: 0 auto !important;
	list-style: none !important;
	grid-template-columns: none !important; /* is-grid のgrid-template-columnsを無効化 */
}
body.hl-mockup ul.wp-block-latest-posts__list.is-grid::-webkit-scrollbar {
	display: none;
}
body.hl-mockup ul.wp-block-latest-posts__list > li {
	flex: 0 0 300px !important;
	width: 300px !important;
	min-width: 300px !important;
	max-width: 300px !important;
	scroll-snap-align: start;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.hl-mockup ul.wp-block-latest-posts__list .wp-block-latest-posts__featured-image {
	margin: 0 !important;
}
body.hl-mockup ul.wp-block-latest-posts__list .wp-block-latest-posts__featured-image a,
body.hl-mockup ul.wp-block-latest-posts__list .wp-block-latest-posts__featured-image {
	display: block;
}
body.hl-mockup ul.wp-block-latest-posts__list .wp-block-latest-posts__featured-image img {
	width: 100% !important;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 4px;
	height: auto !important;
	max-width: none !important;
}
body.hl-mockup ul.wp-block-latest-posts__list .wp-block-latest-posts__post-title {
	display: block;
	font-size: 14px !important;
	font-weight: 400 !important;
	font-family: 'Noto Sans JP', sans-serif !important;
	margin-top: 12px !important;
	margin-bottom: 0 !important;
	line-height: 1.6;
	color: var(--hl-text) !important;
	text-decoration: none !important;
}
body.hl-mockup ul.wp-block-latest-posts__list .wp-block-latest-posts__post-title:hover {
	color: var(--hl-primary) !important;
}
body.hl-mockup ul.wp-block-latest-posts__list .wp-block-latest-posts__post-excerpt,
body.hl-mockup ul.wp-block-latest-posts__list .wp-block-latest-posts__post-date,
body.hl-mockup ul.wp-block-latest-posts__list .wp-block-latest-posts__post-author {
	font-size: 11px !important;
	color: var(--hl-text-light) !important;
	margin-top: 6px !important;
	line-height: 1.6;
}

/* スマホ表示でもスクロールで5枚表示 */
@media (max-width: 768px) {
	body.hl-mockup ul.wp-block-latest-posts__list > li {
		flex: 0 0 260px !important;
		width: 260px !important;
		min-width: 260px !important;
		max-width: 260px !important;
	}
}

/* =============================================================
 * Archive (カテゴリ一覧ページ等) の投稿サムネイル調整
 * OceanWP の .blog-entry.large-entry レイアウトが画像を親幅まで
 * 引き伸ばす (小さい元画像だと巨大化する) のを防ぐ
 * ============================================================= */
body.hl-mockup .blog-entry .thumbnail-link {
	display: block;
	max-width: 640px;
	margin: 0 auto;
	background: #f0ece5;
	border-radius: 4px;
	overflow: hidden;
}
body.hl-mockup .blog-entry .thumbnail-link img {
	width: 100%;
	height: auto;
	max-height: 420px;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}
/* グリッドレイアウト(tablet-2-col 等)で複数枚並ぶ場合は狭く */
body.hl-mockup .entries.tablet-2-col .blog-entry .thumbnail-link,
body.hl-mockup .entries .blog-entry.grid-entry .thumbnail-link {
	max-width: 100%;
}

/* === OceanWP側のヘッダー/フッターを確実に消す保険 === */
body.hl-mockup #site-header,
body.hl-mockup #top-bar-wrap,
body.hl-mockup #footer,
body.hl-mockup #footer-widgets,
body.hl-mockup #footer-bottom {
	display: none !important;
}

/* OceanWP のコンテンツラッパの余白を無効化してフルブリードで見せる */
body.hl-mockup #wrap,
body.hl-mockup #main,
body.hl-mockup #content-wrap {
	padding: 0 !important;
	margin: 0 !important;
	max-width: none !important;
	width: 100% !important;
	box-sizing: border-box;
}

/* =============================================================
 * モバイル: OceanWP サイドバー/コンテンツレイアウト完全リセット
 * iPhone でコンテンツが右にズレる主因対策
 * ============================================================= */
@media (max-width: 960px) {
	body.hl-mockup #content-wrap {
		display: block !important;
		flex-direction: column !important;
		width: 100% !important;
		max-width: 100% !important;
		padding: 0 !important;
		margin: 0 !important;
	}
	/* プライマリ (メインコンテンツ) を常に全幅 */
	body.hl-mockup #content-wrap #primary,
	body.hl-mockup #content-wrap .content-area,
	body.hl-mockup #content-wrap #main-content,
	body.hl-mockup #content-wrap .site-main,
	body.hl-mockup #content-wrap .entry-content,
	body.hl-mockup .container,
	body.hl-mockup .ocean-container {
		width: 100% !important;
		max-width: 100% !important;
		float: none !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 16px !important;
		padding-right: 16px !important;
		box-sizing: border-box !important;
	}
	/* モバイルではサイドバーを非表示 */
	body.hl-mockup #right-sidebar,
	body.hl-mockup #left-sidebar,
	body.hl-mockup aside.sidebar {
		display: none !important;
	}
	/* 画像が親を超えないように */
	body.hl-mockup img,
	body.hl-mockup .wp-block-image img,
	body.hl-mockup .wp-post-image {
		max-width: 100% !important;
		height: auto !important;
	}
	/* WooCommerce 商品グリッドの安全側: 2カラムで収める */
	body.hl-mockup ul.products {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 16px !important;
		padding: 0 !important;
		margin: 0 !important;
		list-style: none !important;
	}
	body.hl-mockup ul.products li.product,
	body.hl-mockup ul.products > li {
		width: 100% !important;
		max-width: 100% !important;
		float: none !important;
		margin: 0 !important;
		padding: 0 !important;
		clear: none !important;
	}
	body.hl-mockup ul.products li.product img,
	body.hl-mockup ul.products > li img {
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 1 / 1;
		object-fit: cover;
	}
	/* Elementor や WPBakery の固定幅対策 */
	body.hl-mockup .elementor-section.elementor-section-boxed > .elementor-container,
	body.hl-mockup .wpb_row,
	body.hl-mockup .vc_row {
		max-width: 100% !important;
		width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
}

/* === 商品検索パネル (ヘッダーの検索ボタンで開閉) === */
body.hl-mockup .hl-search-toggle {
	background: none;
	border: none;
	padding: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
}
body.hl-mockup .hl-search-toggle:hover {
	opacity: 0.7;
}
body.hl-mockup .hl-search-panel[hidden] {
	display: none !important;
}
body.hl-mockup .hl-search-panel {
	background: #f7f4ee;
	border-bottom: 1px solid #e6ddcc;
	padding: 16px 24px;
}
body.hl-mockup .hl-search-form {
	max-width: 760px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 8px;
}
body.hl-mockup .hl-search-input {
	flex: 1 1 auto;
	min-width: 0;
	height: 44px;
	padding: 0 14px;
	border: 1px solid #c9bfa8;
	border-radius: 4px;
	background: #fff;
	font-size: 15px;
	color: #3a3228;
}
body.hl-mockup .hl-search-input:focus {
	outline: none;
	border-color: #8a6b3a;
	box-shadow: 0 0 0 2px rgba(138, 107, 58, 0.15);
}
body.hl-mockup .hl-search-submit {
	flex: 0 0 auto;
	height: 44px;
	padding: 0 22px;
	background: #3a3228;
	color: #fff;
	border: none;
	border-radius: 4px;
	font-size: 14px;
	letter-spacing: 0.05em;
	cursor: pointer;
}
body.hl-mockup .hl-search-submit:hover {
	background: #55483a;
}
body.hl-mockup .hl-search-close {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	border: none;
	background: transparent;
	color: #3a3228;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	border-radius: 50%;
}
body.hl-mockup .hl-search-close:hover {
	background: rgba(0,0,0,0.06);
}
@media (max-width: 640px) {
	body.hl-mockup .hl-search-panel {
		padding: 12px 16px;
	}
	body.hl-mockup .hl-search-submit {
		padding: 0 14px;
	}
}

/* =============================================================
 * WooCommerce ショップ / カテゴリーアーカイブ をモックアップ風に
 * (.all-products-grid / .grid-item のルックに寄せる)
 * 対象: /shop/, /product-category/*, 検索結果 の ul.products
 * ============================================================= */

/* ショップページ全体を落ち着いた余白で囲む */
body.hl-mockup.woocommerce,
body.hl-mockup.woocommerce-shop,
body.hl-mockup.post-type-archive-product,
body.hl-mockup.tax-product_cat {
	background: #fcf9f8;
}
body.hl-mockup.woocommerce #main,
body.hl-mockup.woocommerce-shop #main,
body.hl-mockup.post-type-archive-product #main,
body.hl-mockup.tax-product_cat #main {
	max-width: 1200px !important;
	margin: 0 auto !important;
	padding: 48px 24px 80px !important;
}

/* ショップの不要要素を整理 */
body.hl-mockup .woocommerce-breadcrumb,
body.hl-mockup .woocommerce-result-count,
body.hl-mockup .woocommerce-ordering {
	font-size: 12px;
	color: var(--hl-text-light);
	margin-bottom: 16px;
	letter-spacing: 0.04em;
}

/* ページタイトル (ショップ / カテゴリ名) をモックアップの section-title 風に */
body.hl-mockup .woocommerce-products-header,
body.hl-mockup .page-header,
body.hl-mockup .term-description + .woocommerce-products-header {
	text-align: center;
	margin: 0 auto 40px;
}
body.hl-mockup .woocommerce-products-header__title,
body.hl-mockup .page-header h1,
body.hl-mockup .page-title {
	font-family: 'Cormorant Garamond', serif !important;
	font-size: 2rem !important;
	font-weight: 300 !important;
	letter-spacing: 0.08em !important;
	color: var(--hl-text) !important;
	margin-bottom: 6px !important;
}

/* === 商品グリッド (ul.products) === */
body.hl-mockup .woocommerce ul.products,
body.hl-mockup ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 24px 16px !important;
	padding: 0 !important;
	margin: 0 0 48px 0 !important;
	list-style: none !important;
}
body.hl-mockup .woocommerce ul.products::before,
body.hl-mockup .woocommerce ul.products::after {
	display: none !important;
	content: none !important;
}

/* 個々の商品カード */
body.hl-mockup .woocommerce ul.products li.product,
body.hl-mockup ul.products li.product {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	clear: none !important;
	text-align: left !important;
	background: transparent !important;
	border: none !important;
}
body.hl-mockup .woocommerce ul.products li.product:hover {
	opacity: 0.8;
	transition: opacity 0.3s;
}

/* 商品リンク全体 */
body.hl-mockup .woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: block;
	text-decoration: none !important;
	color: var(--hl-text) !important;
}

/* 商品画像を正方形にクロップ */
body.hl-mockup .woocommerce ul.products li.product img,
body.hl-mockup ul.products li.product img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 2px;
	margin-bottom: 8px !important;
	display: block;
}

/* 商品名 */
body.hl-mockup .woocommerce ul.products li.product .woocommerce-loop-product__title,
body.hl-mockup .woocommerce ul.products li.product h2,
body.hl-mockup .woocommerce ul.products li.product h3 {
	font-family: 'Noto Sans JP', sans-serif !important;
	font-size: 12px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: var(--hl-text) !important;
	padding: 6px 2px 2px !important;
	margin: 0 !important;
	text-align: left !important;
}

/* 価格 */
body.hl-mockup .woocommerce ul.products li.product .price {
	display: block !important;
	font-family: 'Cormorant Garamond', serif !important;
	font-size: 1rem !important;
	font-weight: 400 !important;
	color: var(--hl-text) !important;
	padding: 0 2px 4px !important;
	margin: 0 !important;
	text-align: left !important;
}
body.hl-mockup .woocommerce ul.products li.product .price ins {
	background: transparent !important;
	text-decoration: none !important;
	font-weight: 400 !important;
}
body.hl-mockup .woocommerce ul.products li.product .price del {
	opacity: 0.5;
	font-size: 0.85em;
	margin-right: 4px;
}

/* Add to cart ボタンを控えめに (デフォルトの派手ボタン隠し) */
body.hl-mockup .woocommerce ul.products li.product .button,
body.hl-mockup .woocommerce ul.products li.product .added_to_cart,
body.hl-mockup .woocommerce ul.products li.product .add_to_cart_button {
	display: none !important;
}

/* セール/新着バッジを小さく品良く */
body.hl-mockup .woocommerce ul.products li.product .onsale {
	position: absolute !important;
	top: 8px !important;
	left: 8px !important;
	background: var(--hl-accent) !important;
	color: #fff !important;
	font-size: 10px !important;
	font-weight: 500 !important;
	letter-spacing: 0.08em !important;
	padding: 3px 8px !important;
	border-radius: 2px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	line-height: 1.4 !important;
	border: none !important;
	margin: 0 !important;
	right: auto !important;
}
body.hl-mockup .woocommerce ul.products li.product {
	position: relative !important;
}

/* ページネーション */
body.hl-mockup .woocommerce nav.woocommerce-pagination {
	text-align: center;
	margin: 40px 0 0;
}
body.hl-mockup .woocommerce nav.woocommerce-pagination ul {
	border: none !important;
	display: inline-flex !important;
	gap: 4px;
}
body.hl-mockup .woocommerce nav.woocommerce-pagination ul li {
	border: none !important;
	margin: 0 !important;
}
body.hl-mockup .woocommerce nav.woocommerce-pagination ul li a,
body.hl-mockup .woocommerce nav.woocommerce-pagination ul li span {
	min-width: 36px;
	height: 36px;
	padding: 0 12px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	font-family: 'Cormorant Garamond', serif !important;
	font-size: 14px !important;
	color: var(--hl-text) !important;
	background: transparent !important;
	border: 1px solid var(--hl-border) !important;
	border-radius: 2px !important;
	text-decoration: none !important;
}
body.hl-mockup .woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--hl-primary) !important;
	color: #fff !important;
	border-color: var(--hl-primary) !important;
}
body.hl-mockup .woocommerce nav.woocommerce-pagination ul li a:hover {
	border-color: var(--hl-primary) !important;
	color: var(--hl-primary) !important;
}

/* レスポンシブ: タブレット3列, モバイル2列 */
@media (max-width: 960px) {
	body.hl-mockup .woocommerce ul.products,
	body.hl-mockup ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 18px 12px !important;
	}
	body.hl-mockup.woocommerce #main,
	body.hl-mockup.woocommerce-shop #main,
	body.hl-mockup.post-type-archive-product #main,
	body.hl-mockup.tax-product_cat #main {
		padding: 32px 16px 60px !important;
	}
}
@media (max-width: 600px) {
	body.hl-mockup .woocommerce ul.products,
	body.hl-mockup ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 14px 10px !important;
	}
	body.hl-mockup .woocommerce-products-header__title,
	body.hl-mockup .page-header h1,
	body.hl-mockup .page-title {
		font-size: 1.5rem !important;
	}
}

/* =============================================================
 * [hl_all_items] ショートコード: All Items セクション
 * ============================================================= */
body.hl-mockup .hl-all-items-section {
	max-width: 1200px;
	margin: 0 auto;
	padding: 60px 24px 40px;
}
body.hl-mockup .hl-all-items-section .section-title {
	text-align: center;
	margin-bottom: 28px;
}
body.hl-mockup .hl-all-items-section .section-title h2 {
	font-family: 'Cormorant Garamond', serif;
	font-size: 2rem;
	font-weight: 300;
	letter-spacing: 0.08em;
	color: var(--hl-text);
	margin: 0 0 4px;
}
body.hl-mockup .hl-all-items-section .section-title small {
	display: block;
	font-size: 11px;
	letter-spacing: 0.18em;
	color: var(--hl-text-light);
}

/* Filter tabs */
body.hl-mockup .filter-tabs {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin: 0 0 32px;
	flex-wrap: wrap;
}
body.hl-mockup .filter-tabs .filter-tab {
	background: #fff;
	border: 1px solid var(--hl-border);
	color: var(--hl-text);
	padding: 9px 22px;
	font-size: 12px;
	font-family: 'Noto Sans JP', sans-serif;
	letter-spacing: 0.08em;
	cursor: pointer;
	border-radius: 2px;
	transition: background 0.25s, color 0.25s, border-color 0.25s;
}
body.hl-mockup .filter-tabs .filter-tab:hover {
	border-color: var(--hl-primary);
	color: var(--hl-primary);
}
body.hl-mockup .filter-tabs .filter-tab.active {
	background: var(--hl-primary);
	border-color: var(--hl-primary);
	color: #fff;
}

/* Panels */
body.hl-mockup .hl-product-panel[hidden] {
	display: none !important;
}
body.hl-mockup .hl-product-panel {
	min-height: 200px;
}

/* VIEW ALL PRODUCTS ボタン (hero-btn) */
body.hl-mockup .hl-all-items-section .hero-btn {
	display: inline-block;
	padding: 12px 40px;
	border: 1px solid var(--hl-primary);
	color: var(--hl-primary);
	font-size: 12px;
	letter-spacing: 0.15em;
	text-decoration: none;
	border-radius: 2px;
	transition: background 0.25s, color 0.25s;
	font-family: 'Noto Sans JP', sans-serif;
}
body.hl-mockup .hl-all-items-section .hero-btn:hover {
	background: var(--hl-primary);
	color: #fff;
}

@media (max-width: 600px) {
	body.hl-mockup .hl-all-items-section {
		padding: 40px 16px 24px;
	}
	body.hl-mockup .filter-tabs {
		gap: 6px;
		overflow-x: auto;
		flex-wrap: nowrap;
		justify-content: flex-start;
		padding-bottom: 6px;
	}
	body.hl-mockup .filter-tabs::-webkit-scrollbar { display: none; }
	body.hl-mockup .filter-tabs .filter-tab {
		padding: 8px 16px;
		flex: 0 0 auto;
	}
}
