/* ============================================================
   FORTRESS PROPERTY SERVICES — shared foundation
   Aligned with the Fortress Investment & Real Estate Group
   landing page: editorial light surface, indigo accent, Jost.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Jost:wght@300;400;500;600;700&amp;family=Spline+Sans+Mono:wght@400;500;600&amp;display=swap');

:root{
  /* palette — mirrors the landing page's "editorial" direction */
  --navy:        #F4F4F0;
  --navy-deep:   #ECECE5;
  --navy-panel:  #FBFBF8;
  --navy-line:   rgba(14,42,50,.15);
  --gold:        #3358C9;
  --gold-soft:   #5875D9;
  --gold-deep:   #28469E;
  --cream:       #0E2A32;
  --cream-dim:   rgba(14,42,50,.66);
  --muted:       rgba(14,42,50,.50);
  --muted-deep:  rgba(14,42,50,.40);

  /* type */
  --serif: 'Jost', 'Century Gothic', ui-sans-serif, sans-serif;
  --body:  'Jost', 'Century Gothic', ui-sans-serif, system-ui, sans-serif;
  --mono:  'Spline Sans Mono', ui-monospace, 'SFMono-Regular', monospace;

  /* metrics */
  --maxw: 1280px;
  --gutter: clamp(22px, 5vw, 88px);
  --rule: rgba(51,88,201,.32);
  --hair: rgba(14,42,50,.12);
  --panel: var(--navy-panel);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:hidden; max-width:100vw; }
body{
  margin:0;
  background:var(--navy);
  color:var(--cream);
  font-family:var(--body);
  font-weight:400;
  font-size:18px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  max-width:100vw;
  overflow-wrap:anywhere;
}
img, svg, video, iframe { max-width:100%; height:auto; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

/* faint engineering grid overlay (fixed) */
.grid-bg{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(to right, var(--hair) 1px, transparent 1px),
    linear-gradient(to bottom, var(--hair) 1px, transparent 1px);
  background-size: clamp(60px,7vw,104px) clamp(60px,7vw,104px);
  -webkit-mask-image:radial-gradient(120% 90% at 50% 0%, #000 35%, transparent 100%);
  mask-image:radial-gradient(120% 90% at 50% 0%, #000 35%, transparent 100%);
  opacity:.6;
}

/* ---------- shared text utilities ---------- */
.eyebrow{
  font-family:var(--mono);
  font-size:12px; font-weight:500;
  letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold);
  display:inline-flex; align-items:center; gap:.8em;
}
.eyebrow.muted{ color:var(--muted); }
.eyebrow .dot{ width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none; }
.eyebrow .ring{ width:7px;height:7px;border-radius:50%;border:1.5px solid var(--muted);flex:none; }

.display{
  font-family:var(--serif);
  font-weight:700;
  line-height:.98;
  letter-spacing:-.012em;
  margin:0;
}
.gold{ color:var(--gold); }
.gold-italic{ color:var(--gold); font-style:italic; font-weight:600; }
.ital{ font-style:italic; }

.lede{
  font-family:var(--body);
  font-weight:400;
  font-size:clamp(21px,2.3vw,24px);
  line-height:1.6;
  color:var(--cream-dim);
  max-width:60ch;
  text-wrap:pretty;
}
.kicker{
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(26px,3.4vw,40px);
  line-height:1.06;
  letter-spacing:-.01em;
  margin:0;
}

.meta{
  font-family:var(--mono);
  font-size:11.5px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--muted-deep);
}

/* dash list */
.dash-list{ list-style:none; margin:0; padding:0; }
.dash-list li{
  font-family:var(--body); font-size:18px; color:var(--cream);
  padding:.42em 0; display:flex; gap:.7em; align-items:baseline;
  border-bottom:1px solid var(--hair);
}
.dash-list li::before{ content:"—"; color:var(--gold); flex:none; }
.dash-list.tight li{ border-bottom:none; padding:.28em 0; }

/* hairline rule */
.rule{ height:1px; background:var(--rule); border:0; margin:0; }
.rule-faint{ height:1px; background:var(--hair); border:0; margin:0; }

/* buttons / links */
.btn{
  font-family:var(--mono); font-size:12.5px; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:.7em;
  padding:14px 22px; border:1px solid var(--gold);
  color:var(--navy); background:var(--gold);
  transition:background .2s ease, color .2s ease, transform .2s ease;
  cursor:pointer;
}
.btn:hover{ background:var(--gold-soft); }
.btn.ghost{ background:transparent; color:var(--gold); }
.btn.ghost:hover{ background:rgba(201,162,78,.10); }
.btn .arrow{ font-family:var(--body); font-size:16px; }

.tlink{
  font-family:var(--mono); font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold); display:inline-flex; align-items:center; gap:.6em;
  border-bottom:1px solid transparent; padding-bottom:2px;
  transition:border-color .2s, gap .2s;
}
.tlink:hover{ border-color:var(--gold); gap:.95em; }

/* phone CTA */
.phone-cta{
  font-family:var(--serif); font-weight:600; font-style:italic;
  color:var(--cream); display:inline-flex; align-items:baseline; gap:.5em;
}
.phone-cta .num{ font-size:1.05em; }
.phone-cta:hover .num{ color:var(--gold); }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(244,244,240,.82);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--hair);
}
.nav-inner{
  max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter);
  height:96px; display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand{ display:flex; align-items:center; gap:14px; flex:none; }
