/* ============================================================
   Action Advisors — Polish layer
   v1.0 — 2026-05-04 | Authored by polish agent
   ------------------------------------------------------------
   Loads AFTER aa-overrides.css. Adds the fine-finishing
   touches: dividers, drop caps, watermarks, table striping,
   icon-glyph alignment, and section accents.
   No layout changes; visual elevation only.
   ============================================================ */

/* ---------- ICON GLYPHS ---------- */
.aa-icon {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
}
.aa-icon svg { width: 100%; height: 100%; display: block; }
.aa-icon--md { width: 28px; height: 28px; color: var(--accent); }
.aa-icon--sm { width: 18px; height: 18px; color: var(--accent); }
.aa-icon--lg { width: 32px; height: 32px; color: var(--accent); }

/* ---------- HAIRLINE DIVIDERS ---------- */
.aa-divider {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  max-width: var(--page-max);
  margin: var(--s-7) auto;
  padding: 0 var(--page-pad);
  color: var(--accent);
  opacity: 0.55;
}
.aa-divider::before,
.aa-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}
.aa-divider__star {
  width: 12px; height: 12px;
  flex-shrink: 0;
  color: var(--accent);
  opacity: 0.85;
}
.aa-divider__star svg { width: 100%; height: 100%; display: block; }

/* ---------- SECTION ACCENT WATERMARK ---------- */
.aa-watermark {
  position: relative;
  isolation: isolate;
}
.aa-watermark::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 92% 8%, rgba(31,74,92,0.05), transparent 35%),
    radial-gradient(circle at 8% 92%, rgba(31,74,92,0.04), transparent 38%);
}

/* ---------- KENTUCKY MAP WATERMARK ---------- */
.aa-ky-watermark {
  position: relative;
  isolation: isolate;
}
.aa-ky-watermark::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 4%;
  width: min(40%, 480px);
  height: 240px;
  transform: translateY(-50%);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 260'><path d='M30,165 L52,150 L78,142 L105,138 L132,144 L158,138 L182,128 L210,124 L238,128 L266,122 L292,116 L320,118 L350,114 L380,108 L412,108 L444,118 L478,128 L508,134 L536,142 L562,156 L578,170 L572,188 L548,196 L520,198 L490,196 L460,200 L432,210 L402,216 L372,220 L342,222 L310,224 L280,228 L250,232 L220,234 L188,232 L158,228 L130,222 L106,212 L84,200 L62,188 L42,180 Z' fill='none' stroke='%231F4A5C' stroke-width='1.2' stroke-opacity='0.18'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  z-index: -1;
  pointer-events: none;
}
@media (max-width: 880px) {
  .aa-ky-watermark::before { display: none; }
}

/* ---------- DROP CAP ---------- */
.aa-dropcap::first-letter {
  font-family: var(--font-display);
  font-weight: 500;
  float: left;
  font-size: 4.4em;
  line-height: 0.92;
  padding: 4px 10px 0 0;
  color: var(--accent);
  letter-spacing: -0.02em;
}

/* ---------- EYEBROW WITH EM-DASH ---------- */
.eyebrow.aa-eyebrow-rule::after {
  content: " \2014";
  margin-left: 8px;
  color: var(--accent);
  opacity: 0.55;
  letter-spacing: 0;
}

/* ============================================================
   SERVICES — editorial-spread layout
   3-column grid per practice: numeral · body · stats sidebar
   Replaces the old single-column "newspaper centerfold" feel.
   ============================================================ */

.aa-services-hero {
  position: relative;
  overflow: hidden;
}
.aa-services-hero__mark {
  position: absolute;
  top: 50%;
  right: -40px;
  transform: translateY(-50%);
  color: var(--accent);
  opacity: 0.10;
  pointer-events: none;
  z-index: 0;
}
.aa-services-hero h1,
.aa-services-hero p,
.aa-services-hero .eyebrow {
  position: relative;
  z-index: 1;
}
@media (max-width: 880px) {
  .aa-services-hero__mark { right: -80px; opacity: 0.06; }
}

.aa-services-grid {
  display: grid;
  gap: var(--s-9);
}

.aa-practice-block {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr) 280px;
  gap: var(--s-6);
  align-items: start;
}

.aa-practice-num {
  font-family: var(--font-display);
  font-size: clamp(64px, 7vw, 96px);
  line-height: 0.9;
  font-weight: 500;
  color: var(--accent);
  opacity: 0.18;
  letter-spacing: -0.04em;
  font-variant-numeric: lining-nums;
  user-select: none;
  padding-top: 10px;
}

