@charset "utf-8";
/* ==========================================================
   hh_funeral_cv.css  2026/11
   Funeral category pages (funeral08 first) - CV blocks
   entry chips / souba table / trust / manner points / FAQ
   ASCII only (Shift_JIS safe)
   ========================================================== */
.hhFn {
	--cv-ink: #3a3226;
	--cv-sub: #6b6458;
	--cv-bg: #faf7ee;       /* same cream as .congMenuBox */
	--cv-line: #e5dcc3;     /* cream border */
	--cv-card: #bbbbbb;     /* same grey as budget cards */
	--cv-gold: #8c7c3e;     /* site gold (arrHl arrow) */
	--cv-btn: #ff2456;      /* site pink (btnToList) */
	--cv-btn-on: #d90f3f;
}

/* ---------- details (shared) ---------- */
.hhFn .hhCv-more { margin: 10px 0 0 !important; }
.hhFn .hhCv-more > summary {
	display: inline-block !important;
	cursor: pointer;
	list-style: none;
	font-size: 13px !important;
	color: var(--cv-ink) !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}
.hhFn .hhCv-more > summary::-webkit-details-marker { display: none; }
.hhFn .hhCv-more > summary::after {
	content: "";
	display: inline-block;
	width: 6px; height: 6px;
	margin: 0 0 3px 8px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	transition: transform .2s;
}
.hhFn .hhCv-more[open] > summary::after { transform: translateY(3px) rotate(-135deg); }
.hhFn .hhCv-more > p { margin: 8px 0 0 !important; }

