/* ============================================
   Mackey Law Group, P.A. — Main Stylesheet
   mackeylaw.com

   TABLE OF CONTENTS:
   1.  Variables & Design Tokens
   2.  Reset & Base
   3.  Navigation
   4.  Mobile Drawer
   5.  Hero (Homepage)
   6.  Page Header (Interior Pages)
   7.  Services Section
   8.  Team Preview Section (Homepage)
   9.  Attorney Grid (Profiles Page)
   10. Locations Section
   11. Practice Areas Page
   12. Attorney Profile Page
   13. Contact Page
   14. Footer
   15. Scroll Reveal
   16. Responsive
   ============================================ */


/* === 1. Variables & Design Tokens === */

:root {
  /* Brand colors */
  --navy:      #0a1f3c;
  --navy-deep: #071529;
  --gold:      #a18b55;
  --gold-soft: #c4ad77;

  /* Surfaces */
  --bg:    #fbfaf6;
  --ivory: #f5f1e8;
  --s2:    #eee9da;

  /* Borders */
  --rule: rgba(10, 31, 60, 0.12);
  --hi:   var(--gold);

  /* Text */
  --ink:   #12100e;
  --muted: #5a5450;
  --t3:    #8c837a;

  /* Spacing — fluid, scales with viewport */
  --px:      clamp(24px, 6vw, 96px);
  --section: clamp(60px, 8vw, 96px);

  /* Aliases */
  --text:      var(--ink);
  --t2:        var(--muted);
  --paper:     var(--bg);
  --primary:   var(--navy);
  --secondary: var(--gold);
  --line:      var(--rule);
}


/* === 2. Reset & Base === */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
}


/* === 3. Navigation === */

.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px var(--px);
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

.nav.scrolled {
  background: rgba(251, 250, 246, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 var(--rule);
}

.brand {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  flex-shrink: 0;
}

.brand-mark {
  width: 40px;
  height: 40px;
  background: var(--navy);
  color: var(--bg);
  display: grid;
  place-items: center;
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  font-size: 22px;
  line-height: 1;
  flex-shrink: 0;
}

.brand-stack {
  display: flex;
  flex-direction: column;
  line-height: 1;
}

.brand-name {
  font-family: "Cormorant Garamond", serif;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--ink);
}

.brand-sub {
  margin-top: 5px;
  font-family: "Cormorant Garamond", serif;
  font-size: 13.5px;
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: var(--gold);
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 36px;
  list-style: none;
}

.nav-links a {
  font-family: "Libre Baskerville", serif;
  color: var(--ink);
  text-decoration: none;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  position: relative;
  padding-bottom: 4px;
  transition: color 0.2s ease;
}

.nav-links a:hover {
  color: var(--navy);
}

.nav-links a.active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 1px;
  background: var(--gold);
}

.nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 11px 20px;
  background: var(--navy);
  color: var(--bg);
  text-decoration: none;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-family: "Libre Baskerville", serif;
  transition: background 0.2s ease;
  flex-shrink: 0;
}

.nav-cta:hover {
  background: var(--navy-deep);
}

.nav-cta svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}

.nav-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
  align-items: center;
}

.nav-burger span {
  display: block;
  width: 22px;
  height: 1.5px;
  background: var(--ink);
  transition: transform 0.25s ease, opacity 0.2s ease;
  transform-origin: center;
}


/* === 4. Mobile Drawer === */

.nav-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 31, 60, 0.4);
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.nav-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

.nav-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(320px, 85vw);
  background: var(--bg);
  z-index: 201;
  display: flex;
  flex-direction: column;
  padding: 32px 28px;
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
}

.nav-drawer.open {
  transform: translateX(0);
}

.drawer-close {
  align-self: flex-end;
  width: 44px;
  height: 44px;
  background: none;
  border: 1px solid var(--rule);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 32px;
  color: var(--ink);
  flex-shrink: 0;
}

.drawer-close:hover {
  background: var(--ivory);
}

.drawer-close svg {
  width: 16px;
  height: 16px;
}

.drawer-links {
  list-style: none;
  display: flex;
  flex-direction: column;
}

.drawer-links li {
  border-bottom: 1px solid var(--rule);
}

.drawer-links a {
  display: block;
  padding: 14px 0;
  font-family: "Cormorant Garamond", serif;
  font-size: 18px;
  font-weight: 400;
  color: var(--ink);
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: color 0.2s ease;
}

.drawer-links a:hover,
.drawer-links a.active {
  color: var(--navy);
}

.drawer-cta {
  margin-top: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px 24px;
  background: var(--navy);
  color: var(--bg);
  text-decoration: none;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-family: "Libre Baskerville", serif;
}

