/* ==========================================================================
   ENGEL & VÖLKERS — BRAND STYLESHEET
   Jeff Nield · Vancouver Island North
   v2.0 — Complete styles for dynamic WordPress theme
   ========================================================================== */

/* 1. DESIGN TOKENS */
:root {
  --ev-red: #E60000;
  --ev-red-dark: #C00000;
  --ev-red-light: #FF1A1A;
  --black: #000000;
  --charcoal: #1A1A1A;
  --dark-grey: #2C2C2C;
  --mid-grey: #6B6B6B;
  --light-grey: #A0A0A0;
  --silver: #E8E8E8;
  --off-white: #F5F5F3;
  --white: #FFFFFF;
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Figtree', 'Helvetica Neue', sans-serif;
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
}

/* 2. GLOBAL */
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { font-family: var(--font-body); color: var(--charcoal); background: var(--white); overflow-x: hidden; line-height: 1.6; }
::selection { background: var(--ev-red); color: var(--white); }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, .entry-title { font-family: var(--font-display); font-weight: 300; letter-spacing: -0.01em; }

/* 3. GP OVERRIDES — NUCLEAR: targets every known GeneratePress container wrapper */
/* GP wraps content in: #page > .site-content > .content-area > .site-main > article > .inside-article > .entry-content */
/* GP also adds: .grid-container, .grid-parent, .separate-containers, .one-container */

/* Kill ALL max-width and padding constraints on our pages */
body.home #page,
body.home .site-content,
body.home .content-area,
body.home .site-main,
body.home .site-main > *,
body.home article,
body.home .inside-article,
body.home .entry-content,
body.home .grid-container,
body.page-id-10 #page,
body.page-id-10 .site-content,
body.page-id-10 .content-area,
body.page-id-10 .site-main,
body.page-id-10 article,
body.page-id-10 .inside-article,
body.page-id-10 .entry-content,
body.page-id-10 .grid-container,
body.ev-homepage #page,
body.ev-homepage .site-content,
body.ev-homepage .content-area,
body.ev-homepage .site-main,
body.ev-homepage article,
body.ev-homepage .inside-article,
body.ev-homepage .entry-content,
body.ev-homepage .grid-container,
body.single-property #page,
body.single-property .site-content,
body.single-property .content-area,
body.single-property .site-main,
body.single-property article,
body.single-property .inside-article,
body.single-property .entry-content,
body.single-property .grid-container,
body.ev-single-property #page,
body.ev-single-property .site-content,
body.ev-single-property .content-area,
body.ev-single-property .site-main,
body.ev-single-property article,
body.ev-single-property .inside-article,
body.ev-single-property .entry-content,
body.ev-single-property .grid-container,
body.post-type-archive-property #page,
body.post-type-archive-property .site-content,
body.post-type-archive-property .content-area,
body.post-type-archive-property .site-main,
body.post-type-archive-property article,
body.post-type-archive-property .inside-article,
body.post-type-archive-property .entry-content,
body.post-type-archive-property .grid-container,
body.ev-property-archive #page,
body.ev-property-archive .site-content,
body.ev-property-archive .content-area,
body.ev-property-archive .site-main,
body.ev-property-archive article,
body.ev-property-archive .inside-article,
body.ev-property-archive .entry-content,
body.ev-property-archive .grid-container {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  border: none !important;
  box-shadow: none !important;
}

/* Hide GP's default header — we use our own ev-nav on ALL our pages */
body.home .site-header,
body.ev-homepage .site-header,
body.single-property .site-header,
body.ev-single-property .site-header,
body.post-type-archive-property .site-header,
body.ev-property-archive .site-header,
body.home #site-navigation,
body.ev-homepage #site-navigation,
body.single-property #site-navigation,
body.post-type-archive-property #site-navigation,
body.home .main-navigation,
body.ev-homepage .main-navigation,
body.single-property .main-navigation,
body.post-type-archive-property .main-navigation,
body.home .top-bar,
body.ev-homepage .top-bar,
body.single-property .top-bar,
body.post-type-archive-property .top-bar,
body.home .navigation-branding,
body.ev-homepage .navigation-branding,
body.single-property .navigation-branding,
body.post-type-archive-property .navigation-branding {
  display: none !important;
}

/* Hide GP's default footer — we render our own .ev-footer */
body.home .site-footer,
body.ev-homepage .site-footer,
body.home .site-info,
body.ev-homepage .site-info,
body.home footer.site-info,
body.ev-homepage footer.site-info,
body.single-property .site-footer,
body.ev-single-property .site-footer,
body.single-property .site-info,
body.ev-single-property .site-info,
body.post-type-archive-property .site-footer,
body.ev-property-archive .site-footer,
body.post-type-archive-property .site-info,
body.ev-property-archive .site-info {
  display: none !important;
}

/* Hide GP page title (we render our own) */
body.home .page-header,
body.ev-homepage .page-header,
body.home .entry-header,
body.ev-homepage .entry-header,
body.single-property .page-header,
body.single-property .entry-header,
body.post-type-archive-property .page-header,
body.post-type-archive-property .entry-header {
  display: none !important;
}