.aa-practice-content { min-width: 0; }

.aa-practice-eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 600;
  margin: 0 0 var(--s-2);
}

.aa-practice-h2 {
  font-family: var(--font-display);
  font-size: clamp(28px, 3.4vw, 38px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-weight: 600;
  color: var(--t-1);
  margin: 0 0 var(--s-4);
}

.aa-practice-body { max-width: 60ch; }
.aa-practice-body p {
  font-size: 16px;
  line-height: 1.65;
  color: var(--t-2);
  margin: 0 0 var(--s-3);
}
.aa-practice-body p:last-child { margin-bottom: 0; }

.aa-practice-body .aa-dropcap::first-letter {
  initial-letter: 2;
  -webkit-initial-letter: 2;
  font-family: var(--font-display);
  color: var(--accent);
  font-weight: 500;
  margin-right: 8px;
  margin-top: 2px;
  padding-right: 4px;
}

/* ---------- Sidebar — quote + stats ---------- */
.aa-practice-aside {
  border-left: 1px solid var(--border);
  padding: 4px 0 4px var(--s-5);
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}
.aa-practice-aside__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--accent);
}
.aa-practice-aside__icon svg { width: 24px; height: 24px; }
.aa-practice-aside__pull {
  font-family: var(--font-display);
  font-size: 17px;
  line-height: 1.4;
  font-style: italic;
  color: var(--t-1);
  margin: 0;
  letter-spacing: -0.005em;
}
.aa-practice-aside__stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  margin-top: var(--s-2);
}
.aa-practice-aside__stats li {
  display: block;
  padding: var(--s-3) 0;
  border-top: 1px solid var(--border);
  list-style: none;
}
.aa-practice-aside__stats li:last-child { border-bottom: 1px solid var(--border); }
.aa-practice-aside__stats li strong {
  display: block;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--t-1);
  margin-bottom: 2px;
}
.aa-practice-aside__stats li span {
  font-size: 12.5px;
  color: var(--t-3);
  line-height: 1.4;
}

@media (max-width: 1100px) {
  .aa-practice-block { grid-template-columns: 80px minmax(0, 1fr) 240px; gap: var(--s-5); }
}
@media (max-width: 880px) {
  .aa-practice-block { grid-template-columns: 1fr; gap: var(--s-4); }
  .aa-practice-num { font-size: 56px; padding-top: 0; }
  .aa-practice-aside {
    border-left: 0;
    border-top: 1px solid var(--border);
    padding: var(--s-4) 0 0;
  }
}

/* ============================================================
   SERVICES — closing CTA (replaces the dropped Brief/Plan/Execute/Report row)
   Centered call-to-action with a subtle decorative star anchored to the
   right of the section. Same visual language as the hero glyph so the
   page bookends.
   ============================================================ */
.aa-services-cta {
  position: relative;
  overflow: hidden;
  text-align: center;
  background: var(--bg-surface);
}
.aa-services-cta__mark {
  position: absolute;
  top: 50%;
  right: -20px;
  transform: translateY(-50%);
  color: var(--accent);
  opacity: 0.10;
  pointer-events: none;
  z-index: 0;
}
.aa-services-cta__inner {
  position: relative;
  z-index: 1;
  max-width: 640px;
  margin: 0 auto;
}
.aa-services-cta__inner h2 {
  font-family: var(--font-display);
  font-size: clamp(28px, 3.4vw, 38px);
  letter-spacing: -0.02em;
  font-weight: 600;
  color: var(--t-1);
  margin: 0;
}
.aa-services-cta .eyebrow { display: inline-block; }
.aa-services-cta .lead { margin-left: auto; margin-right: auto; }

/* Mirror decorative on the left for symmetry on wide screens */
.aa-services-cta::before {
  content: '';
  position: absolute;
  top: 50%;
  left: -20px;
  transform: translateY(-50%);
  width: 120px;
  height: 120px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' fill='none' stroke='%231F4A5C' stroke-width='0.7' stroke-linejoin='miter'><circle cx='60' cy='60' r='58'/><circle cx='60' cy='60' r='42'/><polygon points='60,18 70,46 100,46 76,64 86,92 60,76 34,92 44,64 20,46 50,46'/></svg>");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.10;
  pointer-events: none;
  z-index: 0;
}
@media (max-width: 880px) {
  .aa-services-cta__mark,
  .aa-services-cta::before { opacity: 0.06; }
}

