:root{
--bg:#ffffff;
--alt:#f6f7f9;
--brand:#111827;
--muted:#6b7280;
--dark:#0f172a;
--accent:#fbbf24;
--ring:rgba(251,191,36,.35);
--border:#e5e7eb;
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
margin:0;
font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
background:var(--bg);
color:var(--brand);
font-size:16px;
line-height:1.55;
}

.wrap{
width:min(1150px,92vw);
margin:auto;
}

/* =========================
   SCROLL-AWARE HEADER
========================= */

.site-header{
position:sticky;
top:0;
z-index:40;
background:rgba(255,255,255,.78);
backdrop-filter:blur(10px);
border-bottom:1px solid rgba(17,24,39,.08);
}

/* =========================
   TOP OPAQUE BAND
========================= */

.top-band{
background:transparent;
border-bottom:none;
}

.top-band-inner{
display:grid;
grid-template-columns:auto 1fr auto;
align-items:center;
gap:1rem;
padding:.9rem 0;
}

/* Center CTA group in header */

.top-cta{
display:flex;
align-items:center;
gap:.6rem;
justify-self:center;
opacity:1;
pointer-events:auto;
}

.top-cta .btn{
padding:.55rem .9rem;
font-size:.85rem;
border-radius:.6rem;
white-space:nowrap;
}

.property-address{
font-weight:700;
font-size:1.05rem;
color:var(--brand);
text-decoration:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
max-width:100%;
}

/* Agent summary (top right) */

.top-agent{
display:flex;
align-items:center;
gap:.65rem;
justify-self:end;
}

.top-agent-avatar{
width:38px;
height:38px;
border-radius:999px;
object-fit:cover;
border:1px solid rgba(17,24,39,.12);
background:#fff;
}

.top-agent-meta{
line-height:1.1;
}

.top-agent-name{
margin:0;
font-weight:700;
font-size:.9rem;
}

.top-agent-office{
margin:.17rem 0;
font-size:.8rem;
color:var(--muted);
}

/* =========================
   NAV OVER HERO
========================= */

.nav-band{
background:rgba(255,255,255,.78);
backdrop-filter:blur(10px);
border-bottom:1px solid rgba(17,24,39,.08);
}

.nav{
display:flex;
align-items:center;
gap:1.25rem;
flex-wrap:wrap;
}

.nav-overlay{
padding:.55rem 0;
}

.nav-overlay a{
font-weight:600;
color:var(--brand);
text-decoration:none;
padding:.25rem 0;
opacity:.85;
}

.nav-overlay a:hover{
opacity:1;
text-decoration:underline;
}

/* =========================
   BUTTONS
========================= */

.btn{
padding:.9rem 1.25rem;
border-radius:.75rem;
font-weight:600;
text-decoration:none;
display:inline-block;
border:1px solid transparent;
cursor:pointer;
}

.btn-lg{
padding:1rem 1.35rem;
font-size:1rem;
}

/* Extra breathing room above primary contact CTA */
#contact .contact-main .btn-lg{
margin-top:1.1rem;
}

.btn-small{
padding:.55rem .9rem;
font-size:.95rem;
}

