/* =========================================================================
 * Layout pieces introduced for migrated content. Uses the design tokens from
 * style.css (:root, lines 27-38). Kept separate from style.css so the design
 * file stays as the designer delivered it.
 * ========================================================================= */

/* Generic page / post banner ------------------------------------------- */
.gh-page-hero {
  background-color: var(--gh-dark-blue);
  padding: 72px 0 56px;
}

.gh-page-hero-title {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: 48px;
  line-height: 112%;
  letter-spacing: -1px;
  color: var(--gh-white);
  margin: 0;
  max-width: 22ch;
}

.gh-page-hero .gh-eyebrow-green a {
  color: inherit;
  text-decoration: none;
}

.gh-post-meta {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.8);
  margin-top: 16px;
}

.gh-page-body {
  padding: 64px 0 80px;
}

/* Practice body + sidebar ------------------------------------------------ */
.gh-practice-body {
  padding: 64px 0 80px;
}

.gh-practice-sidebar {
  position: sticky;
  top: 24px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.gh-practice-sidebar-consult {
  background-color: var(--gh-dark-blue);
  border-radius: 8px;
  padding: 28px 24px;
}

.gh-practice-sidebar-consult .gh-practice-sidebar-title {
  color: var(--gh-white);
}

.gh-practice-sidebar-consult label,
.gh-practice-sidebar-consult p {
  color: rgba(255, 255, 255, 0.85);
}

.gh-practice-sidebar-title {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 22px;
  line-height: 125%;
  color: var(--gh-dark-blue);
  margin: 0 0 16px;
}

.gh-practice-sidebar-links {
  background-color: var(--gh-light-gray);
  border-radius: 8px;
  padding: 24px;
}

.gh-practice-sidebar-links ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.gh-practice-sidebar-links li {
  border-bottom: 1px solid var(--gh-border);
}

.gh-practice-sidebar-links li:last-child {
  border-bottom: 0;
}

.gh-practice-sidebar-links a {
  display: block;
  padding: 10px 0;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--gh-dark-blue);
  text-decoration: none;
}

.gh-practice-sidebar-links a:hover,
.gh-practice-sidebar-links .is-current a {
  color: var(--gh-green);
}

/* Blog cards ------------------------------------------------------------- */
.gh-post-card {
  height: 100%;
  background-color: var(--gh-white);
  border: 1px solid var(--gh-border);
  border-radius: 8px;
  padding: 24px;
  display: flex;
  flex-direction: column;
}

.gh-post-card .gh-post-meta {
  color: var(--gh-text);
  margin: 0 0 8px;
}

.gh-post-card-title {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 20px;
  line-height: 130%;
  margin: 0 0 12px;
}

.gh-post-card-title a {
  color: var(--gh-dark-blue);
  text-decoration: none;
}

.gh-post-card-title a:hover {
  color: var(--gh-green);
}

.gh-post-card-excerpt {
  font-size: 15px;
  margin: 0 0 16px;
  flex-grow: 1;
}

.gh-post-card-link {
  font-weight: 600;
  font-size: 14px;
  color: var(--gh-green);
  text-decoration: none;
}

.gh-post-thumb img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin-bottom: 32px;
}

.gh-post-nav {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-top: 56px;
  padding-top: 24px;
  border-top: 1px solid var(--gh-border);
}

.gh-post-nav a {
  color: var(--gh-dark-blue);
  font-weight: 600;
  text-decoration: none;
}

.gh-pagination {
  margin-top: 48px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.gh-pagination .page-numbers {
  padding: 8px 14px;
  border: 1px solid var(--gh-border);
  border-radius: 6px;
  color: var(--gh-dark-blue);
  text-decoration: none;
}

.gh-pagination .page-numbers.current {
  background-color: var(--gh-dark-blue);
  color: var(--gh-white);
  border-color: var(--gh-dark-blue);
}

@media (max-width: 991px) {
  .gh-practice-sidebar {
    position: static;
  }
}

@media (max-width: 767px) {
  .gh-page-hero {
    padding: 48px 0 40px;
  }

  .gh-page-hero-title {
    font-size: 32px;
  }

  .gh-page-body,
  .gh-practice-body {
    padding: 40px 0 56px;
  }
}

/* Native table of contents (replaces the Easy TOC widget) --------------- */
.gh-prose .gh-toc {
  background-color: var(--gh-light-gray);
  border-left: 4px solid var(--gh-green);
  border-radius: 8px;
  padding: 20px 24px;
  margin: 8px 0 36px;
}

.gh-prose .gh-toc-title {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 18px;
  color: var(--gh-dark-blue);
  margin: 0 0 12px;
}

.gh-prose .gh-toc ol {
  counter-reset: none;
  margin: 0;
}

.gh-prose .gh-toc li {
  padding-left: 0;
  margin-bottom: 6px;
  font-size: 15px;
}

.gh-prose .gh-toc li::before {
  content: none;
}

.gh-prose .gh-toc li.gh-toc-h3 {
  padding-left: 18px;
  font-size: 14px;
}

.gh-prose .gh-toc a {
  text-decoration: none;
}

.gh-prose .gh-toc a:hover {
  text-decoration: underline;
}

/* Sidebar form: the staging CF7 form ships fixed-width fields (~400px), wider than the
 * 344px sidebar column at 1024px; make every control fluid inside the sidebar only. */
.gh-practice-sidebar-consult .wpcf7,
.gh-practice-sidebar-consult .wpcf7-form,
.gh-practice-sidebar-consult .wpcf7-form-control-wrap,
.gh-practice-sidebar-consult input,
.gh-practice-sidebar-consult select,
.gh-practice-sidebar-consult textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.gh-practice-sidebar-consult input[type="submit"],
.gh-practice-sidebar-consult button {
  width: 100%;
}

.gh-practice-sidebar {
  min-width: 0;
}

/* Checkboxes/radios keep their natural size (the fluid rule above must not stretch them). */
.gh-practice-sidebar-consult input[type="checkbox"],
.gh-practice-sidebar-consult input[type="radio"] {
  display: inline-block;
  width: auto;
  margin-right: 8px;
  vertical-align: top;
}

.gh-practice-sidebar-consult .wpcf7-acceptance .wpcf7-list-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
}

