/* ============================================================
   ROBINSON DI LANDO — Polish Layer
   Loaded after style.css on all core pages.
   Tightens typography, refines color, sharpens buttons.
   Does NOT change layout or structure.
   ============================================================ */

/* ── 1. DESIGN TOKENS ────────────────────────────────────── */
:root {
  --color-primary-dark:   #0a3d6b;   /* deeper, richer navy */
  --color-primary-dark-2: #041e38;   /* near-black navy for footers */
  --color-primary:        #1a6baa;   /* cleaner mid-blue */
  --color-primary-light:  #6aaad4;   /* cooler accent */
  --color-accent-gold:    #b89a5c;   /* understated gold — authority */
  --color-text-body:      #1a1a2e;   /* near-black, not pure #000 */
  --color-text-muted:     #4a5568;
  --color-surface:        #f7f8fa;   /* slightly cooler off-white */
  --color-border:         #d1d9e6;
  --transition-fast:      0.2s ease;
  --font-display: 'Montserrat', sans-serif;
}

/* ── 2. BASE ──────────────────────────────────────────────── */
body {
  color: var(--color-text-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Tighten base font — 62.5% base is correct, keep it */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: 0.02em;
}

p {
  line-height: 1.75;
  color: var(--color-text-muted);
}

/* ── 3. HEADER / NAV ─────────────────────────────────────── */
.header {
  background-color: var(--color-primary-dark-2);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  height: 6.5rem;
}

.navigation__button {
  background-color: var(--color-primary-dark-2);
  height: 6.5rem;
  width: 6.5rem;
}

/* Thin gold line accent on nav button hover */
.navigation__button:hover {
  border-bottom: 2px solid var(--color-accent-gold);
}

/* Overlay background — solid deep navy instead of radial gradient */
.navigation__background {
  background-color: var(--color-primary-dark-2);
  background-image: none;
}

/* Nav links — cleaner slide effect */
.navigation__link:link,
.navigation__link:visited {
  font-size: 2.2rem;
  font-weight: 300;
  letter-spacing: 0.3rem;
  color: rgba(255,255,255,0.85);
}

.navigation__item:hover .navigation__link {
  color: var(--color-primary-dark-2);
}

/* Search bar — refined pill */
.search__input {
  background-color: rgba(255,255,255,0.08);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 2px;
}

.search__input::placeholder { color: rgba(255,255,255,0.45); }
.search__input:focus {
  background-color: rgba(255,255,255,0.14);
  border-color: var(--color-accent-gold);
  outline: none;
}

.search__button { background-color: transparent; border: none; }
.search__icon { fill: rgba(255,255,255,0.55); }

/* Social icons */
.social-media-nav__icon-box:first-child { border-left: 1px solid rgba(255,255,255,0.12); }
.social-media-nav__icon-box:not(:last-child) { border-right: 1px solid rgba(255,255,255,0.12); }
.social-media-nav > *:hover { background-color: rgba(255,255,255,0.06); }
.social-media-nav__icon { fill: rgba(255,255,255,0.6); }

/* ── 4. HOMEPAGE — VIDEO / LOGO SECTION ─────────────────── */
.video-slider__logo {
  background-color: #fff;
  border-right: 1px solid var(--color-border);
  padding: 4rem 8rem 6rem;
}

.video-slider__logo-img {
  filter: none;
  opacity: 1;
  transition: opacity var(--transition-fast);
}

.video-slider__logo-img:hover {
  filter: none;
  opacity: 0.85;
}

/* ── 5. HOMEPAGE — GALLERY ROWS ──────────────────────────── */
.gallery__text-cell {
  background-color: var(--color-primary-dark-2);
}

.gallery__text-cell--left {
  background-color: var(--color-surface);
}

.gallery__text-cell--left p {
  color: var(--color-text-body);
}

.gallery__text {
  font-size: 2.2rem;
  font-weight: 300;
  line-height: 3.8rem;
  letter-spacing: 0.03em;
  color: rgba(255,255,255,0.9);
}

.gallery__text-cell--left .gallery__text {
  color: var(--color-text-body);
}

/* Gold rule above gallery text */
.gallery__text-wrapper::before {
  content: '';
  display: block;
  width: 3.5rem;
  height: 2px;
  background-color: var(--color-accent-gold);
  margin: 0 auto 2rem;
}

/* ── 6. HOMEPAGE — OUR FIRM SECTION ──────────────────────── */
.home-paragraph {
  background-color: var(--color-primary-dark-2);
  padding: 8rem;
}

.home-paragraph__heading {
  font-size: 2.8rem;
  font-weight: 300;
  letter-spacing: 0.6rem;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 2rem;
}

/* Remove the gradient rule after heading — replace with gold rule */
.home-paragraph__heading::after {
  background: none;
  background-color: var(--color-accent-gold);
  height: 1px;
  opacity: 0.35;
  margin-top: 1.5rem;
}

.home-paragraph__text {
  font-size: 1.65rem;
  font-weight: 300;
  line-height: 2.8rem;
  color: rgba(255,255,255,0.78);
  text-align: left;
  max-width: 86rem;
  margin: 0 auto;
}

/* ── 7. HOMEPAGE — PRACTICE AREAS / CONTACT SECTION ─────── */
.contact-practice__upper {
  padding: 9rem 4rem;
}

.contact-practice__upper-container {
  background-color: rgba(4, 30, 56, 0.92);
  border: 1px solid rgba(180, 160, 100, 0.25);
  border-radius: 1px;
  box-shadow: 0 4px 32px rgba(0,0,0,0.35);
  padding: 4rem 5rem;
}

/* contact-practice__upper-heading eyebrow rule removed — consolidated below */

.contact-practice__upper-text {
  font-size: 1.6rem;
  font-weight: 300;
  line-height: 2.6rem;
  color: rgba(255,255,255,0.8);
  text-align: left;
  width: 100%;
}

.contact-practice__upper-button {
  background-color: transparent;
  border: 1px solid var(--color-accent-gold);
  color: var(--color-accent-gold);
  font-size: 1.2rem;
  letter-spacing: 0.4rem;
  font-weight: 400;
  padding: 1.4rem 3rem;
  flex: 0 0 auto;
  transition: all var(--transition-fast);
}

.contact-practice__upper-button:hover {
  background-color: var(--color-accent-gold);
  color: var(--color-primary-dark-2);
  border-color: var(--color-accent-gold);
  border-radius: 0;
}

/* Bottom CTA bar */
.contact-practice__bottom {
  background-color: var(--color-primary-dark);
}

.contact-practice__bottom-button_container {
  background-color: rgba(255,255,255,0.07);
}

.contact-practice__bottom-button {
  background-color: transparent;
  background-image: none;
  border: 1px solid rgba(255,255,255,0.35);
  color: #fff;
  font-size: 1.3rem;
  letter-spacing: 0.3rem;
  font-weight: 400;
  transition: all var(--transition-fast);
}

.contact-practice__bottom-button:hover {
  background-color: #fff;
  background-image: none;
  color: var(--color-primary-dark);
  border-color: #fff;
}

.contact-practice__bottom-text {
  font-size: 1.45rem;
  font-weight: 300;
  color: rgba(255,255,255,0.75);
  line-height: 1.75;
}

.contact-practice__bottom-link {
  color: rgba(255,255,255,0.95);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
  padding: 0;
}

.contact-practice__bottom-link:hover {
  color: #fff;
  background-color: transparent;
  box-shadow: none;
  transform: none;
  text-decoration: underline;
}

/* ── 8. CONTACT MODAL FORM ───────────────────────────────── */
.contact__form-header,
.contact__form-footer {
  background-color: var(--color-primary-dark-2);
}

.contact__form-title {
  font-size: 1.4rem;
  letter-spacing: 0.15rem;
  font-weight: 400;
}

.contact__input,
.contact__txt {
  border: 1px solid var(--color-border);
  border-radius: 1px;
  font-size: 1.4rem;
  padding: 1rem 1.4rem;
  color: var(--color-text-body);
  transition: border-color var(--transition-fast);
}

.contact__input:focus,
.contact__txt:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(26,107,170,0.1);
}

.contact__submit {
  background-color: var(--color-primary-dark);
  background-image: none;
  border: 1px solid var(--color-primary-dark);
  font-size: 1.3rem;
  letter-spacing: 0.25rem;
  font-weight: 400;
  border-radius: 1px;
  transition: all var(--transition-fast);
}

.contact__submit:hover {
  background-color: var(--color-primary-dark-2);
  background-image: none;
  color: #fff;
  border-color: var(--color-primary-dark-2);
}

/* ── 9. FIRM PAGE ────────────────────────────────────────── */
.firm-description {
  padding-top: 6.5rem;   /* accounts for fixed header height */
}

.firm-description__top {
  padding: 7rem 8rem;
  background-color: #fff;
}

.firm-description__top-header {
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.35rem;
  text-transform: uppercase;
  color: var(--color-primary-dark);
  margin-bottom: 2rem;
}

.firm-description__top-hr {
  border-top: 1px solid var(--color-accent-gold);
  opacity: 0.4;
  margin: 0 0 2.5rem;
}

.firm-description__top-text {
  font-size: 1.55rem;
  line-height: 2.75rem;
  color: var(--color-text-muted);
  text-align: left;
  margin-bottom: 2rem;
}

.firm-description__bottom {
  background-color: var(--color-primary-dark);
  padding: 7rem 8rem;
}

.firm-description__bottom-header {
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.35rem;
  text-transform: uppercase;
  color: var(--color-accent-gold);
  margin-bottom: 2rem;
}

.firm-description__bottom-hr {
  border-top: 1px solid rgba(255,255,255,0.18);
  margin: 0 0 2.5rem;
}

.firm-description__bottom-text {
  font-size: 1.55rem;
  line-height: 2.75rem;
  color: rgba(255,255,255,0.78);
  text-align: left;
  margin-bottom: 2rem;
}

/* ── 10. ATTORNEY LIST ───────────────────────────────────── */
.profile-list {
  background-color: var(--color-surface);
}

.profile-list__container {
  border: 1px solid var(--color-border);
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}

.profile-list__attorney-directory_title {
  color: var(--color-primary-dark);
  font-size: 3rem;
  font-weight: 300;
  letter-spacing: 0.15rem;
}

.profile-list__attorney-directory__row-item-1 {
  background-color: var(--color-primary-dark-2);
}

.profile-list__attorney-directory__row-item_header {
  background-color: var(--color-primary-dark);
}