.btn-primary{
background:linear-gradient(180deg,#fde68a,#fbbf24);
color:#111;
box-shadow:0 10px 22px rgba(251,191,36,.28);
}

.btn-dark{
background:var(--dark);
color:#fff;
}

.btn-outline{
background:transparent;
border-color:rgba(17,24,39,.18);
}

/* =========================
   HERO
========================= */

.hero{
position:relative;
min-height:58vh;
display:flex;
align-items:stretch;
margin-top:-4.2rem;
overflow:visible; /* allow editorial overlap */
}

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

.hero-overlay{display:none}

.hero-content{
position:absolute;
inset:0;
z-index:5;
display:flex;
align-items:flex-end;
justify-content:center;
padding-bottom:0; /* pushes card closer to video edge */
width:100%;
color:#fff;
pointer-events:none;
}

.hero-video-stack{
position:absolute;
inset:0;
overflow:hidden;
}

.hero-video{
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
opacity:0;
transition:opacity 0.4s linear;
z-index:1;
will-change:opacity;
}

.hero-video.is-active{
opacity:1;
}

.hero-video.is-fading-out{
opacity:0;
}

.hero-overhang{
position:relative;
margin-top:-8.5rem;
z-index:30;
pointer-events:auto;
}

/* =========================
   HERO INFO CARD
========================= */

.hero-info-card{
max-width:680px;
margin:0 auto;
padding:1.6rem 1.8rem 2.2rem; /* restored breathing room */
background:rgba(17,17,19,.48);
border-radius:1.15rem;
box-shadow:0 20px 48px rgba(0,0,0,.42);
backdrop-filter:blur(10px);
color:#fff;
border:1px solid rgba(255,255,255,.06);
position:relative;
overflow:visible;
}


.hero-info-card{
margin-bottom:.2rem; 
pointer-events:auto;
}

.hero-kicker{
margin:0 0 .25rem;
text-transform:uppercase;
letter-spacing:.18em;
font-size:.72rem;
color:rgba(229,231,235,.9);
text-align:center;
}

.hero-title{
margin:0 0 .25rem;
font-family:"Playfair Display";
font-size:clamp(2.05rem,3.6vw,2.9rem);
line-height:1.12;
color:#fff;
text-align:center;
}

.hero-sub{
margin:0 0 .55rem;
font-size:clamp(.95rem,2.4vw,1.05rem);
line-height:1.45;
color:rgba(255,255,255,.65);
max-width:48ch;
margin-left:auto;
margin-right:auto;
text-align:center;
}


/* =========================
   HERO STATS (INFO TILES)
========================= */

.hero-stats{
display:grid;
grid-template-columns:repeat(4, 1fr); /* always one row */
gap:clamp(.45rem, 1.2vw, .7rem);
max-width:clamp(360px, 70vw, 520px);
margin:-1.6rem auto 0;
position:relative;
z-index:35;
justify-content:center;
}

/* Individual stat tile */
.hero-stat{
display:flex;
flex-direction:column;
justify-content:center;
text-align:center;
padding:clamp(.45rem, 1vw, .65rem) clamp(.4rem, 1vw, .6rem);
background:rgba(14,14,16,.96);
border-radius:.6rem; /* smaller than buttons */
border:1px solid rgba(255,255,255,.1);
backdrop-filter:none;
box-shadow:
  0 8px 18px rgba(0,0,0,.32),
  0 1px 4px rgba(0,0,0,.25);
}

/* Number */
.hero-stat-num{
font-family:"Playfair Display";
font-size:clamp(1.05rem, 2.6vw, 1.45rem);
font-weight:700;
line-height:1.05;
color:rgba(255,255,255,.95);
}

/* Label */
.hero-stat-label{
margin-top:.1rem;
font-size:clamp(.6rem, 1.6vw, .75rem);
letter-spacing:.08em;
text-transform:uppercase;
color:rgba(255,255,255,.65);
}

/* =========================
   CTA ROW
========================= */

.cta-row{
display:flex;
justify-content:center;
gap:1rem;
padding:2.2rem 0 .8rem;
flex-wrap:wrap;
}

/* =========================
   HERO FEATURES HEADER
========================= */

.hero-features-header{
max-width:72ch;
margin:0 auto 2.2rem;
text-align:center;
}

.hero-features-header h2{
margin:0 0 .5rem;
font-family:"Playfair Display";
font-size:clamp(1.8rem,3vw,2.3rem);
}

.hero-features-header p{
margin:0;
font-size:1.05rem;
line-height:1.55;
color:var(--muted);
}

/* =========================
   SECTIONS
========================= */

.section{
padding:3.4rem 0;
}

.section.alt{
background:var(--alt);
}

h1,h2,h3{
line-height:1.15;
margin:0 0 .75rem;
}

h2{
font-family:"Playfair Display";
font-size:clamp(1.6rem,2.6vw,2.2rem);
}

p{
margin:.5rem 0 0;
color:var(--brand);
}

/* =========================
   SECTION HEADERS
========================= */

.section-header{
  max-width:72ch;
  margin:0 auto 1.6rem;
  text-align:center;
}

.section-header h2{
  margin:0 0 .45rem;
  font-family:"Playfair Display";
  font-size:clamp(1.7rem,2.8vw,2.25rem);
}

.section-sub{
  margin:0;
  font-size:1rem;
  line-height:1.55;
  color:var(--muted);
}

/* =========================
   HERO FEATURES → VIDEO TIGHTEN
========================= */

/* Reduce bottom padding of section before video */
.section + .section-video{
  padding-top: 0.5rem;
}

/* =========================
   HERO FEATURES (HIGHLIGHTS) TIGHTEN
========================= */

#highlights.section{
  padding-bottom: 2.0rem;
}