/* Kill GP separate-containers spacing */
body.home .separate-containers .inside-article,
body.ev-homepage .separate-containers .inside-article,
body.single-property .separate-containers .inside-article,
body.post-type-archive-property .separate-containers .inside-article {
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Kill GP one-container spacing */
body.home .one-container .inside-article,
body.ev-homepage .one-container .inside-article {
  padding: 0 !important;
  margin: 0 !important;
}

/* Global overflow */
#page { overflow-x: hidden; }

/* THE FIX: GP sets .site-content to display:flex which makes sections sit side-by-side */
.site-content {
  display: block !important;
}

.site-content { overflow-x: hidden; }

/* 4. PRELOADER */
.preloader { position: fixed; inset: 0; z-index: 10000; background: var(--black); display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 2rem; }
.preloader.done { animation: preloaderExit 1s var(--ease-out-expo) 0.2s forwards; }
.preloader-villa { width: 48px; height: 48px; opacity: 0; animation: plFadeIn 0.6s ease 0.3s forwards; }
.preloader-villa svg { width: 100%; height: 100%; }
.preloader-bar { width: 160px; height: 1px; background: var(--dark-grey); position: relative; overflow: hidden; opacity: 0; animation: plFadeIn 0.4s ease 0.5s forwards; }
.preloader-bar::after { content: ''; position: absolute; left: 0; top: 0; height: 100%; width: 0; background: var(--ev-red); animation: plBarFill 1.8s var(--ease-out-expo) 0.6s forwards; }

/* 5. BUTTONS */
.btn-red, .ev-btn-primary {
  display: inline-block; background: var(--ev-red); color: var(--white); padding: 1rem 2.8rem;
  font-family: var(--font-body); font-size: 0.72rem; font-weight: 600; letter-spacing: 3px;
  text-transform: uppercase; text-decoration: none; border: none; cursor: pointer;
  transition: all 0.4s var(--ease-out-quart); position: relative; overflow: hidden;
}
.btn-red::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent); transform: translateX(-100%); transition: transform 0.6s ease; }
.btn-red:hover::before { transform: translateX(100%); }
.btn-red:hover { background: var(--ev-red-dark); color: var(--white); transform: translateY(-2px); box-shadow: 0 12px 40px rgba(230,0,0,0.25); text-decoration: none; }

.btn-ghost { display: inline-flex; align-items: center; gap: 0.8rem; color: var(--white); font-family: var(--font-body); font-size: 0.72rem; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; text-decoration: none; transition: color 0.3s ease; }
.btn-ghost:hover { color: var(--ev-red); text-decoration: none; }
.btn-ghost-arrow { width: 32px; height: 1px; background: var(--ev-red); position: relative; transition: width 0.4s var(--ease-out-expo); }
.btn-ghost:hover .btn-ghost-arrow { width: 48px; }
.btn-ghost-arrow::after { content: ''; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-right: 1px solid var(--ev-red); border-top: 1px solid var(--ev-red); transform: rotate(45deg); }

.accent-bar { height: 4px; background: var(--ev-red); width: 0; }
.accent-bar.visible { animation: barStretch 1.2s var(--ease-out-expo) forwards; }

/* 6. SECTION UTILITIES */
.section-pad { padding: 7rem 3.5rem; }
.section-header { margin-bottom: 4rem; }
.section-eyebrow { display: inline-flex; align-items: center; gap: 0.8rem; margin-bottom: 1rem; }
.section-eyebrow-line { width: 24px; height: 2px; background: var(--ev-red); }
.section-eyebrow-text { font-family: var(--font-body); font-size: 0.65rem; font-weight: 600; letter-spacing: 4px; text-transform: uppercase; color: var(--ev-red); }
.section-title { font-family: var(--font-display); font-size: clamp(2rem, 3.5vw, 3rem); font-weight: 300; line-height: 1.15; color: var(--charcoal); letter-spacing: -0.01em; }
.section-title.white { color: var(--white); }

/* 7. HERO */
.hero { height: 100vh; min-height: 700px; position: relative; display: flex; align-items: center; background: var(--black); overflow: hidden;}
.hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.05); animation: heroReveal 2s var(--ease-out-expo) 2.4s forwards; }
.hero-bg::before { content: ''; position: absolute; inset: 0; background: linear-gradient(170deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.35) 40%, rgba(0,0,0,0.65) 100%); z-index: 1; }
.hero-bg::after { content: ''; position: absolute; top: -30%; right: -10%; width: 60%; height: 160%; background: radial-gradient(ellipse, rgba(230,0,0,0.04) 0%, transparent 70%); animation: ambientDrift 12s ease-in-out infinite alternate; z-index: 2; }
.hero-content { position: relative; z-index: 3; padding: 0 3.5rem; max-width: 820px; }
.hero-eyebrow { display: inline-flex; align-items: center; gap: 1rem; margin-bottom: 2rem; opacity: 0; transform: translateY(20px); animation: fadeUp 0.8s var(--ease-out-expo) 2.6s forwards; }
.hero-eyebrow-line { width: 40px; height: 2px; background: var(--ev-red); }
.hero-eyebrow-text { font-family: var(--font-body); font-size: 0.7rem; font-weight: 600; letter-spacing: 4px; text-transform: uppercase; color: var(--white); }
.hero h1 { font-family: var(--font-display); font-size: clamp(3.2rem, 6.5vw, 6rem); font-weight: 300; color: var(--white); line-height: 1.05; letter-spacing: -0.02em; opacity: 0; transform: translateY(40px); animation: fadeUp 1s var(--ease-out-expo) 2.8s forwards; }
.hero h1 em { font-style: italic; font-weight: 400; }
.hero h1 .accent { color: var(--ev-red); }
.hero-desc { font-size: 1.05rem; color: rgba(255,255,255,0.65); font-weight: 300; line-height: 1.8; max-width: 600px; margin-top: 2rem; opacity: 0; transform: translateY(30px); animation: fadeUp 0.8s var(--ease-out-expo) 3.1s forwards; }
.hero-actions { display: flex; align-items: center; gap: 2rem; margin-top: 3rem; opacity: 0; transform: translateY(20px); animation: fadeUp 0.8s var(--ease-out-expo) 3.3s forwards; }
.hero-scroll { position: absolute; bottom: 3rem; right: 3.5rem; z-index: 3; display: flex; align-items: center; gap: 1.2rem; opacity: 0; animation: fadeUp 0.8s ease 3.8s forwards; }
.hero-scroll-text { font-size: 0.6rem; letter-spacing: 4px; text-transform: uppercase; color: rgba(255,255,255,0.4); }
.hero-scroll-line { width: 1px; height: 50px; background: rgba(255,255,255,0.15); position: relative; overflow: hidden; }
.hero-scroll-line::after { content: ''; position: absolute; top: -100%; left: 0; width: 100%; height: 100%; background: var(--ev-red); animation: scrollLine 2s ease infinite; }