.drawer-cta:hover {
  background: var(--navy-deep);
}

.drawer-contact {
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid var(--rule);
}

.drawer-contact p {
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--muted);
  margin-bottom: 8px;
  text-transform: uppercase;
  font-family: "Libre Baskerville", serif;
}

.drawer-contact a {
  display: block;
  font-size: 14px;
  color: var(--ink);
  text-decoration: none;
  padding: 4px 0;
}

.drawer-contact a:hover {
  color: var(--navy);
}


/* === 5. Hero (Homepage) === */

.hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100vh;
  padding-top: 84px;
  position: relative;
}

.hero-left {
  padding: 60px var(--px) 60px var(--px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
}

.est-marker {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
  font-family: "Libre Baskerville", serif;
}

.est-marker::before {
  content: "";
  width: 36px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

.hero h1 {
  font-family: "Cormorant Garamond", serif;
  font-weight: 400;
  font-size: clamp(44px, 5vw, 78px);
  line-height: 1.04;
  letter-spacing: -0.012em;
  color: var(--ink);
  margin-top: 32px;
}

.hero h1 .accent {
  color: var(--navy);
  font-style: italic;
}

.hero h1 .gold {
  color: var(--gold);
  font-style: italic;
}

.hero-sub {
  margin-top: 30px;
  font-family: "Cormorant Garamond", serif;
  font-size: 20px;
  font-style: italic;
  font-weight: 400;
  color: var(--muted);
  letter-spacing: 0.005em;
  max-width: 440px;
  line-height: 1.55;
  position: relative;
  padding-left: 18px;
}

.hero-sub::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  bottom: 4px;
  width: 2px;
  background: var(--gold);
}

.cta-row {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-top: 44px;
  flex-wrap: wrap;
}

.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 17px 30px;
  background: var(--navy);
  color: var(--bg);
  text-decoration: none;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border: 1px solid var(--navy);
  font-family: "Libre Baskerville", serif;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.btn-primary:hover {
  background: var(--navy-deep);
  border-color: var(--navy-deep);
}

.btn-primary svg {
  width: 14px;
  height: 14px;
  transition: transform 0.2s ease;
  flex-shrink: 0;
}

.btn-primary:hover svg {
  transform: translateX(4px);
}

.btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  text-decoration: none;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--ink);
  font-family: "Libre Baskerville", serif;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.btn-ghost:hover {
  color: var(--navy);
  border-color: var(--navy);
}

.hero-meta {
  display: flex;
  gap: 48px;
  margin-top: 56px;
  padding-top: 28px;
  border-top: 1px solid var(--rule);
  flex-wrap: wrap;
}

.meta-item .num {
  font-family: "Cormorant Garamond", serif;
  font-size: 34px;
  font-weight: 400;
  color: var(--navy);
  line-height: 1;
  letter-spacing: -0.01em;
}

.meta-item .num sup {
  font-size: 13px;
  color: var(--gold);
  margin-left: 3px;
  font-style: italic;
  position: relative;
  top: -14px;
}

.meta-item .label {
  margin-top: 10px;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 400;
  max-width: 130px;
  line-height: 1.5;
  font-family: "Libre Baskerville", serif;
}

/* Contact strip in hero — address + phone */
.hero-contact {
  display: flex;
  align-items: center;
  gap: 10px 18px;
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px solid var(--rule);
  flex-wrap: wrap;
}

.hero-contact a {
  font-size: 13px;
  color: var(--muted);
  text-decoration: none;
  font-family: "Libre Baskerville", Georgia, serif;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
  gap: 7px;
}

.hero-contact a:hover {
  color: var(--navy);
}

.hero-contact a svg {
  width: 13px;
  height: 13px;
  color: var(--gold);
  flex-shrink: 0;
}

.hero-contact-sep {
  width: 1px;
  height: 14px;
  background: var(--rule);
  flex-shrink: 0;
}

.scroll-cue {
  position: absolute;
  left: var(--px);
  bottom: 32px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
}

.scroll-cue::after {
  content: "";
  width: 48px;
  height: 1px;
  background: var(--ink);
  opacity: 0.4;
  animation: scrollPulse 2.4s ease-in-out infinite;
  transform-origin: left;
}

@keyframes scrollPulse {
  0%, 100% { transform: scaleX(0.4); opacity: 0.2; }
  50%       { transform: scaleX(1);   opacity: 0.6; }
}

.hero-right {
  position: relative;
  background-color: var(--ivory);
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0px,
    transparent 22px,
    rgba(161, 139, 85, 0.08) 22px,
    rgba(161, 139, 85, 0.08) 23px
  );
}

.hero-image {
  position: absolute;
  inset: 48px 48px 48px 0;
  overflow: hidden;
  border: 1px solid var(--rule);
}

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

