﻿/* ── Global reset ── */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; width: 100%; overflow-x: hidden; }

/* ── Google Fonts (Navbar needs Barlow Condensed + Barlow) ── */
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600&family=Barlow+Condensed:wght@600;700&display=swap');

/* ── Tokens ── */
.kja-nav,
.kja-nav * {
  --kja-gold:      #BEA987;
  --kja-gold-hi:   #A19276;
  --kja-gold-warm: #CBBF9F;
  --kja-navy:      #252526;
  --kja-nav-h:     68px;
  --kja-r4:        4px;
  --kja-s1: 4px; --kja-s2: 8px; --kja-s3: 12px; --kja-s4: 16px;
  --kja-s5: 20px; --kja-s6: 24px; --kja-s8: 32px;
  --kja-font-heading: 'The Seasons', 'Georgia', serif;
  --kja-font-ui:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --kja-font-body: 'Barlow', 'Arial', sans-serif;
  --kja-ease:      cubic-bezier(.4,0,.2,1);
  --kja-spring:    cubic-bezier(.32,1.12,.64,1);
  --kja-tf: .15s; --kja-tm: .24s;
  box-sizing: border-box;
  margin: 0; padding: 0;
}

/* ── Nav shell ── */
.kja-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  height: var(--kja-nav-h);
  background: rgba(37,37,38,0.94);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  display: flex;
  align-items: center;
  transition: background var(--kja-tm) var(--kja-ease), box-shadow var(--kja-tm) var(--kja-ease);
}
.kja-nav.kja-scrolled {
  background: rgba(37,37,38,0.99);
  box-shadow: 0 4px 32px rgba(0,0,0,0.38);
}
.kja-nav-inner {
  width: 100%; max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(12px, 4vw, var(--kja-s8));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--kja-s6);
}
/* Brand */
.kja-nav-brand {
  display: flex; flex-direction: column; gap: 1px; flex-shrink: 0;
}
.kja-nav-brand-name {
  font-family: var(--kja-font-heading);
  font-size: clamp(1rem, 1.5vw, 1.18rem); font-weight: 400; color: #fff;
  line-height: 1; letter-spacing: 0.02em; text-decoration: none;
}
.kja-nav-brand-name em { color: var(--kja-gold-warm); font-style: normal; }
.kja-nav-brand-sub {
  font-family: var(--kja-font-ui);
  font-size: clamp(0.5rem, 0.8vw, 0.6rem); font-weight: 600; letter-spacing: 0.22em;
  text-transform: uppercase; color: rgba(255,255,255,0.26);
}
/* Links */
.kja-nav-links { display: flex; align-items: center; gap: 2px; }
.kja-nav-link {
  font-family: var(--kja-font-ui);
  font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 600; letter-spacing: 0.14em;
  text-transform: uppercase; color: rgba(255,255,255,0.58);
  padding: 7px 13px; border-radius: var(--kja-r4); text-decoration: none;
  transition: color var(--kja-tf) var(--kja-ease), background var(--kja-tf) var(--kja-ease);
}
.kja-nav-link:hover { color: #fff; background: rgba(255,255,255,0.07); }
.kja-nav-link.active { color: var(--kja-gold-warm); }
/* CTA */
.kja-nav-cta {
  display: inline-flex; align-items: center; gap: var(--kja-s2);
  font-family: var(--kja-font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase; color: #fff;
  background: var(--kja-gold); padding: 9px 18px; border-radius: var(--kja-r4);
  flex-shrink: 0; text-decoration: none;
  transition: background var(--kja-tm), transform var(--kja-tm) var(--kja-spring);
}
.kja-nav-cta:hover { background: var(--kja-gold-hi); transform: translateY(-1px); }
/* Hamburger */
.kja-burger {
  display: none; flex-direction: column; justify-content: center;
  align-items: center; gap: 5px; width: 38px; height: 38px;
  background: none; border: 1px solid rgba(255,255,255,0.14);
  border-radius: var(--kja-r4); cursor: pointer; flex-shrink: 0;
}
.kja-burger span {
  display: block; width: 18px; height: 1.5px;
  background: rgba(255,255,255,0.72); border-radius: 1px;
  transition: transform var(--kja-tm) var(--kja-ease), opacity var(--kja-tm) var(--kja-ease);
}
.kja-burger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.kja-burger.open span:nth-child(2) { opacity: 0; }
.kja-burger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
/* Drawer */
.kja-nav-drawer {
  display: none; position: absolute; top: var(--kja-nav-h); left: 0; right: 0;
  background: rgba(37,37,38,0.98); backdrop-filter: blur(24px);
  border-bottom: 1px solid rgba(255,255,255,0.07);
  padding: var(--kja-s4) var(--kja-s5) var(--kja-s6);
  flex-direction: column; gap: 2px;
}
.kja-nav-drawer.open { display: flex; }
.kja-drawer-link {
  font-family: var(--kja-font-ui); font-size: clamp(0.75rem, 1.2vw, 0.85rem); font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.62);
  padding: 10px var(--kja-s3); border-radius: var(--kja-r4); text-decoration: none;
  transition: color var(--kja-tf), background var(--kja-tf);
}
.kja-drawer-link:hover { color: #fff; background: rgba(255,255,255,0.07); }
.kja-drawer-cta {
  margin-top: var(--kja-s3); background: var(--kja-gold); color: #fff;
  text-align: center; padding: 12px; border-radius: var(--kja-r4);
  font-family: var(--kja-font-ui); font-size: clamp(0.875rem, 1.8vw, 1rem); font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none;
  display: block; transition: background var(--kja-tm);
}
.kja-drawer-cta:hover { background: var(--kja-gold-hi); }
/* Responsive */
@media(max-width:900px) {
  .kja-nav-links, .kja-nav-cta { display: none; }
  .kja-burger { display: flex; }
}
@media(max-width:480px) { }

/* =================================================================
   SECTION 2: HERO
   ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600&family=Barlow+Condensed:wght@600;700&display=swap');

/* ── Tokens scoped to hero ── */
.kja-hero,
.kja-hero * {
  --kja-navy:      #252526;
  --kja-blue:      #252526;
  --kja-gold:      #BEA987;
  --kja-gold-hi:   #A19276;
  --kja-gold-warm: #CBBF9F;
  --kja-gold-pale: rgba(190,169,135,0.08);
  --kja-gold-rim:  rgba(190,169,135,0.26);
  --kja-white-8:   rgba(255,255,255,0.08);
  --kja-r4:  4px; --kja-r8:  8px; --kja-r16: 16px;
  --kja-s1:  4px; --kja-s2:  8px; --kja-s3:  12px; --kja-s4:  16px;
  --kja-s5:  20px; --kja-s6: 24px; --kja-s8:  32px; --kja-s10: 40px;
  --kja-s12: 48px; --kja-s16: 64px;
  --kja-e5: 0 24px 64px rgba(37,37,38,.20),0 6px 20px rgba(37,37,38,.10);
  --kja-font-heading: 'The Seasons', 'Georgia', serif;
  --kja-font-ui:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --kja-font-body: 'Barlow', 'Arial', sans-serif;
  --kja-ease:   cubic-bezier(.4,0,.2,1);
  --kja-spring: cubic-bezier(.32,1.12,.64,1);
  --kja-tm: .24s; --kja-tf: .15s;
  box-sizing: border-box;
  margin: 0; padding: 0;
}

/* ── Reset for hero scope ── */
.kja-hero img  { display: block; max-width: 100%; height: auto; }
.kja-hero a    { text-decoration: none; color: inherit; }
.kja-hero ul   { list-style: none; }

/* ── Animations ── */
@keyframes kjaHeroUp   { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes kjaHeroFade { from{opacity:0} to{opacity:1} }
@keyframes kjaHeroPulse{ 0%,100%{opacity:.4;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.2)} }

/* ── Shared within hero ── */
.kja-hero .h-wrap {
  width:100%; max-width:1200px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 32px);
}
/* Buttons */
.kja-hero .h-btn {
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px; font-family:var(--kja-font-ui); font-size:clamp(0.75rem, 1.2vw, 0.85rem); font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; padding:14px 30px;
  border-radius:4px; border:2px solid transparent; cursor:pointer;
  white-space:nowrap; line-height:1; text-decoration:none;
  transition:background var(--kja-tm) var(--kja-ease),color var(--kja-tm) var(--kja-ease),
    border-color var(--kja-tm) var(--kja-ease),transform .24s var(--kja-spring),
    box-shadow var(--kja-tm) var(--kja-ease);
}
.kja-hero .h-btn:hover  { transform:translateY(-2px); }
.kja-hero .h-btn:active { transform:translateY(0); }
.kja-hero .h-btn-primary {
  background:var(--kja-gold); color:var(--kja-navy); border-color:var(--kja-gold);
  box-shadow:0 2px 8px rgba(190,169,135,.30);
}
.kja-hero .h-btn-primary:hover {
  background:var(--kja-gold-hi); border-color:var(--kja-gold-hi);
  box-shadow:0 8px 28px rgba(190,169,135,.40);
}
.kja-hero .h-btn-ghost {
  background:transparent; color:#fff; border-color:rgba(255,255,255,.50);
}
.kja-hero .h-btn-ghost:hover {
  background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.82);
}