/* ---------- (legacy) old practice-head — keep but neutralize ---------- */
.aa-practice-head { display: none !important; }
.aa-practice-name { display: none !important; }

/* ---------- SERVICES — practice icon row (legacy reference, hidden) ----------
   Each practice block opens with [icon-frame] [practice name] sitting on a
   shared baseline above a hairline rule, then the catchy h2 sits below.
   The eyebrow-style label looked dwarfed by the 44px icon frame, so the
   practice name now uses Fraunces at 20-22px (compatible scale).
*/
.aa-practice-head {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  margin-bottom: var(--s-3);
  padding-bottom: var(--s-3);
  border-bottom: 1px solid var(--border);
}
.aa-practice-head .aa-icon {
  width: 24px; height: 24px;
  color: var(--accent);
  flex-shrink: 0;
}
.aa-practice-head .aa-icon-frame {
  width: 36px; height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--bg-raised);
  color: var(--accent);
  flex-shrink: 0;
}
.aa-practice-head .aa-icon-frame svg { width: 20px; height: 20px; }
.aa-practice-name {
  font-family: var(--font-display);
  font-size: clamp(18px, 1.6vw, 22px);
  font-weight: 500;
  letter-spacing: -0.005em;
  color: var(--t-1);
  margin: 0;
}
/* The h2 catchy phrase that sits below the practice header — tighten its
   top margin so it reads as one composed unit with the header above. */
.aa-practice-head + h2 { margin-top: var(--s-2) !important; }

/* ---------- HOME — practice grid icon ---------- */
.card .aa-icon.aa-card-icon,
.card .aa-card-icon {
  width: 30px; height: 30px;
  color: var(--accent);
  margin-bottom: var(--s-3);
  opacity: 0.92;
  display: inline-block;
}
.card .aa-icon.aa-card-icon svg,
.card .aa-card-icon svg { width: 100%; height: 100%; display: block; }

/* ---------- MARKETS — corridor sparkline / county shape ---------- */
.aa-corridor-card {
  position: relative;
  overflow: hidden;
}
.aa-corridor-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 3px; height: 64%;
  background: var(--accent);
  opacity: 0.85;
  pointer-events: none;
}
.aa-corridor-spark {
  position: absolute;
  right: var(--s-4);
  bottom: var(--s-4);
  width: 64px; height: 18px;
  color: var(--accent);
  opacity: 0.45;
}
.aa-corridor-spark svg { width: 100%; height: 100%; display: block; }

.aa-county-card {
  position: relative;
}
.aa-county-card .aa-county-mark {
  position: absolute;
  top: var(--s-4);
  right: var(--s-4);
  width: 22px; height: 22px;
  color: var(--accent);
  opacity: 0.45;
}
.aa-county-card .aa-county-mark svg { width: 100%; height: 100%; display: block; }

/* ---------- AGENTS — directional cue on highlighted card ---------- */
.aa-doors-grid {
  position: relative;
}
.aa-doors-grid .aa-doors-arrow-prev,
.aa-doors-grid .aa-doors-arrow-next {
  display: none;
}
@media (min-width: 980px) {
  .aa-doors-grid .aa-doors-arrow-prev,
  .aa-doors-grid .aa-doors-arrow-next {
    display: block;
    position: absolute;
    top: 32%;
    width: 28px; height: 28px;
    color: var(--accent);
    opacity: 0.4;
    pointer-events: none;
  }
  .aa-doors-grid .aa-doors-arrow-prev { left: calc(33.33% - 14px); transform: translateX(-50%) rotate(0deg); }
  .aa-doors-grid .aa-doors-arrow-next { left: calc(66.66% + 14px); transform: translateX(-50%) rotate(180deg); }
}

/* ---------- REVENUE SHARE TABLE — restrained row striping ---------- */
.aa-tier-table {
  border-collapse: collapse;
  width: 100%;
  font-variant-numeric: tabular-nums;
}
.aa-tier-table thead th {
  text-align: left;
  padding: var(--s-3) var(--s-4);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--t-3);
  border-bottom: 1px solid var(--border-strong);
}
.aa-tier-table thead th.num { text-align: right; }
.aa-tier-table tbody td {
  padding: var(--s-3) var(--s-4);
  border-bottom: 1px solid var(--border);
  color: var(--t-2);
}
.aa-tier-table tbody td.num {
  text-align: right;
  color: var(--t-1);
  font-feature-settings: 'tnum' 1;
}
.aa-tier-table tbody td.tier {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--accent);
  width: 56px;
}
.aa-tier-table tbody tr:nth-child(odd) td { background: rgba(31,74,92,0.025); }
.aa-tier-table tbody tr:hover td { background: var(--accent-soft); }