.gh-practice-sidebar-consult .wpcf7-acceptance .wpcf7-list-item-label {
  font-size: 13px;
  line-height: 145%;
  color: rgba(255, 255, 255, 0.85);
}

/* Mobile/tablet: style.css caps .gh-practice-hero at max-height:600px for every width.
 * Stacked below 992px (breadcrumb + H1 + button + image) the content needs more, so the
 * image overflowed the section and sat on top of the first body paragraph. Desktop keeps
 * the designer's cap. */
@media (max-width: 991.98px) {
  body .gh-practice-hero {
    max-height: none;
  }
}

/* Grouped link hub (/practice-areas/, /areas-we-serve/) ----------------- */
.gh-link-hub {
  padding: 64px 0 72px;
  background-color: var(--gh-white);
}

.gh-link-hub-group {
  height: 100%;
  border-top: 3px solid var(--gh-green);
  padding-top: 20px;
}

.gh-link-hub-heading {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 22px;
  line-height: 125%;
  color: var(--gh-dark-blue);
  margin: 0 0 16px;
}

.gh-link-hub-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.gh-link-hub-list li {
  border-bottom: 1px solid var(--gh-border);
}

.gh-link-hub-list a {
  display: block;
  padding: 9px 0;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--gh-dark-blue);
  text-decoration: none;
}

.gh-link-hub-list a:hover {
  color: var(--gh-green);
}

/* style.css gives .gh-whychoose-tile aspect-ratio:1/1.05 plus a min-height. Where a column's
 * content box is narrower than min-height/1.05 (e.g. 235px at 1024px), the aspect ratio widens
 * the tile past its column (275px), overflowing the page. Clamp to the column; min-height kept. */
.gh-whychoose-grid .gh-whychoose-tile {
  max-width: 100%;
}

/* Home: CF7 form inside the designer's contact panel, mirroring .gh-contact-field / -consent / -submit (style.css) */
.gh-contact-form .wpcf7-form p {
  margin: 0 0 22px;
}

.gh-contact-form .wpcf7-form label {
  display: block;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 14px;
  color: var(--gh-dark-blue);
}

.gh-contact-form .wpcf7-form-control-wrap {
  display: block;
  margin-top: 8px;
}

.gh-contact-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.gh-contact-form textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  background-color: var(--gh-white);
  border: 1px solid rgba(19, 46, 91, 0.2);
  border-radius: 4px;
  padding: 8px 14px;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--gh-dark-blue);
}

.gh-contact-form input:focus,
.gh-contact-form textarea:focus {
  outline: none;
  border-color: var(--gh-green);
}

.gh-contact-form textarea {
  resize: vertical;
  height: auto;
  min-height: 120px;
}

.gh-contact-form .wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
}

.gh-contact-form .wpcf7-acceptance label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-weight: 400;
  font-size: 12px;
  line-height: 150%;
  color: #032a6c;
}

.gh-contact-form input[type="checkbox"] {
  margin-top: 4px;
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  accent-color: var(--gh-green);
}

.gh-contact-form input[type="submit"] {
  display: block;
  width: 100%;
  background-color: var(--gh-green);
  color: var(--gh-white);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.05em;
  border: none;
  border-radius: 4px;
  padding: 1rem 1.5rem;
  opacity: 1;
  transition: background-color 0.2s ease;
}

.gh-contact-form input[type="submit"]:hover {
  background-color: #277a20;
}

.gh-contact-form input[type="submit"]:disabled {
  opacity: 0.6;
}

.gh-testi-more {
  margin-top: 40px;
}

.gh-hero .gh-rating .verified {
  margin-left: 10px;
}

/* Practice detail: imported content inside the designer's modules ------- */
.gh-practice-intro-text p {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 160%;
  color: var(--gh-text);
  margin-bottom: 20px;
}

.gh-practice-intro-text p:last-child {
  margin-bottom: 0;
}

.gh-practice-intro-text a,
.gh-faq-answer-inner a,
.gh-faq-lead a {
  color: var(--gh-green);
  text-decoration: underline;
}

.gh-content-block-inner img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
}

.gh-content-block-inner .gh-content-h2 {
  margin-top: 0;
}

.gh-content-block-inner h4 {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 18px;
  color: var(--gh-dark-blue);
  margin: 24px 0 12px;
}

.gh-content-list li > .gh-content-list {
  margin-top: 12px;
}

.gh-content-list-ol {
  counter-reset: gh-ol;
}

.gh-content-list-ol > li {
  counter-increment: gh-ol;
  padding-left: 28px;
}

.gh-content-list-ol > li::before {
  content: counter(gh-ol) ".";
  width: auto;
  height: auto;
  top: 0;
  background: none;
  border-radius: 0;
  color: var(--gh-green);
  font-weight: 600;
}

.gh-content-block-inner table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
}

.gh-content-block-inner th,
.gh-content-block-inner td {
  border: 1px solid var(--gh-border);
  padding: 8px 12px;
  text-align: left;
}

.gh-content-block-inner blockquote {
  border-left: 3px solid var(--gh-green);
  margin: 0 0 20px;
  padding: 4px 0 4px 20px;
}

.gh-content-block-inner iframe,
.gh-content-block-inner video {
  max-width: 100%;
}

.gh-content-block.is-expanded .gh-content-readmore-btn i {
  transform: rotate(180deg);
}

.gh-faq-lead {
  max-width: 760px;
  margin: -24px auto 32px;
  text-align: center;
  color: var(--gh-text);
}

