/* home.css — home page: headline over the cover video, quick-path cards, numbers band,
   recent-deliveries ticker, featured listings and closing call to action. Works with home.js. */
.home {
  --hm-navy: #1e2e5e; --hm-navy2: #2b3d73; --hm-gold: #c6a361; --hm-ink: #151515; --hm-mute: #5b6478; --hm-line: #e3e6ee;
  --hm-card: #fff; --hm-soft: #f4f6fa; --hm-bg: #fff;
}
.dark-mode.home { --hm-ink: #fff; --hm-mute: #b7bfd6; --hm-line: #3a4c82; --hm-card: #24366c; --hm-soft: #22346a; --hm-bg: #1e2e5e; }
.home .content-block { min-height: 0 !important; }
.home .arrowmaincontainer, .home .arrowmaincontainermobile { display: none !important; }   /* the quick-path cards replace the old down arrow */
.hm, .hm-head { font-family: "Segoe UI", Arial, sans-serif; font-weight: 400; }
.hm *, .hm *::before, .hm *::after, .hm-head * { box-sizing: border-box; }
.hm svg, .hm-head svg { transform: none !important; margin: 0 !important; }   /* undo the old phone-wide svg rule */
.hm-wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* ---------- headline over the cover video (bottom-left) ---------- */
.home .svideo video { display: block; vertical-align: top; }   /* no baseline gap under the video */
.home .cover { position: relative; border-bottom: 0 !important; box-shadow: none !important; -webkit-box-shadow: none !important; }   /* no old white groove under the video */

/* scroll cue: a mouse outline with a moving wheel, bottom-centre of the video */
.hm-cue { position: absolute; left: 50%; bottom: 26px; z-index: 650; width: 28px; height: 44px; margin-left: -14px; border: 2px solid rgba(255,255,255,.85); border-radius: 15px;
  box-shadow: 0 2px 12px rgba(0,0,0,.35); transition: border-color .2s, transform .2s; }
.hm-cue:hover, .hm-cue:focus-visible { border-color: var(--hm-gold); transform: translateY(3px); }
.hm-cue span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: hm-cue 1.8s ease-in-out infinite; }
.hm-cue:hover span { background: var(--hm-gold); }
@keyframes hm-cue { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }
#hm-start { scroll-margin-top: 100px; }
@media (max-width: 900px) { #hm-start { scroll-margin-top: 70px; } }
.hm-head { --hm-head-b: 110px; position: absolute; left: 6%; bottom: var(--hm-head-b); z-index: 600; max-width: 640px; color: #fff; text-align: left; pointer-events: none; }
.hm-head::before { content: ""; position: absolute; left: -40%; right: -30%; top: -60%; bottom: calc(-1 * var(--hm-head-b)); z-index: -1;   /* ends exactly at the bottom of the video */
  background: radial-gradient(ellipse at 30% 60%, rgba(15,23,48,.62) 0%, rgba(15,23,48,.25) 45%, transparent 72%); }
.hm-head .eyebrow { text-shadow: 0 1px 2px rgba(0,0,0,.7), 0 2px 12px rgba(0,0,0,.6); font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--hm-gold); margin: 0 0 12px; }
.hm-head h1 { font-size: 58px !important; font-weight: 300; line-height: 1.06; margin: 0 0 16px; color: #fff; text-shadow: 0 4px 24px rgba(0,0,0,.45); letter-spacing: .005em; }
.hm-head p { font-size: 19px; color: #e6eaf6; margin: 0 0 24px; line-height: 1.5; text-shadow: 0 2px 12px rgba(0,0,0,.5); }
.hm-head .hm-btn { pointer-events: auto; }

.hm-btn { display: inline-flex; align-items: center; gap: 8px; padding: 13px 26px; border-radius: 30px; font-weight: 600; font-size: 15px; letter-spacing: .02em;
  text-decoration: none !important; border: 0; cursor: pointer; transition: transform .2s, background-color .2s, box-shadow .2s, color .2s; }
.hm-btn:hover, .hm-btn:focus-visible { transform: translateY(-2px); }
.hm-btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.hm-btn svg { width: 16px !important; height: 16px !important; fill: currentColor; transition: transform .25s; }
.hm-btn:hover svg { transform: translateX(3px) !important; }
.hm-btn.gold { background: var(--hm-gold); color: #16213f !important; box-shadow: 0 8px 24px rgba(198,163,97,.35); }
.hm-btn.gold:hover { background: #d4b57a; }
.hm-btn.navy { background: var(--hm-navy); color: #fff !important; }
.dark-mode .hm-btn.navy { background: #fff; color: var(--hm-navy) !important; }

/* ---------- quick-path cards overlapping the bottom of the video ---------- */
.hm-paths { position: relative; z-index: 700; margin-top: -120px; }
.hm-paths .hm-wrap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.hm-paths .hm-wrap > div { display: flex; }
.hm-pth { flex: 1; display: block; background: var(--hm-card); color: var(--hm-ink) !important; text-decoration: none !important; border: 1px solid var(--hm-line);
  border-radius: 16px; padding: 22px; box-shadow: 0 16px 40px rgba(0,0,0,.18); transition: transform .3s, box-shadow .3s, border-color .3s; }
.hm-pth:hover, .hm-pth:focus-visible { transform: translateY(-6px); border-color: var(--hm-gold); box-shadow: 0 24px 50px rgba(0,0,0,.24); }
.hm-pth:focus-visible { outline: 2px solid var(--hm-gold); outline-offset: 2px; }
.dark-mode .hm-pth { box-shadow: 0 16px 40px rgba(0,0,0,.4); }
.hm-pth .ic { width: 46px; height: 46px; border-radius: 12px; background: var(--hm-navy); display: grid; place-items: center; margin-bottom: 14px; transition: background-color .3s; }
.dark-mode .hm-pth .ic { background: #34488a; }
.hm-pth:hover .ic { background: var(--hm-gold); }
.hm-pth .ic svg { width: 24px !important; height: 24px !important; fill: #fff; transition: transform .3s; }
.hm-pth:hover .ic svg { fill: #16213f; transform: scale(1.08) rotate(-6deg) !important; }
.hm-pth b { display: block; font-size: 17px; font-weight: 600; margin-bottom: 4px; }
.hm-pth span { font-size: 13.5px; color: var(--hm-mute); line-height: 1.45; }

/* ---------- numbers band ---------- */
.hm-stats { position: relative; z-index: 5; background: var(--hm-navy); color: #fff;
  border-top: 2px solid var(--hm-gold); border-bottom: 2px solid var(--hm-gold); box-shadow: 0 10px 22px rgba(15,23,48,.35); }
.dark-mode .hm-stats { background: #1e2e5e; box-shadow: 0 10px 22px rgba(0,0,0,.5); }
.hm-stats .hm-wrap { display: grid; grid-template-columns: repeat(4, 1fr); }
.hm-stat { padding: 36px 16px; text-align: center; border-right: 1px solid rgba(255,255,255,.12); }
.hm-stat:last-child { border-right: 0; }
.hm-stat b { display: block; font-size: 42px; font-weight: 300; color: var(--hm-gold); line-height: 1.1; font-variant-numeric: tabular-nums; }
.hm-stat span { font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase; color: #c9d1ea; }

/* ---------- recent deliveries ticker ---------- */
.hm-ticker { position: relative; z-index: 4; overflow: hidden; white-space: nowrap; background: #1e2e5e; color: #fff; padding: 14px 0;
  border-top: 2px solid var(--hm-gold); border-bottom: 2px solid var(--hm-gold); box-shadow: 0 10px 22px rgba(15,23,48,.35); }
.dark-mode .hm-ticker { background: #1e2e5e; box-shadow: 0 10px 22px rgba(0,0,0,.5); }
.hm-ticker .lbl { position: absolute; left: 0; top: 0; bottom: 0; z-index: 2; display: flex; align-items: center; gap: 8px; padding: 0 18px; background: var(--hm-gold);
  color: #16213f; font-weight: 700; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none !important; box-shadow: 8px 0 18px rgba(0,0,0,.35); }
.hm-ticker .lbl:hover { background: #d4b57a; }
.hm-ticker .run { display: inline-block; margin-left: 230px; animation: hm-tick var(--hm-dur, 90s) linear infinite; font-size: 14px; }
/* the ticker waits until it scrolls into view (home.js adds .is-live), and pauses on hover */
.hm-ticker .run { animation-play-state: paused; }
.hm-ticker.is-live .run { animation-play-state: running; }
.hm-ticker.is-live:hover .run, .hm-ticker.is-live:focus-within .run { animation-play-state: paused; }
.hm-ticker .run span { margin-right: 46px; color: #c9d1ea; }
.hm-ticker .run span b { color: #fff; font-weight: 600; margin-right: 6px; }
.hm-ticker .run span i { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--hm-gold); margin-right: 10px; vertical-align: 2px; }
@keyframes hm-tick { to { transform: translateX(-50%); } }

/* ---------- services grid ---------- */
.hm-svc { padding: 84px 0; background: var(--hm-bg); }
.hm-lead { font-size: 17px; color: var(--hm-mute); line-height: 1.6; margin: 12px 0 0; max-width: 680px; }
.hm-svgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 34px; }
.hm-svgrid > div { display: flex; }
.hm-sv { flex: 1; display: block; background: var(--hm-card); border: 1px solid var(--hm-line); border-radius: 14px; padding: 26px 22px; box-shadow: 0 8px 26px rgba(0,0,0,.06);
  color: var(--hm-ink) !important; text-decoration: none !important; transition: transform .3s, box-shadow .3s, border-color .3s; }
.hm-sv:hover, .hm-sv:focus-visible { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(0,0,0,.12); border-color: var(--hm-gold); }
.dark-mode .hm-sv { box-shadow: 0 8px 26px rgba(0,0,0,.3); }
.hm-sv .ic { width: 52px; height: 52px; border-radius: 14px; background: rgba(198,163,97,.15); display: grid; place-items: center; margin-bottom: 16px; transition: background-color .3s; }
.hm-sv:hover .ic { background: var(--hm-gold); }
.hm-sv .ic svg { width: 26px !important; height: 26px !important; fill: var(--hm-gold); transition: transform .3s, fill .3s; }
.hm-sv:hover .ic svg { fill: #16213f; transform: scale(1.08) rotate(-6deg) !important; }
.hm-sv h3 { margin: 0 0 8px; font-size: 18px; font-weight: 600; color: inherit; }
.hm-sv p { margin: 0; font-size: 14px; color: var(--hm-mute); line-height: 1.55; }

/* ---------- featured listings ---------- */
.hm-feat { padding: 80px 0; background: var(--hm-soft); }
.hm-feat .head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; flex-wrap: wrap; }
.hm-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--hm-gold); margin: 0 0 10px; }
.hm-h2 { font-size: 36px !important; font-weight: 300; margin: 0; line-height: 1.15; color: var(--hm-ink); text-align: left !important; }
.hm-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.hm-cards > div { display: flex; }
.hm-lc { flex: 1; display: flex; flex-direction: column; background: var(--hm-card); border: 1px solid var(--hm-line); border-radius: 14px; overflow: hidden;
  box-shadow: 0 8px 26px rgba(0,0,0,.08); text-decoration: none !important; color: var(--hm-ink) !important; transition: transform .3s, box-shadow .3s, border-color .3s; }
.hm-lc:hover, .hm-lc:focus-visible { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(0,0,0,.15); border-color: var(--hm-gold); }
.hm-lc .ph { position: relative; height: 170px; background: linear-gradient(135deg, #1e2e5e, #3c518f); overflow: hidden; }
.hm-lc .ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; display: block; }
.hm-lc:hover .ph img { transform: scale(1.06); }
.hm-lc .ph .noimg { position: absolute; inset: 0; display: grid; place-items: center; }
.hm-lc .ph .noimg svg { width: 74px !important; height: 36px !important; fill: rgba(255,255,255,.3); }
.hm-lc .badges { position: absolute; left: 12px; top: 12px; display: flex; gap: 6px; }
.hm-lc .badge { font-size: 11px; font-weight: 700; letter-spacing: .05em; padding: 4px 10px; border-radius: 20px; background: #fff; color: var(--hm-navy); box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.hm-lc .badge.sale { background: #dcfce7; color: #166534; }
.hm-lc .badge.lease { background: #fef3c7; color: #92400e; }
.hm-lc .badge.both { background: #e0e7ff; color: #3730a3; }
.hm-lc .badge.loi { background: #fee2e2; color: #991b1b; }
.hm-lc .badge.new { background: var(--hm-gold); color: #16213f; }
.hm-lc .tx { padding: 16px 18px 18px; flex: 1; display: flex; flex-direction: column; }
.hm-lc .kind { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--hm-gold); font-weight: 700; }
.hm-lc .nm { font-size: 19px; font-weight: 600; margin: 3px 0 4px; }
.hm-lc .meta { font-size: 13px; color: var(--hm-mute); }
.hm-lc .go { margin-top: auto; padding-top: 12px; font-size: 13px; font-weight: 600; color: var(--hm-navy); }
.dark-mode .hm-lc .go { color: #fff; }

/* ---------- closing call to action over the turbine ---------- */
.hm-cta { position: relative; padding: 120px 0 170px; color: #fff; text-align: center; background: #1e2e5e url("images/turbine.jpeg") center / cover no-repeat; background-attachment: fixed; }
.hm-cta::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,23,48,.5), rgba(15,23,48,.82)); }
.hm-cta .hm-wrap { position: relative; }
.hm-cta h2 { font-size: 42px !important; font-weight: 300; margin: 0 0 12px; color: #fff; text-align: center !important; }
.hm-cta p { color: #d5dbef; font-size: 17px; line-height: 1.55; margin: 0 auto 26px; max-width: 580px; }

/* ---------- tablets & phones ---------- */
@media (max-width: 1100px) { .hm-head h1 { font-size: 46px !important; } }
@media (max-width: 900px) {
  .hm-head { --hm-head-b: 64px; left: 20px; right: 20px; }
  .hm-head h1 { font-size: 34px !important; }
  .hm-head p { font-size: 16px; margin-bottom: 18px; }
  .hm-paths { margin-top: -70px; }
  .hm-paths .hm-wrap { grid-template-columns: 1fr 1fr; gap: 10px; padding: 0 12px; }
  .hm-pth { padding: 16px; border-radius: 14px; }
  .hm-pth .ic { width: 40px; height: 40px; margin-bottom: 10px; }
  .hm-pth b { font-size: 15px; }
  .hm-stats .hm-wrap { grid-template-columns: 1fr 1fr; padding: 0; }
  .hm-stat { padding: 24px 10px; border-bottom: 1px solid rgba(255,255,255,.12); }
  .hm-stat:nth-child(2n) { border-right: 0; }
  .hm-stat b { font-size: 32px; }
  .hm-feat { padding: 56px 0; }
  .hm-svc { padding: 56px 0; }
  .hm-svgrid { grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 24px; }
  .hm-sv { padding: 18px 16px; }
  .hm-h2 { font-size: 28px !important; }
  .hm-cta { padding: 80px 0 130px; background-attachment: scroll; }
  .hm-cta h2 { font-size: 30px !important; }
}
@media (max-width: 480px) { .hm-svgrid { grid-template-columns: 1fr; } .hm-paths .hm-wrap { grid-template-columns: 1fr; } .hm-pth { display: grid; grid-template-columns: 40px 1fr; column-gap: 14px; align-items: center; } .hm-pth .ic { grid-row: span 2; margin: 0; } }
@media (prefers-reduced-motion: reduce) { .hm-cue span { animation: none; } .hm-ticker .run { animation: none; } .hm-ticker { overflow-x: auto; } }

/* ---------- phones: cover fits the screen under the 72px header, scroll cue visible, no sideways panning ---------- */
@media (max-width: 900px) {
  .home .mobilecover .svideo video, .home .mobilecover #slidebackground {
    height: calc(100vh - 72px) !important; height: calc(100svh - 72px) !important; }
  .home .mobilecover .cover, .home .mobilecover .svideo { overflow: hidden !important; touch-action: pan-y; }
  .home .mobilecover { touch-action: pan-y; }
  html, body { overflow-x: hidden; }
  @supports (overflow-x: clip) { html, body { overflow-x: clip; } }
  .home .mobilecover .hm-head { --hm-head-b: 70px; }
  .home .mobilecover .hm-cue { bottom: 14px; width: 24px; height: 38px; margin-left: -12px; }
}
