:root{
  --navy:#0F1F2E;
  --charcoal:#2B2E34;
  --gold:#B08D57;
  --gold-dark:#9c7b47;

  --text:#111827;
  --muted:#6b7280;

  --border:#e5e7eb;
  --shadow-sm: 0 10px 25px rgba(15,31,46,.08);
  --shadow-md: 0 18px 45px rgba(15,31,46,.10);
  --shadow-lg: 0 25px 70px rgba(0,0,0,.22);

  --radius-sm: 12px;
  --radius-md: 16px;
  --radius-lg: 22px;
}

/* =========================
   BASE
========================= */
body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, "Helvetica Neue", Arial, sans-serif;
  color: var(--text);
  background:#fff;
}

a{
  text-decoration:none;
  transition: all .2s ease;
}
a:hover{ opacity:.95; }

/* Better focus visibility (enterprise + accessibility) */
:focus-visible{
  outline: 3px solid rgba(176,141,87,.35);
  outline-offset: 2px;
}

/* =========================
   TOP BAR
========================= */
.top-bar{
  background: var(--charcoal);
  font-size: .85rem;
}
.top-bar a{ color:#cfd3d7; }
.top-bar a:hover{ color:#fff; }

/* =========================
   HEADER / NAV
========================= */
.main-nav{
  background: var(--navy);
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
}

.brand-logo{
  height: 34px;
  width: auto;
  display: inline-block;
}
.brand-text{ letter-spacing: .2px; }

/* Desktop horizontal nav */
.navbar-nav.flex-row .nav-link{
  padding: 10px 12px;
  border-radius: 12px;
}

/* General nav link look */
.nav-link{
  color:#e5e7eb !important;
}
.nav-link:hover{
  color: var(--gold) !important;
}

/* Active link highlight */
.nav-link.active{
  color: var(--gold) !important;
  position: relative;
}
.nav-link.active::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:6px;
  height:2px;
  background: var(--gold);
  border-radius: 99px;
  opacity: .9;
}

/* Header: transparent over hero + solid on scroll */
#siteHeader.header-transparent{
  background: transparent !important;
  box-shadow: none !important;
}
#siteHeader.header-solid{
  background: var(--navy) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.10) !important;
}

/* Dropdown / mega menu */
.dropdown-menu-dark{
  background: rgba(15,31,46,.98);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
}
.dropdown-item{
  color: rgba(229,231,235,.85);
  border-radius: 12px;
}
.dropdown-item:hover{
  background: rgba(255,255,255,.06);
  color: #fff;
}

.mega-menu{
  width: 360px;
}
.mega-link{
  display:block;
  padding:10px 10px;
  border-radius: 12px;
  color: rgba(229,231,235,.85);
}
.mega-link:hover{
  background: rgba(255,255,255,.06);
  color:#fff;
}

/* Mobile offcanvas links */
.nav-link-mobile{
  display:block;
  padding:12px 12px;
  border-radius: 14px;
  color: rgba(229,231,235,.90);
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
}
.nav-link-mobile:hover{
  border-color: rgba(176,141,87,.35);
  color:#fff;
}
.nav-link-mobile.active{
  border-color: rgba(176,141,87,.55);
  color: var(--gold);
}

/* =========================
   BUTTON SYSTEM (IMPROVED)
========================= */
.btn{
  border-radius: 14px;
  font-weight: 600;
  letter-spacing: .2px;
  padding: 10px 14px;
  line-height: 1.2;
}

/* Size helpers (use with Bootstrap: btn-lg already exists but we standardize) */
.btn.btn-sm{
  padding: 8px 12px;
  border-radius: 12px;
  font-size: .9rem;
}
.btn.btn-lg{
  padding: 14px 18px;
  border-radius: 16px;
  font-size: 1.05rem;
}

/* Gold primary */
.btn-gold{
  background: var(--gold);
  color: var(--navy);
  border: none;
  box-shadow: 0 10px 25px rgba(176,141,87,.22);
}
.btn-gold:hover{
  background: var(--gold-dark);
  color:#fff;
}
.btn-gold:focus-visible{
  outline-color: rgba(176,141,87,.55);
}

/* Gold outline */
.btn-outline-gold{
  border: 1px solid var(--gold);
  color: var(--gold);
  background: transparent;
}
.btn-outline-gold:hover{
  background: var(--gold);
  color: var(--navy);
}

/* Keep button groups spaced nicely */
.btn + .btn{ margin-left: 10px; }
@media (max-width: 576px){
  .btn + .btn{ margin-left: 0; margin-top: 10px; }
}

/* =========================
   SECTION / TYPOGRAPHY
========================= */
.section-pad{ padding: 72px 0; }
.section-title{
  font-weight: 800;
  letter-spacing: -.02em;
}
.section-subtitle{
  color: var(--muted);
  margin-top: 12px;
  font-size: 1.05rem;
}