.gh-faq-answer-inner p:last-child {
  margin-bottom: 0;
}

/* Attorney profile: role heading above credentials, licensed-in lines */
.gh-attorney-role-heading {
  font-size: 18px;
  margin: 24px 0 16px;
}

.gh-attorney-licensed {
  line-height: 1.7;
}

.gh-attorney-bio a {
  color: var(--gh-green);
  text-decoration: underline;
}

/* Gravity Forms "Free Consultation" inside the designer's form containers */
.gh-contact-form .gform_wrapper.gform-theme,
.gh-contact-page-form-wrap .gform_wrapper.gform-theme,
.gh-practice-sidebar .gform_wrapper.gform-theme {
  --gf-font-family-base: var(--font-body);
  --gf-ctrl-label-font-weight-primary: 500;
}

.gform_wrapper.gform-theme .gfield_consent_label {
  font-size: 12px;
  line-height: 150%;
  color: #032a6c;
}

.gform_wrapper.gform-theme .gform_footer input[type="submit"],
.gform_wrapper.gform-theme .gform_footer .gform_button {
  width: 100%;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.05em;
  padding: 1rem 1.5rem;
  border-radius: 4px;
}

.gform_wrapper.gform-theme .gform_footer .gform_button:hover {
  background-color: #277a20;
}