/* ── Hero layout ── */
.kja-hero {
  position:relative; min-height:100dvh; display:flex; align-items:center;
  overflow:hidden; background:#252526;
}
@supports not (height: 100dvh) {
  .kja-hero { min-height: 100vh; }
}
.kja-hero-photo { position:absolute; top:0; left:0; right:0; bottom:0; z-index:0; }
.kja-hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center 38%; display:block; }
.kja-hero-veil {
  position:absolute; top:0; left:0; right:0; bottom:0; z-index:1;
  background:linear-gradient(108deg,rgba(37,37,38,.87) 0%,rgba(37,37,38,.77) 30%,rgba(37,37,38,.21) 54%,rgba(37,37,38,.2) 100%),
    linear-gradient(to top,rgba(37,37,38,.75) 0%,transparent 52%);
}
.kja-hero-texture {
  position:absolute; top:0; left:0; right:0; bottom:0; z-index:2;
  background-image:repeating-linear-gradient(-46deg,transparent 0px,transparent 3px,rgba(255,255,255,.011) 3px,rgba(255,255,255,.011) 4px);
  pointer-events:none;
}
.kja-hero-edge {
  position:absolute; top:0; left:0; width:3px; height:100%; z-index:3;
  background:linear-gradient(to bottom,transparent 0%,#BEA987 18%,#CBBF9F 65%,transparent 100%);
}
.kja-hero-inner {
  position:relative; z-index:4; width:100%;
  padding-block: clamp(56px, 10vw, 100px);
  display:grid; grid-template-columns:1fr 372px;
  gap:64px; align-items:center;
}
/* Pill badge */
.kja-hero-pill {
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 16px 6px 8px; border:1px solid rgba(190,169,135,.26);
  border-radius:100px; background:rgba(190,169,135,.08);
  margin-bottom:24px; animation:kjaHeroUp .6s var(--kja-ease) .08s both;
}
.kja-hero-pill-dot {
  width:6px; height:6px; border-radius:50%; background:#A19276;
  box-shadow:0 0 0 3px rgba(161,146,118,.20); flex-shrink:0;
}
.kja-hero-pill-label {
  font-family:var(--kja-font-ui); font-size:clamp(0.5rem, 0.8vw, 0.6rem); font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; color:#CBBF9F;
}
/* Heading */
.kja-hero-h1 {
  font-family:var(--kja-font-heading); font-size:clamp(3.4rem,7.2vw,6.8rem);
  font-weight:400; line-height:.96; letter-spacing:.01em; color:#fff;
  margin-bottom:8px; animation:kjaHeroUp .6s var(--kja-ease) .18s both;
  text-wrap: balance;
}
.kja-hero-h1-accent { color:#CBBF9F; display:block; }
.kja-hero-h1-sub {
  font-size:clamp(1.5rem,3.2vw,2.8rem); color:rgba(255,255,255,.44);
  display:block; margin-top:8px;
}
/* Copy */
.kja-hero-copy {
  font-family:var(--kja-font-body); font-size:clamp(0.95rem, 2vw, 1.1rem); line-height:1.72;
  color:rgba(255,255,255,.64); max-width:460px;
  margin-block: 24px 40px;
  animation:kjaHeroUp .6s var(--kja-ease) .28s both;
}
/* Stats bar */
.kja-hero-stats {
  display:flex; max-width:420px;
  border:1px solid rgba(255,255,255,.10); border-radius:8px;
  overflow:hidden; background:rgba(255,255,255,.05);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  margin-bottom:40px; animation:kjaHeroUp .6s var(--kja-ease) .36s both;
}
.kja-hero-stat {
  flex:1; padding:18px 22px; display:flex; flex-direction:column; gap:4px;
}
.kja-hero-stat + .kja-hero-stat { border-left:1px solid rgba(255,255,255,.09); }
.kja-stat-num {
  font-family:var(--kja-font-heading); font-size:2.2rem; font-weight:400;
  color:#CBBF9F; line-height:1; letter-spacing:0;
}
.kja-stat-lbl {
  font-family:var(--kja-font-ui); font-size:clamp(0.5rem, 0.8vw, 0.6rem); font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.34);
}
/* CTAs */
.kja-hero-ctas {
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  animation:kjaHeroUp .6s var(--kja-ease) .44s both;
}
/* Agent card */
.kja-agent-card {
  background:rgba(37,37,38,.58); border:1px solid rgba(255,255,255,.12);
  border-top:2px solid #BEA987; border-radius:16px;
  padding:32px 24px; backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px);
  display:flex; flex-direction:column; align-items:center; text-align:center;
  box-shadow:0 24px 64px rgba(37,37,38,.20),0 6px 20px rgba(37,37,38,.10);
  animation:kjaHeroUp .7s var(--kja-ease) .26s both;
}
.kja-card-brand {
  width:100%; padding:8px 12px;
  background:rgba(190,169,135,.08); border:1px solid rgba(190,169,135,.26);
  border-radius:4px; margin-bottom:24px;
}
.kja-card-brand-name {
  font-family:var(--kja-font-ui); font-size:clamp(0.65rem, 1vw, 0.75rem); font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; color:#CBBF9F; line-height:1.3;
}
.kja-card-brand-loc {
  font-family:var(--kja-font-ui); font-size:9px; letter-spacing:.12em;
  text-transform:uppercase; color:rgba(255,255,255,.28); margin-top:2px;
}
.kja-card-photo-wrap { position:relative; margin-bottom:20px; }
.kja-card-photo {
  width:clamp(72px, 15vw, 128px); aspect-ratio: 1; border-radius:50%; object-fit:cover;
  object-position:center top; border:3px solid #BEA987; display:block;
  box-shadow:0 0 0 8px rgba(190,169,135,.12);
}
.kja-card-photo-ring {
  position:absolute; top:-10px; left:-10px; right:-10px; bottom:-10px;
  border-radius:50%; border:1px solid rgba(190,169,135,.22); pointer-events:none;
}
.kja-card-name {
  font-family:var(--kja-font-heading); font-size:1.65rem; font-weight:400;
  color:#fff; line-height:1.15; letter-spacing:.01em;
}
.kja-card-role {
  font-family:var(--kja-font-ui); font-size:clamp(0.5rem, 0.8vw, 0.6rem); font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; color:#CBBF9F;
  margin-block: 4px 20px;
}
.kja-card-divider {
  width:100%; height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.11),transparent);
  margin-bottom:16px;
}
.kja-card-links { width:100%; display:flex; flex-direction:column; gap:8px; }
.kja-card-link {
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 16px; border-radius:4px; background:rgba(255,255,255,.08);
  border:1px solid transparent; font-family:var(--kja-font-body); font-size:clamp(0.8rem, 1.4vw, 0.9rem);
  font-weight:500; color:rgba(255,255,255,.70) !important; text-decoration:none;
  transition:background .24s var(--kja-ease),border-color .24s var(--kja-ease),color .24s var(--kja-ease);
}
.kja-card-link:hover {
  background:rgba(190,169,135,.13); border-color:rgba(190,169,135,.26); color:#CBBF9F !important;
}
/* Scroll indicator */
.kja-hero-scroll {
  position:absolute; bottom:32px; left:50%; transform:translateX(-50%); z-index:4;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  color:rgba(255,255,255,.28); font-family:var(--kja-font-ui);
  font-size:9px; letter-spacing:.26em; text-transform:uppercase;
  animation:kjaHeroFade 1s var(--kja-ease) 1.1s both;
}
.kja-scroll-line {
  width:1px; height:34px;
  background:linear-gradient(to bottom,rgba(190,169,135,.65),transparent);
  animation:kjaHeroPulse 2.4s ease-in-out infinite;
}
/* Hero logo */
.kja-hero-logo {
  display:block; max-width:180px; height:auto; margin-bottom:24px;
  filter:drop-shadow(0 2px 12px rgba(0,0,0,.55));
  animation:kjaHeroUp .5s var(--kja-ease) .04s both;
}
/* Responsive */
@media(max-width:1020px) {
  .kja-hero-inner { grid-template-columns:1fr; gap:48px; padding-block: clamp(40px, 8vw, 72px); }
  .kja-agent-card { max-width:400px; margin-inline: auto; }
  .kja-hero-scroll { display:none; }
}
@media(max-width:560px) {
  .kja-hero-ctas { flex-direction:column; }
  .kja-hero-ctas .h-btn { width:100%; justify-content:center; }
  .kja-hero-stats { max-width:100%; }
}

/* =================================================================
   SECTION 3: SERVICES
   ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600&family=Barlow+Condensed:wght@600;700&display=swap');

/* ── Tokens scoped to services ── */
.kja-services,
.kja-services * {
  --gold:        #BEA987;
  --gold-hi:     #A19276;
  --gold-warm:   #CBBF9F;
  --gold-pale:   rgba(190,169,135,0.08);
  --gold-rim:    rgba(190,169,135,0.26);
  --charcoal:        #252526;
  --charcoal-mid:    #A19276;
  --sand:   #E5DFCF;
  --cream:   #F2EFE7;
  --white:       #ffffff;
  --surface:     #F2EFE7;
  --border:      #D9D2C2;
  --text-primary:#252526;
  --text-body:   #3d3d3e;
  --text-muted:  #808285;
  --r4:  4px; --r8: 8px; --r12: 12px;
  --e4: 0 12px 40px rgba(37,37,38,.16),0 4px 12px rgba(37,37,38,.08);
  --font-heading: 'The Seasons', 'Georgia', serif;
  --font-ui:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-body: 'Barlow', 'Arial', sans-serif;
  --ease:   cubic-bezier(.4,0,.2,1);
  --spring: cubic-bezier(.32,1.12,.64,1);
  --tm: .24s; --ts: .38s; --out: cubic-bezier(0,0,.2,1);
  box-sizing: border-box; margin: 0; padding: 0;
}
.kja-services a { text-decoration: none; color: inherit; }
.kja-services ul { list-style: none; }
.kja-services img { display: block; max-width: 100%; height: auto; }

/* ── Scroll reveal ── */
.kja-services .svc-reveal {
  opacity: 0; transform: translateY(18px);
  transition: opacity var(--ts) var(--out), transform var(--ts) var(--out);
}
.kja-services .svc-reveal.svc-in { opacity: 1; transform: translateY(0); }
.kja-services .svc-d1 { transition-delay: .06s; }
.kja-services .svc-d2 { transition-delay: .12s; }

