/* ==========================================================================
   Coombs & Dunlap — Homepage
   Bootstrap 5.3 supplies the grid (containers, rows, columns) only.
   All spacing, padding and margins are defined here.
   ========================================================================== */

/* Tokens (from Figma variables)
   ========================================================================== */
:root {
  --burgundy-primary: #7b1e24;
  --burgundy-deep: #5d161a;
  --gold-accent: #b89b63;
  --bg-warm-ivory: #f5f5f4;
  --bg-stone-white: #fcfbf9;
  --ink: #1e1e1e;
  --ink-muted: #3f3f46;
  --line: #d9d9d9;
  --gold-soft: #c7ad94;

  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-heading: "Tiempos Headline", "Test Tiempos Headline", Georgia, "Times New Roman", serif;
  --font-body: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;

  --container-gutter: 40px;
}

/* Base
   ========================================================================== */
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.5;
  color: var(--ink);
  background: #fff;
}

h1, h2, h3, p, ul, address {
  margin: 0;
}

ul {
  padding: 0;
  list-style: none;
}

address {
  font-style: normal;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
}

/* Grid overrides — 1312px content width at ≥1400px (matches the 1512 artboard)
   ========================================================================== */
.container {
  --bs-gutter-x: var(--container-gutter);
}

@media (min-width: 1400px) {
  .container {
    max-width: 1352px;
  }
}

/* Shared components
   ========================================================================== */
.icon-arrow {
  display: block;
  flex-shrink: 0;
  transform: rotate(-90deg);
}

.eyebrow {
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--gold-accent);
}

.eyebrow--rule::after {
  content: "";
  width: 71px;
  height: 1px;
  background: var(--gold-accent);
}

/* Shorter, heavier trailing rule (About page) */
.eyebrow--short {
  gap: 10px;
  line-height: 24px;
}

.eyebrow--short::after {
  content: "";
  width: 40px;
  height: 1.5px;
  background: var(--gold-accent);
}

.eyebrow--tight {
  gap: 10px;
  line-height: 24px;
}

@media (max-width: 575.98px) {
  .eyebrow {
    font-size: 15px;
    letter-spacing: 1.5px;
  }

  .eyebrow--rule::after {
    width: 40px;
  }
}

.eyebrow--28 {
  gap: 12px;
}

.eyebrow--28::after {
  width: 28px;
}

/* Short gold accent rule */
.rule {
  display: block;
  flex-shrink: 0;
  width: 40px;
  height: 1.5px;
  background: var(--gold-accent);
}

.rule--48 { width: 48px; }
.rule--32 { width: 32px; }
.rule--28 { width: 28px; }
.rule--24 { width: 24px; }

.body-lg {
  font-size: 18px;
  line-height: 28px;
  color: var(--ink);
}

.section-title.section-title--light {
  color: #fff;
}

/* Tiempos variant (Attorney "Meet More" heading) */
.section-title.section-title--serif {
  font-family: var(--font-heading);
  font-weight: 400;
  line-height: 1.3333; /* 80 / 60 */
}

.section-title {
  font-family: var(--font-display);
  font-size: clamp(40px, 4vw, 60px);
  font-weight: 700;
  line-height: 1.1667;
  color: var(--burgundy-primary);
}

.section-head {
  --bs-gutter-x: 24px;
  --bs-gutter-y: 24px;
  align-items: flex-end;
}

.section-head .eyebrow {
  margin-bottom: 24px;
}

.btn-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 17px 32px;
  border-radius: 45px;
  background: var(--burgundy-primary);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  line-height: normal;
  transition: background-color .2s ease;
}

.btn-pill:hover,
.btn-pill:focus-visible {
  background: var(--burgundy-deep);
  color: #fff;
}

.btn-pill:hover .icon-arrow {
  transform: rotate(-90deg) translateY(2px);
}

.btn-outline-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 32px;
  border: 1px solid var(--bg-stone-white);
  border-radius: 40px;
  font-size: 13px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: .78px;
  color: var(--bg-stone-white);
  transition: background-color .2s ease, color .2s ease;
}

.btn-outline-pill:hover,
.btn-outline-pill:focus-visible {
  background: var(--bg-stone-white);
  color: var(--ink);
}

.btn-outline-pill:hover .icon-arrow {
  filter: brightness(0.12);
  transform: rotate(-90deg) translateY(2px);
}

.link-underline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 17px 0;
  border-bottom: 1px solid var(--burgundy-primary);
  color: var(--burgundy-primary);
  font-size: 16px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  white-space: nowrap;
}

.link-underline:hover,
.link-underline:focus-visible {
  color: var(--burgundy-deep);
}

.link-underline:hover .icon-arrow {
  transform: rotate(-90deg) translateY(2px);
}

.icon-arrow {
  transition: transform .2s ease;
}

/* Header / Nav
   ========================================================================== */
.site-header {
  position: relative;
  z-index: 10;
  background: #fff;
  border-bottom: 1px solid var(--line);
}

.site-header .navbar {
  padding: 32px 0;
}

.site-header__brand {
  display: block;
  flex-shrink: 0;
}

.site-header__brand img {
  display: block;
  width: 203px;
  height: auto;
}

.site-header__toggler {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  width: 48px;
  height: 48px;
  padding: 0 11px;
  border: 1px solid var(--line);
  border-radius: 5px;
}

.site-header__toggler:focus {
  box-shadow: 0 0 0 3px rgba(123, 30, 36, .2);
}

.site-header__toggler-bar {
  display: block;
  height: 2px;
  background: var(--burgundy-deep);
}