/* Inner pages: centred reading column ------------------------------------ */
.gh-prose-centered {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.gh-prose-centered > *,
.gh-prose-centered .gh-prose > * {
  max-width: none;
}

.gh-post-thumb {
  margin-bottom: 32px;
}

.gh-post-thumb img {
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.gh-post-card-cat {
  color: var(--gh-green);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 12px;
}

.gh-related-posts {
  padding: 0 0 90px;
}

.gh-related-posts h2 {
  margin-bottom: 40px;
}

/* Testimonials page ------------------------------------------------------ */
.gh-testi-page {
  padding: 72px 0 90px;
}

.gh-testi-page .gh-testi-card {
  height: 100%;
  margin: 0;
}

.gh-testi-page blockquote {
  margin: 0;
}

/* Video Center ------------------------------------------------------------ */
.gh-video,
.gh-video-frame {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 4px;
}

.gh-video {
  position: relative;
  padding: 0;
  cursor: pointer;
  background-color: var(--gh-dark-blue);
  background-size: cover;
  background-position: center;
}

.gh-video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background-color: var(--gh-green);
  color: var(--gh-white);
  font-size: 24px;
  transition: transform 0.2s ease;
}

.gh-video:hover .gh-video-play,
.gh-video:focus-visible .gh-video-play {
  transform: translate(-50%, -50%) scale(1.08);
}

.gh-video:focus-visible {
  outline: 3px solid var(--gh-green);
  outline-offset: 3px;
}

.gh-video-title {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 20px;
  color: var(--gh-dark-blue);
  margin: 16px 0 0;
}

/* Single post: hero text aligned with the centred reading column */
.gh-post-hero .container > * {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

/* Designer rows use Bootstrap g-5 (3rem gutter): its -1.5rem row margins exceed the 12px
   container padding below 1200px (the container is full width there) and cause 12px of horizontal scroll. */
@media (max-width: 1199.98px) {
  .row.g-5 {
    --bs-gutter-x: 1.5rem;
  }
}

/* Home testimonials: equal-height cards (slick) */
.gh-testi .slick-track {
  display: flex;
}

.gh-testi .slick-slide {
  height: auto;
}

.gh-testi .slick-slide > div,
.gh-testi .slick-slide .gh-testi-card {
  height: 100%;
}

/* Header: logo keeps its ratio; the menu collapses below 1200px (navbar-expand-xl in header.php)
   because the 7 uppercase links + search + CTA do not fit below 1200px. Between 1200 and 1439 they are
   tightened to fit (at 1200 with full spacing the header overflowed by 128px). */
.gh-navbar .navbar-brand {
  flex-shrink: 0;
}

.gh-navbar .navbar-brand img {
  width: auto;
  max-width: none;
}

.gh-navbar .nav-link {
  white-space: nowrap;
}

@media (max-width: 1199.98px) {
  .gh-navbar .navbar-collapse {
    padding: 8px 0 20px;
  }

  .gh-navbar .navbar-nav .nav-link {
    padding: 12px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }
}

/* Small labels: 11px floor for readability (designer had 8.4-10px). Section-scoped because
   style.css loads after this file and would win at equal specificity. */
.gh-team .gh-team-badge,
.gh-outcomes .gh-outcomes-badge,
.gh-outcomes .gh-outcomes-tag {
  font-size: 11px;
}

/* Our Firm stats: stacked on phones (were 3 squeezed columns at every width) */
@media (max-width: 575.98px) {
  .gh-story .gh-story-stat {
    padding: 20px 24px;
  }
}

/* Contact info grid: email fits its cell between 992 and 1199px */
@media (max-width: 1199.98px) {
  .gh-contact-page .gh-contact-page-info-value {
    font-size: 16px;
  }
}

/* Phone numbers in body copy do not split at their hyphens */
.gh-content-block-inner a[href^="tel:"],
.gh-prose a[href^="tel:"] {
  white-space: nowrap;
}

/* Attorney breadcrumb: wrap between items, never inside a word */
.gh-attorney-hero .gh-attorney-breadcrumb {
  flex-wrap: wrap;
  row-gap: 4px;
}

.gh-attorney-hero .gh-attorney-breadcrumb a,
.gh-attorney-hero .gh-attorney-breadcrumb .current {
  word-break: normal;
  overflow-wrap: normal;
}

@media (max-width: 575.98px) {
  .gh-attorney-hero .gh-attorney-breadcrumb {
    font-size: 14px;
  }

  /* Floated images in imported posts/pages: full width on phones so text is not squeezed beside them */
  .gh-prose img.alignleft,
  .gh-prose img.alignright,
  .gh-prose .alignleft,
  .gh-prose .alignright,
  .gh-content-block-inner img.alignleft,
  .gh-content-block-inner img.alignright {
    float: none;
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0 0 20px;
  }
}

/* Award logos: centre the wrapped row instead of leaving a lone badge at the left */
.gh-logos .gh-logos-row {
  justify-content: center;
}

/* Attorney card below 1200px: photo beside text from 768, stacked on phones; no empty white strip above the photo */
@media (max-width: 1199.98px) {
  .gh-attorney-card .gh-attorney-photo-wrap::before {
    top: 0;
    border-radius: 6px 0 0 0;
  }

  .gh-attorney-card .gh-attorney-photo {
    object-fit: cover;
    object-position: top center;
  }
}

@media (max-width: 767.98px) {
  .gh-attorney-card .gh-attorney-photo-wrap::before {
    border-radius: 6px 6px 0 0;
  }

  .gh-attorney-card .gh-attorney-photo {
    max-height: 420px;
  }
}

/* ===================== Figma-comparison fixes (2026-09-22) ===================== */

/* Main-menu dropdowns */
.gh-navbar .gh-nav-dropdown {
  position: relative;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.gh-navbar .gh-nav-toggle {
  background: none;
  border: 0;
  padding: 4px 6px;
  margin-left: -6px;
  color: var(--gh-white);
  font-size: 10px;
  line-height: 1;
  cursor: pointer;
  opacity: 0.8;
}

.gh-navbar .gh-nav-toggle:hover,
.gh-navbar .gh-nav-toggle:focus-visible {
  opacity: 1;
  color: var(--gh-green);
}

.gh-navbar .gh-nav-sub {
  display: none;
  list-style: none;
  margin: 0;
  padding: 10px 0;
  background-color: var(--gh-dark-blue);
  border-top: 2px solid var(--gh-green);
  box-shadow: 0 16px 32px rgba(0, 20, 55, 0.25);
  z-index: 1050;
}

.gh-navbar .gh-nav-sub a {
  display: block;
  padding: 9px 20px;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--gh-white);
  text-decoration: none;
  white-space: nowrap;
}

.gh-navbar .gh-nav-sub a:hover,
.gh-navbar .gh-nav-sub a:focus-visible {
  color: var(--gh-green);
  background-color: rgba(255, 255, 255, 0.05);
}

.gh-navbar .gh-nav-dropdown.is-open > .gh-nav-sub {
  display: block;
}

.gh-navbar .gh-nav-dropdown.is-open > .gh-nav-toggle i {
  transform: rotate(180deg);
}

@media (min-width: 1200px) {
  .gh-navbar .gh-nav-sub {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 230px;
    border-radius: 0 0 4px 4px;
  }

  .gh-navbar .gh-nav-dropdown:hover > .gh-nav-sub,
  .gh-navbar .gh-nav-dropdown:focus-within > .gh-nav-sub {
    display: block;
  }
}

@media (max-width: 1199.98px) {
  .gh-navbar .gh-nav-dropdown > .nav-link {
    flex: 1;
  }

  .gh-navbar .gh-nav-toggle {
    padding: 12px 14px;
    font-size: 12px;
  }

  .gh-navbar .gh-nav-sub {
    flex-basis: 100%;
    box-shadow: none;
    border-top: 0;
    padding: 0 0 8px 12px;
    background: transparent;
  }
}

/* Back-to-top: brand navy with green hover (was Bootstrap primary blue) */
.top-button.gh-to-top {
  background-color: var(--gh-dark-blue);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--gh-white);
  box-shadow: 0 8px 20px rgba(0, 20, 55, 0.25);
}

.top-button.gh-to-top:hover,
.top-button.gh-to-top:focus-visible {
  background-color: var(--gh-green);
  border-color: var(--gh-green);
  color: var(--gh-white);
}

/* Eyebrows on dark sections: green as in the design */
.gh-whychoose .gh-whychoose-header .gh-eyebrow,
.gh-insights .gh-insights-header .gh-eyebrow {
  color: var(--gh-green);
}

/* Hero rating: stars + score on one line, "Verified by Trustindex" beneath */
.gh-hero .gh-rating {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 10px;
  row-gap: 2px;
}

.gh-hero .gh-rating .score {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 15px;
  color: var(--gh-white);
}

.gh-hero .gh-rating .verified {
  flex-basis: 100%;
  margin-left: 0;
}

/* Team strips: role line under the name, intro, full-team link */
.gh-team .gh-team-role {
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.45;
  color: var(--gh-text);
  margin: 4px 0 8px;
}

.gh-team .gh-team-intro {
  margin-top: 36px;
}

.gh-team .gh-team-more {
  margin-top: 36px;
  text-align: center;
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .gh-team .row-cols-lg-5 > * {
    flex: 0 0 auto;
    width: 33.333%;
  }
}

/* Current Cases: Read More sized to its label, as designed */
.gh-cases .gh-cases-card .btn-gh-card-outline {
  align-self: flex-start;
  width: auto;
  padding-left: 28px;
  padding-right: 28px;
}

/* Case results: every card links to its own page, so none of them is a bare div any more. */
.gh-case-grid-card.is-static:hover {
  transform: none;
}

/* Consultation form: full-width gradient Submit; asterisks already mark required fields */
.gh-contact-form .gform_wrapper.gform-theme .gform_footer,
.gh-contact-page-form-wrap .gform_wrapper.gform-theme .gform_footer {
  display: block;
}

/* GF's framework rule (.gform-theme.gform-theme--framework.gform_wrapper .button:where(...)) sets
   inline-size from --gf-local-width:auto; the doubled .button class outranks it without !important. */
.gh-contact-form .gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button.button,
.gh-contact-page-form-wrap .gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button.button {
  --gf-local-width: 100%;
  width: 100%;
  inline-size: 100%;
  justify-content: center;
  background-image: linear-gradient(90deg, #319529 0%, #1e6a17 100%);
  border: 0;
  padding: 16px 24px;
  letter-spacing: 0.08em;
}

.gh-contact-form .gform_wrapper.gform-theme .gform_footer .gform_button:hover,
.gh-contact-page-form-wrap .gform_wrapper.gform-theme .gform_footer .gform_button:hover {
  background-image: linear-gradient(90deg, #277a20 0%, #185714 100%);
}

.gform_wrapper.gform-theme .gform_required_legend {
  display: none;
}

/* Contact map: greyscale and design height */
.gh-map .gh-map-iframe {
  filter: grayscale(1);
  min-height: 420px;
  height: 420px;
}

@media (max-width: 767.98px) {
  .gh-map .gh-map-iframe {
    min-height: 300px;
    height: 300px;
  }
}

/* Mobile menu button: Bootstrap's default icon is dark; the header is navy */
.gh-navbar .navbar-toggler-icon {
  filter: invert(1) brightness(2);
}

.gh-navbar .navbar-toggler:focus-visible {
  box-shadow: 0 0 0 2px var(--gh-green);
}

/* Attorney name: on phones the role sits on its own line without a dangling separator */
@media (max-width: 767.98px) {
  .gh-attorney-title .sep {
    display: none;
  }

  .gh-attorney-title .role {
    display: block;
  }
}

/* Header between 1200 and 1439: the tightening lives in style.css, immediately after the base
   .gh-navbar .navbar-nav .nav-link rule. It has to, because style.css is enqueued after this file
   and the two selectors carry the same specificity, so whichever comes last in source order wins.
   Keeping them apart is what let the base rule silently beat the media query. */


/* Practice/case breadcrumb: same treatment as the attorney breadcrumb. Without this the flex row
   is nowrap, so on a phone "Practice Areas" is shrunk to ~61px and the word itself breaks
   ("Practic / e / Areas" on /goza-honnold-handling-livanova-3t-heater-cooler-device-cases/). */
.gh-practice-hero .gh-practice-breadcrumb {
  flex-wrap: wrap;
  row-gap: 4px;
}

.gh-practice-hero .gh-practice-breadcrumb .current,
.gh-practice-hero .gh-practice-breadcrumb .sep {
  flex: 0 0 auto;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

.gh-practice-hero .gh-practice-breadcrumb .active {
  word-break: normal;
  overflow-wrap: anywhere;
}

@media (max-width: 575.98px) {
  .gh-practice-hero .gh-practice-breadcrumb {
    font-size: 14px;
  }
}

/* Migrated body content sometimes carries hard pixel widths copied from the old site (a 570px
   bordered callout on /mismanagement-of-pregnancymiscarriagebleed/ overflowed a 390px phone by
   192px, and body overflow-x:hidden clipped the text rather than letting it scroll).
   max-width is a different property from the inline width, so this wins without !important. */
.gh-prose [style*="width"],
.gh-page-body [style*="width"],
.gh-practice-body [style*="width"],
.gh-content-area [style*="width"] {
  max-width: 100%;
  box-sizing: border-box;
}

/* Desktop nav: the label and its chevron must stay on one line.
   .gh-nav-dropdown is a flex row with flex-wrap:wrap so the mobile sub-menu can drop to its own line.
   On desktop the <li> still had flex-shrink:1, so the nav row squeezed it to 93px when it needs 106px
   (link 88 + chevron 25 - 6 margin) and the wrap pushed the chevron onto a second line - the chevrons
   sitting under ABOUT / PRACTICE AREAS / CASES. Lock the row above the hamburger breakpoint. */
@media (min-width: 1200px) {
  .gh-navbar .gh-nav-dropdown {
    flex-wrap: nowrap;
    flex-shrink: 0;
  }
}

/* WordPress alignment classes in migrated content.
   img.alignleft carried `margin: 28px 0` from the generic prose image rule - float with no horizontal
   gap, so wrapped text ran flush against the image edge (101 of 268 pages carry one floated image,
   e.g. /what-can-i-do-i-injured-uninsured-motorist-missouri/ where the image right edge and the text
   left edge were both at x=613). The mobile rule below 576px already un-floats these and is unchanged. */
@media (min-width: 576px) {
  .gh-prose img.alignleft,
  .gh-prose .alignleft,
  .gh-page-body img.alignleft,
  .gh-content-block-inner img.alignleft,
  .gh-content-area img.alignleft {
    float: left;
    margin: 6px 32px 24px 0;
  }

  .gh-prose img.alignright,
  .gh-prose .alignright,
  .gh-page-body img.alignright,
  .gh-content-block-inner img.alignright,
  .gh-content-area img.alignright {
    float: right;
    margin: 6px 0 24px 32px;
  }
}

.gh-prose img.aligncenter,
.gh-page-body img.aligncenter,
.gh-content-block-inner img.aligncenter,
.gh-content-area img.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* Minimum tap targets (WCAG 2.5.8, 24x24 CSS px).
   Measured before this rule: Read More 121x21 at both 1440 and 390 (125 occurrences across the probe
   run), desktop nav chevron 25x18 and search button 12x29. The mobile nav chevron (43x36), search
   (32x29) and hamburger (54x38) already passed and are untouched. */
.gh-content-readmore-btn {
  min-height: 24px;
  padding-top: 2px;
  padding-bottom: 2px;
}

@media (min-width: 1200px) {
  .gh-navbar .gh-nav-toggle {
    padding-top: 7px;
    padding-bottom: 7px;
  }

  .gh-navbar .btn-icon {
    padding-left: 12px;
    padding-right: 12px;
  }
}

/* Contact page guidance sections (copy package 2026-10-15) */
.gh-contact-page-notes {
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid var(--gh-line, #e3e8ef);
}

.gh-contact-page-note-heading {
  font-family: var(--font-heading);
  font-size: 17px;
  font-weight: 500;
  color: var(--gh-dark-blue);
  margin: 0 0 6px;
}

.gh-contact-page-note-text {
  font-size: 15px;
  line-height: 1.7;
  margin: 0 0 20px;
}

.gh-contact-page-notes p:last-child {
  margin-bottom: 0;
}

/* Body-copy band inside the designed templates (client October 2026 copy package) -------
   home.php / our-firm.php / contact.php / practive-area.php / case-study.php render their
   layout from ACF; template-parts/gh-page-prose.php adds the page's body copy underneath
   those sections. The band needs its own ground so it does not read as part of the
   designed section above it. */
.gh-page-body-inline {
  background-color: #fff;
  border-top: 1px solid var(--gh-light-gray, #f0f0f0);
}

.gh-page-body-inline .gh-prose > h2:first-child {
  margin-top: 0;
}

/* "Learn more" internal-link cards ------------------------------------------------------
   Every page in the client's October content package supplies a list of internal links. As a
   plain <ul> in the middle of the prose they read as loose underlined text, so they are rendered
   as the same bordered cards the design already uses for "Related Practice Areas"
   (style.css .gh-related-practice-card). The markup comes from post_content, so the selectors
   carry an extra element to outrank .gh-content-list, which the practice-detail renderer adds to
   every list in the body (inc/migration-render.php:557) and which paints a green bullet. */
.gh-learnmore-title {
  margin-bottom: 20px;
}

ul.gh-learnmore {
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 16px;
}

ul.gh-learnmore > li {
  position: static;
  margin: 0;
  padding: 0;
}

ul.gh-learnmore > li::before {
  content: none;
}

ul.gh-learnmore > li > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 100%;
  padding: 20px;
  border: 1px solid var(--gh-border);
  border-radius: 4px;
  text-decoration: none;
  transition: border-color 0.3s ease, background-color 0.3s ease;
}

ul.gh-learnmore > li > a > span {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 18px;
  line-height: 118%;
  letter-spacing: 0.02em;
  color: #001437;
}

ul.gh-learnmore > li > a::after {
  content: "\2192";
  flex-shrink: 0;
  color: var(--gh-green);
  font-size: 16px;
  line-height: 1;
  transition: transform 0.3s ease;
}

ul.gh-learnmore > li > a:hover {
  border-color: var(--gh-border-green);
  background-color: var(--gh-light-gray);
}

ul.gh-learnmore > li > a:hover::after {
  transform: translateX(4px);
}

ul.gh-learnmore > li > a:focus-visible {
  outline: 2px solid var(--gh-green);
  outline-offset: 2px;
}

@media (max-width: 575.98px) {
  ul.gh-learnmore {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  ul.gh-learnmore > li > a {
    padding: 16px;
  }

  ul.gh-learnmore > li > a > span {
    font-size: 17px;
  }
}

/* Single case result (single-case_study.php) -------------------------------------------
   Built from the existing hero and prose tokens so a result page reads as part of the design
   rather than a new layout. The firm's summaries are 24-53 words, so the page is deliberately
   short: banner, the summary, other results, the shared CTA band. */
.gh-case-single-hero {
  position: relative;
  background-color: var(--gh-dark-blue);
  background-size: cover;
  background-position: center;
  padding: 96px 0 84px;
}

.gh-case-single-hero-overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(19, 46, 91, 0.82);
}

.gh-case-single-hero-content {
  position: relative;
  z-index: 1;
}

.gh-case-single-breadcrumb {
  font-size: 14px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 14px;
}

.gh-case-single-breadcrumb a {
  color: var(--gh-green);
  text-decoration: none;
}

.gh-case-single-breadcrumb a:hover {
  text-decoration: underline;
}

.gh-case-single-figure {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 54px;
  line-height: 1.05;
  color: var(--gh-green);
  margin-bottom: 8px;
}

.gh-case-single-title {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: 34px;
  line-height: 1.2;
  color: #fff;
  margin: 0;
  max-width: 24ch;
}

.gh-case-single-body {
  padding: 64px 0 72px;
}

.gh-case-single-disclaimer {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid var(--gh-border);
  font-size: 14px;
  line-height: 1.6;
  color: var(--gh-muted, #5d6b80);
}

@media (max-width: 767.98px) {
  .gh-case-single-hero {
    padding: 64px 0 56px;
  }

  .gh-case-single-figure {
    font-size: 38px;
  }

  .gh-case-single-title {
    font-size: 26px;
  }

  .gh-case-single-body {
    padding: 44px 0 52px;
  }
}

/* Single case result (single-case_study.php) -------------------------------------------
   Built from the existing hero and prose tokens so a result page reads as part of the design
   rather than a new layout. The firm's summaries are 24-53 words, so the page is deliberately
   short: banner, the summary, other results, the shared CTA band. */
.gh-case-single-hero {
  position: relative;
  background-color: var(--gh-dark-blue);
  background-size: cover;
  background-position: center;
  padding: 96px 0 84px;
}

.gh-case-single-hero-overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(19, 46, 91, 0.82);
}

.gh-case-single-hero-content {
  position: relative;
  z-index: 1;
}

.gh-case-single-breadcrumb {
  font-size: 14px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 14px;
}

.gh-case-single-breadcrumb a {
  color: var(--gh-green);
  text-decoration: none;
}

.gh-case-single-breadcrumb a:hover {
  text-decoration: underline;
}

.gh-case-single-figure {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 54px;
  line-height: 1.05;
  color: var(--gh-green);
  margin-bottom: 8px;
}

.gh-case-single-title {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: 34px;
  line-height: 1.2;
  color: #fff;
  margin: 0;
  max-width: 24ch;
}

.gh-case-single-body {
  padding: 64px 0 72px;
}

.gh-case-single-disclaimer {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid var(--gh-border);
  font-size: 14px;
  line-height: 1.6;
  color: var(--gh-muted, #5d6b80);
}

@media (max-width: 767.98px) {
  .gh-case-single-hero {
    padding: 64px 0 56px;
  }

  .gh-case-single-figure {
    font-size: 38px;
  }

  .gh-case-single-title {
    font-size: 26px;
  }

  .gh-case-single-body {
    padding: 44px 0 52px;
  }
}

/* Home: practice-area link row (templates/home.php) -------------------------------------
   The October 2026 copy lists nine practice areas by name. They sit under the four cards as a
   quiet row of links rather than nine more slides, so the four areas the copy actually describes
   keep the emphasis. Pills, not a bulleted list: at nine items a list reads as a column of text,
   while pills scan in two or three lines and give each name a 44px tap target. */
.gh-practice-links {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 40px 0 0;
  padding: 28px 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.gh-practice-links > li {
  margin: 0;
  padding: 0;
}

.gh-practice-links > li::before {
  content: none;
}

.gh-practice-links a,
.gh-practice-links span {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: #fff;
  text-decoration: none;
  transition: background-color 0.25s ease, border-color 0.25s ease;
}

.gh-practice-links a:hover,
.gh-practice-links a:focus-visible {
  background-color: var(--gh-green);
  border-color: var(--gh-green);
  color: #fff;
}

.gh-practice-links a:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* The practice icons are SVG now, so give them a consistent box whatever the drawing's aspect. */
.gh-practice-card img.gh-practice-icon {
  width: 48px;
  height: 48px;
  object-fit: contain;
}

@media (max-width: 575.98px) {
  .gh-practice-links {
    gap: 8px;
    margin-top: 32px;
    padding-top: 22px;
  }

  .gh-practice-links a,
  .gh-practice-links span {
    padding: 9px 14px;
    font-size: 13.5px;
  }
}

/* Home: prose blocks ---------------------------------------------------------------------
   Several of the designed fields render one paragraph each. The copy document gives two or three
   under most of its headings, so these wrappers let wpautop keep the breaks instead of running
   the sentences together. */
.gh-prose-block > p:first-child { margin-top: 0; }
.gh-prose-block > p:last-child { margin-bottom: 0; }

/* Home: attorney quote band --------------------------------------------------------------
   The firm's own voice, so it is set apart from the client testimonial slider further down.
   Measure is held near 70 characters, the readable range. */
.gh-quoteband {
  background-color: var(--gh-light-gray);
  padding: 76px 0;
}

.gh-quoteband-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 40px;
  align-items: start;
}

.gh-quoteband-item {
  margin: 0;
  padding-left: 26px;
  border-left: 3px solid var(--gh-green);
  max-width: 70ch;
}

.gh-quoteband-item blockquote {
  margin: 0;
  padding: 0;
  border: 0;
}

.gh-quoteband-item blockquote p {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: 20px;
  line-height: 1.55;
  color: var(--gh-dark-blue);
}

.gh-quoteband-item figcaption {
  margin-top: 16px;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gh-green);
}

/* Home: contact details from the document ------------------------------------------------ */
.gh-contact-cta-line {
  margin-top: 18px;
  font-weight: 600;
  color: #fff;
}

.gh-contact-address {
  margin-top: 6px;
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.82);
}

/* Home: legal fine print ------------------------------------------------------------------
   Dark text on a light ground. The skill's accessibility rule puts normal text at 4.5:1 minimum
   and calls out grey-on-grey, which is the usual treatment for disclosures like these;
   #4a4a4a on #F5F5F5 clears that. */
.gh-fineprint {
  background-color: var(--gh-light-gray);
  border-top: 1px solid var(--gh-border);
  padding: 34px 0 40px;
}

.gh-fineprint-inner {
  max-width: 78ch;
  font-family: var(--font-body);
  font-size: 13.5px;
  line-height: 1.7;
  color: #4a4a4a;
}

.gh-fineprint-inner p { margin: 0 0 10px; }
.gh-fineprint-inner p:last-child { margin-bottom: 0; }

@media (max-width: 767.98px) {
  .gh-quoteband { padding: 52px 0; }
  .gh-quoteband-grid { gap: 30px; }
  .gh-quoteband-item blockquote p { font-size: 18px; }
  .gh-fineprint { padding: 26px 0 32px; }
}

/* Continuous bio pages (gh_bio_continuous): the copy runs in order, in sections that share the card's edges. */
.gh-attorney-subtitle {
  margin: 8px 0 0;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 18px;
  line-height: 130%;
  color: var(--gh-green);
}
.gh-attorney-intro {
  padding-top: 8px;
}
.gh-attorney-intro p.gh-attorney-note {
  display: inline-block;
  padding: 8px 14px;
  border-left: 3px solid var(--gh-green);
  background: var(--gh-light-gray);
  font-weight: 500;
  color: var(--gh-dark-blue);
}
.gh-bio-content.gh-bio-content--continuous {
  padding: 24px 0 0;
}
.gh-bio-flow h2 {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 26px;
  line-height: 120%;
  color: var(--gh-dark-blue);
  margin: 0;
}
.gh-bio-flow h3 {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 18px;
  line-height: 130%;
  color: var(--gh-dark-blue);
  margin: 0 0 10px;
}
.gh-bio-flow ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.gh-bio-flow li {
  position: relative;
  padding: 7px 0 7px 18px;
  font-size: 16px;
  line-height: 145%;
  color: var(--gh-text);
}
.gh-bio-flow li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 16px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gh-green);
}
.gh-bio-flow p:last-child {
  margin-bottom: 0;
}
.gh-bio-flow .gh-biolist-cols {
  columns: 2;
  column-gap: 40px;
}
.gh-bio-flow .gh-biolist-cols li {
  break-inside: avoid;
}

/* Credentials: Practice Areas, Education and Bar Admissions read as one panel. */
.gh-biofacts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
  margin-bottom: 8px;
  padding: 36px 40px;
  background: var(--gh-light-gray);
  border-top: 3px solid var(--gh-green);
}
.gh-biofacts--1 {
  grid-template-columns: minmax(0, 1fr);
}
.gh-biofacts--1 ul {
  columns: 2;
  column-gap: 40px;
}
.gh-biofacts--1 li {
  break-inside: avoid;
}
.gh-biofacts--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.gh-biofact h2 {
  font-size: 20px;
  margin-bottom: 12px;
}

/* Sections: heading on the left edge of the card, copy beside it, a rule between each. */
.gh-biosec {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 48px;
  padding: 44px 0;
  border-bottom: 1px solid var(--gh-border);
}
.gh-biosec-body {
  max-width: 820px;
}
.gh-biosec-body > ul + h3,
.gh-biosec-body > ul + p,
.gh-biosec-body > p + h3 {
  margin-top: 24px;
}
.gh-biosec-body > p + ul {
  margin-top: -8px;
}

/* Case results use the same tile as the home page. */
.gh-bioresults {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}
.gh-bioresults:last-child {
  margin-bottom: 0;
}
.gh-bioresult {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px 20px;
  background: var(--gh-light-gray);
  box-shadow: inset 0 0 0 1px rgba(var(--gh-dark-blue-rgb), 0.08);
}
.gh-bioresult-amount {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: 28px;
  line-height: 1.1;
  color: var(--gh-green);
}
.gh-bioresult-label {
  font-weight: 500;
  font-size: 15px;
  line-height: 140%;
  color: var(--gh-dark-blue);
}
.gh-bio-flow .gh-bioresult-note {
  margin: 0;
  font-size: 14px;
  line-height: 150%;
}

/* Three or more subsections become cards. */
.gh-biosubs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.gh-biosub {
  padding: 22px 24px;
  background: var(--gh-white);
  box-shadow: inset 0 0 0 1px var(--gh-border);
  border-left: 3px solid var(--gh-green);
}
.gh-biosub.is-wide {
  grid-column: 1 / -1;
}
.gh-biosubs + p,
p + .gh-biosubs {
  margin-top: 4px;
}
.gh-bio-flow .gh-biosub p {
  margin-bottom: 10px;
}
.gh-bio-flow .gh-biosub p:last-child {
  margin-bottom: 0;
}

.gh-bio-content--continuous .gh-bio-cta {
  margin-top: 32px;
}

@media (max-width: 991.98px) {
  .gh-biofacts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 28px;
  }
  .gh-biosec {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    padding: 34px 0;
  }
  .gh-biosec-body {
    max-width: none;
  }
}
@media (max-width: 767.98px) {
  .gh-biofacts,
  .gh-biofacts--2 {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
    padding: 24px 20px;
  }
  .gh-biofacts--1 ul,
  .gh-bio-flow .gh-biolist-cols {
    columns: 1;
  }
  .gh-bioresults,
  .gh-biosubs {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Team card before a headshot arrives: initials on navy instead of an empty box. */
.gh-team-photo--none {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--gh-dark-blue);
}
.gh-team-initials {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: 56px;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.85);
}