/* 8. STATS */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--charcoal); }
.stat { padding: 3.5rem 2rem; text-align: center; position: relative; opacity: 0; transform: translateY(20px); }
.stat.visible { animation: fadeUp 0.6s var(--ease-out-expo) forwards; }
.stat:nth-child(2).visible { animation-delay: 0.1s; }
.stat:nth-child(3).visible { animation-delay: 0.2s; }
.stat:nth-child(4).visible { animation-delay: 0.3s; }
.stat::after { content: ''; position: absolute; right: 0; top: 25%; height: 50%; width: 1px; background: rgba(255,255,255,0.08); }
.stat:last-child::after { display: none; }
.stat-num { font-family: var(--font-display); font-size: 2.6rem; font-weight: 300; color: var(--white); line-height: 1; }
.stat-num .red { color: var(--ev-red); }
.stat-label { font-family: var(--font-body); font-size: 0.65rem; font-weight: 500; letter-spacing: 3px; text-transform: uppercase; color: var(--light-grey); margin-top: 0.8rem; }

/* 9. LISTINGS */
.listings { background: var(--off-white); }
.listings-header { display: flex; justify-content: space-between; align-items: flex-end; }
.listings-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.listing { position: relative; overflow: hidden; cursor: pointer; opacity: 0; transform: translateY(40px); transition: opacity 0.8s var(--ease-out-expo), transform 0.8s var(--ease-out-expo); }
.listing.visible { opacity: 1; transform: translateY(0); }
.listing:nth-child(2) { transition-delay: 0.12s; }
.listing:nth-child(3) { transition-delay: 0.24s; }
.listing a { text-decoration: none; color: inherit; display: block; }
.listing a:hover { text-decoration: none; }
.listing-img { width: 100%; aspect-ratio: 4 / 5; overflow: hidden; position: relative; }
.listing-img-inner { width: 100%; height: 100%; background-size: cover; background-position: center; transition: transform 0.8s var(--ease-out-expo); }
.listing:hover .listing-img-inner { transform: scale(1.06); }
.listing-red-line { height: 3px; background: var(--ev-red); width: 0; transition: width 0.6s var(--ease-out-expo); }
.listing:hover .listing-red-line { width: 100%; }
.listing-info { padding: 1.5rem 0 0.5rem; }
.listing-price { font-family: var(--font-display); font-size: 1.6rem; font-weight: 400; color: var(--charcoal); }
.listing-address { font-size: 0.85rem; color: var(--mid-grey); margin-top: 0.3rem; font-weight: 400; }
.listing-meta { display: flex; gap: 1.5rem; margin-top: 0.8rem; font-size: 0.72rem; color: var(--light-grey); letter-spacing: 1px; text-transform: uppercase; font-weight: 500; }
.listing-tag { position: absolute; top: 1.2rem; left: 1.2rem; z-index: 2; background: var(--ev-red); color: var(--white); font-family: var(--font-body); font-size: 0.6rem; font-weight: 600; letter-spacing: 2.5px; text-transform: uppercase; padding: 0.4rem 1rem; }
.listing--sold .listing-img::after { content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.3); z-index: 1; }
.listing-tag--sold { background: var(--charcoal) !important; }

