:root {
  --tech-green: #4e8499;
  --tech-focus-green: #4f837f;
  --tech-active-green: #3c6360;
  --tech-black: #161616;
  --tech-nav-link: rgba(255, 255, 255, 0.5);
  --tech-nav-link-hover: rgba(255, 255, 255, 0.75);
  --faded-white: fade(white, 80%);
}

/* -------------------- Navigation -------------------- */
#mainNav {
  padding-top: 0;
  padding-bottom: 0;
  border-bottom: none;
  background-color: transparent;
  transition: background-color 1s ease-in-out, box-shadow 1s ease-in-out;
}

#mainNav .navbar-toggler {
  font-size: 100%;
  padding: 0rem;
  color: var(--tech-nav-link);
  border: none;
}

#mainNav .navbar-toggler:focus {
  outline: none;
}

#mainNav .navbar-brand {
  padding: .5rem 0;
  color: var(--tech-nav-link);
  font-weight: 300;
  letter-spacing: 0.5rem;
  font-family: 'Mulish', sans-serif;
  transition: color 1s ease, padding 1s ease;
}

#mainNav .nav-link {
  transition: color 1s ease, padding 1s ease;
  padding: 0.5rem;
  color: var(--tech-nav-link);
  text-transform: uppercase;
}

#mainNav .nav-link:hover {
  color: var(--tech-nav-link-hover);
}

#mainNav .nav-link:active {
  color: white;
}

#mainNav .navbar-nav .nav-item:hover {
  outline: none;
  background-color: transparent;
}

#mainNav .navbar-nav .nav-item:active, #mainNav .navbar-nav .nav-item:focus {
  outline: none;
  background-color: transparent;
}

/* shrink state for scrolled navbar */
#mainNav.navbar-shrink {
  background: linear-gradient(to bottom, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.6) 100%);
  -webkit-backdrop-filter: saturate(120%) blur(6px);
  backdrop-filter: saturate(120%) blur(6px);
  box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.06);
}

#mainNav.navbar-shrink .navbar-brand {
  color: var(--tech-black);
}

#mainNav.navbar-shrink .nav-link {
  color: var(--tech-black);
  padding: 0;
  border-bottom: 0.25rem solid transparent;
  transition: color 1s ease;
}

#mainNav.navbar-shrink .nav-link:hover {
  color: var(--tech-green);
}

#mainNav.navbar-shrink .nav-link:active {
  color: var(--tech-active-green);
}

#mainNav.navbar-shrink .nav-link.active {
  color: var(--tech-green);
  outline: none;
  border-bottom: 0.25rem solid var(--tech-green);
}

/* Dropdown: background only behind text */
#mainNav .dropdown-menu {
  min-width: 0;
  width: auto;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

#mainNav .dropdown-item {
  display: inline-block;
  white-space: nowrap;
  padding: 0;
  margin: 0;
  background: rgba(255,255,255,0.08);
  color: #fff;
  border-radius: .25rem;
}

#mainNav .dropdown-item:hover,
#mainNav .dropdown-item:focus {
  background: rgba(255,255,255,0.14);
  color: #fff;
}

.logo-width {
  min-width: 180px;
}

.logo-width img {
  max-width: 75px;
}