.hero-image::before {
  display: none;
}

.hero-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(18, 16, 14, 0.30) 100%);
  pointer-events: none;
  z-index: 2;
}

.img-caption {
  position: absolute;
  left: 20px;
  bottom: 20px;
  right: 20px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  color: var(--bg);
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  z-index: 3;
}

.img-caption .place {
  display: flex;
  align-items: center;
  gap: 10px;
}

.img-caption .place::before {
  content: "";
  width: 18px;
  height: 1px;
  background: var(--gold-soft);
  flex-shrink: 0;
}

.img-caption .coords {
  opacity: 0.7;
}

.attribution {
  position: absolute;
  left: -52px;
  bottom: 104px;
  background: var(--bg);
  padding: 22px 26px;
  border: 1px solid var(--rule);
  max-width: 310px;
  box-shadow: 0 24px 60px -30px rgba(10, 31, 60, 0.18);
  z-index: 4;
}

.attribution .stars {
  display: flex;
  gap: 4px;
  color: var(--gold);
  margin-bottom: 14px;
}

.attribution p {
  font-family: "Cormorant Garamond", serif;
  font-size: 16px;
  font-style: italic;
  line-height: 1.5;
  color: var(--ink);
}

.attribution .author {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--rule);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
}

.attribution .author strong {
  color: var(--ink);
  font-weight: 700;
}

.practice-tag {
  position: absolute;
  top: 80px;
  right: 48px;
  z-index: 4;
  background: var(--navy);
  color: var(--bg);
  padding: 16px 20px;
  max-width: 210px;
}

.practice-tag .ptag {
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold-soft);
  margin-bottom: 8px;
  font-family: "Libre Baskerville", serif;
}

.practice-tag .pname {
  font-family: "Cormorant Garamond", serif;
  font-size: 20px;
  line-height: 1.2;
  font-weight: 400;
}

.practice-tag .pname em {
  color: var(--gold-soft);
}

.vertical-est {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  writing-mode: vertical-rl;
  font-size: 9.5px;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
  user-select: none;
}

.vertical-est span {
  color: var(--gold);
}


/* === 6. Page Header (Interior Pages) === */

.page-header {
  padding: calc(var(--section) + 84px) var(--px) var(--section);
  background: var(--ivory);
  border-bottom: 3px solid var(--gold);
  position: relative;
  overflow: hidden;
}

.page-header::before {
  content: "";
  position: absolute;
  right: var(--px);
  top: 50%;
  transform: translateY(-50%);
  width: 180px;
  height: 180px;
  border: 1px solid rgba(161, 139, 85, 0.15);
  border-radius: 50%;
  pointer-events: none;
}

.page-header .eyebrow {
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}

.page-header .eyebrow::before {
  content: "";
  width: 36px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

.page-header h1 {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(38px, 5vw, 68px);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -0.01em;
  color: var(--ink);
  max-width: 760px;
}

.page-header p {
  margin-top: 20px;
  font-size: 18px;
  color: var(--muted);
  max-width: 540px;
  line-height: 1.65;
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
}


/* === 7. Services Section === */

.services {
  padding: var(--section) var(--px);
}

.section-label {
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 52px;
}

.section-label::before {
  content: "";
  width: 36px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--rule);
}

.service-card {
  padding: 48px 40px;
  border-right: 1px solid var(--rule);
  position: relative;
  transition: background 0.25s ease;
  overflow: hidden;
}

.service-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0;
  background: var(--gold);
  transition: width 0.25s ease;
}

.service-card:hover::before {
  width: 4px;
}

.service-card:last-child {
  border-right: none;
}

.service-card:hover {
  background: var(--ivory);
}

.service-card .card-num {
  font-family: "Cormorant Garamond", serif;
  font-size: 12px;
  letter-spacing: 0.24em;
  color: var(--gold);
  font-weight: 400;
  margin-bottom: 28px;
  font-style: italic;
}

.service-card h2 {
  font-family: "Cormorant Garamond", serif;
  font-size: 26px;
  font-weight: 400;
  line-height: 1.18;
  color: var(--ink);
  margin-bottom: 18px;
  letter-spacing: -0.005em;
}

.service-card p {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.75;
  font-family: "Libre Baskerville", serif;
}

.service-card .card-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 28px;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--navy);
  text-decoration: none;
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--rule);
  transition: border-color 0.2s ease, gap 0.2s ease;
}

.service-card .card-link:hover {
  border-color: var(--navy);
  gap: 14px;
}

.service-card .card-link svg {
  width: 12px;
  height: 12px;
}

/* 5-column services grid variant for homepage */
.services-grid-5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  border: 1px solid var(--rule);
}