/* 10. ABOUT */
.about { display: grid; grid-template-columns: 1fr 1fr; min-height: 80vh; }
.about-image { background: linear-gradient(135deg, #1a2e3a 0%, #0d1a22 100%); position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.about-image img, .about-image-photo { width: 100%; height: 100%; object-fit: cover; object-position: center top; opacity: 0; transform: scale(1.05); transition: all 1s var(--ease-out-expo); }
.about-image img.visible, .about-image-photo.visible { opacity: 1; transform: scale(1); }
.about-image::before, .about-image::after { content: ''; position: absolute; width: 80px; height: 80px; border: 1px solid rgba(230,0,0,0.15); z-index: 2; }
.about-image::before { top: 3rem; left: 3rem; border-right: none; border-bottom: none; }
.about-image::after { bottom: 3rem; right: 3rem; border-left: none; border-top: none; }
.about-content { padding: 6rem 5rem; display: flex; flex-direction: column; justify-content: center; }
.about-text { font-size: 1rem; line-height: 1.9; color: var(--mid-grey); font-weight: 300; margin: 1.5rem 0 2.5rem; max-width: 480px; }
.about-credentials { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 1rem; }
.credential { opacity: 0; transform: translateY(20px); transition: all 0.6s var(--ease-out-expo); }
.credential.visible { opacity: 1; transform: translateY(0); }
.credential:nth-child(2).visible { transition-delay: 0.1s; }
.credential:nth-child(3).visible { transition-delay: 0.2s; }
.credential:nth-child(4).visible { transition-delay: 0.3s; }
.credential-line { width: 20px; height: 2px; background: var(--ev-red); margin-bottom: 0.8rem; }
.credential-title { font-weight: 600; font-size: 0.85rem; color: var(--charcoal); margin-bottom: 0.3rem; }
.credential-desc { font-size: 0.78rem; color: var(--light-grey); font-weight: 300; line-height: 1.5; }

/* 11. AREAS */
.areas { background: var(--charcoal); }
.areas .section-eyebrow-text { color: rgba(255,255,255,0.5); }
.areas .section-title { color: var(--white); }
.areas-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.area-card { position: relative; min-height: 420px; overflow: hidden; cursor: pointer; border-right: 1px solid rgba(255,255,255,0.05); }
.area-card:last-child { border-right: none; }
.area-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 0.8s var(--ease-out-expo); }
.area-card:hover .area-bg { transform: scale(1.08); }
.area-bg-1 { background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.75) 100%), url('https://images.ctfassets.net/3g4b24b0tvoz/1a7gPto9LW7J3WQ1elutyI/1f1322ad83d271fc48aacc2766a50fc8/courtenay.jpeg?fm=jpg&w=600&q=80'); background-size: cover; background-position: center; }
.area-bg-2 { background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.75) 100%), url('https://images.ctfassets.net/3g4b24b0tvoz/61fFOykc6lF4BIFbB2xR14/f5363597f4523243eb06e8141258e558/comox.jpeg?fm=jpg&w=600&q=80'); background-size: cover; background-position: center; }
.area-bg-3 { background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.75) 100%), url('https://images.ctfassets.net/3g4b24b0tvoz/7f9zSyRMOS5ri8v7Q2YyI1/8a5c5d519d08812a60f39db423184f7a/cumberland.jpeg?fm=jpg&w=600&q=80'); background-size: cover; background-position: center; }
.area-bg-4 { background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.75) 100%), url('https://images.ctfassets.net/3g4b24b0tvoz/T7aX21hN9Q8Gbe2eQWF3o/5ac374419068a90b2cabb1525eac0297/campbell_river.jpeg?fm=jpg&w=600&q=80'); background-size: cover; background-position: center; }
.area-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 2rem; z-index: 2; }
.area-name { font-family: var(--font-display); font-size: 1.5rem; font-weight: 400; color: var(--white); margin-bottom: 0.3rem; }
.area-count { font-family: var(--font-body); font-size: 0.65rem; letter-spacing: 2px; text-transform: uppercase; color: var(--ev-red); font-weight: 500; }
.area-line { width: 0; height: 2px; background: var(--ev-red); margin-top: 1rem; transition: width 0.6s var(--ease-out-expo); }
.area-card:hover .area-line { width: 60px; }
.area-desc { font-size: 0.82rem; color: rgba(255,255,255,0.5); font-weight: 300; line-height: 1.6; margin-top: 0.8rem; max-height: 0; overflow: hidden; opacity: 0; transition: all 0.5s var(--ease-out-expo); }
.area-card:hover .area-desc { max-height: 80px; opacity: 1; }

/* 12. TESTIMONIALS */
.testimonials { background: var(--white); position: relative; }
.testimonials::before { content: ''; position: absolute; top: 0; left: 3.5rem; width: 1px; height: 100%; background: var(--silver); }
.testimonials-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; }
.testimonial { padding-left: 2.5rem; position: relative; opacity: 0; transform: translateY(30px); transition: all 0.8s var(--ease-out-expo); }
.testimonial.visible { opacity: 1; transform: translateY(0); }
.testimonial:nth-child(2).visible { transition-delay: 0.15s; }
.testimonial::before { content: ''; position: absolute; left: 0; top: 0; width: 2px; height: 0; background: var(--ev-red); transition: height 1s var(--ease-out-expo) 0.3s; }
.testimonial.visible::before { height: 100%; }
.testimonial-quote { font-family: var(--font-display); font-size: 1.25rem; font-weight: 300; font-style: italic; line-height: 1.8; color: var(--charcoal); margin-bottom: 2rem; }
.testimonial-author { font-size: 0.85rem; font-weight: 600; color: var(--charcoal); }
.testimonial-role { font-size: 0.75rem; color: var(--light-grey); font-weight: 400; margin-top: 0.2rem; }

/* 13. SERVICES */
.services { background: var(--off-white); }
.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; }
.service { padding: 2.5rem; background: var(--white); border: 1px solid var(--silver); position: relative; overflow: hidden; opacity: 0; transform: translateY(30px); transition: all 0.7s var(--ease-out-expo); }
.service.visible { opacity: 1; transform: translateY(0); }
.service:nth-child(2).visible { transition-delay: 0.1s; }
.service:nth-child(3).visible { transition-delay: 0.2s; }
.service::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--ev-red); transform: scaleX(0); transform-origin: left; transition: transform 0.5s var(--ease-out-expo); }
.service:hover::before { transform: scaleX(1); }
.service:hover { border-color: transparent; box-shadow: 0 20px 60px rgba(0,0,0,0.06); transform: translateY(-4px); }
.service-icon { width: 40px; height: 40px; margin-bottom: 1.5rem; position: relative; }
.service-icon::before { content: ''; position: absolute; width: 100%; height: 100%; border: 1px solid var(--silver); transform: rotate(45deg); transition: border-color 0.3s ease; }
.service:hover .service-icon::before { border-color: var(--ev-red); }
.service-name { font-family: var(--font-display); font-size: 1.3rem; font-weight: 400; color: var(--charcoal); margin-bottom: 0.8rem; }
.service-desc { font-size: 0.88rem; color: var(--mid-grey); line-height: 1.7; font-weight: 300; }