/* ── Section shell ── */
.kja-services {
  padding-block: clamp(56px, 10vw, 100px);
  background: var(--surface); position: relative;
}
.kja-services::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, var(--charcoal) 20%, var(--charcoal-mid) 80%, transparent 100%);
}
/* Wrap */
.kja-services .svc-wrap {
  width: 100%; max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 32px);
}
/* Section header */
.kja-services .svc-head {
  text-align: center; max-width: 600px;
  margin-inline: auto; margin-bottom: 64px;
}
.kja-services .svc-label {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; font-family: var(--font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--gold-hi);
  margin-bottom: 16px;
}
.kja-services .svc-label::after {
  content: ''; display: block; width: 20px; height: 2px;
  background: var(--gold-hi); flex-shrink: 0; border-radius: 1px;
}
.kja-services .svc-heading {
  font-family: var(--font-heading); font-weight: 400;
  font-size: clamp(2.2rem,3.8vw,3.2rem); letter-spacing: .01em;
  line-height: 1.12; color: var(--text-primary);
  text-wrap: balance;
}
.kja-services .svc-rule {
  width: 60px; height: 3px;
  background: linear-gradient(90deg, rgba(190,169,135,.12), var(--gold) 50%, rgba(190,169,135,.12));
  border: none; border-radius: 2px;
  margin: 20px auto 24px;
}
.kja-services .svc-desc {
  font-family: var(--font-body); font-size: clamp(0.875rem, 1.8vw, 1rem); line-height: 1.75;
  color: var(--text-muted);
}
/* Grid */
.kja-services .svc-grid {
  display: grid; grid-template-columns: repeat(2,1fr); gap: 24px;
}
/* Card */
.kja-services .svc-card {
  background: var(--white); border: 1px solid var(--border); border-radius: var(--r12);
  padding: 40px 32px 32px; display: flex; flex-direction: column;
  position: relative; overflow: hidden;
  transition: transform var(--tm) var(--spring), box-shadow var(--tm) var(--ease), border-color var(--tm) var(--ease);
}
.kja-services .svc-card::after {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--gold), var(--gold-warm));
  transform: scaleX(0); transform-origin: left; transition: transform var(--tm) var(--ease);
}
.kja-services .svc-card:hover { transform: translateY(-5px); box-shadow: var(--e4); border-color: transparent; }
.kja-services .svc-card:hover::after { transform: scaleX(1); }
/* Card number */
.kja-services .svc-num {
  font-family: var(--font-heading); font-size: 4rem; font-weight: 400;
  color: var(--cream); line-height: 1; letter-spacing: 0;
  margin-bottom: 8px; user-select: none; transition: color var(--tm);
}
.kja-services .svc-card:hover .svc-num { color: rgba(190,169,135,.09); }
/* Icon */
.kja-services .svc-icon {
  width: 48px; height: 48px; background: var(--sand); border-radius: var(--r8);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 20px; flex-shrink: 0;
  transition: background var(--tm) var(--ease), box-shadow var(--tm);
}
.kja-services .svc-card:hover .svc-icon {
  background: var(--charcoal); box-shadow: 0 4px 14px rgba(37,37,38,.30);
}
.kja-services .svc-icon svg { stroke: var(--charcoal); transition: stroke var(--tm); }
.kja-services .svc-card:hover .svc-icon svg { stroke: var(--gold-warm); }
/* Title */
.kja-services .svc-title {
  font-family: var(--font-heading); font-size: 1.7rem; font-weight: 400;
  color: var(--text-primary); line-height: 1.18; letter-spacing: .01em; margin-bottom: 12px;
}
/* Body text */
.kja-services .svc-body {
  font-family: var(--font-body); font-size: clamp(0.825rem, 1.6vw, 0.95rem); line-height: 1.72;
  color: var(--text-muted); margin-bottom: 24px;
}
/* List */
.kja-services .svc-list {
  display: flex; flex-direction: column; gap: 8px; margin-bottom: 32px; flex-grow: 1;
}
.kja-services .svc-list li {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--font-body); font-size: clamp(0.8rem, 1.4vw, 0.9rem); font-weight: 500;
  color: var(--text-body); line-height: 1.45;
}
.kja-services .svc-check {
  width: 18px; height: 18px; border-radius: 50%; background: var(--gold-pale);
  border: 1px solid var(--gold-rim); display: flex; align-items: center;
  justify-content: center; flex-shrink: 0;
}
.kja-services .svc-check svg { stroke: var(--gold); }
/* CTA link */
.kja-services .svc-cta {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-ui); font-size: clamp(0.875rem, 1.8vw, 1rem); font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: var(--charcoal);
  transition: gap var(--tm) var(--ease), color var(--tm); margin-top: auto;
}
.kja-services .svc-cta:hover { color: var(--gold); gap: 16px; }
/* Responsive */
@media(max-width:768px) {
  .kja-services { padding-block: clamp(40px, 8vw, 72px); }
  .kja-services .svc-grid { grid-template-columns: 1fr; gap: 16px; }
}
@media(min-width:769px) and (max-width:1024px) {
  .kja-services .svc-grid { grid-template-columns: 1fr 1fr; }
}

/* =================================================================
   SECTION 4: ABOUT
   ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600&family=Barlow+Condensed:wght@600;700&display=swap');

/* ── Tokens scoped to about ── */
.kja-about,
.kja-about * {
  --gold:        #BEA987;
  --gold-hi:     #A19276;
  --gold-warm:   #CBBF9F;
  --charcoal:        #252526;
  --charcoal-mid:    #A19276;
  --sand:   #E5DFCF;
  --cream:   #F2EFE7;
  --white:       #ffffff;
  --surface:     #F2EFE7;
  --border:      #D9D2C2;
  --border-soft: #EDE8DC;
  --text-primary:#252526;
  --text-body:   #3d3d3e;
  --text-muted:  #808285;
  --r4:  4px; --r8: 8px; --r12: 12px; --r16: 16px;
  --e4: 0 12px 40px rgba(37,37,38,.16),0 4px 12px rgba(37,37,38,.08);
  --e5: 0 24px 64px rgba(37,37,38,.20),0 6px 20px rgba(37,37,38,.10);
  --font-heading: 'The Seasons', 'Georgia', serif;
  --font-ui:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-body: 'Barlow', 'Arial', sans-serif;
  --ease:   cubic-bezier(.4,0,.2,1);
  --spring: cubic-bezier(.32,1.12,.64,1);
  --ts: .38s; --tm: .24s; --out: cubic-bezier(0,0,.2,1);
  box-sizing: border-box; margin: 0; padding: 0;
}
.kja-about a   { text-decoration: none; color: inherit; }
.kja-about img { display: block; max-width: 100%; height: auto; }

/* ── Reveal ── */
.kja-about .abt-reveal {
  opacity: 0; transform: translateY(18px);
  transition: opacity var(--ts) var(--out), transform var(--ts) var(--out);
}
.kja-about .abt-reveal.abt-in { opacity: 1; transform: translateY(0); }
.kja-about .abt-d1 { transition-delay: .06s; }

/* ── Section shell ── */
.kja-about {
  padding-block: clamp(56px, 10vw, 100px);
  background: #fff; position: relative; overflow: hidden;
}
.kja-about::before {
  content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 40%;
  background: linear-gradient(to right, var(--cream) 0%, transparent 100%);
  pointer-events: none; z-index: 0;
}
/* Wrap */
.kja-about .abt-wrap {
  width: 100%; max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 32px);
}
/* Grid */
.kja-about .abt-grid {
  display: grid; grid-template-columns: 388px 1fr;
  gap: 80px; align-items: center; position: relative; z-index: 1;
}
/* Media col */
.kja-about .abt-media { position: relative; }
.kja-about .abt-photo-frame {
  border-radius: var(--r16); overflow: hidden;
  aspect-ratio: 3/4; max-height: 520px;
  box-shadow: var(--e5); position: relative; z-index: 2;
}
.kja-about .abt-photo-frame img {
  width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block;
}
.kja-about .abt-corner {
  position: absolute; bottom: -16px; right: -16px;
  width: 108px; height: 108px;
  border: 2px solid var(--sand); border-radius: var(--r12);
  z-index: 1; pointer-events: none;
}
.kja-about .abt-badge {
  position: absolute; bottom: 24px; left: -18px; z-index: 3;
  background: var(--charcoal); border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--r8); padding: 16px 20px;
  display: flex; flex-direction: column; align-items: center;
  line-height: 1; box-shadow: var(--e4);
}
.kja-about .abt-badge::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, var(--gold), var(--gold-warm));
  border-radius: 8px 8px 0 0;
}
.kja-about .abt-badge-num {
  font-family: var(--font-heading); font-size: 2.6rem; font-weight: 400;
  color: var(--gold-warm); letter-spacing: 0; line-height: 1;
}
.kja-about .abt-badge-lbl {
  font-family: var(--font-ui); font-size: 9px; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase;
  color: rgba(255,255,255,.44); margin-top: 4px; text-align: center;
}
/* Content col */
.kja-about .abt-label {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--gold-hi);
  margin-bottom: 16px;
}
.kja-about .abt-label::before {
  content: ''; display: block; width: 20px; height: 2px;
  background: var(--gold-hi); flex-shrink: 0; border-radius: 1px;
}
.kja-about .abt-heading {
  font-family: var(--font-heading); font-size: clamp(2.2rem,3.8vw,3.2rem);
  font-weight: 400; letter-spacing: .01em; line-height: 1.12; color: var(--text-primary);
  text-wrap: balance;
}
.kja-about .abt-rule {
  width: 48px; height: 3px;
  background: linear-gradient(90deg, var(--gold), rgba(190,169,135,.12));
  border: none; border-radius: 2px; margin: 20px 0 24px;
}
.kja-about .abt-body {
  font-family: var(--font-body); font-size: clamp(0.875rem, 1.8vw, 1rem); line-height: 1.78;
  color: var(--text-body); margin-bottom: 24px;
}
/* Trust grid */
.kja-about .abt-trust-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 32px;
}
.kja-about .abt-trust-card {
  background: var(--surface); border: 1px solid var(--border-soft);
  border-left: 3px solid var(--charcoal-mid); border-radius: 0 4px 4px 0;
  padding: 16px; transition: border-left-color var(--tm) var(--ease), background var(--tm) var(--ease);
}
.kja-about .abt-trust-card:hover { border-left-color: var(--gold); background: #fff; }
.kja-about .abt-trust-title {
  font-family: var(--font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase; color: var(--text-primary); margin-bottom: 4px;
}
.kja-about .abt-trust-copy {
  font-family: var(--font-body); font-size: clamp(0.75rem, 1.2vw, 0.85rem); color: var(--text-muted); line-height: 1.55;
}
/* Button */
.kja-about .abt-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font-ui); font-size: clamp(0.75rem, 1.2vw, 0.85rem); font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; padding: 14px 30px;
  border-radius: 4px; border: 2px solid var(--charcoal); cursor: pointer;
  background: var(--charcoal); color: #fff; text-decoration: none;
  transition: background var(--tm) var(--ease), transform .24s var(--spring), box-shadow var(--tm) var(--ease);
}
.kja-about .abt-btn:hover {
  background: var(--charcoal-mid); border-color: var(--charcoal-mid);
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(37,37,38,.12),0 2px 6px rgba(37,37,38,.06);
}
/* Responsive */
@media(max-width:920px) {
  .kja-about .abt-grid { grid-template-columns: 1fr; gap: 48px; }
  .kja-about .abt-media { max-width: 340px; margin-inline: auto; }
  .kja-about .abt-badge { left: 0; }
  .kja-about { padding-block: clamp(40px, 8vw, 72px); }
  .kja-about::before { display: none; }
}
@media(max-width:500px) { .kja-about .abt-trust-grid { grid-template-columns: 1fr; } }

