/**
Theme Name: H&A Law
Theme URI: https://callhollan.com
Author: Hollan & Aguiar
Description: Thin Astra child theme for callhollan.com. Owns the brand tokens, global header and footer, and presentation code.
Version: 0.9.6
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ha-law
Template: astra
*/

/*
 * Brand tokens. Authority: brand/BRAND-GUIDE.md (component atlas palette) and
 * decisions/2026-10-04-homepage-rebuild-direction.md (the homepage is all black).
 * Names are ha-* on purpose.
 *
 * Roles:
 *   The homepage and the global header and footer are black, with charcoal cards
 *   split by white hairlines. Copy on black is white at full opacity.
 *   Terracotta is the action color: buttons. Rust lifts to #C9573A on black for
 *   accents (case types, links on hover, the footer tagline).
 *   Navy is not used on the homepage. Gray body text is forbidden.
 */
:root {
  --ha-navy: #0C182B;
  --ha-rust: #8E2815;
  --ha-terracotta: #A8321A;
  --ha-check-green: #2F6B45;
  --ha-gunmetal: #383E43;
  --ha-black: #0F1216;
  --ha-white: #FFFFFF;

  --font-heading: "Playfair Display", Georgia, "Times New Roman", serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-block: "Barlow", "DIN 2014", "Arial Narrow", system-ui, sans-serif;
  --font-pt: "PT Serif", Georgia, serif;
  --font-nobile: "Nobile", system-ui, sans-serif;
  --font-kedebideri: "Kedebideri", Georgia, serif;

  --color-accent: var(--ha-rust);
  --color-check: var(--ha-check-green);
  --color-border: rgba(12, 24, 43, 0.16);

  --ha-rust-lift: #C9573A;
  --ha-rust-light: #E0866C; /* sublines, step numbers, link and nav hover on black: 7.8:1 on #000000 */
  --ha-link-hover: var(--ha-rust-light);
  --ha-rust-card: #D4623F; /* labels on charcoal cards: 5.02:1 on #0F1216 */
  --ha-charcoal: #0F1216; /* cards on black (Claude Design parity, 2026-10-08) */
  --ha-pure-black: #000000;
  --ha-line-on-dark: rgba(255, 255, 255, 0.14);
  --ha-hairline: rgba(255, 255, 255, 0.16);
  --ha-card-line: rgba(255, 255, 255, 0.12); /* card borders on black */
  --ha-band-line: rgba(255, 255, 255, 0.08); /* dividers between black bands */
  --ha-radius-card: 4px;
  --ha-radius-control: 9px;
  --ha-frame: 1200px;
  --ha-gutter: clamp(1rem, 4vw, 3rem);
  --ha-band: clamp(4rem, 9vw, 7rem);
  --ha-ease: cubic-bezier(.2, 0, .2, 1);
  --ha-header-h: 84px;
}

/*
 * Fonts are declared once, in theme.json, so the block editor and the front end
 * share one family list. Do not re-add @font-face blocks here.
 *   Playfair Display 700 and 700 italic: H1 and the footer tagline. Playfair Display 600: H2, H3.
 *   Inter 400, 500, and 600: body, navigation, buttons, and labels.
 *   Barlow 700: the Commercial Vehicle Accidents row and the Dark Vehicle Row pattern.
 * Astra's fonts.googleapis.com request is switched off in functions.php.
 */

/* Black-base patterns: canonical implementation shared with the local preview. */
.ha-pattern { background:var(--ha-black); color:var(--ha-white); padding:clamp(3rem,7vw,7rem) 24px; margin:0; font-family:var(--font-body); }
.ha-pattern *, .ha-preview * { box-sizing:border-box; }
.ha-pattern h1,.ha-pattern h2,.ha-pattern h3 { color:var(--ha-white); font-family:var(--font-heading); margin:0 0 24px; text-wrap:balance; }
.ha-pattern h1 { font-size:clamp(2.6rem,5.3vw,5.5rem); line-height:1.08; font-weight:700; }
.ha-pattern h2 { font-size:clamp(2rem,3.4vw,3.5rem); line-height:1.18; font-weight:600; }
.ha-pattern h3 { font-size:1.65rem; line-height:1.25; font-weight:600; }
.ha-pattern p { font-size:1.125rem; line-height:1.7; margin:0 0 24px; color:var(--ha-white); opacity:1; }
.ha-frame { max-width:1200px; margin-inline:auto; }
.ha-hero-layout { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.ha-hero-copy { position:relative; z-index:1; }
.ha-hero-image { margin:0; }
.ha-hero-image img { display:block; width:100%; height:clamp(320px,42vw,620px); object-fit:cover; object-position:75% center; }
.ha-pattern .wp-block-button__link { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:16px 24px; background:var(--ha-white); color:var(--ha-black); font:600 1rem var(--font-body); border-radius:0; text-decoration:none; text-transform:uppercase; }
.ha-pattern .wp-block-button__link:hover { text-decoration:underline; text-underline-offset:5px; }
.ha-pattern a:focus-visible,.ha-pattern summary:focus-visible,.ha-preview a:focus-visible,.ha-preview button:focus-visible { outline:3px solid var(--ha-white); outline-offset:6px; }
.ha-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:48px; }
.ha-card { min-width:0; }
.ha-secondary { background:var(--ha-navy); }
.ha-editorial { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
.ha-pattern summary { cursor:pointer; font-weight:600; min-height:48px; padding-block:12px; }
.ha-pattern details p { margin-top:16px; }
.ha-review { max-width:760px; text-align:center; }
.ha-lead { max-width:46rem; font-size:clamp(1.125rem,1.6vw,1.3rem) !important; }
.ha-hero h1 { font-size:clamp(1.625rem,4.15vw,3.4rem); line-height:1.12; letter-spacing:-.025em; }
.ha-h1-line { display:block; white-space:nowrap; }
@media(max-width:767px) { .ha-hero-layout,.ha-grid,.ha-editorial { grid-template-columns:1fr; gap:32px; } .ha-hero-image img { height:340px; } .ha-pattern { padding-inline:24px; } .ha-hero h1 { font-size:clamp(1.625rem,6.8vw,3.4rem); } }
@media(prefers-reduced-motion:no-preference) { .ha-motion-demo .ha-hero-copy { animation:ha-arrive .35s ease-out; } .ha-motion-demo .ha-hero-image { animation:ha-arrive .5s ease-out; } }
@keyframes ha-arrive { from { transform:translateY(8px); } to { transform:translateY(0); } }


/* ==========================================================================
   Global chrome: black header and footer with the white wordmark.
   Built from design/homepages/ha-home-rows-2026-10-04/index.html.
   ========================================================================== */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Astra's own header and footer are replaced by the brand chrome below. */
#masthead,
.site-footer,
.ast-mobile-popup-drawer { display: none !important; }

.ha-frame-w { box-sizing: border-box; width: 100%; max-width: var(--ha-frame); margin-inline: auto; padding-inline: var(--ha-gutter); }

/* Buttons: terracotta, uppercase labels, 52px tall. */
.ha-btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: .85rem 1.6rem;
  border: 1px solid var(--ha-terracotta);
  border-radius: var(--ha-radius-control);
  background: var(--ha-terracotta);
  color: var(--ha-white);
  font: 600 1rem/1.2 var(--font-body);
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .4s var(--ha-ease), border-color .4s var(--ha-ease), color .4s var(--ha-ease);
}
.ha-btn:hover,
.ha-btn:focus { background: var(--ha-rust); border-color: var(--ha-rust); color: var(--ha-white); }
/* Outlined secondary button; `btn--ghost` is the class the page content uses (MORE RESULTS). */
.ha-btn--ghost, .ha-btn.btn--ghost { background: transparent; border-color: currentColor; color: inherit; }
.ha-btn--ghost:hover, .ha-btn.btn--ghost:hover, .ha-btn.btn--ghost:focus-visible { background: var(--ha-terracotta); border-color: var(--ha-terracotta); color: var(--ha-white); }