/* 14. CTA */
.cta { background: var(--black); padding: 8rem 3.5rem; text-align: center; position: relative; overflow: hidden; }
.cta::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 500px; height: 500px; border: 1px solid rgba(230,0,0,0.06); border-radius: 50%; animation: ctaPulse 6s ease infinite; }
.cta-inner { position: relative; z-index: 2; }
.cta .section-title { color: var(--white); font-size: clamp(2.2rem, 4vw, 3.2rem); margin-bottom: 1.5rem; }
.cta-desc { color: var(--light-grey); font-size: 1rem; font-weight: 300; max-width: 480px; margin: 0 auto 3rem; line-height: 1.8; }

/* 15. FOOTER */
.ev-footer { background: var(--charcoal); padding: 5rem 3.5rem 2.5rem; position: relative; }
.ev-footer::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--ev-red); }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1.2fr ; gap: 3rem; margin-bottom: 4rem; }
.footer-brand-name { font-family: var(--font-body); font-weight: 600; font-size: 0.75rem; letter-spacing: 3px; text-transform: uppercase; color: var(--white); margin-bottom: 0.3rem; }
.footer-brand-sub { font-size: 0.68rem; color: var(--light-grey); letter-spacing: 1px; margin-bottom: 1.5rem; }
.footer-desc { font-size: 0.85rem; color: rgba(255,255,255,0.35); line-height: 1.7; font-weight: 300; max-width: 340px; }
.footer-heading { font-family: var(--font-body); font-size: 0.62rem; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--ev-red); margin-bottom: 1.5rem; }
.footer-links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.8rem; }
.footer-links a { font-size: 0.85rem; color: rgba(255,255,255,0.35); font-weight: 300; text-decoration: none; transition: color 0.3s ease; }
.footer-links a:hover { color: var(--white); }
.footer-social { display: flex; gap: 1.5rem; margin-top: 1.5rem; }
.footer-social a { font-size: 0.7rem; letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,0.35); text-decoration: none; transition: color 0.3s ease; font-weight: 500; }
.footer-social a:hover { color: var(--ev-red); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.06); padding-top: 2rem; display: flex; justify-content: space-between; align-items: center; }
.footer-copy { font-size: 0.72rem; color: rgba(255,255,255,0.2); font-weight: 300; }
.footer-ev-badge { display: flex; align-items: center; gap: 0.5rem; font-size: 0.65rem; letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,0.25); font-weight: 500; }
.footer-ev-badge .red-dot { width: 6px; height: 6px; background: var(--ev-red); border-radius: 50%; display: inline-block; }

/* 16. SCROLL REVEAL */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.8s var(--ease-out-expo), transform 0.8s var(--ease-out-expo); }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* 17. PROPERTY DETAIL PAGE */
.property-detail-hero { background: var(--charcoal); padding: 10rem 3.5rem 3rem; position: relative; overflow: hidden; }
.property-detail-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0.5; }
.property-detail-hero-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, var(--white) 0%, rgba(255,255,255,0.6) 100%); }
.property-detail-hero-content { position: relative; z-index: 2; }
.property-detail-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 4rem; max-width: 1100px; margin: 0 auto; }
.property-description { color: var(--mid-grey); font-weight: 300; line-height: 1.9; }
.property-description p { margin-bottom: 1rem; }

/* Quick specs */
.property-quick-specs { display: flex; gap: 2rem; padding: 1.5rem 0; margin-bottom: 2rem; border-top: 1px solid var(--silver); border-bottom: 1px solid var(--silver); }
.quick-spec { display: flex; flex-direction: column; align-items: center; gap: 0.3rem; }
.quick-spec-num { font-family: var(--font-display); font-size: 1.6rem; font-weight: 400; color: var(--charcoal); }
.quick-spec-label { font-size: 0.65rem; letter-spacing: 2px; text-transform: uppercase; color: var(--light-grey); font-weight: 500; }

/* 18. PROPERTY SIDEBAR */
.property-sidebar-card { background: var(--white); border: 1px solid var(--silver); padding: 2rem; position: sticky; top: 6rem; }
.property-sidebar-title { font-family: var(--font-display); font-size: 1.3rem; font-weight: 400; margin-bottom: 1.5rem; color: var(--charcoal); }
.property-sidebar-rows { display: flex; flex-direction: column; }
.sidebar-row { display: flex; justify-content: space-between; padding: 0.8rem 0; border-bottom: 1px solid var(--silver); }
.sidebar-row:last-child { border-bottom: none; }
.sidebar-row-label { font-size: 0.78rem; color: var(--light-grey); text-transform: uppercase; letter-spacing: 1px; font-weight: 500; }
.sidebar-row-value { font-weight: 600; color: var(--charcoal); font-size: 0.88rem; text-align:right;}

/* 19. PHOTO GALLERY */
.property-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; max-width: 1100px; margin: 0 auto; }
.property-gallery-item { overflow: hidden; aspect-ratio: 4 / 3; }
.property-gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease-out-expo); cursor: pointer; }
.property-gallery-item:hover img { transform: scale(1.05); }
.property-gallery-item:first-child { grid-column: 1 / 3; grid-row: 1 / 3; aspect-ratio: auto; }