.site-header__links {
  gap: 36px;
}

.site-header__links a {
  display: block;
  font-size: 18px;
  font-weight: 500;
  line-height: normal;
  color: var(--ink);
  white-space: nowrap;
  transition: color .2s ease;
}

.site-header__links a:hover,
.site-header__links a:focus-visible {
  color: var(--burgundy-primary);
}

.site-header__cta {
  display: inline-block;
  padding: 14px 24px;
  border-radius: 5px;
  font-size: 24px;
  font-weight: 700;
  line-height: normal;
  color: var(--burgundy-deep);
  white-space: nowrap;
  transition: background-color .2s ease;
}

.site-header__cta:hover,
.site-header__cta:focus-visible {
  color: var(--burgundy-deep);
  background: var(--bg-warm-ivory);
}

/* Mobile menu */
@media (max-width: 1199.98px) {
  .site-header .navbar {
    padding: 20px 0;
  }

  .site-header__brand img {
    width: 150px;
  }

  .site-header__collapse {
    padding-top: 20px;
  }

  .site-header__links {
    gap: 0;
  }

  .site-header__links a {
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
  }

  .site-header__cta {
    margin-top: 16px;
    padding: 14px 0;
    font-size: 20px;
  }
}

@media (min-width: 1200px) {
  .site-header__collapse {
    justify-content: space-between;
    gap: 40px;
  }
}

@media (min-width: 1400px) {
  .site-header__collapse {
    justify-content: flex-start;
    gap: 0;
  }

  .site-header__links {
    margin-left: 201px;
  }

  .site-header__cta {
    margin-left: auto;
  }
}

/* Hero
   ========================================================================== */
.hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 757px;
  overflow: hidden;
  background: var(--ink);
}

.hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero__shade {
  position: absolute;
  inset: 0 auto 0 0;
  width: 73.15%; /* 1106 / 1512 */
  background: linear-gradient(to right, var(--ink), rgba(30, 30, 30, 0));
}

.hero__inner {
  position: relative;
  padding-bottom: 74px;
}

.hero__title {
  max-width: 787px;
  margin-bottom: 28px;
  font-family: var(--font-display);
  font-size: clamp(44px, 5.2vw, 78px);
  font-weight: 700;
  line-height: 1.1538; /* 90 / 78 */
  color: #fff;
}

.hero--about .hero__inner {
  padding-bottom: 90px;
}

.hero__eyebrow {
  margin-bottom: 28px;
  font-size: 15px;
  letter-spacing: 1.5px;
}

@media (max-width: 991.98px) {
  .hero {
    min-height: 560px;
  }

  .hero--about .hero__inner {
    padding-bottom: 56px;
  }

  .hero__shade {
    width: 100%;
    background: linear-gradient(to top, rgba(30, 30, 30, .9), rgba(30, 30, 30, .2));
  }

  .hero__inner {
    padding-bottom: 56px;
  }
}

/* Stats
   ========================================================================== */
.stats {
  padding: 40px 0;
  background: var(--bg-warm-ivory);
}

.stats__row {
  --bs-gutter-x: 40px;
}

.stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  min-height: 217px;
  padding: 32px;
  text-align: center;
}

.stat--icon {
  gap: 40px;
}

.stat__number {
  font-family: var(--font-display);
  font-size: clamp(64px, 6.6vw, 100px);
  font-weight: 500;
  line-height: 1.11;
  color: var(--burgundy-primary);
}

.stat__label {
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  letter-spacing: 3.2px;
  text-transform: uppercase;
  color: var(--ink-muted);
}

/* 90×90 icon frame; artwork inset 30% / 11.17% / 2% / 11.11% as in Figma */
.stat__icon {
  position: relative;
  display: block;
  width: 90px;
  height: 90px;
}

.stat__icon img {
  position: absolute;
  top: 27px;
  left: 10px;
}

@media (min-width: 992px) {
  .stats__col + .stats__col {
    border-left: 1px solid var(--line);
  }
}

@media (min-width: 992px) and (max-width: 1399.98px) {
  .stat {
    padding: 32px 12px;
  }

  .stat__label {
    font-size: 14px;
    letter-spacing: 2.4px;
  }
}

@media (min-width: 1400px) {
  .stat {
    padding: 32px 0;
  }

  .stat__label {
    white-space: nowrap;
  }
}

@media (max-width: 991.98px) {
  .stats__col:nth-child(even) {
    border-left: 1px solid var(--line);
  }

  .stats__col:nth-child(n+3) {
    border-top: 1px solid var(--line);
  }

  .stat {
    min-height: 0;
    padding: 28px 8px;
  }

  .stat__label {
    font-size: 13px;
    letter-spacing: 2px;
  }
}

/* Practice Areas
   ========================================================================== */
.practice {
  padding-top: 100px;
}

.practice__wrap {
  margin-top: 60px;
  padding: 0;
  overflow: hidden;
}

.practice__grid,
.practice__stack {
  --bs-gutter-x: 20px;
  --bs-gutter-y: 20px;
}

.pa-card {
  position: relative;
  display: block;
  height: 420px;
  overflow: hidden;
  background: var(--ink);
}

.pa-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}

.pa-card:hover .pa-card__img,
.pa-card:focus-visible .pa-card__img {
  transform: scale(1.04);
}

.pa-card__body {
  position: absolute;
  inset: auto 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 180px 24px 24px;
  background: linear-gradient(to top, var(--ink), rgba(30, 30, 30, 0));
}

.pa-card__title {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 282px;
  font-family: var(--font-heading);
  font-size: 24px;
  line-height: normal;
  color: #fff;
}