/* View Profile button */
.profile-list__attorney-directory_view-profile {
  background-color: transparent;
  background-image: none;
  border: 1px solid rgba(255,255,255,0.55);
  color: #fff;
  font-size: 1.1rem;
  letter-spacing: 0.2rem;
  border-radius: 1px;
  transition: all var(--transition-fast);
}

.profile-list__attorney-directory_view-profile:hover {
  background-color: #fff;
  color: var(--color-primary-dark);
  border-color: #fff;
  border-radius: 1px;
  cursor: pointer;
}

/* vCard / Email buttons */
.profile-list__attorney-directory_v-text,
.profile-list__attorney-directory_email-btn {
  background-color: #fff;
  color: var(--color-primary-dark);
  border: 1px solid var(--color-border);
  border-radius: 1px;
  font-size: 1.2rem;
  letter-spacing: 0.1rem;
  transition: all var(--transition-fast);
}

.profile-list__attorney-directory_v-text:hover,
.profile-list__attorney-directory_email-btn:hover {
  background-color: var(--color-primary-dark);
  color: #fff;
  border-color: var(--color-primary-dark);
  border-radius: 1px;
}

/* Attorney photo border */
.profile-list__attorney-directory_attorney-img {
  border: 2px solid rgba(255,255,255,0.3);
}

/* ── 11. ATTORNEY PROFILE PAGE ───────────────────────────── */
.profile {
  background-color: var(--color-surface);
}

.profile__top-bar {
  background-color: var(--color-primary-dark-2);
}

.profile__image-container {
  background-color: var(--color-primary-dark);
  background-image: none;
}

.profile__attributes_title-bar {
  background-color: var(--color-primary-dark);
  background-image: none;
}

.profile__attributes_title-bar_text {
  font-size: 1.2rem;
  letter-spacing: 0.2rem;
  font-weight: 400;
}

.profile__v-card-btn {
  background-color: var(--color-primary-dark-2);
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 1px;
  letter-spacing: 0.15rem;
  font-size: 1.3rem;
}

.profile__v-card-btn:hover {
  background-color: #fff;
  color: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
}

.profile__bio {
  font-size: 1.5rem;
  line-height: 2.7rem;
  color: var(--color-text-muted);
}

/* ── 12. CONTACT PAGE ────────────────────────────────────── */
.contact-page {
  padding-top: 6.5rem;
}

.contact-page__header {
  background-color: var(--color-primary-dark-2);
  padding: 3.5rem 2rem;
  border-bottom: 2px solid var(--color-accent-gold);
}

.contact-page__header-text {
  font-size: 2.8rem;
  letter-spacing: 1.5rem;
  font-weight: 300;
  color: #fff;
}

.contact-page__location {
  border: none;
}

.contact-page__location-item {
  border: 1px solid var(--color-border);
  border-width: 0 1px 1px 0;
  transition: background-color var(--transition-fast);
}

.contact-page__location-item_dark {
  background-color: var(--color-primary-dark);
  border: 1px solid rgba(255,255,255,0.08);
  border-width: 0 0 1px 0;
}

.contact-page__location-title {
  font-size: 2.2rem;
  font-weight: 600;
  letter-spacing: 0.1rem;
  color: var(--color-primary-dark);
}

.contact-page__location-title-dark {
  font-size: 2.2rem;
  font-weight: 600;
  letter-spacing: 0.1rem;
}

.contact-page__location-text {
  font-size: 1.6rem;
  color: var(--color-text-muted);
}

.contact-page__location-text-dark {
  font-size: 1.6rem;
  color: rgba(255,255,255,0.75);
}

.contact-page__location-phone {
  font-size: 1.4rem;
  color: var(--color-primary);
}

.contact-page__location-phone-dark {
  font-size: 1.4rem;
  color: var(--color-primary-light);
}

.contact-page__location-img_wrap,
.contact-page__location-img_wrap-dark {
  border-width: 0;
  box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}

.contact-page__location-img_overlay {
  background-color: rgba(4, 30, 56, 0.88);
}

.contact-page__location-img_overlay-text {
  font-size: 1.6rem;
  letter-spacing: 0.2rem;
  border: 1px solid rgba(255,255,255,0.6);
}

.contact-page__location-item:hover {
  background-color: var(--color-surface);
}