.services-grid-5 .service-card {
  padding: 36px 28px;
}

.services-grid-5 .service-card h2 {
  font-size: 20px;
}


/* === 8. Team Preview Section (Homepage) === */

.team-preview {
  padding: var(--section) var(--px);
  background: var(--ivory);
  border-top: 3px solid var(--gold);
  border-bottom: 1px solid var(--rule);
}

.team-preview-inner {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 72px;
  align-items: start;
}

.team-intro h2 {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(32px, 3.6vw, 50px);
  font-weight: 400;
  line-height: 1.08;
  color: var(--ink);
  margin-bottom: 24px;
  letter-spacing: -0.01em;
}

.team-intro h2 em {
  color: var(--navy);
  font-style: italic;
}

.team-intro p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.8;
  margin-bottom: 20px;
  font-family: "Libre Baskerville", serif;
}

.team-grid-home {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--rule);
  border-left: 1px solid var(--rule);
}

.team-card-home {
  background: var(--bg);
  padding: 36px 32px;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  position: relative;
  transition: background 0.25s ease;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
}

.team-card-home::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 0;
  background: var(--gold);
  transition: height 0.25s ease;
}

.team-card-home:hover {
  background: var(--ivory);
}

.team-card-home:hover::before {
  height: 3px;
}

/* Monogram — old class kept for backward compat */
.team-monogram,
.card-initial {
  width: 48px;
  height: 48px;
  background: var(--navy);
  color: var(--bg);
  display: grid;
  place-items: center;
  font-family: "Cormorant Garamond", serif;
  font-size: 24px;
  font-weight: 400;
  flex-shrink: 0;
  margin-bottom: 20px;
  position: relative;
}

.card-initial::after {
  content: "";
  position: absolute;
  bottom: 7px;
  left: 50%;
  transform: translateX(-50%);
  width: 14px;
  height: 1px;
  background: var(--gold);
}

.team-card-home .attorney-name {
  font-family: "Cormorant Garamond", serif;
  font-size: 22px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.2;
  margin-bottom: 6px;
}

/* Role label (gold uppercase) */
.attorney-role {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 700;
  font-family: "Libre Baskerville", Georgia, serif;
  margin-bottom: 14px;
}

/* Focus text */
.team-card-home .attorney-focus {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.65;
  font-family: "Libre Baskerville", Georgia, serif;
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
  margin-bottom: 20px;
  flex: 1;
}

/* View profile link — new class */
.card-view {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--navy);
  font-weight: 700;
  font-family: "Libre Baskerville", Georgia, serif;
  padding-bottom: 3px;
  border-bottom: 1px solid var(--rule);
  transition: border-color 0.2s ease, gap 0.2s ease;
  align-self: flex-start;
}

.team-card-home:hover .card-view {
  border-color: var(--navy);
  gap: 12px;
}

.card-view svg {
  width: 11px;
  height: 11px;
}

/* Legacy card-arrow — kept for compat */
.team-card-home .card-arrow {
  margin-top: auto;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--navy);
  font-family: "Libre Baskerville", serif;
  display: flex;
  align-items: center;
  gap: 8px;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.team-card-home:hover .card-arrow {
  opacity: 1;
}

.team-card-home .card-arrow svg {
  width: 12px;
  height: 12px;
}


/* === 9. Attorney Grid (Profiles Page) === */

.attorney-profiles-section {
  padding: var(--section) var(--px);
}

.attorney-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  margin-top: 48px;
}

.attorney-card {
  background: var(--bg);
  border: 1px solid var(--rule);
  padding: 0;
  transition: background 0.2s ease;
  display: flex;
  flex-direction: column;
}

.attorney-card:hover {
  background: var(--ivory);
}

.attorney-card-body {
  padding: 28px 32px 36px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.attorney-card .portrait-monogram {
  width: 80px;
  height: 80px;
  background: var(--navy);
  color: var(--bg);
  display: grid;
  place-items: center;
  font-family: "Cormorant Garamond", serif;
  font-size: 36px;
  font-weight: 400;
  margin-bottom: 24px;
}

.attorney-card .attorney-name {
  font-family: "Cormorant Garamond", serif;
  font-size: 24px;
  font-weight: 500;
  color: var(--ink);
  margin-bottom: 6px;
  line-height: 1.2;
}

.attorney-card .attorney-title {
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
  margin-bottom: 16px;
}

.attorney-card .attorney-excerpt {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.7;
  font-family: "Libre Baskerville", serif;
  margin-bottom: 24px;
}

.attorney-card .card-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--navy);
  text-decoration: none;
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--rule);
  transition: border-color 0.2s ease, gap 0.2s ease;
}

.attorney-card .card-link:hover {
  border-color: var(--navy);
  gap: 14px;
}