.pa-card__title::after {
  content: "";
  width: 44px;
  height: 2px;
  background: var(--gold-accent);
}

.pa-card__more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 600;
  line-height: normal;
  text-transform: uppercase;
  color: var(--gold-accent);
}

.pa-card:hover .pa-card__more .icon-arrow {
  transform: rotate(-90deg) translateY(2px);
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .practice__middle {
    order: 1;
  }
}

@media (min-width: 992px) {
  /* 413 / 646 / 413 split from the artboard */
  .practice__grid > .practice__side {
    flex: 413 1 0;
  }

  .practice__grid > .practice__middle {
    flex: 646 1 0;
  }

  .pa-card {
    height: 378px;
  }

  .pa-card--tall {
    height: 776px;
  }
}

/* Attorneys Slider
   ========================================================================== */
.attorneys {
  padding: 100px 0;
  background: var(--bg-warm-ivory);
}

.att-slider {
  position: relative;
  margin-top: 60px;
}

.att-slider__track {
  --bs-gutter-x: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.att-slider__track::-webkit-scrollbar {
  display: none;
}

.att-slider__slide {
  scroll-snap-align: start;
}

.att-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 422px;
  overflow: hidden;
  background: #e9e9e9;
}

.att-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Crops matched to the Figma image fills */
.att-card__img--offset {
  object-position: 65% center;
}

.att-card__img--right {
  object-position: 87% center;
}

.att-card__img--zoom {
  object-position: 66% 30%;
  transform: scale(1.08);
  transform-origin: 66% 30%;
}

.att-card__info {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 16px;
  background: var(--ink);
}

.att-card__name {
  font-family: var(--font-heading);
  font-size: 20px;
  font-weight: 400;
  line-height: normal;
  color: #fff;
}

.att-card__role {
  font-size: 12px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  color: #fff;
}

.att-card__link {
  font-size: 12px;
  line-height: normal;
  color: var(--gold-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.att-card__link:hover,
.att-card__link:focus-visible {
  color: #fff;
}

.att-slider__arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  padding: 18px;
  border: 0;
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 4px 7px rgba(0, 0, 0, .15);
  transform: translateY(-50%);
  cursor: pointer;
  transition: box-shadow .2s ease;
}

.att-slider__arrow[hidden] {
  display: none;
}

.att-slider__arrow:hover,
.att-slider__arrow:focus-visible {
  box-shadow: 0 6px 14px rgba(0, 0, 0, .22);
}

.att-slider__arrow--next {
  right: -30px;
}

.att-slider__arrow--next img {
  transform: rotate(-90deg);
}

.att-slider__arrow--prev {
  left: -30px;
}

.att-slider__arrow--prev img {
  transform: rotate(90deg);
}

.att-slider__dots {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 60px;
}

.att-slider__dot {
  width: 16px;
  height: 16px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(30, 30, 30, .1);
  cursor: pointer;
  transition: background-color .2s ease;
}

.att-slider__dot.is-active {
  background: var(--burgundy-primary);
}

@media (max-width: 1439.98px) {
  .att-slider__arrow--next {
    right: -10px;
  }

  .att-slider__arrow--prev {
    left: -10px;
  }
}

@media (max-width: 575.98px) {
  .attorneys {
    padding: 72px 0;
  }

  .att-slider {
    margin-top: 40px;
  }

  .att-slider__arrow {
    width: 48px;
    height: 48px;
    padding: 12px;
  }

  .att-slider__dots {
    margin-top: 40px;
  }
}

/* Our Firm
   ========================================================================== */
.firm {
  background: var(--ink);
}

.firm > .container-fluid {
  padding: 0;
}

.firm__row {
  --bs-gutter-x: 0;
}

.firm__media {
  position: relative;
  min-height: 360px;
}

.firm__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.firm__content {
  display: flex;
  align-items: center;
  padding: 64px 20px;
}

.firm__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 28px;
  max-width: 606px;
}

.firm__title {
  font-family: var(--font-display);
  font-size: clamp(40px, 4vw, 60px);
  font-weight: 700;
  line-height: 1.1667;
  color: #fff;
}

.firm__title-number {
  font-size: clamp(64px, 6.6vw, 100px);
  font-weight: 500;
  line-height: 1.11;
}

.firm__body {
  font-size: 18px;
  line-height: 28px;
  color: #fff;
}

@media (min-width: 992px) {
  .firm__row {
    min-height: 562px;
  }

  /* 746px image column on the 1512 artboard */
  .firm__row > .firm__media {
    flex: 0 0 auto;
    width: 49.34%;
  }

  .firm__row > .firm__content {
    flex: 1 1 0;
    width: auto;
    padding: 87px 40px 87px 60px;
  }
}

@media (min-width: 1400px) {
  .firm__row > .firm__content {
    padding-right: 100px;
  }
}

/* ==========================================================================
   About page
   ========================================================================== */

/* Rows below use gutters wider than the container padding; clip their negative margins */
.legacy,
.overview,
.history,
.relationships,
.offices,
.community,
.closing {
  overflow-x: clip;
}

/* A Napa Valley Legacy */
.legacy {
  padding: 100px 0;
  background: var(--bg-warm-ivory);
}

.legacy__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
}

.legacy .eyebrow {
  line-height: 24px;
}

/* Practice Areas Overview */
.overview {
  padding: 100px 0;
  background: #fff;
}

.overview__row {
  --bs-gutter-x: 60px;
  --bs-gutter-y: 48px;
}

.overview__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

.area {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 36px 0;
  border-bottom: 1px solid var(--line);
}

