/* ============================================================
   Law Firm MS  -  site.css
   Palette: deep navy + gold accent, clean legal aesthetic
   ============================================================ */
:root{
  --navy:#182848;
  --navy-2:#22335f;
  --navy-3:#2b3f75;
  --gold:#c8a24b;
  --gold-2:#d9b968;
  --ink:#1c2333;
  --muted:#6b7488;
  --line:#e7e9f0;
  --bg:#f5f6fa;
  --card:#ffffff;
}
*{box-sizing:border-box}
body{
  font-family:'Inter','Segoe UI',system-ui,Arial,sans-serif;
  color:var(--ink);
  background:var(--bg);
  margin:0;
}
a{text-decoration:none}
.text-gold{color:var(--gold)!important}
.bg-navy{background:var(--navy)!important}
.serif{font-family:'Playfair Display',Georgia,serif}

/* ---------- Buttons ---------- */
.btn-gold{
  background:var(--gold);border:none;color:#20160a;font-weight:600;
  transition:.2s;
}
.btn-gold:hover{background:var(--gold-2);color:#20160a}
.btn-navy{background:var(--navy);border:none;color:#fff;font-weight:600}
.btn-navy:hover{background:var(--navy-3);color:#fff}
.btn-outline-navy{border:1.5px solid var(--navy);color:var(--navy);font-weight:600}
.btn-outline-navy:hover{background:var(--navy);color:#fff}

/* ---------- Public navbar ---------- */
.pub-nav{
  background:rgba(24,40,72,.92);backdrop-filter:blur(8px);
  position:fixed;top:0;left:0;right:0;z-index:1030;
}
.pub-nav .navbar-brand{font-weight:700;color:#fff;letter-spacing:.3px}
.pub-nav .navbar-brand i{color:var(--gold)}
.pub-nav .nav-link{color:#d7ddec!important;font-weight:500}
.pub-nav .nav-link:hover{color:#fff!important}

/* ---------- Hero / carousel ---------- */
.hero .carousel-item{height:88vh;min-height:560px}
.hero .slide{
  height:100%;width:100%;
  background-size:cover;background-position:center;position:relative;
  display:flex;align-items:center;
}
.hero .slide::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,rgba(16,26,49,.92) 0%,rgba(24,40,72,.72) 55%,rgba(24,40,72,.35) 100%);
}
.hero .slide-inner{position:relative;z-index:2;color:#fff;max-width:640px}
.hero h1{font-size:3rem;font-weight:800;line-height:1.1}
.hero p.lead{color:#d9deec;font-size:1.15rem}
.hero .eyebrow{
  color:var(--gold);letter-spacing:3px;text-transform:uppercase;
  font-size:.8rem;font-weight:700;
}
@media(max-width:768px){.hero h1{font-size:2rem}.hero .carousel-item{height:92vh}}

/* ---------- Sections ---------- */
.section{padding:90px 0}
.section-title{font-weight:800}
.section-sub{color:var(--muted);max-width:640px;margin:0 auto}
.eyebrow-dark{color:var(--gold);letter-spacing:3px;text-transform:uppercase;font-size:.78rem;font-weight:700}

/* feature cards */
.feature-card{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:30px 26px;height:100%;transition:.25s;
}
.feature-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(24,40,72,.10);border-color:#d8ddea}
.feature-ic{
  width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--navy),var(--navy-3));color:var(--gold);font-size:1.4rem;margin-bottom:16px;
}

/* stat strip */
.stat-strip{background:var(--navy);color:#fff}
.stat h3{font-size:2.4rem;font-weight:800;color:var(--gold);margin:0}
.stat span{color:#c3cbe0}

/* steps */
.step{display:flex;gap:18px;margin-bottom:26px}
.step-num{
  flex:0 0 46px;height:46px;border-radius:50%;background:var(--gold);color:#20160a;
  font-weight:800;display:flex;align-items:center;justify-content:center;font-size:1.1rem;
}
.step h5{margin:2px 0 4px;font-weight:700}
.step p{color:var(--muted);margin:0}

.cta{
  background:linear-gradient(135deg,var(--navy),var(--navy-3));
  border-radius:22px;color:#fff;padding:56px;
}

footer.site-footer{background:#101a31;color:#aeb6cc;padding:40px 0}
footer.site-footer a{color:#aeb6cc}
footer.site-footer a:hover{color:#fff}

/* ---------- Auth pages ---------- */
.auth-wrap{min-height:100vh;display:flex}
.auth-side{
  flex:1;background:linear-gradient(150deg,var(--navy) 0%,var(--navy-3) 100%);
  color:#fff;padding:60px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;
}
.auth-side::after{
  content:"\F47F";font-family:"bootstrap-icons";position:absolute;right:-40px;bottom:-40px;
  font-size:260px;color:rgba(200,162,75,.12);
}
.auth-side .eyebrow{color:var(--gold);letter-spacing:3px;text-transform:uppercase;font-size:.8rem;font-weight:700}
.auth-form{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 20px;background:#fff}
.auth-card{width:100%;max-width:520px}
.auth-card h3{font-weight:800}
@media(max-width:860px){.auth-side{display:none}}

/* ---------- Dashboard shell ---------- */
.app-body{background:var(--bg)}
.sidebar{
  position:fixed;top:0;left:0;bottom:0;width:250px;background:var(--navy);color:#cdd5e8;
  padding:0;z-index:1040;display:flex;flex-direction:column;
}
.sidebar .brand{padding:20px 22px;color:#fff;font-weight:700;font-size:1.15rem;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar .brand i{color:var(--gold)}
.sidebar .menu{padding:14px 0;flex:1;overflow-y:auto}
.sidebar .menu a{
  display:flex;align-items:center;gap:12px;padding:12px 22px;color:#c2cbe0;font-weight:500;border-left:3px solid transparent;
}
.sidebar .menu a i{font-size:1.1rem}
.sidebar .menu a:hover{background:rgba(255,255,255,.06);color:#fff}
.sidebar .menu a.active{background:rgba(200,162,75,.14);color:#fff;border-left-color:var(--gold)}
.sidebar .firm-tag{padding:14px 22px;border-top:1px solid rgba(255,255,255,.08);font-size:.82rem;color:#9aa6c4}

.topbar{
  height:64px;background:#fff;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;padding:0 26px;
  position:sticky;top:0;z-index:1020;
}
.content-area{margin-left:250px}
.page-pad{padding:26px}
@media(max-width:992px){
  .sidebar{transform:translateX(-100%);transition:.25s}
  .sidebar.open{transform:translateX(0)}
  .content-area{margin-left:0}
}
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1035}
.overlay.show{display:block}

/* cards + stats */
.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px}
.stat-card .ic{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.3rem}
.stat-card h2{font-weight:800;margin:6px 0 0}
.stat-card .lbl{color:var(--muted);font-size:.85rem}

.panel{background:#fff;border:1px solid var(--line);border-radius:14px}
.panel-head{padding:16px 20px;border-bottom:1px solid var(--line);font-weight:700;display:flex;align-items:center;justify-content:space-between}
.panel-body{padding:20px}

.table thead th{background:#f2f4f9;color:#42506e;font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.4px;border:none}
.table td{vertical-align:middle}

.form-label{font-weight:600;font-size:.88rem;color:#3a4560}
.form-control,.form-select{border-color:#dce0ea;padding:.55rem .8rem}
.form-control:focus,.form-select:focus{border-color:var(--navy-3);box-shadow:0 0 0 .18rem rgba(43,63,117,.12)}
.req{color:#d9534f}

.dropzone{
  border:2px dashed #c9d0e0;border-radius:12px;padding:26px;text-align:center;color:var(--muted);
  background:#fafbff;
}
.file-chip{display:inline-flex;align-items:center;gap:8px;background:#eef1f8;border-radius:8px;padding:6px 12px;margin:4px 6px 0 0;font-size:.85rem}