.attorney-card .card-link svg {
  width: 12px;
  height: 12px;
}


/* === 10. Locations Section === */

.locations {
  padding: var(--section) var(--px);
}

.location-single {
  margin-top: 48px;
  border: 1px solid var(--rule);
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.location-card {
  padding: 48px 44px;
  border-right: 1px solid var(--rule);
}

.location-card:last-child {
  border-right: none;
}

.location-card .office-label {
  font-size: 10px;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
  margin-bottom: 20px;
}

.location-card h3 {
  font-family: "Cormorant Garamond", serif;
  font-size: 28px;
  font-weight: 400;
  color: var(--ink);
  margin-bottom: 28px;
  letter-spacing: -0.005em;
}

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

.location-detail a {
  font-size: 15px;
  color: var(--muted);
  text-decoration: none;
  line-height: 1.55;
  font-family: "Libre Baskerville", serif;
  transition: color 0.2s ease;
}

.location-detail a:hover {
  color: var(--navy);
}

.location-detail .detail-label {
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--t3);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
  display: block;
  margin-bottom: 4px;
}

.location-hours {
  padding: 48px 44px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--ivory);
}

.location-hours .office-label {
  font-size: 10px;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
  margin-bottom: 20px;
}

.location-hours h3 {
  font-family: "Cormorant Garamond", serif;
  font-size: 28px;
  font-weight: 400;
  color: var(--ink);
  margin-bottom: 24px;
}

.hours-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.hours-row {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  color: var(--muted);
  font-family: "Libre Baskerville", serif;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--rule);
}

.hours-row:last-child {
  border-bottom: none;
}

.hours-row .day {
  color: var(--ink);
  font-weight: 400;
}


/* === 11. Practice Areas Page === */

.practice-areas {
  padding: var(--section) var(--px);
}

.practice-area {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 0;
  border: 1px solid var(--rule);
  margin-bottom: 2px;
}

.practice-area:last-child {
  margin-bottom: 0;
}

.practice-area-label {
  padding: 48px 40px;
  background: var(--ivory);
  border-right: 1px solid var(--rule);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.practice-area-label .area-num {
  font-family: "Cormorant Garamond", serif;
  font-size: 64px;
  font-weight: 300;
  color: var(--rule);
  line-height: 1;
  letter-spacing: -0.02em;
  user-select: none;
}

.practice-area-label h2 {
  font-family: "Cormorant Garamond", serif;
  font-size: 24px;
  font-weight: 400;
  color: var(--ink);
  line-height: 1.18;
  letter-spacing: -0.005em;
}

.practice-area-content {
  padding: 48px 52px;
}

.practice-area-content .lead {
  font-family: "Cormorant Garamond", serif;
  font-size: 21px;
  font-style: italic;
  color: var(--muted);
  line-height: 1.5;
  margin-bottom: 28px;
}

.practice-area-content p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.8;
  margin-bottom: 16px;
  font-family: "Libre Baskerville", serif;
}

.practice-area-content p:last-of-type {
  margin-bottom: 0;
}

.practice-detail-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 28px;
  border-top: 1px solid var(--rule);
}

.practice-detail-list li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid var(--rule);
  font-size: 14px;
  color: var(--muted);
  font-family: "Libre Baskerville", serif;
}

.practice-detail-list li::before {
  content: "";
  width: 5px;
  height: 5px;
  background: var(--gold);
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 7px;
}

.cta-section {
  padding: var(--section) var(--px);
  background: var(--ivory);
  border-top: 3px solid var(--gold);
  border-bottom: 1px solid var(--rule);
  text-align: center;
  position: relative;
}

.cta-section::before {
  content: "";
  position: absolute;
  top: 40px;
  left: 50%;
  transform: translateX(-50%);
  width: 1px;
  height: 28px;
  background: var(--gold);
  opacity: 0.5;
}

.cta-section h2 {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(30px, 4vw, 52px);
  font-weight: 400;
  color: var(--ink);
  line-height: 1.1;
  margin-bottom: 16px;
}

.cta-section p {
  font-size: 16px;
  color: var(--muted);
  max-width: 480px;
  margin: 0 auto 40px;
  line-height: 1.65;
  font-family: "Libre Baskerville", serif;
}

.cta-buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
}


/* === 12. Attorney Profile Page === */

.attorney-section {
  padding: var(--section) var(--px);
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 72px;
  align-items: start;
}

.attorney-portrait-panel {
  position: sticky;
  top: 112px;
}

.portrait-frame {
  background: var(--ivory);
  border: 1px solid var(--rule);
  padding: 40px 36px;
  text-align: center;
}