.area:last-child {
  border-bottom: 0;
}

.area__title {
  font-family: var(--font-display);
  font-size: 26px;
  font-weight: 700;
  line-height: 36px;
  color: var(--burgundy-primary);
}

.area__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px 60px;
}

.dash-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dash-list li {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 18px;
  line-height: 28px;
  color: var(--ink);
}

.dash-list li::before {
  content: "";
  flex-shrink: 0;
  width: 16px;
  height: 1.5px;
  background: var(--gold-accent);
}

.link-explore {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--burgundy-primary);
  font-size: 16px;
  font-weight: 500;
  line-height: 22px;
  color: var(--burgundy-primary);
  white-space: nowrap;
}

.link-explore:hover,
.link-explore:focus-visible {
  color: var(--burgundy-deep);
}

.link-explore:hover .icon-arrow {
  transform: rotate(-90deg) translateY(2px);
}

@media (min-width: 1400px) {
  /* 560px intro column + 100px gap */
  .overview__row {
    --bs-gutter-x: 100px;
  }

  .overview__row > .overview__intro {
    flex: 0 0 auto;
    width: calc(560px + var(--bs-gutter-x));
  }

  .overview__row > .overview__areas {
    flex: 1 1 0;
    width: auto;
  }
}

/* Our History */
.history {
  padding: 100px 0;
  background: var(--bg-warm-ivory);
}

.history__row {
  --bs-gutter-x: 60px;
  --bs-gutter-y: 48px;
}

.history__media {
  position: relative;
  min-height: 420px;
}

.history__img {
  position: absolute;
  inset: 0;
  left: calc(var(--bs-gutter-x) * .5);
  width: calc(100% - var(--bs-gutter-x));
  height: 100%;
  object-fit: cover;
  object-position: 48% center;
}

.history__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

.timeline {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.timeline__item {
  display: flex;
  gap: 32px;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
}

.timeline__item:last-child {
  border-bottom: 0;
}

.timeline__year {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  flex: 0 0 230px;
}

.timeline__date {
  font-family: var(--font-display);
  font-size: 40px;
  font-weight: 700;
  line-height: normal;
  color: var(--gold-accent);
}

.timeline__label {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--ink);
}

.timeline__today {
  max-width: 207px;
  font-family: var(--font-display);
  font-size: 26px;
  font-weight: 700;
  line-height: 36px;
  text-transform: uppercase;
  color: var(--burgundy-primary);
}

.timeline__body {
  flex: 1 1 0;
  min-width: 0;
  font-size: 18px;
  line-height: 28px;
  color: var(--ink);
}

@media (min-width: 992px) {
  .history__media {
    min-height: 0;
  }
}

@media (min-width: 1400px) {
  /* 650px photo + 90px gap */
  .history__row {
    --bs-gutter-x: 90px;
  }

  .history__row > .history__media {
    flex: 0 0 auto;
    width: calc(650px + var(--bs-gutter-x));
  }

  .history__row > .history__content {
    flex: 1 1 0;
    width: auto;
  }
}

@media (max-width: 575.98px) {
  .timeline__item {
    flex-direction: column;
    gap: 16px;
  }

  .timeline__year {
    flex-basis: auto;
  }
}

/* 85% Stat */
.relationships {
  padding: 100px 0;
  background: var(--ink);
}

.relationships__row {
  --bs-gutter-x: 140px;
  --bs-gutter-y: 48px;
}

.relationships__stat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
}

.relationships__stat .eyebrow {
  line-height: 24px;
}

.relationships__number {
  display: flex;
  align-items: baseline;
  gap: 4px;
  font-family: var(--font-display);
  font-size: clamp(120px, 12vw, 180px);
  font-weight: 600;
  line-height: normal;
  color: #fff;
}

.relationships__percent {
  font-family: "PT Serif", Georgia, serif;
  font-size: .4em; /* 72 / 180 */
  font-weight: 400;
}

.relationships__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

.relationships__text .body-lg {
  color: var(--line);
}

.relationships__tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px 16px;
  margin-top: 56px;
  padding: 24px 0;
  border-top: 1px solid rgba(184, 155, 99, .4);
  border-bottom: 1px solid rgba(184, 155, 99, .4);
}

.relationships__tags li {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  letter-spacing: 3.2px;
  text-transform: uppercase;
  color: var(--gold-accent);
}

.relationships__tags li + li::before {
  content: "•";
  letter-spacing: 0;
}

@media (min-width: 992px) {
  .relationships__text {
    padding-top: 8px;
    border-left: 1px solid rgba(184, 155, 99, .4);
  }
}

@media (max-width: 991.98px) {
  .relationships__tags {
    flex-direction: column;
  }

  .relationships__tags li + li::before {
    display: none;
  }
}

@media (min-width: 1400px) {
  /* 480px stat column + 70px | divider | 70px */
  .relationships__row > .relationships__stat {
    flex: 0 0 auto;
    width: calc(480px + var(--bs-gutter-x));
  }

  .relationships__row > .relationships__text {
    flex: 1 1 0;
    width: auto;
    min-height: 340px;
  }
}

@media (max-width: 1399.98px) {
  .relationships__row {
    --bs-gutter-x: 80px;
  }
}

/* Our Offices */
.offices {
  padding: 100px 0;
  background: var(--bg-stone-white);
}

.offices__heading {
  margin-bottom: 56px;
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 600;
  line-height: 24px;
  letter-spacing: 1.8px;
  text-align: center;
  text-transform: uppercase;
  color: #242424;
}

.offices__row {
  --bs-gutter-x: 120px;
  --bs-gutter-y: 56px;
}