/* ---------- TRACK RECORD — column dividers ---------- */
.aa-track-row {
  display: grid;
  grid-template-columns: 132px 1fr auto auto;
  gap: var(--s-5);
  align-items: baseline;
  padding: var(--s-4) 0;
  border-bottom: 1px solid var(--border);
  position: relative;
}
.aa-track-row > span:not(:first-child)::before {
  content: "";
  position: absolute;
  width: 1px;
  height: 22px;
  background: var(--border);
  transform: translateX(calc(var(--s-5) / -2 + 0.5px));
  top: 50%;
  margin-top: -11px;
  opacity: 0.6;
}
@media (max-width: 720px) {
  .aa-track-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .aa-track-row > span::before { display: none; }
}

/* ---------- CONTACT — brand mark under address ---------- */
.aa-contact-mark {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  margin-top: var(--s-5);
  padding-top: var(--s-4);
  border-top: 1px solid var(--border);
  color: var(--t-3);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-family: var(--font-body);
}
.aa-contact-mark .aa-icon { color: var(--accent); width: 16px; height: 16px; opacity: 0.7; }

/* ---------- HOMEPAGE — agents sidecar quote rule ---------- */
.aa-quote-rule {
  position: relative;
  padding-left: var(--s-5);
}
.aa-quote-rule::before {
  content: "";
  position: absolute;
  left: 0; top: 4px; bottom: 4px;
  width: 2px;
  background: var(--accent);
  opacity: 0.6;
}

/* ============================================================
   ABOUT PAGE — sections that page-about.php references
   ============================================================ */

/* ---------- Quick facts sidecar ---------- */
.aa-quick-facts {
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  background: var(--bg-raised);
  padding: var(--s-5) var(--s-5) var(--s-4);
  border-radius: var(--radius-md);
  font-size: 14px;
}
.aa-quick-facts__label {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 var(--s-3);
  font-weight: 600;
}
.aa-quick-facts dl {
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-3);
}
.aa-quick-facts dt {
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--t-3);
  font-weight: 600;
  margin: 0 0 2px;
}
.aa-quick-facts dd {
  margin: 0 0 var(--s-2);
  color: var(--t-1);
  font-size: 14px;
  line-height: 1.5;
}
.aa-quick-facts dd:last-child { margin-bottom: 0; }

/* ---------- Service area head ---------- */
.aa-area-head {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: var(--s-6);
  align-items: center;
  margin-bottom: var(--s-6);
}
.aa-area-map {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  color: var(--accent);
  opacity: 0.55;
}
.aa-area-map .aa-icon { width: 200px; height: auto; }
@media (max-width: 880px) {
  .aa-area-head { grid-template-columns: 1fr; }
  .aa-area-map { justify-content: flex-start; }
  .aa-area-map .aa-icon { width: 140px; }
}

/* ---------- County grid ---------- */
.aa-county-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--s-3);
}
@media (max-width: 980px) {
  .aa-county-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .aa-county-grid { grid-template-columns: 1fr; }
}
.aa-county-pill {
  background: var(--bg-raised);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: var(--s-4);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--s-2);
  transition: border-color 0.15s ease, transform 0.15s ease;
}
.aa-county-pill:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
}
.aa-county-pill__mark .aa-icon {
  width: 24px;
  height: 24px;
  color: var(--accent);
  opacity: 0.7;
}
.aa-county-pill__name {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 500;
  color: var(--t-1);
  letter-spacing: -0.01em;
}
.aa-county-pill__note {
  font-size: 12px;
  color: var(--t-3);
  letter-spacing: 0.02em;
}

