/* Content pages: home first screen, About, Success Stories, FAQ, Contact, legal, sitemap,
   in-person consultation, blog and article. Source: design/mockup/*.dc.html.
   Shared classes (.hv-container, .hv-btn, .hv-card, .hv-h1…) come from base.css. */

/* ---------------------------------------------------------------- Layout */

.hv-page {
	flex: 1;
	color: var(--hv-white);
	font-family: var(--hv-font-body);
}
.hv-page-home { color: inherit; font-family: inherit; }
.hv-page > .hv-container {
	padding-top: 64px;
	padding-bottom: var(--hv-section);
}
.hv-page-stack { display: flex; flex-direction: column; gap: var(--hv-section); }
.hv-page-stack--110 { gap: 110px; }
.hv-page-stack--72 { gap: 72px; }
.hv-page-stack--40 { gap: 40px; }
.hv-page-stack--36 { gap: 36px; }
.hv-page-stack--32 { gap: 32px; }
.hv-page-stack--28 { gap: 28px; }
.hv-page-narrow { width: 100%; max-width: 860px; margin-inline: auto; }
.hv-page-block { display: flex; flex-direction: column; gap: 22px; }
.hv-page-block--36 { gap: 36px; }
.hv-page-block__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; }
.hv-page-head { display: flex; flex-direction: column; gap: 12px; }
.hv-page-head--center { align-items: center; text-align: center; }
.hv-page-head--center .hv-lead { max-width: 620px; }
.hv-page-head .hv-lead p, .hv-page-head .hv-lead { margin: 0; }

/* Generic rules stay out of the home page, whose lower part is Elementor content. */
.hv-page:where(:not(.hv-page-home)) :where(h1, h2, h3) { margin: 0; }
.hv-page .hv-h1 { font-family: var(--hv-font-display); font-size: 48px; font-weight: 900; line-height: 1.06; }
.hv-page .hv-h2 { font-family: var(--hv-font-display); font-size: 30px; font-weight: 700; line-height: 1.2; }
.hv-page .hv-h3 { font-family: var(--hv-font-display); font-size: 20px; font-weight: 700; line-height: 1.3; }
.hv-page-prose { display: flex; flex-direction: column; gap: 18px; font-size: 17px; line-height: 1.7; color: var(--hv-text); }
.hv-page-prose p { margin: 0; }
.hv-page-prose strong { color: var(--hv-white); }
.hv-page:where(:not(.hv-page-home)) a:where(:not(.hv-btn, .hv-card)) { color: var(--hv-gold-light); }
.hv-page:where(:not(.hv-page-home)) a:where(:not(.hv-btn, .hv-card)):hover { color: var(--hv-white); }
.hv-page-mono { margin: 0; font-family: var(--hv-font-mono); font-size: 14px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--hv-gold-light); }

.hv-page-img-missing {
	display: flex; align-items: center; justify-content: center;
	padding: 20px; box-sizing: border-box; text-align: center;
	background: var(--hv-surface-2); color: var(--hv-text-dim); font-size: 12px;
}

/* Chips: filters, tabs, blog categories. */
.hv-page-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.hv-page-chips--center { justify-content: center; }
.hv-page-chip {
	display: inline-flex; align-items: center; gap: 6px;
	min-height: var(--hv-tap); padding: 0 16px; border-radius: 999px; box-sizing: border-box;
	background: var(--hv-surface); color: var(--hv-text); border: 1px solid rgba(255, 255, 255, 0.12);
	font: 600 14px/1 var(--hv-font-body); cursor: pointer; text-decoration: none;
}
.hv-page a.hv-page-chip { color: var(--hv-text); }
.hv-page-chip:hover { border-color: var(--hv-gold); }
.hv-page-chip[aria-pressed="true"], .hv-page-chip[aria-selected="true"], .hv-page .hv-page-chip[aria-current="page"] {
	background: var(--hv-gold); border-color: var(--hv-gold); color: var(--hv-bg);
}
.hv-page-chip__n { opacity: 0.6; font-weight: 500; }
.hv-page-chip:focus-visible, .hv-page-faq__q button:focus-visible, .hv-page-link-btn:focus-visible { outline: 2px solid var(--hv-gold-light); outline-offset: 2px; }

/* Key figures. */
.hv-page-stats { display: grid; gap: 16px; }
.hv-page-stats--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hv-page-stats--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hv-page-stat { display: flex; flex-direction: column; gap: 6px; padding: 28px; }
.hv-page-stat--center { text-align: center; padding: 26px; }
.hv-page-stat__value { font-family: var(--hv-font-display); font-size: 40px; font-weight: 900; color: var(--hv-gold-light); font-variant-numeric: tabular-nums; }
.hv-page-stats--3 .hv-page-stat__value { font-size: 38px; }
.hv-page-stat__label { font-size: 15px; color: var(--hv-text); }

/* Feature call to action. */
.hv-page-cta { display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 48px 32px; text-align: center; }
.hv-page-cta .hv-lead { margin: 0; font-size: 16px; color: var(--hv-text); }
.hv-page-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

/* Clamped text with "Read more" (pages.js). */
.hv-page-clamp { display: flex; flex-direction: column; gap: 6px; flex: 1; }
.hv-page-clamp__text {
	margin: 0; font-size: 15px; line-height: 1.6; color: var(--hv-text);
	/* Hauteur fixe (6 lignes) plutôt que line-clamp : le texte contient plusieurs <p>. */
	max-height: calc(1.6em * 6); overflow: hidden;
}
.hv-page-clamp.is-cut .hv-page-clamp__text { -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent); mask-image: linear-gradient(180deg, #000 60%, transparent); }
.hv-page-clamp.is-cut { cursor: pointer; }
.hv-page-clamp.is-open .hv-page-clamp__text { max-height: none; overflow: visible; -webkit-mask-image: none; mask-image: none; }
.hv-page-link-btn {
	align-self: flex-start; min-height: var(--hv-tap); padding: 0; background: none; border: 0; cursor: pointer;
	color: var(--hv-gold-light); font: 600 15px var(--hv-font-body);
}
.hv-page-link-btn:hover { color: var(--hv-white); }
.hv-page-clamp .hv-page-link-btn { min-height: 32px; font-size: 14px; }

.hv-page-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.hv-page-gallery__img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--hv-radius-md); background: var(--hv-surface); display: block; }
.hv-page-gallery__img--top { object-position: top; }
.hv-page-gallery--tall { gap: 12px; }
.hv-page-gallery--tall .hv-page-gallery__img { aspect-ratio: 3 / 4; }