.office-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.office-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 595 / 620;
  margin-bottom: 10px; /* 20px total from image to title */
  object-fit: cover;
}

.office-card__title {
  font-family: var(--font-display);
  font-size: 26px;
  font-weight: 700;
  line-height: 36px;
  color: #242424;
}

.office-card__text {
  font-size: 16px;
  line-height: 24px;
  color: #242424;
}

@media (min-width: 768px) {
  .offices__col + .offices__col {
    border-left: 1px solid rgba(184, 155, 99, .4);
  }
}

@media (max-width: 991.98px) {
  .offices__row {
    --bs-gutter-x: 60px;
  }
}

/* Our Community */
.community {
  padding: 100px 0;
  background: var(--bg-warm-ivory);
}

.community__intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
}

.community__intro .eyebrow {
  line-height: 24px;
}

.community__intro .body-lg {
  max-width: 900px;
}

.community__row {
  --bs-gutter-x: 40px;
  --bs-gutter-y: 40px;
  margin-top: 56px;
}

.community__img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.community__lists {
  --bs-gutter-x: 60px;
  --bs-gutter-y: 32px;
  height: 100%;
}

.community__heading {
  display: inline-flex;
  flex-direction: column;
  gap: 10px;
  max-width: 100%;
  padding-bottom: 20px;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--gold-accent);
}

.community__heading::after {
  content: "";
  height: 1.5px;
  background: var(--gold-accent);
}

.community__list li {
  padding: 14px 0;
  font-size: 16px;
  line-height: 24px;
  color: var(--ink);
}

@media (min-width: 576px) {
  .community__col + .community__col {
    border-left: 1px solid var(--gold-accent);
  }
}

@media (min-width: 1400px) {
  /* 511px image + 40px gap */
  .community__row > .community__media {
    flex: 0 0 auto;
    width: calc(511px + var(--bs-gutter-x));
  }

  .community__row > .community__media + .col-lg-7 {
    flex: 1 1 0;
    width: auto;
  }

  .community__heading {
    white-space: nowrap;
  }
}

@media (max-width: 991.98px) {
  .community__img {
    aspect-ratio: 4 / 3;
  }
}

@media (min-width: 576px) and (max-width: 1199.98px) {
  .community__lists {
    --bs-gutter-x: 40px;
  }
}

/* Closing CTA */
.closing {
  padding: 100px 0;
  background: var(--ink);
}

.closing__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  text-align: center;
}

.closing .body-lg {
  max-width: 1050px;
  color: #fff;
}

@media (max-width: 575.98px) {
  .legacy,
  .overview,
  .history,
  .relationships,
  .offices,
  .community,
  .closing {
    padding: 72px 0;
  }
}

/* ==========================================================================
   Attorney detail page
   ========================================================================== */

.profile,
.creds,
.bio,
.experience,
.involvement {
  overflow-x: clip;
}

/* Linked sections clear the top of the viewport when jumped to */
.bio,
.experience,
.involvement,
.personal {
  scroll-margin-top: 24px;
}

/* Profile */
.profile {
  padding: 52px 0;
  background: var(--bg-warm-ivory);
}

.profile__row {
  --bs-gutter-x: 60px;
  --bs-gutter-y: 48px;
  align-items: center;
}

.profile__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 646 / 696;
  object-fit: cover;
}

.profile__details {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 28px;
}

.profile__details .eyebrow {
  line-height: 24px;
}

.profile__name {
  font-family: var(--font-display);
  font-size: clamp(48px, 5.2vw, 78px);
  font-weight: 700;
  line-height: 1.1538;
  color: var(--burgundy-primary);
}

.profile__role {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--ink);
}

.profile__tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  width: 100%;
  padding: 28px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.profile__tags li {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  letter-spacing: 3.2px;
  text-transform: uppercase;
  color: var(--ink);
}

.profile__tags li + li::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gold-accent);
}