/* 20. PROPERTIES ARCHIVE */
.properties-hero { background: var(--charcoal); padding: 10rem 3.5rem 4rem; text-align: center; }

/* 21. FILTER TABS */
.property-filters { background: var(--off-white); }
.filter-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--silver); max-width: 1100px; margin: 0 auto; overflow-x: auto; }
.filter-tab { padding: 1rem 1.5rem; font-size: 0.72rem; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; color: var(--mid-grey); text-decoration: none; border-bottom: 2px solid transparent; white-space: nowrap; transition: all 0.3s ease; }
.filter-tab:hover, .filter-tab.active { color: var(--charcoal); border-bottom-color: var(--ev-red); }

/* 22. PAGINATION */
.property-pagination { margin-top: 3rem; text-align: center; }
.property-pagination .nav-links { display: flex; justify-content: center; gap: 0.5rem; }
.property-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 0.8rem; font-size: 0.8rem; font-weight: 500; color: var(--mid-grey); text-decoration: none; border: 1px solid var(--silver); transition: all 0.3s ease; }
.property-pagination .page-numbers.current, .property-pagination .page-numbers:hover { background: var(--ev-red); border-color: var(--ev-red); color: var(--white); }

/* 23. KEYFRAMES */
@keyframes preloaderExit { 0% { clip-path: inset(0 0 0 0); } 100% { clip-path: inset(0 0 100% 0); } }
@keyframes plFadeIn { to { opacity: 1; } }
@keyframes plBarFill { to { width: 100%; } }
@keyframes heroReveal { to { transform: scale(1); } }
@keyframes ambientDrift { from { transform: translate(0,0) rotate(0deg); } to { transform: translate(-5%,3%) rotate(2deg); } }
@keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }
@keyframes scrollLine { 0% { top: -100%; } 50% { top: 100%; } 50.01% { top: -100%; } 100% { top: 100%; } }
@keyframes barStretch { to { width: 100%; } }
@keyframes ctaPulse { 0%, 100% { transform: translate(-50%,-50%) scale(1); opacity: 0.5; } 50% { transform: translate(-50%,-50%) scale(1.15); opacity: 1; } }

/* 24. RESPONSIVE */
@media (max-width: 1024px) {
  .section-pad { padding: 5rem 2rem; }
  .hero-content { padding: 0 2rem; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .listings-grid { grid-template-columns: 1fr; }
  .listings-header { flex-direction: column; align-items: flex-start; gap: 1.5rem; }
  .about { grid-template-columns: 1fr; }
  .about-image { min-height: 350px; }
  .about-content { padding: 4rem 2rem; }
  .areas-grid { grid-template-columns: repeat(2, 1fr); }
  .area-card { border-bottom: 1px solid rgba(255,255,255,0.05); }
  .testimonials-grid { grid-template-columns: 1fr; }
  .testimonials::before { display: none; }
  .services-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .cta { padding: 5rem 2rem; }
  .hero-scroll { display: none; }
  .property-detail-hero { padding: 8rem 2rem 2rem; }
  .property-detail-grid { grid-template-columns: 1fr; gap: 2rem; }
  .property-sidebar-card { position: static; }
  .property-gallery-grid { grid-template-columns: 1fr 1fr; }
  .property-gallery-item:first-child { grid-column: 1 / -1; grid-row: auto; }
  .properties-hero { padding: 8rem 2rem 3rem; }
  .filter-tabs { padding: 0 2rem; }
  .property-quick-specs { flex-wrap: wrap; }
  .ev-nav-text {display: none;}
}

@media (max-width: 640px) {
  .stats { grid-template-columns: 1fr 1fr; }
  .areas-grid { grid-template-columns: 1fr; }
  .about-credentials { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; gap: 1rem; text-align: center; }
  .hero h1 { font-size: 2.6rem; }
  .hero-eyebrow-text { font-size: 0.6rem; letter-spacing: 2px; }
  .property-gallery-grid { grid-template-columns: 1fr; }
  .property-quick-specs { gap: 1rem; }
  .quick-spec { flex: 1; min-width: 60px; }
  .filter-tab { padding: 0.8rem 1rem; font-size: 0.65rem; }
}


/* ==========================================================================
   27. CUSTOM NAV BAR — Logo + Menu
   ========================================================================== */

.ev-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9000;
  padding: 1.2rem 3.5rem;
  background: transparent;
  transition: all 0.4s ease;
}

.ev-nav.scrolled {
  background: rgba(255,255,255,0.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  padding: 0.8rem 3.5rem;
  box-shadow: 0 1px 0 var(--silver);
}

.ev-nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Brand: logo + text */
.ev-nav-brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: var(--white);
  transition: color 0.4s ease;
}

.ev-nav.scrolled .ev-nav-brand {
  color: var(--charcoal);
}

/* Logo image inside brand link */
.ev-nav-brand .ev-logo-img {
  height: 32px !important;
  width: auto !important;
  max-height: 32px;
  object-fit: contain;
  display: block;
}

.ev-nav-text {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}

