/* ==========================================================================
   ひよこデザイン — hiyoko.css（Cocoon子テーマ・専用テンプレート用／モバイルファースト）
   ページ本文は標準ブロック。各ブロックの「追加CSSクラス」（hd-〜）にスタイルを当てています。
   ブレイクポイント: 600px / 782px（WPのカラム段組み）/ 960px / 1100px
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root {
	--c-primary: #F7931E;
	--c-sub: #FFF3E6;
	--c-accent: #FFC857;
	--c-base: #FFFFFF;
	--c-text: #333333;
	--c-on-primary: #2B1A00;     /* オレンジ上の文字 7.3:1 */
	--c-primary-hover: #EF8410;
	--c-primary-strong: #A84F00; /* 白・サブ背景上のオレンジ文字 5.1〜5.6:1 */
	--c-text-muted: #5C5C5C;
	--c-border: #EEE3D6;
	--c-line: #E9DDD0;
	--c-error: #C0261F;
	--c-line-green: #06C755;
	--hd-font: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic UI", Meiryo, sans-serif;
	--hd-radius-s: 10px;
	--hd-radius: 16px;
	--hd-radius-l: 24px;
	--hd-shadow: 0 4px 20px rgba(120, 72, 20, .07);
	--hd-gutter: 20px;
	--hd-header-h: 64px;
	--hd-section-y: 72px;
	--hd-ease: cubic-bezier(.2, .7, .2, 1);

	/* アイコン（CSSマスク用） */
	--i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
	--i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
	--i-chat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3.5c-5 0-9 3.2-9 7.2 0 3.6 3.2 6.6 7.5 7.1l-.6 2.7c-.1.4.3.7.7.5 2.6-1.4 6.7-4.2 8.6-6.9 1.2-1.3 1.8-2.4 1.8-3.4 0-4-4-7.2-9-7.2z'/%3E%3C/svg%3E");
	--i-web: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='13' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4M3 8h18'/%3E%3C/svg%3E");
	--i-tool: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.8-3.8a6 6 0 0 1-7.9 7.9l-6.9 6.9a2.1 2.1 0 0 1-3-3l6.9-6.9a6 6 0 0 1 7.9-7.9z'/%3E%3C/svg%3E");
	--i-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 7l-8.5 8.5-5-5L2 17'/%3E%3Cpath d='M16 7h6v6'/%3E%3C/svg%3E");
	--i-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3M8 13.5v-2M11 13.5V8.5M14 13.5v-3.5'/%3E%3C/svg%3E");
	--i-ai: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 3l1.9 5.1L18 10l-5.1 1.9L11 17l-1.9-5.1L4 10l5.1-1.9z'/%3E%3Cpath d='M19 14l.8 2.2L22 17l-2.2.8L19 20l-.8-2.2L16 17l2.2-.8z'/%3E%3C/svg%3E");
	--i-ads: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5v3a1 1 0 0 0 1 1h2.5L12 19V5L6.5 9.5H4a1 1 0 0 0-1 1z'/%3E%3Cpath d='M16 8.5a5 5 0 0 1 0 7M19 5.5a9 9 0 0 1 0 13'/%3E%3C/svg%3E");
	--i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
	--i-flag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21V4M5 4h11l-2 4 2 4H5'/%3E%3C/svg%3E");
	--i-ext: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E");
}
@media (min-width: 960px) {
	:root { --hd-gutter: 32px; --hd-header-h: 76px; --hd-section-y: 112px; }
}