/* =================================================================
   SECTION 5: WHY VICTOR
   ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600&family=Barlow+Condensed:wght@600;700&display=swap');

/* ── Tokens scoped to why section ── */
.kja-why,
.kja-why * {
  --gold:      #BEA987;
  --gold-hi:   #A19276;
  --gold-warm: #CBBF9F;
  --charcoal:      #252526;
  --charcoal-mid:  #A19276;
  --r4: 4px; --r8: 8px; --r12: 12px;
  --e4: 0 12px 40px rgba(37,37,38,.16),0 4px 12px rgba(37,37,38,.08);
  --font-heading: 'The Seasons', 'Georgia', serif;
  --font-ui:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-body: 'Barlow', 'Arial', sans-serif;
  --ease:   cubic-bezier(.4,0,.2,1);
  --spring: cubic-bezier(.32,1.12,.64,1);
  --ts: .38s; --tm: .24s; --tf: .15s; --out: cubic-bezier(0,0,.2,1);
  box-sizing: border-box; margin: 0; padding: 0;
}
.kja-why a   { text-decoration: none; color: inherit; }
.kja-why img { display: block; max-width: 100%; height: auto; }

/* ── Reveal ── */
.kja-why .why-reveal {
  opacity: 0; transform: translateY(18px);
  transition: opacity var(--ts) var(--out), transform var(--ts) var(--out);
}
.kja-why .why-reveal.why-in { opacity: 1; transform: translateY(0); }
.kja-why .why-d2 { transition-delay: .12s; }

/* ── Section shell ── */
.kja-why {
  padding-block: clamp(56px, 10vw, 100px);
  background: var(--charcoal); position: relative; overflow: hidden;
}
.kja-why::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background-image: repeating-linear-gradient(-50deg, transparent 0px, transparent 5px,
    rgba(255,255,255,.015) 5px, rgba(255,255,255,.015) 6px);
  pointer-events: none; z-index: 0;
}
/* Wrap */
.kja-why .why-wrap {
  width: 100%; max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 32px);
}
/* Inner grid */
.kja-why .why-inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1fr 300px;
  gap: 64px; align-items: start;
}
/* Label */
.kja-why .why-label {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--gold-warm);
  margin-bottom: 16px;
}
.kja-why .why-label::before {
  content: ''; display: block; width: 20px; height: 2px;
  background: var(--gold-warm); flex-shrink: 0; border-radius: 1px;
}
/* Heading */
.kja-why .why-heading {
  font-family: var(--font-heading); font-size: clamp(2.2rem,3.8vw,3.2rem);
  font-weight: 400; letter-spacing: .01em; line-height: 1.12; color: #fff;
  text-wrap: balance;
}
.kja-why .why-heading em { color: var(--gold-warm); font-style: italic; }
/* Rule */
.kja-why .why-rule {
  width: 48px; height: 3px;
  background: linear-gradient(90deg, var(--gold-warm), rgba(203,191,159,.12));
  border: none; border-radius: 2px; margin: 20px 0 24px;
}
/* Prose */
.kja-why .why-prose {
  font-family: var(--font-body); font-size: clamp(0.875rem, 1.8vw, 1rem); line-height: 1.78;
  color: rgba(255,255,255,.60); margin-bottom: 32px;
}
/* Checklist */
.kja-why .why-checklist {
  display: flex; flex-direction: column; gap: 0; margin-bottom: 40px;
  border: 1px solid rgba(255,255,255,.09); border-radius: var(--r8); overflow: hidden;
}
.kja-why .why-item {
  display: flex; align-items: flex-start; gap: 16px;
  padding: 16px 20px; border-bottom: 1px solid rgba(255,255,255,.06);
  transition: background var(--tf) var(--ease);
}
.kja-why .why-item:last-child { border-bottom: none; }
.kja-why .why-item:hover { background: rgba(255,255,255,.045); }
.kja-why .why-check {
  width: 20px; height: 20px; border-radius: 50%;
  background: rgba(190,169,135,.15); border: 1px solid rgba(190,169,135,.36);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; margin-top: 2px;
}
.kja-why .why-check svg { stroke: var(--gold-warm); }
.kja-why .why-item-text {
  font-family: var(--font-body); font-size: clamp(0.825rem, 1.6vw, 0.95rem); color: rgba(255,255,255,.78);
  line-height: 1.6; padding-top: 1px;
}
/* Actions */
.kja-why .why-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.kja-why .why-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font-ui); font-size: clamp(0.75rem, 1.2vw, 0.85rem); font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; padding: 14px 30px;
  border-radius: 4px; border: 2px solid transparent; cursor: pointer;
  white-space: nowrap; line-height: 1; text-decoration: none;
  transition: background var(--tm) var(--ease), color var(--tm) var(--ease),
    border-color var(--tm) var(--ease), transform .24s var(--spring), box-shadow var(--tm) var(--ease);
}
.kja-why .why-btn:hover { transform: translateY(-2px); }
.kja-why .why-btn-primary {
  background: var(--gold); color: var(--charcoal); border-color: var(--gold);
  box-shadow: 0 2px 8px rgba(190,169,135,.30);
}
.kja-why .why-btn-primary:hover {
  background: var(--gold-hi); border-color: var(--gold-hi);
  box-shadow: 0 8px 28px rgba(190,169,135,.40);
}
.kja-why .why-btn-ghost {
  background: transparent; color: #fff; border-color: rgba(255,255,255,.50);
}
.kja-why .why-btn-ghost:hover {
  background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.82);
}
/* Cartoon aside */
.kja-why .why-cartoon {
  align-self: center; max-width: 220px;
}
.kja-why .why-cartoon img {
  width: 100%; height: auto; display: block;
  filter: drop-shadow(0 8px 28px rgba(0,0,0,.55));
}
/* Responsive */
@media(max-width:860px) {
  .kja-why .why-inner { grid-template-columns: 1fr; gap: 48px; }
  .kja-why .why-cartoon { max-width: 150px; }
  .kja-why { padding-block: clamp(40px, 8vw, 72px); }
}

/* =================================================================
   SECTION 7: SOCIALS
   ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600&family=Barlow+Condensed:wght@600;700&display=swap');

/* ── Tokens scoped to socials ── */
.kja-socials,
.kja-socials * {
  --gold:        #BEA987;
  --gold-hi:     #A19276;
  --gold-warm:   #CBBF9F;
  --navy:        #252526;
  --charcoal:        #252526;
  --charcoal-mid:    #A19276;
  --white:       #ffffff;
  --surface:     #F2EFE7;
  --border:      #D9D2C2;
  --text-primary:#252526;
  --text-muted:  #808285;
  --r8: 8px; --r12: 12px;
  --e3: 0 6px 24px rgba(37,37,38,.12),0 2px 6px rgba(37,37,38,.06);
  --font-heading: 'The Seasons', 'Georgia', serif;
  --font-ui:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-body: 'Barlow', 'Arial', sans-serif;
  --ease:   cubic-bezier(.4,0,.2,1);
  --spring: cubic-bezier(.32,1.12,.64,1);
  --ts: .38s; --tm: .24s; --out: cubic-bezier(0,0,.2,1);
  box-sizing: border-box; margin: 0; padding: 0;
}
.kja-socials a { text-decoration: none; color: inherit; }

/* ── Reveal ── */
.kja-socials .soc-reveal {
  opacity: 0; transform: translateY(18px);
  transition: opacity var(--ts) var(--out), transform var(--ts) var(--out);
}
.kja-socials .soc-reveal.soc-in { opacity: 1; transform: translateY(0); }
.kja-socials .soc-d1 { transition-delay: .06s; }
.kja-socials .soc-d2 { transition-delay: .12s; }
.kja-socials .soc-d3 { transition-delay: .18s; }
.kja-socials .soc-d4 { transition-delay: .24s; }