.contact-page__location-item:hover .contact-page__location-title { color: var(--color-primary-dark); }
.contact-page__location-item:hover .contact-page__location-text  { color: var(--color-text-muted); }
.contact-page__location-item:hover .contact-page__location-phone { color: var(--color-primary); }
.contact-page__location-item:hover .contact-page__location-img_wrap { border: none; }
.contact-page__location-item_dark:hover { background-color: #0d3560; }
.contact-page__location-item_dark:hover .contact-page__location-title-dark { color: rgba(255,255,255,0.95); }
.contact-page__location-item_dark:hover .contact-page__location-text-dark  { color: rgba(255,255,255,0.8); }
.contact-page__location-item_dark:hover .contact-page__location-phone-dark { color: var(--color-primary-light); }

/* ── 13. FOOTER ──────────────────────────────────────────── */
.footer-row {
  background-color: var(--color-primary-dark-2);
  padding: 4.5rem 6rem 2.5rem;
  border-top: 2px solid var(--color-accent-gold);
}

.footer-row__logo-top {
  font-size: 3.8rem;
  font-weight: 200;
  letter-spacing: 1.2rem;
  color: #fff;
}

.footer-row__logo-bottom {
  font-size: 1.5rem;
  letter-spacing: 0.6rem;
  color: rgba(255,255,255,0.5);
  border-top: 1px solid rgba(180,160,100,0.3);
}

.footer-row__location-block {
  font-size: 1.3rem;
  letter-spacing: 0.2rem;
  color: rgba(255,255,255,0.45);
}

.footer-row__location-block:not(:last-child) {
  border-right: 1px solid rgba(255,255,255,0.15);
}

.bottom-bar {
  background-color: var(--color-primary-dark-2);
  border-top: 1px solid rgba(255,255,255,0.06);
  padding: 0.8rem 3rem;
}

.bottom-bar__scroll-top-text {
  font-size: 1.2rem;
  letter-spacing: 0.1rem;
  color: rgba(255,255,255,0.35);
  transition: color var(--transition-fast);
}

.bottom-bar__scroll-top:hover .bottom-bar__scroll-top-text {
  color: var(--color-accent-gold);
}

.bottom-bar__up-arrow { fill: rgba(255,255,255,0.35); }
.bottom-bar__scroll-top:hover .bottom-bar__up-arrow { fill: var(--color-accent-gold); }

.footer-row__copyright-text {
  font-size: 1.2rem;
  color: rgba(255,255,255,0.3);
  letter-spacing: 0.08rem;
}

/* ── 14. PRELOAD SCREEN ──────────────────────────────────── */
.preload {
  background-image: none;
  background-color: var(--color-primary-dark-2);
}

/* ── 15. MOBILE SEARCH BAR ───────────────────────────────── */
.search-mobile {
  background-color: var(--color-primary-dark-2);
  border-top: 1px solid rgba(255,255,255,0.08);
}

.search-mobile__input {
  background-color: rgba(255,255,255,0.09);
  border: 1px solid rgba(255,255,255,0.15);
  color: #fff;
  border-radius: 2px;
}

.search-mobile__input::placeholder { color: rgba(255,255,255,0.4); }

/* ── Firm page full-height fix ── */
.firm-description {
  min-height: calc(100vh - 6.5rem);
  align-items: stretch;
}

.firm-description__top,
.firm-description__bottom {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* ── Contact page: prevent hover height shift ── */
.contact-page__location {
  align-items: stretch;
}

.contact-page__location-item,
.contact-page__location-item.contact-page__location-item_dark {
  border: none !important;
  outline: none !important;
  box-sizing: border-box;
}

.contact-page__location-item:hover,
.contact-page__location-item_dark:hover {
  border: none !important;
  outline: none !important;
}

/* Remove the border from image wrappers too — they shift height */
.contact-page__location-img_wrap,
.contact-page__location-img_wrap-dark {
  border: none !important;
  box-shadow: none !important;
}

.contact-page__location-item:hover .contact-page__location-img_wrap,
.contact-page__location-item_dark:hover .contact-page__location-img_wrap-dark {
  border: none !important;
}

/* Prevent the overlay text hover from expanding (letter-spacing + border-radius cause shift) */
.contact-page__location-img_overlay-text:hover {
  letter-spacing: 0 !important;
  border-radius: 50px !important;
  border-width: 1px !important;
}

/* ════════════════════════════════════════════════════════
   NOTICEABLE STYLING IMPROVEMENTS
   ════════════════════════════════════════════════════════ */

/* ── 1. Header: subtle scroll shadow ── */
/* Makes the nav feel "lifted" as user scrolls down */
.header {
  box-shadow: 0 2px 0 rgba(184, 154, 92, 0.35);
  transition: box-shadow 0.3s ease, background-color 0.3s ease;
}

/* ── 2. Nav hamburger lines — gold tint on hover ── */
.navigation__button:hover .navigation__icon,
.navigation__button:hover .navigation__icon::before,
.navigation__button:hover .navigation__icon::after {
  background-color: #b89a5c;
}

/* ── 3. Search bar — more refined pill shape ── */
.search__input {
  border-radius: 2px !important;
  font-size: 1.3rem;
  letter-spacing: 0.04em;
}

/* ── 4. Gallery text sections — tighten line height and add left alignment ── */
.gallery__text {
  text-align: left !important;
  letter-spacing: 0.04em;
  line-height: 4rem !important;
}

/* ── 5. "Our Firm" section — more readable body text ── */
.home-paragraph__text {
  text-align: left !important;
  letter-spacing: 0.02em;
  max-width: 95rem;
  margin: 0 auto;
}

/* ── 6. Attorney directory: row hover state ── */
.profile-list__attorney-directory__row {
  transition: background-color 0.2s ease;
}
.profile-list__attorney-directory__row:hover {
  background-color: rgba(10, 61, 107, 0.03);
}

/* ── 7. Attorney name text — slightly larger and spaced ── */
.profile-list__attorney-directory_name-text {
  font-size: 1.4rem !important;
  letter-spacing: 0.08em;
  font-weight: 400 !important;
}

/* ── 8. Attorney title text — muted and smaller ── */
.profile-list__attorney-directory_title-text {
  color: #4a5568 !important;
  font-size: 1.4rem !important;
  letter-spacing: 0.03em;
}

/* ── 9. Attorney email text — match title styling ── */
.profile-list__attorney-directory_email-text {
  color: #1a6baa !important;
  font-size: 1.4rem !important;
}

/* ── 10. Firm page: section headings get gold left border accent ── */
.firm-description__top-header {
  position: relative;
  padding-left: 1.6rem;
}
.firm-description__top-header::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.2em;
  height: 70%;
  width: 3px;
  background-color: var(--color-accent-gold, #b89a5c);
}

.firm-description__bottom-header {
  position: relative;
  padding-left: 1.6rem;
}
.firm-description__bottom-header::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.2em;
  height: 70%;
  width: 3px;
  background-color: rgba(255,255,255,0.45);
}

/* ── 11. Contact page header — tighter, more commanding ── */
.contact-page__header-text {
  font-size: 3rem !important;
  letter-spacing: 2rem !important;
  font-weight: 200 !important;
}

/* ── 12. Location city headings — gold on light, white on dark ── */
.contact-page__location-title {
  color: #0a3d6b !important;
  font-size: 2.2rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 1.2rem;
}
.contact-page__location-title-dark {
  font-size: 2.2rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 1.2rem;
}

/* ── 13. Contact page address text — tighter, cleaner ── */
.contact-page__location-text,
.contact-page__location-text-dark {
  font-size: 1.5rem !important;
  letter-spacing: 0.08em;
  line-height: 2.2rem;
}

/* ── 14. Footer firm name — letter spacing kept as-is, no underline ── */

/* ── 15. Scroll-to-top — gold arrow on hover ── */
.bottom-bar__scroll-top {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.bottom-bar__scroll-top:hover {
  opacity: 0.85;
}

/* ── 16. Profile page — image container cleaner gradient ── */
.profile__image-container {
  background-image: linear-gradient(160deg, #0a3d6b 0%, #041e38 100%) !important;
}

/* ── 17. Profile attributes title bars — consistent gold accent ── */
.profile__attributes_title-bar {
  background-image: none !important;
  border-bottom: 2px solid rgba(184,154,92,0.35);
}

/* ── 18. vCard button — sharper ── */
.profile__v-card-btn {
  letter-spacing: 0.2rem;
  font-size: 1.3rem !important;
}

/* ════════════════════════════════════════════════════════
   AFFILIATIONS & RECOGNITION SECTION
   ════════════════════════════════════════════════════════ */

.rdl-affiliations {
  background-color: #f7f8fa;
  border-top: 1px solid #d1d9e6;
  padding: 5rem 6rem 6rem;
}

.rdl-affiliations__header {
  text-align: center;
  margin-bottom: 3.5rem;
  position: relative;
}

.rdl-affiliations__header::before,
.rdl-affiliations__header::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 28%;
  height: 1px;
  background: linear-gradient(to var(--dir, right), #d1d9e6, transparent);
}
.rdl-affiliations__header::before { left: 0;   --dir: right; }
.rdl-affiliations__header::after  { right: 0;  --dir: left;  }

.rdl-affiliations__eyebrow {
  display: inline-block;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.4rem;
  text-transform: uppercase;
  color: #b89a5c;
  background-color: #f7f8fa;
  padding: 0 2rem;
  position: relative;
  z-index: 1;
}

.rdl-affiliations__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  max-width: 110rem;
  margin: 0 auto;
}

@media (max-width: 56.25em) {
  .rdl-affiliations__grid { grid-template-columns: repeat(2, 1fr); }
  .rdl-affiliations { padding: 4rem 3rem 5rem; }
}

@media (max-width: 37.5em) {
  .rdl-affiliations__grid { grid-template-columns: 1fr; }
  .rdl-affiliations { padding: 3rem 2rem 4rem; }
}

.rdl-affiliations__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.4rem;
  background-color: #fff;
  border: 1px solid #d1d9e6;
  padding: 3rem 2.5rem 2.5rem;
  text-decoration: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  border-radius: 2px;
}

.rdl-affiliations__card:hover {
  border-color: #b89a5c;
  box-shadow: 0 4px 20px rgba(10, 61, 107, 0.1);
  transform: translateY(-2px);
  text-decoration: none;
}

.rdl-affiliations__logo-wrap {
  height: 7rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rdl-affiliations__logo {
  max-height: 7rem;
  max-width: 18rem;
  width: auto;
  object-fit: contain;
  filter: grayscale(15%);
  transition: filter 0.2s ease;
}

.rdl-affiliations__card:hover .rdl-affiliations__logo {
  filter: grayscale(0%);
}

.rdl-affiliations__name {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-align: center;
  color: #4a5568;
  margin: 0;
  line-height: 1.5;
  text-transform: uppercase;
}

/* ── Search bar — lighter, more visible ── */
.search__input {
  background-color: rgba(255,255,255,0.14) !important;
  border: 1px solid rgba(255,255,255,0.28) !important;
  color: #fff !important;
}
.search__input::placeholder { color: rgba(255,255,255,0.55) !important; }
.search__input:focus {
  background-color: rgba(255,255,255,0.22) !important;
  border-color: var(--color-accent-gold) !important;
}

/* ── Instagram icon in nav ── */
.social-media-nav__ig-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: rgba(255,255,255,0.6);
  text-decoration: none;
  transition: color 0.2s ease;
}
.social-media-nav__ig-link:hover {
  color: #fff;
  text-decoration: none;
}
.social-media-nav__icon-box:hover .social-media-nav__ig-link {
  color: #fff;
}

/* ── Section heading eyebrows (homepage) ── */
.home-paragraph__eyebrow {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.45rem;
  text-transform: uppercase;
  color: var(--color-accent-gold);
  margin-bottom: 0.8rem;
  text-align: center;
}

.home-paragraph__heading {
  font-size: 2.8rem !important;
  font-weight: 300 !important;
  letter-spacing: 0.6rem !important;
  color: #fff !important;
  text-align: center;
  margin-bottom: 2.5rem !important;
}

.contact-practice__eyebrow-label {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.45rem;
  text-transform: uppercase;
  color: var(--color-accent-gold);
  margin-bottom: 0.8rem;
  text-align: center;
}

/* contact-practice__upper-heading white rule removed — consolidated below */

/* ════════════════════════════════════════════════════════
   HEADING COLOR + RESPONSIVE FIXES
   ════════════════════════════════════════════════════════ */

/* Practice Areas heading — match gold color of the eyebrow label */
.contact-practice__upper-heading {
  color: #b89a5c !important;
  font-size: 2.8rem !important;
  font-weight: 300 !important;
  letter-spacing: 0.55rem !important;
  margin-bottom: 1.8rem !important;
  text-align: center;
}

/* Our Firm heading — keep white but properly sized */
.home-paragraph__heading {
  font-size: 2.8rem !important;
  font-weight: 300 !important;
  letter-spacing: 0.55rem !important;
  color: #fff !important;
  text-align: center;
  margin-bottom: 2.5rem !important;
}

/* ════════════════════════════════════════════════════════
   MOBILE & TABLET RESPONSIVE IMPROVEMENTS
   ════════════════════════════════════════════════════════ */

/* ── Tablet (≤900px) ── */
@media (max-width: 56.25em) {

  /* Firm page: stack vertically on tablet */
  .firm-description {
    flex-direction: column !important;
  }
  .firm-description__top,
  .firm-description__bottom {
    flex: 0 0 100% !important;
    padding: 4rem !important;
    min-height: auto !important;
  }

  /* Homepage video section: logo full width on tablet */
  .video-slider__logo {
    padding: 4rem 3rem 5rem !important;
  }

  /* Practice areas grid: 2 cols on tablet */
  .pa-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    margin: 2rem !important;
  }

  /* Affiliations: 2 cols on tablet */
  .rdl-affiliations {
    padding: 3.5rem 2.5rem 4rem !important;
  }
  .rdl-affiliations__grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Contact page header: smaller letter spacing */
  .contact-page__header-text {
    font-size: 2.2rem !important;
    letter-spacing: 1rem !important;
    word-spacing: 0.5rem !important;
  }

  /* Contact page: location items full width */
  .contact-page__location-item {
    flex: 0 0 100% !important;
    padding: 3rem !important;
  }
  .contact-page__location-item_dark {
    flex: 0 0 100% !important;
  }

  /* Attorney directory: reduce padding */
  .profile-list {
    padding: 8rem 0 0 !important;
  }

  /* Footer: tighter spacing */
  .footer-row {
    padding: 3rem 2rem 2rem !important;
  }
  .footer-row__location {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    padding: 2rem 0 1.5rem !important;
  }
  .footer-row__location-block {
    padding: 0.4rem 1.2rem !important;
    font-size: 1.2rem !important;
  }
}