/* ---------- Team grid + cards ---------- */
.aa-team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s-5);
}
@media (max-width: 980px) {
  .aa-team-grid { grid-template-columns: 1fr; }
}
.aa-team-card {
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--bg-card);
}
.aa-team-card__photo {
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, rgba(31,74,92,0.05), rgba(31,74,92,0.12));
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--border);
}
.aa-team-card__monogram {
  width: 64px !important;
  height: 64px !important;
  color: var(--accent);
  opacity: 0.45;
}
.aa-team-card__monogram svg {
  width: 100%;
  height: 100%;
}
.aa-team-card__body {
  padding: var(--s-5);
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}
.aa-team-card__role {
  font-size: 11px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 600;
  margin: 0;
}
.aa-team-card__name {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--t-1);
  margin: 0;
}
.aa-team-card__license {
  font-size: 12px;
  color: var(--t-3);
  letter-spacing: 0.02em;
  margin: 0;
}
.aa-team-card__bio {
  font-size: 14px;
  line-height: 1.55;
  color: var(--t-2);
  margin: var(--s-2) 0 0;
}
.aa-team-card__contact {
  list-style: none;
  margin: var(--s-3) 0 0;
  padding: var(--s-3) 0 0;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.aa-team-card__contact a {
  color: var(--accent);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
}
.aa-team-card__contact a:hover { text-decoration: underline; }
.aa-team-note {
  margin-top: var(--s-5);
  font-size: 12px;
  color: var(--t-3);
  font-style: italic;
}

/* ---------- Affiliations sidebar ---------- */
.aa-affiliations {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: var(--s-5);
  background: var(--bg-raised);
}
.aa-affiliations__label {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 600;
  margin: 0 0 var(--s-4);
}
.aa-affiliations ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}
.aa-affiliations li {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-bottom: var(--s-3);
  border-bottom: 1px solid var(--border);
}
.aa-affiliations li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.aa-affiliations__name {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 500;
  color: var(--t-1);
  letter-spacing: -0.01em;
}
.aa-affiliations__role {
  font-size: 12px;
  color: var(--t-3);
}

/* ---------- Brokered-by mark row ---------- */
.aa-broker-marks {
  margin-top: var(--s-7);
  padding-top: var(--s-5);
  border-top: 1px solid var(--border);
}
.aa-broker-marks__label {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--t-3);
  margin: 0 0 var(--s-4);
}
.aa-broker-marks__row {
  display: flex;
  align-items: center;
  gap: var(--s-6);
  flex-wrap: wrap;
}
.aa-broker-marks__logo {
  height: 36px;
  width: auto;
  opacity: 0.85;
  filter: grayscale(0.1);
}

/* ---------- Closing CTA ---------- */
.aa-cta {
  text-align: center;
  background:
    radial-gradient(circle at 50% 0%, rgba(31,74,92,0.06), transparent 60%),
    var(--bg-surface);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.aa-cta__inner {
  max-width: 720px;
  margin: 0 auto;
}
.aa-cta .hero__cta {
  justify-content: center;
}
.aa-license-disclosure {
  margin-top: var(--s-7);
  padding-top: var(--s-5);
  border-top: 1px solid var(--border);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--t-3);
  line-height: 1.7;
  text-align: center;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/* ============================================================
   LISTINGS — gallery, highlights, specs (single-listing.php)
   ============================================================ */

.aa-listing-hero {
  position: relative;
  aspect-ratio: 16 / 9;
  background: var(--bg-surface) center/cover no-repeat;
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: var(--s-3);
}
.aa-listing-hero__placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(31,74,92,0.08), rgba(31,74,92,0.18));
  color: var(--accent);
  opacity: 0.55;
}
.aa-listing-hero__placeholder .aa-icon {
  width: 64px; height: 64px;
}

.aa-gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: var(--s-2);
  margin-bottom: var(--s-6);
}
@media (max-width: 720px) {
  .aa-gallery-thumbs { grid-template-columns: repeat(4, 1fr); }
}
.aa-gallery-thumb {
  aspect-ratio: 1 / 1;
  background: var(--bg-surface) center/cover no-repeat;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: border-color 0.15s ease, transform 0.15s ease;
  position: relative;
  overflow: hidden;
}
.aa-gallery-thumb:hover {
  border-color: var(--accent);
  transform: scale(1.03);
}
.aa-gallery-thumb--active {
  border-color: var(--accent);
  border-width: 2px;
}

.aa-listing-highlights {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s-3) var(--s-5);
}
@media (max-width: 720px) {
  .aa-listing-highlights { grid-template-columns: 1fr; }
}
.aa-listing-highlights li {
  display: flex;
  align-items: flex-start;
  gap: var(--s-2);
  font-size: 14px;
  line-height: 1.5;
  color: var(--t-1);
}
.aa-listing-highlights li::before {
  content: "";
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F4A5C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 12 10 18 20 7'/></svg>") center/contain no-repeat;
}