/* =========================
   CONTENT RAIL
========================= */

.content-rail{
max-width:72ch;
margin-left:auto;
margin-right:auto;
}

/* =========================
   FEATURE CARDS
========================= */

.grid-3{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:1.2rem;
}

.card{
background:#fff;
border-radius:1rem;
padding:1.1rem 1.1rem 1.2rem;
border:1px solid rgba(17,24,39,.06);
box-shadow:0 10px 26px rgba(0,0,0,.06);
display:flex;
flex-direction:column;
gap:.65rem;
}

.card-image{
width:100%;
border-radius:.75rem;
}

/* =========================
   GALLERY
========================= */

.gallery-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:.75rem;
padding:0;
list-style:none;
margin:1rem 0 0;
}

#gallery .gallery-grid{
  max-width:72ch;
  margin-left:auto;
  margin-right:auto;
}

.gallery-item{
all:unset;
display:block;
cursor:zoom-in;
}

.gallery-item img{
width:100%;
aspect-ratio:4 / 3;
object-fit:cover;
border-radius:.6rem;
box-shadow:0 10px 26px rgba(0,0,0,.12);
}

/* =========================
   GALLERY COLLAPSE / EXPAND
========================= */

/* =========================
   GALLERY HEADER
========================= */

.gallery-header{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.25rem;
  max-width:72ch;
  margin:0 auto .75rem;
  text-align:left;
}

.gallery-header h2{
  margin:0;
  margin-left:0;
  margin-right:0;
  max-width:none;
  text-align:left;
}

.gallery-toggle{
  display:block;
  margin:1.1rem 0 0;
  max-width:72ch;
  text-align:left;

  background:none;
  border:none;
  padding:0;
  font:inherit;
  font-weight:600;
  color:var(--accent);
  cursor:pointer;
}

.gallery-toggle:hover{
  text-decoration:underline;
}

/* collapsed state */
.gallery-grid.is-collapsed li{
  display:none;
}

/* show first N items only */
.gallery-grid.is-collapsed li:nth-child(-n+8){
  display:block;
}

.gallery-grid.is-preview {
  position: relative;
}

/* =========================
   GALLERY MODE SYSTEM
========================= */

.gallery-mode{
  position:relative;
}

/* Preview = editorial */
.gallery-mode-preview{
  opacity:1;
}

/* Full gallery = canonical */
.gallery-mode-full{
  opacity:1;
}

/* Soft contextual handoff */
.gallery-mode.is-transitioning{
  pointer-events:none;
  opacity:0.92;
  transition:opacity .28s ease;
}

/* =========================
   LIGHTBOX
========================= */

.lightbox{
position:fixed;
inset:0;
background:rgba(0,0,0,.9);
display:none;
place-items:center;
z-index:50;
}

.lightbox.active{display:grid}

#lb-img{
max-width:92vw;
max-height:92vh;
}

.lb-close,.lb-prev,.lb-next{
position:absolute;
background:#111;
color:#fff;
border:none;
font-size:2rem;
padding:.4rem .7rem;
cursor:pointer;
}

.lb-close{top:1rem;right:1rem}
.lb-prev{left:1rem}
.lb-next{right:1rem}

.success-modal-backdrop{
position:fixed;
inset:0;
background:rgba(0,0,0,.65);
display:grid;
place-items:center;
z-index:60;
}

.success-modal{
background:#fff;
border-radius:1.2rem;
padding:2.2rem 2.4rem;
max-width:420px;
width:92%;
text-align:center;
box-shadow:0 30px 80px rgba(0,0,0,.35);
}

.success-modal h2{
margin:0 0 .6rem;
font-family:"Playfair Display";
}

.success-modal p{
margin:.4rem 0;
}

.success-meta{
font-size:.9rem;
color:var(--muted);
margin-bottom:1.4rem;
}

/* =========================
   DESCRIPTION
========================= */

.features-list{
margin:0 auto;
padding-left:1.1rem;
columns:2;
column-gap:2.2rem;
max-width:72ch;
}