/* ---------- entry menu (cream box, same tone as .congMenuBox) ---------- */
.hhFn .hhCv-entry {
	margin: 20px 0 8px !important;
	padding: 14px 18px 6px !important;
	background: var(--cv-bg) !important;
	border: 1px solid var(--cv-line) !important;
	border-radius: 6px !important;
}
.hhFn .hhCv-entry__ttl {
	margin: 0 0 4px !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	color: var(--cv-gold) !important;
	letter-spacing: .12em !important;
}
.hhFn .hhCv-entry ul {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	column-gap: 28px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.hhFn .hhCv-entry li { margin: 0 !important; padding: 0 !important; border-top: 1px solid var(--cv-line) !important; }
.hhFn .hhCv-entry li:nth-child(-n+2) { border-top: 0 !important; }
.hhFn .hhCv-entry a {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 2px !important;
	color: var(--cv-ink) !important;
	text-decoration: none !important;
}
.hhFn .hhCv-entry__txt { display: block; line-height: 1.5 !important; }
.hhFn .hhCv-entry__txt b { display: block !important; font-size: 15px !important; font-weight: 700 !important; }
.hhFn .hhCv-entry__txt small { display: block !important; margin-top: 1px; font-size: 12px !important; color: var(--cv-sub) !important; }
.hhFn .hhCv-entry a::after {
	content: "";
	flex: 0 0 8px;
	width: 8px; height: 8px;
	margin: -4px 4px 0 0;
	border-right: 2px solid var(--cv-gold);
	border-bottom: 2px solid var(--cv-gold);
	transform: rotate(45deg);
	transition: transform .2s;
}
.hhFn .hhCv-entry a:hover b { color: var(--cv-gold) !important; }
.hhFn .hhCv-entry a:hover::after { transform: translateY(3px) rotate(45deg); }

/* ---------- souba ---------- */
.hhFn .hhCv-souba { margin: 0 0 40px !important; }
.hhFn .hhCv-tbl {
	width: 100% !important;
	margin: 0 0 10px !important;
	border-collapse: collapse !important;
	font-size: 14px !important;
}
.hhFn .hhCv-tbl th,
.hhFn .hhCv-tbl td {
	padding: 12px 14px !important;
	border: 1px solid var(--cv-line) !important;
	color: var(--cv-ink) !important;
	text-align: left !important;
	vertical-align: middle !important;
}
.hhFn .hhCv-tbl th { width: 55% !important; background: var(--cv-bg) !important; font-weight: 500 !important; }
.hhFn .hhCv-tbl td { font-weight: 700 !important; }
.hhFn .hhCv-note { margin: 0 !important; font-size: 13px !important; line-height: 1.8 !important; color: var(--cv-sub) !important; }

/* ---------- manner points ---------- */
.hhFn .hhCv-manner .hhCv-points {
	margin: 0 0 16px !important;
	padding: 0 !important;
	list-style: none !important;
	counter-reset: cvp;
}
.hhFn .hhCv-manner .hhCv-points li {
	position: relative;
	margin: 0 0 10px !important;
	padding: 12px 14px 12px 50px !important;
	background: #fff !important;
	border: 1px solid var(--cv-line) !important;
	border-radius: 4px !important;
	font-size: 14px !important;
	line-height: 1.8 !important;
	color: var(--cv-ink) !important;
	counter-increment: cvp;
}
.hhFn .hhCv-manner .hhCv-points li::before {
	content: counter(cvp);
	position: absolute;
	left: 14px; top: 13px;
	width: 24px; height: 24px;
	border-radius: 50%;
	background: var(--cv-gold);
	color: #fff;
	font-size: 13px;
	line-height: 24px;
	text-align: center;
}
.hhFn .hhCv-manner .hhCv-points li b { display: block !important; }
/* "read all" bar (cream, same tone as .congMenuBox) */
.hhFn .hhCv-all { margin: 24px 0 0 !important; }
.hhFn .hhCv-all > summary {
	display: flex !important;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	margin: 0 0 12px !important;
	padding: 14px 16px !important;
	background: var(--cv-bg) !important;
	border: 1px solid var(--cv-line) !important;
	border-radius: 6px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: var(--cv-ink) !important;
	text-decoration: none !important;
}
.hhFn .hhCv-all > summary::after { margin: 0 0 3px 12px; color: var(--cv-gold); width: 8px; height: 8px; border-width: 2px; }
.hhFn .hhCv-all > summary:hover { border-color: var(--cv-gold) !important; }
.hhFn .hhCv-all .hhCv-c { display: none; }
.hhFn .hhCv-all[open] .hhCv-o { display: none; }
.hhFn .hhCv-all[open] .hhCv-c { display: inline; }

/* ---------- button (secondary: outline pink, product CTA stays solid pink) ---------- */
.hhFn .hhCv-btn { margin: 16px 0 0 !important; text-align: center !important; }
.hhFn .hhCv-btn a {
	display: inline-block !important;
	box-sizing: border-box !important;
	width: 80%;
	max-width: 480px;
	padding: 12px 24px !important;
	background: #fff !important;
	border: 1px solid var(--cv-btn) !important;
	border-radius: 0 !important;
	color: var(--cv-btn) !important;
	font-size: 14px !important;
	text-decoration: none !important;
}
.hhFn .hhCv-btn a:hover { background: #fff5f7 !important; }

/* ---------- FAQ ---------- */
.hhFn .hhCv-faq { margin: 0 0 48px !important; }
.hhFn .hhCv-faq details {
	margin: 0 0 8px !important;
	border: 1px solid var(--cv-line) !important;
	border-radius: 4px !important;
	background: #fff !important;
}
.hhFn .hhCv-faq summary {
	position: relative;
	padding: 14px 40px 14px 44px !important;
	cursor: pointer;
	list-style: none;
	font-size: 14px !important;
	font-weight: 500 !important;
	color: var(--cv-ink) !important;
}
.hhFn .hhCv-faq summary::-webkit-details-marker { display: none; }
.hhFn .hhCv-faq summary::before { content: "Q"; position: absolute; left: 16px; top: 13px; font-weight: 700; color: var(--cv-gold); }
.hhFn .hhCv-faq summary::after { content: "+"; position: absolute; right: 16px; top: 12px; font-size: 18px; color: var(--cv-sub); }
.hhFn .hhCv-faq details[open] summary::after { content: "\2212"; }
.hhFn .hhCv-faq details > div { padding: 0 16px 14px 44px !important; }
.hhFn .hhCv-faq details > div p { margin: 0 !important; font-size: 14px !important; line-height: 1.8 !important; color: var(--cv-ink) !important; }

/* ---------- SP ---------- */
@media screen and (max-width: 767px) {
	.hhFn .hhCv-entry { padding: 12px 16px 4px !important; }
	.hhFn .hhCv-entry ul { grid-template-columns: 1fr !important; }
	.hhFn .hhCv-entry li:nth-child(2) { border-top: 1px solid var(--cv-line) !important; }
	.hhFn .hhCv-tbl th { width: 50% !important; font-size: 13px !important; }
	.hhFn .hhCv-btn a { display: block !important; width: 100% !important; max-width: none !important; }
}

/* ---------- parts shared with manner pages (.mannerSec from funeral_manner.css) ---------- */
.hhFn .mannerSec { margin: 0 !important; padding: 0 !important; }
.hhFn .introSec .hhFnBand { margin: 24px 0 8px !important; }
.hhFn .hhFnWhy { margin: 48px 0 !important; }
.hhFn .hhCv-tatefuda { margin: 4px 0 0 !important; text-align: right !important; }

/* 2026/11/14 fix: layout on live page
   1) PC: budget/kind cards are floated, so the next block rode up under them -> clear floats
   2) SP: site h2 style (olive bar, white text) leaked into "reasons" heading -> reset
   3) SP: souba heading stuck to the delivered-photo button above -> add top margin */
.hhFn .mannerSec,
.hhFn .hhCv-souba,
.hhFn .hhCv-manner { clear: both !important; }
.hhFn .kindLinkSec::after { content: ""; display: block; clear: both; }
html body .hhFn .mannerSec .hhFnWhy { margin: 48px 0 !important; }
html body .hhFn .mannerSec .hhFnWhy h2 {
	display: block !important;
	width: auto !important;
	height: auto !important;
	margin: 0 0 16px !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	color: #333333 !important;
	font-size: 18px !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	text-align: center !important;
	letter-spacing: .04em !important;
}
html body .hhFn .mannerSec .hhFnWhy h2::before,
html body .hhFn .mannerSec .hhFnWhy h2::after { content: none !important; display: none !important; }
html body .hhFn .hhCv-souba { margin: 56px 0 40px !important; }

/* 2026/11/14 fix: SP side gutter for the blocks that are not inside site sections
   (site sections such as .congGuideSec / .introSec already have ~12px) */
@media screen and (max-width: 767px) {
	html body .hhFn .hhCv-souba,
	html body .hhFn .hhCv-faq,
	html body .hhFn > .mannerSec {
		padding-left: 12px !important;
		padding-right: 12px !important;
		box-sizing: border-box !important;
	}
}

/* 2026/11/14 fix: gap between "reasons" box and manner heading was too wide
   (why box bottom margin + site .congGuideSec top margin + h3 top margin stacked) */
html body .hhFn .mannerSec .hhFnWhy { margin-bottom: 0 !important; }
html body .hhFn .hhCv-manner { margin-top: 40px !important; padding-top: 0 !important; }
html body .hhFn .hhCv-manner > h3 { margin-top: 0 !important; margin-bottom: 14px !important; padding-top: 0 !important; }

/* ---------- memorial type links (.hhCv-shurui, funeral04 hub) ---------- */
.hhFn .hhCv-shurui__list {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.hhFn .hhCv-shurui__list li { margin: 0 !important; padding: 0 !important; float: none !important; width: auto !important; }
.hhFn .hhCv-shurui__list li::before, .hhFn .hhCv-shurui__list li::after { content: none !important; }
.hhFn .hhCv-shurui__list a {
	display: block !important;
	position: relative;
	padding: 12px 28px 12px 14px !important;
	background: #fff !important;
	border: 1px solid var(--cv-card) !important;
	color: var(--cv-ink) !important;
	text-decoration: none !important;
	line-height: 1.5 !important;
}
.hhFn .hhCv-shurui__list a::after {
	content: "";
	position: absolute;
	right: 12px; top: 50%;
	width: 7px; height: 7px;
	margin-top: -4px;
	border-top: 2px solid var(--cv-gold);
	border-right: 2px solid var(--cv-gold);
	transform: rotate(45deg);
}
.hhFn .hhCv-shurui__list b { display: block !important; font-size: 15px !important; font-weight: 700 !important; }
.hhFn .hhCv-shurui__list small { display: block !important; font-size: 11px !important; color: var(--cv-sub) !important; }
.hhFn .hhCv-shurui__list a:hover { background: var(--cv-bg) !important; }
.hhFn .hhCv-shurui__list a:hover b { color: var(--cv-gold) !important; }
@media screen and (max-width: 767px) {
	.hhFn .hhCv-shurui__list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
}