/* ── Section shell ── */
.kja-socials {
  padding-block: clamp(56px, 10vw, 100px);
  background: var(--surface); position: relative;
}
.kja-socials::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--charcoal) 30%, var(--charcoal-mid) 70%, transparent);
}
/* Wrap */
.kja-socials .soc-wrap {
  width: 100%; max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 32px);
}
/* Header */
.kja-socials .soc-head {
  text-align: center; max-width: 520px; margin: 0 auto 48px;
}
.kja-socials .soc-label {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--gold-hi);
  margin-bottom: 16px;
}
.kja-socials .soc-label::after {
  content: ''; display: block; width: 20px; height: 2px;
  background: var(--gold-hi); flex-shrink: 0; border-radius: 1px;
}
.kja-socials .soc-heading {
  font-family: var(--font-heading); font-size: clamp(2.2rem,3.8vw,3.2rem);
  font-weight: 400; letter-spacing: .01em; line-height: 1.12; color: var(--text-primary);
  text-wrap: balance;
}
.kja-socials .soc-rule {
  width: 60px; height: 3px;
  background: linear-gradient(90deg, rgba(190,169,135,.12), var(--gold) 50%, rgba(190,169,135,.12));
  border: none; border-radius: 2px; margin: 20px auto 24px;
}
.kja-socials .soc-desc {
  font-family: var(--font-body); font-size: clamp(0.875rem, 1.8vw, 1rem); line-height: 1.75; color: var(--text-muted);
}
/* Grid */
.kja-socials .soc-grid {
  display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; max-width: 920px; margin: 0 auto;
}
/* Card */
.kja-socials .soc-card {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  padding: 24px 20px; background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r12); width: 152px; text-align: center;
  text-decoration: none; position: relative; overflow: hidden;
  transition: transform var(--tm) var(--spring), box-shadow var(--tm), border-color var(--tm);
}
.kja-socials .soc-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, var(--gold), var(--gold-warm));
  transform: scaleX(0); transition: transform var(--tm) var(--ease);
}
.kja-socials .soc-card:hover { transform: translateY(-6px); box-shadow: var(--e3); border-color: transparent; }
.kja-socials .soc-card:hover::before { transform: scaleX(1); }
.kja-socials .soc-ico {
  width: 52px; height: 52px; background: var(--navy); border-radius: var(--r8);
  display: flex; align-items: center; justify-content: center;
  transition: background var(--tm) var(--ease);
}
.kja-socials .soc-card:hover .soc-ico { background: var(--gold); }
.kja-socials .soc-ico svg { fill: #ffffff; display: block; }
.kja-socials .soc-card:hover .soc-ico svg { fill: var(--charcoal); }
.kja-socials .soc-name {
  font-family: var(--font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-primary);
}
.kja-socials .soc-handle {
  font-family: var(--font-body); font-size: clamp(0.65rem, 1vw, 0.75rem); color: var(--text-muted); line-height: 1.4;
}
/* Responsive */
@media(max-width:768px) {
  .kja-socials { padding-block: clamp(40px, 8vw, 72px); }
}
@media(max-width:600px) { .kja-socials .soc-card { width: 136px; } }
@media(max-width:440px) {
  .kja-socials .soc-grid { gap: 12px; }
  .kja-socials .soc-card { width: calc(50% - 6px); }
}

/* =================================================================
   SECTION 8: CONTACT
   ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600&family=Barlow+Condensed:wght@600;700&display=swap');

/* ── Tokens scoped to contact ── */
.kja-contact,
.kja-contact * {
  --gold:        #BEA987;
  --gold-hi:     #A19276;
  --gold-warm:   #CBBF9F;
  --charcoal:        #252526;
  --charcoal-mid:    #A19276;
  --sand:   #E5DFCF;
  --cream:   #F2EFE7;
  --white:       #ffffff;
  --surface:     #F2EFE7;
  --border:      #D9D2C2;
  --text-primary:#252526;
  --text-body:   #3d3d3e;
  --text-muted:  #808285;
  --text-faint:  #9e9e9e;
  --r4: 4px; --r6: 6px; --r8: 8px; --r16: 16px;
  --e1: 0 1px 2px rgba(37,37,38,.05),0 2px 5px rgba(37,37,38,.04);
  --e2: 0 3px 10px rgba(37,37,38,.08),0 1px 3px rgba(37,37,38,.05);
  --e3: 0 6px 24px rgba(37,37,38,.12),0 2px 6px rgba(37,37,38,.06);
  --font-heading: 'The Seasons', 'Georgia', serif;
  --font-ui:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-body: 'Barlow', 'Arial', sans-serif;
  --ease:   cubic-bezier(.4,0,.2,1);
  --spring: cubic-bezier(.32,1.12,.64,1);
  --ts: .38s; --tm: .24s; --out: cubic-bezier(0,0,.2,1);
  box-sizing: border-box; margin: 0; padding: 0;
}
.kja-contact a { text-decoration: none; color: inherit; }

/* ── Reveal ── */
.kja-contact .con-reveal {
  opacity: 0; transform: translateY(18px);
  transition: opacity var(--ts) var(--out), transform var(--ts) var(--out);
}
.kja-contact .con-reveal.con-in { opacity: 1; transform: translateY(0); }

/* ── Section shell ── */
.kja-contact {
  padding-block: clamp(56px, 10vw, 100px);
  background: #fff; position: relative;
}
.kja-contact::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, var(--charcoal) 20%, var(--charcoal-mid) 80%, transparent 100%);
}
/* Wrap */
.kja-contact .con-wrap {
  width: 100%; max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 32px);
}
/* Grid */
.kja-contact .con-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start;
}
/* Label */
.kja-contact .con-label {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--gold-hi);
  margin-bottom: 16px;
}
.kja-contact .con-label::before {
  content: ''; display: block; width: 20px; height: 2px;
  background: var(--gold-hi); flex-shrink: 0; border-radius: 1px;
}
/* Heading */
.kja-contact .con-heading {
  font-family: var(--font-heading); font-size: clamp(2.2rem,3.8vw,3.2rem);
  font-weight: 400; letter-spacing: .01em; line-height: 1.12; color: var(--text-primary);
  text-wrap: balance;
}
/* Rule */
.kja-contact .con-rule {
  width: 48px; height: 3px;
  background: linear-gradient(90deg, var(--gold), rgba(190,169,135,.12));
  border: none; border-radius: 2px; margin: 20px 0 24px;
}
/* Copy */
.kja-contact .con-copy {
  font-family: var(--font-body); font-size: clamp(0.875rem, 1.8vw, 1rem); line-height: 1.75; color: var(--text-muted);
}
/* Contact cards */
.kja-contact .con-cards {
  display: flex; flex-direction: column; gap: 8px; margin-block: 32px;
}
.kja-contact .con-card {
  display: flex; align-items: center; gap: 16px; padding: 14px 16px;
  background: #fff; border: 1px solid var(--border); border-radius: var(--r8);
  transition: border-color var(--tm) var(--ease), box-shadow var(--tm) var(--ease), transform var(--tm) var(--spring);
}
.kja-contact .con-card:hover {
  border-color: var(--sand); box-shadow: var(--e2); transform: translateX(3px);
}
.kja-contact .con-card-ico {
  width: 42px; height: 42px; background: var(--cream); border-radius: var(--r8);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  transition: background var(--tm) var(--ease);
}
.kja-contact .con-card:hover .con-card-ico { background: var(--charcoal); }
.kja-contact .con-card-ico svg { stroke: var(--charcoal); transition: stroke var(--tm); }
.kja-contact .con-card:hover .con-card-ico svg { stroke: var(--gold-warm); }
.kja-contact .con-card-lbl {
  font-family: var(--font-ui); font-size: 9px; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 2px;
}
.kja-contact .con-card-val {
  font-family: var(--font-body); font-size: clamp(0.825rem, 1.6vw, 0.95rem); font-weight: 600;
  color: var(--text-primary); transition: color var(--tm);
}
.kja-contact .con-card:hover .con-card-val { color: var(--gold); }
/* Social row */
.kja-contact .con-soc-lbl {
  font-family: var(--font-ui); font-size: clamp(0.5rem, 0.8vw, 0.6rem); font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--text-muted);
  display: block; margin-bottom: 12px;
}
.kja-contact .con-soc-row { display: flex; gap: 8px; flex-wrap: wrap; }
.kja-contact .con-soc-btn {
  width: 40px; height: 40px; background: #fff; border: 1px solid var(--border);
  border-radius: var(--r8); display: flex; align-items: center; justify-content: center;
  color: var(--charcoal);
  transition: background var(--tm) var(--ease), color var(--tm) var(--ease),
    border-color var(--tm) var(--ease), transform var(--tm) var(--spring), box-shadow var(--tm);
}
.kja-contact .con-soc-btn:hover {
  background: var(--charcoal); color: #fff; border-color: var(--charcoal);
  transform: translateY(-3px); box-shadow: var(--e3);
}
/* Responsive */
@media(max-width:860px) {
  .kja-contact .con-grid { grid-template-columns: 1fr; gap: 48px; }
  .kja-contact { padding-block: clamp(40px, 8vw, 72px); }
}

/* =================================================================
   FLUENT FORM STYLES (matching Signature theme)
   ================================================================= */
.kja-contact .fluentform,
.kja-contact .fluentform *,
.kja-contact .ff-el-group,
.kja-contact .ff-el-group * {
  box-sizing: border-box;
}

/* Form container */
.kja-contact #kja-form-placeholder {
  background: #fff;
  border: 1px solid #D9D2C2;
  border-radius: 12px;
  padding: 40px 32px;
  box-shadow: 0 12px 40px rgba(37,37,38,.12),0 4px 12px rgba(37,37,38,.06);
}

/* Hide default form title */
.kja-contact .ff-el-group.ff-custom_html.form-title-h3,
.kja-contact h3#form-title-h3 {
  display: none !important;
}

/* Form labels */
.kja-contact .ff-el-input--label label,
.kja-contact .ff-el-input--label .ff-el-input--label-text {
  font-family: var(--font-ui);
  font-size: clamp(0.5rem, 0.8vw, 0.6rem) !important;
  font-weight: 700;
  text-transform: uppercase !important;
  letter-spacing: 0.22em !important;
  color: #808285 !important;
  margin-bottom: 8px !important;
  display: block;
}

