/*
Theme Name: Curbside Theme
Version: 0.1
*/


/* Overwrite default styles for common elements. */
body {
  margin: 0;

  a {
    color: #000000;
  }

  strong {
    margin: 0;
    font-family: "SUSE Mono", sans-serif;
    font-size: 1.4rem;
    font-weight: 600;
  }

  p {
    font-family: "Crimson Pro", serif;
    font-size: 1.2rem;
    font-weight: 300;
  }

  header,
  footer,
  main {
    padding: 0;
    margin: 0;
  }
}


/** === FONT STYLES === **/
.crimson-pro-regular {
  font-family: "Crimson Pro", serif;
  font-size: 1.2rem;
  font-weight: 300;
}



/** === PRIMARY ELEMENTS === **/

/* The outer-most div, with the background image. */
.background-wrapper {
  margin: 0;
  background-image: url("assets/background.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  height: 100dvh;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}


/* The main content box. */
.primary-content {
  background-color: rgb(255, 255, 255);
  width: 70%;
  flex-direction: column;
  color: rgb(44, 44, 44);
  padding: 1.5rem 2.5rem;
  margin: 1.5rem 2.5rem;
  display: flex;
  box-shadow: 8px 8px 0 0 rgb(6, 6, 6);
  transition: box-shadow 1.0s ease;
}


/* The main flex element inside the primary context box. */
.content-main {
  flex-grow: 2;

  h1 {
    margin-bottom: 0;
  }

  p {
    margin-bottom: 0;
  }
}


/* The logo (icon) element inside the primary context box. */
.content-logo {
  align-self: flex-end;

  img {
    width: 3.2rem;
  }
}


.footer-menu {
  position: absolute;
  bottom: 0;
  width: 100%;
  text-align: center;
  padding: 0.4rem 0;
  margin: 0;
  color: white;
  background-color: #000000;
}


/* The text-based logo at the top of the primary content box. */
.text-logo-header {
  width: clamp(15rem, 100%, 20rem);
  margin-top: 0.6rem;
}


.link-section {
  margin-bottom: 0.8rem;
  display: flex;

  /* Override margin for logo in link section */
  .content-logo {
    margin: 0;
  }
}

.link-section-text {
  flex-grow: 2;
  align-self: flex-end;

  p {
    margin: 0;
  }
}



/** === NEWSLETTER STYLES === **/

/* The newsletter div */
.newsletter {
  margin-top: 1rem;
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;

  form {
    margin: 0;
  }

  input[type="email"] {
    padding: 0.5rem;
    background-color: #ffffff;
    border: none;
    width: clamp(65%, 65%, 20rem);
    max-width: 300px;
    height: 2.2rem;
    box-shadow: inset 0 0 0 1px rgb(197, 197, 197);
  }

  button {
    padding: 0.5rem 1rem;
    font-size: 1rem;
    font-weight: 400;
    height: 2.2rem;
    border: none;
  }

  .button {
    box-shadow: inset 0 0 0 1px #000000;
    color: rgb(0, 0, 0);
    font-weight: 600;
    background-color: #3ae445;
    cursor: pointer;
    transition: background-color 0.8s ease;
    transition: font-weight 0.8s ease;
  }

  .button-disabled {
    background-color: #f5f5f5;
    color: rgb(99, 99, 99);
  }

  .newsletter-close {
    position: absolute;
    top: 10px;
    right: 10px;
    cursor: pointer;

    svg {
      fill: #424242;
    }

    svg:hover {
      fill: #cf1e1e;
    }
  }
}



/** === Team page styles. === **/
.team-wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  margin-top: 2rem;
}

.team-member {
  width: 100%;
  max-width: 100px;
  text-align: center;

  p {
    margin: 0;
  }

  .img-team {
    max-width: 100px;
    padding-bottom: 0.5rem;
  }

  .team-member-name {
    font-family: "SUSE Mono", sans-serif;
    font-size: 1.1rem;
    font-weight: 300;
    margin: 0;
    color: #000000;
  }

  .team-member-name-link {
    font-family: "SUSE Mono", sans-serif;
    font-size: 1.1rem;
    font-weight: 500;
    margin: 0;
    color: #000000;
  }
}

.team-member-solo {
  .img-team {
    padding-bottom: 0.5rem;
    /* The key property: moves the image to the left and allows text to flow on the right */
    float: left;

    /* Creates space between the image and the surrounding text */
    margin-right: 15px;

    /* Optional: Adds a small space below the image */
    margin-bottom: 10px;

    /* Optional: Set a fixed size */
    width: 100px;
    height: auto;
  }
}



/** === HIGHLIGHTS AND COLOURS === **/

/* Special link styles with different highlight colours. */
a.a0:hover {
  color: #4d4d4d;
  color: #7e7e7e;
}

a.a1:hover {
  color: #3dc5ff;
  text-decoration-color: #127ba9;
}

a.a2:hover {
  color: #3ae445;
  text-decoration-color: #0fa419;
}

a.a3:hover {
  color: #d4d723;
  text-decoration-color: #8b8e01;
}

a.a4:hover {
  color: #cc1fe0;
  text-decoration-color: #7c0589;
}

/* Highlight classes for primary content box. */
.primary-content-highlight-0 {
  box-shadow: 8px 8px 0 0 rgb(85, 85, 85);
  transition: box-shadow 0s;
}

.primary-content-highlight-1 {
  box-shadow: 8px 8px 0 0 rgb(61, 197, 255);
  transition: box-shadow 0s;
}

.primary-content-highlight-2 {
  box-shadow: 8px 8px 0 0 #3ae445;
  transition: box-shadow 0s;
}

.primary-content-highlight-3 {
  box-shadow: 8px 8px 0 0 rgb(252, 255, 47);
  transition: box-shadow 0s;
}

.primary-content-highlight-4 {
  box-shadow: 8px 8px 0 0 #ea2fff;
  transition: box-shadow 0s;
}



/** === UTILITY CLASSES === **/
.hidden {
  display: none;
}




/** === MEDIA QUERIES === **/

/* For screens wider than 1024px. */
@media(min-width: 1024px) {
  .primary-content {
    flex-direction: row;
    width: 30rem;
  }

  .content-main {
    align-self: center;
  }

  .content-logo {
    align-self: flex-end;
  }

  .team-member {
    width: 100%;
    max-width: 150px;

    .img-team {
      max-width: 150px;
    }
  }
}