.profile__contact {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.profile__contact li {
  display: flex;
  align-items: center;
  gap: 14px;
}

.profile__contact img {
  display: block;
  flex-shrink: 0;
}

.profile__contact a {
  font-size: 18px;
  line-height: 28px;
  color: var(--burgundy-primary);
  overflow-wrap: anywhere;
}

.profile__contact a:hover,
.profile__contact a:focus-visible {
  color: var(--burgundy-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (min-width: 992px) {
  .profile__details {
    padding: 108px 0; /* 160px on the artboard, less the section's 52px */
  }
}

@media (min-width: 1400px) {
  /* 646px photo + 60px gap */
  .profile__row > .profile__media {
    flex: 0 0 auto;
    width: calc(646px + var(--bs-gutter-x));
  }

  .profile__row > .profile__details {
    flex: 1 1 0;
    width: auto;
  }
}

/* Credentials bar */
.creds {
  padding: 64px 0;
  background: var(--burgundy-deep);
  color: #fff;
}

.creds__row {
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
}

.creds__col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  padding: 32px 0;
}

.creds__heading {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--gold-accent);
}

.creds__degree {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.creds p,
.creds__list li {
  font-size: 18px;
  line-height: 28px;
}

.creds .creds__big {
  font-family: var(--font-display);
  font-size: 40px;
  font-weight: 700;
  line-height: normal;
}

.creds__list {
  display: flex;
  flex-direction: column;
}

.creds__list--links {
  gap: 20px;
}

.creds__list--links a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color .2s ease;
}

.creds__list--links a:hover,
.creds__list--links a:focus-visible {
  color: var(--gold-accent);
}

@media (max-width: 575.98px) {
  .creds {
    padding: 32px 0;
  }

  .creds__col + .creds__col {
    border-top: 1px solid var(--gold-accent);
  }
}

@media (min-width: 576px) and (max-width: 991.98px) {
  .creds__col {
    padding: 24px 32px;
  }

  .creds__col:nth-child(odd) {
    padding-left: 0;
  }

  .creds__col:nth-child(even) {
    border-left: 1px solid var(--gold-accent);
  }

  .creds__col:nth-child(n+3) {
    border-top: 1px solid var(--gold-accent);
  }
}

@media (min-width: 992px) {
  .creds__col {
    padding: 0 40px;
  }

  .creds__col + .creds__col {
    border-left: 1px solid var(--gold-accent);
  }
}

/* Background + On This Page */
.bio {
  padding: 100px 0;
  background: #fff;
}

.bio__row {
  --bs-gutter-x: 60px;
  --bs-gutter-y: 48px;
}

.bio__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

.otp {
  padding-left: 32px;
  border-left: 1px solid var(--line);
}

.otp__title {
  padding-bottom: 24px;
}

.otp__link {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  font-size: 18px;
  line-height: 28px;
  color: var(--ink);
  transition: color .2s ease;
}

.otp__list li:last-child .otp__link {
  border-bottom: 0;
}

.otp__link::before {
  content: "";
  flex-shrink: 0;
  align-self: center;
  width: 2px;
  height: 30px;
  background: transparent;
  transition: background-color .2s ease;
}

.otp__link:hover,
.otp__link:focus-visible,
.otp__link.active {
  color: var(--burgundy-primary);
}

.otp__link.active::before {
  background: var(--burgundy-primary);
}

/* Before the reader reaches the first section, keep the first link highlighted */
.otp__list:not(:has(.active)) li:first-child .otp__link {
  color: var(--burgundy-primary);
}

.otp__list:not(:has(.active)) li:first-child .otp__link::before {
  background: var(--burgundy-primary);
}

@media (min-width: 992px) {
  .otp {
    position: sticky;
    top: 24px;
  }
}

@media (min-width: 1400px) {
  /* 300px sidebar + 100px gap */
  .bio__row {
    --bs-gutter-x: 100px;
  }

  .bio__row > .bio__content {
    flex: 1 1 0;
    width: auto;
  }

  .bio__row > .bio__aside {
    flex: 0 0 auto;
    width: calc(300px + var(--bs-gutter-x));
  }
}

/* Prior Experience */
.experience {
  padding: 100px 0;
  background: var(--bg-warm-ivory);
}

.experience__row {
  --bs-gutter-x: 96px;
  --bs-gutter-y: 32px;
}

.experience__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
}

.experience__body {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

@media (min-width: 992px) {
  .experience__body {
    border-left: 2px solid var(--burgundy-primary);
  }
}

@media (max-width: 991.98px) {
  /* Stacked: no side gutters, so the divider stays inside the container */
  .experience__row {
    --bs-gutter-x: 0;
  }

  .experience__body {
    padding-top: 32px;
    border-top: 2px solid var(--burgundy-primary);
  }
}

@media (min-width: 1400px) {
  /* 560px heading column + 48px | divider | 48px */
  .experience__row > .experience__intro {
    flex: 0 0 auto;
    width: calc(560px + var(--bs-gutter-x));
  }

  .experience__row > .experience__body {
    flex: 1 1 0;
    width: auto;
  }
}

/* Community & Professional Involvement */
.involvement {
  padding: 100px 0;
  background: var(--ink);
}

.involvement__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  max-width: 700px;
}

.involvement__head .body-lg {
  color: var(--line);
}

.involvement__row {
  --bs-gutter-x: 64px;
  --bs-gutter-y: 48px;
  margin-top: 48px;
}

.involvement__heading {
  display: inline-flex;
  flex-direction: column;
  gap: 10px;
  max-width: 100%;
  padding-bottom: 20px;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--gold-accent);
}

.involvement__heading::after {
  content: "";
  height: 1px;
  background: rgba(184, 155, 99, .4);
}

.involvement__list li {
  padding: 22px 0;
  border-bottom: 1px solid rgba(184, 155, 99, .3);
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 400;
  line-height: 28px;
  color: #fff;
}

/* Personal */
.personal {
  padding: 90px 0;
  background: #fff;
}

.personal .container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
}

@media (max-width: 575.98px) {
  .bio,
  .experience,
  .involvement {
    padding: 72px 0;
  }

  .profile__tags {
    flex-direction: column;
    align-items: flex-start;
  }

  .profile__tags li + li::before {
    display: none;
  }

  .personal {
    padding: 64px 0;
  }

  .otp {
    padding-left: 20px;
  }
}

/* ==========================================================================
   Contact page
   ========================================================================== */

.message,
.locations {
  overflow-x: clip;
}

/* Hero */
.contact-hero {
  padding: 100px 0;
  background: var(--bg-warm-ivory);
}

.contact-hero__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: center;
}

.contact-hero .eyebrow {
  line-height: 24px;
}

.contact-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(52px, 5.2vw, 78px);
  font-weight: 400;
  line-height: 1.1538; /* 90 / 78 */
  color: var(--burgundy-primary);
}

.contact-hero__lead {
  font-size: 18px;
  line-height: 28px;
  color: #242424;
}

.contact-hero__rule {
  margin-top: 16px;
}

/* Send Us a Message */
.message {
  padding: 100px 0;
  background: #fff;
}

.message__row {
  --bs-gutter-x: 80px;
  --bs-gutter-y: 48px;
}

.message__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