.brand img{ height:68px; width:auto; }
.brand-icon{ height:40px; width:40px; color:var(--gold); flex:none; }
.brand .wm{ display:flex; flex-direction:column; line-height:1; }
.brand .wm b{ font-family:var(--body); font-weight:600; font-size:17px; letter-spacing:.024em; text-transform:uppercase; }
.brand .wm span{ font-family:var(--mono); font-size:8.5px; letter-spacing:.12em; word-spacing:-.18em; color:var(--muted); margin-top:2px; text-transform:uppercase; }
.nav-links{ display:flex; align-items:center; gap:clamp(20px,2.6vw,34px); }
.nav-links a{
  font-family:var(--mono); font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--cream-dim); transition:color .2s; position:relative; padding:6px 0;
}
.nav-links a:hover, .nav-links a[aria-current="page"]{ color:var(--gold); }
.nav-links a[aria-current="page"]::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:var(--gold);
}
.nav-phone{
  font-family:var(--mono); font-size:13px; letter-spacing:.1em; color:var(--cream);
  border:1px solid var(--rule); padding:11px 18px; transition:border-color .2s, color .2s; white-space:nowrap;
}
.nav-phone:hover{ border-color:var(--gold); color:var(--gold); }
.nav-actions{ display:flex; align-items:center; gap:14px; flex:none; }
.nav-toggle{
  display:none; flex-direction:column; justify-content:center; align-items:stretch; gap:5px;
  width:26px; height:20px; background:none; border:none; padding:0; cursor:pointer; flex:none; z-index:60;
}
.nav-toggle span{ display:block; height:2px; width:100%; background:var(--cream); border-radius:2px; transition:transform .3s, opacity .3s; }
.nav.is-open .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav.is-open .nav-toggle span:nth-child(2){ opacity:0; }
.nav.is-open .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
@media(max-width:1020px){
  .nav-toggle{ display:flex; }
  .nav-links{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--navy-panel); border-bottom:1px solid var(--hair);
    padding:6px var(--gutter) 22px; max-height:calc(100vh - 100%); overflow-y:auto;
    transform:translateY(-8px); opacity:0; visibility:hidden; pointer-events:none;
    transition:transform .3s, opacity .3s, visibility 0s linear .3s;
  }
  .nav-links a{ padding:14px 0; border-bottom:1px solid var(--hair); }
  .nav.is-open .nav-links{
    transform:translateY(0); opacity:1; visibility:visible; pointer-events:auto;
    transition:transform .3s, opacity .3s;
  }
  .nav-phone{ font-size:12px; padding:10px 14px; }
}

/* ============================================================
   SECTION SCAFFOLD
   ============================================================ */
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); position:relative; z-index:1; }
section{ position:relative; z-index:1; }
.sec-head{ display:flex; align-items:baseline; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:42px; }

/* ============================================================
   FOOTER
   ============================================================ */
.foot{ background:var(--navy-deep); border-top:1px solid var(--rule); position:relative; z-index:1; margin-top:0; }
.foot-top{ max-width:var(--maxw); margin:0 auto; padding:72px var(--gutter) 56px;
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:48px; }
.foot h4{ font-family:var(--mono); font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin:0 0 20px; font-weight:500; }
.foot .brand img{ height:84px; }
.foot .brand-icon{ height:52px; width:52px; }
.foot ul{ list-style:none; margin:0; padding:0; }
.foot ul li{ margin-bottom:12px; }
.foot ul a{ font-family:var(--body); color:var(--cream-dim); font-size:16px; transition:color .2s; }
.foot ul a:hover{ color:var(--gold); }
.foot .blurb{ font-family:var(--body); font-weight:400; color:var(--muted); font-size:15px; line-height:1.6; max-width:34ch; margin:18px 0 0; }
.foot-licenses{ max-width:var(--maxw); margin:0 auto; padding:28px var(--gutter);
  border-top:1px solid var(--hair); display:flex; flex-wrap:wrap; gap:8px 40px; }
.foot-licenses span{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; color:var(--muted-deep); text-transform:uppercase; line-height:1.8; }
.foot-bar{ max-width:var(--maxw); margin:0 auto; padding:22px var(--gutter); border-top:1px solid var(--hair);
  display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap; }
.foot-bar .meta{ color:var(--muted-deep); }
.foot-social{ display:flex; gap:10px; margin-top:24px; }
.foot-social a{ width:38px; height:38px; border:1px solid var(--rule); display:inline-flex; align-items:center; justify-content:center; color:var(--cream-dim); transition:border-color .2s, color .2s, background .2s; }
.foot-social a:hover{ border-color:var(--gold); color:var(--gold); background:rgba(201,162,78,.08); }
.foot-social svg{ width:18px; height:18px; display:block; }
.foot ul a.foot-addr{ line-height:1.5; display:inline-block; }
@media(max-width:860px){ .foot-top{ grid-template-columns:1fr 1fr; gap:36px; } }
@media(max-width:520px){ .foot-top{ grid-template-columns:1fr; } }

/* image slot baseline */
image-slot{ background:var(--navy-panel); --is-bg:var(--navy-panel); }

/* reveal on scroll */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; } }