/* Practice intro: the final copy runs to several paragraphs, so the image sits at the top of the row and
   stays in view while the text scrolls past it, instead of floating mid-column. Desktop only. */
@media (min-width: 992px) {
  .gh-practice-intro-row .gh-practice-intro-img {
    position: sticky;
    top: 120px;
  }
}

/* The checkmark section's row uses g-5 (24px negative side margins) inside a container with 12px
   padding. Where the container fills the viewport (about 1185-1199px wide) the row stuck out 12px
   and the page scrolled sideways (measured 2026-11-04). Clip only the empty gutter; clip (not hidden)
   creates no scroll container. */
.gh-why-choose-detail {
  overflow-x: clip;
}

/* Areas We Serve intro (templates/practive-area.php, gh_intro_* meta): firm-approved copy above the
   city link groups, 2026-11-07. Centered, readable measure, same white band as the link hub. */
.gh-page-intro {
  padding: 64px 0 0;
  background-color: var(--gh-white);
  text-align: center;
}
.gh-page-intro .container {
  max-width: 860px;
}
.gh-page-intro h2 {
  margin-bottom: 20px;
}
.gh-page-intro p {
  font-size: 17px;
  line-height: 1.7;
  margin-bottom: 12px;
}
.gh-page-intro + .gh-link-hub {
  padding-top: 40px;
}
@media (max-width: 767.98px) {
  .gh-page-intro { padding-top: 40px; text-align: left; }
}