.features-list li{
break-inside:avoid;
padding:.25rem 0;
color:var(--muted);
}

.listing-description{
color:var(--brand);
max-width:72ch;
margin:0 auto;
line-height:1.7;
font-size:1.02rem;
position:relative;
}

.listing-description-body{
overflow:hidden;
transition:max-height .45s ease, opacity .35s ease;
}

.listing-description.is-collapsed .listing-description-body{
max-height:8.5em;
opacity:.98;
}

.listing-description:not(.is-collapsed) .listing-description-body{
max-height:200vh;
opacity:1;
}

.listing-description.is-collapsed::after{
content:"";
position:absolute;
left:0;
right:0;
bottom:3.2rem;
height:3.5rem;
background:linear-gradient(to bottom,rgba(255,255,255,0),var(--bg));
pointer-events:none;
}

.description-toggle{
margin-top:1.4rem;
background:none;
border:none;
padding:0;
font:inherit;
font-weight:600;
color:var(--accent);
cursor:pointer;
}

.description-toggle:hover{text-decoration:underline}

.ornamental-divider{
border:0;
height:1px;
background:linear-gradient(90deg,transparent,rgba(17,24,39,.18),transparent);
margin:2rem 0 1.6rem;
}

/* =========================
   READABLE CONTENT ALIGNMENT
========================= */

.section h2,
.section h3{
max-width:72ch;
margin-left:auto;
margin-right:auto;
}

.section p,
.section ul{
max-width:72ch;
margin-left:auto;
margin-right:auto;
}

/* =========================
   GALLERY HEADER FIX
========================= */

.gallery-header h2{
  margin-left:0;
  margin-right:0;
}

/* =========================
   SCHOOLS SECTION
========================= */

.schools-intro{
  margin:1.1rem auto 1.6rem;
  max-width:72ch;
  color:var(--muted);
  font-size:.95rem;
  text-align:center;
}

/* Grid container */
.schools-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.4rem;
  margin-top:1.8rem;
}

/* Individual school card */
.school-card{
  background:#fff;
  border-radius:1rem;
  padding:1.3rem 1.4rem 1.45rem;
  border:1px solid rgba(17,24,39,.06);
  box-shadow:0 12px 28px rgba(0,0,0,.08);
  display:flex;
  flex-direction:column;
  gap:.65rem;
}

/* Card header (level + rating) */
.school-card-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:.2rem;
}

/* Level label */
.school-level{
  font-size:.7rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--muted);
}

/* Rating badge */
.school-rating{
  font-size:.75rem;
  font-weight:700;
  padding:.35rem .55rem;
  border-radius:.5rem;
  background:#ecfeff;
  color:#0369a1;
  border:1px solid rgba(3,105,161,.18);
}

/* Positive / above-average variant */
.badge-positive{
  background:#ecfeff;
  color:#0369a1;
  border-color:rgba(3,105,161,.18);
}

/* School name */
.school-name{
  margin:.1rem 0 .15rem;
  font-size:1.05rem;
  font-weight:700;
  color:var(--brand);
}

/* Meta line */
.school-meta{
  margin:0 0 .35rem;
  font-size:.85rem;
  color:var(--muted);
  line-height:1.45;
}

/* Stats list */
.school-stats{
  margin:.4rem 0 .25rem;
  padding-left:1rem;
  list-style:disc;
  color:var(--muted);
  font-size:.88rem;
}

.school-stats li{
  padding:.2rem 0;
}

/* Highlight paragraph */
.school-highlights{
  margin-top:.4rem;
  font-size:.92rem;
  line-height:1.55;
  color:var(--brand);
}

/* Footnote */
.schools-footnote{
  margin:2rem auto 0;
  max-width:72ch;
  font-size:.8rem;
  color:var(--muted);
  text-align:center;
}

/* =========================
   RESPONSIVE
========================= */

@media(max-width:900px){
  .schools-grid{
    grid-template-columns:1fr;
    gap:1.1rem;
  }

  .school-card{
    padding:1.2rem 1.25rem 1.35rem;
  }
}

/* =========================
   VIDEO EMBED
========================= */

