/* Harvey Handler Bail Bonds. Colors, type and components from Brand Guide v1.0. */

:root {
	--hh-navy: #0F1B2D;
	--hh-navy-2: #17263D;
	--hh-red: #C8202F;
	--hh-red-dark: #A3141F;
	--hh-cream: #F4EFE4;
	--hh-cream-2: #FAF7F1;
	--hh-brass: #E0B85A;
	--hh-slate: #3A4556;
	--hh-line: #E3DCCD;
	--hh-font-display: "Archivo Black", Impact, sans-serif;
	--hh-font-label: "Oswald", "Arial Narrow", sans-serif;
	--hh-font-body: "Inter", system-ui, sans-serif;
	--hh-wrap: 1280px;
	--hh-radius: 10px;
	--hh-shadow: 0 1px 2px rgba(15, 27, 45, .06), 0 8px 24px rgba(15, 27, 45, .08);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font: 400 1.0625rem/1.65 var(--hh-font-body);
	color: var(--hh-slate);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}
img, svg, iframe { max-width: 100%; }
img { height: auto; }
a { color: var(--hh-red-dark); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--hh-navy); }
:focus-visible { outline: 3px solid var(--hh-brass); outline-offset: 3px; }
h1, h2, h3, h4 { color: var(--hh-navy); margin: 0 0 .5em; line-height: 1.15; }
h1, h2 { font-family: var(--hh-font-display); font-weight: 400; text-transform: uppercase; letter-spacing: .005em; }
h3, h4 { font-family: var(--hh-font-label); font-weight: 600; letter-spacing: .02em; }
p, ul, ol { margin: 0 0 1.1em; }
strong { color: var(--hh-navy); font-weight: 700; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

.hh-wrap { width: 100%; max-width: var(--hh-wrap); margin: 0 auto; padding: 0 20px; }
.hh-narrow { max-width: 820px; }
.hh-label, .hh-eyebrow {
	font: 600 .8125rem/1.3 var(--hh-font-label);
	letter-spacing: .16em;
	text-transform: uppercase;
	margin: 0 0 .75rem;
}
.hh-icon { width: 1.15em; height: 1.15em; flex: none; vertical-align: -.2em; }

.hh-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; background: var(--hh-brass); color: var(--hh-navy); padding: 10px 16px; font-weight: 700; border-radius: 6px; }
.hh-skip:focus { top: 12px; }

/* ---------- Buttons and badges (05_Website-Elements) ---------- */
.hh-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 24px; border-radius: 8px; border: 3px solid transparent;
	font: 600 1.1875rem/1 var(--hh-font-label); letter-spacing: .06em; text-transform: uppercase;
	text-decoration: none; cursor: pointer; white-space: nowrap;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.hh-btn .hh-icon { width: 21px; height: 21px; }
