/* ============================================================
   gj-code-drop-5 — polygon draw, listing POI, Schools, accessibility,
   explore card (photo-forward + pinned), terms link, focus styles.
   ============================================================ */

/* ---------- Keyboard focus (WCAG 2.4.7) — only shows for keyboard users ---------- */
:focus-visible{outline:2px solid #F1704E;outline-offset:2px}

/* ---------- Respect the OS "reduce motion" setting (WCAG 2.3.3) ---------- */
@media (prefers-reduced-motion:reduce){
  .gj-anim{opacity:1!important;transform:none!important;transition:none!important}
}

/* ---------- 1. Polygon draw on the search map (gaps-0) ---------- */
.gj-draw{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center;max-width:300px}
.gj-draw__btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px;border:0;border-radius:999px;background:#fff;color:#121619;font-family:inherit;font-size:13px;font-weight:600;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.28);cursor:pointer;white-space:nowrap}
.gj-draw__btn[hidden]{display:none}
.gj-draw__btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.gj-draw__btn:hover{background:#f3f3f3}
.gj-draw__done{background:#F1704E;color:#fff}
.gj-draw__done:hover{background:#d95c3c}
.gj-draw__done:disabled{opacity:.5;cursor:default}
.gj-draw__tip{flex-basis:100%;text-align:right;font-size:12px;font-weight:600;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.8)}
.gj-draw__tip[hidden]{display:none}
.leaflet-container.gj-drawing,.leaflet-container.gj-drawing .leaflet-interactive{cursor:crosshair!important}

/* ---------- 2. "Nearby" POI toggles on listing + sold maps (gaps-4) ---------- */
.gj-ldpoi{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:rgba(255,255,255,.96);padding:6px 8px;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,.22);max-width:calc(100vw - 96px)}
.gj-ldpoi__lbl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5a6067;margin-right:2px}
.gj-ldpoi button{width:32px;height:32px;border-radius:50%;border:1px solid #d9d9d9;background:#fff;color:#121619;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .15s}
.gj-ldpoi button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gj-ldpoi button:hover{background:#f3eee8}
.gj-ldpoi button[aria-pressed="true"]{background:#121619;color:#fff;border-color:#121619}
.gj-ldpoi button.is-busy{opacity:.55}
.gj-ldpoi__note{flex-basis:100%;font-size:12px;color:#5a6067;line-height:1.3}
.gj-ldpoi__note:empty{display:none}
@media (max-width:640px){.gj-ldpoi button{width:30px;height:30px}.gj-ldpoi__lbl{display:none}}
/* pin look (matches the area maps' POI pins) */
.gj-ldmap .gj-poi{background:none;border:0}
.gj-ldmap .gj-poi__pin{position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#e5467c;box-shadow:0 2px 6px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center}
.gj-ldmap .gj-poi__pin svg{width:16px;height:16px;transform:rotate(45deg);fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- 3. Schools in the Area: source line link ---------- */
.gj-schools{margin:34px 0 10px}
.gj-schools__src a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* ---------- 4. Explore map card: photo-forward + pinned + clear CTA (explore-0/1) ---------- */
#gj-tr2 #gjcard.docked{width:340px}
#gj-tr2 #gjcard.docked .ph{height:200px}
#gj-tr2 #gjcard .ds{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 6px!important;font-size:12.5px!important;line-height:1.48!important;color:var(--ink-2,#3d4247)}
#gj-tr2 #gjcard.expanded .ds{display:block;-webkit-line-clamp:unset;overflow:auto;max-height:38vh}
#gj-tr2 #gjcard .more{display:inline-block;background:none;border:0;padding:0;margin:0 0 10px;font-family:inherit;font-size:12.5px;font-weight:700;color:#F1704E;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
#gj-tr2 #gjcard.docked .go{display:block;text-align:center;background:#F1704E;padding:12px 14px!important;font-size:14px!important;border-radius:10px}
#gj-tr2 #gjcard.docked .go:hover{background:#d95c3c}
@media (max-width:860px){
  #gj-tr2 #gjcard.show .ph{width:112px}
  #gj-tr2 #gjcard .ds{-webkit-line-clamp:2}
  #gj-tr2 #gjcard .more{display:none}
  #gj-tr2 #gjcard.docked{width:auto}
  #gj-tr2 #gjcard.docked .ph{height:auto}
}

/* ---------- 5. Terms of Use link (IDX consumer terms) ---------- */
.gj-auth__terms{font-size:12px;line-height:1.45;color:#5a6067;margin:10px 0 0}
.gj-auth__terms a,.gj-terms-link{color:inherit;text-decoration:underline}

/* ---------- 6. Accessibility panel (gaps-6) ---------- */
.gj-a11y__fab{position:fixed;left:16px;bottom:16px;z-index:9990;width:46px;height:46px;border-radius:50%;border:0;background:#121619;color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.gj-a11y__fab svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.gj-a11y__fab svg circle{fill:currentColor;stroke:none}
.gj-a11y__fab.is-active{background:#F1704E}
.gj-a11y__fab:focus-visible{outline:3px solid #F1704E;outline-offset:3px}
.gj-a11y__panel{position:fixed;left:16px;bottom:72px;z-index:9991;width:270px;max-width:calc(100vw - 32px);background:#fff;color:#121619;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.3);padding:14px;font:14px/1.4 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;text-align:left}
.gj-a11y__panel[hidden]{display:none}
.gj-a11y__hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:15px}
.gj-a11y__x{border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:#121619;padding:2px 6px}
.gj-a11y__row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.gj-a11y__step{display:flex;align-items:center;gap:6px}
.gj-a11y__step button{width:40px;height:32px;border:1px solid #cfd2d6;border-radius:8px;background:#fff;color:#121619;font:700 13px/1 system-ui,Arial,sans-serif;cursor:pointer}
.gj-a11y__lvl{min-width:44px;text-align:center;font-variant-numeric:tabular-nums}
.gj-a11y__tog{display:flex;width:100%;align-items:center;justify-content:space-between;border:1px solid #cfd2d6;border-radius:10px;background:#fff;padding:10px 12px;margin:0 0 8px;font:inherit;cursor:pointer;color:#121619;text-align:left}
.gj-a11y__tog::after{content:"Off";font-size:12px;color:#5a6067}
.gj-a11y__tog[aria-pressed="true"]{border-color:#121619;background:#121619;color:#fff}
.gj-a11y__tog[aria-pressed="true"]::after{content:"On";color:#fff}
.gj-a11y__ft{display:flex;align-items:center;justify-content:space-between;margin-top:6px;font-size:13px}
.gj-a11y__reset{border:0;background:none;color:#b3261e;font:inherit;font-weight:600;cursor:pointer;padding:0}
.gj-a11y__ft a{color:#121619;text-decoration:underline}
@media print{.gj-a11y{display:none!important}}
/* modes */
html.gj-a11y-contrast body>*:not(.gj-a11y):not(script):not(style){filter:contrast(1.3) saturate(1.08)}
html.gj-a11y-links a{text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px!important}
html.gj-a11y-links a:hover{background:#fff3c4!important;color:#121619!important}
html.gj-a11y-font body *:not(svg):not(svg *):not(.leaflet-container *){font-family:Arial,"Helvetica Neue",Helvetica,system-ui,sans-serif!important;letter-spacing:.012em!important;word-spacing:.04em!important}
html.gj-a11y-still *,html.gj-a11y-still *::before,html.gj-a11y-still *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
html.gj-a11y-still .gj-anim{opacity:1!important;transform:none!important}

/* ---------- 7. Header: logo vs quick links (measured overlap 992–1319px) ---------- */
/* The centered logo runs into "Explore Areas" all the way up to ~1300px (1280px laptops included).
   Below the width where both fit, the quick links fold into the MENU pill. */
@media (min-width:992px) and (max-width:1319px){
  .gj-header__left .gj-navlink,.gj-header__left .gj-dd{display:none!important}
}

/* ---------- 8. Sold showcase leftovers ---------- */
/* soldqa-4: the dark "Thinking About Selling?" card's CTA rendered white-on-white (an empty box) */
.fd-outline-cta .gj-btn--white{display:block;width:100%;box-sizing:border-box;background:transparent!important;color:#fff!important;border:1.5px solid #fff!important;padding:14px 18px!important;line-height:1.25!important;white-space:normal;text-align:center}
.fd-outline-cta .gj-btn--white:hover,.fd-outline-cta .gj-btn--white:focus-visible{background:#fff!important;color:#141414!important}
#home-value{scroll-margin-top:90px}
/* soldqa-7: the 1px rule under the narrative read as a stray underline — make it a deliberate accent */
.gj-sold-page hr.gj-divider{width:64px;height:2px;border:0!important;background:#F1704E;opacity:1;margin:28px 0!important}

/* ---------- 9. Legibility at phone width (mobileqa, drop-5.1) ---------- */
/* Listing-card attribution: thumbnails are exempt from the typeface rule, but 11px light gray was hard to read. */
.gj-card__c{font-size:12.5px!important;line-height:1.4!important;color:#4f555b!important}
.gj-ldet__courtesy{font-size:14px!important}
/* Status tags, badges and small buttons that measured 9.5–11px */
.gj-card__tag{font-size:11px!important}
.gj-card__rep{font-size:11.5px!important}
.gj-gc__badge{font-size:11.5px!important}
.gj-trc__b em{font-size:12.5px!important}
.gjs-watch{font-size:12px!important}
@media (max-width:767px){#gj-srch-map .gj-btn{font-size:12.5px!important}}

/* ---------- 10. Map search (map-1, Oct 2026): every home on the map, price pins, phone preview card ---------- */
/* price pins: white = for sale, amber = in escrow, dark = coming soon, brown = sold; orange when hovered, selected or its list row is hovered */
.gj-pin{background:none;border:0;width:0!important;height:0!important}
.gj-pin span{position:absolute;left:0;bottom:7px;transform:translateX(-50%);display:block;padding:4px 8px;border-radius:999px;background:#fff;color:#121619;font:700 12px/1.15 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;white-space:nowrap;box-shadow:0 1px 6px rgba(0,0,0,.42);cursor:pointer}
.gj-pin span::after{content:"";position:absolute;left:50%;top:100%;margin-left:-5px;border:5px solid transparent;border-bottom:0;border-top-color:#fff}
.gj-pin--pend span{background:#ffe7b8}.gj-pin--pend span::after{border-top-color:#ffe7b8}
.gj-pin--soon span{background:#121619;color:#fff}.gj-pin--soon span::after{border-top-color:#121619}
.gj-pin--sold span{background:#5a5449;color:#fff}.gj-pin--sold span::after{border-top-color:#5a5449}
.gj-pin:hover span,.gj-pin.is-hot span,.gj-pin.is-on span{background:#F1704E;color:#fff}
.gj-pin:hover span::after,.gj-pin.is-hot span::after,.gj-pin.is-on span::after{border-top-color:#F1704E}
.gj-pin.is-on,.gj-pin.is-hot{z-index:1000!important}
.gj-cluster{cursor:pointer}
.gj-cluster.is-hot span{background:#F1704E;color:#fff}
.gj-cluster--xl span{width:68px;height:68px;margin:-34px 0 0 -34px;font-size:18px}
.gj-srch.is-loading .gj-srch__count{opacity:.6}
.gj-pop--load{display:block;padding:4px 2px;color:#5a6067}
/* the Draw tool sits under "Save Search" instead of on top of it */
#gj-srch-map .leaflet-top.leaflet-right{top:48px}
#gj-srch-map .leaflet-top.leaflet-right .leaflet-control{margin-top:8px;margin-right:12px}
@media (max-width:767px){#gj-srch-map .leaflet-top.leaflet-right{top:40px}#gj-srch-map .leaflet-top.leaflet-right .leaflet-control{margin-right:10px}}
/* phones: the map no longer slides 32px under the search box when the admin bar shows */
@media (max-width:991px){.admin-bar .gj-srch__map{top:0}}
/* "Listing provided by …" right under the price / specs */
.gj-ldet__courtesy{margin:10px 0 4px!important;color:#4f555b!important;line-height:1.45}
.gj-ldcourtesy--top{margin:0 0 22px!important;font-weight:600!important;color:#4f555b}
/* phone preview card over the map */
.gj-peek{position:absolute;left:10px;right:10px;bottom:24px;z-index:1000;background:#fff;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.38);overflow:hidden;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#121619}
.gj-peek[hidden]{display:none}
.gj-peek__ctl{position:absolute;top:8px;right:8px;z-index:2;display:flex;flex-direction:column;gap:8px}
.gj-peek__btn{width:32px;height:32px;border:0;border-radius:50%;background:#f1f2f3;color:#121619;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}
.gj-peek__btn svg,.gj-peek__mini svg,.gj-sheet__back svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.gj-peek__card{display:flex;gap:12px;padding:10px 48px 8px 10px;color:inherit;text-decoration:none;min-height:96px}
.gj-peek__img{flex:0 0 112px;height:96px;border-radius:9px;background:#e9e9e9 center/cover no-repeat}
.gj-peek__body{display:flex;flex-direction:column;justify-content:center;min-width:0;line-height:1.3}
.gj-peek__body .gj-lrow__tag{align-self:flex-start;margin:0 0 4px}
.gj-peek__price{font-size:19px;font-weight:700;line-height:1.15}
.gj-peek__addr,.gj-peek__city{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gj-peek__city{color:#5a6067;font-size:12.5px}
.gj-peek__specs{font-size:12.5px;font-weight:600;margin-top:3px}
.gj-peek__more{font-size:12px;font-weight:600;color:#d95c3c;margin-top:3px}
.gj-peek__courtesy{margin:0;padding:0 12px 10px;font-size:11.5px;line-height:1.35;color:#4f555b}
.gj-peek__mini{display:none}
.gj-peek.is-min{left:50%;right:auto;transform:translateX(-50%);max-width:calc(100% - 20px);border-radius:999px}
.gj-peek.is-min>*{display:none}
.gj-peek.is-min>.gj-peek__mini{display:flex;align-items:center;gap:8px;max-width:100%;height:42px;padding:0 14px 0 16px;border:0;background:#fff;color:#121619;font:600 13.5px/1 Inter,system-ui,sans-serif;white-space:nowrap;cursor:pointer}
.gj-peek__mini span{overflow:hidden;text-overflow:ellipsis;color:#4f555b;font-weight:500}
/* full preview sheet: "Back to map" top-left (replaces the X top-right) */
.gj-sheet__top{position:sticky;top:0;z-index:6;display:flex;align-items:center;height:58px;padding:0 12px;background:rgba(255,255,255,.97);border-bottom:1px solid #ececec}
.gj-sheet__back{display:inline-flex;align-items:center;gap:4px;height:40px;padding:0 16px 0 10px;border:0;border-radius:999px;background:#121619;color:#fff;font:600 14px/1 Inter,system-ui,sans-serif;cursor:pointer}
.gj-sheet__back:active{background:#F1704E}
/* accessibility button: in the call bar's left slot on phones (it sat half under the bar); hidden while a preview sheet is open */
@media (max-width:900px){
  .gj-a11y__fab{left:10px;bottom:calc(5px + env(safe-area-inset-bottom,0px));width:34px;height:34px;z-index:9999991;box-shadow:none;border:1px solid rgba(255,255,255,.34)}
  .gj-a11y__fab svg{width:20px;height:20px}
  .gj-a11y__panel{bottom:calc(56px + env(safe-area-inset-bottom,0px))}
  html.gj-sheet-open .gj-a11y__fab{display:none}
}
/* map-1 polish: popup / preview text was picking up Leaflet's blue link color; admin bar over the sheet; sheet heart + buttons; phone bubbles */
.leaflet-container a.gj-pop,.leaflet-container a.gj-peek__card{color:#121619}
.leaflet-container a.gj-pop .gj-pop__city{color:#555}
html.gj-sheet-open #wpadminbar{display:none!important}
.gj-sheet .gj-heart--det{right:16px;top:18px}
.gj-sheet .gj-ldet__cta .gj-btn{font-size:12.5px!important;letter-spacing:.06em!important;padding:0 6px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:600px){.admin-bar .gj-header.gj-stuck{top:0}}
@media (max-width:767px){
  .gj-cluster span{width:36px;height:36px;margin:-18px 0 0 -18px;font-size:14px}
  .gj-cluster--md span{width:42px;height:42px;margin:-21px 0 0 -21px;font-size:14.5px}
  .gj-cluster--lg span{width:50px;height:50px;margin:-25px 0 0 -25px;font-size:15.5px}
  .gj-cluster--xl span{width:56px;height:56px;margin:-28px 0 0 -28px;font-size:16px}
}
/* phones: map buttons clear the map credits (area maps' place buttons sat on the © line; so did the listing map's nearby-places bar) */
@media (max-width:767px){
  .gj-amap__poi{top:auto!important;bottom:22px!important}
  .gj-amap__poi button{margin:0 5px!important}
  .leaflet-bottom.leaflet-left .gj-ldpoi{margin-bottom:30px}
  /* area pages: the neighborhoods section runs edge to edge for its map; its headings, notes and guide lists get the page margin back */
  section.gj-tr>:not(.long):not(style):not(script){margin-left:15px!important;margin-right:15px!important}
}
/* listing pages, signed-in on a phone: the sticky Search / Save / Share bar sits right under the header (it left a 40px gap) */
@media (max-width:600px){html:has(.gj-header.gj-stuck) body.admin-bar .gj-topbar,body.admin-bar:has(.gj-header.gj-stuck) .gj-topbar{top:46px}}
/* 11. Home "Buying / Selling / Investing" cards: the theme's 56px headings set each grid column's minimum width, so on phones the cards ran past the right edge (and the three columns came out uneven on small laptops). Columns may now shrink, and the headings and padding scale with the screen. */
.gj-services__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.gj-svc h3{overflow-wrap:break-word}
@media (max-width:1300px){.gj-svc{padding:0 32px 40px}.gj-svc h3{font-size:clamp(40px,4.4vw,56px);line-height:1.2}}
@media (max-width:991px){.gj-services__grid,.gj-cards,.gj-feat,.gj-posts{grid-template-columns:repeat(2,minmax(0,1fr))}.gj-svc h3{font-size:clamp(40px,6.4vw,56px)}}
@media (max-width:767px){
  .gj-services__grid,.gj-cards,.gj-feat,.gj-posts{grid-template-columns:minmax(0,1fr)}
  .gj-svc{padding:0 24px 32px}
  .gj-svc h3{font-size:clamp(36px,12vw,52px)}
}
/* "Success Stories" headings on Buyers, Sellers, About and the agent pages carry an inline -200px left margin (it centers them beside the photo on desktop); once the photo column stacks, it pushed them off the left edge */
@media (max-width:991px){
  .cbl__column-box [style*="margin:0 0 0 -"],.cbl__column-box [style*="margin: 0px 0px 0px -"],.cbl__column-box [style*="margin-left:-"],.cbl__column-box [style*="margin-left: -"]{margin-left:0!important;margin-right:0!important;max-width:100%}
}
/* sold-home result bars hang 30px off each photo; in the right-hand column that ran 15px past the screen edge on 1025–1439px laptops */
@media (min-width:1025px) and (max-width:1439px){.gj-row .fd-solds__image .cbl__widget--text{right:-15px}}
/* 12. Quicker reveal animations — the same fade-up as the live site, about 40% faster (the stagger between items is halved in gj-patch5.js); after the first page of a visit the header no longer replays its slide-in */
@media (prefers-reduced-motion:no-preference){.gj-anim{transition-duration:.5s}.gj-anim--fade{transition-duration:.7s}}
html.gj-seen .gj-header .gj-anim{opacity:1!important;transform:none!important;transition:none!important}
/* old empty "Featured Listings" sliders now hold live listing cards (gj-rebuild-patches §6): the slider's left indent goes */
.gj-row:has(>.gj-col>.gj-featfix){padding-left:0!important}
.gj-featfix .gj-cards{margin-top:30px}
/* 13. Photo-only columns ("Create Your Story", "Success Stories", the Sellers and agent pages, sold-home pages) had no height of their own, so their photos never showed beside the text on desktop — they now fill the height of the text column, as on the live site */
@media (min-width:992px){.gj-row>.gj-col.cbl__column-box:empty{align-self:stretch}}
/* 14. Home hero: the theme's stylesheet still pulled the video's placeholder photo from the old site's CDN — use the copy in the Media Library (the same file the video already shows as its poster) */
.gj-vhero{background-color:#1b2a36;background-image:none!important} /* 1.6.6: poster image covers the hero; the extra 183K background was redundant */
/* 15. IDX listing credit (CSMAR rule 12.16.5; Fidencio, Oct 6: brokerage, agent and DRE # no smaller than the page's average text) — at the size of the listing details beside it: 14px in cards, search results, map popups and previews, 16px on listing pages (unchanged) */
.gj-card__c{font-size:14px!important;line-height:1.45!important}
.gj-lrow__courtesy{display:block;margin-top:8px;font-size:14px;line-height:1.45;color:#4f555b;font-weight:500;overflow-wrap:anywhere}
.gj-pop__courtesy{font-size:14px!important;color:#4f555b!important;line-height:1.45!important;overflow-wrap:anywhere}
.gj-peek__courtesy{font-size:14px!important;line-height:1.45!important;overflow-wrap:anywhere}
.gj-ldet__courtesy,.gj-ldcourtesy{overflow-wrap:anywhere}


/* GJ hero readability (Oct 8 2026): the dark overlay sat under the video, so the headline had no contrast. Lift it above the video, deepen it toward the bottom, and add a soft shadow to the text. */
.gj-vhero::before{z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.25) 40%,rgba(0,0,0,.62) 100%)!important;pointer-events:none}
.gj-vhero__inner{z-index:2}
.gj-vhero h1,.gj-vhero__inner h1,.gj-vhero__inner h2{text-shadow:0 2px 14px rgba(0,0,0,.45)}
.gj-vhero__sub{text-shadow:0 1px 3px rgba(0,0,0,.65),0 0 18px rgba(0,0,0,.35);font-weight:500}


/* Oct 8 2026: Buyers "Full-Service Buying Experience" cards (matches the original four dark cards) */
.gj-fsgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;max-width:1140px;margin:40px auto 0;padding:0 15px}
.gj-fscard{background:#1b1b1b;color:#fff;padding:38px 26px 34px;text-align:center;border-top:3px solid #F1704E;display:flex;flex-direction:column;gap:14px}
.gj-fscard h3{color:#fff;margin:0;font:600 15px/1.4 var(--gj-font-body,inherit);letter-spacing:.14em;text-transform:uppercase}
.gj-fscard p{color:#d6d6d6;margin:0;font-size:15px;line-height:1.7}
@media (max-width:1024px){.gj-fsgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.gj-fsgrid{grid-template-columns:1fr}}
.gj-gap-after{padding-bottom:6rem!important}


/* Oct 8 2026: compact locate button on the search map; iOS data-detector links neutralised */
.gj-locate{width:26px;height:26px;padding:0;margin-bottom:8px!important;border:0;border-radius:4px;background:#fff;color:#1b1b1b;box-shadow:0 1px 4px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;cursor:pointer}
.gj-locate:hover{color:#F1704E}.gj-locate.is-busy{color:#F1704E;animation:gjpulse 1s infinite}
@keyframes gjpulse{50%{opacity:.45}}
a[x-apple-data-detectors]{color:inherit!important;text-decoration:none!important;font:inherit!important;pointer-events:none}


/* Oct 8 2026: phone layout of the map search — price/beds/baths live in Filters, so the quick dropdowns go; the find-me button sits left of Sort/Filters */
.gj-locate--bar{display:none}
@media (max-width:767px){
.gj-srch__dd{display:none!important}
.leaflet-control.gj-locate{display:none!important}
.gj-locate--bar{display:flex!important;flex:0 0 34px!important;width:34px!important;min-width:34px;height:34px!important;padding:0!important;margin:0!important;box-shadow:none;border:1px solid #d9d4cc}
.gj-locate--bar svg{width:15px;height:15px;flex:none}
.gj-srch__meta{display:flex!important;flex-wrap:nowrap!important;align-items:center;justify-content:space-between;gap:8px;margin-top:6px!important;margin-bottom:6px!important}
.gj-srch__sort{display:flex!important;flex:0 0 auto;align-items:center;gap:6px}
.gj-srch__count{flex:1 1 auto;min-width:0;margin:0!important;font-size:12px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gj-srch__sort select{max-width:112px}
.gj-srch__head{gap:6px!important;margin-bottom:0!important}
}


/* Oct 8 2026: saved-home heart pins; hearts flip instantly */
.gj-pin--fav span{padding:5px 7px 4px;background:#fff;color:#e0245e;line-height:0;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.gj-pin--fav span svg{display:block}
.gj-heart,.gj-heart::before{transition:none!important}


/* Oct 8 2026: one colour language for listing status — white = active, amber = pending/in escrow, orange = sold, charcoal = coming soon */
.gj-pin--pend span{background:#ffd166;color:#121619}
.gj-pin--pend span::after{border-top-color:#ffd166}
.gj-pin--sold span{background:#F1704E;color:#fff}
.gj-pin--sold span::after{border-top-color:#F1704E}
.gj-showchips{display:flex;flex-wrap:wrap;gap:8px}
.gj-chip{position:relative;display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 10px;border:1.5px solid #d9d4cc;border-radius:999px;background:#fff;cursor:pointer;font:600 13px/1 var(--gj-font-body,inherit);color:#1b1b1b;user-select:none}
.gj-chip input{position:absolute;opacity:0;width:0;height:0}
.gj-chip i{width:14px;height:14px;border-radius:50%;border:1.5px solid #bdb6ac;background:#fff;flex:none}
.gj-chip--pending i{background:#ffd166;border-color:#e2b24a}
.gj-chip--sold i{background:#F1704E;border-color:#d85a39}
.gj-chip:has(input:checked){border-color:#1b1b1b;background:#1b1b1b;color:#fff}
.gj-chip:has(input:checked) i{box-shadow:0 0 0 2px #1b1b1b inset}
.gj-chip--active:has(input:checked) i{background:#fff;border-color:#fff}
.gj-showhint{margin:8px 0 0;font-size:12px;color:#8a847b;line-height:1.5}
.gj-lrow__tag{display:inline-block;padding:3px 8px;border-radius:3px;font:700 10px/1 var(--gj-font-body,inherit);letter-spacing:.1em;text-transform:uppercase;background:#ffd166;color:#121619}
.gj-lrow--sold .gj-lrow__tag,.gj-lrow__tag--sold{background:#F1704E;color:#fff}
.gj-lrow__tag--soon{background:#121619;color:#fff}


/* Oct 8 2026: find-me beside the search box (all sizes) + the "you're in …" card */
.leaflet-control.gj-locate{display:none!important}
.gj-locate--bar{display:none!important}
.gj-srch__q{display:flex;align-items:stretch;gap:8px}
.gj-srch__q input[type=search]{flex:1 1 auto;min-width:0}
.gj-locate--q{flex:0 0 44px;width:44px;height:auto;min-height:44px;margin:0!important;border:1px solid #d9d4cc;border-radius:4px;box-shadow:none;background:#fff}
.gj-search__in--loc{display:flex;align-items:center}
.gj-search .gj-locate--hero{flex:0 0 34px;width:34px;height:34px;margin:0 6px 0 0!important;border:1px solid #e3ded7;border-radius:4px;box-shadow:none;background:#fff;color:#1b1b1b}
.gj-search__in--loc input{flex:1 1 auto;min-width:0}
.gj-locard{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:8px 0 2px;padding:10px 36px 10px 12px;background:#fff6f2;border:1px solid #f3cdbf;border-radius:6px;font-size:14px;line-height:1.4;color:#1b1b1b}
.gj-locard__btns{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.gj-locard__btn{border:0;border-radius:4px;background:#F1704E;color:#fff;font:600 12px/1 var(--gj-font-body,inherit);letter-spacing:.06em;text-transform:uppercase;padding:9px 12px;cursor:pointer}
.gj-locard__btn--ghost{background:#fff;color:#1b1b1b;border:1px solid #d9d4cc}
.gj-locard__guide{font-size:13px;color:#F1704E;font-weight:600;text-decoration:none}
.gj-locard__x{position:absolute;top:6px;right:8px;border:0;background:none;font-size:20px;line-height:1;color:#8a847b;cursor:pointer}
@media (max-width:767px){.gj-srch__q{flex-wrap:nowrap}.gj-srch__q .gj-btn{flex:0 0 auto;padding-left:14px;padding-right:14px}}


/* Oct 8 2026: tract-map pin toggles */
.gj-tractpins{display:flex;flex-direction:column;gap:4px;margin:10px 10px 0 0}
.gj-tractpins__b{display:flex;align-items:center;gap:7px;border:1px solid #d9d4cc;border-radius:999px;background:#fff;color:#8a847b;font:600 12px/1 var(--gj-font-body,inherit);padding:7px 10px 7px 8px;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.15);white-space:nowrap}
.gj-tractpins__b i{width:12px;height:12px;border-radius:50%;border:1.5px solid #bdb6ac;background:#fff;opacity:.45}
.gj-tractpins__b--P i{background:#ffd166;border-color:#e2b24a}
.gj-tractpins__b--S i{background:#F1704E;border-color:#d85a39}
.gj-tractpins__b b{font-weight:700;color:inherit}
.gj-tractpins__b.is-on{color:#1b1b1b;border-color:#1b1b1b}
.gj-tractpins__b.is-on i{opacity:1}
@media (max-width:600px){.gj-tractpins{flex-direction:row;flex-wrap:wrap;gap:4px;margin:8px 8px 0 0;justify-content:flex-end}.gj-tractpins__b{padding:6px 8px 6px 7px;font-size:11px}}

/* ---- hero + about photo at tablet/laptop widths (1.5.9) ---- */
.gj-split__photo{background-position:50% 22%!important}
@media (max-width:991px){
  .gj-vhero{min-height:min(72vh,640px)!important;height:auto!important}
  .gj-split__photo{min-height:0!important;height:auto!important;aspect-ratio:4/3!important;max-height:80vh}
}
@media (max-width:600px){
  .gj-split__photo{aspect-ratio:3/4!important}
}

/* ---- tour badges + GJTourBox (1.5.9) ---- */
.gj-lrow__tag--tour{background:#121619!important;color:#fff!important;border:0;cursor:pointer;font:inherit;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:3px;margin-left:6px;line-height:1.4}
.gj-lrow__tag--tour:hover{background:#F1704E!important}
.gj-lrow__tag--3d::before{content:"3D";display:inline-block;font-weight:800;margin-right:5px;padding:0 3px;border:1px solid rgba(255,255,255,.7);border-radius:2px;font-size:9px;line-height:1.3}
.gj-pill--tour{background:#121619;color:#fff;border:0;cursor:pointer;font:inherit}
.gj-pill--tour:hover{background:#F1704E}
.gj-tourbox{position:fixed;inset:0;z-index:100000;background:rgba(10,12,14,.96);display:none;flex-direction:column}
.gj-tourbox.is-open{display:flex}
.gj-tourbox-open{overflow:hidden}
.gj-tourbox__bar{display:flex;align-items:center;gap:14px;padding:10px 14px;color:#fff;min-height:52px}
.gj-tourbox__ttl{font-weight:600;font-size:15px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gj-tourbox__out{color:rgba(255,255,255,.65);font-size:12px;text-decoration:underline;white-space:nowrap}
.gj-tourbox__x{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;font-size:26px;line-height:1;cursor:pointer;flex:0 0 auto}
.gj-tourbox__x:hover{background:#F1704E;border-color:#F1704E}
.gj-tourbox__body{flex:1;min-height:0;padding:0 14px 14px}
.gj-tourbox__frame{width:100%;height:100%;border:0;border-radius:8px;background:#000}
@media (max-width:600px){.gj-tourbox__out{display:none}.gj-tourbox__body{padding:0}.gj-tourbox__frame{border-radius:0}}


/* ---- tract picker (/tract-search/) ---- */
.gj-tp{--tp-ink:#121619;--tp-or:#F1704E;max-width:1400px;margin:0 auto;padding:0 16px 40px}
.gj-tp__head{padding:28px 0 16px}
.gj-tp__eyebrow{display:block;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#777;margin-bottom:8px}
.gj-tp__title{font:500 34px/1.1 var(--gj-font-head,inherit);margin:0 0 8px}
.gj-tp__sub{margin:0;color:#555;max-width:640px;line-height:1.5}
.gj-tp__tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 14px;position:relative;z-index:5}
.gj-tp__tools select,.gj-tp__tools input{font:inherit;font-size:14px;padding:10px 12px;border:1px solid #d6d6d6;border-radius:4px;background:#fff;min-height:42px}
.gj-tp__findwrap{position:relative;flex:1 1 220px;max-width:360px}
.gj-tp__findwrap input{width:100%}
.gj-tp__sugg{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 10px 30px rgba(0,0,0,.12);z-index:20;overflow:hidden}
.gj-tp__sugg button{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;font:inherit;font-size:14px;padding:9px 12px;border:0;background:#fff;cursor:pointer}
.gj-tp__sugg button:hover{background:#fff1ec}
.gj-tp__sugg small{color:#888;font-size:12px}
.gj-tp__hint{font-size:13px;color:#777;margin-left:auto}
.gj-tp__body{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}
.gj-tp__map{height:min(70vh,760px);min-height:420px;border-radius:8px;overflow:hidden;background:#e9ebe6;z-index:1}
.gj-tp__tip{font:600 12px/1.3 inherit;background:var(--tp-ink);color:#fff;border:0;border-radius:4px;padding:5px 8px}
.gj-tp__tip::before{display:none}
.gj-tp__panel{position:sticky;top:90px;background:#fff;border:1px solid #e3e3e3;border-radius:8px;padding:18px}
.gj-tp__panel h3{margin:0 0 4px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#777}
.gj-tp__count{display:block;font-size:14px;color:var(--tp-or);font-weight:600;min-height:20px;margin-bottom:10px}
.gj-tp__sel{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;max-height:34vh;overflow:auto}
.gj-tp__chip{display:inline-flex;align-items:center;gap:6px;background:#fff1ec;color:#8a3a22;border:1px solid #f6c7b7;border-radius:999px;padding:5px 6px 5px 11px;font-size:13px;font-weight:600}
.gj-tp__chip button{width:20px;height:20px;border-radius:50%;border:0;background:#f6c7b7;color:#8a3a22;font-size:15px;line-height:1;cursor:pointer}
.gj-tp__chip button:hover{background:var(--tp-or);color:#fff}
.gj-tp__empty{font-size:13px;color:#888;line-height:1.5}
.gj-tp__actions{display:grid;gap:8px}
.gj-tp__go,.gj-tp__alert{display:block;text-align:center;font:600 13px/1 inherit;letter-spacing:.14em;text-transform:uppercase;padding:15px 14px;border-radius:4px;text-decoration:none;cursor:pointer;border:1px solid var(--tp-ink)}
.gj-tp__go{background:var(--tp-or);border-color:var(--tp-or);color:#fff}
.gj-tp__go:hover{background:#d95b3a;border-color:#d95b3a}
.gj-tp__alert{background:#fff;color:var(--tp-ink)}
.gj-tp__alert:hover{background:var(--tp-ink);color:#fff}
.gj-tp__go[disabled],.gj-tp__alert[disabled],.gj-tp__go.is-off{opacity:.4;pointer-events:none}
.gj-tp__clear{margin-top:10px;background:none;border:0;color:#777;font:inherit;font-size:12px;text-decoration:underline;cursor:pointer;padding:0}
.gj-tp__note{font-size:12px;color:#888;line-height:1.5;margin:12px 0 0}
@media (max-width:900px){
  .gj-tp__body{grid-template-columns:1fr}
  .gj-tp__map{height:56vh;min-height:360px}
  .gj-tp__panel{position:static}
  .gj-tp__title{font-size:28px}
  .gj-tp__hint{display:none}
  .gj-tp__actions{position:sticky;bottom:12px;z-index:3;background:#fff;padding-top:6px}
}

/* tract filter chip on the search page + picker polish */
.gj-tractchip{display:flex;align-items:center;gap:10px;margin:8px 0 2px;padding:8px 10px 8px 12px;background:#fff1ec;border:1px solid #f6c7b7;border-radius:4px;font-size:13px;color:#8a3a22}
.gj-tractchip span{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gj-tractchip a{color:#8a3a22;text-decoration:underline;white-space:nowrap}
.gj-tractchip button{width:22px;height:22px;border-radius:50%;border:0;background:#f6c7b7;color:#8a3a22;font-size:16px;line-height:1;cursor:pointer}
.gj-tp{padding-top:28px}

/* ---- sold date beside the Sold pill + 'Listed for' under the sale price (1.6.4) ---- */
.gj-solddate{display:inline-block;margin-left:7px;font:600 11.5px/1.4 var(--gj-font-body,inherit);color:#F1704E;letter-spacing:.02em;vertical-align:middle}
.gj-listedfor{font-size:12.5px;color:#8b8d94;line-height:1.4;margin:-2px 0 4px}
.gj-ldet__body .gj-listedfor{margin:-4px 0 8px}

.gj-pill--sold{background:#F1704E!important;color:#fff!important}
.gj-pill--solddate{background:transparent!important;color:#F1704E!important;font-weight:600;letter-spacing:.02em;text-transform:none;padding-left:4px}
.gj-ldprice+.gj-listedfor{margin:-6px 0 14px;font-size:13px}

/* ---- filter panel: statuses on one line under For Sale / For Rent (1.6.4) ---- */
.gj-fsec--status{margin-top:10px;padding-top:0}
.gj-showchips.gj-statusrow{display:flex;flex-wrap:nowrap;gap:8px}
.gj-statusrow .gj-chip{flex:1 1 0;justify-content:center;min-width:0;white-space:nowrap}
.gj-soldwithin{margin-top:10px;font-size:13px;color:#4a4d55}
.gj-soldwithin label{display:flex;align-items:center;gap:8px}
.gj-soldwithin select{flex:1;max-width:220px;padding:6px 8px;border:1px solid #d9dbe0;border-radius:4px;font:inherit}

/* hero: static still underneath, clip fades in once playing (1.7.0) */
.gj-vhero__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gj-vhero__video{opacity:0;transition:opacity .8s ease}
.gj-vhero__video.is-playing{opacity:1}

/* ---- tract teaser card heart + menu on city pages (1.7.2) ---- */
#gjcard .ph{position:relative}
.gj-trheart{position:absolute;top:8px;left:8px;width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#F1704E;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;box-shadow:0 1px 4px rgba(0,0,0,.25);padding:0}
.gj-trheart:hover,.gj-trheart.is-on{background:#F1704E;color:#fff}
.gj-trheart.is-on svg{fill:currentColor}
.gj-trmenu{display:flex;flex-direction:column;gap:6px;margin:0 0 12px;padding:10px;border:1px solid #e6e7eb;border-radius:8px;background:#fafafa}
.gj-trmenu__a{font-size:13px;font-weight:600;line-height:1.3;color:#121619!important;text-decoration:none!important;padding:9px 10px;border-radius:6px;background:#fff;border:1px solid #d9dbe0;text-align:center}
.gj-trmenu__a--save{background:#F1704E;color:#fff!important;border-color:#F1704E}
.gj-trmenu__note{font-size:11.5px;color:#6b6e76;line-height:1.4;text-align:center}

/* ---- Success Stories: all-reviews grid with Read more + scroll-to-reveal (1.7.3) ---- */
.gj-tsec--all{padding:72px 0 96px}
.gj-tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;align-items:start}
.gj-tgrid .gj-tcard{display:none;width:auto;max-width:none;margin:0;flex:none;opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease}
.gj-tgrid .gj-tcard.is-shown{display:block}
.gj-tgrid .gj-tcard.is-in{opacity:1;transform:none}
.gj-tgrid .gj-tcard__q{overflow:hidden}
.gj-tgrid .gj-tcard:not(.is-open) .gj-tcard__q{display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical}
.gj-tgrid .gj-tcard__more{display:inline-block;background:none;border:0;padding:0;margin:6px 0 10px;color:#F1704E;font:600 13px/1.4 inherit;cursor:pointer;text-decoration:underline}
.gj-tgrid .gj-tcard__more[hidden]{display:none}
.gj-tgrid__src{margin:28px 0 0;text-align:center;font-size:12.5px;color:#8b8d94}
.gj-tgrid__src a{color:#8b8d94}
.gj-tgrid__sentinel{height:1px}
@media (max-width:600px){.gj-tgrid{grid-template-columns:1fr;gap:16px}.gj-tsec--all{padding:48px 0 72px}}

/* review stars yellow, like Yelp/Google (1.7.6) */
.gj-tcard__stars{color:#F5B400!important;letter-spacing:2px}
.gj-tgrid .gj-tcard{filter:none!important} /* the homepage carousel greys out inactive cards; the grid never should */