/* ---------- 2. Base（専用テンプレートのページのみ） ---------- */
html:has(body.hd-lp) { scroll-behavior: smooth; scroll-padding-top: calc(var(--hd-header-h) + 16px); }
body.hd-lp {
	margin: 0;
	background: var(--c-base);
	color: var(--c-text);
	font-family: var(--hd-font);
	font-size: 16px;
	line-height: 1.8;
	letter-spacing: .02em;
	overflow-wrap: anywhere;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
}
body.hd-lp *, body.hd-lp *::before, body.hd-lp *::after { box-sizing: border-box; }
body.hd-lp img { max-width: 100%; height: auto; }
body.hd-lp a { color: var(--c-primary-strong); text-underline-offset: .2em; }
body.hd-lp :focus-visible { outline: 3px solid var(--c-text); outline-offset: 3px; }
.hd-main { display: block; padding-top: var(--hd-header-h); }
.hd-main:focus { outline: none; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.hd-skip-link {
	position: fixed; top: 8px; left: 8px; z-index: 1000;
	padding: 10px 16px; border-radius: var(--hd-radius-s);
	background: var(--c-text); color: #fff !important;
	transform: translateY(-200%); transition: transform .2s;
}
.hd-skip-link:focus { transform: none; }

/* 見出し・段落などの既定の余白をいったんリセットし、下で個別に指定する */
.hd-section :is(p, h1, h2, h3, h4, ul, ol, figure, .wp-block-buttons, .wp-block-columns, .wp-block-media-text, .wp-block-details, .wp-block-group) { margin: 0; }
.hd-section h1, .hd-section h2, .hd-section h3, .hd-section h4 {
	font-family: var(--hd-font);
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: .03em;
	color: var(--c-text);
	word-break: auto-phrase;
	font-feature-settings: "palt";
}

/* ---------- 3. Buttons ---------- */
.hd-btn,
.hd-section .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: 52px;
	padding: 10px 28px;
	border: 2px solid transparent;
	border-radius: 999px;
	font-family: var(--hd-font);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.hd-btn .hd-icon { width: 1.15em; height: 1.15em; flex: none; }
.hd-btn--primary,
.hd-section .hd-btn-primary .wp-block-button__link {
	background: var(--c-primary);
	color: var(--c-on-primary);
	box-shadow: 0 3px 0 #D9780A;
}
.hd-btn--primary:hover,
.hd-section .hd-btn-primary .wp-block-button__link:hover { background: var(--c-primary-hover); color: var(--c-on-primary); }
.hd-btn--outline,
.hd-section .hd-btn-outline .wp-block-button__link { background: var(--c-base); border-color: var(--c-primary); color: var(--c-primary-strong); }
.hd-btn--outline:hover,
.hd-section .hd-btn-outline .wp-block-button__link:hover { background: var(--c-sub); color: var(--c-primary-strong); }
/* 公式LINE：LINEの緑は枠とアイコンだけ（緑地に白文字はコントラスト不足のため） */
.hd-btn--line,
.hd-section .hd-btn-line .wp-block-button__link { background: var(--c-base); border-color: var(--c-line-green); color: var(--c-text); }
.hd-btn--line:hover,
.hd-section .hd-btn-line .wp-block-button__link:hover { background: #EDFBF2; color: var(--c-text); }
.hd-btn--line .hd-icon { color: var(--c-line-green); }
.hd-section .hd-btn-line .wp-block-button__link::before {
	content: "";
	width: 1.25em; height: 1.25em;
	background: var(--c-line-green);
	-webkit-mask: var(--i-chat) center / contain no-repeat;
	mask: var(--i-chat) center / contain no-repeat;
}
.hd-btn--lg { min-height: 56px; font-size: 1.0625rem; }
.hd-btn--block { display: flex; width: 100%; }
.hd-section .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.hd-section .wp-block-button { margin: 0; }

/* ---------- 4. Header / Nav ---------- */
.hd-header {
	position: fixed; inset: 0 0 auto; z-index: 100;
	height: var(--hd-header-h);
	background: rgba(255, 255, 255, .94);
	-webkit-backdrop-filter: saturate(160%) blur(10px);
	backdrop-filter: saturate(160%) blur(10px);
	transition: box-shadow .3s;
}
.hd-header.is-scrolled { box-shadow: 0 1px 0 var(--c-border), 0 6px 20px rgba(120, 72, 20, .06); }
.admin-bar .hd-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .hd-header { top: 46px; } }
.hd-header__inner {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	width: min(100% - var(--hd-gutter) * 2, 1120px); height: 100%; margin-inline: auto;
}
.hd-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--c-text) !important; font-weight: 700; font-size: 1.0625rem; letter-spacing: .06em; text-decoration: none; }
.hd-logo__img { width: 40px; height: 40px; border-radius: 50%; }
.hd-nav-toggle { position: relative; display: grid; place-items: center; width: 48px; height: 48px; margin-right: -8px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.hd-nav-toggle__bar, .hd-nav-toggle__bar::before, .hd-nav-toggle__bar::after { display: block; width: 22px; height: 2px; border-radius: 2px; background: var(--c-text); transition: transform .3s var(--hd-ease), background-color .2s; }
.hd-nav-toggle__bar { position: relative; }
.hd-nav-toggle__bar::before, .hd-nav-toggle__bar::after { content: ""; position: absolute; left: 0; }
.hd-nav-toggle__bar::before { top: -7px; }
.hd-nav-toggle__bar::after { top: 7px; }
.hd-nav-toggle[aria-expanded="true"] .hd-nav-toggle__bar { background: transparent; }
.hd-nav-toggle[aria-expanded="true"] .hd-nav-toggle__bar::before { transform: translateY(7px) rotate(45deg); }
.hd-nav-toggle[aria-expanded="true"] .hd-nav-toggle__bar::after { transform: translateY(-7px) rotate(-45deg); }
.hd-nav {
	position: fixed; top: var(--hd-header-h); left: 0; right: 0;
	max-height: calc(100vh - var(--hd-header-h)); overflow-y: auto;
	padding: 8px var(--hd-gutter) 28px;
	background: var(--c-base);
	box-shadow: 0 16px 24px rgba(120, 72, 20, .08);
	opacity: 0; visibility: hidden; transform: translateY(-8px);
	transition: opacity .25s, transform .25s var(--hd-ease), visibility 0s .25s;
}
.hd-nav.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity .25s, transform .25s var(--hd-ease), visibility 0s; }
.hd-nav__list { margin: 0; padding: 0; list-style: none; }
.hd-nav__link { display: block; padding: 14px 4px; border-bottom: 1px solid var(--c-border); color: var(--c-text) !important; font-weight: 700; text-decoration: none; }
.hd-nav__line { width: 100%; margin-top: 20px; }
.hd-nav__cta { width: 100%; margin-top: 12px; }
@media (min-width: 960px) {
	.hd-nav-toggle { display: none; }
	.hd-nav { position: static; display: flex; align-items: center; gap: 16px; max-height: none; padding: 0; overflow: visible; background: none; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
	.hd-nav__list { display: flex; gap: 18px; }
	.hd-nav__link { position: relative; padding: 6px 0; border: 0; font-size: .9375rem; white-space: nowrap; }
	.hd-nav__link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px; background: var(--c-primary); transform: scaleX(0); transition: transform .25s var(--hd-ease); }
	.hd-nav__link:hover::after, .hd-nav__link.is-current::after { transform: scaleX(1); }
	.hd-nav__line, .hd-nav__cta { width: auto; min-height: 44px; margin: 0; padding: 6px 16px; font-size: .9375rem; white-space: nowrap; }
	.hd-logo__text { white-space: nowrap; }
}
@media (min-width: 1100px) {
	.hd-nav { gap: 24px; }
	.hd-nav__list { gap: 28px; }
	.hd-logo__img { width: 44px; height: 44px; }
}