.video-embed{
  max-width:72ch;
  margin:0 auto;
  border-radius:1.1rem;
  overflow:hidden;
  background:#000;
  box-shadow:
    0 18px 48px rgba(0,0,0,.22),
    0 6px 16px rgba(0,0,0,.14);
}


/* =========================
   VIDEO SECTION SPACING TIGHTEN
========================= */

.section-video{
  padding-top:3.4rem;
  padding-bottom:3.2rem;
}

.section-video .video-embed{
  margin-top:0;
  margin-bottom:0;
}

/* Anchor offset for hash navigation */
#video {
  scroll-margin-top: 75px;
}

/* =========================
   MAP
========================= */

.map-embed {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  box-shadow:
    0 10px 30px rgba(0,0,0,0.12),
    0 2px 8px rgba(0,0,0,0.08);
  background: #f5f5f5;
}

/* Maintain aspect ratio */
.map-embed::before {
  content: "";
  display: block;
  padding-top: 56.25%; /* 16:9 */
}

.map-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.map-embed iframe {
  filter: saturate(0.95) contrast(0.98);
}

.map-embed iframe {
  filter: grayscale(0.1) contrast(0.95);
}

.map-js {
  width: 100%;
  height: 420px;
  border-radius: 1.1rem;
  background: #f5f5f5;
  box-shadow:
    0 10px 30px rgba(0,0,0,0.12),
    0 2px 8px rgba(0,0,0,0.08);
}

/* =========================
   MAP WRAPPER + DIRECTIONS CTA
========================= */

.map-wrapper{
  position:relative;
}

/* Zillow-style floating CTA */
.map-directions-btn{
  position:absolute;
  bottom:14px;
  right:14px;

  padding:.65rem .9rem;
  border-radius:.7rem;

  background:#fff;
  color:#111827;
  font-weight:600;
  font-size:.9rem;
  text-decoration:none;

  border:1px solid rgba(17,24,39,.18);
  box-shadow:
    0 10px 26px rgba(0,0,0,.18),
    0 2px 6px rgba(0,0,0,.12);

  z-index:5;
  transition:
    transform .15s ease,
    box-shadow .15s ease;
}

.map-directions-btn:hover{
  transform:translateY(-1px);
  box-shadow:
    0 14px 32px rgba(0,0,0,.22),
    0 4px 10px rgba(0,0,0,.16);
}

/* =========================
   LISTING MAP MARKER (HTML)
========================= */

.listing-marker {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #fff;
  box-shadow:
    0 6px 18px rgba(0,0,0,.35),
    0 2px 6px rgba(0,0,0,.25);
  overflow: hidden;
  border: 3px solid #fff;
}

.listing-marker img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* fallback if image fails */
.listing-marker.is-fallback {
  background: linear-gradient(135deg, #111827, #374151);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: "Playfair Display", serif;
  font-size: 1.1rem;
  font-weight: 700;
}

/* =========================
   VIDEO FOCUS MODE
========================= */

.video-focus-active .video-embed{
  transform:scale(1.015);
  box-shadow:
    0 30px 70px rgba(0,0,0,.35),
    0 10px 24px rgba(0,0,0,.25);
}

.video-embed{
  transition:
    transform .35s ease,
    box-shadow .35s ease;
}

/* subtle ambient dim */
/* DISABLED: keep focus effects without page dim */
.video-focus-active::before{
  content:none;
}

/* =========================
   CONTACT FOCUS PULSE
========================= */

.contact-focus-active #contact .contact-card{
  transform:scale(1.015);
  box-shadow:
    0 30px 70px rgba(0,0,0,.28),
    0 10px 24px rgba(0,0,0,.18);
}

#contact .contact-card{
  transition:
    transform .3s ease,
    box-shadow .3s ease;
}

/* =========================
   CONTACT
========================= */

.contact-card{
background:#fff;
border-radius:1.1rem;
padding:2.2rem;
box-shadow:0 16px 44px rgba(0,0,0,.12);
border:1px solid rgba(17,24,39,.06);
}

/* Agent card (bottom contact area) */

.agent-card{
background:var(--alt);
border-radius:1rem;
padding:1.2rem;
border:1px solid rgba(17,24,39,.08);
}

.agent-top{
display:flex;
align-items:center;
gap:.9rem;
}

.agent-avatar{
width:96px;
height:96px;
border-radius:999px;
object-fit:cover;
border:1px solid rgba(17,24,39,.14);
background:#fff;
flex-shrink:0;
}