/* ── Mobile (≤600px) ── */
@media (max-width: 37.5em) {

  /* Firm page: smaller padding on mobile */
  .firm-description__top,
  .firm-description__bottom {
    padding: 3rem 2rem !important;
  }
  .firm-description__top-header,
  .firm-description__bottom-header {
    font-size: 1.8rem !important;
    padding-left: 1.2rem !important;
  }
  .firm-description__top-text,
  .firm-description__bottom-text {
    font-size: 1.4rem !important;
    line-height: 2.4rem !important;
  }

  /* Practice areas: single column */
  .pa-grid {
    grid-template-columns: 1fr !important;
    margin: 0 !important;
  }
  .pa-hero {
    padding: 2.5rem 2rem !important;
  }
  .pa-hero__title {
    font-size: 2.2rem !important;
    letter-spacing: 0.3rem !important;
  }
  .pa-card {
    min-height: 9rem !important;
    padding: 2rem 2rem 2rem !important;
  }
  .pa-card__num {
    font-size: 2rem !important;
  }
  .pa-card__title {
    font-size: 1.2rem !important;
  }

  /* Practice areas modal */
  .pa-modal .modal-dialog {
    margin: 1rem !important;
  }
  .pa-modal .modal-body {
    padding: 2rem !important;
  }
  .pa-modal .modal-body p {
    font-size: 1.35rem !important;
    line-height: 2.2rem !important;
  }

  /* Homepage sections */
  .home-paragraph {
    padding: 3.5rem 2rem !important;
  }
  .home-paragraph__heading {
    font-size: 2rem !important;
    letter-spacing: 0.3rem !important;
  }
  .home-paragraph__eyebrow {
    font-size: 0.9rem !important;
    letter-spacing: 0.3rem !important;
  }
  .home-paragraph__text {
    font-size: 1.45rem !important;
    line-height: 2.5rem !important;
  }

  /* Practice areas section on homepage */
  .contact-practice__upper {
    padding: 4rem 1.5rem !important;
  }
  .contact-practice__upper-container {
    width: 95% !important;
    padding: 2.5rem 2rem !important;
  }
  .contact-practice__upper-heading {
    font-size: 2rem !important;
    letter-spacing: 0.3rem !important;
  }
  .contact-practice__upper-text {
    font-size: 1.4rem !important;
    width: 100% !important;
    line-height: 2.2rem !important;
  }
  .contact-practice__upper-button {
    font-size: 1.3rem !important;
    padding: 1.2rem 2.5rem !important;
    flex: none !important;
    width: 80% !important;
    text-align: center;
  }

  /* Contact page */
  .contact-page__header {
    padding: 2rem 1.5rem !important;
  }
  .contact-page__header-text {
    font-size: 1.8rem !important;
    letter-spacing: 0.6rem !important;
    word-spacing: 0.3rem !important;
  }
  .contact-page__location-item,
  .contact-page__location-item_dark {
    padding: 2.5rem 1.5rem !important;
    flex: 0 0 100% !important;
  }
  .contact-page__location-title,
  .contact-page__location-title-dark {
    font-size: 1.8rem !important;
  }
  .contact-page__location-text,
  .contact-page__location-text-dark {
    font-size: 1.4rem !important;
  }

  /* Affiliations: single column */
  .rdl-affiliations {
    padding: 3rem 1.5rem 3.5rem !important;
  }
  .rdl-affiliations__grid {
    grid-template-columns: 1fr !important;
    gap: 1.2rem !important;
  }
  .rdl-affiliations__header::before,
  .rdl-affiliations__header::after {
    width: 15% !important;
  }

  /* Footer */
  .footer-row__logo-top {
    font-size: 2.8rem !important;
    letter-spacing: 0.5rem !important;
  }
  .footer-row__logo-bottom {
    font-size: 1.3rem !important;
    letter-spacing: 0.4rem !important;
    word-spacing: 0.2rem !important;
  }
  .footer-row__location {
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 0.4rem !important;
    padding: 1.5rem 0 1rem !important;
  }
  .footer-row__location-block {
    font-size: 1.1rem !important;
    padding: 0.3rem 0.8rem !important;
    border-right: none !important;
  }
  .footer-row__location-block:not(:last-child) {
    border-right: 1px solid rgba(255,255,255,0.25) !important;
  }
  .bottom-bar {
    padding: 0.8rem 1.5rem !important;
  }
  .footer-row__copyright-text {
    font-size: 1.1rem !important;
  }

  /* Profile page on mobile */
  .profile {
    padding: 14rem 1rem 2rem !important;
  }
}

/* ── Small mobile (≤460px) ── */
@media (max-width: 28.75em) {
  .pa-hero__title {
    font-size: 1.8rem !important;
    letter-spacing: 0.2rem !important;
  }
  .contact-page__header-text {
    font-size: 1.5rem !important;
    letter-spacing: 0.4rem !important;
    word-spacing: 0.2rem !important;
  }
  .footer-row__logo-top {
    font-size: 2.2rem !important;
  }
}

/* ════════════════════════════════════════════════════════
   MOBILE & TABLET RESPONSIVE FIXES
   ════════════════════════════════════════════════════════ */

/* ── Firm page — stack on tablet/mobile ── */
@media (max-width: 56.25em) {
  .firm-description {
    flex-direction: column !important;
    padding-top: 6.5rem;
    min-height: auto;
  }
  .firm-description__top,
  .firm-description__bottom {
    flex: 0 0 100% !important;
    width: 100% !important;
    padding: 4rem 3rem !important;
  }
}

@media (max-width: 37.5em) {
  .firm-description__top,
  .firm-description__bottom {
    padding: 3rem 2rem !important;
  }
  .firm-description__top-text,
  .firm-description__bottom-text {
    font-size: 1.4rem !important;
    line-height: 2.4rem !important;
  }
  .firm-description__top-header,
  .firm-description__bottom-header {
    font-size: 1.6rem !important;
  }
}

/* ── Homepage "Our Firm" section ── */
@media (max-width: 56.25em) {
  .home-paragraph { padding: 4rem 3rem !important; }
  .home-paragraph__heading { font-size: 2rem !important; letter-spacing: 0.3rem !important; }
  .home-paragraph__text { font-size: 1.6rem !important; line-height: 2.6rem !important; }
}
@media (max-width: 37.5em) {
  .home-paragraph { padding: 3rem 1.8rem !important; }
  .home-paragraph__heading { font-size: 1.8rem !important; }
  .home-paragraph__text { font-size: 1.4rem !important; }
}

/* ── Practice Areas CTA box ── */
@media (max-width: 56.25em) {
  .contact-practice__upper-heading { font-size: 2rem !important; letter-spacing: 0.3rem !important; }
  .contact-practice__upper-container { padding: 3rem 2.5rem !important; width: 90% !important; }
}
@media (max-width: 37.5em) {
  .contact-practice__upper-heading { font-size: 1.7rem !important; letter-spacing: 0.2rem !important; }
  .contact-practice__upper-container { width: 95% !important; padding: 2.5rem 1.8rem !important; }
  .contact-practice__upper-text { font-size: 1.4rem !important; width: 100% !important; line-height: 2.2rem !important; }
  .contact-practice__upper-button { font-size: 1.3rem !important; padding: 1.2rem 2.5rem !important; }
}

/* ── Contact page — 2-col grid to single col ── */
@media (max-width: 56.25em) {
  .contact-page__location-item {
    flex: 0 0 100% !important;
    padding: 3rem 2.5rem !important;
  }
  .contact-page__location-item_dark {
    flex: 0 0 100% !important;
    padding: 3rem 2.5rem !important;
  }
  .contact-page__header-text {
    font-size: 2rem !important;
    letter-spacing: 1rem !important;
  }
}
@media (max-width: 37.5em) {
  .contact-page__header-text { font-size: 1.6rem !important; letter-spacing: 0.5rem !important; }
  .contact-page__location-title,
  .contact-page__location-title-dark { font-size: 1.8rem !important; }
  .contact-page__location-text,
  .contact-page__location-text-dark { font-size: 1.4rem !important; }
}

/* ── Attorney directory — responsive table ── */
@media (max-width: 56.25em) {
/* removed conflicting profile-list padding */
  .profile-list__attorney-directory_title { font-size: 2rem !important; }
}

/* ── Footer responsive ── */
@media (max-width: 56.25em) {
  .footer-row { padding: 3rem 2rem !important; }
  .footer-row__logo-top { font-size: 3rem !important; letter-spacing: 0.6rem !important; }
  .footer-row__logo-bottom { font-size: 1.3rem !important; letter-spacing: 0.5rem !important; }
  .footer-row__location { flex-wrap: wrap !important; justify-content: center !important; gap: 0.5rem !important; }
  .footer-row__location-block { font-size: 1.1rem !important; padding: 0.3rem 1rem !important; }
}
@media (max-width: 37.5em) {
  .footer-row__logo-top { font-size: 2.2rem !important; letter-spacing: 0.4rem !important; }
  .footer-row__location-block:not(:last-child) { border-right: none !important; }
  .bottom-bar { padding: 0.8rem 1.5rem !important; }
}

/* ── Gallery rows — stack on mobile ── */
@media (max-width: 56.25em) {
  .gallery__text { font-size: 1.8rem !important; line-height: 3rem !important; padding-left: 2rem !important; padding-right: 2rem !important; }
}
@media (max-width: 37.5em) {
  .gallery__text { font-size: 1.5rem !important; line-height: 2.6rem !important; text-align: center !important; }
}

/* ── Affiliations grid responsive ── */
@media (max-width: 37.5em) {
  .rdl-affiliations { padding: 3rem 1.5rem 4rem !important; }
  .rdl-affiliations__header::before,
  .rdl-affiliations__header::after { width: 15% !important; }
}

/* ── Practice areas page ── */
@media (max-width: 37.5em) {
  .pa-hero { padding: 2.5rem 1.5rem !important; }
  .pa-hero__title { font-size: 1.8rem !important; letter-spacing: 0.2rem !important; }
  .pa-grid { margin: 0 !important; }
  .pa-card { padding: 2rem 1.8rem !important; min-height: 8rem !important; }
  .pa-card__num { font-size: 2rem !important; }
  .pa-card__title { font-size: 1.2rem !important; }
}

/* ── Header nav on mobile ── */
@media (max-width: 37.5em) {
  .header { height: 6rem !important; }
  .navigation__button { height: 6rem !important; width: 6rem !important; }
  .profile-page { padding-top: 6rem; }
  .pa-page { padding-top: 6rem; }
  .firm-description { padding-top: 6rem !important; }
  .contact-page { padding-top: 6rem !important; }
}

/* ════════════════════════════════════════════════════════
   ALL STYLISTIC IMPROVEMENTS — BATCH
   ════════════════════════════════════════════════════════ */

/* ── 1. Page fade-in on load ── */
@keyframes rdlFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
body {
  /* NOTE: never put transform on body — it breaks position:fixed for the header */
  animation: rdlFadeIn 0.35s ease;
}

/* ── 2. Scroll shadow on header ── */
.header.scrolled {
  box-shadow: 0 2px 20px rgba(0,0,0,0.35), 0 2px 0 rgba(184,154,92,0.4) !important;
  background-color: rgba(4,30,56,0.97) !important;
}

/* ── 3. Active nav link ── */
.navigation__link--active {
  color: #b89a5c !important;
}
.navigation__link--active span {
  color: #b89a5c !important;
}

/* ── 4. Stats bar ── */
.rdl-stats {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #041e38;
  border-top: 1px solid rgba(184,154,92,0.2);
  border-bottom: 1px solid rgba(184,154,92,0.2);
  padding: 3.5rem 4rem;
  gap: 0;
}

.rdl-stats__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  flex: 1;
  padding: 0 2rem;
}

.rdl-stats__number {
  font-size: 4rem;
  font-weight: 200;
  color: #fff;
  letter-spacing: 0.05em;
  line-height: 1;
  font-family: 'Montserrat', sans-serif;
}

.rdl-stats__label {
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.3rem;
  text-transform: uppercase;
  color: #b89a5c;
}

.rdl-stats__divider {
  width: 1px;
  height: 5rem;
  background: rgba(184,154,92,0.3);
  flex-shrink: 0;
}