.aa-listing-specs {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.aa-listing-specs tr { border-bottom: 1px solid var(--border); }
.aa-listing-specs tr:last-child { border-bottom: 0; }
.aa-listing-specs th {
  text-align: left;
  padding: var(--s-3) var(--s-4) var(--s-3) 0;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--t-3);
  font-weight: 600;
  width: 40%;
}
.aa-listing-specs td {
  padding: var(--s-3) 0;
  color: var(--t-1);
  font-feature-settings: 'tnum' 1;
  font-variant-numeric: tabular-nums;
}

.aa-listing-section {
  margin: var(--s-7) 0;
}
.aa-listing-section h2 {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -0.01em;
  margin: 0 0 var(--s-4);
  color: var(--t-1);
}

.aa-listing-description {
  font-size: 16px;
  line-height: 1.7;
  color: var(--t-1);
  max-width: 68ch;
}
.aa-listing-description p { margin: 0 0 var(--s-4); }
.aa-listing-description p:last-child { margin-bottom: 0; }

/* ---------- Lightbox (vanilla, no deps) ---------- */
.aa-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(20, 28, 36, 0.92);
  display: none;
  align-items: center;
  justify-content: center;
  padding: var(--s-5);
  cursor: zoom-out;
}
.aa-lightbox--open {
  display: flex;
}
.aa-lightbox__img {
  max-width: 100%;
  max-height: 92vh;
  object-fit: contain;
  border-radius: var(--radius-sm);
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
.aa-lightbox__close {
  position: absolute;
  top: var(--s-4);
  right: var(--s-4);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,0.1);
  border: 0;
  color: #fff;
  font-size: 24px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.aa-lightbox__close:hover { background: rgba(255,255,255,0.2); }
.aa-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255,255,255,0.1);
  border: 0;
  color: #fff;
  font-size: 24px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.aa-lightbox__nav:hover { background: rgba(255,255,255,0.2); }
.aa-lightbox__nav--prev { left: var(--s-4); }
.aa-lightbox__nav--next { right: var(--s-4); }
.aa-lightbox__counter {
  position: absolute;
  bottom: var(--s-4);
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-size: 13px;
  letter-spacing: 0.08em;
  opacity: 0.8;
}

/* ============================================================
   HOMEPAGE — "Latest from the blog" list block
   ============================================================ */
.home-blog-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--s-5);
  align-items: end;
  margin-bottom: var(--s-6);
}
@media (max-width: 720px) {
  .home-blog-head { grid-template-columns: 1fr; }
}
.home-blog-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
}
.home-blog-list li { border-bottom: 1px solid var(--border); }
.home-blog-row {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: var(--s-5);
  padding: var(--s-4) 0;
  align-items: center;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.15s ease;
}
.home-blog-row:hover { opacity: 0.78; }
.home-blog-row__img {
  aspect-ratio: 4 / 3;
  background: var(--bg-surface) center/cover no-repeat;
  border-radius: var(--radius-sm);
  position: relative;
}
.home-blog-row__img:not([style*="url("])::after {
  content: "";
  position: absolute; inset: 0;
  background-image:
    linear-gradient(135deg, rgba(31,74,92,0.05), rgba(31,74,92,0.12)),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><polygon points='50,18 56.1,38.4 78.4,38.6 60.6,51.6 67.0,72.7 50,60.0 33.0,72.7 39.4,51.6 21.6,38.6 43.9,38.4' fill='none' stroke='%231F4A5C' stroke-width='1.4' stroke-opacity='0.22'/></svg>");
  background-position: center, center;
  background-size: cover, 38% auto;
  background-repeat: no-repeat, no-repeat;
  border-radius: var(--radius-sm);
}
.home-blog-row__meta {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--t-3);
  margin: 0 0 6px;
}
.home-blog-row__title {
  font-family: var(--font-display);
  font-size: clamp(20px, 2vw, 24px);
  line-height: 1.25;
  color: var(--t-1);
  margin: 0 0 var(--s-2);
  letter-spacing: -0.01em;
  font-weight: 500;
}
.home-blog-row__excerpt {
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--t-2);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 720px) {
  .home-blog-row { grid-template-columns: 1fr; }
  .home-blog-row__img { aspect-ratio: 16 / 9; }
}

/* ============================================================
   CONTACT page — pull eXp Commercial vertical logo into aside
   ============================================================ */