.hv-page-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.hv-page-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.hv-page-grid3--even { grid-auto-rows: 1fr; }

/* ---------------------------------------------------------------- Home first screen */

.hv-page-home { display: block; }
.hv-page-hero {
	position: relative; overflow: hidden;
	min-height: 100vh; min-height: 100svh;
	display: flex; align-items: center;
	background-color: #000;
	background-image: radial-gradient(at 50% 0%, rgba(255, 137, 0, 0.17) 0%, rgba(0, 0, 0, 0) 75%), radial-gradient(circle, rgba(255, 255, 255, 0.06) 0 2.4px, rgba(255, 255, 255, 0) 3px);
	background-repeat: no-repeat, repeat;
	background-size: 100% 100%, 19px 19px;
	font-family: var(--hv-font-hero);
	color: var(--hv-white);
}
.hv-page-hero__figure { position: absolute; right: 6%; bottom: 0; height: min(820px, 91%); width: auto; display: block; }
.hv-page-hero__figure-mobile { display: none; }
.hv-page-hero__inner {
	position: relative; z-index: 1;
	width: 600px; max-width: calc(100% - 2 * var(--hv-gutter));
	margin-left: 7.4%;
	padding: calc(var(--hv-header-h) + var(--hv-topbar-h) + 48px) 0 64px;
	display: flex; flex-direction: column; gap: 14px;
}
.hv-page-hero__badges { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.hv-page-hero__badge {
	display: flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px;
	border-radius: 156px; background: rgba(41, 41, 41, 0.8); font-size: 14px;
}
.hv-page-hero__badge--small { font-size: 12px; }
.hv-page-hero__badge-mobile, .hv-page-hero__badge--mobile { display: none; }
.hv-page-hero__title { margin: 4px 0 0; font-family: var(--hv-font-display); font-size: 48px; font-weight: 600; line-height: 0.95; }
.hv-page-hero__underline { display: inline; text-decoration: underline; text-decoration-thickness: 4px; text-underline-offset: 6px; }
.hv-page-hero__sub { margin: 0; font-family: var(--hv-font-display); font-size: 16px; font-weight: 400; }
.hv-page .hv-page-hero__cta {
	align-self: flex-start; margin-top: 18px; height: 64px; padding: 0 44px; border-radius: 6px;
	border: 2px solid var(--hv-white); background: var(--hv-gold);
	display: flex; align-items: center; color: var(--hv-white); text-decoration: none;
	font-family: var(--hv-font-mono); font-size: 22px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase;
	box-shadow: 0 10px 34px rgba(191, 156, 92, 0.35);
}
.hv-page-hero__approved { display: flex; align-items: center; gap: 10px; margin-top: 14px; font-family: var(--hv-font-mono); font-size: 16px; }
.hv-page-hero__avatars { display: flex; }
.hv-page-hero__avatars img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; border: 2px solid #000; }
.hv-page-hero__avatars img + img { margin-left: -16px; }
.hv-page-hero__stars { display: none; color: var(--hv-gold-light); letter-spacing: 1px; }
.hv-page-hero__review {
	width: 500px; max-width: 100%; box-sizing: border-box; margin: 14px 0 0; padding: 16px;
	border-radius: 14px; background: rgba(89, 73, 43, 0.5); display: flex; flex-direction: column; gap: 16px;
}
.hv-page-hero__review-head { display: flex; align-items: center; gap: 16px; }
.hv-page-hero__review-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.hv-page-hero__review-stars {
	display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; padding: 8px 14px 8px 18px;
	border-radius: 999px; background: #000; color: var(--hv-gold-light); font-size: 24px; line-height: 1; letter-spacing: 4px;
}
.hv-page-hero__review blockquote {
	margin: 0; padding: 16px; border-radius: 10px; background: #000;
	font-family: var(--hv-font-mono); font-size: 14px; line-height: 1.45;
}
/* Elementor content below the first screen keeps its own styles. Some blocks have a fixed
   pixel width even on mobile (818 px): the old theme hid the overflow, keep them in the screen. */
.hv-page-home__rest { position: relative; overflow-x: clip; }
.hv-page-home__rest .e-con { max-width: 100%; }

@media (max-width: 1100px) {
	.hv-page-hero__figure { right: -8%; opacity: 0.8; }
}

@media (max-width: 760px) {
	.hv-page-hero {
		align-items: flex-start;
		min-height: 100svh;
		background-color: var(--hv-bg);
		background-image: linear-gradient(180deg, rgba(10, 10, 10, 0.1) 0%, rgba(10, 10, 10, 0.35) 55%, #0A0A0A 100%), var(--hv-hero-mobile-bg, none);
		background-size: 100% 100%, cover;
		background-position: center, center top;
		background-repeat: no-repeat;
		font-family: var(--hv-font-body);
	}
	.hv-page-hero__figure { display: none; }
	.hv-page-hero__figure-mobile { display: block; position: absolute; right: -70px; bottom: 60px; height: 560px; max-height: 70%; width: auto; opacity: 0.28; }
	.hv-page-hero__inner {
		width: auto; max-width: none; margin: 0; padding: calc(64px + 48px) 20px 48px;
		align-items: center; text-align: center; gap: 18px;
	}
	.hv-page-hero__badges { justify-content: center; gap: 6px; }
	.hv-page-hero__badge {
		height: auto; padding: 6px 10px; font-size: 12px; font-weight: 600;
		background: rgba(10, 10, 10, 0.55); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 999px;
	}
	.hv-page-hero__badge--desktop, .hv-page-hero__badge-desktop { display: none; }
	.hv-page-hero__badge--mobile { display: flex; }
	.hv-page-hero__badge-mobile { display: inline; }
	.hv-page-hero__title { margin: 0; font-size: 38px; font-weight: 900; line-height: 1.05; }
	.hv-page-hero__underline { text-decoration-color: var(--hv-gold-light); text-underline-offset: 7px; }
	.hv-page-hero__sub { font-family: var(--hv-font-body); font-size: 17px; line-height: 1.5; color: #E5E5E5; }
	.hv-page .hv-page-hero__cta {
		align-self: stretch; justify-content: center; margin-top: 8px; height: 58px; padding: 0 16px;
		border: 0; border-radius: 10px; background: var(--hv-gold-gradient);
		font-family: var(--hv-font-display); font-size: 14px; font-weight: 900; letter-spacing: 0.05em;
		box-shadow: none; animation: hv-page-glow 2.8s ease-in-out infinite;
	}
	.hv-page-hero__approved { margin-top: 0; font-family: var(--hv-font-body); font-size: 14px; color: #E5E5E5; gap: 6px; }
	.hv-page-hero__avatars, .hv-page-hero__review { display: none; }
	.hv-page-hero__stars { display: inline; }
}
@keyframes hv-page-glow {
	0%, 100% { box-shadow: 0 0 0 0 rgba(194, 159, 95, 0.45); }
	50% { box-shadow: 0 0 0 10px rgba(194, 159, 95, 0); }
}

/* ---------------------------------------------------------------- About */

.hv-page-about__hero { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 56px; align-items: center; }
.hv-page-about__portrait { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--hv-radius-lg); display: block; }
.hv-page-about__intro { display: flex; flex-direction: column; gap: 20px; }
.hv-page-about__intro .hv-eyebrow, .hv-page-stories .hv-eyebrow { margin: 0; }
.hv-page-pills { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.hv-page-drives { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.hv-page-drives__item { display: flex; align-items: center; gap: 18px; padding: 22px; }
.hv-page-drives__n { font-family: var(--hv-font-display); font-size: 13px; font-weight: 700; color: var(--hv-gold-light); }
.hv-page-drives__t { font-family: var(--hv-font-display); font-size: 18px; font-weight: 700; }
.hv-page-story { max-width: 860px; width: 100%; margin: 0 auto; box-sizing: border-box; padding: 40px; gap: 16px; line-height: 1.75; }
.hv-page-story .hv-h2 { font-size: 26px; }
.hv-page-record { list-style: none; margin: 0; padding: 0; }
.hv-page-record li { display: flex; gap: 20px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--hv-line); font-size: 16px; line-height: 1.5; }
.hv-page-record__year { min-width: 48px; font-family: var(--hv-font-display); font-size: 14px; font-weight: 700; color: var(--hv-gold-light); }
.hv-page-art { display: flex; flex-direction: column; gap: 24px; }
.hv-page-art__text { max-width: 760px; gap: 14px; }
.hv-page-learn { display: flex; flex-direction: column; gap: 18px; }
.hv-page-learn .hv-h3 { font-size: 22px; }
.hv-page-learn__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.hv-page .hv-page-learn__item { display: flex; gap: 16px; align-items: center; padding: 20px; color: var(--hv-white); text-decoration: none; }
.hv-page a.hv-page-learn__item:hover { border-color: var(--hv-gold); }
.hv-page-learn__icon { width: 48px; height: 48px; flex-shrink: 0; border-radius: 10px; background: var(--hv-surface-2); display: flex; align-items: center; justify-content: center; }
.hv-page-learn__body { display: flex; flex-direction: column; gap: 4px; }
.hv-page-learn__body .hv-muted { font-size: 14px; }
.hv-page-learn__intro { max-width: 860px; }
.hv-page-about .hv-page-drives { margin-top: 24px; }
.hv-page-cta__text { display: flex; flex-direction: column; gap: 12px; max-width: 760px; }
.hv-page-cta__text p { margin: 0; }

/* ---------------------------------------------------------------- Success Stories */

.hv-page-stories .hv-page-head .hv-h1 { line-height: 1.08; }
.hv-page-stories .hv-h2 { font-size: 28px; }
.hv-page-tf { overflow: hidden; display: flex; flex-direction: column; padding: 0; border-radius: 14px; }
.hv-page-tf__img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }
.hv-page-tf__body { padding: 20px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.hv-page-tf__head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.hv-page-tf__who { font-family: var(--hv-font-display); font-size: 16px; font-weight: 700; }
.hv-page-tf .hv-badge-gold { white-space: nowrap; }
.hv-page-quote p { margin: 0; }
.hv-page-quote p + p { margin-top: 10px; }
.hv-page-quote--marks p:first-child::before { content: "\201C"; }
.hv-page-quote--marks p:last-child::after { content: "\201D"; }
.hv-page-tf__comment { display: flex; flex-direction: column; gap: 10px; font-size: 14px; line-height: 1.6; color: var(--hv-text-muted); }
.hv-page-tf__comment p { margin: 0; }
.hv-page-tf__video iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: var(--hv-radius-md); }
.hv-page-stories__lead p { margin: 0; }
.hv-page-review { margin: 0; padding: 22px; display: flex; flex-direction: column; gap: 12px; }
.hv-page-review[hidden] { display: none; }
.hv-page-review__head { display: flex; align-items: center; gap: 12px; }
.hv-page-review__ini {
	width: 40px; height: 40px; flex-shrink: 0; border-radius: 50%; background: var(--hv-gold-gradient);
	display: flex; align-items: center; justify-content: center; font-family: var(--hv-font-display); font-size: 14px; font-weight: 700;
}
.hv-page-review__who { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-weight: 600; }
.hv-page-review__who .hv-muted { font-size: 13px; font-weight: 400; }
.hv-page-review__stars { margin-left: auto; color: var(--hv-gold-light); letter-spacing: 2px; font-size: 13px; white-space: nowrap; }
.hv-page-review__verified { display: flex; gap: 6px; align-items: center; font-size: 12px; color: var(--hv-text-muted); }

/* ---------------------------------------------------------------- FAQ (template part + page) */

.hv-page-faq { width: 100%; display: flex; flex-direction: column; color: var(--hv-white); font-family: var(--hv-font-body); }
.hv-page-faq__title { margin: 0 0 16px; font-family: var(--hv-font-display); font-size: 26px; font-weight: 700; }
.hv-page-faq__item { border-bottom: 1px solid rgba(255, 255, 255, 0.10); }
.hv-page-faq__item[hidden] { display: none; }
.hv-page-faq__q { margin: 0; font: inherit; }
.hv-page-faq__q button {
	width: 100%; min-height: 64px; padding: 12px 4px; background: transparent; border: 0; color: var(--hv-white); cursor: pointer;
	display: flex; align-items: center; gap: 16px; text-align: left; font: 600 17px/1.4 var(--hv-font-body);
}
.hv-page-faq__topic { min-width: 96px; font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--hv-gold); }
.hv-page-faq__text { flex: 1; }
.hv-page-faq__sign {
	position: relative; width: 28px; height: 28px; flex-shrink: 0; border-radius: 50%; border: 1px solid rgba(191, 156, 92, 0.5); box-sizing: border-box;
}
.hv-page-faq__sign::before, .hv-page-faq__sign::after {
	content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1.5px; background: var(--hv-gold-light); transform: translate(-50%, -50%);
}
.hv-page-faq__sign::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform 0.2s; }
.hv-page-faq__q button[aria-expanded="true"] .hv-page-faq__sign::after { transform: translate(-50%, -50%) rotate(0deg); }
.hv-page-faq__a { padding: 0 44px 22px 4px; display: flex; flex-direction: column; gap: 10px; }
.hv-page-faq__a[hidden] { display: none; }
.hv-page-faq__a p { margin: 0; font-size: 15px; line-height: 1.7; color: var(--hv-text); }
.hv-page-faq__note { align-self: flex-start; font-size: 12px; padding: 4px 10px; border-radius: 6px; background: rgba(191, 156, 92, 0.14); color: var(--hv-gold-light); }
.hv-page-faq__empty { margin: 24px 0; font-size: 15px; color: var(--hv-text-muted); }
.hv-page-faq__empty[hidden] { display: none; }

.hv-page-faqpage .hv-h1 { font-size: 44px; }
.hv-page-faqpage .hv-page-head .hv-lead { font-size: 17px; }
.hv-page-search { position: relative; }
.hv-page-search svg { position: absolute; left: 16px; top: 17px; color: var(--hv-text-muted); pointer-events: none; }
.hv-page-search input {
	width: 100%; box-sizing: border-box; height: 52px; padding: 0 16px 0 46px; border-radius: 10px;
	border: 1px solid var(--hv-line-strong); background: var(--hv-surface); color: var(--hv-white); font: 16px var(--hv-font-body);
}
.hv-page-search input:focus { outline: 2px solid var(--hv-gold); outline-offset: 0; border-color: transparent; }
.hv-page-ask { margin-top: 16px; padding: 24px; border-radius: 14px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.hv-page-ask p { margin: 0; font-size: 16px; }

/* ---------------------------------------------------------------- Contact (+ Contact Form 7) */

.hv-page-contact__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 48px; align-items: start; max-width: 1100px; }
.hv-page-contact__intro { display: flex; flex-direction: column; gap: 18px; }
.hv-page-contact .hv-h1 { font-size: 40px; line-height: 1.1; }
.hv-page-contact__intro .hv-page-prose { font-size: 16px; line-height: 1.65; color: var(--hv-text-muted); }
.hv-page .hv-page-contact__insta { align-self: flex-start; gap: 10px; }
.hv-page-contact__note { margin: 8px 0 0; padding: 18px; font-size: 14px; line-height: 1.6; color: var(--hv-text); }
.hv-page-form { padding: 32px; border-radius: var(--hv-radius-lg); }
.hv-page-form .wpcf7-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 14px; }
.hv-page-form .wpcf7-form > p { margin: 0; grid-column: 1 / -1; }
.hv-page-form .wpcf7-form > p:nth-of-type(1), .hv-page-form .wpcf7-form > p:nth-of-type(2) { grid-column: auto; }
.hv-page-form .wpcf7-form > :not(p) { grid-column: 1 / -1; }
.hv-page-form label { display: flex; flex-direction: column; gap: 8px; font-size: 14px; font-weight: 500; color: var(--hv-white); }
.hv-page-form .wpcf7-form-control-wrap { display: block; }
.hv-page-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), .hv-page-form select, .hv-page-form textarea {
	width: 100%; box-sizing: border-box; min-height: 48px; padding: 0 14px; border-radius: var(--hv-radius-sm);
	border: 1px solid var(--hv-line-strong); background: var(--hv-bg); color: var(--hv-white); font: 15px var(--hv-font-body);
}
.hv-page-form textarea { padding: 12px 14px; min-height: 168px; resize: vertical; }
.hv-page-form input:focus, .hv-page-form select:focus, .hv-page-form textarea:focus { outline: 2px solid var(--hv-gold); outline-offset: 0; border-color: transparent; }
.hv-page-form input[type="submit"] {
	width: 100%; height: 52px; border: 0; border-radius: var(--hv-radius-sm); cursor: pointer;
	background: var(--hv-gold-gradient); color: var(--hv-white);
	font: 900 13px var(--hv-font-display); letter-spacing: 0.04em; text-transform: uppercase;
}
.hv-page-form input[type="submit"]:hover { filter: brightness(1.08); }
.hv-page-form .wpcf7-spinner { margin: 8px auto 0; display: block; }
.hv-page-form .wpcf7-not-valid-tip { margin-top: 6px; font-size: 13px; color: #F2A7A7; }
.hv-page-form .wpcf7-response-output { margin: 0 !important; padding: 12px 14px !important; border-radius: var(--hv-radius-sm); font-size: 14px; }
.hv-page-form .wpcf7-form > p:last-of-type:not(:has(input)), .hv-page-form__note { margin: 0; font-size: 12px; color: var(--hv-text-dim); }
.hv-page-form__note { margin-top: 12px; }

/* ---------------------------------------------------------------- Legal */

.hv-page-legal .hv-h1 { font-size: 40px; }
.hv-page-legal .hv-container { max-width: 1100px; }
.hv-page-legal .hv-page-head p { margin: 0; font-size: 14px; }
.hv-page-legal__layout { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.hv-page-legal__nav { flex: 1 1 220px; max-width: 260px; position: sticky; top: calc(var(--hv-header-h) + 24px); font-size: 14px; }
.hv-page-legal__nav .hv-eyebrow { margin: 0 0 8px; }
.hv-page-legal__details > summary { list-style: none; cursor: default; pointer-events: none; }
.hv-page-legal__details > summary::-webkit-details-marker { display: none; }
.hv-page-legal__nav ul { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-direction: column; }
.hv-page-legal__toc a { display: block; padding: 8px 0 8px 12px; border-left: 2px solid var(--hv-line); text-decoration: none; }
.hv-page .hv-page-legal__toc a { color: var(--hv-text-muted); }
.hv-page .hv-page-legal__toc a.is-active, .hv-page .hv-page-legal__toc a:hover { color: var(--hv-white); border-left-color: var(--hv-gold); }
.hv-page-legal__docs a { display: block; padding: 6px 0 6px 12px; text-decoration: none; }
.hv-page .hv-page-legal__docs a { color: var(--hv-text-muted); }
.hv-page .hv-page-legal__docs a[aria-current="page"], .hv-page .hv-page-legal__docs a:hover { color: var(--hv-white); }
.hv-page-legal__body { flex: 999 1 560px; min-width: 0; max-width: 720px; gap: 18px; font-size: 16px; line-height: 1.75; }
.hv-page-legal__body h2 {
	margin: 18px 0 0; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, 0.06);
	font-family: var(--hv-font-display); font-size: 18px; font-weight: 700; line-height: 1.4; color: var(--hv-white);
	text-align: left !important; scroll-margin-top: calc(var(--hv-header-h) + 24px);
}
.hv-page-legal__body h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.hv-page-legal__body h3 { font-size: 16px; color: var(--hv-white); scroll-margin-top: calc(var(--hv-header-h) + 24px); }
.hv-page-legal__body [style*="color"] { color: inherit !important; }
.hv-page-legal__body [style*="text-align"] { text-align: left !important; }
.hv-page-legal__body ul, .hv-page-legal__body ol { margin: 0; padding-left: 22px; }

/* ---------------------------------------------------------------- Sitemap */

.hv-page-sitemap .hv-h1 { font-size: 44px; }
.hv-page-sitemap__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; align-items: start; }
.hv-page-sitemap__col { padding: 24px; border-radius: 14px; display: flex; flex-direction: column; gap: 18px; }
.hv-page-sitemap__col .hv-eyebrow { margin: 0; font-size: 12px; }
.hv-page-sitemap__group { display: flex; flex-direction: column; gap: 10px; }
.hv-page-sitemap__group ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.hv-page .hv-page-sitemap__main { font-family: var(--hv-font-display); font-size: 15px; font-weight: 700; color: var(--hv-white); text-decoration: none; }
.hv-page .hv-page-sitemap__group li a { display: block; padding-left: 12px; border-left: 1px solid rgba(255, 255, 255, 0.12); font-size: 14px; color: var(--hv-text); text-decoration: none; }
.hv-page .hv-page-sitemap__main:hover, .hv-page .hv-page-sitemap__group li a:hover { color: var(--hv-gold-light); }