@media (max-width: 56.25em) {
  .rdl-stats { padding: 2.5rem 2rem; gap: 0; }
  .rdl-stats__number { font-size: 3rem; }
  .rdl-stats__label { font-size: 0.9rem; letter-spacing: 0.15rem; }
  .rdl-stats__item { padding: 0 1.2rem; }
}

@media (max-width: 37.5em) {
  .rdl-stats {
    flex-wrap: wrap;
    gap: 2rem;
    padding: 3rem 2rem;
  }
  .rdl-stats__item { flex: 0 0 40%; }
  .rdl-stats__divider { display: none; }
  .rdl-stats__number { font-size: 3.2rem; }
}

/* ── 5. Pull-quote gallery text ── */
.gallery__text--quote {
  font-size: 2.2rem !important;
  font-weight: 200 !important;
  font-style: italic;
  line-height: 3.6rem !important;
  letter-spacing: 0.02em !important;
  text-align: center !important;
  padding-left: 4rem !important;
  padding-right: 4rem !important;
}

.gallery__text__attribution {
  font-size: 1.1rem !important;
  font-weight: 600;
  letter-spacing: 0.35rem;
  text-transform: uppercase;
  color: #b89a5c;
  text-align: center;
  margin-top: 2rem;
  padding-left: 4rem;
  padding-right: 4rem;
}

.gallery__text__attribution--dark {
  color: #0a3d6b;
}

@media (max-width: 56.25em) {
  .gallery__text--quote { font-size: 1.8rem !important; line-height: 2.9rem !important; }
}
@media (max-width: 37.5em) {
  .gallery__text--quote { font-size: 1.5rem !important; line-height: 2.4rem !important; padding-left: 2rem !important; padding-right: 2rem !important; }
  .gallery__text__attribution { padding-left: 2rem; padding-right: 2rem; font-size: 0.9rem !important; }
}

/* ── 6. Hover underline on footer links ── */
.footer-row__location-block {
  cursor: default;
  transition: color 0.2s ease;
}
.footer-row__location-block:hover {
  color: rgba(255,255,255,0.9) !important;
}