/* ---------- 5. Section common ---------- */
.hd-section { padding-block: var(--hd-section-y); }
.hd-section--sub { background: var(--c-sub); }
/* 上の余白リセット（.hd-section :is(...)）より後ろ・同じ強さで書き、中央寄せを効かせる */
.hd-section .hd-inner { width: min(100% - var(--hd-gutter) * 2, 1120px); margin-inline: auto; }
.hd-section .hd-inner--narrow { width: min(100% - var(--hd-gutter) * 2, 820px); }
.hd-section .hd-head { margin-bottom: 40px; text-align: center; }
.hd-section .hd-title { font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.375rem); font-weight: 900; letter-spacing: .02em; }
.hd-section .hd-title::after { content: ""; display: block; width: 40px; height: 4px; margin: 14px auto 0; border-radius: 2px; background: var(--c-primary); }
.hd-section .hd-lead { max-width: 36em; margin: 16px auto 0; color: var(--c-text-muted); }
.hd-section .hd-catch { margin-top: 12px; color: var(--c-primary-strong); font-size: clamp(1.0625rem, 1rem + .4vw, 1.25rem); font-weight: 700; }
.hd-section .hd-note { margin-top: 24px; color: var(--c-text-muted); font-size: .8125rem; }
.hd-section .hd-subtitle { margin: 56px 0 16px; font-size: 1.25rem; text-align: center; }
@media (min-width: 960px) {
	.hd-section .hd-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: end; margin-bottom: 56px; text-align: left; }
	.hd-section .hd-head:has(> :only-child) { display: block; }
	.hd-section .hd-title::after { margin-left: 0; }
	.hd-section .hd-lead { margin: 0; padding-bottom: 20px; }
	.hd-section .hd-catch { margin: 0; padding-bottom: 20px; }
	.hd-inner--narrow .hd-head { display: block; text-align: center; }
	.hd-inner--narrow .hd-title::after { margin-left: auto; }
	.hd-inner--narrow .hd-lead { margin: 16px auto 0; padding: 0; }
}

/* ---------- 6. Hero ---------- */
.hd-hero {
	position: relative; overflow: hidden;
	padding: 40px 0 64px;
	background: radial-gradient(circle at 92% 8%, rgba(255, 200, 87, .22), transparent 38%), radial-gradient(circle at 0% 100%, var(--c-sub), transparent 45%), var(--c-base);
}
.hd-hero__inner { display: grid; gap: 40px; align-items: center; }
.hd-hero__body { text-align: center; }
.hd-section .hd-hero__area { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 12px; color: var(--c-primary-strong); font-size: .875rem; font-weight: 700; letter-spacing: .06em; }
.hd-section .hd-hero__area::before { content: ""; width: 16px; height: 16px; background: var(--c-primary); -webkit-mask: var(--i-pin) center / contain no-repeat; mask: var(--i-pin) center / contain no-repeat; }
.hd-section .hd-hero__title { font-size: clamp(1.75rem, 1rem + 4vw, 3.125rem); font-weight: 900; line-height: 1.3; letter-spacing: .02em; }
.hd-section .hd-hero__lead { margin-top: 16px; font-size: clamp(1.0625rem, .95rem + .6vw, 1.375rem); font-weight: 700; line-height: 1.7; word-break: auto-phrase; }
.hd-section .hd-hero__sub { margin-top: 12px; color: var(--c-text-muted); font-size: .9375rem; letter-spacing: .06em; }
.hd-section .hd-badge { display: inline-flex; align-items: center; gap: .4em; margin-top: 20px; padding: 5px 14px; border-radius: 999px; background: var(--c-sub); color: var(--c-primary-strong); font-size: .875rem; font-weight: 700; line-height: 1.5; }
.hd-section .hd-badge::before { content: ""; width: 1.1em; height: 1.1em; background: currentColor; -webkit-mask: var(--i-clock) center / contain no-repeat; mask: var(--i-clock) center / contain no-repeat; }
.hd-section .hd-cta { justify-content: center; margin-top: 28px; }
.hd-section .hd-cta .wp-block-button { flex: 1 1 100%; }
.hd-section .hd-cta .wp-block-button__link { width: 100%; min-height: 56px; font-size: 1.0625rem; }