.ha-site-header a:focus-visible,
.ha-site-footer a:focus-visible,
.ha-home a:focus-visible,
.ha-home button:focus-visible { outline: 3px solid var(--ha-white); outline-offset: 4px; }

/* Header: solid black on every page; on the front page it starts transparent
   over the hero and turns solid on scroll (js/ha-home.js toggles .is-solid). */
.ha-site-header {
  box-sizing: border-box;
  position: sticky;
  top: 0;
  z-index: 100;
  padding-top: env(safe-area-inset-top, 0px);
  border-bottom: 1px solid var(--ha-hairline);
  background: rgba(0, 0, 0, .92);
  color: var(--ha-white);
  font-family: var(--font-body);
  transition: background-color .4s var(--ha-ease), border-color .4s var(--ha-ease);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.ha-site-header--overlay { position: fixed; inset: 0 0 auto 0; border-bottom-color: transparent; background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
.ha-site-header--overlay.is-solid { border-bottom-color: var(--ha-hairline); background: rgba(0, 0, 0, .92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.admin-bar .ha-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ha-site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .ha-site-header--overlay { top: 0; } }
.ha-site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: var(--ha-header-h); }
.ha-site-header__logo { display: flex; align-items: center; min-height: 44px; min-width: 0; line-height: 0; }
.ha-site-header__logo img { display: block; width: clamp(190px, 20vw, 250px); max-width: 100%; height: auto; }
.ha-site-header__nav { display: flex; align-items: center; gap: clamp(1rem, 2vw, 2rem); }
.ha-site-header__nav a:not(.ha-btn) { color: var(--ha-white); font: 500 1rem/1 var(--font-body); text-decoration: none; padding-block: .9rem; white-space: nowrap; transition: color .3s var(--ha-ease); }
.ha-site-header__nav a:not(.ha-btn):hover,
.ha-site-header__nav a:not(.ha-btn):focus-visible { color: var(--ha-rust-light); }
.ha-site-header__nav .ha-site-header__phone { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; }
.ha-site-header__phone .ha-phone-icon { flex: none; color: var(--ha-rust-light); }
.ha-site-header__nav .ha-btn { min-height: 46px; padding: .7rem 1.15rem; font-size: .9rem; white-space: nowrap; }
.ha-site-header .ha-site-header__call { display: none; min-height: 44px; padding: .6rem 1.1rem; font-size: .9rem; white-space: nowrap; }
/* Dropdowns: About (Results, Reviews) and Resources (three guides). Black panel, 18% white
   border, a 2px rust line along the top; open on hover and on keyboard focus. */
.ha-nav { display: flex; align-items: center; gap: clamp(1rem, 2vw, 2rem); margin: 0; padding: 0; list-style: none; }
.ha-nav__item { position: relative; margin: 0; }
.ha-nav__item--menu > .ha-nav__link { display: inline-flex; align-items: center; gap: .4rem; }
.ha-nav__item--menu > .ha-nav__link::after { content: ""; width: 10px; height: 10px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .3s var(--ha-ease); }
.ha-nav__menu { position: absolute; top: 100%; left: -1.1rem; z-index: 20; min-width: 15.5rem; margin: 0; padding: .5rem 0; list-style: none; background: var(--ha-pure-black); border: 1px solid rgba(255, 255, 255, .18); border-top: 2px solid var(--ha-terracotta); border-radius: 0 0 var(--ha-radius-card) var(--ha-radius-card); box-shadow: 0 18px 40px rgba(0, 0, 0, .6); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .25s var(--ha-ease), transform .25s var(--ha-ease), visibility 0s linear .25s; }
.ha-nav__menu li { margin: 0; }
.ha-site-header__nav .ha-nav__menu a { display: flex; align-items: center; min-height: 44px; padding: .65rem 1.1rem; font-size: .975rem; }
.ha-nav__item--menu:hover > .ha-nav__menu,
.ha-nav__item--menu:focus-within > .ha-nav__menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.ha-nav__item--menu:hover > .ha-nav__link::after,
.ha-nav__item--menu:focus-within > .ha-nav__link::after { transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) { .ha-nav__menu, .ha-nav__item--menu > .ha-nav__link::after { transition: none; } }
@media (max-width: 1079px) {
  .ha-nav { display: none; }
}
@media (max-width: 760px) {
  :root { --ha-header-h: 68px; }
  .ha-site-header__nav { display: none; }
  .ha-site-header .ha-site-header__call { display: inline-flex; }
}

/* Footer */
.ha-site-footer { box-sizing: border-box; padding-block: clamp(3rem, 6vw, 4.5rem) 2rem; background: var(--ha-pure-black); border-top: 1px solid var(--ha-hairline); color: var(--ha-white); font: 400 1.0625rem/1.7 var(--font-body); }
.ha-site-footer__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr)); gap: 2rem; }
.ha-site-footer__logo { display: inline-flex; align-items: center; min-height: 44px; line-height: 0; }
.ha-site-footer__logo img { display: block; width: min(280px, 100%); height: auto; }
.ha-site-footer__address { margin: 0 0 .25rem; font-style: normal; line-height: 1.6; }
.ha-site-footer h2 { margin: 0 0 .6rem; color: var(--ha-white); font: 600 1rem/1.3 var(--font-body); letter-spacing: 0; text-transform: none; }
.ha-site-footer ul { margin: 0; padding: 0; list-style: none; }
.ha-site-footer li { margin: 0; }
.ha-site-footer a { color: var(--ha-white); }
.ha-site-footer ul a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
.ha-site-footer ul a:hover,
.ha-site-footer ul a:focus { color: var(--ha-rust-lift); }
.ha-site-footer__legal { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--ha-hairline); font-size: .9rem; }
.ha-site-footer__legal p { margin: 0 0 .5rem; }
@media (max-width: 1024px) { .ha-site-footer__grid { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; } .ha-site-footer__logo, .ha-site-footer ul a { justify-content: center; } .ha-site-footer__legal { text-align: center; } }

