/* ============================================================
   GRAYE GROUP · ENHANCE LAYER
   Premium motion + UI refinements. Grayscale-locked.
   Load AFTER existing page styles; never overrides tokens.
   ============================================================ */

:root{
  --ez-out: cubic-bezier(0.19, 1, 0.22, 1);
  --ez-io:  cubic-bezier(0.77, 0, 0.175, 1);
  --ez-in:  cubic-bezier(0.6, 0, 0.8, 0);
  --ez-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ez-soft: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --dur-fast: 260ms;
  --dur: 560ms;
  --dur-slow: 900ms;
  --dur-hero: 1400ms;
}

/* ---------- Grain overlay (global, very subtle) ---------- */
body::after{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  z-index:9999;
  opacity:0.035;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");
  background-size:160px 160px;
}

/* ---------- Scroll progress bar (top) ---------- */
.gg-progress{
  position:fixed; top:0; left:0; height:2px;
  width:0%; z-index:10000;
  background: linear-gradient(90deg,#0a0a0a 0%, #222 40%, #555 80%, #0a0a0a 100%);
  transform-origin:left center;
  transition:width 80ms linear;
  pointer-events:none;
}

/* ---------- Custom cursor (desktop only) ---------- */
@media (hover:hover) and (pointer:fine){
  .gg-cursor{
    position:fixed; top:0; left:0;
    width:14px; height:14px;
    border-radius:50%;
    background:#0a0a0a;
    pointer-events:none;
    z-index:10001;
    transform:translate(-50%,-50%) scale(1);
    transition: transform 240ms var(--ez-out), opacity 200ms, background 200ms, mix-blend-mode 0ms;
    mix-blend-mode:difference;
    opacity:0;
  }
  .gg-cursor.ready{ opacity:1; }
  .gg-cursor.hover{ transform:translate(-50%,-50%) scale(2.6); background:#fff; }
  .gg-cursor.click{ transform:translate(-50%,-50%) scale(0.7); }
}

/* ---------- Image Ken Burns reveal ---------- */
.gg-kb{ overflow:hidden; }
.gg-kb > img, .gg-kb > video{
  transform: scale(1.08);
  transition: transform 2400ms var(--ez-out);
  will-change: transform;
}
.gg-kb.in > img, .gg-kb.in > video{
  transform: scale(1);
}

/* ---------- Char / word reveal for headings ---------- */
.gg-split .gg-char{
  display:inline-block;
  transform: translateY(100%);
  opacity:0;
  transition: transform 900ms var(--ez-out), opacity 700ms var(--ez-out);
}
.gg-split .gg-word{
  display:inline-block;
  overflow:hidden;
  line-height:1em;
  padding-bottom:0.08em;
}
.gg-split.in .gg-char{ transform: translateY(0); opacity:1; }

/* ---------- Enhanced reveal (layered on top of existing .reveal) ---------- */
.reveal{
  transition: opacity var(--dur) var(--ez-out), transform var(--dur) var(--ez-out), filter var(--dur) var(--ez-out) !important;
  filter: blur(6px);
}
.reveal.in{
  filter: blur(0);
}

/* ---------- Magnetic CTA ---------- */
.gg-mag{
  transition: transform 220ms var(--ez-spring);
  will-change: transform;
}

/* ---------- Card tilt on hover ---------- */
@media (hover:hover){
  .n-card, .nc-card, .building-card, .neighborhood-card, .pn-card{
    transition: transform 520ms var(--ez-out), box-shadow 520ms var(--ez-out), border-color 320ms var(--ez-out) !important;
    transform-style: preserve-3d;
    will-change: transform;
  }
  .n-card:hover, .nc-card:hover, .building-card:hover, .neighborhood-card:hover, .pn-card:hover{
    transform: translateY(-6px);
    box-shadow: 0 40px 80px -30px rgba(0,0,0,0.25), 0 18px 40px -20px rgba(0,0,0,0.15);
  }
  .n-card img, .nc-card img, .building-card img, .neighborhood-card img, .pn-card img{
    transition: transform 900ms var(--ez-out), filter 600ms var(--ez-out) !important;
    will-change: transform;
  }
  .n-card:hover img, .nc-card:hover img, .building-card:hover img, .neighborhood-card:hover img, .pn-card:hover img{
    transform: scale(1.06);
    filter: contrast(1.04) saturate(0.98);
  }
}

/* ---------- Button microinteraction ---------- */
.btn, .submit, .nc-submit, button[type="submit"], .cta, .cta-prime, .cta-primary{
  position:relative;
  overflow:hidden;
  transition: transform 260ms var(--ez-spring), background 320ms, color 320ms, box-shadow 320ms !important;
}
.btn::before, .submit::before, .cta::before, .cta-prime::before, .cta-primary::before{
  content:"";
  position:absolute; top:50%; left:50%;
  width:0; height:0;
  background:rgba(255,255,255,0.14);
  border-radius:50%;
  transform: translate(-50%,-50%);
  transition: width 650ms var(--ez-out), height 650ms var(--ez-out);
  pointer-events:none;
}
.btn:hover::before, .submit:hover::before, .cta:hover::before, .cta-prime:hover::before, .cta-primary:hover::before{
  width: 380px; height: 380px;
}
.btn:active, .submit:active, .cta:active{
  transform: scale(0.97);
}

/* ---------- Sticky nav softer shadow on scroll ---------- */
.p-nav.scrolled, .nav.scrolled, header.scrolled{
  backdrop-filter: blur(14px) saturate(1.1);
  -webkit-backdrop-filter: blur(14px) saturate(1.1);
  box-shadow: 0 1px 0 rgba(0,0,0,0.06), 0 14px 34px -24px rgba(0,0,0,0.3);
  transition: box-shadow 280ms var(--ez-out), backdrop-filter 280ms !important;
}

/* ---------- Link underline animation ---------- */
a.gg-link, .n-nav a, .nc-nav a, .footer-col a{
  position:relative;
  transition: color 240ms;
}
a.gg-link::after, .n-nav a::after, .nc-nav a::after, .footer-col a::after{
  content:"";
  position:absolute;
  left:0; bottom:-2px;
  width:100%; height:1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 420ms var(--ez-out);
}
a.gg-link:hover::after, .n-nav a:hover::after, .nc-nav a:hover::after, .footer-col a:hover::after{
  transform: scaleX(1);
  transform-origin: left center;
}

/* ---------- FAQ accordion smoother ---------- */
.faq-item{
  transition: background 320ms var(--ez-out), border-color 320ms !important;
}
.faq-item .faq-a,
.faq-item details > *:not(summary){
  transition: max-height 540ms var(--ez-out), opacity 440ms var(--ez-out), padding 440ms var(--ez-out);
}
.faq-q{ transition: color 240ms var(--ez-out); }
.faq-q::after, .faq-item summary::after{
  transition: transform 420ms var(--ez-spring) !important;
}

/* ---------- Map pin drop ---------- */
@keyframes ggPinDrop{
  0%   { transform: translateY(-30px) scale(0.4); opacity:0; }
  60%  { transform: translateY(0)     scale(1.12); opacity:1; }
  100% { transform: translateY(0)     scale(1);    opacity:1; }
}
.leaflet-marker-icon, .leaflet-div-icon{
  animation: ggPinDrop 640ms var(--ez-spring) both;
}
.leaflet-marker-icon:nth-child(2){ animation-delay:100ms; }
.leaflet-marker-icon:nth-child(3){ animation-delay:200ms; }
.leaflet-marker-icon:nth-child(4){ animation-delay:300ms; }
.leaflet-marker-icon:nth-child(5){ animation-delay:400ms; }
.leaflet-marker-icon:nth-child(6){ animation-delay:500ms; }

/* ---------- Sticky sidebar spring entry ---------- */
.contact-sidebar.ready, .c-sidebar.ready, .sidebar-card.ready,
aside.sidebar.ready, aside.sticky.ready{
  animation: ggSidebarIn 780ms var(--ez-out) both;
}
@keyframes ggSidebarIn{
  from{ opacity:0; transform: translateY(24px) scale(0.985); }
  to  { opacity:1; transform: translateY(0) scale(1); }
}

/* ---------- Floating toolbar entry ---------- */
.float-toolbar, .page-toolbar, .floating-bar{
  animation: ggFloatIn 620ms var(--ez-spring) 400ms both;
}
@keyframes ggFloatIn{
  from{ opacity:0; transform: translateY(40px) translateX(-50%); }
  to  { opacity:1; transform: translateY(0) translateX(-50%); }
}

/* ---------- Image parallax wrapper ---------- */
.gg-para{ overflow:hidden; }
.gg-para > img{ will-change: transform; }

/* ---------- Section eyebrow shimmer ---------- */
.eyebrow, .k, .kicker, span.eyebrow, .hero-eyebrow{
  position:relative;
  overflow:hidden;
}
.eyebrow.in::after, .k.in::after, .kicker.in::after{
  content:"";
  position:absolute; top:0; left:-80%;
  width:80%; height:100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.08) 50%, transparent 100%);
  animation: ggShimmer 1600ms var(--ez-out) 400ms both;
}
@keyframes ggShimmer{
  from{ left:-80%; }
  to  { left:180%; }
}