/* 放置した古いHP（奥）に、育てる新しいHP（手前）が重なる */
.hd-section .hd-hero__visual { position: relative; width: min(100%, 420px); margin-inline: auto; aspect-ratio: 520 / 430; }
.hd-section .hd-hero__visual .wp-block-image { position: absolute; width: 74%; }
.hd-section .hd-hero__visual .wp-block-image img { display: block; width: 100%; border: 1px solid var(--c-border); border-radius: 10px; background: #fff; }
.hd-section .hd-hero__visual .wp-element-caption { position: absolute; top: -12px; margin: 0; padding: 2px 12px; border-radius: 999px; font-size: .8125rem; font-weight: 700; line-height: 1.7; white-space: nowrap; }
.hd-section .hd-hero__old { top: 6%; left: 0; transform: rotate(-4deg); }
.hd-section .hd-hero__old img { filter: saturate(.45) contrast(.95); box-shadow: 0 4px 14px rgba(0, 0, 0, .08); }
.hd-section .hd-hero__old .wp-element-caption { left: 14px; background: #6F6962; color: #fff; }
.hd-section .hd-hero__new { right: 0; bottom: 8%; transform: rotate(2deg); animation: hd-refresh .9s var(--hd-ease) .2s both; }
.hd-section .hd-hero__new img { box-shadow: 0 16px 36px rgba(120, 72, 20, .18); }
.hd-section .hd-hero__new .wp-element-caption { right: 14px; background: var(--c-primary); color: var(--c-on-primary); }
.hd-section .hd-hero__visual .hd-hero__chick { left: 2%; bottom: -4%; z-index: 1; width: 26%; }
.hd-section .hd-hero__chick img { border: 0; border-radius: 50%; box-shadow: var(--hd-shadow); }
@keyframes hd-refresh {
	from { opacity: 0; transform: translate(-36px, -24px) rotate(-4deg); }
	to { opacity: 1; transform: rotate(2deg); }
}
@media (min-width: 600px) {
	.hd-section .hd-cta .wp-block-button { flex: 0 1 auto; }
	.hd-section .hd-cta .wp-block-button__link { width: auto; }
}
@media (min-width: 960px) {
	.hd-hero { padding: 72px 0 104px; }
	.hd-hero__inner { grid-template-columns: 1.1fr .9fr; gap: 48px; }
	.hd-hero__body { text-align: left; }
	.hd-section .hd-hero__title { font-size: min(3.125rem, 4.2vw); }
	.hd-section .hd-cta { justify-content: flex-start; }
	.hd-section .hd-hero__visual { width: 100%; max-width: 500px; }
}

/* ---------- 7. About ---------- */
.hd-section .hd-checklist { display: grid; gap: 12px; max-width: 760px; margin-inline: auto; padding: 0; list-style: none; }
.hd-section .hd-checklist li { position: relative; display: flex; align-items: center; gap: 14px; padding: 16px 20px; border: 1px solid #F1E2CF; border-radius: var(--hd-radius-s); background: var(--c-base); font-weight: 700; }
/* チェックボックスの枠（::before）と、その中のチェック（::after） */
.hd-section .hd-checklist li::before { content: ""; flex: none; width: 28px; height: 28px; border: 2px solid var(--c-primary); border-radius: 8px; }
.hd-section .hd-checklist li::after { content: ""; position: absolute; left: 25px; top: 50%; width: 18px; height: 18px; margin-top: -9px; background: var(--c-primary); -webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat; }
@media (min-width: 600px) {
	.hd-section .hd-checklist { grid-template-columns: repeat(2, 1fr); }
	.hd-section .hd-checklist li:last-child:nth-child(odd) { grid-column: 1 / -1; justify-self: center; min-width: 50%; }
}
.hd-section .hd-answer { position: relative; max-width: 860px; margin: 64px auto 0; padding: 40px 24px 32px; border-radius: var(--hd-radius-l); background: var(--c-base); box-shadow: var(--hd-shadow); text-align: center; }
.hd-section .hd-answer::before { content: ""; position: absolute; top: -40px; left: 50%; width: 28px; height: 16px; background: var(--c-primary); clip-path: polygon(0 0, 100% 0, 50% 100%); transform: translateX(-50%); }
.hd-section .hd-answer__title { display: inline; font-size: clamp(1.25rem, 1rem + 1.2vw, 1.75rem); background: linear-gradient(transparent 62%, rgba(255, 200, 87, .6) 62%); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.hd-section .hd-answer p { margin-top: 16px; }
.hd-section .hd-answer .hd-answer__title + p { margin-top: 24px; }
@media (min-width: 600px) { .hd-section .hd-answer { padding: 48px 48px 40px; } }

/* ---------- 8. Service（罫線で区切ったリスト） ---------- */
.hd-section .hd-service-list { display: grid; border-top: 1px solid var(--c-border); }
.hd-section .hd-service-item { display: grid; justify-items: center; gap: 8px; padding: 28px 4px; border-bottom: 1px solid var(--c-border); text-align: center; }
.hd-section .hd-service-item::before { content: ""; width: 32px; height: 32px; background: var(--c-primary); -webkit-mask: var(--hd-icon, var(--i-web)) center / contain no-repeat; mask: var(--hd-icon, var(--i-web)) center / contain no-repeat; }
.hd-section .hd-service-item:nth-child(2) { --hd-icon: var(--i-tool); }
.hd-section .hd-service-item:nth-child(3) { --hd-icon: var(--i-up); }
.hd-section .hd-service-item:nth-child(4) { --hd-icon: var(--i-search); }
.hd-section .hd-service-item:nth-child(5) { --hd-icon: var(--i-ai); }
.hd-section .hd-service-item:nth-child(6) { --hd-icon: var(--i-ads); }
.hd-section .hd-service-item h3 { font-size: 1.125rem; }
.hd-section .hd-service-item p { max-width: 30em; color: var(--c-text-muted); font-size: .9375rem; }
@media (min-width: 720px) {
	.hd-section .hd-service-list { grid-template-columns: repeat(2, 1fr); column-gap: 56px; }
	.hd-section .hd-service-item { grid-template-columns: 40px 1fr; justify-items: start; align-items: start; column-gap: 20px; row-gap: 6px; padding: 32px 0; text-align: left; }
	.hd-section .hd-service-item::before { grid-row: 1 / span 2; margin-top: 2px; }
	.hd-section .hd-service-item > * { grid-column: 2; }
}

/* ---------- 9. Works（メディアとテキスト） ---------- */
.hd-section .hd-work { overflow: hidden; border-radius: var(--hd-radius); background: var(--c-base); box-shadow: var(--hd-shadow); }
.hd-section .hd-work .wp-block-media-text__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hd-section .hd-work .wp-block-media-text__content { padding: 24px 22px 28px; }
.hd-section .hd-work h3 { font-size: 1.25rem; }
.hd-section .hd-work__meta { display: grid; gap: 6px; margin: 14px 0 12px; padding: 0; list-style: none; font-size: .875rem; }
.hd-section .hd-work__meta li { display: grid; grid-template-columns: 5.5em 1fr; gap: 8px; color: var(--c-text-muted); }
.hd-section .hd-work__meta strong { color: var(--c-primary-strong); }
.hd-section .hd-work__link a { display: inline-flex; align-items: center; gap: .3em; font-weight: 700; }
.hd-section .hd-work__link a::after { content: ""; width: 1em; height: 1em; background: currentColor; -webkit-mask: var(--i-ext) center / contain no-repeat; mask: var(--i-ext) center / contain no-repeat; }
@media (min-width: 960px) { .hd-section .hd-work .wp-block-media-text__content { padding: 36px 40px; } }

/* ---------- 10. Price ---------- */
.hd-section .hd-plans { display: grid; gap: 20px; margin-top: 8px; }
.hd-section .hd-plan {
	position: relative; display: flex; flex-direction: column;
	padding: 32px 24px 28px; border: 1px solid var(--c-border); border-radius: var(--hd-radius-l);
	background: var(--c-base); box-shadow: var(--hd-shadow); text-align: center;
}
.hd-section .hd-plan.is-recommended { border: 2px solid var(--c-primary); }
/* 価格が上がることを示すレベルメーター */
.hd-section .hd-plan::before {
	content: ""; align-self: center; width: 32px; height: 22px; margin-bottom: 12px;
	background:
		linear-gradient(var(--l1, #F3E6D6), var(--l1, #F3E6D6)) 0 100% / 8px 8px no-repeat,
		linear-gradient(var(--l2, #F3E6D6), var(--l2, #F3E6D6)) 12px 100% / 8px 14px no-repeat,
		linear-gradient(var(--l3, #F3E6D6), var(--l3, #F3E6D6)) 24px 100% / 8px 20px no-repeat;
}
.hd-section .hd-plan:nth-child(1) { --l1: var(--c-primary); }
.hd-section .hd-plan:nth-child(2) { --l1: var(--c-primary); --l2: var(--c-primary); }
.hd-section .hd-plan:nth-child(3) { --l1: var(--c-primary); --l2: var(--c-primary); --l3: var(--c-primary); }
.hd-section .hd-plan__reco { position: absolute; top: 0; left: 50%; padding: 3px 16px; border-radius: 999px; background: var(--c-primary); color: var(--c-on-primary); font-size: .8125rem; font-weight: 700; white-space: nowrap; transform: translate(-50%, -50%); }
.hd-section .hd-plan__en { color: var(--c-primary-strong); font-size: .8125rem; font-weight: 700; letter-spacing: .12em; }
.hd-section .hd-plan__name { margin-top: 2px; font-size: 1.25rem; }
.hd-section .hd-plan__price { margin-top: 12px; font-weight: 700; line-height: 1.2; }
.hd-section .hd-plan__price strong { margin-right: 4px; font-size: clamp(2.25rem, 2rem + 1vw, 2.75rem); font-weight: 900; letter-spacing: .01em; }
.hd-section .hd-plan__target { flex: 1; margin: 16px 0 24px; padding-top: 16px; border-top: 1px dashed var(--c-line); color: var(--c-text-muted); font-size: .9375rem; }
.hd-section .hd-plan__more .wp-block-button { width: 100%; }
.hd-section .hd-plan__more .wp-block-button__link { width: 100%; }
@media (min-width: 900px) { .hd-section .hd-plans { grid-template-columns: repeat(3, 1fr); gap: 24px; } }

.hd-section .hd-maint { display: grid; gap: 24px; margin-top: 32px; padding: 32px 24px; border-radius: var(--hd-radius-l); background: var(--c-sub); }
.hd-section .hd-maint__head { text-align: center; }
.hd-section .hd-maint__head h3 { font-size: 1.25rem; }
.hd-section .hd-maint__price { margin-top: 8px; font-weight: 700; }
.hd-section .hd-maint__price strong { margin: 0 4px 0 8px; font-size: 2.25rem; font-weight: 900; line-height: 1.2; }
.hd-section .hd-maint__head p:last-child { margin-top: 8px; color: var(--c-text-muted); font-size: .9375rem; }
.hd-section .hd-maint__list { display: grid; gap: 10px; padding: 0; list-style: none; }
.hd-section .hd-maint__list li { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: var(--hd-radius-s); background: var(--c-base); font-size: .9375rem; }
.hd-section .hd-maint__list li::before { content: ""; flex: none; width: 18px; height: 18px; background: var(--c-primary); -webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat; }
@media (min-width: 600px) { .hd-section .hd-maint__list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) {
	.hd-section .hd-maint { grid-template-columns: 1fr 1.3fr; gap: 40px; align-items: center; padding: 40px 48px; }
	.hd-section .hd-maint__head { text-align: left; }
}
.hd-section .hd-notes { display: grid; gap: 4px; margin-top: 24px; padding: 0; list-style: none; color: var(--c-text-muted); font-size: .8125rem; }
.hd-section .hd-notes li { padding-left: 1em; text-indent: -1em; }

/* ---------- 11. 詳細ブロック（プラン詳細・FAQ 共通のアコーディオン） ---------- */
.hd-section .hd-acc-list { display: grid; gap: 12px; }
.hd-section .hd-acc { overflow: hidden; border: 1px solid var(--c-border); border-radius: var(--hd-radius); background: var(--c-base); }
.hd-section .hd-acc summary {
	position: relative; display: flex; align-items: center; gap: 12px;
	min-height: 60px; padding: 16px 60px 16px 20px;
	font-weight: 700; line-height: 1.6; list-style: none; cursor: pointer;
}
.hd-section .hd-acc summary::-webkit-details-marker { display: none; }
.hd-section .hd-acc summary:hover { background: #FFFAF4; }
.hd-section .hd-acc summary::after {
	content: ""; position: absolute; right: 20px; top: 50%; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%;
	background: linear-gradient(var(--c-primary-strong), var(--c-primary-strong)) center / 12px 2px no-repeat, linear-gradient(var(--c-primary-strong), var(--c-primary-strong)) center / 2px 12px no-repeat, var(--c-sub);
	transition: transform .25s var(--hd-ease);
}
.hd-section .hd-acc[open] summary::after { background: linear-gradient(var(--c-primary-strong), var(--c-primary-strong)) center / 12px 2px no-repeat, var(--c-sub); }
.hd-section .hd-acc > :not(summary) { margin: 0 20px; }
.hd-section .hd-acc > :not(summary):last-child { margin-bottom: 24px; }
.hd-section .hd-acc > * + :not(summary) { margin-top: 16px; }
.hd-section .hd-spec { display: grid; gap: 10px; padding: 0; list-style: none; }
.hd-section .hd-spec li { display: grid; gap: 2px; }
.hd-section .hd-spec strong { color: var(--c-primary-strong); font-size: .875rem; }
@media (min-width: 600px) { .hd-section .hd-spec li { grid-template-columns: 8em 1fr; gap: 16px; } }

/* FAQ：Q と A のマーク */
.hd-section .hd-faq summary::before { content: "Q"; display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--c-primary); color: var(--c-on-primary); font-size: .9375rem; line-height: 1; }
.hd-section .hd-faq > p { position: relative; padding-left: 44px; }
.hd-section .hd-faq > p:first-of-type::before { content: "A"; position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--c-sub); color: var(--c-primary-strong); font-weight: 700; font-size: .9375rem; line-height: 1; }

/* ---------- 12. Strengths（番号・見出し・説明を表のように並べる） ---------- */
.hd-section .hd-strengths { border-top: 2px solid var(--c-text); }
.hd-section .hd-strength { display: grid; justify-items: center; gap: 6px; padding: 28px 8px; border-bottom: 1px solid var(--c-line); text-align: center; }
.hd-section .hd-strength__num { color: var(--c-primary-strong); font-size: 2.5rem; font-weight: 900; line-height: 1; letter-spacing: .02em; font-feature-settings: "tnum"; }
.hd-section .hd-strength h3 { font-size: 1.25rem; font-weight: 900; }
.hd-section .hd-strength p:last-child { max-width: 32em; color: var(--c-text-muted); font-size: .9375rem; }
@media (min-width: 960px) {
	.hd-section .hd-strength { grid-template-columns: 96px 15em 1fr; align-items: baseline; justify-items: start; gap: 32px; padding: 32px 8px; text-align: left; }
	.hd-section .hd-strength__num { font-size: 3rem; }
	.hd-section .hd-strength h3 { font-size: 1.375rem; }
}

/* ---------- 13. Flow（番号付きリスト：スマホ縦型／PC横型） ---------- */
.hd-section .hd-flow { position: relative; display: grid; padding: 0; list-style: none; counter-reset: hd-step; }
.hd-section .hd-flow li {
	position: relative; min-height: 76px; padding: 12px 12px 20px 68px; counter-increment: hd-step;
	color: var(--c-text-muted); font-size: .9375rem;
	background: linear-gradient(var(--c-line), var(--c-line)) no-repeat 29px 12px / 2px 100%;
}
.hd-section .hd-flow li:last-child { background: none; }
.hd-section .hd-flow li strong { display: block; padding-top: 6px; color: var(--c-text); font-size: 1.0625rem; line-height: 1.5; }
.hd-section .hd-flow li strong + br { display: none; } /* 見出しを block にしたぶん、改行は不要 */
.hd-section .hd-flow li::before {
	content: counter(hd-step, decimal-leading-zero);
	position: absolute; left: 8px; top: 12px; z-index: 1;
	display: grid; place-items: center; width: 44px; height: 44px;
	border: 2px solid var(--c-primary); border-radius: 50%; background: var(--c-base);
	color: var(--c-primary-strong); font-size: .875rem; font-weight: 700;
}
/* 最短3日の区間（案件成立〜公開） */
.hd-section .hd-flow li.is-speed { background-color: var(--c-base); background-image: linear-gradient(var(--c-accent), var(--c-accent)); }
.hd-section--sub .hd-flow li.is-speed, .hd-section .hd-flow li.is-speed { background-color: var(--c-sub); }
.hd-section .hd-flow li.is-speed-start { border-radius: var(--hd-radius) var(--hd-radius) 0 0; padding-top: 48px; }
.hd-section .hd-flow li.is-speed-start::before { top: 44px; }
.hd-section .hd-flow li.is-speed-end { border-radius: 0 0 var(--hd-radius) var(--hd-radius); background-image: linear-gradient(var(--c-line), var(--c-line)); }
.hd-section .hd-flow li.is-speed::before { background: var(--c-primary); color: var(--c-on-primary); }
.hd-section .hd-flow li.is-speed-start::after {
	content: "ここから最短3日でお届け";
	position: absolute; top: 12px; left: 68px;
	padding: 3px 12px 3px 30px; border-radius: 999px;
	background: var(--c-text) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFC857' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21V4M5 4h11l-2 4 2 4H5'/%3E%3C/svg%3E") 10px center / 14px no-repeat;
	color: #fff; font-size: .8125rem; font-weight: 700; white-space: nowrap;
}
@media (min-width: 1100px) {
	.hd-section .hd-flow { grid-template-columns: repeat(8, 1fr); padding-top: 44px; }
	.hd-section .hd-flow li,
	.hd-section .hd-flow li.is-speed-start {
		min-height: 0; padding: 76px 8px 24px; text-align: center; font-size: .8125rem; line-height: 1.7;
		background-image: linear-gradient(var(--c-line), var(--c-line)); background-repeat: no-repeat; background-position: 0 41px; background-size: 100% 2px;
	}
	.hd-section .hd-flow li:first-child { background-position: 100% 41px; background-size: 50% 2px; }
	.hd-section .hd-flow li:last-child { background: linear-gradient(var(--c-line), var(--c-line)) no-repeat 0 41px / 50% 2px; }
	.hd-section .hd-flow li.is-speed { background-image: linear-gradient(var(--c-accent), var(--c-accent)); }
	.hd-section .hd-flow li strong { padding-top: 0; font-size: 1rem; }
	.hd-section .hd-flow li::before,
	.hd-section .hd-flow li.is-speed-start::before { top: 20px; left: 50%; transform: translateX(-50%); }
	.hd-section .hd-flow li.is-speed-start { border-radius: var(--hd-radius) 0 0 var(--hd-radius); }
	.hd-section .hd-flow li.is-speed-end { border-radius: 0 var(--hd-radius) var(--hd-radius) 0; }
	.hd-section .hd-flow li.is-speed-start::after { top: -40px; left: 8px; }
	.hd-section .hd-flow + .hd-note { text-align: center; }
}

/* ---------- 14. 対応エリア ---------- */
.hd-section .hd-area-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 860px; margin-inline: auto; padding: 0; list-style: none; }
.hd-section .hd-area-list li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 16px; border: 1px solid #F1E2CF; border-radius: 999px; background: var(--c-base); font-weight: 700; font-size: .9375rem; }
.hd-section .hd-area-list li::before { content: ""; width: 14px; height: 14px; background: var(--c-primary); -webkit-mask: var(--i-pin) center / contain no-repeat; mask: var(--i-pin) center / contain no-repeat; }
.hd-section .hd-area-list + .hd-note { text-align: center; font-size: .9375rem; }

/* ---------- 15. Contact ---------- */
.hd-section .hd-contact-line { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 20px; margin-bottom: 24px; text-align: center; }
.hd-section .hd-contact-line p { color: var(--c-text-muted); font-size: .9375rem; }
.hd-contact-form { padding: 28px 20px; border: 1px solid var(--c-border); border-radius: var(--hd-radius-l); background: var(--c-base); box-shadow: var(--hd-shadow); }
@media (min-width: 600px) { .hd-contact-form { padding: 48px; } }
.hd-contact-form__intro { margin: 0 0 24px; color: var(--c-text-muted); font-size: .875rem; }
.hd-contact-form__intro .hd-tag { margin: 0 .3em 0 0; }
.hd-field { margin: 0; }
.hd-field + .hd-field { margin-top: 24px; }
.hd-field__label { display: block; margin-bottom: 8px; font-weight: 700; }
.hd-tag { display: inline-block; margin-left: .6em; padding: 1px 8px; border-radius: 4px; font-size: .75rem; font-weight: 700; line-height: 1.6; vertical-align: .1em; }
.hd-tag--required { background: var(--c-primary-strong); color: #fff; }
.hd-tag--optional { background: #EDEDED; color: #555; }
.hd-field__input {
	display: block; width: 100%; min-height: 52px; margin: 0; padding: 12px 16px;
	border: 1.5px solid #CFC3B6; border-radius: var(--hd-radius-s); background: #fff;
	color: var(--c-text); font: inherit; font-size: 16px; line-height: 1.6;
	transition: border-color .2s, box-shadow .2s;
}
.hd-field__input::placeholder { color: #767676; opacity: 1; }
.hd-field__input:focus { border-color: var(--c-primary); box-shadow: 0 0 0 4px rgba(247, 147, 30, .22); outline: none; }
textarea.hd-field__input { min-height: 160px; resize: vertical; }
select.hd-field__input { appearance: none; -webkit-appearance: none; padding-right: 48px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A84F00' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 16px center / 20px no-repeat; cursor: pointer; }
.hd-field__input[aria-invalid="true"] { border-color: var(--c-error); background-color: #FFF8F7; }
.hd-field__hint { margin: 6px 0 0; color: var(--c-text-muted); font-size: .8125rem; }
.hd-field__error { margin: 6px 0 0; color: var(--c-error); font-size: .875rem; font-weight: 700; }
.hd-field__error:empty { display: none; }
.hd-field--check { margin-top: 28px; padding: 16px; border-radius: var(--hd-radius-s); background: var(--c-sub); }
.hd-check { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.hd-check input { flex: none; width: 22px; height: 22px; margin: 3px 0 0; accent-color: var(--c-primary-strong); cursor: pointer; }
.hd-hp-field { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hd-contact-form__submit { margin-top: 32px; text-align: center; }
.hd-contact-form__submit .hd-btn { max-width: 420px; margin-inline: auto; }
.hd-contact-form__submit .hd-btn[disabled] { opacity: .7; cursor: progress; }
.hd-contact-form__note { margin: 12px 0 0; color: var(--c-text-muted); font-size: .8125rem; }
.hd-form-message { margin-bottom: 24px; padding: 20px 24px; border-radius: var(--hd-radius); }
.hd-form-message:focus { outline: none; }
.hd-form-message p { margin: 0; }
.hd-form-message--success { display: flex; gap: 14px; align-items: flex-start; border: 1px solid #CFE5C6; background: #F1F8EE; color: #2F6B1F; }
.hd-form-message--success .hd-icon { flex: none; width: 28px; height: 28px; stroke-width: 3; }
.hd-form-message--error { border: 1px solid #F1C4C0; background: #FFF5F4; color: var(--c-error); }
.hd-form-message--error ul { margin: 8px 0 0; padding-left: 1.2em; }
.hd-form-message--error a { color: var(--c-error); }

/* Contact Form 7（フォームは [contact-form-7 ... html_class="hd-contact-form"] で表示） */
.hd-contact-form .wpcf7-form-control-wrap { display: block; }
.hd-contact-form .wpcf7-not-valid { border-color: var(--c-error); background-color: #FFF8F7; }
.hd-contact-form .wpcf7-not-valid-tip { display: block; margin-top: 6px; color: var(--c-error); font-size: .875rem; font-weight: 700; }
.hd-contact-form .wpcf7-acceptance .wpcf7-list-item { display: block; margin: 0; }
.hd-contact-form .wpcf7-acceptance label { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.hd-contact-form .wpcf7-acceptance input { flex: none; width: 22px; height: 22px; margin: 3px 0 0; accent-color: var(--c-primary-strong); cursor: pointer; }
.hd-contact-form .wpcf7-submit { width: 100%; max-width: 420px; margin-inline: auto; -webkit-appearance: none; appearance: none; }
.hd-contact-form .wpcf7-submit:disabled { opacity: .7; cursor: progress; }
.hd-contact-form .wpcf7-spinner { display: block; margin: 12px auto 0; }
.hd-section .wpcf7 form .wpcf7-response-output { margin: 24px 0 0; padding: 16px 20px; border: 1px solid var(--c-border); border-radius: var(--hd-radius); font-size: .9375rem; }
.hd-section .wpcf7 form.sent .wpcf7-response-output { border-color: #CFE5C6; background: #F1F8EE; color: #2F6B1F; }
.hd-section .wpcf7 form.invalid .wpcf7-response-output,
.hd-section .wpcf7 form.unaccepted .wpcf7-response-output,
.hd-section .wpcf7 form.failed .wpcf7-response-output,
.hd-section .wpcf7 form.spam .wpcf7-response-output { border-color: #F1C4C0; background: #FFF5F4; color: var(--c-error); }

/* ---------- 16. Footer ---------- */
.hd-footer { padding: 56px 0 24px; border-top: 1px solid var(--c-border); background: var(--c-base); }
.hd-footer__inner { display: grid; gap: 32px; width: min(100% - var(--hd-gutter) * 2, 1120px); margin-inline: auto; }
.hd-footer .hd-logo__img { width: 48px; height: 48px; }
.hd-footer__brand { text-align: center; }
.hd-footer__catch { margin: 12px 0 0; color: var(--c-text-muted); font-size: .875rem; }
.hd-footer__nav ul { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px 16px; margin: 0; padding: 0; list-style: none; text-align: center; }
.hd-footer__nav a { display: block; padding: 8px 0; color: var(--c-text) !important; font-size: .9375rem; text-decoration: none; }
.hd-footer__nav a:hover { color: var(--c-primary-strong) !important; text-decoration: underline; }
.hd-footer__copy { margin: 40px 0 0; padding-top: 20px; border-top: 1px solid var(--c-line); color: var(--c-text-muted); text-align: center; }
@media (min-width: 960px) {
	.hd-footer__inner { grid-template-columns: 1fr auto; align-items: start; }
	.hd-footer__brand { text-align: left; }
	.hd-footer__nav ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 28px; }
}

/* ---------- 17. Sticky CTA（スマホ） ---------- */
.hd-sticky {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, .95); box-shadow: 0 -4px 20px rgba(120, 72, 20, .1);
	transition: transform .3s var(--hd-ease), visibility 0s;
}
.js .hd-sticky:not(.is-visible) { transform: translateY(110%); visibility: hidden; transition: transform .3s var(--hd-ease), visibility 0s .3s; }
.hd-sticky.has-line { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.hd-sticky .hd-btn { min-height: 52px; padding-inline: 16px; }
.hd-sticky .hd-btn--line { width: auto; }
body.hd-lp:not(.error404) { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
@media (min-width: 960px) {
	.hd-sticky, .hd-sticky.has-line { display: none; }
	body.hd-lp:not(.error404) { padding-bottom: 0; }
}

/* 固定バナー（ウィジェット「ひよこ：固定バナー」）：スマホは右下（固定ボタンの上）、PCは左下 */
.hd-float {
	position: fixed; right: 12px; bottom: calc(84px + env(safe-area-inset-bottom)); z-index: 95;
	width: min(46vw, 210px);
	filter: drop-shadow(0 8px 20px rgba(120, 72, 20, .18));
	transition: opacity .3s, transform .3s var(--hd-ease), visibility 0s;
}
.hd-float.is-away { opacity: 0; transform: translateY(12px); visibility: hidden; transition: opacity .3s, transform .3s var(--hd-ease), visibility 0s .3s; }
.hd-float.is-closed { display: none; }
.hd-float__item, .hd-float figure, .hd-float p { margin: 0; }
.hd-float img { display: block; width: 100%; height: auto; }
.hd-float a { display: block; border-radius: 12px; }
.hd-float__close {
	position: absolute; top: -10px; right: -6px; z-index: 1;
	display: grid; place-items: center; width: 30px; height: 30px; padding: 0;
	border: 2px solid #fff; border-radius: 50%; background: var(--c-text); color: #fff;
	font: 700 16px/1 var(--hd-font); cursor: pointer;
}
@media (min-width: 960px) {
	.hd-float { left: 20px; right: auto; bottom: 20px; width: 300px; }
	.hd-float__close { right: -8px; }
}

/* ---------- 18. 通常ページ（プライバシーポリシー）・404 ---------- */
.hd-page-header { padding: 56px var(--hd-gutter) 32px; background: var(--c-sub); }
.hd-page-header__title { width: min(100%, 820px); margin: 0 auto; font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.125rem); font-weight: 900; line-height: 1.45; }
.hd-entry { width: min(100% - var(--hd-gutter) * 2, 820px); margin: 0 auto; padding: 40px 0 72px; }
.hd-entry > * + * { margin-top: 1em; }
.hd-entry h2 { margin-top: 2.2em; padding-bottom: .4em; border-bottom: 2px solid var(--c-sub); font-size: 1.25rem; }
.hd-entry ul { padding-left: 1.4em; }
.hd-page-back { margin-top: 48px !important; text-align: center; }
.hd-notfound { width: min(100% - var(--hd-gutter) * 2, 820px); margin: 0 auto; padding: 80px 0 96px; text-align: center; }
.hd-notfound__title { margin: 0 0 20px; font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2rem); font-weight: 900; }
.hd-notfound__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 32px; }

/* ---------- 19. スマホ：中央寄せ（フォーム・FAQ・流れ・事例の項目は左寄せのまま） ---------- */
@media (max-width: 959px) {
	.hd-section .hd-plan, .hd-section .hd-maint__head { text-align: center; }
}

/* ---------- 20. Motion ---------- */
.js .hd-section .hd-head { opacity: 0; transform: translateY(16px); transition: opacity .7s var(--hd-ease), transform .7s var(--hd-ease); }
.js .hd-section .hd-head.is-inview { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	html:has(body.hd-lp) { scroll-behavior: auto; }
	.hd-section *, .hd-header *, .hd-sticky { animation: none !important; transition: none !important; }
	.js .hd-section .hd-head { opacity: 1; transform: none; }
}

/* ---------- 21. Profile ---------- */
.hd-profile .hd-profile__card .wp-block-media-text__media img { width: 100%; max-width: 220px; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 50%; display: block; margin: 0 auto; }
.hd-profile .hd-profile__role { margin: 0; font-size: .85em; opacity: .75; }
.hd-profile .hd-profile__name { margin-top: .2em; }
@media (max-width: 781px) {
	.hd-profile .hd-profile__card .wp-block-media-text__media img { max-width: 160px; }
	.hd-profile .hd-profile__card .wp-block-media-text__content { padding-top: 1em; }
}