/* =========================
   HERO
========================= */
.hero-wrap{ position:relative; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-grid{ width:100%; height:100%; display:block; }
.hero-content{ position:relative; z-index:1; padding: 84px 0; }

.badge-pill{
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 14px;
  border:1px solid rgba(176,141,87,.35);
  border-radius:999px;
  color:#e5e7eb;
  background: rgba(15,31,46,.25);
  backdrop-filter: blur(8px);
  font-size: .9rem;
}
.badge-pill .dot{
  width:8px; height:8px; border-radius:999px;
  background: var(--gold);
  box-shadow: 0 0 0 6px rgba(176,141,87,.16);
}

.text-hero-muted{ color: rgba(229,231,235,.78); }

/* Trust row */
.hero-trust{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin-top:18px;
}
.trust-item{
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  background: rgba(255,255,255,.03);
}
.trust-kpi{ color:#fff; font-weight:700; }
.trust-sub{ color: rgba(229,231,235,.7); font-size:.9rem; }

/* Glass card */
.glass-card{
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius: var(--radius-lg);
  padding: 22px;
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow-lg);
}

/* Checklist */
.checklist{ list-style:none; padding:0; margin:0; }
.checklist li{
  padding-left:26px;
  margin:10px 0;
  color: rgba(229,231,235,.8);
  position:relative;
}
.checklist li:before{
  content:"✓";
  position:absolute; left:0; top:0;
  color: var(--gold);
  font-weight: 800;
}

/* =========================
   CARDS
========================= */
.feature-card{
  border:1px solid var(--border);
  border-radius: 18px;
  padding: 22px;
  background:#fff;
  box-shadow: var(--shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease;
}
.feature-card:hover{
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}
.feature-icon{
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  border-radius: 14px;
  background: rgba(176,141,87,.10);
  margin-bottom: 14px;
}

/* Dark section */
.section-dark{
  background: linear-gradient(180deg, #1f2328, var(--charcoal));
}
.service-card{
  border:1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  padding: 22px;
  background: rgba(255,255,255,.04);
  box-shadow: 0 18px 55px rgba(0,0,0,.20);
  transition: transform .2s ease, border-color .2s ease;
  position:relative;
  overflow:hidden;
}
.service-card:hover{
  transform: translateY(-4px);
  border-color: rgba(176,141,87,.35);
}
.service-icon{
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  border-radius:14px;
  background: rgba(176,141,87,.10);
  margin-bottom: 14px;
}
.service-card h5{ color:#fff; }
.service-card p{ color: rgba(229,231,235,.75); }

/* Mini stats */
.mini-stat{
  border:1px solid var(--border);
  border-radius: 16px;
  padding: 14px 16px;
  background:#fff;
  box-shadow: var(--shadow-sm);
}
.mini-stat-title{ font-weight: 800; }
.mini-stat-sub{ color: var(--muted); font-size: .95rem; }

/* Quote card */
.quote-card{
  border:1px solid var(--border);
  border-radius: 22px;
  padding: 26px;
  background:#fff;
  box-shadow: 0 18px 55px rgba(15,31,46,.08);
  position:relative;
}
.quote-mark{
  position:absolute;
  top:-18px; left:18px;
  width:46px; height:46px;
  border-radius: 14px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(176,141,87,.12);
  color: var(--gold);
  font-size: 28px;
  font-weight: 900;
}

/* CTA */
.section-navy{
  background: linear-gradient(180deg, rgba(15,31,46,1), rgba(15,31,46,.96));
}

/* =========================
   MODAL FORMS
========================= */
.modal-dark{
  background: var(--navy);
  border:1px solid rgba(255,255,255,.10);
}
.form-control-dark{
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color:#fff !important;
  border-radius: 14px !important;
}
.form-control-dark::placeholder{ color: rgba(229,231,235,.55); }
.form-control-dark:focus{
  box-shadow: 0 0 0 .2rem rgba(176,141,87,.18) !important;
  border-color: rgba(176,141,87,.45) !important;
}

/* =========================
   FOOTER
========================= */
.footer{ background: var(--navy); }
.footer a{ color:#cfd3d7; }
.footer a:hover{ color: var(--gold); }
.footer .text-muted{ color: rgba(207,211,215,.72) !important; }

/* =========================
   RESPONSIVE
========================= */
@media (max-width: 576px){
  .hero-content{ padding: 64px 0; }
  .section-pad{ padding: 56px 0; }
}

/* (Optional) Collapse panel styling if used elsewhere */
@media (max-width: 991.98px){
  .navbar-collapse{
    background: rgba(15,31,46,0.98);
    border-top: 1px solid rgba(255,255,255,0.10);
    border-radius: 0 0 18px 18px;
    padding-bottom: 14px;
  }
  .navbar-nav .nav-link{
    padding: 12px 16px;
  }
}
/* =========================================================
   CRITICAL FIX: Prevent Offcanvas from appearing as a visible
   sidebar on desktop / when bootstrap styles fail to apply.
   Offcanvas should only show when .show is added by Bootstrap.
========================================================= */
.offcanvas {
  display: none;          /* hide by default */
}

.offcanvas.show {
  display: block;         /* show only when opened */
}

/* Never show offcanvas panel on desktop */
@media (min-width: 992px) {
  .offcanvas {
    display: none !important;
  }
}

/* Dropdown fallback: if JS feels sluggish, allow hover-open on desktop */
@media (min-width: 992px) {
  .navbar .dropdown:hover > .dropdown-menu {
    display: block;
  }
}
.filter-btn.active{
  background: var(--gold) !important;
  color: var(--navy) !important;
  border-color: var(--gold) !important;
}

.pagination .page-link{
  border-radius: 12px;
  margin: 0 4px;
}
.pagination .page-item.active .page-link{
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
}
.text-grey {
  color: #9CA3AF !important; /* your theme grey */
}
/* Make service card text white on dark section */
.section-dark .service-card p {
  color: #ffffff !important;
}