/* ---------------------------------------------------------------- In-person consultation */

.hv-page-consult__top { display: grid; grid-template-columns: minmax(0, 1fr) 480px; gap: 64px; align-items: center; }
.hv-page-consult__intro { display: flex; flex-direction: column; gap: 22px; }
.hv-page-consult__title { font-family: var(--hv-font-display); font-size: 64px; font-weight: 900; line-height: 0.98; }
.hv-page-consult__lead { max-width: 540px; font-size: 19px; line-height: 1.6; color: var(--hv-text); }
.hv-page-consult__lead p { margin: 0; }
.hv-page-consult__coach { display: flex; align-items: center; gap: 14px; margin-top: 4px; }
.hv-page-consult__coach > div { display: flex; flex-direction: column; gap: 2px; }
.hv-page-consult__coach .hv-muted { font-size: 14px; }
.hv-page-consult__coach-img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 2px solid var(--hv-gold); }
.hv-page-consult__stats { display: flex; gap: 32px; margin-top: 6px; }
.hv-page-consult__stats > div { display: flex; flex-direction: column; }
.hv-page-consult__stats .hv-muted { font-size: 14px; }
.hv-page-consult__stat { font-family: var(--hv-font-display); font-size: 26px; font-weight: 900; color: var(--hv-gold-light); }
.hv-page-consult__offer {
	padding: 36px; border-radius: 20px; display: flex; flex-direction: column; gap: 18px; align-items: center; text-align: center;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5); scroll-margin-top: calc(var(--hv-header-h) + 24px);
}
.hv-page-consult__offer .hv-page-mono { font-size: 13px; }
.hv-page-consult__price { margin: 0; font-family: var(--hv-font-display); font-size: 54px; font-weight: 900; line-height: 1.1; }
.hv-page-consult__meta { margin: 0; font-size: 16px; color: var(--hv-text); }
.hv-page-checks { list-style: none; margin: 6px 0; padding: 0; align-self: stretch; display: flex; flex-direction: column; gap: 10px; text-align: left; }
.hv-page-checks li { display: flex; gap: 10px; font-size: 16px; }
.hv-page-checks svg { flex-shrink: 0; margin-top: 2px; }
.hv-page .hv-page-consult__book { align-self: stretch; justify-content: center; }
.hv-page-consult__note { margin: 0; font-size: 13px; color: var(--hv-text-muted); }
.hv-page-consult__h2 { font-size: 36px; max-width: 640px; }
.hv-page-timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(191, 156, 92, 0.5); }
.hv-page-timeline li { position: relative; padding: 28px 28px 0 0; display: flex; flex-direction: column; gap: 12px; }
.hv-page-timeline li::before { content: ""; position: absolute; top: -7px; left: 0; width: 12px; height: 12px; border-radius: 50%; background: var(--hv-gold); }
.hv-page-timeline .hv-page-mono { letter-spacing: 0; text-transform: none; }
.hv-page-timeline .hv-h3 { font-size: 22px; }
.hv-page-timeline p { margin: 0; font-size: 16px; line-height: 1.6; }
.hv-page-quote { margin: 0; display: flex; flex-direction: column; gap: 16px; align-items: center; text-align: center; }
.hv-page-quote blockquote { margin: 0; max-width: 860px; font-family: var(--hv-font-display); font-size: 26px; font-weight: 500; line-height: 1.4; }
.hv-page-closing { display: flex; flex-direction: column; align-items: center; gap: 18px; text-align: center; }