.ev-nav-name {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.72rem;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.ev-nav-sub {
  font-weight: 400;
  font-size: 0.58rem;
  letter-spacing: 2px;
  opacity: 0.6;
  text-transform: uppercase;
}

/* Nav links */
.ev-nav-links {
  display: flex;
  align-items: center;
  gap: 2.2rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.ev-nav-links li {
  list-style: none;
}

.ev-nav-links a {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--white);
  text-decoration: none;
  position: relative;
  padding-bottom: 4px;
  transition: color 0.3s ease;
}

.ev-nav.scrolled .ev-nav-links a {
  color: var(--charcoal);
}

.ev-nav-links a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background: var(--ev-red);
  transition: width 0.4s var(--ease-out-expo);
}

.ev-nav-links a:hover::after,
.ev-nav-links .current-menu-item a::after {
  width: 0;
}

.ev-nav-links a:hover,
.ev-nav.scrolled .ev-nav-links a:hover {
  color: var(--ev-red);
  text-decoration: none;
}

/* Last nav item styled as CTA button */
.ev-nav-links li:last-child a {
  background: var(--ev-red);
  color: var(--white) !important;
  padding: 0.55rem 1.5rem;
  letter-spacing: 2px;
  transition: background 0.3s ease;
}

.ev-nav-links li:last-child a::after {
  display: none;
}

.ev-nav-links li:last-child a:hover {
  background: var(--ev-red-dark);
  color: var(--white) !important;
}

/* Mobile toggle */
.ev-nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}

.ev-nav-toggle span {
  display: block;
  width: 24px;
  height: 1.5px;
  background: var(--white);
  transition: all 0.3s ease;
}

.ev-nav.scrolled .ev-nav-toggle span {
  background: var(--charcoal);
}

/* Mobile open state */
.ev-nav-links.open {
  display: flex;
}

@media (max-width: 1024px) {
  .ev-nav { padding: 1rem 1.5rem; }
  .ev-nav.scrolled { padding: 0.6rem 1.5rem; }
  .ev-nav-toggle { display: flex; }

  /* Brand: stack logo and text vertically on mobile */
  .ev-nav-brand {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
  }

  .ev-nav-brand .ev-logo-img {
    height: 24px !important;
  }

  .ev-nav-text {
    flex-direction: row;
    gap: 0.4rem;
  }

  .ev-nav-name {
    font-size: 0.6rem !important;
    letter-spacing: 2px;
  }

  .ev-nav-sub {
    font-size: 0.5rem !important;
  }

  /* Dropdown menu */
  .ev-nav-links {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--white);
    flex-direction: column;
    padding: 2rem;
    gap: 0;
    box-shadow: 0 10px 40px rgba(0,0,0,0.1);
    z-index: 9999;
  }

  .ev-nav-links.open {
    display: flex;
  }

  .ev-nav-links a {
    color: var(--charcoal) !important;
    padding: 0.8rem 0;
    display: block;
    font-size: 0.75rem;
  }

  .ev-nav-links li:last-child a {
    margin-top: 0.5rem;
    text-align: center;
  }

  /* Ensure toggle doesn't overlap brand text */
  .ev-nav-inner {
    flex-wrap: nowrap;
  }

  .ev-nav-toggle {
    flex-shrink: 0;
    margin-left: auto;
    padding: 8px;
  }
}


/* ==========================================================================
   28. SERVICES — Redesigned numbered cards (matching reference)
   ========================================================================== */

.services {
  background: var(--off-white);
}

.services .section-title em {
  font-style: italic;
  color: var(--ev-red);
}

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

.service {
  padding: 2.5rem;
  background: var(--white);
  border: 1px solid var(--silver);
  position: relative;
  overflow: hidden;
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.7s var(--ease-out-expo);
}

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

.service:nth-child(2).visible { transition-delay: 0.1s; }
.service:nth-child(3).visible { transition-delay: 0.2s; }

/* Red top bar on hover */
.service::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--ev-red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s var(--ease-out-expo);
}

.service:hover::before {
  transform: scaleX(1);
}

.service:hover {
  border-color: transparent;
  box-shadow: 0 20px 60px rgba(0,0,0,0.06);
  transform: translateY(-4px);
}

/* Step number */
.service-num {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 400;
  color: var(--light-grey);
  margin-bottom: 1.2rem;
  letter-spacing: 1px;
}

/* Icon glyph */
.service-icon-glyph {
  font-size: 2rem;
  color: var(--ev-red);
  margin-bottom: 1.2rem;
  line-height: 1;
}

/* Title */
.service-name {
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--charcoal);
  margin-bottom: 0.8rem;
}

/* Description */
.service-desc {
  font-size: 0.88rem;
  color: var(--mid-grey);
  line-height: 1.7;
  font-weight: 300;
  margin-bottom: 1.5rem;
}

/* CTA link */
.service-cta {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ev-red);
  text-decoration: none;
  transition: color 0.3s ease;
}

.service-cta:hover {
  color: var(--ev-red-dark);
  text-decoration: none;
}

/* Remove old .service-icon diamond (replaced by .service-icon-glyph) */
.service-icon { display: none; }

@media (max-width: 1024px) {
  .services-grid { grid-template-columns: 1fr; }
}


/* ==========================================================================
   29. ABOUT V2 — Reference design (two-column: content + sidebar card)
   ========================================================================== */

.about-v2 {
  background: var(--white);
}

.about-v2-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 5rem;
  max-width: 1100px;
  margin: 0 auto;
  align-items: start;
}

.about-v2 .section-title em {
  font-style: italic;
  color: var(--ev-red);
}

.about-v2-text {
  font-size: 1rem;
  line-height: 1.9;
  color: var(--mid-grey);
  font-weight: 300;
  margin: 1.5rem 0 2rem;
}