.kja-contact .ff-el-input--label.ff-el-is-required.asterisk-right label::after {
  color: var(--gold) !important;
}

/* Form inputs */
.kja-contact .ff-el-form-control,
.kja-contact input.ff-el-form-control,
.kja-contact textarea.ff-el-form-control {
  width: 100% !important;
  padding: 14px 0 !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid #D9D2C2 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: var(--font-body);
  font-size: clamp(0.875rem, 1.6vw, 1rem) !important;
  color: #252526 !important;
  transition: border-color 0.24s cubic-bezier(.4,0,.2,1) !important;
  outline: none !important;
}

.kja-contact .ff-el-form-control:focus,
.kja-contact input.ff-el-form-control:focus,
.kja-contact textarea.ff-el-form-control:focus {
  border-bottom-color: var(--gold) !important;
  box-shadow: none !important;
}

.kja-contact textarea.ff-el-form-control {
  resize: vertical !important;
  min-height: 120px !important;
  line-height: 1.6 !important;
}

/* Placeholder */
.kja-contact .fluentform ::placeholder,
.kja-contact input::placeholder,
.kja-contact textarea::placeholder {
  color: #9e9e9e !important;
  font-size: clamp(0.8rem, 1.4vw, 0.9rem) !important;
}

/* Input groups */
.kja-contact .ff-el-group {
  margin-bottom: 20px !important;
}

/* Name fields - 2 columns */
.kja-contact .ff-name-field-wrapper .ff-t-container {
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
}

/* Checkboxes */
.kja-contact .ff-el-form-check-label {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  font-family: var(--font-body);
  font-size: clamp(0.75rem, 1.2vw, 0.85rem) !important;
  color: #808285 !important;
  cursor: pointer !important;
  line-height: 1.5;
}

.kja-contact .ff-el-form-check-input,
.kja-contact input[type="checkbox"] {
  accent-color: var(--gold) !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  margin-top: 3px !important;
  width: 16px !important;
  height: 16px !important;
}

/* Terms checkbox */
.kja-contact .ff-el-form-check.ff-el-tc .ff-el-form-check-label.ff_tc_label {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  margin: 16px 0 24px !important;
  font-size: clamp(0.7rem, 1vw, 0.8rem) !important;
  color: #808285 !important;
  line-height: 1.5 !important;
  cursor: pointer !important;
}

.kja-contact .ff_tc_checkbox input[type="checkbox"] {
  margin: 0 !important;
  position: relative !important;
  top: 0 !important;
}

/* Submit button */
.kja-contact .ff-btn.ff-btn-submit {
  width: 100% !important;
  padding: 16px 32px !important;
  background: var(--gold) !important;
  color: var(--charcoal) !important;
  border: 2px solid var(--gold) !important;
  border-radius: 4px !important;
  font-family: var(--font-ui);
  font-size: clamp(0.75rem, 1.2vw, 0.85rem) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.16em !important;
  cursor: pointer !important;
  transition: all 0.24s cubic-bezier(.4,0,.2,1) !important;
  box-shadow: 0 2px 8px rgba(190,169,135,.30) !important;
}

.kja-contact .ff-btn.ff-btn-submit:hover {
  background: var(--gold-hi) !important;
  border-color: var(--gold-hi) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(190,169,135,.40) !important;
}

/* Phone compliance text */
.kja-contact .phone-compliance-terms-text,
.kja-contact .phone-compliance-container-always-visible {
  font-family: var(--font-body);
  font-size: clamp(0.65rem, 1vw, 0.75rem) !important;
  color: #808285 !important;
  line-height: 1.5 !important;
  margin-top: 12px !important;
}

/* Screen reader */
.kja-contact .ff_screen_reader_title {
  display: none !important;
}

/* Responsive for form */
@media(max-width:540px) {
  .kja-contact #kja-form-placeholder {
    padding: 24px 20px;
  }
  .kja-contact .ff-name-field-wrapper .ff-t-container {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
}

/* =================================================================
   SECTION 9: FOOTER
   ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600&family=Barlow+Condensed:wght@600;700&display=swap');

/* ── Tokens scoped to footer ── */
.kja-footer,
.kja-footer * {
  --gold:      #BEA987;
  --gold-hi:   #A19276;
  --gold-warm: #CBBF9F;
  --r4: 4px; --r6: 6px;
  --font-heading: 'The Seasons', 'Georgia', serif;
  --font-ui:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-body: 'Barlow', 'Arial', sans-serif;
  --ease:   cubic-bezier(.4,0,.2,1);
  --spring: cubic-bezier(.32,1.12,.64,1);
  --tm: .24s;
  box-sizing: border-box; margin: 0; padding: 0;
}
.kja-footer a { text-decoration: none; color: inherit; }

/* ── Footer shell ── */
.kja-footer {
  background: #1a1a1b; padding-top: 64px; padding-bottom: 40px; position: relative;
}
.kja-footer::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold) 30%, var(--gold-warm) 70%, transparent);
}
/* Wrap */
.kja-footer .ftr-wrap {
  width: 100%; max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 32px);
}
/* Grid */
.kja-footer .ftr-grid {
  display: grid; grid-template-columns: 1.5fr 1fr 1fr;
  gap: 64px; margin-bottom: 48px;
}
/* Brand col */
.kja-footer .ftr-brand-name {
  font-family: var(--font-heading); font-size: 1.5rem; font-weight: 400;
  color: #fff; line-height: 1.1; letter-spacing: 0.02em; margin-bottom: 4px;
}
.kja-footer .ftr-brand-name em { color: var(--gold-warm); font-style: normal; }
.kja-footer .ftr-brand-sub {
  font-family: var(--font-ui); font-size: 9px; font-weight: 600; letter-spacing: 0.20em;
  text-transform: uppercase; color: rgba(255,255,255,0.22); margin-bottom: 20px;
}
.kja-footer .ftr-copy {
  font-family: var(--font-body); font-size: clamp(0.75rem, 1.2vw, 0.85rem); color: rgba(255,255,255,0.35);
  line-height: 1.72; max-width: 280px; margin-bottom: 20px;
}
.kja-footer .ftr-soc { display: flex; gap: 8px; flex-wrap: wrap; }
.kja-footer .ftr-soc-btn {
  width: 34px; height: 34px; background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.09); border-radius: var(--r6);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,0.42);
  transition: background var(--tm), color var(--tm), border-color var(--tm), transform var(--tm) var(--spring);
}
.kja-footer .ftr-soc-btn:hover {
  background: var(--gold); color: var(--charcoal); border-color: var(--gold); transform: translateY(-2px);
}
/* Nav col */
.kja-footer .ftr-col-title {
  font-family: var(--font-ui); font-size: clamp(0.5rem, 0.8vw, 0.6rem); font-weight: 700;
  letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255,255,255,0.28);
  margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,0.07);
}
.kja-footer .ftr-nav { display: flex; flex-direction: column; gap: 12px; }
.kja-footer .ftr-nav a {
  font-family: var(--font-body); font-size: clamp(0.8rem, 1.4vw, 0.9rem);
  color: rgba(255,255,255,0.44); transition: color var(--tm);
}
.kja-footer .ftr-nav a:hover { color: var(--gold-warm); }
/* Contact col */
.kja-footer .ftr-ci-list { display: flex; flex-direction: column; gap: 12px; }
.kja-footer .ftr-ci { display: flex; align-items: flex-start; gap: 12px; }
.kja-footer .ftr-ci svg { stroke: var(--gold); flex-shrink: 0; margin-top: 2px; }
.kja-footer .ftr-ci a,
.kja-footer .ftr-ci span {
  font-family: var(--font-body); font-size: clamp(0.75rem, 1.2vw, 0.85rem);
  color: rgba(255,255,255,0.44); transition: color var(--tm); line-height: 1.5;
}
.kja-footer .ftr-ci a:hover { color: var(--gold-warm); }
/* Bottom bar */
.kja-footer .ftr-bottom {
  border-top: 1px solid rgba(255,255,255,0.06); padding-top: 24px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.kja-footer .ftr-legal {
  font-family: var(--font-ui); font-size: clamp(0.5rem, 0.8vw, 0.6rem); letter-spacing: 0.10em;
  color: rgba(255,255,255,0.18);
}
/* Responsive */
@media(max-width:860px) {
  .kja-footer .ftr-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
}
@media(max-width:540px) {
  .kja-footer .ftr-grid { grid-template-columns: 1fr; gap: 32px; }
  .kja-footer .ftr-bottom { flex-direction: column; align-items: flex-start; }
}

/* ══════════════════════════════════════════════════════════════
   LISTINGS SECTION
   ══════════════════════════════════════════════════════════════ */
.kja-listings,
.kja-listings * {
  --gold:         #BEA987;
  --gold-hi:      #A19276;
  --gold-warm:    #CBBF9F;
  --gold-pale:    rgba(190,169,135,0.08);
  --gold-rim:     rgba(190,169,135,0.26);
  --charcoal:     #252526;
  --sand:         #E5DFCF;
  --cream:        #F2EFE7;
  --surface:      #ffffff;
  --border:       #D9D2C2;
  --text-primary: #252526;
  --text-body:    #3d3d3e;
  --text-muted:   #808285;
  --r4: 4px; --r8: 8px; --r12: 12px;
  --e4: 0 12px 40px rgba(37,37,38,.16),0 4px 12px rgba(37,37,38,.08);
  --font-heading: 'The Seasons', 'Georgia', serif;
  --font-ui:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-body: 'Barlow', 'Arial', sans-serif;
  --ease:   cubic-bezier(.4,0,.2,1);
  --spring: cubic-bezier(.32,1.12,.64,1);
  --tm: .24s; --ts: .38s; --out: cubic-bezier(0,0,.2,1);
  box-sizing: border-box; margin: 0; padding: 0;
}
.kja-listings a { text-decoration: none; color: inherit; }
.kja-listings img { display: block; max-width: 100%; height: auto; }

/* Reveal */
.kja-listings .lst-reveal {
  opacity: 0; transform: translateY(18px);
  transition: opacity var(--ts) var(--out), transform var(--ts) var(--out);
}
.kja-listings .lst-reveal.lst-in { opacity: 1; transform: translateY(0); }
.kja-listings .lst-d1 { transition-delay: .07s; }
.kja-listings .lst-d2 { transition-delay: .14s; }

/* Section shell */
.kja-listings {
  padding-block: clamp(56px, 10vw, 100px);
  background: var(--cream); position: relative;
}
.kja-listings::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, var(--charcoal) 20%, var(--gold-hi) 80%, transparent 100%);
}