/* Astra's scroll-to-top control, matched to the black chrome with a 44px target.
   The homepage has none (the spec has none, and it covered copy on phones). */
#ast-scroll-top { box-sizing: border-box; width: 44px; height: 44px; line-height: 44px; border: 1px solid var(--ha-hairline); border-radius: var(--ha-radius-control); background: var(--ha-charcoal); color: var(--ha-white); }
#ast-scroll-top:hover,
#ast-scroll-top:focus { background: var(--ha-terracotta); border-color: var(--ha-terracotta); color: var(--ha-white); }
body.home #ast-scroll-top { display: none !important; }


/* ==========================================================================
   Homepage (page 6): every rule is scoped to the .ha-home wrapper group.
   Spec: design/homepages/ha-home-rows-2026-10-04/index.html. Content source:
   content/pages/homepage-blocks.html (one Custom HTML block per row).
   Motion lives in js/ha-home.js, which loads on the front page only.
   ========================================================================== */

/* WordPress and Astra layout reset: the rows are full bleed and own their spacing. */
body.home,
body.home #page,
body.home .site-content { background: var(--ha-pure-black); color: var(--ha-white); }
body.home .site-content > .ast-container,
body.home #primary,
body.home .site-main,
body.home article.page,
body.home .entry-content { width: 100%; max-width: none; margin: 0; padding: 0; }
body.home .entry-content > *,
body.home .entry-content[data-ast-blocks-layout] > .ha-home,
.ast-plain-container .entry-content > .wp-block-group.ha-home { max-width: none; width: 100%; margin: 0; padding: 0; }
.ha-home > *,
.ha-home :where(.is-layout-flow) > * { margin-block: 0; }

.ha-home { font: 400 1.0625rem/1.7 var(--font-body); color: var(--ha-white); background: var(--ha-pure-black); -webkit-font-smoothing: antialiased; }
.ha-home * { box-sizing: border-box; }
.ha-home img,
.ha-home video,
.ha-home canvas { max-width: 100%; display: block; }
.ha-home a { color: inherit; }
.ha-home a:hover { color: inherit; }
/* Astra underlines every link in single-page content (.ast-single-post .entry-content a). */
.ast-single-post .entry-content .ha-home a,
.ha-home a { text-decoration: none; }
.ha-home p { margin: 0; }
.ha-home section[id] { scroll-margin-top: var(--ha-header-h); }
.ha-home .sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ha-home .frame { width: 100%; max-width: var(--ha-frame); margin-inline: auto; padding-inline: var(--ha-gutter); }
.ha-home .band { padding-block: var(--ha-band); }
.ha-home .band--ink,
.ha-home .band--alt { background: var(--ha-pure-black); color: var(--ha-white); border-top: 1px solid var(--ha-band-line); }
.ha-home .card { background: var(--ha-charcoal); color: var(--ha-white); border: 1px solid var(--ha-card-line); border-radius: var(--ha-radius-card); }
.ha-home h1,
.ha-home h2,
.ha-home h3 { margin: 0; color: var(--ha-white); text-wrap: balance; text-transform: none; overflow-wrap: normal; word-break: normal; hyphens: manual; }
.ha-home h2 { font: 600 clamp(2rem, 4vw, 3.1rem)/1.12 var(--font-heading); letter-spacing: -.01em; }
.ha-home h3 { font: 600 clamp(1.3rem, 2vw, 1.55rem)/1.25 var(--font-heading); }
.ha-home .head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.25rem 3rem; margin-bottom: clamp(2rem, 4.5vw, 3.25rem); }
.ha-home .ha-btn:hover,
.ha-home .ha-btn:focus { color: var(--ha-white); }
/* Sublines under headings and step numbers are light rust; inline links are white,
   underlined, and turn light rust with their underline on hover (Claude Design parity). */