.about-v2-quote {
  border-left: 3px solid var(--ev-red);
  padding: 1.2rem 0 1.2rem 1.5rem;
  margin: 0 0 2rem 0;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-style: italic;
  line-height: 1.7;
  color: var(--charcoal);
}

.about-v2-credentials {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.about-v2-credentials li {
  position: relative;
  padding-left: 1.2rem;
  font-size: 0.88rem;
  color: var(--mid-grey);
  font-weight: 400;
  line-height: 1.6;
}

.about-v2-credentials li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55rem;
  width: 6px;
  height: 6px;
  background: var(--ev-red);
  border-radius: 50%;
}

/* Sidebar: photo + card */
.about-v2-sidebar {
  position: sticky;
  top: 6rem;
}

.about-v2-photo-wrap {
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--charcoal);
  margin-bottom: 0;
}

.about-v2-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.about-v2-photo-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 5rem;
  font-style: italic;
  color: rgba(255,255,255,0.1);
}

.about-v2-card {
  background: var(--charcoal);
  padding: 1.5rem 2rem;
}

.about-v2-card-role {
  font-size: 0.65rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ev-red);
  font-weight: 500;
  margin-bottom: 0.5rem;
}

.about-v2-card-name {
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 400;
  color: var(--white);
  margin-bottom: 0.3rem;
}

.about-v2-card-sub {
  font-size: 0.75rem;
  color: var(--light-grey);
  font-weight: 300;
}

/* Hide old about section (keep CSS for backward compat) */
.about { display: none; }

@media (max-width: 1024px) {
  .about-v2-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .about-v2-sidebar {
    position: static;
    max-width: 400px;
  }
}


/* ==========================================================================
   30. TESTIMONIALS V2 — with stars
   ========================================================================== */

.testimonial-stars {
  color: var(--ev-red);
  font-size: 1rem;
  letter-spacing: 3px;
  margin-bottom: 1rem;
}

/* Italic emphasis in section titles */
.section-title em {
  font-style: italic;
  color: var(--ev-red);
}

.testimonials .section-title em {
  color: var(--ev-red);
}

.areas .section-title em {
  color: var(--ev-red);
}

.listings .section-title em {
  color: var(--ev-red);
}


/* ==========================================================================
   31. GALLERY — Limited display + Show More + Lightbox
   ========================================================================== */

/* Hidden gallery items beyond the initial 6 */
.jn-gallery-hidden {
  display: none !important;
}

/* "+X photos" overlay on the last visible image */
.property-gallery-item {
  position: relative;
}

.gallery-more-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: 1px;
  pointer-events: none;
  z-index: 2;
}

/* Gallery links — remove default styling */
.jn-lightbox-trigger {
  display: block;
  width: 100%;
  height: 100%;
  cursor: pointer;
  position: relative;
}

.jn-lightbox-trigger img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease-out-expo);
}

.property-gallery-item:hover .jn-lightbox-trigger img {
  transform: scale(1.05);
}

/* ==========================================================================
   32. LIGHTBOX
   ========================================================================== */

.jn-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(0, 0, 0, 0.92);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.jn-lightbox.active {
  opacity: 1;
  visibility: visible;
}

.jn-lightbox-img-wrap {
  max-width: 90vw;
  max-height: 85vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.jn-lightbox-img-wrap img {
  max-width: 90vw;
  max-height: 85vh;
  object-fit: contain;
  border: none;
  box-shadow: 0 10px 60px rgba(0, 0, 0, 0.5);
}

/* Close button */
.jn-lightbox-close {
  position: absolute;
  top: 1.5rem;
  right: 2rem;
  background: none;
  border: none;
  color: var(--white);
  font-size: 2.5rem;
  cursor: pointer;
  z-index: 10;
  line-height: 1;
  padding: 0.5rem;
  transition: color 0.2s ease;
}

.jn-lightbox-close:hover {
  color: var(--ev-red);
}

/* Nav arrows */
.jn-lightbox-prev,
.jn-lightbox-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--white);
  font-size: 3.5rem;
  cursor: pointer;
  z-index: 10;
  padding: 1rem;
  line-height: 1;
  transition: color 0.2s ease;
  user-select: none;
}

.jn-lightbox-prev { left: 1rem; }
.jn-lightbox-next { right: 1rem; }

.jn-lightbox-prev:hover,
.jn-lightbox-next:hover {
  color: var(--ev-red);
}

/* Counter */
.jn-lightbox-counter {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.5);
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 2px;
}

/* Responsive lightbox */
@media (max-width: 768px) {
  .jn-lightbox-prev,
  .jn-lightbox-next {
    font-size: 2.5rem;
    padding: 0.5rem;
  }

  .jn-lightbox-prev { left: 0.5rem; }
  .jn-lightbox-next { right: 0.5rem; }

  .jn-lightbox-close {
    top: 1rem;
    right: 1rem;
    font-size: 2rem;
  }

  .jn-lightbox-img-wrap img {
    max-width: 95vw;
    max-height: 80vh;
  }
}


/* ==========================================================================
   33. GOOGLE MAP EMBED + LINK
   ========================================================================== */

.property-map-embed {
  overflow: hidden;
  border: 1px solid var(--silver);
}

.property-map-embed iframe {
  display: block;
}

.property-map-link {
  display: block;
  text-align: center;
  padding: 0.8rem;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ev-red);
  text-decoration: none;
  border: 1px solid var(--silver);
  border-top: none;
  transition: all 0.3s ease;
}

.property-map-link:hover {
  background: var(--ev-red);
  color: var(--white);
  text-decoration: none;
}
