@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;500&display=swap');

* {
  padding   : 0;
  margin    : 0;
  box-sizing: border-box;
}

:root {
  --main-color            : #FF8500;
  --main-color-dark       : #FF7900;
  --main-color-extra-dark : #FF6D00;
  --main-color-light      : #FF9100;
  --main-color-extra-light: #FFC300;
  --nav-text-color        : #a5a58d;
  --dark-text-color       : #7A3B00;
  --dark-icon-color       : #522700;
  --blue-color            : #03045e;
  --blue-color-light      : #0049c7;
  --s-screen-width        : 576px;
  --m-screen-width        : 768px;
  --l-screen-width        : 992px;
  --xl-screen-width       : 1200px;
}

html,
body {
  font-size         : 62.5%;
  font-family       : 'Poppins', sans-serif;
  font-weight       : 300;
  width             : 100%;
  scroll-padding-top: 6rem;
  scroll-behavior   : smooth;
}

.container {
  width : min(86vw, 1440px);
  margin: auto;
}

a {
  color          : inherit;
  text-decoration: none;
}

a:active {
  text-decoration: none;
}

.btn {
  height        : 4rem;
  border        : none;
  font-size     : 1.4rem;
  text-transform: uppercase;
  padding       : 0.75em 1em;
  letter-spacing: 0.2rem;
  box-shadow    : 0 1px 3px 1px rgba(0, 0, 0, .2);
  color         : white;
  transition    : color 0.3s ease-in-out, background-color 0.3s ease-in-out;
  border-radius : 0.5rem;
  cursor        : pointer;
  transition    : transform 0.3s ease-in;
}

.btn:active {
  transform: translateY(0.25em);
}

.btn-orange {
  background-color: var(--main-color-dark);
}

.btn-orange:hover {
  background-color: var(--main-color-light);
}

.btn-blue {
  background-color: var(--blue-color);
}

.btn-blue:hover {
  background-color: var(--blue-color-light);
}


.section-heading {
  font-size     : clamp(2.5rem, 4vw, 4rem);
  font-weight   : 500;
  text-transform: uppercase;
  padding-bottom: 5rem;
  letter-spacing: 0.2rem;
  text-align    : center;
}

.section-heading span:nth-child(2) {
  margin-left: 1rem;
  color      : var(--main-color);
}

.header {
  box-shadow      : 0px 2px 5px 0px rgba(0, 0, 0, .5);
  position        : fixed;
  width           : 100%;
  background-color: white;
  z-index         : 1;
  display         : flex;
  align-items     : center;
  justify-content : center;
}

.header__content {
  width          : min(86vw, 1440px);
  display        : flex;
  align-items    : center;
  justify-content: space-between;
  align-self     : center;
  position       : relative;
}

.navbar {
  display        : flex;
  justify-content: space-between;
  width          : 100%;
  align-items    : center;
}

.navbar__link {
  font-size : clamp(1.6rem, 2vw, 2rem);
  color     : var(--nav-text-color);
  margin    : 0 0.5rem;
  padding   : .125em .25em;
  position  : relative;
  transition: color .25s ease-in;
}

.navbar__link:hover {
  color: var(--main-color);
}

.navbar__link::before {
  content      : '';
  position     : absolute;
  border-bottom: 3px solid var(--main-color);
  bottom       : 0;
  left         : .0125em;
  width        : 0%;
  transform    : translateX(0);
  transition   : transform .25s ease-in, width .25s ease-in;
}

.navbar__link:hover:before {
  width    : 100%;
  transform: translateX(1);
}

.navbar__social-links {
  display: flex;
  gap    : 1rem;
}

.navbar__social-link {
  font-size : 2.4rem;
  margin    : .5rem;
  color     : var(--main-color-dark);
  transition: color 0.3s ease-in, transform 0.3s ease;
}

.navbar__social-link:hover {
  color    : var(--main-color-light);
  cursor   : pointer;
  transform: translateY(-0.25rem);
}

.navbar-control {
  display       : none;
  flex-direction: column;
  cursor        : pointer;
}

.navbar-control span {
  border   : 2px solid var(--main-color);
  min-width: 2.4rem;
}

.navbar-control span:nth-child(2) {
  margin: 0.5rem 0;
}

.logo {
  height : 6rem;
  padding: 1rem 0;
}