.ha-home .head .lede,
.ha-home .faq-split__head .lede,
.ha-home .ha-tg__lede { color: var(--ha-rust-light); }
.ha-home p a:not(.ha-btn),
.ha-home li a:not(.ha-btn),
.ha-home .faq__answer a { color: var(--ha-white); text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: 4px; transition: color .3s var(--ha-ease); }
.ha-home p a:not(.ha-btn):hover,
.ha-home li a:not(.ha-btn):hover,
.ha-home .faq__answer a:hover,
.ha-home p a:not(.ha-btn):focus-visible,
.ha-home .faq__answer a:focus-visible { color: var(--ha-rust-light); }
.ha-home .head--center { justify-content: center; text-align: center; }
.ha-home .head.head--center .lede { margin: 1rem auto 0; }
/* Callout and answer boxes: black with a full terracotta border, never a one-sided stripe. */
.ha-home .answer { margin: 0; padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--ha-pure-black); border: 2px solid var(--ha-terracotta); border-radius: var(--ha-radius-card); color: var(--ha-white); font-size: clamp(1.0625rem, 1.3vw, 1.18rem); line-height: 1.7; }
/* Overview: heading and body left, answer box right. */
.ha-home .overview { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.ha-home .overview p:not(.answer) { margin-top: 1.1rem; max-width: 34rem; font-size: clamp(1.0625rem, 1.3vw, 1.18rem); }
/* Video row: about Jon on the left, the video on the right. */
.ha-home .video-row { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.ha-home .video-row__about p { margin-top: 1rem; font-size: clamp(1.0625rem, 1.3vw, 1.18rem); }
.ha-home .video-row__about ul { margin: 1.25rem 0 0; padding: 0; list-style: none; }
.ha-home .video-row__about li { padding-block: .6rem; border-top: 1px solid var(--ha-card-line); font-weight: 500; }
.ha-home .video-row__about .ha-btn { margin-top: 1.75rem; }
/* In the two-column row the video is narrower: the title steps down and the play button sits above it. */
.ha-home .video-row .hvideo__title { font-size: clamp(1.25rem, 2.1vw, 1.85rem); }
.ha-home .video-row .hvideo__play { top: 40%; }
/* Frequently Asked Questions: sticky heading on the left, accordion on the right. */
.ha-home .faq-split { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.ha-home .faq-split__head { position: sticky; top: calc(var(--ha-header-h) + 1.5rem); }
.ha-home .faq-split__head .lede { margin-top: 1rem; max-width: 26rem; }
.ha-home .faq-split .faq { max-width: none; }
@media (max-width: 900px) {
  .ha-home .overview,
  .ha-home .video-row,
  .ha-home .faq-split { grid-template-columns: minmax(0, 1fr); }
  .ha-home .faq-split__head { position: static; }
  .ha-home .video-row__about,
  .ha-home .overview > div,
  .ha-home .faq-split__head { text-align: center; }
  .ha-home .overview p:not(.answer),
  .ha-home .faq-split__head .lede { margin-inline: auto; }
}
.ha-home .only-mobile { display: none; }

/* Hero: the 2026-10-04 package (video, rain, light bar, smoke, Jon) */
.ha-home .hero { position: relative; isolation: isolate; overflow: hidden; background: var(--ha-pure-black); }
.ha-home .hero__bg { position: absolute; inset: 0 20% 18% 0; -webkit-mask-image: linear-gradient(90deg, #000 0, #000 82%, transparent 100%), linear-gradient(0deg, transparent 0, #000 25%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, #000 0, #000 82%, transparent 100%), linear-gradient(0deg, transparent 0, #000 25%); mask-composite: intersect; }
.ha-home .hero__shade::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .14; mix-blend-mode: overlay; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
/* The video frame keeps the photo at 16:9, sized by width, so the truck scales with the screen instead of filling it. */
.ha-home .hero__frame { position: absolute; left: 0; right: 0; bottom: 0; aspect-ratio: 16 / 9; -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 24%); mask-image: linear-gradient(180deg, transparent 0, #000 24%); }
.ha-home .hero__frame video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scaleX(-1); filter: saturate(.85) contrast(1.04); }
.ha-home .hero__siren { position: absolute; left: 52.8%; top: 50.6%; width: 0; height: 0; pointer-events: none; opacity: .8; z-index: 1; }
.ha-home .hero__siren i { position: absolute; top: -1px; height: 3px; width: 7px; filter: blur(.8px); }
.ha-home .hero__siren i.r { left: -7px; border-radius: 2px 0 0 2px; background: #ff4a4a; box-shadow: -2px 0 6px 1px rgba(255, 60, 60, .35); }
.ha-home .hero__siren i.b { left: 0; border-radius: 0 2px 2px 0; background: #4a7bff; box-shadow: 2px 0 6px 1px rgba(70, 120, 255, .35); }
.ha-home .hero__siren .wash { position: absolute; left: -40px; top: -22px; width: 80px; height: 44px; border-radius: 50%; filter: blur(14px); background: rgba(160, 70, 200, .06); }
.ha-home .hero__rain { position: absolute; inset: 0 20% 0 0; width: 80%; height: 100%; pointer-events: none; -webkit-mask-image: linear-gradient(90deg, #000 0, #000 70%, transparent 100%); mask-image: linear-gradient(90deg, #000 0, #000 70%, transparent 100%); }
.ha-home .hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .45) 40%, rgba(0, 0, 0, .7) 70%, rgba(0, 0, 0, .9) 80%), linear-gradient(0deg, #000 0%, rgba(0, 0, 0, 0) 45%); }
.ha-home .hero__smoke { position: absolute; inset: 0 20% 0 0; overflow: hidden; pointer-events: none; -webkit-mask-image: linear-gradient(90deg, #000 0, #000 70%, transparent 100%); mask-image: linear-gradient(90deg, #000 0, #000 70%, transparent 100%); }
.ha-home .hero__smoke span { position: absolute; border-radius: 50%; background: radial-gradient(closest-side, rgba(190, 198, 210, .13), rgba(190, 198, 210, 0)); filter: blur(18px); animation: ha-smoke 38s ease-in-out infinite; }
.ha-home .hero__smoke span:nth-child(1) { left: 8%; bottom: 20%; width: 46%; height: 30%; }
.ha-home .hero__smoke span:nth-child(2) { left: 30%; bottom: 30%; width: 38%; height: 26%; animation-duration: 46s; animation-delay: -12s; }
.ha-home .hero__smoke span:nth-child(3) { left: -6%; bottom: 6%; width: 60%; height: 34%; animation-duration: 52s; animation-delay: -26s; }
.ha-home .hero__smoke span:nth-child(4) { left: 22%; bottom: 44%; width: 30%; height: 22%; animation-duration: 42s; animation-delay: -6s; }
@keyframes ha-smoke { 0% { transform: translate3d(0, 0, 0) scale(1); opacity: .5; } 50% { transform: translate3d(9%, -7%, 0) scale(1.18); opacity: 1; } 100% { transform: translate3d(0, 0, 0) scale(1); opacity: .5; } }
.ha-home .hero__grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 2rem; align-items: end; min-height: clamp(560px, calc(100vh - 72px), 880px); min-height: clamp(560px, calc(100svh - 72px), 880px); padding-top: clamp(6rem, 13vh, 9rem); }
.ha-home .hero__copy { position: relative; z-index: 1; align-self: center; padding-bottom: clamp(1.5rem, 4vh, 3.5rem); container-type: inline-size; }
.ha-home .hero h1 { font: 700 clamp(2.5rem, min(4.5vw, 8.6vh), 4.6rem)/1.04 var(--font-heading); font-size: min(clamp(2.5rem, min(4.5vw, 8.6vh), 4.6rem), 12.6cqi); letter-spacing: -.02em; color: var(--ha-white); }
.ha-home .hero h1 span { display: block; white-space: nowrap; }
.ha-home .hero__cta { margin: clamp(1rem, 2.4vh, 1.5rem) 0 0; max-width: 27em; color: var(--ha-rust-lift); font: 600 clamp(1.05rem, min(1.4vw, 2.5vh), 1.35rem)/1.4 var(--font-heading); text-wrap: balance; text-shadow: 0 1px 2px rgba(0, 0, 0, .9), 0 2px 18px rgba(0, 0, 0, .85); }
.ha-home .hero__actions { margin-top: clamp(1.25rem, 3vh, 2rem); }
.ha-home .hero__portrait { position: relative; align-self: end; justify-self: end; display: flex; align-items: flex-end; min-height: 0; margin-right: min(calc(-1 * var(--ha-gutter)), calc((1200px - 100vw) / 4)); }
/* Copy stays low beside the truck, shifted halfway toward it without changing text width or wrapping (Sam, 2026-10-07). */
@media (min-width: 1025px) {
  .ha-home .hero__frame { transform: translateX(-25%); }
  .ha-home .hero__copy { align-self: end; left: -4vw; margin-left: max(0px, calc(27vw - (100vw - min(100vw, 1200px)) / 2 - var(--ha-gutter))); padding-bottom: clamp(1.75rem, 6vh, 4rem); }
  /* The copy column narrows as the portrait grows with screen height. The subline may run 5rem past the
     column (into the grid gap, short of the figure) and its size is capped to that width, so it holds two lines. */
  .ha-home .hero__cta { max-width: none; width: calc(100cqi + 5rem); font-size: min(clamp(1.05rem, min(1.4vw, 2.5vh), 1.35rem), calc((100cqi + 5rem) / 25)); }
}
@media (max-width: 760px) { .ha-home .hero__cta { max-width: none; font-size: clamp(.74rem, 3.75vw, 1.05rem); text-wrap: balance; } }
.ha-home .hero__portrait::after { content: ""; position: absolute; inset: auto 0 0; height: 22%; background: linear-gradient(0deg, #000 0%, rgba(0, 0, 0, 0) 100%); pointer-events: none; }
.ha-home .hero__portrait img { height: clamp(420px, calc(100vh - 150px), 820px); height: clamp(420px, calc(100svh - 150px), 820px); max-height: none; width: auto; max-width: none; filter: brightness(.9) contrast(1.06) saturate(.92); }
@media (prefers-reduced-motion: no-preference) {
  .ha-home .hero__copy > * { animation: ha-rise .7s var(--ha-ease) both; }
  .ha-home .hero__copy > *:nth-child(2) { animation-delay: .08s; }
  .ha-home .hero__copy > *:nth-child(3) { animation-delay: .16s; }
}
@keyframes ha-rise { from { transform: translateY(14px); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .ha-home .hero__smoke span { animation: none; } }

/* Results ticker: the track scrolls once js/ha-home.js has added the looping copy. */
.ha-home .ticker { position: relative; z-index: 2; background: rgba(0, 0, 0, .8); border-top: 1px solid var(--ha-hairline); overflow: hidden; }
.ha-home .ticker__track { display: flex; width: max-content; }
.ha-home .ticker.is-ready .ticker__track { animation: ha-tick 600s linear infinite; }
.ha-home .ticker:hover .ticker__track { animation-play-state: paused; }
.ha-home .ticker__item { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 34px; text-align: center; border-right: 1px solid var(--ha-hairline); }
.ha-home .ticker__amt { font: 700 1.3rem/1.1 var(--font-heading); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ha-home .ticker__type { font: 600 14px/1 var(--font-body); color: var(--ha-rust-lift); white-space: nowrap; }
@keyframes ha-tick { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ha-home .ticker { overflow-x: auto; } .ha-home .ticker.is-ready .ticker__track { animation: none; } }


/* Dedicated Trucking Team */
.ha-home .split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.ha-home .split p { margin: 1.1rem 0 0; max-width: 34rem; font-size: clamp(1.0625rem, 1.3vw, 1.18rem); }
.ha-home .split__media img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--ha-radius-card); }

/* Trucking Case Results */
.ha-home .results { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.ha-home .result { display: flex; flex-direction: column; gap: .5rem; padding: 1.6rem 1.4rem; transition: transform .45s var(--ha-ease), border-color .45s var(--ha-ease); }
.ha-home .result:hover { transform: translateY(-6px); border-color: var(--ha-rust-lift); }
.ha-home .result__amt { font: 700 clamp(1.5rem, 2.3vw, 2rem)/1.1 var(--font-heading); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ha-home .result__type { font: 600 .95rem/1.3 var(--font-body); color: var(--ha-rust-card); }
.ha-home .result[hidden],
.ha-home .results-more[hidden] { display: none; }
.ha-home .result.is-new { animation: ha-rise .45s var(--ha-ease) both; }
@keyframes ha-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .ha-home .result.is-new { animation: none; } }
.ha-home .results-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; }
.ha-home .fine { margin: 0; font-size: .92rem; }

/* Commercial Vehicle Accidents: the Dark Vehicle Row in Barlow */
.ha-home .vehicles { background: var(--ha-pure-black); color: var(--ha-white); border-top: 1px solid rgba(255, 255, 255, .08); }
.ha-home .vehicles h2 { font: 700 clamp(2.2rem, 5vw, 4rem)/1 var(--font-block); text-transform: uppercase; letter-spacing: .01em; }
.ha-home .vehicles .lede { max-width: 40rem; margin: 1rem 0 0; font-size: clamp(1.0625rem, 1.4vw, 1.2rem); }
/* The cards sit in a native scroll-snap track; js/ha-home.js shows the buttons and steps one card per press.
   The track pads its block axis so the lifted, tilted card is not clipped by the scroll box. */
.ha-home .vcar { --vcar-gap: clamp(1rem, 2.4vw, 2rem); position: relative; }
.ha-home .vcar__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2 * var(--vcar-gap)) / 3); gap: var(--vcar-gap); margin: -16px -8px 0; padding: 16px 8px 1.25rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 8px; scrollbar-width: none; perspective: 1200px; }
.ha-home .vcar__track::-webkit-scrollbar { display: none; }
.ha-home .vcar__track:focus-visible { outline: 3px solid var(--ha-white); outline-offset: 2px; }
.ha-home .vcar__track > .vcard { scroll-snap-align: start; }
.ha-home .vcar__nav { display: flex; justify-content: center; gap: .75rem; margin-top: 1.25rem; }
.ha-home .vcar__nav[hidden] { display: none; }
.ha-home .vcar__btn { display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 1px solid var(--ha-hairline); border-radius: 50%; background: var(--ha-charcoal); color: var(--ha-white); cursor: pointer; transition: background-color .4s var(--ha-ease), border-color .4s var(--ha-ease), opacity .4s var(--ha-ease); }
.ha-home .vcar__btn:hover:not(:disabled) { background: var(--ha-terracotta); border-color: var(--ha-terracotta); }
.ha-home .vcar__btn:disabled { opacity: .35; cursor: default; }
.ha-home .vcar__btn svg { display: block; width: 20px; height: 20px; }
.ha-home .head .lede { max-width: 40rem; margin: 1rem 0 0; font-size: clamp(1.0625rem, 1.4vw, 1.2rem); }
.ha-home .person h3 a { color: inherit; text-decoration: none; }
.ha-home .person h3 a:hover, .ha-home .person h3 a:focus-visible { color: var(--ha-rust-lift); }
.ha-home .vcard--static:hover { border-color: var(--ha-card-line); box-shadow: none; }
.ha-home .vcard--static:hover img { transform: none; }
.ha-home .vcard--static::after { display: none; }
/* Truck Accident Investigations row on the homepage: same black band and content edge as the other rows */
.ha-home .ha-tg { background: var(--ha-pure-black); border-top: 1px solid var(--ha-band-line); }
.ha-home .ha-tg__frame { max-width: calc(var(--ha-frame) - 2 * var(--ha-gutter)); }
.ha-home .vehicles__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.4vw, 2rem); perspective: 1200px; }
.ha-home .vcard { position: relative; display: flex; flex-direction: column; background: var(--ha-charcoal); border: 1px solid var(--ha-card-line); text-decoration: none; color: inherit; transform-style: preserve-3d; transition: transform .45s var(--ha-ease), box-shadow .45s var(--ha-ease), border-color .45s var(--ha-ease); }
.ha-home .vcard:hover { border-color: var(--ha-rust-lift); box-shadow: 0 30px 60px rgba(0, 0, 0, .6); }
.ha-home .vcard::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%), rgba(201, 87, 58, .16) 0%, transparent 55%); opacity: 0; transition: opacity .45s var(--ha-ease); }
.ha-home .vcard:hover::after { opacity: 1; }
.ha-home .vcard__img { overflow: hidden; }
.ha-home .vcard img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .9s var(--ha-ease); }
.ha-home .vcard:hover img { transform: scale(1.05); }
.ha-home .vcard__body { display: flex; flex-direction: column; flex: 1; padding: 1.6rem 1.6rem 1.9rem; }
.ha-home .vcard h3 { font: 700 1.5rem/1.15 var(--font-block); text-transform: uppercase; letter-spacing: .02em; }
.ha-home .vcard p { margin: .8rem 0 1.2rem; }
.ha-home .vcard__more { margin-top: auto; font: 600 .9rem/1 var(--font-body); letter-spacing: .06em; text-transform: uppercase; text-decoration: underline; text-decoration-color: var(--ha-rust-lift); text-underline-offset: 7px; }

/* Our Trucking Attorneys */
.ha-home .people { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.5rem); }
.ha-home .person { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); overflow: hidden; transition: transform .45s var(--ha-ease), border-color .45s var(--ha-ease); }
.ha-home .person:hover { transform: translateY(-6px); border-color: var(--ha-rust-lift); }
.ha-home .person img { width: 100%; height: 100%; min-height: 340px; object-fit: cover; }
.ha-home .person__body { display: flex; flex-direction: column; gap: .75rem; padding: clamp(1.25rem, 2.5vw, 2rem); min-width: 0; }
.ha-home .person ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .6rem; }
.ha-home .person li { margin: 0; padding-top: .6rem; border-top: 1px solid var(--ha-hairline); font-weight: 500; }