.aa-contact-broker-mark {
  margin-top: var(--s-5);
  padding-top: var(--s-5);
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--s-2);
}
.aa-contact-broker-mark img {
  height: 64px;
  width: auto;
  opacity: 0.92;
}
.aa-contact-broker-mark__label {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--t-3);
  margin: 0;
}

/* ----- Contact Form 7 — consistent sizing across labels + inputs ----- */
.aa-contact-form .wpcf7-form { font-family: var(--font-body); }
.aa-contact-form .wpcf7-form label,
.aa-contact-form .wpcf7-form .wpcf7-form-control-wrap > label {
  display: block;
  font-size: 11px !important;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--t-3) !important;
  font-weight: 600 !important;
  margin: var(--s-3) 0 6px !important;
  font-family: var(--font-body) !important;
}
.aa-contact-form .wpcf7-form input[type="text"],
.aa-contact-form .wpcf7-form input[type="email"],
.aa-contact-form .wpcf7-form input[type="tel"],
.aa-contact-form .wpcf7-form input[type="url"],
.aa-contact-form .wpcf7-form select,
.aa-contact-form .wpcf7-form textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 11px 14px !important;
  font-size: 15px !important;
  font-family: var(--font-body) !important;
  color: var(--t-1) !important;
  background: var(--bg-card) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: var(--radius) !important;
  margin: 0 0 var(--s-3) !important;
  transition: border-color 0.15s ease;
}
.aa-contact-form .wpcf7-form textarea { min-height: 140px; resize: vertical; }
.aa-contact-form .wpcf7-form input:focus,
.aa-contact-form .wpcf7-form textarea:focus,
.aa-contact-form .wpcf7-form select:focus {
  outline: 0;
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px var(--accent-soft) !important;
}
.aa-contact-form .wpcf7-form input[type="submit"],
.aa-contact-form .wpcf7-form button[type="submit"] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 11px 22px !important;
  background: var(--t-1) !important;
  color: var(--bg-page) !important;
  border: 1px solid var(--t-1) !important;
  border-radius: var(--radius) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  font-family: var(--font-body) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  cursor: pointer;
  margin-top: var(--s-3) !important;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.aa-contact-form .wpcf7-form input[type="submit"]:hover,
.aa-contact-form .wpcf7-form button[type="submit"]:hover {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #fff !important;
}
.aa-contact-form .wpcf7-spinner { display: none !important; }
/* Required-field markers + radios — size them down so they don't dwarf labels */
.aa-contact-form .wpcf7-form .wpcf7-list-item label,
.aa-contact-form .wpcf7-form .wpcf7-radio label,
.aa-contact-form .wpcf7-form .wpcf7-checkbox label {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  font-size: 13.5px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--t-2) !important;
  font-weight: 400 !important;
  margin: 0 var(--s-3) 0 0 !important;
}
.aa-contact-form .wpcf7-form .wpcf7-list-item { display: inline-flex; margin: 0 var(--s-3) 0 0 !important; }
.aa-contact-form .wpcf7-not-valid-tip { font-size: 12px !important; color: #a3392f !important; margin-top: 2px; }
.aa-contact-form .wpcf7-response-output {
  border: 1px solid var(--border) !important;
  background: var(--bg-raised) !important;
  font-size: 14px !important;
  padding: 10px 14px !important;
  border-radius: var(--radius) !important;
  margin: var(--s-3) 0 !important;
}

/* ============================================================
   LISTING CARD — teaser + footer with View-details CTA
   ============================================================ */
.listing-card__body { display: flex; flex-direction: column; gap: 6px; }
.listing-card__teaser {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--t-2);
  margin: 6px 0 10px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-family: var(--font-body);
}
.listing-card__footer {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--s-3);
  margin-top: auto;
  padding-top: var(--s-2);
  border-top: 1px solid var(--border);
}
.listing-card__cta {
  font-size: 12.5px;
  font-weight: 500;
  color: var(--accent);
  letter-spacing: 0.01em;
  white-space: nowrap;
  font-family: var(--font-body);
  transition: transform 0.15s ease;
}
.listing-card:hover .listing-card__cta { transform: translateX(2px); }

/* ============================================================
   PRE-FOOTER CTA STRIP — Join our team
   ============================================================ */
