/* CapVisor Associates — modern design system, 2026 redesign */

:root{
  --cv-navy:#0b1f3a;
  --cv-navy-light:#13315c;
  --cv-red:#b3122a;
  --cv-red-dark:#8c0e21;
  --cv-ink:#1a1f29;
  --cv-gray:#5a6472;
  --cv-gray-light:#eef1f5;
  --cv-border:#dfe3ea;
  --cv-bg:#ffffff;
  --cv-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

*{box-sizing:border-box;}

body{
  font-family:var(--cv-font);
  color:var(--cv-ink);
  line-height:1.65;
  background:var(--cv-bg);
  -webkit-font-smoothing:antialiased;
}

a{color:var(--cv-red);text-decoration:none;}
a:hover, a:focus{color:var(--cv-red-dark);text-decoration:underline;}

h1,h2,h3,h4,h5{
  font-family:var(--cv-font);
  font-weight:700;
  color:var(--cv-navy);
  letter-spacing:-0.01em;
}

h2{margin-bottom:1rem;}

.cv-eyebrow{
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:18px !important;
  font-weight:700;
  color:var(--cv-red);
  margin-bottom:.5rem;
  display:block;
}

/* Navbar override */
.navbar.navbar-default.navbar-fixed-top{
  background:var(--cv-bg);
  border-bottom:1px solid var(--cv-border);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.navbar-default .navbar-nav>li>a{
  color:var(--cv-navy);
  font-weight:600;
  font-size:.92rem;
  letter-spacing:.01em;
}
.navbar-default .navbar-nav>li>a:hover,
.navbar-default .navbar-nav>li.active>a{
  color:var(--cv-red);
  background:transparent;
}
.navbar-brand img.logo{max-height:42px;width:auto;}

/* Hero sections */
.cv-hero{
  background:linear-gradient(135deg, var(--cv-navy) 0%, var(--cv-navy-light) 100%);
  color:#fff;
  padding:90px 0 70px;
  margin-top:50px;
}
.cv-hero h1, .cv-hero h2{color:#fff;}
.cv-hero .lead{
  font-size:1.15rem;
  color:#dfe6f0;
  max-width:720px;
}
.cv-hero .cv-eyebrow{color:#ff8a93;}

.btn-cv-primary{
  background:var(--cv-red);
  border:none;
  color:#fff;
  font-weight:600;
  padding:12px 28px;
  border-radius:4px;
  display:inline-block;
  transition:background .15s ease;
}
.btn-cv-primary:hover{background:var(--cv-red-dark);color:#fff;text-decoration:none;}

.btn-cv-outline{
  background:transparent;
  border:1px solid rgba(255,255,255,.5);
  color:#fff;
  font-weight:600;
  padding:11px 26px;
  border-radius:4px;
  display:inline-block;
}
.btn-cv-outline:hover{border-color:#fff;text-decoration:none;color:#fff;}

/* Section spacing */
.cv-section{padding:60px 0;}
.cv-section-alt{background:var(--cv-gray-light);}

/* Cards */
.cv-card{
  background:#fff;
  border:1px solid var(--cv-border);
  border-radius:8px;
  padding:32px;
  height:100%;
  transition:box-shadow .15s ease, transform .15s ease;
}

/* Equal-height card grids: apply .cv-grid-row to the .row wrapping
   columns of .cv-card so every card in the row matches the tallest one */
.cv-grid-row{display:flex;flex-wrap:wrap;}
.cv-grid-row > [class*="col-"]{display:flex;margin-bottom:20px;}
.cv-grid-row > [class*="col-"] > .cv-card{width:100%;}
.cv-card:hover{box-shadow:0 10px 30px rgba(11,31,58,.08);transform:translateY(-2px);}
.cv-card h3{margin-top:0;}
.cv-card .cv-card-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;height:36px;
  background:var(--cv-red);
  color:#fff;
  border-radius:50%;
  font-weight:700;
  margin-bottom:16px;
}

/* Dark card variants — used for the Archives page boxes. All three share
   the same gradient treatment as the hero so the navy actually matches;
   black and red give the row some variation. */
.cv-card-navy, .cv-card-black, .cv-card-red{
  border:none;
  color:#fff;
}
.cv-card-navy{background:linear-gradient(135deg, var(--cv-navy) 0%, var(--cv-navy-light) 100%);}
.cv-card-black{background:linear-gradient(135deg, #14171c 0%, #2a2f3a 100%);}
.cv-card-red{background:linear-gradient(135deg, var(--cv-red-dark) 0%, var(--cv-red) 100%);}

.cv-card-navy h3, .cv-card-black h3, .cv-card-red h3{color:#fff;}
.cv-card-navy a, .cv-card-black a, .cv-card-red a{color:#fff;text-decoration:underline;}
.cv-card-navy a:hover, .cv-card-black a:hover, .cv-card-red a:hover{color:#ffd9dc;}
.cv-card-navy .nav-tabs>li>a, .cv-card-black .nav-tabs>li>a, .cv-card-red .nav-tabs>li>a{color:#fff;background:transparent;border:none;}
.cv-card-navy .nav-tabs>li.active>a{color:var(--cv-navy);background:#fff;}
.cv-card-black .nav-tabs>li.active>a{color:#14171c;background:#fff;}
.cv-card-red .nav-tabs>li.active>a{color:var(--cv-red-dark);background:#fff;}

/* Testimonials */
.cv-testimonial{
  background:#fff;
  border:1px solid var(--cv-border);
  border-radius:8px;
  padding:32px;
  height:100%;
  position:relative;
}
.cv-testimonial::before{
  content:"\201C";
  font-size:60px;
  font-family:Georgia, serif;
  color:var(--cv-red);
  line-height:1;
  display:block;
  margin-bottom:8px;
}
.cv-testimonial p.cv-testimonial-quote{
  font-size:17px !important;
  font-style:italic;
  color:var(--cv-ink);
  line-height:1.6;
}
.cv-testimonial .cv-testimonial-attribution{
  display:block;
  margin-top:16px;
  font-weight:700;
  color:var(--cv-navy);
  font-style:normal;
}
.cv-testimonial .cv-testimonial-org{
  display:block;
  color:var(--cv-gray);
  font-size:14px;
  font-style:normal;
}

/* Stat callouts */
.cv-stat{
  text-align:center;
  padding:20px;
}
.cv-stat .cv-stat-num{
  font-size:2.4rem;
  font-weight:800;
  color:var(--cv-red);
  display:block;
}
.cv-stat .cv-stat-label{
  color:var(--cv-gray);
  font-size:.95rem;
}

/* Pull quote / difference box */
.cv-pullquote{
  border-left:4px solid var(--cv-red);
  padding:18px 24px;
  background:var(--cv-gray-light);
  font-size:19px !important;
  font-weight:600;
  color:var(--cv-navy);
  margin:24px 0;
}

/* Steward series portfolio chips */
.cv-portfolio-chip{
  border:1px solid var(--cv-border);
  border-radius:6px;
  padding:18px 20px;
  margin-bottom:12px;
  background:#fff;
}
.cv-portfolio-chip .cv-portfolio-name{
  font-weight:700;
  color:var(--cv-navy);
  display:block;
  margin-bottom:4px;
}
.cv-portfolio-chip .cv-portfolio-mix{
  color:var(--cv-gray);
  font-size:15px !important;
}

/* People / bios */
.cv-bio{
  border-bottom:1px solid var(--cv-border);
  padding:28px 0;
}
.cv-bio:last-child{border-bottom:none;}
.cv-bio h4{margin-bottom:2px;color:var(--cv-navy);}
.cv-bio .cv-bio-title{
  color:var(--cv-red);
  font-weight:600;
  font-size:.92rem;
  display:block;
  margin-bottom:12px;
}

/* Footer */
footer.cv-footer{
  background:var(--cv-navy);
  color:#cdd5e3;
  padding:40px 0;
  margin-top:40px;
}
footer.cv-footer a{color:#fff;}
footer.cv-footer strong{color:#fff;}

hr.cv-hr{border-top:1px solid var(--cv-border);margin:0;}

@media (max-width:767px){
  .cv-hero{padding:70px 0 50px;text-align:left;}
  h1{font-size:1.9rem;}
}

/* Fixed pixel sizes (not rem) so these can't be diluted by any inherited
   base font-size from Bootstrap/legacy styles.css. These are the actual
   rendered sizes in the browser, deliberately large for a marketing site. */
body, .container, p, li{font-size:16px !important;line-height:1.65;}
h1{font-size:38px !important;line-height:1.15;}
h2{font-size:30px !important;line-height:1.25;}
h3{font-size:22px !important;line-height:1.3;}
h4{font-size:18px !important;}
.lead{font-size:18px !important;line-height:1.55;}

.navbar-default .navbar-nav>li>a{
  font-size:16px !important;
  font-weight:600;
  padding-top:22px;
  padding-bottom:22px;
}

.nav-tabs>li>a{
  font-size:15px !important;
  font-weight:600;
  padding:10px 16px;
}

.cv-bio h4{font-size:20px !important;}
.cv-bio-title{font-size:15px !important;}
.cv-card h3{font-size:19px !important;}
.cv-stat .cv-stat-label{font-size:15px !important;}
footer.cv-footer, footer.cv-footer p{font-size:15px !important;}