/* Video: the title sits on a dark thumbnail and the play button is a plain
   terracotta circle with no pulse, ring, or grow (decision items 15 and 16).
   The link opens YouTube without JavaScript; js/ha-home.js swaps in the
   youtube-nocookie player on click. */
.ha-home .hvideo { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid var(--ha-hairline); border-radius: var(--ha-radius-card); background: var(--ha-pure-black); }
.ha-home .hvideo__btn { position: absolute; inset: 0; display: block; color: var(--ha-white); cursor: pointer; }
.ha-home .hvideo__btn:focus-visible { outline-offset: -7px; }
.ha-home .hvideo img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.55); transition: filter .45s var(--ha-ease); }
.ha-home .hvideo__btn:hover img,
.ha-home .hvideo__btn:focus-visible img { filter: brightness(.7); }
.ha-home .hvideo__shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0, 0, 0, .85) 0%, rgba(0, 0, 0, .25) 55%, rgba(0, 0, 0, 0) 100%); pointer-events: none; }
.ha-home .hvideo__title { position: absolute; left: clamp(1rem, 3vw, 2.25rem); right: clamp(1rem, 3vw, 2.25rem); bottom: clamp(1rem, 3vw, 2rem); color: var(--ha-white); font: 700 clamp(1.35rem, 3.4vw, 2.6rem)/1.15 var(--font-heading); text-align: left; text-wrap: balance; }
.ha-home .hvideo__play { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 96px; height: 96px; margin: -48px 0 0 -48px; border-radius: 50%; background: var(--ha-terracotta); transition: background-color .4s var(--ha-ease); }
.ha-home .hvideo__play::before { content: ""; margin-left: 6px; border-style: solid; border-width: 14px 0 14px 22px; border-color: transparent transparent transparent var(--ha-white); }
.ha-home .hvideo__btn:hover .hvideo__play,
.ha-home .hvideo__btn:focus-visible .hvideo__play { background: var(--ha-rust); }
.ha-home .hvideo iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 900px) { .ha-home .hvideo__title { text-align: center; } }
@media (max-width: 600px) { .ha-home .hvideo { aspect-ratio: 4 / 3; } .ha-home .hvideo__play { top: 40%; } }
@media (max-width: 480px) { .ha-home .hvideo__play { width: 72px; height: 72px; margin: -36px 0 0 -36px; } .ha-home .hvideo__play::before { border-width: 11px 0 11px 17px; margin-left: 5px; } }
@media (prefers-reduced-motion: reduce) { .ha-home .hvideo img, .ha-home .hvideo__play { transition: none; } }