.footer-cta {
  background: var(--bg-surface);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: var(--s-7) var(--page-pad);
}
.footer-cta__inner {
  max-width: var(--page-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: var(--s-6);
  align-items: center;
}
.footer-cta__eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 var(--s-2);
  font-weight: 600;
}
.footer-cta__headline {
  font-family: var(--font-display);
  font-size: clamp(28px, 3vw, 36px);
  letter-spacing: -0.015em;
  color: var(--t-1);
  margin: 0 0 var(--s-2);
  font-weight: 600;
}
.footer-cta__sub {
  font-size: 15px;
  color: var(--t-2);
  margin: 0;
  max-width: 52ch;
}
.footer-cta__buttons {
  display: flex;
  gap: var(--s-2);
  flex-wrap: wrap;
  justify-content: flex-end;
}
@media (max-width: 720px) {
  .footer-cta__inner { grid-template-columns: 1fr; }
  .footer-cta__buttons { justify-content: flex-start; }
}

/* ============================================================
   FOOTER — fix star vertical alignment with wordmark
   ============================================================ */
.footer__brand-row {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  line-height: 1;
}
.footer__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--accent);
  flex-shrink: 0;
  /* Optical centering against the wordmark — the star glyph hangs
     visually high without a tiny baseline-translate. */
  transform: translateY(1px);
}
.footer__lockup {
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: -0.01em;
  line-height: 1;
}
.footer__lockup strong { font-weight: 600; }

/* ============================================================
   CONTACT — dual eXp lockup (Commercial | Realty)
   ============================================================ */
.aa-contact-broker-mark__row {
  display: flex;
  align-items: center;
  gap: var(--s-3);
}
.aa-contact-broker-mark__logo {
  width: auto;
  opacity: 0.92;
}
.aa-contact-broker-mark__logo--commercial { height: 56px; }
.aa-contact-broker-mark__logo--realty     { height: 40px; }
.aa-contact-broker-mark__sep {
  display: inline-block;
  width: 1px;
  height: 44px;
  background: var(--border-strong);
  flex-shrink: 0;
}

/* ============================================================
   ABOUT / MARKETS — Kentucky map sizing
   ============================================================ */
.aa-area-head .aa-icon--lg,
.aa-area-head svg[aria-label="Kentucky"] {
  width: 100%;
  max-width: 360px;
  height: auto;
  color: var(--accent);
  opacity: 0.95;
}
.aa-county-card .aa-county-mark { width: 36px; height: auto; color: var(--accent); }

/* ============================================================
   CONTACT page list normalization (kill GP <ul> styling)
   ============================================================ */
.aa-contact-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.aa-contact-list li {
  list-style: none !important;
  padding: 0 0 var(--s-3);
  border-bottom: 1px solid var(--border);
  margin-bottom: var(--s-3);
}
.aa-contact-list li:last-child { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.aa-contact-list li::marker,
.aa-contact-list li::before { content: none !important; display: none !important; }
.aa-contact-list__role {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--t-3);
  margin: 0 0 4px;
}
.aa-contact-list__name {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--t-1);
  margin: 0 0 2px;
}
.aa-contact-list__phone {
  display: block;
  font-size: 16px;
  color: var(--t-1);
  font-feature-settings: 'tnum' 1;
}
.aa-contact-list__email {
  display: block;
  font-size: 13px;
  color: var(--t-3);
  margin-top: 2px;
}

/* ============================================================
   SINGLE LISTING — broker block with eXp logo + extra-links
   ============================================================ */
.aa-listing-broker {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--s-3);
  align-items: center;
  margin-top: var(--s-2);
}
.aa-listing-broker__logo {
  width: 56px;
  height: auto;
  opacity: 0.92;
}
.aa-listing-broker__name {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--t-1);
  margin: 0;
  letter-spacing: -0.01em;
}
.aa-listing-broker__license {
  font-size: 12px;
  color: var(--t-3);
  margin: 2px 0 0;
}

.aa-listing-video {
  margin: var(--s-5) 0;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--bg-surface);
  aspect-ratio: 16 / 9;
}
.aa-listing-video iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.aa-listing-extras {
  margin-top: var(--s-5);
  padding-top: var(--s-5);
  border-top: 1px solid var(--border);
}
.aa-listing-extras__label {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--t-3);
  margin: 0 0 var(--s-3);
}
.aa-listing-extras__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}
.aa-listing-extras__list li { list-style: none; margin: 0; padding: 0; }
.aa-listing-extras__list a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13.5px;
  color: var(--accent);
  text-decoration: none;
}
.aa-listing-extras__list a:hover { text-decoration: underline; }
.aa-listing-extras__list .aa-icon {
  width: 14px; height: 14px;
  color: var(--accent);
  opacity: 0.7;
}