.contact-page__location-phone,
.contact-page__location-phone-dark {
  transition: color 0.2s ease;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.contact-page__location-phone:hover { color: #0a3d6b !important; }
.contact-page__location-phone-dark:hover { color: #b89a5c !important; }

/* ── 7. Attorney photo zoom + gold border on hover ── */
.profile-list__attorney-directory_attorney-img {
  transition: transform 0.3s ease, border-color 0.3s ease !important;
}
.profile-list__attorney-directory__row:hover .profile-list__attorney-directory_attorney-img {
  transform: scale(1.05);
  border-color: #b89a5c !important;
}

/* ── 8. Firm page pull-quote divider ── */
.firm-description__top::after {
  content: '"AV Rated — The Highest Mark of Excellence"';
  display: block;
  font-size: 1.4rem;
  font-style: italic;
  font-weight: 300;
  color: rgba(10,61,107,0.45);
  text-align: center;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid #d1d9e6;
  letter-spacing: 0.05em;
}

/* ── 9. Practice areas modal max-width readable line length ── */
.pa-modal .modal-body {
  max-width: 68rem;
  margin: 0 auto;
}

/* ── 10. Practice areas hero animated underline ── */
@keyframes rdlUnderline {
  from { width: 0; }
  to   { width: 6rem; }
}
.pa-hero__title {
  position: relative;
  padding-bottom: 1.8rem;
}
.pa-hero__title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  background-color: #b89a5c;
  animation: rdlUnderline 0.7s ease 0.3s both;
}

/* ── 11. Profile page breadcrumb ── */
.rdl-breadcrumb {
  background-color: #f0f2f5;
  border-bottom: 1px solid #d1d9e6;
  padding: 1rem 4rem;
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.rdl-breadcrumb__link {
  font-size: 1.2rem;
  color: #1a6baa;
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: color 0.2s;
}
.rdl-breadcrumb__link:hover { color: #b89a5c; text-decoration: none; }
.rdl-breadcrumb__sep {
  font-size: 1.2rem;
  color: #9ca3af;
}
.rdl-breadcrumb__current {
  font-size: 1.2rem;
  color: #4a5568;
  letter-spacing: 0.05em;
}
@media (max-width: 37.5em) {
  .rdl-breadcrumb { padding: 1rem 1.5rem; }
}

/* ── 12. Footer phone number ── */
.rdl-footer-phone {
  font-size: 1.2rem;
  color: rgba(255,255,255,0.45);
  text-decoration: none;
  letter-spacing: 0.08em;
  transition: color 0.2s ease;
  margin-top: 0.3rem;
  display: block;
  text-align: right;
}
.rdl-footer-phone:hover { color: #b89a5c; text-decoration: none; }
@media (max-width: 56.25em) {
  .rdl-footer-phone { text-align: center; margin-top: 0.5rem; font-size: 1.1rem; }
}

/* ── 13. Consistent button corners — square authority style ── */
.contact-practice__upper-button,
.contact-practice__bottom-button,
.contact__submit,
.profile-list__attorney-directory_view-profile,
.profile-list__attorney-directory_v-text,
.profile-list__attorney-directory_email-btn,
.prof-vcard,
.pa-modal .btn-close-rdl {
  border-radius: 0 !important;
}
.contact-practice__upper-button:hover,
.contact-practice__bottom-button:hover,
.contact__submit:hover,
.profile-list__attorney-directory_view-profile:hover,
.profile-list__attorney-directory_v-text:hover,
.profile-list__attorney-directory_email-btn:hover {
  border-radius: 0 !important;
}

/* ── 14. Scroll shadow JS trigger ── */


/* ════════════════════════════════════════════════════════
   ALL STYLISTIC IMPROVEMENTS — BATCH
   ════════════════════════════════════════════════════════ */

/* 1. Page fade-in */
/* duplicate fadeIn removed — see rule above */

/* 2. Scroll shadow on header */
.header.scrolled { box-shadow: 0 2px 20px rgba(0,0,0,0.35), 0 2px 0 rgba(184,154,92,0.4) !important; background-color: rgba(4,30,56,0.97) !important; }

/* 3. Active nav link */
.navigation__link--active { color: #b89a5c !important; }
.navigation__link--active span { color: #b89a5c !important; }

/* 4. Stats bar */
.rdl-stats { display:flex; align-items:center; justify-content:center; background-color:#041e38; border-top:1px solid rgba(184,154,92,0.2); border-bottom:1px solid rgba(184,154,92,0.2); padding:3.5rem 4rem; gap:0; }
.rdl-stats__item { display:flex; flex-direction:column; align-items:center; gap:0.6rem; flex:1; padding:0 2rem; }
.rdl-stats__number { font-size:4rem; font-weight:200; color:#fff; letter-spacing:0.05em; line-height:1; font-family:'Montserrat',sans-serif; }
.rdl-stats__label { font-size:1.1rem; font-weight:600; letter-spacing:0.3rem; text-transform:uppercase; color:#b89a5c; }
.rdl-stats__divider { width:1px; height:5rem; background:rgba(184,154,92,0.3); flex-shrink:0; }
@media (max-width:56.25em) { .rdl-stats { padding:2.5rem 2rem; } .rdl-stats__number { font-size:3rem; } .rdl-stats__label { font-size:0.9rem; letter-spacing:0.15rem; } .rdl-stats__item { padding:0 1.2rem; } }
@media (max-width:37.5em) { .rdl-stats { flex-wrap:wrap; gap:2rem; padding:3rem 2rem; } .rdl-stats__item { flex:0 0 40%; } .rdl-stats__divider { display:none; } .rdl-stats__number { font-size:3.2rem; } }

/* 5. Pull-quote gallery text */
.gallery__text--quote { font-size:2.2rem !important; font-weight:200 !important; font-style:italic; line-height:3.6rem !important; letter-spacing:0.02em !important; text-align:center !important; padding-left:3.5rem !important; padding-right:3.5rem !important; }
.gallery__text__attribution { font-size:1.1rem; font-weight:600; letter-spacing:0.35rem; text-transform:uppercase; color:#b89a5c; text-align:center; margin-top:2rem; padding:0 4rem; display:block; }
.gallery__text__attribution--dark { color:#0a3d6b; }
@media (max-width:56.25em) { .gallery__text--quote { font-size:1.8rem !important; line-height:2.9rem !important; } }
@media (max-width:37.5em) { .gallery__text--quote { font-size:1.5rem !important; line-height:2.4rem !important; padding:0 1.8rem !important; } .gallery__text__attribution { padding:0 1.8rem; font-size:0.9rem; } }

/* 6. Footer location hover */
.footer-row__location-block { cursor:default; transition:color 0.2s ease; }
.footer-row__location-block:hover { color:rgba(255,255,255,0.9) !important; }

/* 7. Attorney photo zoom + gold border on hover */
.profile-list__attorney-directory_attorney-img { transition:transform 0.3s ease, border-color 0.3s ease !important; }
.profile-list__attorney-directory__row:hover .profile-list__attorney-directory_attorney-img { transform:scale(1.05); border-color:#b89a5c !important; }

/* 8. Firm page AV quote divider */
.firm-description__top::after { content:'"AV Rated — The Highest Mark of Excellence"'; display:block; font-size:1.4rem; font-style:italic; font-weight:300; color:rgba(10,61,107,0.4); text-align:center; margin-top:3rem; padding-top:2rem; border-top:1px solid #d1d9e6; letter-spacing:0.05em; }
@media (max-width:56.25em) { .firm-description__top::after { margin-top:2rem; padding-top:1.5rem; font-size:1.2rem; } }

/* 9. Practice areas modal max-width */
.pa-modal .modal-body { max-width:68rem; margin:0 auto; }

/* 10. Practice areas hero animated underline */
@keyframes rdlUnderline { from { width:0; } to { width:6rem; } }
.pa-hero__title { position:relative; padding-bottom:1.8rem; }
.pa-hero__title::after { content:''; position:absolute; bottom:0; left:0; height:2px; background-color:#b89a5c; animation:rdlUnderline 0.7s ease 0.3s both; }

/* 11. Profile breadcrumb */
.rdl-breadcrumb { background-color:#f0f2f5; border-bottom:1px solid #d1d9e6; padding:1rem 4rem; display:flex; align-items:center; gap:0.8rem; }
.rdl-breadcrumb__link { font-size:1.2rem; color:#1a6baa; text-decoration:none; letter-spacing:0.05em; transition:color 0.2s; }
.rdl-breadcrumb__link:hover { color:#b89a5c; text-decoration:none; }
.rdl-breadcrumb__sep { font-size:1.2rem; color:#9ca3af; }
.rdl-breadcrumb__current { font-size:1.2rem; color:#4a5568; letter-spacing:0.05em; }
@media (max-width:37.5em) { .rdl-breadcrumb { padding:1rem 1.5rem; } }

/* 12. Footer phone number */
.rdl-footer-phone { font-size:1.2rem; color:rgba(255,255,255,0.45); text-decoration:none; letter-spacing:0.08em; transition:color 0.2s ease; margin-top:0.3rem; display:block; text-align:right; }
.rdl-footer-phone:hover { color:#b89a5c; text-decoration:none; }
@media (max-width:56.25em) { .rdl-footer-phone { text-align:center; margin-top:0.5rem; } }

/* 13. Consistent square buttons everywhere */
.contact-practice__upper-button, .contact-practice__bottom-button, .contact__submit,
.profile-list__attorney-directory_view-profile, .profile-list__attorney-directory_v-text,
.profile-list__attorney-directory_email-btn, .prof-vcard, .pa-modal .btn-close-rdl { border-radius:0 !important; }
.contact-practice__upper-button:hover, .contact-practice__bottom-button:hover, .contact__submit:hover,
.profile-list__attorney-directory_view-profile:hover, .profile-list__attorney-directory_v-text:hover,
.profile-list__attorney-directory_email-btn:hover { border-radius:0 !important; }

/* ════════════════════════════════════════════════════════
   BUG FIXES — ROUND 3
   ════════════════════════════════════════════════════════ */

/* FIX 1: Practice areas modal — centered when page is scrolled
   Bootstrap's .modal uses position:fixed but needs correct top offset.
   The modal-dialog needs overflow-y:auto and max-height so it's scrollable
   internally rather than the page scrolling. */
.pa-modal.modal {
  overflow-y: auto !important;
}
/* pa-modal block 1 removed - consolidated */

/* FIX 2: View Profile button hover causes row height increase
   Root cause: border goes from 1.4px → 2px on hover (+0.6px each side = layout shift)
   and border-radius:30px on hover also expands the painted area slightly.
   Fix: use outline instead of border on hover so no layout space is consumed */
.profile-list__attorney-directory_view-profile {
  border: 2px solid rgba(255,255,255,0.55) !important;
  box-sizing: border-box !important;
}
.profile-list__attorney-directory_view-profile:hover {
  border: 2px solid #fff !important;
  border-radius: 0 !important;
  background-color: #fff !important;
  background-image: none !important;
  color: var(--color-primary-dark, #041e38) !important;
  outline: none !important;
}

/* FIX 3: Mobile gap between nav header and search bar
   style.css sets .search-mobile { margin-top: 7rem } which matches
   the original 7rem header height. But our polish CSS changed the
   header to 6.5rem. The gap = 7rem - 6.5rem = 0.5rem white space. */
@media (max-width: 37.5em) {
  .search-mobile {
    margin-top: 6rem !important;
  }
}

/* ════════════════════════════════════════════════════════
   BUG FIXES — ROUND 4
   ════════════════════════════════════════════════════════ */

/* FIX 1: Body scroll lock handled in pre-load.js */

/* FIX 2: Firm page — align both column headers to the same top position */
.firm-description {
  align-items: stretch !important;
}

.firm-description__top,
.firm-description__bottom {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  padding: 6rem 7rem !important;
}

/* Remove the ::after AV quote from firm page top panel —
   it adds extra height to just one side, breaking alignment */
.firm-description__top::after {
  display: none !important;
}

/* Give both headers identical visual treatment so they line up exactly */
.firm-description__top-header,
.firm-description__bottom-header {
  margin-top: 0 !important;
  margin-bottom: 1.5rem !important;
  padding-top: 0 !important;
}

.firm-description__top-hr,
.firm-description__bottom-hr {
  margin-top: 0 !important;
  margin-bottom: 2.5rem !important;
}

@media (max-width: 56.25em) {
  .firm-description__top,
  .firm-description__bottom {
    padding: 4rem 3rem !important;
  }
}

@media (max-width: 37.5em) {
  .firm-description__top,
  .firm-description__bottom {
    padding: 3rem 2rem !important;
  }
}

/* ════════════════════════════════════════════════════════
   MODAL FIX — always centered in viewport regardless of scroll
   ════════════════════════════════════════════════════════ */
.pa-modal.modal,
.modal.fade {
  overflow-y: auto !important;
}

/* Force modal to always render centered in the visible viewport */
/* pa-modal block 2 removed - consolidated */

/* Contact form modal - also center properly */
.contact.modal .modal-dialog,
#exampleModal .modal-dialog {
  margin: 3rem auto !important;
}

/* ── Practice areas modal: always visible in viewport ──
   Uses display:flex on the modal wrapper so the dialog
   is always centered in the fixed overlay, regardless of scroll */
.pa-modal.modal {
  display: none;
  overflow: hidden !important;
}
.pa-modal.modal.show,
.pa-modal.modal.in {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.pa-modal .modal-dialog {
  margin: 1.5rem !important;
  max-width: 80rem !important;
  width: 100% !important;
  max-height: calc(100vh - 3rem) !important;
  display: flex !important;
  flex-direction: column !important;
}
.pa-modal .modal-content {
  max-height: calc(100vh - 3rem) !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}
.pa-modal .modal-body {
  overflow-y: auto !important;
  flex: 1 !important;
  padding: 3rem 3.5rem !important;
}

/* ── Directory hero (attorney + admin pages) ── */
.rdl-dir-hero {
  background-color: #041e38;
  border-bottom: 2px solid #b89a5c;
  padding: 4rem 6rem;
  margin-top: 6.5rem; /* clears fixed header */
}
.rdl-dir-hero__eyebrow {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.45rem;
  text-transform: uppercase;
  color: #b89a5c;
  margin-bottom: 0.8rem;
}
.rdl-dir-hero__title {
  font-size: 3.5rem;
  font-weight: 200;
  letter-spacing: 0.6rem;
  text-transform: uppercase;
  color: #fff;
  margin: 0;
}
.rdl-dir-hero__subtitle {
  font-size: 1.4rem;
  font-weight: 300;
  color: rgba(255,255,255,0.55);
  margin-top: 1rem;
  letter-spacing: 0.1em;
}

/* Remove the old padding-top from profile-list since hero now provides the offset */
.profile-list {
  padding-top: 0 !important;
}

@media (max-width: 56.25em) {
  .rdl-dir-hero { padding: 3rem; margin-top: 6.5rem; }
  .rdl-dir-hero__title { font-size: 2.5rem; letter-spacing: 0.3rem; }
}
@media (max-width: 37.5em) {
  .rdl-dir-hero { padding: 2.5rem 2rem; }
  .rdl-dir-hero__title { font-size: 2rem; letter-spacing: 0.2rem; }
}

/* ════════════════════════════════════════════════════════
   CONTACT BANNER — Homepage bottom CTA
   ════════════════════════════════════════════════════════ */
.rdl-contact-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8rem;
  background-color: #041e38;
  border-top: 1px solid rgba(184,154,92,0.25);
  padding: 5rem 6rem;
  position: relative;
  overflow: hidden;
}

/* Subtle diagonal gold accent */
.rdl-contact-banner::before {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 30rem;
  height: 100%;
  background: linear-gradient(135deg, transparent 40%, rgba(184,154,92,0.05) 100%);
  pointer-events: none;
}

.rdl-contact-banner__left {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  max-width: 60rem;
}

.rdl-contact-banner__eyebrow {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.4rem;
  text-transform: uppercase;
  color: #b89a5c;
}

.rdl-contact-banner__heading {
  font-size: 2.4rem;
  font-weight: 300;
  letter-spacing: 0.15rem;
  color: #fff;
  margin: 0;
}

.rdl-contact-banner__sub {
  font-size: 1.4rem;
  font-weight: 300;
  color: rgba(255,255,255,0.55);
  line-height: 2rem;
  margin: 0;
}

.rdl-contact-banner__right {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  flex-shrink: 0;
}

.rdl-contact-banner__btn {
  display: block;
  text-align: center;
  font-size: 1.2rem;
  font-weight: 400;
  letter-spacing: 0.25rem;
  text-transform: uppercase;
  text-decoration: none;
  padding: 1.2rem 3rem;
  border: 1px solid;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.rdl-contact-banner__btn--primary {
  background-color: #b89a5c;
  border-color: #b89a5c;
  color: #041e38;
}
.rdl-contact-banner__btn--primary:hover {
  background-color: transparent;
  color: #b89a5c;
  text-decoration: none;
}

.rdl-contact-banner__btn--secondary {
  background-color: transparent;
  border-color: rgba(255,255,255,0.3);
  color: rgba(255,255,255,0.7);
}
.rdl-contact-banner__btn--secondary:hover {
  border-color: #b89a5c;
  color: #b89a5c;
  text-decoration: none;
}

@media (max-width: 75em) {
  .rdl-contact-banner { padding: 3.5rem 4rem; gap: 3rem; }
}
@media (max-width: 56.25em) {
  .rdl-contact-banner { flex-direction: column; align-items: flex-start; padding: 3rem; gap: 2.5rem; }
  .rdl-contact-banner__heading { font-size: 2rem; }
  .rdl-contact-banner__right { flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 37.5em) {
  .rdl-contact-banner { padding: 2.5rem 2rem; }
  .rdl-contact-banner__heading { font-size: 1.8rem; }
  .rdl-contact-banner__right { flex-direction: column; width: 100%; }
  .rdl-contact-banner__btn { width: 100%; }
}

/* Admin profile — hide attribute boxes, show bio only */
#AprofAttrs { display: none !important; }

/* Menu text turns gold on hover */
.navigation__button:hover .navigation__menu-text {
  color: #b89a5c;
}

/* Menu text gold on hover — label element needs explicit transition */
.navigation__menu-text {
  transition: color 0.2s ease;
}
label.navigation__button:hover .navigation__menu-text,
label.navigation__button:hover > .navigation__menu-text {
  color: #b89a5c !important;
}

/* ── Attorney directory hero fixes ── */

/* Remove the large top padding that was for the old floating title */
.profile-list {
  padding-top: 0 !important;
}

/* Hero sits flush under the fixed header */
.rdl-dir-hero {
  margin-top: 6.5rem !important;
}

/* Gold eyebrow color — ensure it matches administration page */
.rdl-dir-hero__eyebrow {
  color: #b89a5c !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.45rem !important;
  text-transform: uppercase !important;
}

.rdl-dir-hero__title {
  font-size: 3.5rem !important;
  font-weight: 200 !important;
  letter-spacing: 0.6rem !important;
  color: #fff !important;
  text-transform: uppercase !important;
  margin: 0 !important;
}

.rdl-dir-hero__subtitle {
  font-size: 1.4rem !important;
  font-weight: 300 !important;
  color: rgba(255,255,255,0.55) !important;
  margin-top: 1rem !important;
  letter-spacing: 0.1em !important;
}

@media (max-width: 37.5em) {
  .rdl-dir-hero { margin-top: 6rem !important; }
}

/* ── Attorney directory: hero now outside profile-list ── */
/* profile-list padding-top was for old floating title - now hero is above it */
.profile-list {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* ── Header must always be at top:0 ── */
.header {
  top: 0 !important;
}

/* ── Attorney directory final fix ── */
.rdl-dir-hero {
  margin-top: 6.5rem !important;
  background-color: #041e38 !important;
  border-bottom: 2px solid #b89a5c !important;
  padding: 4rem 6rem !important;
}

.rdl-dir-hero__eyebrow {
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.45rem !important;
  text-transform: uppercase !important;
  color: #b89a5c !important;
  margin-bottom: 0.8rem !important;
  display: block !important;
}

.rdl-dir-hero__title {
  font-size: 3.5rem !important;
  font-weight: 200 !important;
  letter-spacing: 0.6rem !important;
  color: #fff !important;
  text-transform: uppercase !important;
  margin: 0 !important;
  display: block !important;
}

.rdl-dir-hero__subtitle {
  font-size: 1.4rem !important;
  font-weight: 300 !important;
  color: rgba(255,255,255,0.55) !important;
  margin-top: 1rem !important;
  letter-spacing: 0.1em !important;
  display: block !important;
}

/* Attorney table — ensure clear gap below hero */
main.profile-list .profile-list__container {
  margin-top: 0 !important;
  width: 100% !important;
}

/* ═══ FINAL: attorney table spacing (must be last to win) ═══ */
main.profile-list {
  padding: 5rem 6rem 0 6rem !important;
  background-color: #f0f2f5 !important;
}
main.profile-list .profile-list__container {
  width: 100% !important;
  margin: 0 auto 5rem auto !important;
}

/* ═══ FIX: menu transparency when scrolled ═══ */
/* Base style.css sets .header.scrolled { opacity: 0.8 } which makes the
   full-screen nav overlay semi-transparent when opened after scrolling.
   Override to keep header fully opaque; use only the shadow for scroll feedback. */
.header.scrolled {
  opacity: 1 !important;
}
/* When the menu checkbox is checked (menu open), never dim the header.
   Note: avoiding :has() for older Safari compatibility — the .scrolled opacity:1
   override above already keeps the menu fully opaque. */
.navigation__checkbox:checked ~ .navigation__background,
.navigation__checkbox:checked ~ .navigation__nav {
  opacity: 1 !important;
}

/* ═══════════════════════════════════════════════════
   MOBILE FIXES — post-launch
   ═══════════════════════════════════════════════════ */

/* 1. Homepage gallery quotes — always white/readable over images + dark scrim */
.gallery__text-cell {
  position: relative;
}
.gallery__text-cell::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(4, 30, 56, 0.55);
  pointer-events: none;
  z-index: 0;
}
.gallery__text-wrapper,
.gallery__text-wrapper * {
  position: relative;
  z-index: 1;
}
.gallery__text--quote,
.gallery__text-cell--left .gallery__text--quote {
  color: #ffffff !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.5);
}
.gallery__text__attribution,
.gallery__text__attribution--dark {
  color: #d4b876 !important;  /* brighter gold, readable on dark scrim */
  text-shadow: 0 1px 6px rgba(0,0,0,0.5);
}

/* 2. Admin page header spacing on mobile */
@media (max-width: 37.5em) {
  .admin-page { padding-top: 0 !important; }
  .admin-hero {
    margin-top: 12rem !important;  /* clears fixed header + mobile search bar */
    padding: 2.5rem 2rem !important;
  }
  .admin-hero__title { font-size: 2rem !important; letter-spacing: 0.15rem !important; line-height: 1.3; }
  .admin-hero__subtitle { font-size: 1.3rem !important; }
  .admin-directory { padding: 2rem 1.5rem !important; }
  .admin-grid { justify-content: center !important; }
  .admin-card { width: 100% !important; max-width: 32rem; }
  .admin-card__photo-wrap { width: 100% !important; height: 0 !important; padding-bottom: 129.3% !important; position: relative !important; }
  .admin-card__photo { width: 100% !important; height: 100% !important; position: absolute !important; top: 0 !important; left: 0 !important; }
}

/* 3. Attorney directory table — fix broken mobile alignment */
@media (max-width: 56.25em) {
  /* The table columns overlap on mobile — stack them cleanly */
  .profile-list__attorney-directory__row {
    display: flex !important;
    flex-direction: column !important;
  }
  .profile-list__attorney-directory__row-item {
    width: 100% !important;
    flex: 1 1 100% !important;
    border-bottom: 1px solid #d1d9e6 !important;
  }
  .profile-list__attorney-directory__row-item-1 {
    background-color: #041e38 !important;
    padding: 2.5rem 1.5rem !important;
  }
  .profile-list__attorney-directory__row-item-3,
  .profile-list__attorney-directory__row-item-4 {
    background-color: #fff !important;
    padding: 2rem 1.5rem !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 0.8rem !important;
  }
  /* Hide the desktop NAME/TITLE/EMAIL header row on mobile — it doesn't align stacked */
  .profile-list__header.pageHead {
    display: none !important;
  }
  .profile-list__attorney-directory_attorney-img {
    max-width: 20rem !important;
    margin: 0 auto !important;
  }
  main.profile-list {
    padding: 2rem 1.5rem 0 1.5rem !important;
  }
}

/* ═══════════════════════════════════════════════════
   MOBILE FIXES — round 2 (post-launch)
   ═══════════════════════════════════════════════════ */

@media (max-width: 37.5em) {
  /* 1 & 3. Mobile search bar is position:fixed, floating over content.
     Make it static so it sits in normal flow and pushes content down. */
  .search-mobile {
    position: static !important;
    margin-top: 0 !important;
    order: 2;
  }

  /* Since search is no longer fixed, pages no longer need the huge top offset
     that was compensating for it. Reset those. */
  .rdl-dir-hero,
  .admin-hero,
  .pa-page,
  .pa-hero {
    margin-top: 6.5rem !important;
  }
  .admin-hero { margin-top: 0 !important; }
  .admin-page { padding-top: 6.5rem !important; }

  /* Practice areas: the page content was starting under the fixed search.
     Now that search is static, just clear the header. */
  .pa-page { padding-top: 0 !important; }
  .pa-hero { margin-top: 0 !important; }
}

/* 2. Preload screen not covering full height on mobile Safari.
   Safari's dynamic toolbar makes 100vh unreliable. Use the newer dvh unit
   with a 100vh fallback, plus fixed inset to guarantee full coverage. */
.preload,
#PreloadCover {
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 100vh !important;
  height: 100dvh !important;
  width: 100% !important;
  min-height: -webkit-fill-available !important;
}

/* 4. Nav link hover animation — disable the slide/background-fill on touch devices.
   The gradient-slide effect looks broken on mobile. Make links behave as plain
   tappable links on anything without a fine pointer (i.e. touchscreens). */
@media (hover: none), (pointer: coarse) {
  .navigation__link:link,
  .navigation__link:visited {
    background-image: none !important;
    background-color: transparent !important;
    transition: none !important;
    margin-left: 0 !important;
  }
  .navigation__item:hover .navigation__link {
    background-position: 0 !important;
    color: #fff !important;
    transform: none !important;
  }
  .navigation__link--active {
    color: #b89a5c !important;
  }
}

/* 5. Attorney table mobile header "NAME / EMAIL" doesn't make sense when
   rows are stacked cards. Hide the mobile header row entirely. */
@media (max-width: 56.25em) {
  .profile-list__header-mobile,
  .profile-list__header.pageHead {
    display: none !important;
  }
}

/* menu tap reliability block removed — was breaking Safari checkbox toggle */

/* ═══ Menu button always tappable ═══ */
/* The label toggles the hidden checkbox. Ensure it always receives taps. */
.navigation__button {
  pointer-events: auto !important;
  cursor: pointer;
  -webkit-tap-highlight-color: rgba(255,255,255,0.1);
}
/* Preload must never block interaction once faded — belt and suspenders. */
.preload[style*="opacity: 0"],
.preload[style*="width: 0"] {
  pointer-events: none !important;
}


/* ═══════════════════════════════════════════════════
   ATTORNEY/ADMIN DIRECTORY — CLEAN MOBILE CARD
   Everything in one dark navy card. No duplicate title,
   no floating white sections.
   ═══════════════════════════════════════════════════ */
@media (max-width: 56.25em) {
  /* Each attorney row becomes a single self-contained card */
  .profile-list__attorney-directory__row {
    display: block !important;
    background-color: #041e38 !important;
    margin: 0 0 2rem 0 !important;
    border: 1px solid rgba(184,154,92,0.25) !important;
    border-bottom: 1px solid rgba(184,154,92,0.25) !important;
    overflow: hidden;
  }

  /* Block 1: photo + name + title + View Profile (already dark) */
  .profile-list__attorney-directory__row-item-1 {
    width: 100% !important;
    flex: none !important;
    background-color: #041e38 !important;
    padding: 3rem 2rem 2rem !important;
    border: none !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 0 !important;
  }

  /* Photo */
  .profile-list__attorney-directory_attorney-img {
    max-width: 22rem !important;
    width: 60% !important;
    margin: 0 auto 1.5rem !important;
    border: 1px solid rgba(255,255,255,0.3) !important;
  }

  /* Name — larger, white */
  .profile-list__attorney-directory_name-text,
  .profile-list__attorney-directory_title-ps {
    display: block !important;
    color: #fff !important;
    text-align: center !important;
  }
  .profile-list__attorney-directory_name-text {
    font-size: 1.9rem !important;
    font-weight: 400 !important;
    letter-spacing: 0.05em !important;
    margin-bottom: 0.4rem !important;
    padding-top: 0 !important;
  }
  /* Title (the small one under name on mobile) — gold */
  .profile-list__attorney-directory_title-ps {
    font-size: 1.3rem !important;
    color: #b89a5c !important;
    letter-spacing: 0.1em !important;
    margin-bottom: 1.8rem !important;
    text-transform: uppercase;
  }

  /* Block 3 (title) — HIDE on mobile, it duplicates title-ps */
  .profile-list__attorney-directory__row-item-3 {
    display: none !important;
  }

  /* Block 4 (email) — pull it INTO the dark card, style to match */
  .profile-list__attorney-directory__row-item-4 {
    width: 100% !important;
    flex: none !important;
    background-color: #041e38 !important;
    border: none !important;
    border-top: 1px solid rgba(255,255,255,0.1) !important;
    padding: 2rem !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 1.2rem !important;
  }
  .profile-list__attorney-directory_email-text {
    color: #6aaad4 !important;
    font-size: 1.4rem !important;
    text-align: center !important;
    margin: 0 !important;
    word-break: break-all;
  }

  /* Buttons: View Profile, V Card, Send Email — consistent outline style */
  .profile-list__attorney-directory_view-profile,
  .profile-list__attorney-directory_email-btn {
    width: 80% !important;
    max-width: 26rem !important;
    background: transparent !important;
    background-image: none !important;
    border: 1px solid rgba(255,255,255,0.5) !important;
    color: #fff !important;
    font-size: 1.3rem !important;
    letter-spacing: 0.15em !important;
    padding: 1rem !important;
    border-radius: 0 !important;
    margin: 0 auto !important;
    text-transform: uppercase;
  }
  .profile-list__attorney-directory_email-btn {
    margin-bottom: 0 !important;
  }

  /* Hide the standalone V Card in block 3 area context; keep only email's Send Email
     and the View Profile. If V Card matters, it's in block 3 which is hidden.
     Move nothing else. */

  /* Remove the desktop header row */
  .profile-list__header.pageHead,
  .profile-list__header-mobile {
    display: none !important;
  }

  main.profile-list {
    padding: 2rem 1.5rem 2rem 1.5rem !important;
  }
  .profile-list__container {
    border: none !important;
    background: transparent !important;
  }
}

/* ═══ Homepage logo centering + reduced whitespace (mobile) ═══ */
@media (max-width: 37.5em) {
  .video-slider__logo {
    padding: 3.5rem 3rem !important;   /* less top/bottom whitespace */
    margin-top: 6.5rem !important;      /* clears header, no huge gap */
    justify-content: center !important;
    align-items: center !important;
  }
  .video-slider__logo-wrapper {
    flex: 0 0 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
  }
  .video-slider__logo-img {
    max-width: 88% !important;
    height: auto !important;
    margin: 0 auto !important;
    display: block !important;
  }
}

/* ═══════════════════════════════════════════════════
   FINAL: mobile search bar position (must be last)
   The header is position:fixed at top:0 (out of flow), so body content
   starts underneath it. The search bar must be pushed down by the header
   height so it sits below the menu bar, not behind it.
   ═══════════════════════════════════════════════════ */
@media (max-width: 37.5em) {
  .search-mobile {
    position: static !important;
    margin-top: 7rem !important;   /* clears the fixed header (7rem tall) */
    order: 0 !important;
    z-index: 1 !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   MAJOR FIX: Standardize header height + page top spacing
   The header height was inconsistent (7rem base, 6.5rem, 6rem mobile),
   causing gaps because content offsets didn't match. Lock everything to 6.5rem.
   ═══════════════════════════════════════════════════════════ */
.header {
  height: 6.5rem !important;
  top: 0 !important;
  position: fixed !important;
}
.navigation__button {
  height: 6.5rem !important;
  width: 6.5rem !important;
}

/* Every page's first content block clears exactly 6.5rem — no more, no less */
.pa-wrap,
.admin-page,
.firm-description,
.contact-page,
.profile-page,
.admin-profile-page { padding-top: 6.5rem !important; }

/* Directory heroes: they use inline margin-top; the header is 6.5rem so no gap */
/* (attorney-list and admin hero divs already have margin-top:6.5rem inline) */

/* Mobile: header stays 6.5rem (was dropping to 6rem and causing mismatch) */
@media (max-width: 37.5em) {
  .header { height: 6.5rem !important; }
  .navigation__button { height: 6.5rem !important; width: 6.5rem !important; }
  /* mobile search sits right below the 6.5rem header */
  .search-mobile {
    position: static !important;
    margin-top: 6.5rem !important;
    order: 0 !important;
    z-index: 1 !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   WHITE GAP FIX — mobile double-margin
   On mobile: fixed header, then search-mobile (margin-top:6.5rem clears header),
   then the hero. The hero must NOT also add 6.5rem or you get a white gap between
   the search bar and the hero. On mobile the search bar already provides the offset.
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 37.5em) {
  /* Directory heroes (inline margin-top:6.5rem) — cancel it on mobile since
     the search bar above them already cleared the header */
  .rdl-dir-hero,
  [style*="margin-top:6.5rem"] {
    margin-top: 0 !important;
  }
  /* Admin + practice + profile pages: their padding-top also double-counts */
  .admin-page { padding-top: 0 !important; }
  .pa-wrap { padding-top: 0 !important; }
  .profile-page,
  .admin-profile-page { padding-top: 0 !important; }
}

/* Desktop: no mobile search bar visible, so hero keeps its 6.5rem to clear header.
   (No change needed on desktop.) */

/* ═══ Firm page: two-line "Approach to / The Practice of Law" heading ═══ */
.firm-description__bottom-header {
  line-height: 1.3 !important;
}
.firm-header-sub {
  display: block;
  font-size: 0.72em;
  font-weight: 300;
  letter-spacing: 0.15em;
  opacity: 0.92;
  margin-top: 0.3rem;
}

/* ═══ Individual profile pages: reduce excess whitespace on mobile ═══ */
@media (max-width: 56.25em) {
  .prof-content,
  .aprof-content {
    padding: 2.5rem 1.8rem !important;
  }
  .prof-sidebar,
  .aprof-sidebar {
    padding: 2.5rem 1.8rem !important;
  }
  .prof-section,
  .aprof-section {
    margin-bottom: 2.5rem !important;
  }
  /* tighten the topbar */
  .prof-topbar,
  .aprof-topbar {
    padding: 1.5rem 1.8rem !important;
  }
  /* breadcrumb tighter */
  .rdl-breadcrumb {
    padding: 1rem 1.8rem !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   MENU LINKS: fully unclickable when menu is closed
   Root cause of "random page" bug: when closed, the nav had opacity:0 width:0
   but links stayed tappable during/after the fade on Safari. Force pointer-events
   off when the checkbox is unchecked, on only when checked.
   ═══════════════════════════════════════════════════════════ */
.navigation__nav {
  pointer-events: none !important;
  visibility: hidden !important;
}
.navigation__checkbox:checked ~ .navigation__nav {
  pointer-events: auto !important;
  visibility: visible !important;
}
/* Also guard the links + background directly */
.navigation__nav .navigation__link,
.navigation__nav .navigation__link-container {
  pointer-events: none !important;
}
.navigation__checkbox:checked ~ .navigation__nav .navigation__link,
.navigation__checkbox:checked ~ .navigation__nav .navigation__link-container {
  pointer-events: auto !important;
}

/* ═══ Preload clean exit — fade whole overlay, no per-element slide glitch ═══ */
.preload {
  transition: opacity 0.6s ease !important;
}
/* Prevent the old per-element width/margin transitions from firing during exit */
.preload.rdl-fading .preload__svg-rect,
.preload.rdl-fading .preload__svg-element {
  transition: none !important;
}

/* ═══ Profile topbar: tighten name/title spacing + bigger name ═══ */
.prof-topbar__name,
.aprof-topbar__name {
  font-size: 2.6rem !important;
  margin-bottom: 0.4rem !important;
  line-height: 1.1 !important;
}
.prof-topbar__title,
.prof-topbar__dept,
.aprof-topbar__dept {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  line-height: 1.2 !important;
}
.prof-topbar > div > p,
.aprof-topbar > div > p {
  margin: 0 !important;
}

@media (max-width: 56.25em) {
  .prof-topbar__name,
  .aprof-topbar__name {
    font-size: 2.2rem !important;
  }
}
@media (max-width: 37.5em) {
  .prof-topbar,
  .aprof-topbar {
    gap: 0.5rem !important;
  }
  .prof-topbar__name,
  .aprof-topbar__name {
    font-size: 2rem !important;
    margin-bottom: 0.3rem !important;
  }
}

/* ═══ Homepage logo: vertical centering on mobile ═══ */
@media (max-width: 37.5em) {
  .video-slider__logo {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 3rem !important;   /* equal top/bottom so logo sits centered */
  }
  .video-slider__logo-wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .video-slider__logo-img {
    margin: 0 auto !important;
    display: block !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   SITE SEARCH DROPDOWN — on-site live search, navy/gold themed
   ═══════════════════════════════════════════════════════════ */
.search, .search-mobile { position: relative; }

.rdl-search-results {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #d1d9e6;
  border-top: 2px solid #b89a5c;
  box-shadow: 0 12px 40px rgba(4,30,56,0.25);
  max-height: 60vh;
  overflow-y: auto;
  z-index: 60000;
  text-align: left;
}
.rdl-search-results.open { display: block; }

.rdl-sr-group {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.25rem;
  text-transform: uppercase;
  color: #b89a5c;
  background: #f7f8fa;
  padding: 0.9rem 1.6rem 0.6rem;
  border-bottom: 1px solid #eef1f5;
}

.rdl-sr-item {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 1.1rem 1.6rem;
  text-decoration: none;
  border-bottom: 1px solid #f0f2f5;
  transition: background-color 0.15s ease;
}
.rdl-sr-item:hover { background: #041e38; text-decoration: none; }
.rdl-sr-item:hover .rdl-sr-label { color: #fff; }
.rdl-sr-item:hover .rdl-sr-sub { color: #b89a5c; }

.rdl-sr-label {
  font-size: 1.5rem;
  font-weight: 500;
  color: #041e38;
  letter-spacing: 0.02em;
}
.rdl-sr-sub {
  font-size: 1.2rem;
  color: #6b7280;
  letter-spacing: 0.03em;
}

@media (max-width: 37.5em) {
  .rdl-search-results { max-height: 50vh; }
  .rdl-sr-label { font-size: 1.4rem; }
}