/* Footer office details (footer.php, 2026-11-11): same muted white as the footer text. */
.gh-footer-address {
  margin: 18px 0 0;
  font-style: normal;
  font-size: 14px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.85);
}
.gh-footer-address-label {
  display: block;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 1.44px;
  text-transform: uppercase;
  color: var(--gh-white);
  margin-bottom: 4px;
}
.gh-footer-address a {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
}
.gh-footer-address a:hover {
  color: var(--gh-green);
}

/* Careers page call-to-action box (page 1003 content, 2026-11-12). */
.gh-careers-cta {
  margin: 40px 0 8px;
  padding: 28px 32px;
  background: rgba(49, 149, 41, 0.08);
  border-left: 4px solid var(--gh-green);
  border-radius: 4px;
}
.gh-careers-cta p:last-child {
  margin-bottom: 0;
}
/* .gh-prose a paints links green, which made the label green on the green button. */
.gh-prose .gh-careers-cta .btn-gh-primary,
.gh-prose .gh-careers-cta .btn-gh-primary:hover {
  display: inline-flex;
  height: 61px;
  margin: 8px 0 12px;
  color: var(--gh-white);
  text-decoration: none;
  text-transform: uppercase;
}
@media (max-width: 575.98px) {
  .gh-careers-cta { padding: 22px 18px; }
}