/* Wrap */
.kja-listings .lst-wrap {
  width: 100%; max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 32px);
}

/* Header */
.kja-listings .lst-head {
  text-align: center; max-width: 600px;
  margin-inline: auto; margin-bottom: 56px;
}
.kja-listings .lst-label {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; font-family: var(--font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--gold-hi); margin-bottom: 16px;
}
.kja-listings .lst-label::after {
  content: ''; display: block; width: 20px; height: 2px;
  background: var(--gold-hi); flex-shrink: 0; border-radius: 1px;
}
.kja-listings .lst-heading {
  font-family: var(--font-heading); font-weight: 400;
  font-size: clamp(2.2rem, 3.8vw, 3.2rem); letter-spacing: .01em;
  line-height: 1.12; color: var(--text-primary); text-wrap: balance;
}
.kja-listings .lst-rule {
  width: 60px; height: 3px;
  background: linear-gradient(90deg, rgba(190,169,135,.12), var(--gold) 50%, rgba(190,169,135,.12));
  border: none; border-radius: 2px; margin: 20px auto 24px;
}
.kja-listings .lst-desc {
  font-family: var(--font-body); font-size: clamp(0.875rem, 1.8vw, 1rem);
  line-height: 1.75; color: var(--text-muted);
}

/* Grid */
.kja-listings .lst-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}

/* Card */
.kja-listings .lst-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r12);
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform var(--tm) var(--spring), box-shadow var(--tm) var(--ease), border-color var(--tm) var(--ease);
}
.kja-listings .lst-card:hover { transform: translateY(-5px); box-shadow: var(--e4); border-color: transparent; }

/* Photo */
.kja-listings .lst-card-photo-link { display: block; }
.kja-listings .lst-photo-wrap {
  position: relative; aspect-ratio: 4/3; overflow: hidden;
}
.kja-listings .lst-photo-wrap img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .5s var(--ease);
}
.kja-listings .lst-card:hover .lst-photo-wrap img { transform: scale(1.04); }

/* Badge */
.kja-listings .lst-badge {
  position: absolute; top: 14px; left: 14px;
  font-family: var(--font-ui); font-size: clamp(0.55rem, 0.9vw, 0.65rem); font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  background: var(--charcoal); color: var(--gold-warm);
  padding: 5px 10px; border-radius: var(--r4);
}
.kja-listings .lst-badge-pend { background: var(--gold); color: var(--charcoal); }

/* Card body */
.kja-listings .lst-card-body {
  padding: 24px 28px 28px; display: flex; flex-direction: column; flex-grow: 1;
}
.kja-listings .lst-price {
  font-family: var(--font-heading); font-size: 1.6rem; font-weight: 400;
  color: var(--text-primary); margin-bottom: 6px;
}
.kja-listings .lst-address {
  font-family: var(--font-body); font-size: clamp(0.78rem, 1.3vw, 0.88rem);
  color: var(--text-muted); line-height: 1.5; margin-bottom: 16px;
}
.kja-listings .lst-specs {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  font-family: var(--font-body); font-size: clamp(0.75rem, 1.2vw, 0.85rem);
  color: var(--text-body); margin-bottom: 24px; flex-grow: 1;
}
.kja-listings .lst-spec { display: flex; align-items: center; gap: 5px; }
.kja-listings .lst-spec svg { stroke: var(--gold-hi); flex-shrink: 0; }
.kja-listings .lst-spec-dot {
  width: 3px; height: 3px; border-radius: 50%; background: var(--border); flex-shrink: 0;
}

/* Card CTA */
.kja-listings .lst-cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; color: var(--gold-hi);
  border-top: 1px solid var(--border); padding-top: 18px; margin-top: auto;
  transition: color var(--tm), gap var(--tm);
}
.kja-listings .lst-cta:hover { color: var(--charcoal); gap: 9px; }
.kja-listings .lst-cta svg { transition: transform var(--tm); }
.kja-listings .lst-cta:hover svg { transform: translateX(3px); }

/* Footer CTA */
.kja-listings .lst-footer {
  text-align: center; margin-top: 48px;
}
.kja-listings .lst-all-btn {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: var(--charcoal);
  background: var(--gold); padding: 13px 28px; border-radius: var(--r4);
  transition: background var(--tm), transform var(--tm) var(--spring);
}
.kja-listings .lst-all-btn:hover { background: var(--gold-hi); transform: translateY(-2px); }
.kja-listings .lst-all-btn svg { stroke: var(--charcoal); transition: transform var(--tm); }
.kja-listings .lst-all-btn:hover svg { transform: translateX(3px); }

/* Responsive */
@media(max-width:900px) {
  .kja-listings .lst-grid { grid-template-columns: repeat(2,1fr); }
}
@media(max-width:560px) {
  .kja-listings .lst-grid { grid-template-columns: 1fr; }
}


/* ══════════════════════════════════════════════════════════════
   COMMUNITIES SECTION
   ══════════════════════════════════════════════════════════════ */
.kja-communities,
.kja-communities * {
  --gold:         #BEA987;
  --gold-hi:      #A19276;
  --gold-warm:    #CBBF9F;
  --charcoal:     #252526;
  --sand:         #E5DFCF;
  --cream:        #F2EFE7;
  --surface:      #F2EFE7;
  --text-primary: #252526;
  --text-muted:   #808285;
  --font-heading: 'The Seasons', 'Georgia', serif;
  --font-ui:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-body: 'Barlow', 'Arial', sans-serif;
  --ease:   cubic-bezier(.4,0,.2,1);
  --spring: cubic-bezier(.32,1.12,.64,1);
  --tm: .24s; --ts: .38s; --out: cubic-bezier(0,0,.2,1);
  box-sizing: border-box; margin: 0; padding: 0;
}
.kja-communities a { text-decoration: none; color: inherit; }
.kja-communities img { display: block; max-width: 100%; height: auto; }

/* Reveal */
.kja-communities .com-reveal {
  opacity: 0; transform: translateY(18px);
  transition: opacity var(--ts) var(--out), transform var(--ts) var(--out);
}
.kja-communities .com-reveal.com-in { opacity: 1; transform: translateY(0); }
.kja-communities .com-d1 { transition-delay: .06s; }
.kja-communities .com-d2 { transition-delay: .12s; }
.kja-communities .com-d3 { transition-delay: .18s; }
.kja-communities .com-d4 { transition-delay: .24s; }

/* Section shell */
.kja-communities {
  padding-block: clamp(56px, 10vw, 100px);
  background: var(--surface); position: relative;
}
.kja-communities::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, var(--charcoal) 20%, var(--gold-hi) 80%, transparent 100%);
}

/* Wrap */
.kja-communities .com-wrap {
  width: 100%; max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 32px);
}

/* Header */
.kja-communities .com-head {
  text-align: center; max-width: 600px;
  margin-inline: auto; margin-bottom: 56px;
}
.kja-communities .com-label {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; font-family: var(--font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--gold-hi); margin-bottom: 16px;
}
.kja-communities .com-label::after {
  content: ''; display: block; width: 20px; height: 2px;
  background: var(--gold-hi); flex-shrink: 0; border-radius: 1px;
}
.kja-communities .com-heading {
  font-family: var(--font-heading); font-weight: 400;
  font-size: clamp(2.2rem, 3.8vw, 3.2rem); letter-spacing: .01em;
  line-height: 1.12; color: var(--text-primary); text-wrap: balance;
}
.kja-communities .com-rule {
  width: 60px; height: 3px;
  background: linear-gradient(90deg, rgba(190,169,135,.12), var(--gold) 50%, rgba(190,169,135,.12));
  border: none; border-radius: 2px; margin: 20px auto 24px;
}
.kja-communities .com-desc {
  font-family: var(--font-body); font-size: clamp(0.875rem, 1.8vw, 1rem);
  line-height: 1.75; color: var(--text-muted);
}

/* Grid — 3-col, auto-spans last row based on remainder */
.kja-communities .com-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
/*
  3-col grid remainder rules (works for 1–9 cards):
  • last card at position 3n+1 (1,4,7) → alone in row → span all 3 cols
  • last card at position 3n+2 (2,5,8) →   span 2 cols
  • last card at position 3n+0 (3,6,9) → row is full → no spanning needed
*/
.kja-communities .com-grid .com-card:last-child:nth-child(3n+1) {
  grid-column: 1 / -1;
}

.kja-communities .com-grid .com-card:last-child:nth-child(3n+2) {
  grid-column: 2 / span 2;
  aspect-ratio: auto;
}

/* Card */
.kja-communities .com-card {
  position: relative; border-radius: 12px; overflow: hidden;
  display: block; aspect-ratio: 4/3;
  transition: transform var(--tm) var(--spring), box-shadow var(--tm) var(--ease);
}
.kja-communities .com-card:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(37,37,38,.24); }

/* Photo */
.kja-communities .com-photo-wrap {
  position: absolute; inset: 0;
}
.kja-communities .com-photo-wrap img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .55s var(--ease);
}
.kja-communities .com-card:hover .com-photo-wrap img { transform: scale(1.06); }