/* -------------------- Headers / Hero sections -------------------- */
.masthead, .realestate, .music, .wedding {
  position: relative;
  width: 100%;
  height: auto;
  min-height: 35rem;
  padding: 0rem 0;
  background: linear-gradient(to bottom, rgba(22, 22, 22, 0.3) 0%, rgba(22, 22, 22, 0.7) 75%, #161616 100%);
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-size: cover;
}

.masthead.success {
  background: linear-gradient(to bottom, rgba(22, 22, 22, 0.3) 0%, rgba(22, 22, 22, 0.7) 75%, #161616 100%), url("../img/michael-bourgault-wV1gNxqelfk-unsplash.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-size: cover;
}

.masthead.success {
  min-height: 100vh;
  padding: 0;
  display: flex;
  align-items: center;
}

.masthead h1, .music h1, .wedding h1 {
  font-family: 'Mulish', sans-serif;
  font-weight: 200;
  font-size: 10rem;
  letter-spacing: 1rem;
  background: -webkit-linear-gradient(rgba(255, 255, 255, 0.602), rgba(255, 255, 255, 0.094));
  -webkit-text-fill-color: transparent;
  clip: text;
  background-clip: text;
  -webkit-background-clip: text;
}

.realestate h1{
  font-family: 'Mulish', sans-serif;
  font-weight: 200;
  font-size: 10rem;
  letter-spacing: .6rem;
  background: -webkit-linear-gradient(rgba(255, 255, 255, 0.602), rgba(255, 255, 255, 0.094));
  -webkit-text-fill-color: transparent;
  clip: text;
  background-clip: text;
  -webkit-background-clip: text; 
}

.masthead h2 {
  max-width: 20rem;
  font-size: 1.3rem;
}

/* Buttons */
.btn {
  padding: 1.25rem 2rem;
  font-family: 'Montserrat', sans-serif;
  font-size: 80%;
  text-transform: uppercase;
  letter-spacing: .15rem;
  border: 0;
  color: black;
}

.btn-primary {
  background: -webkit-linear-gradient(rgba(255, 255, 255, 0.602), rgba(255, 255, 255, 0.094));
}

.btn-primary:focus {
  background-color: var(--tech-green);
  color: white;
}

.btn-primary:active {
  background-color: var(--tech-green) !important;
}


/* Services (commented out in HTML) */
.services-section {
  padding-top: 5rem;
  padding-bottom: 7rem;
  background: linear-gradient(to bottom, #161616 0%, rgba(22, 22, 22, 0.9) 75%, rgba(22, 22, 22, 0.8) 100%);
}

.services-section .card,
.success .card {
  border: 0;
  border-bottom: 0.25rem solid var(--tech-green);
  background-color: var(--tech-black);
  color: var(--tech-nav-link);
}

/* Projects */
.projects-section {
  padding: 7rem 0;
}

.projects-section .featured-text {
  padding: 2rem;
}

.projects-section .project-text {
  padding: 3rem;
  font-size: 90%;
}

/* About (commented) */
/* .about-section {
  padding: 7rem 0;
  background: linear-gradient(to top, #161616 0%, rgba(22, 22, 22, 0.9) 75%, rgba(22, 22, 22, 0.8) 100%);
}

.about-section .card {
  border: 0;
  border-bottom: 0.25rem solid var(--tech-green);
  background-color: var(--tech-black);
  color: var(--tech-nav-link);
} */

/* Contact Section */
.contact-section {
  padding: 10rem 0;
  font-family: 'Mulish', sans-serif;
  background: linear-gradient(to bottom, rgba(22, 22, 22, 0.1) 0%, rgba(22, 22, 22, 0.5) 75%, #161616 100%), url("../img/footer2.jpg");
  background-position: center ;
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-size: cover;
  position: relative;
}

.contact-section h2 {
  font-size: 1.75rem;
  color: var(--tech-nav-link);
  font-family: 'Mulish', sans-serif;
  font-weight: 300;
  letter-spacing: .5rem;
}

.contact-section .form-inline input {
  box-shadow: 0 0.1875rem 0.1875rem 0 rgba(0, 0, 0, 0.1) !important;
  padding: 1.25rem 2rem;
  height: auto;
  font-family: 'Mulish', sans-serif;
  font-size: 80%;
  text-transform: uppercase;
  letter-spacing: 0.15rem;
  border: 0;
  background-color: -webkit-linear-gradient(rgba(255, 255, 255, 0.602), rgba(255, 255, 255, 0.094));
}

.contact-section .form-control {
    background-color: var(--tech-nav-link);
    border: none;
    color: var(--tech-black);
}

/* Info Section (cards) */
.info-section {
  padding: 5rem 5rem 0;
}

.info-section .card {
  border: 0;
  background: -webkit-linear-gradient(rgba(255, 255, 255, 0.602), rgba(255, 255, 255, 0.094));
  /* columns: var(--tech-nav-link); */
}

.info-section .card h4 {
  font-size: 0.8rem;
  font-family: 'Mulish', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.15rem;
}

.info-section a {
  color: var(--tech-black);
}


.about-section {
  padding: 5rem 5rem 0;
}

.about-section .card {
  border: 0;
  background: -webkit-linear-gradient(rgba(255, 255, 255, 0.602), rgba(255, 255, 255, 0.094));
  /* columns: var(--tech-nav-link); */
}

.about-section .card h4 {
  font-size: 3rem;
  font-family: 'Mulish', sans-serif;
  text-transform: uppercase;
  letter-spacing: 1rem;
  font-weight: 200;
}

.about-section a {
  color: var(--tech-black);
  font-size: 2rem;
  text-transform: uppercase;
  border: #161616 0.25rem solid transparent;
}

.about-section p {
    font-family: 'Mulish', sans-serif;
    font-size: 1.9rem;
font-weight: 200;
}

/* Site-wide styles */
body {
  font-family: 'Mulish', sans-serif;
  letter-spacing: 0.0625em;
}

a h4 p i {
    color: var(--tech-nav-link);
}

a:focus, a:hover {
  text-decoration: none;
  color: var(--tech-nav-link-hover);
}

.bg-black {
  background-color: var(--tech-black) !important;
}

.bg-primary {
  background-color: var(--tech-green) !important;
}

footer {
  padding: 5rem 0;
}

html {
  /* Tells the browser to snap on the Y (vertical) axis */
  /* 'mandatory' forces it to always rest on a snap point */
  scroll-snap-type: y mandatory; 
  scroll-behavior: smooth;
  height: 100%;
}

body {
  height: 100%;
  overflow-y: scroll; /* Ensures the body is the scrollable element */
}


/* Snap on headers and sections */
.masthead, .realestate, .music, .wedding, .services-section, .projects-section, .about-section, .info-section, .contact-section {
  scroll-behavior: smooth;
  min-height: 100vh;
  /* This creates the actual snap effect */
  scroll-snap-align: start; 
  /* Prevents getting stuck halfway if content is taller than viewport */
  scroll-snap-stop: always; 
}

#realestate, #music, #wedding {
  scroll-padding-top: 5rem;
}

@media (width <= 1200px) {
  .masthead h1 {
    font-size: 7rem;
  }
  .realestate h1 {
    font-size: 7rem;
  }
  .music h1 {
    font-size: 7rem;
  }
  .wedding h1 {
    font-size: 7rem;
  }
}

@media (width <= 1000px) {
    #mainNav .nav-link{
    padding: 0rem;
  }
  .masthead h1 {
    font-size: 5rem;
  }
  .realestate h1 {
    font-size: 5rem;
  }
  .music h1 {
    font-size: 5rem;
  }
  .wedding h1 {
    font-size: 5rem;
  }
}

@media (width <= 768px) {
  #mainNav .nav-link{
    padding: 0rem;
  }
  .masthead h1 {
    font-size: 3.7rem;
    letter-spacing: .5rem;
  }
  .realestate h1 {
    font-size: 3.7rem;
  }
  .music h1 {
    font-size: 3.7rem;    
  }
  .wedding h1 {
    font-size: 3.7rem;
  }
  .about-section p {
    font-size: 1.25rem;
  }
}

@media (width <= 576px) {
    #mainNav .nav-link{
    padding: 0rem;
  }
  .masthead h1 {
    font-size: 2.5rem;
    font-weight: 400;
  }
  .realestate h1 {
    font-size: 2.5rem;
    font-weight: 400;
  }
  .music h1 {
    font-size: 2.5rem;
    font-weight: 400;
  }
  .wedding h1 {
    font-size: 2.5rem;
    font-weight: 400;
  }
  .about-section p {
    font-size: 1.25rem;
  }

  .info-section hr, 
  .info-section p {
    display: none;
  }
  .info-section {
    .card-body {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }
  }

/* Center the about card vertically within its full-height section */
    #about {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 4rem 0;
    }
}