/* ===== 共通 ===== */
:root {
	--hm-cream: var(--wp--preset--color--cream);
	--hm-forest: var(--wp--preset--color--forest);
	--hm-green: var(--wp--preset--color--green);
	--hm-ochre: var(--wp--preset--color--ochre);
	--hm-soil: var(--wp--preset--color--soil);
	--hm-muted: var(--wp--preset--color--muted);
	--hm-line: #D3D1C7;
	--hm-pad: clamp(56px, 9vw, 112px);
}
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { -webkit-font-smoothing: antialiased; }
.hm-main { margin-block-start: 0 !important; }
.hm-main > * + * { margin-block-start: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
img { height: auto; }

/* ===== ヘッダー ===== */
.hm-header {
	position: sticky; top: 0; z-index: 50;
	padding: 12px clamp(16px, 4vw, 40px);
	background: rgba(251, 247, 238, 0.94);
	backdrop-filter: saturate(140%) blur(6px);
	border-bottom: 1px solid var(--hm-line);
	gap: 16px;
}
.admin-bar .hm-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .hm-header { top: 46px; } }
.hm-brand { gap: 10px; }
.hm-site-title { margin: 0; font-family: var(--wp--preset--font-family--serif); font-size: 1.15rem; font-weight: 500; letter-spacing: .04em; }
.hm-site-title a { color: var(--hm-forest); text-decoration: none; }
.hm-header-right { gap: 22px; }
.hm-nav { font-size: .9rem; gap: 22px; }
.hm-nav a { color: var(--wp--preset--color--ink); text-decoration: none; }
.hm-nav a:hover { color: var(--hm-ochre); }
.hm-header-btn .wp-block-button__link { padding: .45em 1.3em; }
@media (max-width: 600px) { .hm-header-btn { display: none; } }

/* ===== セクション共通 ===== */
.hm-section { padding-block: var(--hm-pad); }
.hm-en {
	margin: 0 0 .2rem !important;
	font-size: .78rem; letter-spacing: .28em;
	color: var(--hm-ochre); text-transform: uppercase;
}
.hm-title { margin-top: 0 !important; margin-bottom: clamp(28px, 4vw, 48px) !important; letter-spacing: .06em; }
.hm-title::after {
	content: ""; display: block; width: 36px; height: 3px;
	margin-top: 18px; background: var(--wp--preset--color--sun); border-radius: 2px;
}
.hm-title.has-text-align-center::after { margin-inline: auto; }
.hm-lead { color: var(--hm-muted); }

/* ===== ヒーロー ===== */
.hm-hero.wp-block-cover { padding: clamp(24px, 5vw, 64px); }
.hm-hero-box {
	background: rgba(251, 247, 238, 0.93);
	padding: clamp(22px, 3.5vw, 40px) clamp(22px, 3.5vw, 44px) !important;
	max-width: 520px; border-radius: 4px;
}
.hm-hero-box .hm-hero-copy {
	margin: .3rem 0 .6rem; color: var(--hm-forest);
	font-family: var(--wp--preset--font-family--serif);
	line-height: 1.55; letter-spacing: .05em;
}
.hm-hero-box p:last-child { margin-bottom: 0; color: var(--hm-muted); font-size: .9rem; }

/* ===== ごあいさつ ===== */
.hm-greeting .wp-block-columns { gap: clamp(28px, 5vw, 72px); }
.hm-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; }
.hm-greeting p { text-align: justify; }

/* ===== こだわり ===== */
.hm-cards { gap: clamp(16px, 2.4vw, 28px) !important; }
.hm-card {
	background: #fff; border-radius: 6px; overflow: hidden; height: 100%;
	border: 1px solid #E8E4D8;
}
.hm-card > .wp-block-image { margin: 0 !important; }
.hm-card > .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.hm-card-body { padding: 22px 24px 26px !important; }
.hm-num {
	margin: 0 !important; font-family: var(--wp--preset--font-family--serif);
	font-size: 2rem; line-height: 1; color: var(--hm-ochre);
}
.hm-card-title { font-size: 1.1rem !important; margin: .7rem 0 .8rem !important; line-height: 1.6; }
.hm-card-body p { font-size: .92rem; line-height: 1.85; color: #444441; }

/* ===== 商品 ===== */
.hm-products-grid { gap: clamp(16px, 3vw, 36px) !important; }
.hm-round img {
	width: 100%; aspect-ratio: 1 / 1; object-fit: cover;
	border-radius: 50%; border: 6px solid #fff;
	box-shadow: 0 0 0 1px #E8E4D8;
}
.hm-round { margin-bottom: 1rem !important; }
.hm-product-name { font-size: 1.05rem !important; margin: 0 0 .4rem !important; }
.hm-product p { font-size: .9rem; line-height: 1.8; color: #444441; }
.hm-note {
	margin-top: clamp(32px, 4vw, 48px) !important;
	padding: 14px 20px; border: 1px dashed var(--hm-ochre); border-radius: 6px;
	color: var(--hm-soil); font-size: .92rem;
}

/* ===== 会社情報 ===== */
.hm-company-box {
	background: #fff; border: 1px solid #E8E4D8; border-radius: 6px;
	padding: clamp(24px, 4vw, 44px) !important;
}
.hm-dl p { margin: 0 !important; padding: 12px 0; border-bottom: 1px solid #EEEAE0; display: flex; gap: 1.5em; }
.hm-dl p:last-child { border-bottom: 0; }
.hm-dl strong { flex: 0 0 6.5em; font-weight: 500; color: var(--hm-forest); }

/* ===== フッター ===== */
.hm-footer { padding: 44px clamp(16px, 4vw, 40px) 36px; font-size: .88rem; line-height: 1.9; }
.hm-footer a { color: inherit; }
.hm-footer-name { font-family: var(--wp--preset--font-family--serif); font-size: 1.15rem; color: #fff; margin-bottom: .3rem !important; }
.hm-copy { color: #C0DD97; }

/* ===== 下層ページ ===== */
.hm-page { padding-block: clamp(48px, 7vw, 88px); }
.hm-page-title { margin-bottom: 1.5rem; }
.hm-date { color: var(--hm-muted); font-size: .85rem; }

/* ===== スマホ ===== */
@media (max-width: 781px) {
	.hm-products-grid { flex-wrap: wrap !important; }
	.wp-block-columns.hm-products-grid:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: calc(50% - 12px) !important; }
	.hm-copy { text-align: left !important; }
	.hm-dl p { flex-direction: column; gap: 0; }
}