/* ---------------------------------------------------------------- Blog */

.hv-page-blog .hv-h1 { font-size: 44px; }
.hv-page-blog__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; }
.hv-page-blog__head .hv-lead { margin: 0; font-size: 17px; }
.hv-page .hv-page-blog__feat {
	display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 32px; align-items: center;
	padding: 0; overflow: hidden; color: var(--hv-white); text-decoration: none;
}
.hv-page-blog__feat-img { width: 100%; height: 340px; object-fit: cover; object-position: top; display: block; background: var(--hv-surface-2); }
.hv-page-blog__feat-body { padding: 32px; display: flex; flex-direction: column; gap: 14px; }
.hv-page-blog__feat-title { font-family: var(--hv-font-display); font-size: 26px; font-weight: 700; line-height: 1.2; }
.hv-page-blog__more { font-size: 15px; font-weight: 500; color: var(--hv-gold-light); }
.hv-page-blog__feat:hover .hv-page-blog__more { color: var(--hv-white); }
.hv-page-blog__meta { font-size: 13px; color: var(--hv-text-muted); }
.hv-page-blog__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.hv-page .hv-page-blog__card { display: flex; flex-direction: column; gap: 12px; color: var(--hv-white); text-decoration: none; }
.hv-page-blog__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; border-radius: var(--hv-radius-md); border: 1px solid var(--hv-line); background: var(--hv-surface-2); box-sizing: border-box; }
.hv-page-blog__title { font-family: var(--hv-font-display); font-size: 17px; font-weight: 700; line-height: 1.3; }
.hv-page .hv-page-blog__card:hover .hv-page-blog__title { color: var(--hv-gold-light); }
.hv-page-blog__search {
	display: flex; align-items: center; width: min(360px, 100%); height: 48px; box-sizing: border-box;
	border: 1px solid var(--hv-gold); border-radius: 999px; background: var(--hv-surface); transition: width 0.25s ease;
}
.hv-page-blog__search input {
	flex: 1; min-width: 0; height: 100%; padding: 0 0 0 20px; border: 0; background: transparent;
	color: var(--hv-white); font: 400 15px var(--hv-font-body); outline: 0;
}
.hv-page-blog__search input::placeholder { color: var(--hv-text-dim); }
.hv-page-blog__search input::-webkit-search-cancel-button { filter: grayscale(1) brightness(1.6); }
.hv-page-blog__search button {
	height: 46px; min-width: 46px; padding: 0 16px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; gap: 10px;
	border: 0; border-radius: 999px; background: transparent; color: var(--hv-white); cursor: pointer;
	font-family: var(--hv-font-display); font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
}
.hv-page-blog__search:focus-within { box-shadow: 0 0 0 2px var(--hv-gold-light); }
.hv-page-blog__search-label { display: none; }
/* With JS (pages.js): closed, the form is a "Search" button; it opens into the field on click. */
.hv-page-blog__search.is-collapsible:not(.is-open) { width: 148px; border-color: var(--hv-line-strong); }
.hv-page-blog__search.is-collapsible:not(.is-open):hover { border-color: var(--hv-gold); }
.hv-page-blog__search.is-collapsible:not(.is-open) input { display: none; }
.hv-page-blog__search.is-collapsible:not(.is-open) button { width: 100%; }
.hv-page-blog__search.is-collapsible:not(.is-open) .hv-page-blog__search-label { display: inline; }
@media (prefers-reduced-motion: reduce) { .hv-page-blog__search { transition: none; } }
.hv-page-blog__results { margin: 0; font-size: 15px; color: var(--hv-text-muted); }
.hv-page-blog__results b { color: var(--hv-white); font-weight: 600; }