.message__eyebrow {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--gold-accent);
}

.message__title {
  font-family: "PT Serif", Georgia, serif;
  font-size: clamp(40px, 3.5vw, 52px);
  font-weight: 400;
  line-height: 1.1923; /* 62 / 52 */
  color: var(--burgundy-primary);
}

.message__lead {
  font-size: 18px;
  line-height: 28px;
  color: #242424;
}

.message__rule {
  margin: 8px 0;
}

@media (min-width: 992px) {
  .message__form-col {
    border-left: 1px solid #ddd7cf;
  }
}

@media (max-width: 991.98px) {
  .message__row {
    --bs-gutter-x: 0;
  }
}

@media (min-width: 1400px) {
  /* 420px intro + 90px | divider | 90px */
  .message__row {
    --bs-gutter-x: 180px;
  }

  .message__row > .message__intro {
    flex: 0 0 auto;
    width: calc(420px + var(--bs-gutter-x));
  }

  .message__row > .message__form-col {
    flex: 1 1 0;
    width: auto;
  }
}

/* Light form (contact page) */
.msg-form {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.msg-form__names {
  --bs-gutter-x: 24px;
  --bs-gutter-y: 22px;
}

.msg-form__field {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.msg-form__label {
  font-size: 12px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: .72px;
  text-transform: uppercase;
  color: var(--ink);
}

.msg-form__optional {
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: #676767;
}

.msg-form__input {
  display: block;
  width: 100%;
  padding: 15px 18px;
  border: 1px solid #ddd7cf;
  border-radius: 6px;
  background: #fff;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 24px;
  color: var(--ink);
  transition: border-color .2s ease, box-shadow .2s ease;
}

.msg-form__input::placeholder {
  color: #8c8c8c;
  opacity: 1;
}

.msg-form__input:focus {
  outline: none;
  border-color: var(--gold-accent);
  box-shadow: 0 0 0 3px rgba(184, 155, 99, .2);
}

.msg-form__input--short {
  height: 48px;
  padding: 11px 18px;
}

.msg-form__textarea {
  height: 130px;
  padding: 16px 18px;
  resize: vertical;
}

.msg-form__bottom {
  display: flex;
  align-items: center;
  gap: 24px 40px;
}

.msg-form__notice {
  flex: 1 1 0;
  font-size: 16px;
  line-height: 24px;
  color: #676767;
}

.msg-form__bottom .btn-pill {
  flex-shrink: 0;
  border: 0;
  font-family: var(--font-body);
  cursor: pointer;
}

@media (max-width: 575.98px) {
  .msg-form__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Two Locations */
.locations {
  padding: 100px 0;
  background: var(--bg-warm-ivory);
}

.locations__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.locations__head .eyebrow {
  line-height: 24px;
}

.section-title.locations__title {
  line-height: 1.1667; /* 70 / 60 */
}

.locations__row {
  --bs-gutter-x: 90px;
  --bs-gutter-y: 64px;
  margin-top: 56px;
}

.location {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
}

.location__info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
  flex-grow: 1; /* keeps both maps on one baseline */
}

.location__name {
  margin-bottom: -8px; /* 10px to the rule below */
  font-family: var(--font-heading);
  font-size: 26px;
  font-weight: 400;
  line-height: 36px;
  color: var(--burgundy-primary);
  text-transform: uppercase;
}

.location__address {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 18px;
  line-height: 28px;
  color: var(--ink);
}

.location__line {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 18px;
  line-height: 28px;
  color: var(--ink);
}

.location__line a:hover,
.location__line a:focus-visible {
  color: var(--burgundy-primary);
}

.location__label,
.location__note {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: #676767;
}

.location__note {
  color: var(--gold-accent);
}

.location__map {
  width: 100%;
  height: 320px;
  overflow: hidden;
  border-radius: 4px;
  background: #e5e3df;
}

.location__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.location .link-explore {
  margin-top: -5px; /* 13px from the map, as in the artboard */
}

@media (max-width: 991.98px) {
  .locations__row {
    --bs-gutter-x: 40px;
  }
}

@media (max-width: 575.98px) {
  .contact-hero,
  .message,
  .locations {
    padding: 72px 0;
  }

  .location__map {
    height: 260px;
  }
}

/* ==========================================================================
   Attorneys listing page
   ========================================================================== */

/* Split hero: text column lines up with .container, image runs to the edge */
.split-hero {
  --container-max: 100%;
  overflow-x: clip;
  background: var(--bg-warm-ivory);
}

.split-hero__row {
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
}

.split-hero__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 24px;
  /* % padding resolves against the row (full width), matching the container edge */
  padding: 72px calc((100% - var(--container-max)) / 2 + var(--container-gutter) / 2);
}

.split-hero__content .eyebrow {
  line-height: 24px;
}

.split-hero__title {
  font-family: var(--font-display);
  font-size: clamp(44px, 5.2vw, 78px);
  font-weight: 700;
  line-height: 1.1538; /* 90 / 78 */
  color: var(--burgundy-primary);
}

.split-hero__media {
  position: relative;
  min-height: 320px;
}

.split-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 576px)  { .split-hero { --container-max: 540px; } }
@media (min-width: 768px)  { .split-hero { --container-max: 720px; } }
@media (min-width: 992px)  {
  .split-hero { --container-max: 960px; }

  .split-hero__row {
    min-height: 511px;
  }

  .split-hero__content {
    padding-right: 60px;
  }
}
@media (min-width: 1200px) { .split-hero { --container-max: 1140px; } }
@media (min-width: 1400px) { .split-hero { --container-max: 1352px; } }