.agent-meta{
line-height:1.15;
}

.agent-label{
margin:0 0 .25rem;
font-size:.72rem;
letter-spacing:.14em;
font-weight:700;
color:var(--muted);
text-transform:uppercase;
}

.agent-name{
margin:0;
font-weight:800;
font-size:1.05rem;
color:var(--brand);
}

.agent-office{
margin:.2rem 0 0;
color:var(--muted);
font-size:.95rem;
}

.agent-actions{
display:flex;
flex-wrap:wrap;
gap:.6rem;
margin-top:1rem;
}

.agent-pill{
display:inline-flex;
align-items:center;
justify-content:center;
padding:.65rem .85rem;
border-radius:999px;
background:#fff;
border:1px solid rgba(17,24,39,.14);
color:var(--brand);
text-decoration:none;
font-weight:600;
font-size:.95rem;
line-height:1;
}

.agent-pill:hover{
border-color:rgba(17,24,39,.25);
}

/* Standalone agent card above contact form */

.agent-card-standalone{
max-width:none;
margin:0;
background:#f8fafc;
border-radius:1.4rem;
padding:2rem 2.1rem;
box-shadow:0 22px 60px rgba(0,0,0,.12);
border:1px solid rgba(17,24,39,.08);
}

.contact-main{
padding-top:.2rem;
}

.contact-grid{
display:grid;
grid-template-columns:480px 1fr;
gap:2.8rem;
align-items:start;
}

.lead-form{
display:grid;
grid-template-columns:1fr 1fr;
gap:.9rem;
}

.lead-form input,
.lead-form textarea{
width:100%;
padding:.9rem 1rem;
border-radius:.85rem;
border:1px solid rgba(17,24,39,.14);
font:inherit;
}

.lead-form textarea{
grid-column:1 / -1;
resize:vertical;
min-height:140px;
}

.lead-form button{
grid-column:1 / -1;
}

/* =========================
   FOOTER SIGNATURE
========================= */

.site-footer{
padding:4.5rem 0 4.2rem;
background:
  radial-gradient(circle at top, rgba(255,255,255,.08), rgba(0,0,0,0) 45%),
  linear-gradient(180deg,#0b0f16,#020409);
color:#e5e7eb;
}

.footer-inner{
display:flex;
flex-direction:column;
align-items:center;
gap:1.8rem;
text-align:center;
}

/* Text block */
.footer-signature{
display:flex;
flex-direction:column;
gap:.35rem;
margin-bottom:.8rem;
}

/* Small intro line */
.footer-crafted{
margin:0;
font-size:.75rem;
letter-spacing:.22em;
text-transform:uppercase;
color:rgba(229,231,235,.6);
}

/* Agent name = hero */
.footer-agent{
margin:0;
font-family:"Playfair Display";
font-size:1.9rem;
font-weight:700;
color:#f9fafb;
}

.footer-byline{
margin:0;
font-size:1.05rem;
color:rgba(229,231,235,.75);
}

.footer-location{
margin:0;
font-size:.95rem;
color:rgba(229,231,235,.6);
}

.footer-year{
margin-top:.8rem;
font-size:.85rem;
color:rgba(229,231,235,.55);
}

.footer-logo{
display:block;
margin:1.8rem auto 0;
width:96px;
height:auto;
opacity:.9;
filter:drop-shadow(0 10px 28px rgba(0,0,0,.6));
}

.footer-byline-link{
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition:
    border-color .2s ease,
    color .2s ease;
}

.footer-byline-link:hover{
  border-bottom-color: currentColor;
  color: #f9fafb;
}

/* =========================
   RESPONSIVE
========================= */

@media(max-width:900px){
.top-agent-meta{
text-align:right;
}
.top-cta{
display:none;
}
.top-agent{
margin-left:auto;
}
.grid-3{grid-template-columns:1fr}
.gallery-grid{grid-template-columns:repeat(2,1fr)}
.features-list{columns:1}
.property-address{max-width:85vw;font-size:1rem}
.top-agent-avatar{width:34px;height:34px}
.nav-overlay{gap:1rem}
.lead-form{grid-template-columns:1fr}
.contact-grid{
grid-template-columns:1fr;
}
}