.portrait-monogram {
  width: 100px;
  height: 100px;
  background: var(--navy);
  color: var(--bg);
  display: grid;
  place-items: center;
  font-family: "Cormorant Garamond", serif;
  font-size: 44px;
  font-weight: 400;
  margin: 0 auto 28px;
  position: relative;
  outline: 1px solid rgba(161, 139, 85, 0.35);
  outline-offset: 4px;
}

.portrait-monogram::after {
  content: "";
  position: absolute;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  width: 28px;
  height: 1px;
  background: var(--gold);
}

.portrait-frame .attorney-name {
  font-family: "Cormorant Garamond", serif;
  font-size: 26px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: 0.01em;
  margin-bottom: 6px;
}

.portrait-frame .attorney-title {
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
}

.attorney-quick-facts {
  margin-top: 28px;
  border: 1px solid var(--rule);
  background: var(--bg);
}

.quick-fact {
  padding: 14px 20px;
  border-bottom: 1px solid var(--rule);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.quick-fact:last-child {
  border-bottom: none;
}

.quick-fact .fact-label {
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--t3);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
}

.quick-fact .fact-value {
  font-size: 14px;
  color: var(--ink);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
}

.attorney-content h2 {
  font-family: "Cormorant Garamond", serif;
  font-size: 34px;
  font-weight: 400;
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.1;
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--rule);
}

.attorney-content p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.82;
  margin-bottom: 22px;
  font-family: "Libre Baskerville", serif;
}

.attorney-content p:last-of-type {
  margin-bottom: 0;
}

.back-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 32px;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--navy);
  text-decoration: none;
  font-family: "Libre Baskerville", serif;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--navy);
}

.back-link:hover {
  color: var(--navy-deep);
  border-color: var(--navy-deep);
}


/* === 13. Contact Page === */