/* ---------------------------------------------------------------- Article */

.hv-page-article__inner { max-width: 768px; display: flex; flex-direction: column; gap: 24px; padding-top: 56px; padding-bottom: var(--hv-section); box-sizing: border-box; }
.hv-page > .hv-page-article__inner { padding-top: 56px; }
.hv-page-crumbs { font-size: 13px; color: var(--hv-text-muted); }
.hv-page .hv-page-crumbs a { color: var(--hv-text-muted); }
.hv-page .hv-page-crumbs a[aria-current] { color: var(--hv-text); }
.hv-page-article__title { font-family: var(--hv-font-display); font-size: 40px; font-weight: 900; line-height: 1.12; overflow-wrap: break-word; }
.hv-page-article__cover { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--hv-radius-lg); border: 1px solid var(--hv-line); display: block; }
.hv-page-article__body { gap: 0; font-size: 17px; line-height: 1.8; overflow-wrap: break-word; }
.hv-page-article__body > * { margin: 0 0 24px; }
.hv-page-article__body > *:last-child { margin-bottom: 0; }
.hv-page-article__body > p:first-child { font-size: 18px; }
.hv-page-article__body h2 { margin-top: 16px; font-family: var(--hv-font-display); font-size: 24px; font-weight: 700; line-height: 1.3; color: var(--hv-white); }
.hv-page-article__body h3, .hv-page-article__body h4 { margin-top: 8px; font-family: var(--hv-font-display); font-size: 19px; font-weight: 700; line-height: 1.35; color: var(--hv-white); }
.hv-page-article__body a { text-decoration: underline; text-underline-offset: 3px; }
.hv-page-article__body blockquote { margin: 8px 0 24px; padding: 4px 0 4px 20px; border-left: 3px solid var(--hv-gold); font-size: 19px; line-height: 1.6; color: var(--hv-white); font-style: italic; }
.hv-page-article__body img, .hv-page-article__body video, .hv-page-article__body iframe { max-width: 100%; height: auto; border-radius: var(--hv-radius-md); }
.hv-page-article__body iframe { aspect-ratio: 16 / 9; width: 100%; }
.hv-page-article__body figure { max-width: 100%; }
.hv-page-article__body figcaption, .hv-page-article__body .wp-caption-text { font-size: 13px; color: var(--hv-text-muted); text-align: center; }
.hv-page-article__body ul, .hv-page-article__body ol { padding-left: 22px; }
.hv-page-article__body li + li { margin-top: 6px; }
.hv-page-article__body table { width: 100%; border-collapse: collapse; font-size: 15px; display: block; overflow-x: auto; }
.hv-page-article__body th, .hv-page-article__body td { padding: 8px 10px; border: 1px solid var(--hv-line-strong); }
.hv-page-article__body [style*="color"] { color: inherit !important; }
.hv-page-product { margin: 16px 0; padding: 20px; display: flex; gap: 20px; align-items: center; border-color: rgba(191, 156, 92, 0.4); border-radius: var(--hv-radius-lg); }
.hv-page-product__img { width: 96px; height: 96px; object-fit: cover; border-radius: 10px; flex-shrink: 0; }
.hv-page-product__body { flex: 1; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.hv-page-product .hv-eyebrow { margin: 0; font-size: 10px; }
.hv-page-product__name { font-family: var(--hv-font-display); font-size: 16px; font-weight: 700; }
.hv-page-product__price { font-size: 14px; color: var(--hv-text-muted); }
.hv-page-product__price del { color: var(--hv-text-dim); }
.hv-page-product__price ins { text-decoration: none; }
.hv-page-article__body > .hv-page-product { margin: 16px 0 40px; line-height: 1.5; }
.hv-page-article__body .hv-page-product a { text-decoration: none; }
.hv-page-article__date { margin: 8px 0 0; display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--hv-text-muted); }
.hv-page-article__date svg { flex-shrink: 0; }