/* Frequently Asked Questions: native disclosure, hairline rules, a rust chevron. */
.ha-home .faq { max-width: 54rem; border-bottom: 1px solid var(--ha-hairline); }
.ha-home .faq__item { border-top: 1px solid var(--ha-hairline); }
.ha-home .faq__item summary { position: relative; display: block; min-height: 48px; padding: 1.35rem 3rem 1.35rem 0; color: var(--ha-white); font: 600 clamp(1.15rem, 1.8vw, 1.35rem)/1.35 var(--font-heading); list-style: none; cursor: pointer; transition: color .4s var(--ha-ease); }
.ha-home .faq__item summary::-webkit-details-marker { display: none; }
.ha-home .faq__item summary::after { content: ""; position: absolute; right: .6rem; top: 50%; width: 16px; height: 16px; margin-top: -8px; background: var(--ha-rust-lift); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .4s var(--ha-ease); }
.ha-home .faq__item[open] summary::after { transform: rotate(180deg); }
.ha-home .faq__item summary:hover { color: var(--ha-rust-lift); }
.ha-home .faq__item summary:focus-visible { outline: 3px solid var(--ha-white); outline-offset: 4px; }
.ha-home .faq__answer { padding: 0 3rem 1.6rem 0; }
.ha-home .faq__answer p { max-width: 46rem; }
.ha-home .faq__answer a { text-decoration: underline; text-decoration-color: var(--ha-rust-lift); text-underline-offset: 5px; }
.ha-home .faq__answer a:hover { color: var(--ha-rust-lift); }
@media (max-width: 900px) { .ha-home .faq { margin-inline: auto; } }
@media (max-width: 480px) { .ha-home .faq__item summary { padding-right: 2.25rem; } .ha-home .faq__answer { padding-right: 0; } }
@media (prefers-reduced-motion: reduce) { .ha-home .faq__item summary, .ha-home .faq__item summary::after { transition: none; } }