.hh-btn--primary { background: var(--hh-red); color: #fff; }
.hh-btn--primary:hover, .hh-btn--primary:focus-visible { background: var(--hh-red-dark); color: #fff; }
.hh-btn--secondary { background: transparent; color: var(--hh-navy); border-color: var(--hh-navy); }
.hh-btn--secondary:hover, .hh-btn--secondary:focus-visible { background: var(--hh-navy); color: var(--hh-cream); }
.hh-btn--on-dark { background: transparent; color: var(--hh-cream); border-color: var(--hh-cream); }
.hh-btn--on-dark:hover, .hh-btn--on-dark:focus-visible { background: var(--hh-cream); color: var(--hh-navy); }
.hh-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 1.5rem 0 0; }

.hh-lock { display: block; }
.hh-badges { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.hh-badge {
	display: inline-flex; align-items: center; gap: 12px; padding: 11px 18px 11px 14px;
	border-radius: 10px; background: var(--hh-navy-2); color: var(--hh-cream);
	border: 1px solid rgba(244, 239, 228, .14);
}
.hh-badge .hh-lock { width: 28px; height: 40px; }
.hh-badge strong { display: block; color: var(--hh-cream); font: 700 1.0625rem/1.15 var(--hh-font-label); letter-spacing: .06em; text-transform: uppercase; }
.hh-badge span { display: block; color: var(--hh-brass); font: 600 .75rem/1.3 var(--hh-font-label); letter-spacing: .14em; text-transform: uppercase; }
.hh-badge--link { text-decoration: none; transition: border-color .15s; }
.hh-badge--link:hover, .hh-badge--link:focus-visible { border-color: var(--hh-brass); }

/* ---------- Top bar and header ---------- */
.hh-topbar { background: #0A1422; color: rgba(244, 239, 228, .82); font-size: .8125rem; }
.hh-topbar__inner { display: flex; gap: 28px; align-items: center; min-height: 36px; }
.hh-topbar__inner > * { display: inline-flex; gap: 7px; align-items: center; }
.hh-topbar a { color: inherit; text-decoration: none; }
.hh-topbar a:hover { color: var(--hh-cream); text-decoration: underline; }
.hh-topbar .hh-icon { color: var(--hh-brass); }
.hh-topbar__area { margin-left: auto; font-family: var(--hh-font-label); letter-spacing: .12em; text-transform: uppercase; color: var(--hh-brass); }

.hh-header { position: sticky; top: 0; z-index: 100; background: var(--hh-navy); border-bottom: 4px solid var(--hh-red); }
.hh-header__inner { display: flex; align-items: center; gap: 24px; min-height: 92px; }
.hh-header__logo { display: block; flex: none; padding: 10px 0; }
.hh-header__logo .hh-logo { width: 200px; display: block; }
.hh-header__actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.hh-header__call { min-height: 50px; padding: 0 20px; font-size: 1.125rem; }

.hh-nav { margin-left: auto; }
.hh-menu, .hh-menu ul { list-style: none; margin: 0; padding: 0; }
.hh-menu { display: flex; align-items: center; gap: 2px; }
.hh-menu > li { position: relative; display: flex; align-items: center; }
.hh-menu > li > a {
	display: block; padding: 12px 10px; color: var(--hh-cream); text-decoration: none; white-space: nowrap;
	font: 500 1rem/1 var(--hh-font-label); letter-spacing: .07em; text-transform: uppercase;
}
.hh-menu > li > a:hover, .hh-menu > li.current-menu-item > a, .hh-menu > li.current-menu-ancestor > a, .hh-menu > li.current-page-ancestor > a { color: var(--hh-brass); }
.hh-subtoggle { display: none; background: none; border: 0; color: var(--hh-cream); padding: 6px; cursor: pointer; }
.hh-menu .sub-menu {
	position: absolute; top: 100%; left: 0; min-width: 270px; padding: 10px;
	background: #fff; border-radius: 0 0 var(--hh-radius) var(--hh-radius); border-top: 4px solid var(--hh-red);
	box-shadow: var(--hh-shadow); opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
.hh-menu > li:hover > .sub-menu, .hh-menu > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.hh-menu .sub-menu a { display: block; padding: 9px 12px; border-radius: 6px; color: var(--hh-navy); text-decoration: none; font-weight: 600; font-size: .9375rem; }
.hh-menu .sub-menu a:hover, .hh-menu .sub-menu .current-menu-item > a { background: var(--hh-cream); color: var(--hh-red-dark); }

.hh-menu-toggle {
	display: none; align-items: center; gap: 8px; min-height: 48px; padding: 0 14px;
	background: transparent; color: var(--hh-cream); border: 2px solid rgba(244, 239, 228, .4); border-radius: 8px;
	font: 600 1rem/1 var(--hh-font-label); letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
}
.hh-menu-toggle .hh-icon--close { display: none; }
.hh-menu-open .hh-menu-toggle .hh-icon--close { display: block; }
.hh-menu-open .hh-menu-toggle .hh-icon--menu { display: none; }

@media (max-width: 1320px) {
	.hh-header__call span { font-size: 1rem; }
	.hh-menu > li > a { padding: 12px 7px; font-size: .9375rem; letter-spacing: .05em; }
}

@media (max-width: 1199px) {
	.hh-topbar__area { display: none; }
	.hh-menu-toggle { display: inline-flex; }
	.hh-nav {
		position: fixed; inset: var(--hh-nav-top, 132px) 0 0 0; z-index: 99; margin: 0;
		background: var(--hh-navy); overflow-y: auto; padding: 8px 20px 120px;
		display: none;
	}
	.hh-menu-open .hh-nav { display: block; }
	.hh-menu-open { overflow: hidden; }
	.hh-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.hh-menu > li { flex-wrap: wrap; border-bottom: 1px solid rgba(244, 239, 228, .12); }
	.hh-menu > li > a { flex: 1; padding: 18px 4px; font-size: 1.125rem; }
	.hh-subtoggle { display: inline-flex; padding: 12px; }
	.hh-subtoggle .hh-icon { width: 24px; height: 24px; transition: transform .15s; }
	.hh-subtoggle[aria-expanded="true"] .hh-icon { transform: rotate(180deg); }
	.hh-menu .sub-menu {
		position: static; flex-basis: 100%; display: none; min-width: 0; padding: 0 0 12px 12px;
		background: none; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none;
	}
	.hh-menu .sub-menu.is-open { display: block; }
	.hh-menu .sub-menu a { color: var(--hh-cream); padding: 11px 12px; font-weight: 400; font-size: 1rem; }
	.hh-menu .sub-menu a:hover, .hh-menu .sub-menu .current-menu-item > a { background: var(--hh-navy-2); color: var(--hh-brass); }
}

@media (max-width: 767px) {
	.hh-topbar { display: none; }
	.hh-header__inner { min-height: 72px; gap: 12px; }
	.hh-header__logo .hh-logo { width: 180px; }
	.hh-header__call { display: none; }
	.hh-menu-toggle span { display: none; }
	html { scroll-padding-top: 84px; }
}

/* ---------- Page head and layout ---------- */
.hh-pagehead {
	background: var(--hh-navy) radial-gradient(1200px 300px at 85% -40%, rgba(224, 184, 90, .14), transparent 60%);
	color: var(--hh-cream); padding: 30px 0 46px;
}
.hh-pagehead h1 { color: var(--hh-cream); font-size: clamp(1.75rem, 1.1rem + 2.6vw, 3rem); max-width: 22ch; margin: 0; text-wrap: balance; }
.hh-crumbs ol { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 8px; font: 500 .8125rem/1.4 var(--hh-font-label); letter-spacing: .1em; text-transform: uppercase; }
.hh-crumbs li { color: var(--hh-brass); }
.hh-crumbs li + li::before { content: "/"; color: rgba(244, 239, 228, .4); margin-right: 8px; }
.hh-crumbs a { color: rgba(244, 239, 228, .82); text-decoration: none; }
.hh-crumbs a:hover { color: var(--hh-cream); text-decoration: underline; }

/* Inner pages: "On this page" left, content, call card right. The side
   columns stretch to the content's height, so their sticky panels follow the
   reader and stop at the end of the content, before the footer. */
.hh-layout {
	display: grid; grid-template-columns: 240px minmax(0, 1fr) 300px; gap: 44px;
	padding-top: 48px; padding-bottom: 72px; align-items: stretch;
}
.hh-layout--notoc { grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; }
.hh-tocwrap, .hh-aside { min-width: 0; }
.hh-tocwrap .hh-toc { position: sticky; top: 124px; max-height: calc(100vh - 148px); overflow-y: auto; overscroll-behavior: contain; }
/* --hh-aside-top is set by site.js: 124px when the whole card fits under the
   header, otherwise a smaller (negative) value so the card pins by its bottom
   edge and the form is never cut off. */
.hh-aside__sticky { position: sticky; top: var(--hh-aside-top, 124px); }
@media (max-width: 1199px) {
	.hh-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 40px; }
	.hh-layout--notoc { grid-template-columns: minmax(0, 1fr); }
	/* No room for a third column: the cards sit under the article instead. */
	.hh-aside { grid-column: -2 / -1; }
	.hh-aside__sticky { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
	.hh-aside__sticky .hh-sideformcard { margin-top: 0; }
}
@media (max-width: 1023px) {
	.hh-layout { grid-template-columns: 1fr; gap: 32px; padding-top: 32px; }
	.hh-tocwrap { display: none; }
	.hh-aside { grid-column: auto; }
	/* Phones already have the closing call block and the sticky call bar. */
	.hh-aside__sticky { display: block; }
	.hh-sidecard { display: none; }
}

/* Sidebar: call card (navy), then a separate call-back form card (cream). */
.hh-sidecard {
	background: var(--hh-navy) radial-gradient(360px 200px at 100% 0, rgba(200, 32, 47, .25), transparent 70%);
	color: rgba(244, 239, 228, .88); border-radius: var(--hh-radius); border-top: 4px solid var(--hh-red);
	box-shadow: var(--hh-shadow); padding: 24px 22px 22px; font-size: .9688rem;
}
.hh-sidecard__mark { width: 30px; height: 44px; margin-bottom: 12px; }
.hh-sidecard__title { font: 400 1.1875rem/1.2 var(--hh-font-display); text-transform: uppercase; color: var(--hh-cream); margin-bottom: .45em; }
.hh-sidecard .hh-btn { width: 100%; padding: 0 12px; font-size: 1.125rem; }
.hh-sidecard__hours { display: flex; gap: 8px; align-items: center; margin: 14px 0 0; font-size: .875rem; color: var(--hh-brass); font-weight: 600; }
.hh-sideformcard {
	margin-top: 20px; background: var(--hh-cream); border: 1px solid var(--hh-line); border-top: 4px solid var(--hh-navy);
	border-radius: var(--hh-radius); box-shadow: var(--hh-shadow); padding: 22px 22px 20px;
}
.hh-sideformcard__title { font: 400 1.125rem/1.2 var(--hh-font-display); text-transform: uppercase; color: var(--hh-navy); margin: 0 0 .3em; }
.hh-sideformcard__intro { font-size: .875rem; margin: 0 0 14px; }

/* Compact form fields for the sidebar. */
.hh-sideform p { margin: 0 0 12px; }
.hh-sideform label { display: block; font-weight: 600; color: var(--hh-navy); margin-bottom: 5px; font-size: .875rem; }
.hh-sideform input:not([type="submit"]) {
	width: 100%; min-height: 46px; padding: 10px 12px; font: inherit; font-size: 1rem; color: var(--hh-navy);
	background: #fff; border: 2px solid #CFC6B4; border-radius: 8px;
}
.hh-sideform input:focus { border-color: var(--hh-navy); outline: 3px solid var(--hh-brass); outline-offset: 1px; }
.hh-sideform input.hh-btn {
	width: 100%; min-height: 50px; margin-top: 4px; border: 3px solid var(--hh-navy); border-radius: 8px; cursor: pointer;
	background: var(--hh-navy); color: var(--hh-cream); font: 600 1.0625rem/1 var(--hh-font-label); letter-spacing: .06em; text-transform: uppercase;
}
.hh-sideform input.hh-btn:hover, .hh-sideform input.hh-btn:focus-visible { background: transparent; color: var(--hh-navy); }
.hh-sideform .wpcf7-form-control-wrap { display: block; }
.hh-sideform .hidden-fields-container { display: none; }
.hh-sideform .screen-reader-response { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.hh-sideform .wpcf7-not-valid { border-color: var(--hh-red); }
.hh-sideform .wpcf7-not-valid-tip { display: block; margin-top: 4px; color: var(--hh-red-dark); font-size: .8125rem; font-weight: 600; }
.hh-sideform .wpcf7-response-output { margin: 4px 0 0; padding: 10px 12px; border-left: 4px solid var(--hh-red); background: #FBE9EA; color: var(--hh-red-dark); font-size: .875rem; font-weight: 600; }
.hh-sideform form.init .wpcf7-response-output, .hh-sideform form.submitting .wpcf7-response-output, .hh-sideform form.sent .wpcf7-response-output { display: none; }
.hh-sideform .wpcf7-spinner { display: none; }
.hh-sideform form.submitting .wpcf7-submit { opacity: .6; cursor: wait; }
.hh-toc { background: var(--hh-cream-2); border: 1px solid var(--hh-line); border-top: 4px solid var(--hh-navy); border-radius: var(--hh-radius); padding: 20px 18px 18px; }
.hh-toc .hh-label { color: var(--hh-red-dark); }
.hh-toc ol { list-style: none; margin: 0; padding: 0; font-size: .9063rem; line-height: 1.35; display: grid; gap: 2px; }
.hh-toc a { display: block; padding: 7px 10px; border-left: 3px solid transparent; border-radius: 0 6px 6px 0; color: var(--hh-navy); text-decoration: none; }
.hh-toc a:hover { color: var(--hh-red-dark); background: var(--hh-cream); }
.hh-toc a.is-active { border-left-color: var(--hh-red); background: #fff; color: var(--hh-red-dark); font-weight: 600; }

/* ---------- Page content ---------- */
.hh-content { min-width: 0; }
.hh-content > .hh-intro, .hh-content > p:first-child { font-size: 1.1875rem; color: var(--hh-navy); }
.hh-intro p { font-size: 1.1875rem; line-height: 1.6; color: var(--hh-navy); }
.hh-section { margin-top: 2.75rem; }
.hh-section h2 { font-size: clamp(1.375rem, 1.1rem + 1vw, 1.875rem); padding-top: .9rem; border-top: 3px solid var(--hh-red); display: inline-block; }
.hh-section h3 { font-size: 1.375rem; margin-top: 1.6em; }
.hh-content ul:not([class]), .hh-content ol:not([class]) { padding-left: 1.3em; }
.hh-content li { margin-bottom: .45em; }
.hh-content li::marker { color: var(--hh-red); }

.hh-steps { list-style: none; counter-reset: step; padding: 0; display: grid; gap: 14px; }
.hh-steps > li {
	counter-increment: step; position: relative; padding: 20px 22px 20px 78px; margin: 0;
	background: var(--hh-cream-2); border: 1px solid var(--hh-line); border-radius: var(--hh-radius);
}
.hh-steps > li::before {
	content: counter(step); position: absolute; left: 20px; top: 18px; width: 40px; height: 40px;
	display: grid; place-items: center; border-radius: 50%; background: var(--hh-navy); color: var(--hh-brass);
	font: 700 1.125rem/1 var(--hh-font-label);
}

.hh-linkcards { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.hh-linkcards > li {
	margin: 0; padding: 20px 22px; background: #fff; border: 1px solid var(--hh-line); border-left: 4px solid var(--hh-red);
	border-radius: var(--hh-radius); font-size: .9688rem; transition: box-shadow .15s, transform .15s;
}
.hh-linkcards > li:hover { box-shadow: var(--hh-shadow); transform: translateY(-2px); }
.hh-linkcards > li > a:first-child {
	display: block; margin-bottom: 4px; color: var(--hh-navy); text-decoration: none;
	font: 600 1.1875rem/1.25 var(--hh-font-label); letter-spacing: .02em;
}
.hh-linkcards > li > a:first-child::after { content: " \2192"; color: var(--hh-red); }
.hh-linkcards > li > a:first-child:hover { color: var(--hh-red-dark); }

.hh-table { overflow-x: auto; margin: 0 0 1.4em; border: 1px solid var(--hh-line); border-radius: var(--hh-radius); }
.hh-table table { width: 100%; border-collapse: collapse; font-size: .9375rem; min-width: 520px; }
.hh-table th { background: var(--hh-navy); color: var(--hh-cream); text-align: left; font: 600 .875rem/1.3 var(--hh-font-label); letter-spacing: .08em; text-transform: uppercase; padding: 12px 14px; }
.hh-table td { padding: 12px 14px; border-top: 1px solid var(--hh-line); vertical-align: top; }
.hh-table tr:nth-child(even) td { background: var(--hh-cream-2); }

.hh-callblock {
	background: var(--hh-navy) radial-gradient(600px 240px at 100% 0, rgba(200, 32, 47, .22), transparent 70%);
	color: rgba(244, 239, 228, .9); border-radius: 14px; padding: 34px 34px 32px; margin-top: 3.25rem;
}
.hh-callblock h2 { color: var(--hh-cream); border-top-color: var(--hh-brass); }
.hh-callblock strong { color: var(--hh-cream); }
.hh-callblock a:not(.hh-btn) { color: var(--hh-brass); }
.hh-callblock .hh-actions { margin-top: 1.25rem; }

.hh-faq { margin-top: 2.75rem; }
.hh-faq details { border: 1px solid var(--hh-line); border-radius: var(--hh-radius); background: #fff; margin-bottom: 10px; }
.hh-faq details[open] { background: var(--hh-cream-2); }
.hh-faq summary {
	cursor: pointer; list-style: none; padding: 18px 54px 18px 20px; position: relative;
	color: var(--hh-navy); font: 600 1.125rem/1.35 var(--hh-font-label); letter-spacing: .02em;
}
.hh-faq summary::-webkit-details-marker { display: none; }
.hh-faq summary::after {
	content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%);
	width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%;
	background: var(--hh-navy); color: var(--hh-cream); font: 700 1.125rem/1 var(--hh-font-body);
}
.hh-faq details[open] summary::after { content: "\2212"; background: var(--hh-red); }
.hh-faq .hh-faq__a { padding: 0 20px 6px; }

.hh-portrait { float: right; width: 300px; margin: 4px 0 20px 32px; }
.hh-portrait img { border-radius: var(--hh-radius); display: block; box-shadow: var(--hh-shadow); }
.hh-portrait figcaption { font: 600 .8125rem/1.4 var(--hh-font-label); letter-spacing: .12em; text-transform: uppercase; color: var(--hh-navy); margin-top: 10px; }
@media (max-width: 640px) { .hh-portrait { float: none; width: 100%; max-width: 360px; margin: 0 0 24px; } }

.hh-note { background: var(--hh-cream); border-left: 4px solid var(--hh-brass); padding: 18px 20px; border-radius: 0 var(--hh-radius) var(--hh-radius) 0; }
.hh-note p:last-child { margin: 0; }

/* Office card and map */
.hh-office {
	display: flex; gap: 22px; align-items: flex-start; margin: 0 0 1.4em; padding: 24px;
	background: var(--hh-cream); border-radius: 14px; border: 1px solid var(--hh-line);
}
.hh-office__mark { flex: none; width: 64px; padding: 12px 14px; background: var(--hh-navy); border-radius: 12px; }
.hh-office__name { font: 400 1.25rem/1.2 var(--hh-font-display); text-transform: uppercase; color: var(--hh-navy); margin-bottom: .6em; }
.hh-office__name span { display: block; font: 600 .8125rem/1.4 var(--hh-font-label); letter-spacing: .14em; color: var(--hh-red-dark); margin-top: 4px; }
.hh-office__list { list-style: none; padding: 0; margin: 0 0 14px; display: grid; gap: 8px; }
.hh-office__list li { display: flex; gap: 10px; margin: 0; color: var(--hh-navy); }
.hh-office__list .hh-icon { color: var(--hh-red); margin-top: 4px; }
.hh-office__list a { color: var(--hh-navy); font-weight: 700; }
.hh-office__links { display: flex; gap: 18px; margin: 0; font-weight: 600; }
.hh-map { aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; border: 1px solid var(--hh-line); margin: 0 0 1.4em; background: var(--hh-cream); }
.hh-map iframe { width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 480px) { .hh-office { flex-direction: column; } .hh-map { aspect-ratio: 4 / 3; } }

/* ---------- Forms ---------- */
.hh-form { background: var(--hh-cream-2); border: 1px solid var(--hh-line); border-radius: 14px; padding: 26px; margin: 0 0 1.4em; }
.hh-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
@media (max-width: 600px) { .hh-form__grid { grid-template-columns: 1fr; } }
.hh-form label { display: block; font-weight: 600; color: var(--hh-navy); margin-bottom: 6px; font-size: .9688rem; }
.hh-form input, .hh-form textarea, .hh-search input {
	width: 100%; min-height: 50px; padding: 12px 14px; font: inherit; font-size: 1rem; color: var(--hh-navy);
	background: #fff; border: 2px solid #CFC6B4; border-radius: 8px;
}
.hh-form input:focus, .hh-form textarea:focus, .hh-search input:focus { border-color: var(--hh-navy); outline: 3px solid var(--hh-brass); outline-offset: 1px; }
.hh-optional { font-weight: 400; color: var(--hh-slate); }
.hh-form__fine { font-size: .875rem; margin: 0; }

/* Contact Form 7 markup (its own stylesheet is not loaded) */
.hh-form .wpcf7-form-control-wrap { display: block; }
.hh-form .hidden-fields-container { display: none; }
.hh-form .screen-reader-response { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.hh-form .wpcf7-not-valid { border-color: var(--hh-red); }
.hh-form .wpcf7-not-valid-tip { display: block; margin-top: 6px; color: var(--hh-red-dark); font-size: .875rem; font-weight: 600; }
.hh-form .wpcf7-response-output { margin: 0 0 1em; padding: 12px 14px; border-left: 4px solid var(--hh-brass); background: var(--hh-cream); color: var(--hh-navy); font-weight: 600; }
.hh-form form.init .wpcf7-response-output, .hh-form form.resetting .wpcf7-response-output, .hh-form form.submitting .wpcf7-response-output { display: none; }
.hh-form form.invalid .wpcf7-response-output, .hh-form form.failed .wpcf7-response-output, .hh-form form.spam .wpcf7-response-output, .hh-form form.aborted .wpcf7-response-output { border-left-color: var(--hh-red); background: #FBE9EA; color: var(--hh-red-dark); }
.hh-form .wpcf7-spinner { display: none; }
.hh-form form.submitting .wpcf7-submit { opacity: .6; cursor: wait; }
.hh-form input.hh-btn {
	width: auto; min-height: 52px; padding: 0 26px; border: 3px solid var(--hh-navy); border-radius: 8px;
	background: transparent; color: var(--hh-navy); font: 600 1.1875rem/1 var(--hh-font-label); letter-spacing: .06em; text-transform: uppercase;
}
.hh-form input.hh-btn:hover, .hh-form input.hh-btn:focus-visible { background: var(--hh-navy); color: var(--hh-cream); }
.hh-search { display: flex; gap: 10px; margin: 0 0 1.4em; }

/* ---------- Home ---------- */
.hh-hero {
	background:
		radial-gradient(900px 420px at 92% 10%, rgba(200, 32, 47, .20), transparent 60%),
		radial-gradient(700px 380px at 0% 100%, rgba(224, 184, 90, .10), transparent 60%),
		var(--hh-navy);
	color: rgba(244, 239, 228, .9); padding: 64px 0 76px; overflow: hidden;
}
.hh-hero__inner { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .8fr); gap: 56px; align-items: center; }
.hh-eyebrow { color: var(--hh-brass); }
.hh-hero h1 { color: var(--hh-cream); font-size: clamp(2.125rem, 1.2rem + 3.6vw, 3.75rem); line-height: 1.04; margin-bottom: .45em; text-wrap: balance; }
.hh-hero__lead p { font-size: 1.1875rem; line-height: 1.6; max-width: 60ch; margin-bottom: .8em; }
.hh-hero__since p { font: 600 1rem/1.4 var(--hh-font-label); letter-spacing: .12em; text-transform: uppercase; color: var(--hh-brass); margin: 0; }
.hh-hero__card {
	position: relative; background: var(--hh-cream); color: var(--hh-navy); border-radius: 16px;
	padding: 34px 32px 30px; box-shadow: 0 30px 60px rgba(0, 0, 0, .35); border-top: 6px solid var(--hh-red);
}
.hh-hero__mark { width: 58px; height: 82px; padding: 0; margin-bottom: 18px; }
.hh-hero__mark path:nth-child(2) { fill: var(--hh-navy); }
.hh-hero__mark path:nth-child(3) { fill: var(--hh-cream); }
.hh-hero__card .hh-label { color: var(--hh-red-dark); }
.hh-hero__addr { font: 400 1.5rem/1.2 var(--hh-font-display); text-transform: uppercase; }
.hh-hero__card ul { list-style: none; padding: 18px 0 0; margin: 0; border-top: 1px solid var(--hh-line); display: grid; gap: 10px; }
.hh-hero__card li { display: flex; gap: 10px; align-items: center; font-weight: 600; }
.hh-hero__card .hh-icon { color: var(--hh-red); }
.hh-hero__card a { color: var(--hh-navy); }
@media (max-width: 960px) {
	.hh-hero { padding: 44px 0 52px; }
	.hh-hero__inner { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 480px) {
	.hh-hero .hh-actions .hh-btn { width: 100%; }
}

.hh-home__intro { padding: 48px 0 8px; }
.hh-home__intro p { font-size: 1.1875rem; color: var(--hh-navy); }
.hh-home__sections { padding-bottom: 72px; }
.hh-home__sections > .hh-section {
	max-width: var(--hh-wrap); margin: 0 auto; padding: 56px 20px 8px;
}
.hh-home__sections > .hh-section > *:not(.hh-linkcards):not(.hh-steps):not(.hh-office) { max-width: 820px; }
.hh-home__sections > .hh-section.hh-callblock { margin: 56px auto 0; max-width: calc(var(--hh-wrap) - 40px); padding: 48px; }
.hh-home__sections .hh-steps { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.hh-home__sections .hh-steps > li { padding: 70px 22px 22px; }
.hh-home__sections .hh-steps > li::before { left: 22px; top: 20px; }
@media (max-width: 767px) { .hh-home__sections > .hh-section.hh-callblock { padding: 30px 24px; margin: 40px 20px 0; } }

/* ---------- Footer ---------- */
.hh-footer { background: var(--hh-navy); color: rgba(244, 239, 228, .82); border-top: 4px solid var(--hh-red); font-size: .9688rem; }
.hh-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-top: 56px; padding-bottom: 44px; }
.hh-footer .hh-logo { width: 220px; display: block; margin-bottom: 22px; }
.hh-footer address { font-style: normal; line-height: 1.7; }
.hh-footer address strong { color: var(--hh-cream); }
.hh-footer__phone { display: inline-block; margin-top: 6px; font: 600 1.375rem/1.2 var(--hh-font-label); letter-spacing: .04em; color: var(--hh-cream) !important; text-decoration: none; }
.hh-footer__hours { display: flex; gap: 8px; align-items: center; margin: 12px 0; color: var(--hh-brass); font-weight: 600; }
.hh-footer__links { display: flex; gap: 18px; }
.hh-footer a { color: rgba(244, 239, 228, .82); }
.social-media-links { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0 0; padding: 0; }
.social-media-links a {
	display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
	background: var(--hh-navy-2); border: 1px solid rgba(244, 239, 228, .2); color: var(--hh-cream) !important;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.social-media-links a:hover, .social-media-links a:focus-visible { background: var(--hh-cream); border-color: var(--hh-cream); color: var(--hh-navy) !important; }
.hh-social__icon { width: 20px; height: 20px; display: block; }
.hh-footer a:hover { color: var(--hh-cream); }
.hh-footer .hh-label { color: var(--hh-brass); }
.hh-footer__col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.hh-footer__col a { text-decoration: none; }
.hh-footer__col a:hover { text-decoration: underline; }
.hh-footer__bottom { border-top: 1px solid rgba(244, 239, 228, .12); font-size: .8438rem; }
.hh-footer__bottom-inner { display: flex; flex-wrap: wrap; gap: 8px 28px; align-items: center; justify-content: space-between; padding-top: 18px; padding-bottom: 18px; }
.hh-footer__bottom p { margin: 0; }
.hh-legal { list-style: none; display: flex; gap: 20px; margin: 0; padding: 0; }
@media (max-width: 960px) { .hh-footer__grid { grid-template-columns: 1fr 1fr; } .hh-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .hh-footer__grid { grid-template-columns: 1fr; gap: 30px; } }

/* ---------- Mobile sticky call bar (under 768px) ---------- */
.hh-callbar { display: none; }
@media (max-width: 767px) {
	.hh-callbar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 2147483000;
		display: flex; align-items: center; gap: 12px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
		background: var(--hh-navy); border-top: 4px solid var(--hh-red);
	}
	.hh-callbar__text { display: flex; align-items: center; gap: 10px; font-family: var(--hh-font-label); line-height: 1.15; }
	.hh-callbar__text .hh-lock { width: 24px; height: 34px; }
	.hh-callbar__text strong { display: block; color: var(--hh-cream); font-size: 1rem; letter-spacing: .06em; text-transform: uppercase; }
	.hh-callbar__text span { display: block; color: var(--hh-brass); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
	.hh-callbar .hh-btn { flex: 1; padding: 0 12px; font-size: 1.0625rem; }
	body { padding-bottom: 82px; }
}
@media (max-width: 360px) { .hh-callbar__text { display: none; } }

/* ---------- Harvey Handler photo (background removed) ---------- */
.hh-harvey { position: relative; margin: 0; }
.hh-harvey::before {
	content: ""; position: absolute; left: 6%; right: 6%; bottom: 0; aspect-ratio: 1; z-index: 0;
	border-radius: 50%; border: 2px solid rgba(224, 184, 90, .45);
	background: radial-gradient(circle at 50% 42%, rgba(224, 184, 90, .42), rgba(224, 184, 90, .1) 58%, transparent 72%);
}
.hh-harvey img { position: relative; z-index: 1; display: block; width: 100%; height: auto; }
.hh-harvey { display: none; }

/* Home: photo on the right of the closing call block (desktop only). The
   selector matches the strength of the home call block's own padding rule. */
@media (min-width: 1024px) {
	.hh-harvey { display: block; }
	.hh-home__sections > .hh-section.hh-callblock { position: relative; padding-right: 380px; }
	.hh-callblock__photo { position: absolute; right: 32px; bottom: 0; width: 300px; }
}
@media (min-width: 1280px) {
	.hh-home__sections > .hh-section.hh-callblock { padding-right: 470px; }
	.hh-callblock__photo { right: 48px; width: 360px; }
}

/* Contact form: name plus phone or email. */
.hh-form__hint { font-size: .9375rem; color: var(--hh-navy); font-weight: 600; margin: 0 0 14px; }
.hh-form__grid > p:last-child:nth-child(odd) { grid-column: 1 / -1; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}