/* ---------------------------------------------------------------- Responsive */

@media (max-width: 1000px) {
	.hv-page-sitemap__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hv-page-consult__top, .hv-page-timeline, .hv-page-gallery--tall { grid-template-columns: 1fr; }
	.hv-page-consult__top { gap: 48px; }
}

@media (max-width: 900px) {
	.hv-page-about__hero, .hv-page-two, .hv-page-contact__grid, .hv-page .hv-page-blog__feat { grid-template-columns: 1fr; gap: 32px; }
	.hv-page-stats--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hv-page-stats--3, .hv-page-grid3, .hv-page-blog__grid { grid-template-columns: 1fr; }
	.hv-page-grid3--even { grid-auto-rows: auto; }
	.hv-page-gallery { grid-template-columns: 1fr; }
	.hv-page .hv-page-blog__feat { gap: 0; }
	.hv-page-blog__feat-img { height: auto; aspect-ratio: 16 / 10; }
	.hv-page-legal__nav { position: static; max-width: none; }
	.hv-page-legal__details { border: 1px solid var(--hv-line); border-radius: var(--hv-radius-md); background: var(--hv-surface); margin-bottom: 16px; }
	.hv-page-legal__details > summary {
		pointer-events: auto; cursor: pointer; display: flex; align-items: center; justify-content: space-between;
		min-height: var(--hv-tap); margin: 0; padding: 0 16px;
	}
	.hv-page-legal__details > summary::after { content: "+"; font-size: 18px; color: var(--hv-gold-light); }
	.hv-page-legal__details[open] > summary::after { content: "−"; }
	.hv-page-legal__details .hv-page-legal__toc { margin: 0; padding: 0 16px 12px; }
}