/* Trucking Credentials */
.ha-home .creds { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(1.75rem, 3vw, 2.5rem) clamp(1rem, 2.4vw, 2rem); margin: 0; padding: 0; list-style: none; }
.ha-home .cred { display: flex; flex-direction: column; align-items: center; gap: 1rem; width: clamp(140px, 14vw, 180px); text-align: center; font: 600 .95rem/1.35 var(--font-body); }
.ha-home .cred img { width: 100%; max-width: 160px; height: auto; filter: drop-shadow(0 14px 26px rgba(0, 0, 0, .55)); transition: transform .45s var(--ha-ease); }
.ha-home .cred:has(a:hover) img, .ha-home .cred:has(a:focus-visible) img { transform: translateY(-6px); }
.ha-home .creds-note { margin: clamp(2rem, 4vw, 3rem) auto 0; max-width: 40rem; text-align: center; font: 600 clamp(1.05rem, 1.4vw, 1.2rem)/1.4 var(--font-heading); }
@media (max-width: 480px) { .ha-home .cred { width: calc(50% - .75rem); } .ha-home .cred img { max-width: 132px; } }
@media (prefers-reduced-motion: reduce) { .ha-home .cred img { transition: none; } }
.ha-home .badges { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.ha-home .badge { display: flex; align-items: center; justify-content: center; min-height: 150px; padding: 1.5rem; text-align: center; font: 700 clamp(1.15rem, 1.7vw, 1.35rem)/1.3 var(--font-heading); border-color: rgba(201, 87, 58, .6); transition: transform .45s var(--ha-ease), border-color .45s var(--ha-ease); }
.ha-home .badge:hover { transform: translateY(-6px); border-color: var(--ha-rust-lift); }

/* Client Reviews */
.ha-home .reviews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.4vw, 2rem); align-items: stretch; }
.ha-home .review { display: flex; flex-direction: column; gap: 1rem; margin: 0; padding: clamp(1.4rem, 2.5vw, 2rem); }
.ha-home .review__stars { color: var(--ha-rust-card); font-size: 1.1rem; letter-spacing: .15em; } /* rust-lift is large-text only on charcoal */
.ha-home .review blockquote { margin: 0; padding: 0; border: 0; background: none; color: var(--ha-white); font: 400 1.05rem/1.65 var(--font-body); }
/* Reviews (Sam, 2026-10-07): equal cards, long reviews show an excerpt, Google mark on every review. */
.ha-home .review { height: 100%; }
.ha-home .review blockquote { flex: 1 1 auto; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 7; line-clamp: 7; overflow: hidden; }
.ha-home .review__top { display: flex; align-items: center; gap: .75rem; }
.ha-home .review__g { width: 28px; height: 28px; flex: none; }
.ha-home .review blockquote::before,
.ha-home .review blockquote::after { content: none; }
.ha-home .review figcaption { margin: 0; color: var(--ha-white); font: 600 1.05rem/1.4 var(--font-body); text-align: left; }
.ha-home .reviews-source { margin: 0; font: 500 1rem/1.5 var(--font-body); }

/* Attorney Referrals */
.ha-home .refer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; }
.ha-home .refer p { margin: 1rem 0 0; max-width: 38rem; font-size: clamp(1.0625rem, 1.3vw, 1.18rem); }

/* Closing call to action: heading, phone, and the Free Case Review form, which
   posts to the H&A contact intake endpoint (mu-plugins/ha-contact-intake.php).
   .contact--no-form remains for a phone-only row. */
.ha-home .contact { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.ha-home .contact--no-form { grid-template-columns: minmax(0, 1fr); }
.ha-home .contact p { margin: 1rem 0 0; font-size: clamp(1.0625rem, 1.3vw, 1.18rem); }
.ha-home .contact__phone { display: inline-flex; align-items: center; min-height: 48px; margin-top: 1rem; font: 700 clamp(1.8rem, 3vw, 2.4rem)/1 var(--font-heading); text-decoration: none; }
.ha-home .contact__phone:hover { color: var(--ha-rust-lift); }
.ha-home .form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; padding: clamp(1.25rem, 3vw, 2.25rem); }
.ha-home .form h3 { grid-column: 1 / -1; font: 600 clamp(1.5rem, 2.4vw, 1.9rem)/1.2 var(--font-heading); }
.ha-home .field { min-width: 0; }
.ha-home .field--full { grid-column: 1 / -1; }
.ha-home .form input,
.ha-home .form select,
.ha-home .form textarea { width: 100%; min-height: 52px; padding: .8rem .95rem; border: 1px solid var(--ha-hairline); border-radius: var(--ha-radius-control); background: rgba(255, 255, 255, .05); color: var(--ha-white); font: 400 1rem/1.4 var(--font-body); }
/* At the 18px root a text input grows past the 52px fields beside it; hold every one-line field at 52px. */
.ha-home .form input:not([type=checkbox]),
.ha-home .form select { height: 52px; }
.ha-home .form ::placeholder { color: var(--ha-white); opacity: 1; }
.ha-home .form select { appearance: none; -webkit-appearance: none; }
.ha-home .form option { color: var(--ha-black); }
.ha-home .form textarea { min-height: 130px; resize: vertical; }
.ha-home .form input:focus-visible,
.ha-home .form select:focus-visible,
.ha-home .form textarea:focus-visible { outline: 3px solid var(--ha-rust-lift); outline-offset: 1px; }
.ha-home .consent { grid-column: 1 / -1; display: flex; gap: .7rem; align-items: flex-start; font-size: .92rem; line-height: 1.5; }
.ha-home .form .consent { color: var(--ha-white); }
.ha-home .consent input { width: 22px; min-height: 22px; height: 22px; margin-top: .1rem; flex: none; }
.ha-home .form .ha-btn { grid-column: 1 / -1; width: 100%; }
/* Labels sit inside the boxes as placeholder text (Sam, 2026-10-07); the label element stays for screen readers. */
.ha-home .field label { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ha-home .consent { align-items: center; }
.ha-home .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }


/* Homepage responsive steps, from the preview */
@media (max-width: 1024px) {
  .ha-home .hero__grid { grid-template-columns: 1fr; min-height: 0; padding-top: 7.5rem; }
  .ha-home .hero__copy { padding-bottom: 0; text-align: center; }
  .ha-home .hero__cta { margin-inline: auto; }
  .ha-home .hero__portrait { align-self: end; justify-self: center; margin: 1.5rem 0 0; width: min(78%, 440px); }
  .ha-home .hero__portrait img { height: auto; width: 100%; max-height: none; }
  .ha-home .hero__bg,
  .ha-home .hero__rain,
  .ha-home .hero__smoke { inset: 0; width: 100%; }
  .ha-home .hero__shade { background: linear-gradient(0deg, rgba(0, 0, 0, .95) 0%, rgba(0, 0, 0, .6) 55%, rgba(0, 0, 0, .5) 100%); }
  .ha-home .hero__frame { top: 0; aspect-ratio: auto; -webkit-mask-image: none; mask-image: none; }
  .ha-home .hero__siren { display: none; }
  .ha-home .hero__cta { max-width: 34rem; }
  .ha-home .results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ha-home .people { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .ha-home h2,
  .ha-home .head { text-align: center; justify-content: center; }
  .ha-home .split { grid-template-columns: 1fr; text-align: center; }
  .ha-home .split__media { order: -1; }
  .ha-home .split p { margin-inline: auto; }
  .ha-home .vcar__track { grid-auto-columns: calc((100% - var(--vcar-gap)) / 2); }
  .ha-home .reviews,
  .ha-home .badges { grid-template-columns: 1fr; }
  .ha-home .head .lede { margin-inline: auto; }
  .ha-home .ha-tg__title, .ha-home .ha-tg__lede { text-align: center; }
  .ha-home .refer { justify-content: center; text-align: center; }
  .ha-home .refer p { margin-inline: auto; }
  .ha-home .contact { grid-template-columns: 1fr; text-align: center; }
  .ha-home .form { text-align: left; }
  .ha-home .results-foot { justify-content: center; text-align: center; }
  /* Card rows center their content on tablet and phone (Sam, 2026-10-07). */
  .ha-home .result,
  .ha-home .vcard__body,
  .ha-home .person__body,
  .ha-home .review { align-items: center; text-align: center; }
  .ha-home .review__top { justify-content: center; }
  .ha-home .review figcaption { text-align: center; }
}
@media (max-width: 760px) {
  .ha-home .hero__grid { padding-top: 6.5rem; }
  .ha-home .hero h1 { font-size: clamp(2.2rem, 11vw, 3.6rem); }
  .ha-home .only-desktop { display: none; }
  .ha-home .only-mobile { display: inline-flex; }
  .ha-home .person { grid-template-columns: 1fr; }
  .ha-home .person img { min-height: 0; height: auto; aspect-ratio: 1 / 1; object-position: center 15%; }
  .ha-home .form { grid-template-columns: 1fr; }
  .ha-home .ticker__item { padding: 10px 20px; }
  .ha-home .ticker__type { font-size: 13px; }
}
@media (max-width: 600px) {
  .ha-home .vcar__track { grid-auto-columns: 86%; }
  .ha-home .vcard h3 { font-size: clamp(1.15rem, 5.6vw, 1.5rem); }
}
@media (max-width: 480px) {
  .ha-home .vcard__body { padding: 1.25rem 1.25rem 1.5rem; }
}
@media (max-width: 480px) {
  .ha-home .results { grid-template-columns: 1fr; }
  .ha-home .hero__actions .ha-btn { width: 100%; }
}
/* Keep two-word headings on one line and three-word heads off a one-word last line. */
@media (max-width: 420px) {
  .ha-home h2 { font-size: clamp(1.6rem, 8.4vw, 2rem); }
  .ha-home .vehicles h2 { font-size: clamp(1.7rem, 8.8vw, 2.2rem); }
}
@media (min-width: 901px) and (max-width: 1180px) {
  .ha-home .vcard h3 { font-size: 1.3rem; }
}

/* --------------------------------------------------------------------------
   Preserved pattern: Dark Vehicle Row (pattern-source/05-dark-vehicle-row.html).
   Sam kept this row as an asset on 2026-10-04: black band, Barlow 700
   uppercase heads, dark cards with hairline borders. Barlow downloads only on
   pages that use it.
   -------------------------------------------------------------------------- */
.ha-dark-row { box-sizing: border-box; position: relative; margin: 0; padding: var(--ha-band) var(--ha-gutter); background: var(--ha-black); color: var(--ha-white); font-family: var(--font-body); }
.ha-dark-row * { box-sizing: border-box; }
.ha-dark-row > .ha-frame { width: 100%; max-width: var(--ha-frame); margin-inline: auto; }
.ha-dark-row :where(.is-layout-flow) > * + * { margin-block-start: 0; }
.ha-dark-row__cards > * { margin-block: 0; }
.ha-dark-row h2,
.ha-dark-row h3 { margin: 0 0 1.25rem; color: var(--ha-white); font-family: var(--font-block); font-weight: 700; text-transform: uppercase; text-wrap: balance; overflow-wrap: normal; word-break: normal; hyphens: manual; }
.ha-dark-row h2 { font-size: clamp(2rem, 4.2vw, 3.5rem); line-height: 1.02; letter-spacing: 0.005em; }
.ha-dark-row h3 { font-size: clamp(1.3rem, 1.9vw, 1.6rem); line-height: 1.12; letter-spacing: 0.02em; }
.ha-dark-row p { margin: 0 0 1.25rem; color: var(--ha-white); font-size: 1.125rem; line-height: 1.7; }
.ha-dark-row p:last-child { margin-bottom: 0; }
.ha-dark-row__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-top: clamp(2rem, 4vw, 3rem) !important; }
.ha-dark-row__card { min-width: 0; padding: clamp(1.75rem, 2.6vw, 2.5rem); background: var(--ha-charcoal); border: 1px solid var(--ha-line-on-dark); }
.ha-dark-row__card p { font-size: 1.05rem; }
.ha-dark-row .ha-dark-row__media { margin: calc(-1 * clamp(1.75rem, 2.6vw, 2.5rem)) calc(-1 * clamp(1.75rem, 2.6vw, 2.5rem)) 1.5rem !important; }
.ha-dark-row__media img { display: block; width: 100%; height: 190px; object-fit: cover; }
.ha-dark-row a:focus-visible { outline: 3px solid var(--ha-white); outline-offset: 4px; }
@media (max-width: 900px) { .ha-dark-row__cards { grid-template-columns: minmax(0, 1fr); } }