/* Gradient overlay */
.kja-communities .com-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(37,37,38,0.80) 0%, rgba(37,37,38,0.10) 55%, transparent 100%);
  transition: background var(--tm);
}
.kja-communities .com-card:hover .com-overlay {
  background: linear-gradient(to top, rgba(37,37,38,0.88) 0%, rgba(37,37,38,0.20) 60%, transparent 100%);
}

/* Text */
.kja-communities .com-text {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 20px 24px 24px;
}
.kja-communities .com-city {
  font-family: var(--font-heading); font-size: clamp(1.3rem, 2.2vw, 1.7rem); font-weight: 400;
  color: #fff; letter-spacing: .02em; margin-bottom: 4px;
  text-shadow: 0 2px 8px rgba(0,0,0,.30);
}
.kja-communities .com-tagline {
  font-family: var(--font-body); font-size: clamp(0.72rem, 1.2vw, 0.82rem);
  color: rgba(255,255,255,0.72); line-height: 1.4;
  opacity: 0; transform: translateY(6px);
  transition: opacity var(--tm) var(--ease), transform var(--tm) var(--ease);
}
.kja-communities .com-card:hover .com-tagline { opacity: 1; transform: translateY(0); }

/* Gold accent line on hover */
.kja-communities .com-card::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--gold), var(--gold-warm));
  transform: scaleX(0); transform-origin: left; transition: transform var(--tm) var(--ease);
}
.kja-communities .com-card:hover::after { transform: scaleX(1); }

/* Responsive — 2-col */
@media(max-width:860px) {
  .kja-communities .com-grid { grid-template-columns: repeat(2, 1fr); }
  /* Reset 3-col spanning rules */
  .kja-communities .com-grid .com-card:last-child:nth-child(3n+1),
  .kja-communities .com-grid .com-card:last-child:nth-child(3n+2) {
    grid-column: auto;
  }
  /*
    2-col grid remainder rules:
    • last card at position 2n+1 (1,3,5,7,9) → alone in row → span both cols
    • last card at position 2n+0 (2,4,6,8)   → row is full → no spanning
  */
  .kja-communities .com-grid .com-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}
/* Responsive — 1-col */
@media(max-width:540px) {
  .kja-communities .com-grid { grid-template-columns: 1fr; }
  .kja-communities .com-grid .com-card:last-child:nth-child(odd) {
    grid-column: auto;
  }
}

/* =================================================================
   SECTION: PAGE HERO (About & Contact pages)
   ================================================================= */

.kja-page-hero,
.kja-page-hero * {
  --kja-gold:      #BEA987;
  --kja-gold-hi:   #A19276;
  --kja-gold-warm: #CBBF9F;
  --kja-navy:      #252526;
  --kja-font-heading: 'The Seasons', 'Georgia', serif;
  --kja-font-ui:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --kja-font-body: 'Barlow', 'Arial', sans-serif;
  --kja-ease:      cubic-bezier(.4,0,.2,1);
  box-sizing: border-box;
  margin: 0; padding: 0;
}

.kja-page-hero {
  position: relative;
  background: #252526;
  padding-top: calc(68px + clamp(48px, 8vw, 80px));
  padding-bottom: clamp(56px, 9vw, 96px);
  overflow: hidden;
}

/* Diagonal texture */
.kja-page-hero::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background-image: repeating-linear-gradient(
    -46deg, transparent 0px, transparent 3px,
    rgba(255,255,255,.011) 3px, rgba(255,255,255,.011) 4px
  );
  pointer-events: none; z-index: 0;
}

/* Gold left edge */
.kja-page-hero::after {
  content: '';
  position: absolute; top: 0; left: 0; width: 3px; height: 100%;
  background: linear-gradient(to bottom, transparent 0%, #BEA987 18%, #CBBF9F 65%, transparent 100%);
  z-index: 2;
}

.ph-glow {
  position: absolute; top: -100px; right: -100px;
  width: 600px; height: 600px; border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(190,169,135,.09) 0%, transparent 68%);
  pointer-events: none; z-index: 1;
}

.ph-wrap {
  position: relative; z-index: 3;
  width: 100%; max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 32px);
}

.ph-label {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--kja-font-ui); font-size: clamp(0.5rem, 0.8vw, 0.6rem); font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--kja-gold-warm);
  margin-bottom: 16px;
  animation: kjaHeroUp .5s var(--kja-ease) .08s both;
}
.ph-label::before {
  content: ''; display: block; width: 20px; height: 2px;
  background: var(--kja-gold-warm); flex-shrink: 0; border-radius: 1px;
}

.ph-heading {
  font-family: var(--kja-font-heading);
  font-size: clamp(3.2rem, 7vw, 6rem);
  font-weight: 400; line-height: .96; letter-spacing: .01em; color: #fff;
  text-wrap: balance;
  animation: kjaHeroUp .6s var(--kja-ease) .18s both;
}
.ph-heading em { color: var(--kja-gold-warm); font-style: italic; }

.ph-sub {
  font-family: var(--kja-font-ui);
  font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.36);
  margin-top: 20px;
  animation: kjaHeroUp .6s var(--kja-ease) .28s both;
}

.ph-copy {
  font-family: var(--kja-font-body);
  font-size: clamp(0.95rem, 1.8vw, 1.05rem); line-height: 1.72;
  color: rgba(255,255,255,.58);
  max-width: 520px;
  margin-top: 20px;
  animation: kjaHeroUp .6s var(--kja-ease) .28s both;
}

.ph-rule {
  width: 48px; height: 3px;
  background: linear-gradient(90deg, var(--kja-gold), rgba(190,169,135,.12));
  border: none; border-radius: 2px;
  margin-top: 28px;
  animation: kjaHeroUp .5s var(--kja-ease) .36s both;
}

@media(max-width:640px) {
  .kja-page-hero { padding-top: calc(68px + 32px); padding-bottom: 40px; }
  .ph-heading { font-size: clamp(2.6rem, 9vw, 4rem); }
}

/* =================================================================
   SECTION: CTA BANNER (all pages, before footer)
   ================================================================= */

.kja-cta,
.kja-cta * {
  --kja-gold:      #BEA987;
  --kja-gold-hi:   #A19276;
  --kja-gold-warm: #CBBF9F;
  --kja-navy:      #252526;
  --kja-font-heading: 'The Seasons', 'Georgia', serif;
  --kja-font-ui:   'Barlow Condensed', 'Arial Narrow', sans-serif;
  --kja-font-body: 'Barlow', 'Arial', sans-serif;
  --kja-ease:      cubic-bezier(.4,0,.2,1);
  --kja-spring:    cubic-bezier(.32,1.12,.64,1);
  --kja-tm: .24s;
  box-sizing: border-box;
  margin: 0; padding: 0;
}

.kja-cta {
  position: relative;
  background: #F2EFE7;
  padding-block: clamp(64px, 11vw, 112px);
  overflow: hidden;
}

.kja-cta::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #252526 20%, #A19276 80%, transparent);
}

.kja-cta::after {
  content: '';
  position: absolute; bottom: -100px; right: -100px;
  width: 380px; height: 380px; border-radius: 50%;
  border: 56px solid rgba(190,169,135,.09);
  pointer-events: none;
}

.cta-wrap {
  width: 100%; max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 32px);
}

.cta-inner {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  max-width: 700px; margin-inline: auto;
  opacity: 0; transform: translateY(18px);
  transition: opacity .38s cubic-bezier(0,0,.2,1), transform .38s cubic-bezier(0,0,.2,1);
}
.cta-inner.cta-in { opacity: 1; transform: translateY(0); }

.cta-label {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--kja-font-ui); font-size: clamp(0.65rem, 1vw, 0.75rem); font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--kja-gold-hi);
  margin-bottom: 16px;
}
.cta-label::before,
.cta-label::after {
  content: ''; display: block; width: 20px; height: 2px;
  background: var(--kja-gold-hi); flex-shrink: 0; border-radius: 1px;
}

.cta-heading {
  font-family: var(--kja-font-heading);
  font-size: clamp(2.8rem, 5.5vw, 5rem);
  font-weight: 400; line-height: 1.02; letter-spacing: .01em; color: #252526;
  text-wrap: balance;
}

.cta-rule {
  width: 60px; height: 3px;
  background: linear-gradient(90deg, rgba(190,169,135,.12), var(--kja-gold) 50%, rgba(190,169,135,.12));
  border: none; border-radius: 2px;
  margin: 20px auto 24px;
}

.cta-copy {
  font-family: var(--kja-font-body);
  font-size: clamp(0.875rem, 1.8vw, 1rem); line-height: 1.75;
  color: #808285; margin-bottom: 40px; max-width: 540px;
}

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

.cta-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--kja-font-ui); font-size: clamp(0.75rem, 1.2vw, 0.85rem); font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; padding: 14px 30px;
  border-radius: 4px; border: 2px solid transparent; cursor: pointer;
  white-space: nowrap; line-height: 1; text-decoration: none;
  transition: background var(--kja-tm) var(--kja-ease), color var(--kja-tm) var(--kja-ease),
    border-color var(--kja-tm) var(--kja-ease), transform .24s var(--kja-spring), box-shadow var(--kja-tm) var(--kja-ease);
}
.cta-btn:hover  { transform: translateY(-2px); }
.cta-btn:active { transform: translateY(0); }

.cta-btn-primary {
  background: #252526; color: #fff; border-color: #252526;
  box-shadow: 0 2px 8px rgba(37,37,38,.20);
}
.cta-btn-primary:hover {
  background: var(--kja-gold); border-color: var(--kja-gold); color: #252526;
  box-shadow: 0 8px 28px rgba(190,169,135,.36);
}

.cta-btn-ghost {
  background: transparent; color: #252526; border-color: rgba(37,37,38,.30);
}
.cta-btn-ghost:hover {
  background: rgba(37,37,38,.06); border-color: rgba(37,37,38,.60);
}

@media(max-width:560px) {
  .cta-actions { flex-direction: column; }
  .cta-actions .cta-btn { width: 100%; }
}