/* Grid */
.team {
  padding: 100px 0;
  background: #fff;
}

.team__grid {
  --bs-gutter-x: 20px;
  --bs-gutter-y: 20px;
}

@media (max-width: 575.98px) {
  .team {
    padding: 56px 0;
  }
}

/* Footer
   ========================================================================== */
.site-footer {
  padding-top: 40px;
  background: var(--burgundy-deep);
  color: #fff;
}

.site-footer a {
  transition: color .2s ease;
}

.site-footer a:hover,
.site-footer a:focus-visible {
  color: var(--gold-accent);
}

.site-footer__logo {
  display: flex;
  justify-content: center;
}

.site-footer__logo img {
  display: block;
  width: 276px;
  height: auto;
}

.site-footer__divider {
  height: 1px;
  margin-top: 40px;
  background: var(--gold-accent);
}

.site-footer__columns {
  margin-top: 40px;
  padding: 56px 0;
  border-bottom: 1px solid var(--gold-accent);
}

.site-footer__row {
  --bs-gutter-x: var(--container-gutter);
  --bs-gutter-y: 48px;
}

.site-footer__col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
}

.site-footer__heading {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: 1.12px;
  text-transform: uppercase;
  color: var(--gold-accent);
}

.site-footer__list {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.site-footer__list a,
.site-footer__bullets a,
.site-footer__all,
.site-footer__intro,
.site-footer__office {
  font-size: 16px;
  line-height: 24px;
  color: #fff;
}

.site-footer__group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, .15);
}

.site-footer__group:last-of-type {
  padding-bottom: 0;
  border-bottom: 0;
}

.site-footer__subheading {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: .78px;
  color: var(--gold-accent);
}

.site-footer__bullets {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.site-footer__bullets li {
  display: flex;
  align-items: center;
  gap: 8px;
}

.site-footer__bullets li::before {
  content: "";
  flex-shrink: 0;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #fff;
}

.site-footer__office {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.site-footer__office-name {
  font-size: 13px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: .78px;
  text-transform: uppercase;
}

.site-footer__phone {
  font-size: 15px;
  font-weight: 600;
  line-height: normal;
  color: var(--gold-accent);
}

.site-footer a.site-footer__phone:hover,
.site-footer a.site-footer__phone:focus-visible {
  color: #fff;
}

.site-footer__office-rule {
  display: block;
  width: 40px;
  height: 1px;
  background: rgba(255, 255, 255, .3);
}

@media (min-width: 1400px) {
  .site-footer__row {
    --bs-gutter-x: 48px;
  }

  /* Fixed column widths from the artboard: 230 / 230 / 280 / fill */
  .site-footer__row > .site-footer__col--firm,
  .site-footer__row > .site-footer__col--practice {
    flex: 0 0 auto;
    width: calc(230px + var(--bs-gutter-x));
  }

  .site-footer__row > .site-footer__col--offices {
    flex: 0 0 auto;
    width: calc(280px + var(--bs-gutter-x));
  }
}

/* Contact form */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
  width: 100%;
}

.contact-form__names {
  --bs-gutter-x: 20px;
  --bs-gutter-y: 18px;
}

.contact-form__field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.contact-form__label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: .72px;
  text-transform: uppercase;
  color: #fff;
}

.contact-form__optional {
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--gold-soft);
}

.contact-form__input {
  display: block;
  width: 100%;
  padding: 13px 16px 8px;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 6px;
  background: transparent;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 24px;
  color: #fff;
  transition: border-color .2s ease;
}

.contact-form__input::placeholder {
  color: #fff;
  opacity: 1;
}

.contact-form__input:focus {
  outline: none;
  border-color: var(--gold-accent);
}

.contact-form__input--short {
  height: 44px;
  padding: 10px 16px;
}

.contact-form__textarea {
  height: 110px;
  padding: 14px 16px;
  resize: vertical;
}

.contact-form__notice {
  font-size: 13px;
  line-height: 19px;
  color: #fff;
}

.contact-form__submit {
  display: flex;
  justify-content: flex-end;
}

.btn-light-pill {
  padding: 16px 32px;
  border: 1px solid var(--bg-stone-white);
  border-radius: 40px;
  background: #fff;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: .84px;
  color: var(--burgundy-deep);
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease;
}

.btn-light-pill:hover,
.btn-light-pill:focus-visible {
  background: var(--gold-accent);
  border-color: var(--gold-accent);
  color: #fff;
}

/* Bottom bar */
.site-footer__bottom {
  padding: 60px 0 40px;
  text-align: center;
}

.site-footer__copyright {
  font-size: 16px;
  line-height: 24px;
}

.site-footer__bottom--disclaimer {
  padding-top: 36px;
}

.site-footer__disclaimer {
  max-width: 640px;
  margin: 0 auto;
  font-size: 16px;
  line-height: 24px;
}

.site-footer__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px 24px;
  margin-top: 28px;
}

.site-footer__legal li {
  display: flex;
  align-items: center;
  gap: 24px;
}

.site-footer__legal li + li::before {
  content: "";
  width: 1px;
  height: 14px;
  background: rgba(255, 255, 255, .25);
}

.site-footer__legal a {
  font-size: 14px;
  line-height: normal;
  letter-spacing: .84px;
  text-transform: uppercase;
  color: #fff;
}

@media (max-width: 575.98px) {
  .practice {
    padding-top: 72px;
  }

  .practice__wrap {
    margin-top: 40px;
  }

  .site-footer__legal {
    flex-direction: column;
  }

  .site-footer__legal li + li::before {
    display: none;
  }
}