.contact-section {
  padding: var(--section) var(--px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
}

.contact-offices h2 {
  font-family: "Cormorant Garamond", serif;
  font-size: 32px;
  font-weight: 400;
  color: var(--ink);
  margin-bottom: 36px;
  letter-spacing: -0.01em;
}

.contact-office {
  padding: 36px 0;
  border-top: 1px solid var(--rule);
}

.contact-office:last-child {
  border-bottom: 1px solid var(--rule);
}

.contact-office .office-name {
  font-size: 10px;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
  margin-bottom: 12px;
}

.contact-office h3 {
  font-family: "Cormorant Garamond", serif;
  font-size: 24px;
  font-weight: 400;
  color: var(--ink);
  margin-bottom: 20px;
}

.contact-detail {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.contact-detail a {
  font-size: 15px;
  color: var(--muted);
  text-decoration: none;
  font-family: "Libre Baskerville", serif;
  transition: color 0.2s ease;
}

.contact-detail a:hover {
  color: var(--navy);
}

.contact-form-wrap h2 {
  font-family: "Cormorant Garamond", serif;
  font-size: 32px;
  font-weight: 400;
  color: var(--ink);
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}

.contact-form-wrap .form-sub {
  font-size: 15px;
  color: var(--muted);
  margin-bottom: 36px;
  line-height: 1.65;
  font-family: "Libre Baskerville", serif;
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.form-group label {
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
}

.form-group input,
.form-group textarea,
.form-group select {
  border: 1px solid var(--rule);
  background: var(--bg);
  color: var(--ink);
  font-family: "Libre Baskerville", serif;
  font-size: 15px;
  padding: 13px 16px;
  width: 100%;
  outline: none;
  transition: border-color 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
  border-color: var(--navy);
}

.form-group textarea {
  resize: vertical;
  min-height: 130px;
  line-height: 1.6;
}

.form-group select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235a5450' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 38px;
}

.form-submit {
  align-self: flex-start;
}

.form-note {
  font-size: 12.5px;
  color: var(--t3);
  line-height: 1.6;
  margin-top: 4px;
  font-family: "Libre Baskerville", serif;
  font-style: italic;
}


/* === 14. Footer === */

.footer {
  background: var(--ink);
  color: var(--bg);
  padding: 64px var(--px) 40px;
  border-top: 3px solid var(--gold);
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 60px;
  padding-bottom: 52px;
  border-bottom: 1px solid rgba(251, 250, 246, 0.1);
}

.footer-brand .brand-mark {
  background: var(--navy);
}

.footer-brand .brand-name {
  color: var(--bg);
}

.footer-brand .brand-sub {
  color: rgba(251, 250, 246, 0.4);
}

.footer-tagline {
  margin-top: 20px;
  font-family: "Cormorant Garamond", serif;
  font-size: 17px;
  font-style: italic;
  color: rgba(251, 250, 246, 0.5);
  line-height: 1.55;
  max-width: 280px;
}

.footer-col h4 {
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 400;
  font-family: "Libre Baskerville", serif;
  margin-bottom: 20px;
}

.footer-col ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-col ul a {
  font-size: 14px;
  color: rgba(251, 250, 246, 0.55);
  text-decoration: none;
  font-family: "Libre Baskerville", serif;
  transition: color 0.2s ease;
  display: block;
}

.footer-col ul li {
  font-size: 14px;
  color: rgba(251, 250, 246, 0.55);
  font-family: "Libre Baskerville", serif;
  line-height: 1.5;
}

.footer-col ul a:hover {
  color: var(--bg);
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 32px;
  font-size: 12.5px;
  color: rgba(251, 250, 246, 0.3);
  font-family: "Libre Baskerville", serif;
  flex-wrap: wrap;
  gap: 12px;
}

.footer-disclaimer {
  display: flex;
  align-items: center;
  gap: 8px;
}

.footer-disclaimer::before {
  content: "";
  width: 1px;
  height: 12px;
  background: rgba(251, 250, 246, 0.18);
}


/* === 15. Scroll Reveal === */

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal:nth-child(2) { transition-delay: 0.1s; }
.reveal:nth-child(3) { transition-delay: 0.2s; }
.reveal:nth-child(4) { transition-delay: 0.3s; }


/* === 16. Responsive === */

@media (max-width: 1200px) {
  .hero-left {
    padding-left: 60px;
    padding-right: 48px;
  }
  .scroll-cue { left: 60px; }
  .services-grid-5 {
    grid-template-columns: repeat(3, 1fr);
  }
  .services-grid-5 .service-card:nth-child(4) { border-right: none; }
}

@media (max-width: 1024px) {
  .nav-links { display: none; }
  .nav-cta   { display: none; }
  .nav-burger { display: flex; }

  .hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .hero-left {
    padding: 60px var(--px) 56px;
  }

  .scroll-cue { display: none; }

  .hero-right {
    min-height: 460px;
  }

  .hero-image {
    inset: 0;
    border: none;
  }

  .attribution {
    left: var(--px);
    bottom: 32px;
    max-width: calc(100% - 64px);
  }

  .practice-tag {
    top: 28px;
    right: var(--px);
  }

  .vertical-est { display: none; }

  .team-preview-inner {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .team-grid-home {
    grid-template-columns: repeat(2, 1fr);
  }

  .attorney-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .services-grid {
    grid-template-columns: 1fr;
  }
  .service-card {
    border-right: none;
    border-bottom: 1px solid var(--rule);
  }
  .service-card:last-child { border-bottom: none; }

  .services-grid-5 {
    grid-template-columns: 1fr;
  }

  .location-single {
    grid-template-columns: 1fr;
  }
  .location-card {
    border-right: none;
    border-bottom: 1px solid var(--rule);
  }
  .location-card:last-child { border-bottom: none; }

  .practice-area {
    grid-template-columns: 1fr;
  }
  .practice-area-label {
    border-right: none;
    border-bottom: 1px solid var(--rule);
    padding: 32px 32px 28px;
  }
  .practice-area-label .area-num { display: none; }
  .practice-area-content { padding: 36px 32px; }

  .attorney-section {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .attorney-portrait-panel { position: static; }

  .contact-section {
    grid-template-columns: 1fr;
    gap: 52px;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }
}

@media (max-width: 640px) {
  .hero-meta {
    gap: 32px;
    margin-top: 48px;
  }

  .attribution { display: none; }

  .team-grid-home {
    grid-template-columns: 1fr;
  }

  .attorney-grid {
    grid-template-columns: 1fr;
  }

  .form-row {
    grid-template-columns: 1fr;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

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

@media (max-width: 375px) {
  .cta-row {
    flex-direction: column;
    align-items: flex-start;
  }
}


/* ============================================
   ADDITIONS — Round 2
   - team-preview-header
   - Attorney photo portrait frame
   - Group photo banner
   - Location navy card (homepage office section)
   - Attorney profiles page — photo in grid card
   - Additional gold accents
   ============================================ */


/* Team preview header (flex row: h2 + link) */

.team-preview-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 48px;
  flex-wrap: wrap;
  gap: 20px;
}

.team-preview-header h2 {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(32px, 3.8vw, 52px);
  font-weight: 400;
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.08;
}

.team-preview-header h2 em {
  color: var(--navy);
  font-style: italic;
}


/* Attorney photo portrait frame (replaces monogram on pages with photos) */

.portrait-photo-frame {
  border: 1px solid var(--rule);
  overflow: hidden;
  position: relative;
}

.portrait-photo-frame img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: top center;
  display: block;
  filter: saturate(0.72) contrast(0.95) brightness(1.02);
  transition: filter 0.3s ease;
}

.portrait-photo-frame:hover img {
  filter: saturate(0.85) contrast(0.95) brightness(1.02);
}

.portrait-photo-caption {
  padding: 18px 24px 20px;
  background: var(--navy);
  border-top: 3px solid var(--gold);
}

.portrait-photo-caption .attorney-name {
  font-family: "Cormorant Garamond", serif;
  font-size: 22px;
  font-weight: 500;
  color: var(--bg);
  margin-bottom: 4px;
  line-height: 1.2;
}

.portrait-photo-caption .attorney-title {
  font-size: 10px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--gold-soft);
  font-weight: 700;
  font-family: "Libre Baskerville", Georgia, serif;
}


/* Attorney profile card with photo (attorney-profiles.html) */

.attorney-card-photo {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: top center;
  border-bottom: 3px solid var(--gold);
  filter: saturate(0.75) contrast(0.95);
}


/* Group photo banner (attorney-profiles.html) */

.group-photo-banner {
  width: 100%;
  max-height: 440px;
  overflow: hidden;
  position: relative;
  border-bottom: 3px solid var(--gold);
}

.group-photo-banner img {
  width: 100%;
  height: 440px;
  object-fit: cover;
  object-position: center 20%;
  display: block;
  filter: saturate(0.65) contrast(0.95) brightness(1.02);
}

.group-photo-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    transparent 50%,
    rgba(10, 31, 60, 0.35) 100%
  );
  pointer-events: none;
}


/* =========================================
   Location Navy Card (homepage Our Office)
   ========================================= */

.location-navy-card {
  margin-top: 48px;
  background: var(--navy);
  color: var(--bg);
  position: relative;
  border-top: 3px solid var(--gold);
}

.location-navy-main {
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  gap: 0;
  padding: 60px 64px;
  align-items: start;
}

.location-navy-divider {
  background: rgba(161, 139, 85, 0.22);
  margin: 0 60px;
  align-self: stretch;
}

.location-navy-col {
  padding: 0;
}

.loc-eyebrow {
  display: block;
  font-size: 10px;
  letter-spacing: 0.38em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 700;
  font-family: "Libre Baskerville", Georgia, serif;
  margin-bottom: 22px;
}

.location-navy-col h3 {
  font-family: "Cormorant Garamond", serif;
  font-size: 32px;
  font-weight: 400;
  color: var(--bg);
  margin-bottom: 20px;
  letter-spacing: -0.01em;
  line-height: 1.1;
}

.loc-address-link {
  font-size: 16px;
  color: rgba(251, 250, 246, 0.72);
  text-decoration: none;
  line-height: 1.75;
  display: block;
  transition: color 0.2s ease;
  margin-bottom: 28px;
}

.loc-address-link:hover {
  color: var(--bg);
}

.loc-contact-row {
  display: flex;
  gap: 40px;
  flex-wrap: wrap;
}

.loc-contact-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.loc-mini-label {
  font-size: 9.5px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--gold-soft);
  font-weight: 700;
  font-family: "Libre Baskerville", Georgia, serif;
}