.home {
  height         : 100vh;
  background     : linear-gradient(to right, #ff6f0088, #ff480080), url(./images/main.jpeg) no-repeat;
  background-size: cover;
  display        : flex;
  flex-direction : column;
  justify-content: center;
  align-items    : center;
  color          : white;
}

.home__tagline {
  font-size     : clamp(3.6rem, 8vw, 6.4rem);
  font-weight   : 400;
  text-transform: uppercase;
  text-align    : center;
  margin        : 0 1rem;
}

.home__subtagline {
  font-size : clamp(1.6rem, 2vw, 2rem);
  font-style: italic;
  width     : min(90vw, 600px);
  text-align: center;
}

.home__btn {
  text-decoration : none;
  margin          : 1rem;
  font-size       : clamp(2rem, 1.8vw, 4rem);
  text-transform  : uppercase;
  padding         : 0.25em 1em;
  border          : 3px solid white;
  color           : var(--main-color);
  background-color: white;
  font-weight     : 300;
  transition      : color 0.3s ease-out, background-color 0.3s ease;
}

.home__btn:hover {
  cursor          : pointer;
  color           : white;
  background-color: transparent;
}

.about {
  display        : flex;
  justify-content: center;
  align-items    : center;
  padding        : 8rem 0;
}

.about__content {
  display       : flex;
  align-items   : center;
  justify-self  : center;
  flex-direction: column;
}

.about-content {
  display        : flex;
  justify-content: space-between;
  align-items    : center;
  gap            : 2rem;
}

.about-content__image::before {
  content   : '';
  width     : 100%;
  height    : 100%;
  border    : 0.8rem solid var(--main-color-dark);
  position  : absolute;
  top       : -2rem;
  left      : -2rem;
  box-sizing: border-box;
}

.about-content__image {
  flex    : 0 0 calc(50% - 1rem);
  position: relative;
}

.about-content__image img {
  width   : 100%;
  position: relative;
}

.about-content__data {
  flex: 0 0 calc(50% - 1rem);
}

.about-content__data h2 {
  font-size     : clamp(2rem, 2.5vw, 2.5rem);
  padding-bottom: 1rem;
  letter-spacing: 0.4rem;
}

.about-content__data p {
  font-size     : 1.6rem;
  padding-bottom: 1rem;
  color         : var(--dark-text-color);
}

.services {
  padding         : 8rem;
  background-color: #FFEDD6;
  display         : flex;
  align-items     : center;
  justify-content : center;
}

.services__content {
  display       : flex;
  justify-items : center;
  align-items   : center;
  flex-direction: column;
}

.services-list {
  width          : 100%;
  display        : flex;
  justify-content: space-between;
  align-items    : center;
  gap            : 2rem 1rem;
}

.service {
  display        : flex;
  justify-content: center;
  align-items    : center;
  width          : 40rem;
  gap            : 1rem;
}

.service__icon {
  min-height      : 6rem;
  min-width       : 6rem;
  text-align      : center;
  font-size       : 3rem;
  display         : flex;
  justify-content : center;
  align-items     : center;
  background-color: var(--main-color);
  color           : var(--dark-icon-color);
}

.service__info {
  padding: 0 1rem;
}

.service__info h2 {
  font-size     : 1.6rem;
  letter-spacing: 0.2rem;
  font-weight   : 600;
  text-align    : center;
}

.service__info p {
  font-size : clamp(1.4rem, 2vw, 1.6rem);
  color     : var(--dark-text-color);
  text-align: center;
}

.featured {
  padding: 8rem 0;
}

.featured__content {
  display        : flex;
  flex-direction : column;
  justify-content: center;
  align-items    : center;
}

.feature-cards {
  display        : flex;
  flex-wrap      : wrap;
  justify-content: space-between;
  gap            : 4rem 2rem;
  padding-bottom : 3.5rem;
}

.feature-card {
  width         : calc(33.33% - 2rem);
  min-width     : 30rem;
  box-shadow    : 0 0 2px 2px rgba(0, 0, 0, .1);
  transition    : 0.3s transform ease-in;
  display       : flex;
  flex-direction: column;
}

.feature-card:hover {
  transform: scale(1.02);
}

.featured-card-header {
  width   : 100%;
  position: relative;
  height  : 24rem;
}

.featured-card-header img {
  width     : 100%;
  height    : 100%;
  display   : block;
  object-fit: cover;
}

.featured-card-header span {
  position        : absolute;
  bottom          : 0;
  right           : 0;
  background-color: var(--main-color);
  font-size       : clamp(1.4rem, 1vw, 1.6rem);
  padding         : 0.25rem 0.5rem;
}

.featured-card-content {
  padding: 1rem;
  flex   : 1;
}

.featured-card-content h3 {
  font-size     : clamp(2rem, 1.5vw, 2.4rem);
  font-weight   : 400;
  letter-spacing: 1px;
  margin        : 1rem 0;
}

.featured-card-content p {
  font-size: clamp(1.4rem, 2vw, 1.6rem);
  color    : var(--dark-text-color);
  margin   : 1rem 0;
}

.featured-card-footer {
  padding        : 1rem;
  display        : flex;
  justify-content: space-between;
  font-size      : clamp(1.4rem, 1.2vw, 2.4rem);
  color          : var(--main-color-extra-dark);
  border-top     : 1px solid rgba(134, 113, 113, 0.1);
}

.gallery {
  display        : flex;
  justify-content: center;
  flex-wrap      : wrap;
  padding-top    : 3rem;
}

.gallery-image-container {
  flex    : max(32rem, 25%);
  position: relative;
  width   : 100%;
  height  : 100%;
}

.gallery-image-container img {
  width       : 100%;
  display     : block;
  aspect-ratio: 640/426;
  object-fit  : cover;
}

.gallery-image-container a {
  position       : absolute;
  display        : flex;
  width          : 100%;
  height         : 100%;
  justify-content: center;
  align-items    : center;
  top            : 0;
  color          : white;
  font-size      : 4rem;
  background     : linear-gradient(to right, #ff6f0088, #ff480080);
  opacity        : 0;
  transition     : opacity 0.3s ease-in-out;
}

.gallery-image-container a:hover {
  opacity: 100%;
}

.footer {
  background-color: var(--main-color-light);
}

.footer-content {
  padding: 3rem;
}

.footer-icons {
  display        : flex;
  justify-content: center;
  padding        : 0.5rem 0;
}

.footer-icons .footer-icon {
  color          : white;
  font-size      : 3rem;
  width          : 4.5rem;
  height         : 4.5rem;
  display        : flex;
  justify-content: center;
  align-items    : center;
  border-radius  : 50%;
  margin         : 0 1rem;
  border         : 2px solid transparent;
}

.footer-icons .footer-icon:hover {
  border-color: white;
  transition  : border-color 0.6s ease;
}

.footer-signup-form {
  display        : flex;
  justify-content: center;
  align-items    : center;
  padding        : 1rem 0;
  flex-wrap      : wrap;
}

.footer-signup-form__info {
  font-size  : clamp(1.4rem, 2vw, 2rem);
  font-weight: 500;
  padding    : 1rem 0;
}

.footer-signup-form__form {
  display        : flex;
  justify-content: center;
  flex-wrap      : wrap;
  gap            : 1rem;
}

.footer-signup-form__form input {
  border       : none;
  margin       : 0 1rem;
  height       : 4rem;
  width        : 30rem;
  border-radius: 0.5rem;
  padding      : 1rem;
  font-size    : 1.5rem;
}

.footer-signup-form__form input:hover {
  border: 1px solid gray;
}

.footer-signup-form__form input:focus {
  outline: none;
}

.footer-signup-form__form button {
  background-color: blue;
}

.footer-text {
  font-size     : clamp(1.4rem, 2vw, 1.6rem);
  color         : white;
  padding-bottom: 2rem;
}

.footer-copyright {
  background-color: var(--main-color-extra-dark);
  display         : flex;
  justify-content : center;
  align-items     : center;
  font-size       : min(2.5vw, 1.75rem);
  padding         : 2rem 1rem;
}

.footer-copyright p {
  text-align: center;
}

.header-small-screen {
  display: none;
  width  : 100%;
  z-index: 5;
}

@media only screen and (max-width: 1200px

  /* var(--xl-screen-width) */
) {

  .about-content__image::before {
    border: none;
  }

  .service {
    flex-direction: column;
  }

  .feature-card {
    width: calc(50% - 2rem);
  }
}


@media only screen and (max-width: 992px

  /* var(--l-screen-width) */
) {
  .header-small-screen {
    display        : flex;
    justify-content: space-between;
    align-items    : center;
    width          : 100%;
    padding        : 0 5rem;
  }

  .header__content {
    flex-direction: column;
    align-items   : flex-start;
    width         : 100%;
  }

  .navbar img {
    display: none;
  }

  .navbar-control {
    display: flex;
  }

  .navbar {
    flex-direction  : column;
    background-color: white;
    margin          : 0;
    align-items     : flex-start;
    width           : 100%;
    flex            : 1;
    max-height      : 0px;
    transition      : max-height 0.5s ease-in-out;
    overflow        : hidden;
  }

  .navbar__links {
    flex           : 1;
    display        : flex;
    flex-direction : column;
    justify-content: flex-start;
    width          : 100%;
  }

  .navbar__link {
    flex      : 1;
    display   : flex;
    width     : 100%;
    margin    : 0;
    padding   : 1.5rem 5rem;
    transition: padding-left 0.3s ease-in, background-color 0.3s ease-in;
    color     : var(--dark-text-color);
  }

  .navbar__link:hover {
    padding-left    : 5.5rem;
    background-color: var(--main-color-extra-light);
  }

  .navbar__link:hover:before {
    width: 0%;
  }

  .navbar__social-links {
    display: flex;
    width  : 100%;
    padding: 1rem 5rem;
  }

  .open {
    display   : flex;
    max-height: 500px;
  }

  .about-content {
    flex-direction: column;
  }

  .services-list {
    flex-wrap: wrap;
  }

  .service {
    flex: 0 0 calc(50% - 1rem);
  }
}

@media only screen and (max-width: 768px

  /* var(--m-screen-width) */
) {
  .feature-card {
    flex: 0 0 calc(100%);
  }
}

@media only screen and (max-width: 576px

  /* var(--s-screen-width) */
) {
  .header-small-screen {
    padding: 0px 2rem;
  }

  .service {
    flex: 0 0 calc(100%);
  }
}