/* ---------- Stat number counter ---------- */
.gg-count{ font-variant-numeric: tabular-nums; }

/* ---------- Focus rings (accessibility) ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline: 2px solid #0a0a0a;
  outline-offset: 3px;
  border-radius: 2px;
}

/* ---------- Selection color ---------- */
::selection{ background:#0a0a0a; color:#fff; }

/* ---------- Image lazy-load blur-up ---------- */
img[loading="lazy"]{
  transition: filter 480ms var(--ez-out), opacity 320ms;
}
img[loading="lazy"]:not(.loaded){
  filter: blur(10px);
  opacity: 0;
}
img[loading="lazy"].loaded{
  filter: blur(0);
  opacity: 1;
}

/* ---------- Hover tile reveal ---------- */
@media (hover:hover){
  .n-card, .building-card{ position:relative; overflow:hidden; }
  .n-card::after, .building-card::after{
    content:"";
    position:absolute; inset:0;
    background: linear-gradient(135deg, transparent 40%, rgba(255,255,255,0.10) 50%, transparent 60%);
    transform: translateX(-100%);
    transition: transform 900ms var(--ez-out);
    pointer-events:none;
  }
  .n-card:hover::after, .building-card:hover::after{
    transform: translateX(100%);
  }
}

/* ---------- Respect reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal{ filter: none !important; }
  body::after{ display:none; }
}

/* ---------- Skeleton shimmer for live listings ---------- */
@keyframes ggSkeleton{
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.gg-skeleton{
  background: linear-gradient(90deg, #f2f2f2 0%, #e8e8e8 40%, #f2f2f2 80%);
  background-size: 200% 100%;
  animation: ggSkeleton 1600ms linear infinite;
  border-radius: 4px;
}

/* ---------- Hero media subtle drift (fallback if no GSAP) ---------- */
@keyframes ggHeroDrift{
  0%,100% { transform: scale(1.04) translateY(0); }
  50%     { transform: scale(1.06) translateY(-1.5%); }
}
.n-hero .gg-kb.in > img, .n-hero .gg-kb.in > video{
  animation: ggHeroDrift 26s ease-in-out infinite;
}

/* ============================================================
   GRAYE ENHANCE v2 · Mobile menu + refined UI polish
   ============================================================ */

/* ---------- Mobile hamburger menu ---------- */
.gg-mobile-toggle{
  display:none;
  position:relative;
  width:44px; height:44px;
  background:transparent;
  border:1px solid var(--line,#dcdcdc);
  border-radius:999px;
  cursor:pointer;
  transition: background 240ms var(--ez-out), border-color 240ms;
  z-index: 101;
  padding:0;
}
.gg-mobile-toggle span{
  position:absolute; left:50%; top:50%;
  width:18px; height:1.5px;
  background:currentColor;
  transform-origin:center;
  transition: transform 400ms var(--ez-spring), opacity 240ms, top 400ms var(--ez-spring);
}
.gg-mobile-toggle span:nth-child(1){ transform: translate(-50%, -6px); }
.gg-mobile-toggle span:nth-child(2){ transform: translate(-50%, 0); }
.gg-mobile-toggle span:nth-child(3){ transform: translate(-50%, 6px); }
.gg-mobile-toggle[aria-expanded="true"] span:nth-child(1){ transform: translate(-50%, 0) rotate(45deg); }
.gg-mobile-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.gg-mobile-toggle[aria-expanded="true"] span:nth-child(3){ transform: translate(-50%, 0) rotate(-45deg); }

.gg-mobile-menu{
  position:fixed; inset:0;
  background:rgba(255,255,255,0.98);
  backdrop-filter: blur(20px) saturate(1.2);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
  z-index:100;
  display:flex; flex-direction:column;
  padding:100px 40px 60px;
  opacity:0; visibility:hidden;
  transition: opacity 420ms var(--ez-out), visibility 0ms 420ms;
  pointer-events:none;
}
.gg-mobile-menu.open{
  opacity:1; visibility:visible;
  transition: opacity 420ms var(--ez-out), visibility 0ms 0ms;
  pointer-events:auto;
}
.gg-mobile-menu-inner{
  display:flex; flex-direction:column;
  gap:0;
  width:100%; max-width:600px; margin:0 auto;
}
.gg-mobile-menu a{
  display:block;
  padding:22px 0;
  border-bottom:1px solid var(--line,#dcdcdc);
  font-family:'Inter',system-ui,sans-serif;
  font-size:clamp(28px, 5vw, 44px);
  font-weight:700;
  letter-spacing:-0.02em;
  color:var(--ink,#0a0a0a);
  opacity:0;
  transform:translateY(20px);
  transition: opacity 500ms var(--ez-out), transform 500ms var(--ez-out), color 240ms;
}
.gg-mobile-menu.open a{ opacity:1; transform:translateY(0); }
.gg-mobile-menu.open a:nth-child(1){ transition-delay:80ms; }
.gg-mobile-menu.open a:nth-child(2){ transition-delay:140ms; }
.gg-mobile-menu.open a:nth-child(3){ transition-delay:200ms; }
.gg-mobile-menu.open a:nth-child(4){ transition-delay:260ms; }
.gg-mobile-menu.open a:nth-child(5){ transition-delay:320ms; }
.gg-mobile-menu.open a:nth-child(6){ transition-delay:380ms; }
.gg-mobile-menu.open a:nth-child(7){ transition-delay:440ms; }

.gg-mobile-menu .gg-mm-meta{
  margin-top:auto;
  padding-top:32px;
  border-top:1px solid var(--line,#dcdcdc);
  display:flex; flex-direction:column; gap:12px;
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--mute,#6b6b6b);
}
.gg-mobile-menu .gg-mm-meta a{
  padding:0; border:none;
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:14px; letter-spacing:0.14em; text-transform:uppercase; font-weight:500;
  color:var(--ink,#0a0a0a);
  opacity:1; transform:none;
}

/* ---------- Mobile responsive breakpoints (768px) ---------- */
@media (max-width: 900px){
  .gg-mobile-toggle{ display:inline-block; }
  .nav .links, .nav ul.links{ display:none !important; }
  .nav .right .cta{ display:none; }
  .nav{ grid-template-columns: auto 1fr auto !important; }
  body.gg-menu-open{ overflow:hidden; }
}
@media (max-width: 640px){
  .nav .right .tel{ font-size:12px; }
  .nav{ padding:14px 20px !important; }
  /* Better hero typography on small screens */
  .hero h1, .n-hero h1, .p-hero h1{
    font-size: clamp(44px, 11vw, 88px) !important;
  }
  /* Better section padding */
  section{ padding-left:20px !important; padding-right:20px !important; }
  /* Fix grid overflow */
  .live-grid, .n-grid, .neighborhood-grid, .p-neighborhoods, .j-grid{
    grid-template-columns: 1fr !important;
    gap:20px !important;
  }
  /* Bigger tap targets */
  .btn, .cta, button, .submit{ min-height:48px; }
}

/* ---------- v2: Marquee refinement ---------- */
.marquee-track{ will-change: transform; }

/* ---------- v2: Smooth image transition on card lists ---------- */
.n-card img, .neighborhood-card img, .nc-card img{
  transition: transform 900ms var(--ez-out), filter 700ms;
}

/* ---------- v2: Better sticky sidebar padding ---------- */
.sticky-sidebar, .n-sidebar, .contact-sidebar{
  top: 100px;
}

/* ---------- v2: Nav dot pulse (subtle) ---------- */
@keyframes ggDotPulse{
  0%,100%{ box-shadow: 0 0 0 0 rgba(10,10,10,0.4); }
  50%   { box-shadow: 0 0 0 5px rgba(10,10,10,0); }
}
.nav .dot, .mark .dot{
  animation: ggDotPulse 3s ease-in-out infinite;
}

/* ---------- v2: Better print styles ---------- */
@media print{
  body::after, .gg-progress, .gg-cursor, .gg-mobile-toggle, .float-toolbar, .nav{ display:none !important; }
  .n-hero, .hero{ padding-top:40px !important; }
  body{ background:#fff !important; color:#000 !important; }
  a{ color:#000 !important; text-decoration:underline; }
  section{ break-inside: avoid; }
}

/* ---------- v2: Nav shrinks on scroll (subtle) ---------- */
.nav.scrolled{ padding-top:14px !important; padding-bottom:14px !important; }

/* ---------- v2: Sale/live status dots — pure grayscale pulse ---------- */
.live-dot, .idx-bar .eye::before{
  animation: ggDotPulse 2s ease-in-out infinite;
}

/* ---------- v2: Refined focus rings — grayscale ---------- */
:focus-visible{
  outline: 2px solid var(--ink,#0a0a0a) !important;
  outline-offset: 3px;
  border-radius: 2px;
}

/* ---------- v2: Section number ticker in eyebrows ---------- */
.eyebrow.section-num::before, .k.section-num::before{
  content: counter(gg-section, decimal-leading-zero) " · ";
  counter-increment: gg-section;
  opacity:0.6;
}
body{ counter-reset: gg-section; }

/* ---------- v2: Better disabled states ---------- */
button:disabled, .btn:disabled, .cta:disabled{
  opacity:0.4;
  cursor:not-allowed;
  pointer-events:none;
}

/* ---------- v2: Backdrop hover for cards on darker sections ---------- */
.dark .n-card:hover, .n-dark .n-card:hover{
  background: rgba(255,255,255,0.06);
}

/* ============================================================
   GRAYE · CONVERSION PASS (accent CTAs + mobile color/perf)
   One swappable accent for primary CTAs · full-color photos on
   phones · lighter motion on phones. Desktop unchanged.
   ============================================================ */
:root{
  --gg-accent:#0B5D66;        /* Intracoastal teal — change THIS one value to retheme all CTAs */
  --gg-accent-press:#083f46;
}
/* One accent, reserved for PRIMARY conversion CTAs only */
.btn.primary, a.btn.primary, .cta, a.cta, .cta-prime, .cta-primary,
.hero-cta-primary, .nc-submit, .submit, .form-submit,
button[type="submit"], input[type="submit"], .p-cta a{
  background:var(--gg-accent) !important;
  border-color:var(--gg-accent) !important;
  color:#fff !important;
}
.btn.primary:hover, .cta:hover, .cta-prime:hover, .cta-primary:hover,
.hero-cta-primary:hover, .nc-submit:hover, .submit:hover, .form-submit:hover,
button[type="submit"]:hover, input[type="submit"]:hover, .p-cta a:hover{
  background:var(--gg-accent-press) !important;
  border-color:var(--gg-accent-press) !important;
  color:#fff !important;
}
.btn.primary::before, .cta::before{ background:rgba(255,255,255,0.18) !important; }
/* ghost / secondary stay neutral — never accent these */
.btn.ghost{ background:transparent !important; color:var(--ink,#0a0a0a) !important; border-color:var(--ink,#0a0a0a) !important; }
.btn.ghost:hover{ background:var(--ink,#0a0a0a) !important; color:#fff !important; }

/* MOBILE / TOUCH: show drone photos in full color (no hover on phones) */
@media (hover: none){
  img{ filter:none !important; -webkit-filter:none !important; }
  .n-card img,.nh-card img,.nc-card img,.neighborhood-card img,
  .building-card img,.gg-para > img,.card img{
    filter:none !important; -webkit-filter:none !important; transform:none !important;
  }
  .gg-cursor{ display:none !important; }
}
/* MOBILE: trim heavy motion for speed (desktop keeps everything) */
@media (max-width: 900px){
  body::after{ display:none !important; }
  .gg-kb > img, .gg-kb.in > img, .n-hero .gg-kb.in > img{ animation:none !important; transform:none !important; }
  [data-parallax], .gg-para > img{ transform:none !important; }
  .reveal{ filter:none !important; }
}

/* CT IDX Pro+ listings slot + graceful fallback */
.ll-idx{margin-top:6px}
.ll-empty{padding:clamp(32px,5vw,56px) 28px;text-align:center;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#fafafa}
.ll-empty-lead{max-width:660px;margin:0 auto 22px;font-size:16px;line-height:1.6;color:#111}

/* ============================================================
   REVISION 1 — page-review fixes (loads after graye.css)
   ============================================================ */

/* 1 · Skip link was visible — hide until keyboard-focused */
.screen-reader-text{
  border:0!important; clip:rect(1px,1px,1px,1px)!important; clip-path:inset(50%)!important;
  height:1px!important; width:1px!important; margin:-1px!important; overflow:hidden!important;
  padding:0!important; position:absolute!important; white-space:nowrap!important;
}
.screen-reader-text:focus{
  clip:auto!important; clip-path:none!important; height:auto!important; width:auto!important;
  position:fixed!important; top:12px; left:12px; z-index:100001;
  background:#0B5D66; color:#fff; padding:10px 16px; border-radius:6px; font:600 14px Inter,sans-serif;
}

/* 2 · Homepage hero — always readable, no clipped headline */
.hero .visual{ background:#111; }
.hero .kicker,.hero .sub,.hero .metrow,.hero .actions,.hero .fade{ opacity:1!important; }
.hero .sub,.hero .metrow,.hero .actions{ transform:none!important; }
.hero h1{ font-size:clamp(50px,6.4vw,112px); }
.hero h1 .char{ overflow:visible!important; padding-bottom:.06em; }

/* 3 · Neighborhoods dropdown (desktop) */
.nav .links li.has-dropdown{ position:relative; }
.nav .links .dropdown{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(8px);
  min-width:230px; list-style:none; padding:10px; margin:0;
  background:#0a0a0a; border-radius:12px; box-shadow:0 24px 60px -18px rgba(0,0,0,.55);
  opacity:0; visibility:hidden; pointer-events:none; transition:opacity .22s, transform .22s;
  display:flex; flex-direction:column; gap:2px; z-index:300;
}
.nav .links li.has-dropdown:hover .dropdown,
.nav .links li.has-dropdown:focus-within .dropdown{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0);
}
.nav .links .dropdown::before{ content:''; position:absolute; top:-14px; left:0; right:0; height:14px; }
.nav .links .dropdown li{ margin:0; }
.nav .links .dropdown a{
  display:block; padding:11px 16px; border-radius:8px; font-size:14px; font-weight:500;
  color:#fff!important; mix-blend-mode:normal!important; letter-spacing:0; white-space:nowrap; transition:background .2s;
}
.nav .links .dropdown a::after{ display:none!important; }
.nav .links .dropdown a:hover{ background:rgba(255,255,255,.1); }
.nav .links .dropdown .dd-all{ margin-top:4px; padding-top:6px; border-top:1px solid rgba(255,255,255,.14); }
.nav .links .dropdown .dd-all a{ color:rgba(255,255,255,.6)!important; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }

/* 4 · Mobile hamburger + slide-down menu */
.nav-toggle{ display:none; width:42px; height:42px; border:0; cursor:pointer; padding:0;
  flex-direction:column; justify-content:center; align-items:center; gap:5px;
  background:rgba(15,15,15,.55); border-radius:50%; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.nav-toggle span{ display:block; width:20px; height:2.5px; background:#fff; border-radius:2px; transition:transform .3s, opacity .2s; }
.mobile-menu{
  position:fixed; top:0; left:0; right:0; z-index:90; background:#0a0a0a; color:#fff;
  padding:96px 24px 36px; display:flex; flex-direction:column; gap:2px;
  transform:translateY(-102%); transition:transform .38s cubic-bezier(.2,.8,.2,1); max-height:100vh; overflow:auto;
}
body.menu-open .mobile-menu{ transform:translateY(0); }
body.menu-open{ overflow:hidden; }
.mobile-menu a{ color:#fff; font-size:22px; font-weight:600; letter-spacing:-.01em; padding:12px 4px; border-bottom:1px solid rgba(255,255,255,.08); }
.mobile-menu .mm-sub{ display:flex; flex-direction:column; padding:4px 0 8px 14px; }
.mobile-menu .mm-sub a{ font-size:16px; font-weight:500; color:rgba(255,255,255,.72); border-bottom:none; padding:8px 4px; }
.mobile-menu .mm-tel{ font-size:16px; color:rgba(255,255,255,.72); border-bottom:none; margin-top:10px; }
.mobile-menu .cta{ margin-top:18px; background:#0B5D66; color:#fff; text-align:center; border-radius:999px; padding:16px; border-bottom:none; font-size:15px; }
body.menu-open .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
body.menu-open .nav-toggle span:nth-child(2){ opacity:0; }
body.menu-open .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
@media (max-width:1100px){
  .nav-toggle{ display:flex; }
  .nav .cta{ display:none; }
}

/* 5 · Match "how it works" — remove the empty gray 4th cell */
.drivers.drivers--3{ grid-template-columns:repeat(3,1fr)!important; }
@media (max-width:900px){ .drivers.drivers--3{ grid-template-columns:1fr!important; } }

/* 6 · Match hero — less black, legible kicker */
.n-hero{ height:auto!important; min-height:0!important; }
.n-hero .content{ min-height:56vh; }
.n-hero .kicker{ font-size:12px!important; color:#fff!important; letter-spacing:.18em!important; opacity:1!important; animation:none!important; }
.n-hero .kicker::before{ transform:scaleX(1)!important; animation:none!important; }
.n-hero h1{ opacity:1!important; animation:none!important; }

/* 7 · Archive hero — get to the neighborhoods faster */
.p-hero{ height:auto!important; min-height:0!important; }
.p-hero .content{ min-height:42vh; padding-top:150px!important; padding-bottom:50px!important; }

/* 8 · Archive cards — readable description + cleaner tag/arrow */
.p-nh-card .img::after{ background:linear-gradient(180deg, rgba(0,0,0,0) 16%, rgba(0,0,0,.55) 52%, rgba(0,0,0,.93) 100%)!important; }
.p-nh-card .sub{
  color:rgba(255,255,255,.9)!important; margin-bottom:8px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  text-shadow:0 1px 8px rgba(0,0,0,.5);
}
.p-nh-card .name,.p-nh-card .row{ text-shadow:0 1px 10px rgba(0,0,0,.55); }
.p-nh-card .tag-top{ background:rgba(0,0,0,.5)!important; border-color:rgba(255,255,255,.28)!important; }
.p-nh-card .arrow{ background:rgba(0,0,0,.5)!important; border:1px solid rgba(255,255,255,.28)!important; }

/* 9 · Trim whitespace before the archive's match CTA */
.p-match{ padding-top:96px!important; padding-bottom:120px!important; }

/* CT IDX live map embed (drawn-polygon search on the neighborhood page) */
.ll-embed{ width:100%; margin-top:6px; border:1px solid var(--line,#e6e4e0); border-radius:14px; overflow:hidden; background:#fff; box-shadow:0 30px 60px -30px rgba(0,0,0,.18); }
.ll-embed iframe{ display:block; width:100%; height:880px; border:0; }
@media (max-width:900px){ .ll-embed iframe{ height:680px; } }

/* Chromeless embed mode (page loaded inside a neighborhood iframe via ?graye_embed=1) */
body.graye-embed{ background:#fff!important; padding-top:0!important; }
body.graye-embed #main{ padding:0!important; margin:0!important; min-height:0!important; }
body.graye-embed .read-progress, body.graye-embed .action-toolbar, body.graye-embed .swipe-nav{ display:none!important; }

/* ============================================================
   FIX (v1.11.3): the .note class was position:fixed bottom-right,
   floating a badge over page content on every page. It was also
   reused for inline helper text (FAQ, amenities, contact). Un-float
   it everywhere and render the remaining notes as plain muted text.
   The decorative page-label badges are removed in the templates.
   ============================================================ */
.note{
  position: static !important;
  right: auto !important;
  bottom: auto !important;
  z-index: auto !important;
  background: transparent !important;
  color: var(--mute) !important;
  border: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font-family: inherit !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  box-shadow: none !important;
}
.note a{ color: inherit; text-decoration: underline; }

/* ============================================================
   FIX (v1.11.4): make the embedded Google map display-only inside the
   chromeless neighborhood embed. pointer-events:none means the scroll
   wheel physically cannot reach the map, so it can NEVER zoom/reset on
   scroll. The map still shows the boundary + pinned homes; all browsing
   happens in the listings grid beside it.
   ============================================================ */
.graye-embed .gm-style,
.graye-embed .gm-style *,
.graye-embed #map_canvas,
.graye-embed .map_canvas,
.graye-embed [id*="map_canvas"]{
  pointer-events: none !important;
}

/* ============================================================
   Region pages (v1.11.6): hero removed — page opens on the grid.
   Add top clearance so the breadcrumb/grid isn't under the fixed nav.
   ============================================================ */
.region-crumb{ padding: 118px 6vw 0; max-width: 1600px; margin: 0 auto; }
.p-nh.region-top{ padding-top: 28px; }
@media (max-width: 768px){
  .region-crumb{ padding: 96px 20px 0; }
}

/* ============================================================
   About — two-partner block (v1.11.6)
   ============================================================ */
.partners{ padding: 96px 6vw; max-width: 1400px; margin: 0 auto; }
.partners .p-head{ max-width: 760px; margin: 0 0 56px; }
.partners .p-head .eyebrow{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--mute,#6b6b6b); }
.partners .p-head h2{ font-size:clamp(34px,5vw,64px); line-height:1.02; letter-spacing:-0.03em; margin:14px 0 20px; }
.partners .p-head h2 .weak{ font-weight:300; color:var(--mute,#6b6b6b); }
.partners .p-head .lede{ font-size:17px; line-height:1.65; color:var(--mute,#5a5a5a); max-width:640px; }
.partners-grid{ display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.partner .portrait{ position:relative; aspect-ratio:4/5; border-radius:14px; overflow:hidden; background:var(--ink,#0f0f0f); display:flex; align-items:center; justify-content:center; }
.partner .portrait img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.02); }
.partner .portrait .ph{ font-family:'JetBrains Mono',monospace; font-size:64px; letter-spacing:.04em; color:rgba(255,255,255,.85); }
.partner .prole{ display:block; font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--mute,#6b6b6b); margin:22px 0 8px; }
.partner h3{ font-size:clamp(24px,2.6vw,32px); letter-spacing:-0.02em; margin:0 0 14px; }
.partner p{ font-size:15.5px; line-height:1.7; color:var(--mute,#5a5a5a); }
.partner-quote{ margin:72px auto 0; max-width:900px; font-size:clamp(22px,2.8vw,34px); line-height:1.35; letter-spacing:-0.02em; font-weight:300; text-align:center; border:0; }
.partner-quote cite{ display:block; margin-top:22px; font-style:normal; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--mute,#6b6b6b); }
.partners-cta{ display:flex; gap:14px; justify-content:center; margin-top:44px; flex-wrap:wrap; }
@media (max-width:820px){
  .partners{ padding:64px 20px; }
  .partners-grid{ grid-template-columns:1fr; gap:40px; }
  .partner .portrait{ max-width:340px; }
}


/* ============================================================
   Mobile polish pass (Oct 2026) — overlaps, overflow, duplicate toggles
   ============================================================ */
@media (max-width: 640px){
  /* Neighborhood hero: let it size to content so the kicker/sub never collide with the breadcrumb or spill out */
  .n-hero{ height:auto !important; min-height:0 !important; }
  .n-hero .content{ height:auto; padding:150px 24px 20px; }
  .n-hero h1{ font-size:clamp(40px, 12vw, 60px); line-height:0.92; max-width:none; }
  .n-hero .sub{ font-size:15px; line-height:1.55; margin-top:18px; }
  .n-hero .kicker{ font-size:10px; letter-spacing:0.18em; margin-bottom:18px; }
  .breadcrumb{ padding:0 24px; font-size:10px; letter-spacing:0.14em; gap:8px; top:92px; }
  /* Floating toolbar: keep only the call button on phones */
  .action-toolbar .ab:not([href^="tel"]){ display:none !important; }
  .action-toolbar{ bottom:20px; right:16px; }
  /* Home hero: hide the decorative scroll cue + corner caption that collide at phone width */
  .hero .fade{ display:none !important; }
  .hero .corner{ display:none !important; }
}
@media (max-width: 900px){
  /* Neighborhood Match + other inline-styled grids collapse to one column */
  [style*="grid-template-columns:1.4fr 1fr"],
  [style*="grid-template-columns: 1.4fr 1fr"],
  [style*="grid-template-columns:320px 1fr"],
  [style*="grid-template-columns: 320px 1fr"],
  [style*="grid-template-columns:repeat(3, 1fr)"],
  [style*="grid-template-columns: repeat(3, 1fr)"]{ grid-template-columns:1fr !important; gap:32px !important; }
  aside[style*="position:sticky"], aside[style*="position: sticky"]{ position:static !important; }
  [style*="grid-template-columns:1fr 1fr"]{ grid-template-columns:1fr !important; }
}

/* Equal Housing Opportunity mark in the footer (v1.12.6) */
footer .eho{display:inline-flex;align-items:center;gap:6px;margin-left:14px;white-space:nowrap;color:rgba(255,255,255,.55)}
footer .eho svg{width:14px;height:14px;flex:none}
@media (max-width:640px){footer .eho{display:flex;justify-content:center;margin:8px 0 0}}

.graye-consent{margin-top:12px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.08em;text-transform:none;line-height:1.6;color:var(--mute,#6b6b6b);max-width:560px}
.graye-consent a{color:inherit;text-decoration:underline}
