:root {
  --ab-hero-overlay: rgba(0, 0, 0, 0.55);
}

body {
  background: #f7f7f9;
}

.hero-carousel .carousel-item {
  min-height: 520px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  position: relative;
}

.hero-carousel .carousel-item::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--ab-hero-overlay);
}

.hero-carousel .carousel-caption {
  position: absolute;
  right: 12%;
  left: 12%;
  bottom: 18%;
  text-align: left;
  z-index: 2;
}

.hero-carousel .carousel-caption h1,
.hero-carousel .carousel-caption h2,
.hero-carousel .carousel-caption p {
  color: #fff;
}

.hero-carousel .carousel-caption .btn {
  margin-top: 10px;
}

.section {
  padding: 48px 0;
}

.card-service {
  height: 100%;
}

.site-footer {
  padding: 28px 0;
  background: #111;
  color: #cfcfcf;
  margin-top: 48px;
}

.bio-photo {
  max-width: 240px;
  margin: 0 20px 12px 0;
}
@media (max-width: 300px) {
  .bio-photo {
    float: none !important;
    display: block;
    margin: 0 auto 15px auto;
    max-width: 70%;
  }
}

.page-hero {
  /* each page sets this variable */
  --hero-image: none;

  /* gradient overlay + image */
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,.15) 100%),
    var(--hero-image);
  color: white;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding-top: 30px;

  min-height: 420px; /* or whatever your hero height is */
  position: relative;
}

.page-hero.keep-bottom { background-position: center bottom; }