/* Shared tokens. Component dimensions stay in their own sections for focused revisions. */
:root {
  --ld-navy: #062543;
  --ld-ink: #092457;
  --ld-accent: #b56314;
  --ld-cream: #faf7f2;
  --ld-serif: Georgia, "Times New Roman", serif;
  --ld-sans: Arial, Helvetica, sans-serif;
  --ld-container: 1120px;
  --ld-gutter: 32px;
  --ld-rule: #e5d2bc;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--ld-ink); background: #fff; font: 16px/1.5 var(--ld-sans); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--ld-accent); }
button, input { font: inherit; }
button, summary { cursor: pointer; }
button { color: inherit; }
a, button, summary, input { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--ld-accent); outline-offset: 5px; }
[hidden] { display: none !important; }
h1, h2, h3, p, figure { margin: 0; }
.ld-container { width: calc(100% - var(--ld-gutter) * 2); max-width: var(--ld-container); margin-inline: auto; }
.ld-icon { flex-shrink: 0; vertical-align: middle; }
.screen-reader-text, .ld-skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.ld-skip-link:focus { position: fixed; top: 12px; left: 12px; background: white; padding: 12px 20px; z-index: 1000; }
.ld-text-link { display: inline-flex; align-items: center; gap: 18px; color: var(--ld-accent); border-bottom: 1px solid currentColor; padding-bottom: 5px; line-height: 1.4; }
.ld-text-link:hover { color: var(--ld-ink); }
.ld-hero__cta { background: transparent; border: 0; border-bottom: 1px solid currentColor; padding: 0 0 5px; text-align: left; }
.ld-button { display: inline-flex; justify-content: center; align-items: center; gap: 9px; border: 1px solid var(--ld-accent); border-radius: 3px; padding: 9px 17px; min-height: 40px; color: #fff; background: var(--ld-accent); white-space: nowrap; }
.ld-button:hover { background: var(--ld-ink); color: #fff; border-color: var(--ld-ink); }
.ld-outline-button { display: inline-flex; gap: 24px; align-items: center; justify-content: space-between; border: 1px solid var(--ld-accent); padding: 11px 18px; color: var(--ld-accent); line-height: 1.5; font-size: 14px; }
.ld-outline-button:hover { background: var(--ld-accent); color: white; }
.ld-eyebrow { font: 600 12px/1.4 var(--ld-sans); letter-spacing: .13em; text-transform: uppercase; color: var(--ld-accent); }

/* Header: normal document flow; changing a label cannot change hero dimensions. */
.ld-header { position: relative; z-index: 5; border-bottom: 1px solid #e5e5e5; background: #fff; }
.ld-header__inner { position: relative; min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.ld-brand { display: inline-flex; flex-direction: column; flex-shrink: 0; text-align: center; line-height: 1; }
.ld-brand__name { font: 26px/1.2 var(--ld-serif); letter-spacing: .055em; text-transform: uppercase; white-space: nowrap; }
.ld-brand__tagline { display: flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 8px; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; color: var(--ld-accent); }
.ld-brand__tagline::before, .ld-brand__tagline::after { content: ""; height: 1px; flex: 1; background: currentColor; }
.ld-brand__image { display: block; max-width: 245px; max-height: 53px; width: auto; object-fit: contain; }
.ld-brand__image--preset { width: 217.71px; max-width: 217.71px; height: auto; }
.ld-footer .ld-brand__image--preset { width: 245px; max-width: 100%; }
.ld-nav { display: flex; align-items: center; justify-content: flex-end; gap: 25px; font-size: 13px; }
.ld-nav__links { position: absolute; left: calc(50% + 42px); display: flex; align-items: center; gap: 25px; transform: translateX(-50%); }
.ld-nav__links > a, .ld-nav__trigger { position: relative; padding: 9px 2px; color: #17385e; font: 500 15px/1.35 "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif; letter-spacing: .015em; white-space: nowrap; transition: color 180ms ease; }
.ld-nav__links > a:not(:first-child)::before, .ld-nav__dropdown:not(:first-child) > summary::before { content: ""; position: absolute; top: 50%; left: -13px; width: 1px; height: 28px; background: rgba(181, 99, 20, .7); transform: translateY(-50%); }
.ld-sign-in { min-height: 36px; padding: 6px 15px 6px 11px; gap: 8px; font-size: 14px; }
.ld-menu-toggle { display: none; }
.ld-search__label { display: none; }

/* Hero: artwork, text, portrait, and information panel have independent layout rules. */
.ld-hero { position: relative; isolation: isolate; background: var(--ld-cream); }
.ld-hero__background { position: absolute; inset: 0; overflow: hidden; z-index: -1; }
.ld-hero__background img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ld-hero__inner { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 24px; align-items: stretch; min-height: 383px; }
.ld-hero__copy { padding-block: 47px 42px; align-self: center; }
.ld-hero h1 { max-width: 680px; font: 400 clamp(36px, 3.3vw, 46px)/1.08 var(--ld-serif); letter-spacing: -.035em; text-wrap: pretty; }
.ld-hero h1::first-letter { margin-right: .04em; }
.ld-hero__subtitle { margin-top: 10px; font: italic 27px/1.25 var(--ld-serif); color: var(--ld-accent); }
.ld-hero__description { max-width: 545px; margin-top: 21px; font-size: 15px; line-height: 1.5; }
.ld-hero__cta { margin-top: 23px; font: 18px/1.4 var(--ld-serif); }
.ld-featured-lawyer { position: relative; min-width: 0; display: flex; align-items: flex-end; justify-content: center; }
.ld-featured-lawyer__portrait { display: block; width: 305px; height: 355px; object-fit: contain; object-position: center bottom; }
.ld-featured-lawyer__panel { position: absolute; bottom: 24px; left: -12px; width: 245px; padding: 10px 18px; border: 1px solid rgba(255, 255, 255, .35); border-radius: 12px; background: rgba(255, 253, 249, .94); box-shadow: 0 10px 30px rgba(6, 37, 67, .055); }
@supports ((backdrop-filter: blur(12px)) or (-webkit-backdrop-filter: blur(12px))) {
  .ld-featured-lawyer__panel { background: rgba(255, 253, 249, .72); -webkit-backdrop-filter: blur(12px) saturate(110%); backdrop-filter: blur(12px) saturate(110%); }
}
.ld-featured-lawyer__panel strong { display: block; font: 19px/1.3 var(--ld-serif); letter-spacing: -.015em; }
.ld-featured-lawyer__panel > span { display: block; margin-top: 3px; font-size: 12px; line-height: 1.35; }
.ld-featured-lawyer__firm { color: #5c6066; }
.ld-featured-lawyer__panel > .ld-featured-lawyer__practice { color: #394858; margin-top: 6px; padding-top: 6px; border-top: 1px solid rgba(9, 36, 87, .09); line-height: 1.5; }
.ld-featured-lawyer__name { color: var(--ld-ink); }
.ld-featured-lawyer__profile { display: inline-flex; align-items: center; gap: 9px; margin-top: 10px; color: var(--ld-accent); font-size: 11px; letter-spacing: .025em; }
.ld-featured-lawyer__profile:hover,
.ld-featured-lawyer__profile:focus-visible,
.ld-featured-lawyer__profile:active { color: var(--ld-ink); }
.ld-featured-lawyer__panel .ld-icon { width: 16px; height: 16px; }
.ld-hero__inner--no-portrait { grid-template-columns: minmax(0, 760px); }

/* Editorial recognition band; isolated from the hero and following section. */
.ld-statistics { background: var(--ld-navy); color: #f0f2f4; padding-block: 34px; }
.ld-statistics__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:96px; }
.ld-statistic { position:relative; min-width:0; }
.ld-statistic::before { content:''; display:block; width:40px; height:2px; background:var(--ld-accent); margin-bottom:18px; }
.ld-statistic + .ld-statistic::after { content:''; position:absolute; left:-48px; top:0; bottom:0; width:1px; background:var(--ld-accent); opacity:.75; }
.ld-statistic h2 { font:400 30px/1.15 var(--ld-serif); letter-spacing:-.02em; margin:0 0 16px; color:#e4e6e8; }
.ld-statistic p { margin:0; color:#cbd2da; font:400 15px/1.45 var(--ld-serif); }
@media(min-width:1001px) { .ld-statistics { min-height:217px; display:flex; align-items:center; } }
@media(max-width:1000px) {
  .ld-statistics__grid { gap:48px; }
  .ld-statistic + .ld-statistic::after { left:-24px; }
  .ld-statistic h2 { font-size:29px; }
  .ld-statistic p { font-size:16px; }
}
@media(max-width:760px) {
  .ld-statistics { padding-block:32px; }
  .ld-statistics__grid { grid-template-columns:1fr; gap:28px; }
  .ld-statistic + .ld-statistic { border-top:1px solid #b9824566; padding-top:28px; }
  .ld-statistic + .ld-statistic::after { display:none; }
}
/* Location list: alphabetical columns read top to bottom, left to right. */
.ld-locations { position: relative; isolation: isolate; overflow: hidden; padding-block: 52px 48px; background: #fff; }
.ld-locations__watermark { position: absolute; z-index: -1; pointer-events: none; width: min(94%, 1160px); height: calc(100% - 42px); left: 50%; bottom: 0; transform: translateX(-50%); object-fit: contain; opacity: .055; }
.ld-locations__map-highlight,
.ld-location-picker__callout { display: none; }
.ld-locations .ld-section-heading { margin-bottom: 50px; }
.ld-locations .ld-section-heading h2 { margin-top: 22px; font-size: 36px; }
.ld-section-heading { text-align: center; margin-bottom: 25px; }
.ld-eyebrow--ruled { display: flex; align-items: center; justify-content: center; gap: 12px; }
.ld-eyebrow--ruled::before, .ld-eyebrow--ruled::after { content: ""; height: 1px; width: 32px; background: var(--ld-accent); }
.ld-section-heading h2 { margin-top: 9px; font: 30px/1.2 var(--ld-serif); letter-spacing: -.025em; }
.ld-locations__columns { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 30px; }
.ld-locations__column { position: relative; min-width: 0; }
.ld-locations__column + .ld-locations__column::before { content: ""; position: absolute; left: -15px; top: 0; height: calc(100% - 55px); width: 1px; background: var(--ld-rule); }
.ld-locations__list { list-style: none; margin: 0; padding: 0; }
.ld-locations__list li { font-size: 16px; line-height: 1.5; }
.ld-locations__list a { display: inline-flex; gap: 16px; align-items: baseline; padding-block: 5px; }
.ld-locations__list--separate { margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--ld-rule); }
.ld-locations__list a::before { content: ""; width: 4px; height: 4px; flex-shrink: 0; background: var(--ld-accent); transform: rotate(45deg); align-self: center; opacity: .65; }
.ld-locations__list strong { font-weight: 700; }
/* Center the visible state lists rather than five partly empty tracks. */
@media (min-width: 1001px) {
  .ld-locations .ld-locations__columns { --ld-state-gap: clamp(32px, 6vw, 96px); grid-template-columns: repeat(5, max-content); justify-content: center; gap: var(--ld-state-gap); }
  .ld-locations .ld-locations__column + .ld-locations__column::before { left: calc(var(--ld-state-gap) / -2); }
}
.ld-location-picker { display: none; }

/* Footer. No selectors here reach into other components. */
.ld-footer { background: var(--ld-navy); color: #cbd5df; padding-block: 46px 23px; }
.ld-footer__grid { display: grid; grid-template-columns: minmax(0,1fr) repeat(3,max-content); gap: 46px; }
.ld-footer .ld-brand__name { font-size: 23px; }
.ld-footer .ld-brand__tagline { font-size: 7px; color: #dda155; }
.ld-footer__brand > p { max-width: 360px; font-size: 14px; line-height: 1.6; margin-top: 22px; }
.ld-footer__column { padding-left: 26px; border-left: 1px solid #c6964266; margin-block: 1px; }
.ld-footer__column h2 { font: 700 11px/1.4 var(--ld-sans); letter-spacing: .14em; text-transform: uppercase; color: #d7dfe8; margin-bottom: 17px; }
.ld-footer__column ul { list-style: none; margin: 0; padding: 0; }
.ld-footer__column li { font-size: 14px; line-height: 1.45; margin-bottom: 11px; }
.ld-footer__column a:hover, .ld-footer__column a:focus-visible { color: #c7ab82; text-decoration: underline; text-underline-offset: 3px; }
.ld-footer__placeholder { cursor: default; }
.ld-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid #c6964266; margin-top: 38px; padding-top: 22px; }
.ld-footer__copyright { font-size: 12px; }
.ld-footer__motto { color: #bda47f; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-align: right; text-transform: uppercase; }
.ld-empty { min-height: 50vh; padding-block: 80px; }
.ld-empty h1 { font: 40px/1.2 var(--ld-serif); margin-block: 16px; }
.ld-empty .ld-text-link { margin-top: 24px; }

/* Progressive enhancement: visible without JavaScript, and without observers. */
.ld-motion-ready .ld-reveal.is-pending { opacity: 0; transform: translateY(10px); }
.ld-motion-ready .ld-reveal { transition: opacity .5s ease, transform .5s ease; }

@media (min-width: 961px) {
  .ld-hero__inner { min-height: 483px; }
  .ld-hero__copy { position: relative; top: -20px; padding-block: 57px 52px; }
  .ld-hero h1 { font-size: clamp(44px, 3.65vw, 51px); }
  .ld-hero__subtitle { margin-top: 13px; font-size: 30px; }
  .ld-hero__description { max-width: 585px; margin-top: 25px; font-size: 17px; }
  .ld-hero__cta { position: relative; top: 15px; margin-top: 28px; font-size: 20px; }
  .ld-hero__cta .ld-icon { width: 22px; height: 22px; }
  .ld-featured-lawyer { justify-content: flex-end; }
  .ld-featured-lawyer__portrait { width: 385px; height: 450px; object-position: right bottom; }
  .ld-featured-lawyer__panel { left: -52px; width: 270px; bottom: 30px; padding: 12px 20px; }
  .ld-featured-lawyer__panel strong { font-size: 21px; }
  .ld-featured-lawyer__panel > span { font-size: 13px; }
  .ld-featured-lawyer__profile { font-size: 12px; }
  .ld-featured-lawyer__panel .ld-icon { width: 18px; height: 18px; }
}
@media (min-width: 1600px) {
  :root { --ld-container: 1200px; }
  .ld-hero__inner { min-height: 510px; }
  .ld-featured-lawyer__portrait { width: 405px; height: 475px; }
}
@media (max-width: 1100px) {
  .ld-header .ld-brand__image--preset { width: 177.8px; max-width: 177.8px; }
  :root { --ld-gutter: 28px; }
  .ld-header__inner { gap: 20px; }
  .ld-nav { gap: 15px; font-size: 12px; }
  .ld-nav__links { gap: 15px; }
  .ld-nav__links > a:not(:first-child)::before, .ld-nav__dropdown:not(:first-child) > summary::before { left: -8px; height: 24px; }
  .ld-brand__name { font-size: 24px; }
  .ld-hero__inner { grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); min-height: 370px; gap: 10px; }
  .ld-hero h1 { font-size: 40px; }
  .ld-hero__subtitle { font-size: 24px; }
  .ld-featured-lawyer__portrait { width: 280px; height: 340px; }
  .ld-featured-lawyer__panel { left: -6px; width: 225px; }
  .ld-locations__columns { gap: 24px; }
  .ld-locations__column + .ld-locations__column::before { left: -12px; }
  .ld-locations__list li { font-size: 15px; }
  .ld-locations__list a { gap: 9px; }
  .ld-footer__grid { gap: 24px; }
  .ld-footer__column { padding-left: 24px; }
}
@media (min-width: 961px) and (max-width: 1100px) {
  .ld-hero__inner { min-height: 470px; }
  .ld-hero h1 { font-size: 44px; }
  .ld-hero__subtitle { font-size: 27px; }
  .ld-featured-lawyer__portrait { width: 340px; height: 420px; }
  .ld-featured-lawyer__panel { left: -46px; width: 250px; }
}
/* Keep the four navigation items clear of the logo before the compact header. */
@media (min-width: 1101px) and (max-width: 1160px) {
  .ld-nav__links { left: calc(50% + 57px); gap: 15px; }
  .ld-nav__links > a:not(:first-child)::before, .ld-nav__dropdown:not(:first-child) > summary::before { left: -8px; }
}
@media (max-width: 1000px) {
  .ld-header__inner { flex-wrap: wrap; min-height: 70px; gap: 0; padding-block: 13px; }
  .ld-menu-toggle { display: inline-flex; background: transparent; border: 0; padding: 10px; }
  .ld-menu-toggle .ld-icon { width: 23px; height: 23px; }
  .ld-nav { width: 100%; align-items: stretch; flex-direction: column; gap: 0; font-size: 15px; padding-block: 16px 5px; }
  .ld-nav__links { position: static; align-items: stretch; flex-direction: column; gap: 0; transform: none; }
  .ld-js .ld-nav:not(.is-open) { display: none; }
  .ld-nav__links > a, .ld-nav__trigger { padding-block: 12px; border-top: 1px solid #e7e6e4; font-size: 16px; white-space: normal; }
  .ld-nav__links > a:not(:first-child)::before, .ld-nav__dropdown:not(:first-child) > summary::before { display: none; }
  .ld-search__label { display: inline; }
  .ld-sign-in { align-self: flex-start; margin-top: 5px; }
}
@media (max-width: 960px) {
  .ld-hero h1 { font-size: 37px; }
  .ld-hero__copy { padding-block: 34px; }
  .ld-hero__subtitle { font-size: 23px; }
  .ld-featured-lawyer__portrait { width: 255px; height: 315px; }
  .ld-featured-lawyer__panel { width: 213px; left: 0; bottom: 19px; }
  .ld-locations__columns { gap: 20px; }
  .ld-locations__column + .ld-locations__column::before { left: -10px; }
  .ld-locations__list li { font-size: 13px; }
  .ld-locations .ld-section-heading h2 { font-size: 30px; }
  .ld-section-heading h2 { font-size: 28px; }
  .ld-footer__grid { grid-template-columns: repeat(3,max-content); justify-content: space-between; gap: 32px 25px; }
  .ld-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 760px) {

  :root { --ld-gutter: 24px; }
  .ld-locations { overflow-x: clip; overflow-y: visible; min-height: 565px; padding-block: 43px 64px; }
  .ld-locations .ld-section-heading { margin-bottom: 0; }
  .ld-locations .ld-section-heading h2 { max-width: 520px; margin: 13px auto 0; font-size: 34px; line-height: 1.12; }
  .ld-locations__watermark { width: min(112%, 560px); height: 245px; top: 157px; bottom: auto; opacity: .1; }
  .ld-locations__map-highlight { position: absolute; z-index: 0; pointer-events: none; display: block; width: min(112%, 560px); height: 245px; left: 50%; top: 157px; transform: translateX(-50%); overflow: visible; }
  .ld-locations__map-highlight use { fill: #d28a35; stroke: #fff; stroke-width: 1.8px; opacity: .7; filter: drop-shadow(0 2px 3px rgba(6,37,67,.2)); transition: opacity 300ms ease; }
  .ld-locations__map-highlight.is-changing use { opacity: 0; }
  .ld-locations__columns { display: none; }
  .ld-location-picker { position: relative; z-index: 2; display: block; max-width: 520px; margin: 270px auto 0; color: var(--ld-ink); }
  .ld-location-picker__callout { position: absolute; right: 4px; bottom: calc(100% + 16px); display: block; margin: 0; padding: 7px 11px; border: 1px solid rgba(181,99,20,.2); border-radius: 999px; color: var(--ld-ink); background: rgba(255,255,255,.88); box-shadow: 0 5px 16px rgba(6,37,67,.07); font-size: 11px; line-height: 1.35; white-space: nowrap; transition: opacity 220ms ease, transform 220ms ease; }
  .ld-location-picker__callout.is-changing { opacity: 0; transform: translateY(3px); }
  .ld-location-picker__field { position: relative; display: flex; align-items: center; min-height: 56px; border: 1px solid #ccd8e5; border-radius: 8px; background: rgba(255,255,255,.96); box-shadow: 0 5px 18px rgba(6,37,67,.06); }
  .ld-location-picker.is-open .ld-location-picker__field { border-color: #367ebf; box-shadow: 0 0 0 2px rgba(54,126,191,.16), 0 5px 18px rgba(6,37,67,.07); }
  .ld-location-picker__field > .ld-icon { width: 21px; height: 21px; margin-left: 16px; }
  .ld-location-picker input { width: 100%; min-width: 0; height: 54px; border: 0; outline: 0; padding: 0 10px 0 14px; color: var(--ld-ink); background: transparent; font-size: 16px; -webkit-appearance: none; appearance: none; }
  .ld-location-picker input::-webkit-search-cancel-button { -webkit-appearance: none; }
  .ld-location-picker input::placeholder { color: #53647b; opacity: 1; }
  .ld-location-picker__toggle { align-self: stretch; width: 52px; flex: 0 0 52px; border: 0; background: transparent; }
  .ld-location-picker__toggle span { display: block; width: 11px; height: 11px; margin: -5px auto 0; border-right: 2px solid var(--ld-ink); border-bottom: 2px solid var(--ld-ink); transform: rotate(45deg); transition: transform 180ms ease, margin 180ms ease; }
  .ld-location-picker.is-open .ld-location-picker__toggle span { margin-top: 5px; transform: rotate(225deg); }
  .ld-location-picker__options { position: absolute; z-index: 3; top: calc(100% + 5px); left: 0; right: 0; max-height: min(310px, 46vh); overflow-y: auto; overscroll-behavior: contain; list-style: none; margin: 0; padding: 0 12px; border: 1px solid #d5dee8; border-radius: 6px; background: #fff; box-shadow: 0 15px 30px rgba(6,37,67,.16); -webkit-overflow-scrolling: touch; }
  .ld-location-picker__options li + li { border-top: 1px solid #e4e9ee; }
  .ld-location-picker__options a { display: block; min-height: 48px; padding: 12px 8px; font-size: 16px; line-height: 24px; }
  .ld-location-picker__options a:hover,
  .ld-location-picker__options a:focus-visible { color: var(--ld-ink); background: #edf4fb; outline-offset: -2px; }
  .ld-location-picker__empty { position: absolute; top: calc(100% + 5px); left: 0; right: 0; z-index: 3; margin: 0; padding: 17px 20px; border: 1px solid #d5dee8; border-radius: 6px; background: #fff; box-shadow: 0 15px 30px rgba(6,37,67,.16); font-size: 15px; }
  .ld-hero__inner { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
  .ld-hero h1 { font-size: 34px; }
  .ld-hero__subtitle { font-size: 22px; }
  .ld-hero__description { font-size: 14px; }
  .ld-hero__cta { font-size: 17px; }
  .ld-featured-lawyer__portrait { width: 250px; height: 310px; }
  .ld-featured-lawyer__panel { width: 205px; bottom: 24px; }
}
@media (max-width: 600px) {
  :root { --ld-gutter: 22px; }
  .ld-locations { z-index: 1; min-height: 533px; padding-bottom: 32px; }
  .ld-header__inner { min-height: 67px; padding-block: 10px; }
  .ld-brand__name { font-size: 23px; }
  .ld-brand__tagline { font-size: 7px; }
  .ld-hero__inner { display: flex; flex-direction: column; gap: 0; }
  .ld-hero__copy { padding-block: 32px 18px; align-self: stretch; }
  .ld-hero h1 { font-size: 36px; line-height: 1.1; max-width: 480px; }
  .ld-hero__subtitle { font-size: 24px; margin-top: 12px; }
  .ld-hero__description { margin-top: 18px; font-size: 15px; }
  .ld-hero__cta { margin-top: 19px; font-size: 18px; }
  .ld-featured-lawyer { width: 100%; height: 258px; justify-content: flex-end; }
  .ld-featured-lawyer__portrait { height: 258px; width: 222px; margin-right: 2px; }
  .ld-featured-lawyer__panel { width: 207px; left: 0; bottom: 18px; padding: 9px 13px; }
  .ld-featured-lawyer__panel strong { font-size: 18px; }

  .ld-footer { padding-block: 36px 22px; }
  .ld-footer__grid { grid-template-columns: 1fr 1fr; column-gap: 20px; row-gap: 27px; }
  .ld-footer__brand { grid-column: 1 / -1; }
  .ld-footer__brand > p { max-width: 400px; font-size: 13px; }
  .ld-footer__column { border-left: 0; padding-left: 0; }
  .ld-footer__column:last-child { grid-column: 1 / -1; }
  .ld-footer__column:last-child ul { display: flex; flex-wrap: wrap; gap: 6px 24px; }
  .ld-footer__column li { font-size: 13px; margin-bottom: 7px; }
}
@media (max-width: 480px) {
  .ld-footer__grid { grid-template-columns: 1fr; row-gap: 22px; }
  .ld-footer__brand, .ld-footer__column:last-child { grid-column: auto; }
  .ld-footer__column { padding-top: 20px; border-top: 1px solid #c6964266; }
  .ld-footer__column:last-child ul { display: block; }
  .ld-footer__bottom { display: block; margin-top: 26px; }
  .ld-footer__motto { margin-top: 10px; text-align: left; }
}
@media (max-width: 360px) {
  .ld-header .ld-brand__image--preset { width: 152.4px; max-width: 152.4px; }
  :root { --ld-gutter: 18px; }
  .ld-hero h1 { font-size: 32px; }
  .ld-hero__subtitle { font-size: 22px; }
  .ld-featured-lawyer__panel { width: 188px; }
  .ld-brand__name { font-size: 21px; }
}
/* Hero-only entrance sequence; transforms never change document layout. */
@keyframes ld-hero-rise {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes ld-hero-portrait {
  from { opacity: 0; transform: translateX(10px); }
  to { opacity: 1; transform: translateX(0); }
}
@media (prefers-reduced-motion: no-preference) {
  .ld-hero h1,
  .ld-hero__subtitle,
  .ld-hero__description,
  .ld-hero__cta { animation: ld-hero-rise 1000ms cubic-bezier(.22, .61, .36, 1) backwards; }
  .ld-hero__subtitle { animation-delay: 450ms; }
  .ld-hero__description { animation-delay: 900ms; }
  .ld-hero__cta { position: relative; animation-delay: 1950ms; border-bottom-color: transparent; }
  .ld-featured-lawyer__portrait { animation: ld-hero-portrait 1200ms cubic-bezier(.22, .61, .36, 1) 1800ms backwards; }
  .ld-featured-lawyer__panel { animation: ld-hero-rise 850ms ease-out 3200ms backwards; }
  .ld-hero__cta::after { content: ""; position: absolute; bottom: -1px; left: 0; right: 0; border-bottom: 1px solid currentColor; transition: right 220ms ease-out; }
  .ld-hero__cta .ld-icon { transition: transform 220ms ease-out; }
  .ld-hero__cta:hover::after,
  .ld-hero__cta:focus-visible::after { right: -8px; }
  .ld-hero__cta:hover .ld-icon,
  .ld-hero__cta:focus-visible .ld-icon { transform: translateX(3px); }
  .ld-hero__cta:focus-visible,
  .ld-featured-lawyer__panel:focus-within { animation: none; }
}
@media (max-width: 760px) and (prefers-reduced-motion: no-preference) {
  .ld-motion-ready .ld-locations { transform-origin: 50% 45%; transition: opacity 1100ms ease, transform 1100ms cubic-bezier(.22,.61,.36,1); }
  .ld-motion-ready .ld-locations.is-pending { opacity: 0; transform: scale(.985); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
  .ld-motion-ready .ld-reveal, .ld-motion-ready .ld-reveal.is-pending { opacity: 1; transform: none; transition: none; }
  .ld-location-picker__callout,
  .ld-locations__map-highlight use { transition: none; }
}