@media (max-width: 640px) {
	.hv-page > .hv-container { padding-top: 40px; }
	.hv-page .hv-h1, .hv-page-faqpage .hv-h1, .hv-page-sitemap .hv-h1, .hv-page-blog .hv-h1 { font-size: 34px; }
	.hv-page-contact .hv-h1, .hv-page-legal .hv-h1, .hv-page-article__title { font-size: 30px; }
	.hv-page .hv-h2, .hv-page-stories .hv-h2 { font-size: 24px; }
	.hv-page-consult__title { font-size: 44px; }
	.hv-page-consult__h2 { font-size: 28px; }
	.hv-page-consult__price { font-size: 44px; }
	.hv-page-consult__offer { padding: 28px 20px; }
	.hv-page-quote blockquote { font-size: 20px; }
	.hv-page-stat { padding: 20px; }
	.hv-page-stat__value, .hv-page-stats--3 .hv-page-stat__value { font-size: 30px; }
	.hv-page-story { padding: 28px 20px; }
	.hv-page-cta { padding: 36px 20px; }
	.hv-page-sitemap__cols { grid-template-columns: 1fr; }
	.hv-page-form { padding: 20px; }
	.hv-page-form .wpcf7-form { grid-template-columns: 1fr; }
	.hv-page-faq__q button { font-size: 16px; gap: 12px; }
	.hv-page-faq__topic { display: none; }
	.hv-page-faq__a { padding-right: 4px; }
	.hv-page-product { flex-wrap: wrap; }
	.hv-page-product .hv-btn { width: 100%; justify-content: center; }
	.hv-page-review__head { flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
	.hv-page .hv-page-hero__cta { animation: none; }
	.hv-page-faq__sign::after { transition: none; }
}

/* ================================================================
   Blog article — body rhythm, table of contents (Easy Table of
   Contents plugin), "Keep reading" cards. Load order vs the plugin
   CSS is not guaranteed: selectors are scoped high enough to win.
   ================================================================ */

/* Body rhythm. The body is a flex column (margins add up, no collapsing);
   .hv-page-prose p { margin: 0 } would otherwise glue paragraphs together. */
.hv-page-article__body.hv-page-prose > p { margin: 0 0 22px; }
.hv-page-article__body.hv-page-prose > p:empty { display: none; }
.hv-page-article__body > h2 { margin: 40px 0 18px; font-size: 26px; }
.hv-page-article__body > h3 { margin: 30px 0 14px; font-size: 20px; }
.hv-page-article__body > h4 { margin: 22px 0 10px; font-size: 17px; }
.hv-page-article__body > h2 + h3 { margin-top: 6px; }
.hv-page-article__body > :is(h2, h3, h4):first-child { margin-top: 0; }
.hv-page-article__body > :is(h2, h3, h4) strong { font-weight: inherit; }
.hv-page-article__body > :is(ul, ol) { margin: 4px 0 28px; padding-left: 24px; }
.hv-page-article__body li { padding-left: 4px; }
.hv-page-article__body li + li { margin-top: 10px; }
.hv-page-article__body li::marker { color: var(--hv-gold); }
.hv-page-article__body > blockquote { margin: 16px 0 32px; }
.hv-page-article__body > :is(figure, .wp-caption, .wp-block-image) { margin: 12px 0 32px; display: flex; flex-direction: column; gap: 10px; }
.hv-page-article__body > :is(figure, .wp-caption) img { display: block; }

/* Table of contents */
.hv-page-article__body div#ez-toc-container {
	display: block; width: 100%; box-sizing: border-box;
	margin: 8px 0 20px; padding: 20px 24px;
	background: var(--hv-surface) !important;
	border: 1px solid rgba(191, 156, 92, 0.28) !important;
	border-radius: var(--hv-radius-lg);
	box-shadow: none;
	color: var(--hv-text);
	font-family: var(--hv-font-body);
}
.hv-page-article__body div#ez-toc-container .ez-toc-title-container { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; }
.hv-page-article__body div#ez-toc-container p.ez-toc-title {
	display: block; margin: 0; padding: 0;
	font-family: var(--hv-font-display); font-size: 13px; font-weight: 700; line-height: 1.4;
	letter-spacing: 0.08em; text-transform: uppercase; color: var(--hv-gold);
}
.hv-page-article__body div#ez-toc-container .ez-toc-title-toggle { display: block; flex-shrink: 0; }
.hv-page-article__body div#ez-toc-container a.ez-toc-toggle {
	display: flex; align-items: center; justify-content: center; padding: 0; margin: 0;
	background: none; border: 0; box-shadow: none; text-shadow: none; filter: none;
	color: var(--hv-gold-light); text-decoration: none;
}
.hv-page-article__body div#ez-toc-container .ez-toc-js-icon-con {
	float: none; left: 0; display: flex; align-items: center; justify-content: center;
	width: var(--hv-tap); height: var(--hv-tap); box-sizing: border-box;
	border: 1px solid var(--hv-line-strong); border-radius: var(--hv-radius-sm);
	transition: border-color 0.2s ease;
}
.hv-page-article__body div#ez-toc-container a.ez-toc-toggle:hover .ez-toc-js-icon-con,
.hv-page-article__body div#ez-toc-container a.ez-toc-toggle:focus-visible .ez-toc-js-icon-con { border-color: var(--hv-gold); }
.hv-page-article__body div#ez-toc-container .ez-toc-icon-toggle-span { width: auto; height: auto; gap: 2px; }
.hv-page-article__body div#ez-toc-container .ez-toc-icon-toggle-span svg { fill: currentColor !important; color: inherit !important; }
.hv-page-article__body div#ez-toc-container nav { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--hv-line); }
.hv-page-article__body div#ez-toc-container nav ul { margin: 0; padding: 0; list-style: none; }
.hv-page-article__body div#ez-toc-container nav ul ul { margin: 2px 0 6px 6px; padding-left: 16px; border-left: 1px solid var(--hv-line-strong); }
.hv-page-article__body div#ez-toc-container nav li { margin: 0; padding: 0; line-height: 1.5; font-size: 15px; }
.hv-page-article__body div#ez-toc-container nav li::marker { content: none; }
.hv-page-article__body div#ez-toc-container nav li + li { margin-top: 0; }
.hv-page-article .hv-page-article__body div#ez-toc-container nav a,
.hv-page-article .hv-page-article__body div#ez-toc-container nav a:visited {
	display: flex; align-items: baseline; gap: 10px; padding: 7px 0;
	font-size: 15px; font-weight: 500; line-height: 1.45;
	color: var(--hv-text); text-decoration: none;
}
.hv-page-article .hv-page-article__body div#ez-toc-container nav > ul > li > a,
.hv-page-article .hv-page-article__body div#ez-toc-container nav > ul > li > a:visited { font-weight: 600; color: var(--hv-white); }
.hv-page-article .hv-page-article__body div#ez-toc-container nav a:hover,
.hv-page-article .hv-page-article__body div#ez-toc-container nav a:focus-visible { color: var(--hv-gold-light); text-decoration: none; }
.hv-page-article #ez-toc-container.ez-toc-counter nav ul li a::before {
	float: none; margin: 0; flex-shrink: 0; min-width: 2.2em;
	font-family: var(--hv-font-mono); font-size: 12px; font-weight: 500; color: var(--hv-gold);
}

/* Keep reading */
.hv-page-article__more { margin-top: 24px; padding-top: 32px; border-top: 1px solid rgba(255, 255, 255, 0.10); display: flex; flex-direction: column; gap: 24px; }
.hv-page-article__more .hv-h3 { margin: 0; font-size: 20px; }
.hv-page-article__rel { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.hv-page-article__rel li { margin: 0; min-width: 0; }
.hv-page .hv-page-article__rel .hv-page-blog__card { height: 100%; }
.hv-page .hv-page-article__rel .hv-page-blog__card:focus-visible { outline: 2px solid var(--hv-gold); outline-offset: 4px; border-radius: var(--hv-radius-md); }

@media (max-width: 640px) {
	.hv-page-article__body > h2 { margin-top: 32px; font-size: 22px; }
	.hv-page-article__body > h3 { margin-top: 24px; font-size: 18px; }
	.hv-page-article__body div#ez-toc-container { padding: 16px 16px; }
	.hv-page-article__rel { grid-template-columns: 1fr; }
}