.loc-contact-link,
.loc-contact-text {
  font-size: 16px;
  color: var(--bg);
  text-decoration: none;
  transition: color 0.2s ease;
}

.loc-contact-link:hover {
  color: var(--gold-soft);
}

.loc-hours {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 36px;
}

.loc-hour-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 11px 0;
  border-bottom: 1px solid rgba(161, 139, 85, 0.15);
}

.loc-hour-row:last-child {
  border-bottom: none;
}

.loc-day {
  color: rgba(251, 250, 246, 0.52);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 12px;
  letter-spacing: 0.05em;
}

.loc-time {
  color: var(--bg);
  font-family: "Cormorant Garamond", serif;
  font-size: 18px;
  font-style: italic;
}

.loc-cta-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 10.5px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  font-weight: 700;
  font-family: "Libre Baskerville", Georgia, serif;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(161, 139, 85, 0.4);
  transition: color 0.2s ease, border-color 0.2s ease, gap 0.2s ease;
}

.loc-cta-link:hover {
  color: var(--gold-soft);
  border-color: var(--gold-soft);
  gap: 14px;
}


/* Responsive additions */

@media (max-width: 1024px) {
  .location-navy-main {
    grid-template-columns: 1fr;
    padding: 48px var(--px);
    gap: 40px;
  }

  .location-navy-divider {
    display: none;
  }

  .team-preview-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .group-photo-banner img {
    height: 320px;
  }
}

@media (max-width: 640px) {
  .team-card-home {
    padding: 28px 24px;
  }

  .location-navy-main {
    padding: 40px var(--px);
    gap: 36px;
  }

  .loc-contact-row {
    gap: 28px;
  }
}
