/* ==========================================================================
        PAGE: ABOUT US
        FILE: about-us.css
========================================================================== */

/* ==========================================================================
   TABLE OF CONTENTS (REFACTORED FOR GRIFT)
   ========================================================================== */
/*
  1.0 - Global Styles
      1.1 - body, main
  2.0 - Hero Component
      2.1 - .hero
      2.2 - .hero > .hero__title 
      2.3 - .hero__vector
      2.4 - .hero__bg-blur
  3.0 - Background Wrapper Component
      3.1 - .background-wrapper
  4.0 - About Us Cards Component
      4.1 - .about-us-section
      4.2 - .about-us-card typography (h2, h3, p)
      4.3 - .about-us-card layout rules
      4.4 - .about-us-card-image
      4.5 - .color-bar
  5.0 - Values Component
      5.1 - .values-section
      5.2 - .values-grid
      5.3 - .values (card) & backgrounds
      5.4 - .values typography (h2, h3, p)
  6.0 - Members Component
      6.1 - .members-section (container)
      6.2 - .groups typography (h2, p)
      6.3 - .member-list (THE NEW FLEXBOX SYSTEM)
      6.4 - .member (card) & typography
      6.5 - .member-divider 
  7.0 - Decorative Waves Component
      7.1 - .wave-container-section
      7.2 - #wave-one-container, #wave-two-container
      7.3 - #wave-one, #wave-two
*/
/* ==========================================================================
                1.0 - Global Styles (Body, Main)
   ========================================================================== */

main {
  flex-grow: 1;
}
article {
  margin: 3rem auto;
}
/* ==========================================================================
                2.0 - Hero Component
   ========================================================================== */

/* --- 2.1 .hero --- */
.hero {
  position: relative;
  width: 100%;
  height: 577px;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  background-image: url("/assets/images/about-us/background-images/hero/about-us-hero-background-320.png");
  background-image: image-set(
    url("/assets/images/about-us/background-images/hero/about-us-hero-background-320.webp")
      type("image/webp"),
    url("/assets/images/about-us/background-images/hero/about-us-hero-background-320.png")
      type("image/png")
  );
}
@media (min-width: 576px) {
  .hero {
    height: 570px;
    background-image: url("/assets/images/about-us/background-images/hero/about-us-hero-background-576.png");
    background-image: image-set(
      url("/assets/images/about-us/background-images/hero/about-us-hero-background-576.webp")
        type("image/webp"),
      url("/assets/images/about-us/background-images/hero/about-us-hero-background-576.png")
        type("image/png")
    );
  }
}
@media (min-width: 768px) {
  .hero {
    background-image: url("/assets/images/about-us/background-images/hero/about-us-hero-background-768.png");
    background-image: image-set(
      url("/assets/images/about-us/background-images/hero/about-us-hero-background-768.webp")
        type("image/webp"),
      url("/assets/images/about-us/background-images/hero/about-us-hero-background-768.png")
        type("image/png")
    );
    height: 740px;
  }
}
@media (min-width: 992px) {
  .hero {
    background-image: url("/assets/images/about-us/background-images/hero/about-us-hero-background-992.png");
    background-image: image-set(
      url("/assets/images/about-us/background-images/hero/about-us-hero-background-992.webp")
        type("image/webp"),
      url("/assets/images/about-us/background-images/hero/about-us-hero-background-992.png")
        type("image/png")
    );
    height: 796px;
  }
}
@media (min-width: 1200px) {
  .hero {
    background-image: url("/assets/images/about-us/background-images/hero/about-us-hero-background-1200.png");
    background-image: image-set(
      url("/assets/images/about-us/background-images/hero/about-us-hero-background-1200.webp")
        type("image/webp"),
      url("/assets/images/about-us/background-images/hero/about-us-hero-background-1200.png")
        type("image/png")
    );
    height: 1181px;
  }
}
@media (min-width: 1400px) {
  .hero {
    background-image: url("/assets/images/about-us/background-images/hero/about-us-hero-background-1400.png");
    background-image: image-set(
      url("/assets/images/about-us/background-images/hero/about-us-hero-background-1400.webp")
        type("image/webp"),
      url("/assets/images/about-us/background-images/hero/about-us-hero-background-1400.png")
        type("image/png")
    );
    height: 1199px;
  }
}
@media (min-width: 1920px) {
  .hero {
    background-image: url("/assets/images/about-us/background-images/hero/about-us-hero-background-1920.png");
    background-image: image-set(
      url("/assets/images/about-us/background-images/hero/about-us-hero-background-1920.webp")
        type("image/webp"),
      url("/assets/images/about-us/background-images/hero/about-us-hero-background-1920.png")
        type("image/png")
    );
    height: 1574px;
  }
}

/* --- 2.2 .hero > .hero__title  --- */
.hero > .hero__title {
  position: absolute;
  left: 50%;
  top: 45%;
  transform: translate(-50%, -50%);
  z-index: 4;
  width: 20rem;
  text-align: center;
}
@media (min-width: 576px) {
  .hero > .hero__title {
    width: 28.3rem;
    top: 35%;
  }
}
@media (min-width: 768px) {
  .hero > .hero__title {
    width: 34rem;
  }
}
@media (min-width: 1200px) {
  .hero > .hero__title {
    width: 41rem;
  }
}
@media (min-width: 1400px) {
  .hero > .hero__title {
    top: 37%;
  }
}
@media (min-width: 1621px) {
  .hero > .hero__title {
    width: 45rem;
  }
}

/* --- 2.3 .hero__vector --- */
.hero__vector {
  position: absolute;
  left: 0;
  bottom: -1px;
  z-index: 2;
  width: 100%;
  height: auto;
}
@media (min-width: 576px) {
  .hero__vector {
    bottom: -69px;
  }
}
@media (min-width: 768px) {
  .hero__vector {
    bottom: -95px;
  }
}

/* --- 2.4 .hero__bg-blur --- */
.hero__bg-blur {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  height: 175px;
  mask-image: linear-gradient(
    to bottom,
    rgba(36, 36, 36, 0.65) 55%,
    rgba(0, 0, 0, 0) 100%
  );
  z-index: 1;
  background-color: var(--Neutral-Indigo-900);
}

/* ==========================================================================
               3.0 - Background Wrapper Component
   ========================================================================== */
.background-wrapper {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-image: url(/assets/images/about-us/background-images/page/about-us-background-320.svg);
}
@media (min-width: 576px) {
  .background-wrapper {
    background-image: url(/assets/images/about-us/background-images/page/about-us-background-576.svg);
    margin-top: 33px;
  }
}
@media (min-width: 768px) {
  .background-wrapper {
    background-image: url(/assets/images/about-us/background-images/page/about-us-background-768.svg);
    margin-top: 54px;
  }
}
@media (min-width: 992px) {
  .background-wrapper {
    background-image: url(/assets/images/about-us/background-images/page/about-us-background-992.svg);
  }
}
@media (min-width: 1200px) {
  .background-wrapper {
    background-image: url(/assets/images/about-us/background-images/page/about-us-background-1200.svg);
    margin-top: 6rem;
  }
}
@media (min-width: 1400px) {
  .background-wrapper {
    background-image: url(/assets/images/about-us/background-images/page/about-us-background-1400.svg);
    margin-bottom: -2px;
  }
}
@media (min-width: 1920px) {
  .background-wrapper {
    background-image: url(/assets/images/about-us/background-images/page/about-us-background-1920.svg);
  }
}

/* ==========================================================================
   4.0 - About Us Cards Component
   ========================================================================== */

/* --- 4.1 .about-us-section --- */
.about-us-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3rem;
  width: 100%;
  max-width: var(--container-350);
  margin: 4rem auto;
}
@media (min-width: 768px) {
  .about-us-section {
    max-width: var(--container-840); /* 56rem 672px  */
  }
}
@media (min-width: 1200px) {
  .about-us-section {
    max-width: var(--container-1531); /* 87rem */
    gap: 6rem;
  }
}
@media (min-width: 1920px) {
  .about-us-section {
    max-width: 1685px;
  }
}

/* --- 4.2 .about-us-card (Layout Rules) --- */
.about-us-card {
  width: var(--container-325);
}
@media (min-width: 768px) {
  .about-us-card {
    width: 461px;
  }
}
@media (min-width: 1200px) {
  .about-us-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 40px;
    width: 1047px;
  }
  .about-us-card .layered-image {
    width: 440px;
  }
  #vision .layered-image {
    order: -1;
  }
}
@media (min-width: 1400px) {
  .about-us-card.about-us-section {
    margin-bottom: 8rem;
  }
}
@media (min-width: 1920px) {
  .about-us-card {
    width: 100%;
    gap: 150px;
  }
}
/* --- 4.2 .about-us-card-title-wrapper (Layout Rules) --- */
.about-us-card-title-wrapper {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: 20px;
}
/* --- 4.3 .about-us-card typography (h2, h3, p) --- */
.about-us-card h2 {
  text-align: center;
  margin: 1.5rem auto;
}
.about-us-card h3 {
  text-align: center;
}
.about-us-card p {
  text-align: left;
  letter-spacing: 0.7px;
  margin: 1.5rem auto;
}
@media (min-width: 768px) {
  .about-us-card h3 {
    text-align: left;
  }
}
@media (min-width: 1200px) {
  .about-us-card h2,
  .about-us-card h3,
  .about-us-card p {
    text-align: left;
    margin-left: 0;
    margin-right: 0;
  }
}

/* --- 4.4 .about-us-card-text & .about-us-card-image --- */
/* THESE STYLES WERE MOVED TO THE LAYERED-IMAGE.SCSS FILE */
/* .about-us-card-image {
  width: 100%;
  margin: 2rem auto 0 auto;
}
.about-us-card-image img {
  display: block;
  width: 100%;
} */
@media (min-width: 1200px) {
  .about-us-card-text {
    width: 540px;
    margin: 0;
  }
  /* .about-us-card-image {
    width: 500px;
    margin: 0;
  } */
}
@media (min-width: 1920px) {
  .about-us-card-text {
    width: 740px;
  }
  .about-us-card .layered-image {
    width: 780px;
  }
}

/* --- 4.5 .color-bar --- */
.color-bar {
  width: 100%;
  display: flex;
}
.color-bar .blue,
.color-bar .green,
.color-bar .purple,
.color-bar .yellow {
  height: 0.6rem;
  flex: 1;
}
@media (min-width: 768px) {
  .color-bar .blue,
  .color-bar .green,
  .color-bar .purple,
  .color-bar .yellow {
    height: 0.66666666667rem;
  }
  .color-bar {
    width: 250px;
  }
  .about-us-card .color-bar {
    margin-left: 0;
  }
}
@media (min-width: 1200px) {
  .about-us-card .color-bar {
    width: 100%;
  }
}
@media (min-width: 1920px) {
  .about-us-card .color-bar {
    width: 500px;
  }
}

/* ==========================================================================
   5.0 - Values Component
   ========================================================================== */

/* --- 5.1 .values-section --- */
.values-section {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: center;
  width: 90%;
  max-width: var(--container-350);
  margin: 18rem auto 0 auto;
}
@media (min-width: 768px) {
  .values-section {
    max-width: var(--container-620);
  }
  .values-section .color-bar {
    margin: 0 auto;
  }
}
@media (min-width: 1200px) {
  .values-section {
    max-width: 1045px; /* Custom width for this section */
  }
  .values-section .color-bar {
    width: 500px;
  }
}
@media (min-width: 1920px) {
  .values-section {
    max-width: var(--container-2100);
  }
}

/* --- 5.2 .values-grid --- */
.values-grid {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
}
@media (min-width: 1200px) {
  .values-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-40);
  }
}

/* --- 5.3 .values (card) & backgrounds --- */
.values {
  padding: 1rem;
  min-height: 250px;
  background-repeat: no-repeat;
  background-size: 100%;
  border-radius: 6px;
}
.values.respect {
  background-image: url(/assets/images/about-us/background-images/values/respect-background-320.png);
}
.values.openness {
  background-image: url(/assets/images/about-us/background-images/values/openness-background-320.svg);
}
.values.growth {
  background-image: url(/assets/images/about-us/background-images/values/growth-background-320.svg);
}
.values.agility {
  background-image: url(/assets/images/about-us/background-images/values/agility-background-320.svg);
}

@media (min-width: 576px) {
  .values.respect {
    background-image: url(/assets/images/about-us/background-images/values/respect-background-576.svg);
  }
  .values.openness {
    background-image: url(/assets/images/about-us/background-images/values/openness-background-576.svg);
  }
  .values.growth {
    background-image: url(/assets/images/about-us/background-images/values/growth-background-576.svg);
  }
  .values.agility {
    background-image: url(/assets/images/about-us/background-images/values/agility-background-576.svg);
  }
}
@media (min-width: 768px) {
  .values.respect {
    background-image: url(/assets/images/about-us/background-images/values/respect-background-768.svg);
  }
  .values.openness {
    background-image: url(/assets/images/about-us/background-images/values/openness-background-768.svg);
  }
  .values.growth {
    background-image: url(/assets/images/about-us/background-images/values/growth-background-768.svg);
  }
  .values.agility {
    background-image: url(/assets/images/about-us/background-images/values/agility-background-768.svg);
  }
}
@media (min-width: 992px) {
  .values.respect {
    background-image: url(/assets/images/about-us/background-images/values/respect-background-992.svg);
  }
  .values.openness {
    background-image: url(/assets/images/about-us/background-images/values/openness-background-992.svg);
  }
  .values.growth {
    background-image: url(/assets/images/about-us/background-images/values/growth-background-992.svg);
  }
  .values.agility {
    background-image: url(/assets/images/about-us/background-images/values/agility-background-992.svg);
  }
}
@media (min-width: 1200px) {
  /* .values {
    height: 225px;
  } */
  .values.respect {
    background-image: url(/assets/images/about-us/background-images/values/respect-background-1200.svg);
  }
  .values.openness {
    background-image: url(/assets/images/about-us/background-images/values/openness-background-1200.svg);
  }
  .values.growth {
    background-image: url(/assets/images/about-us/background-images/values/growth-background-1200.svg);
  }
  .values.agility {
    background-image: url(/assets/images/about-us/background-images/values/agility-background-1200.svg);
  }
}
@media (min-width: 1400px) {
  .values.respect {
    background-image: url(/assets/images/about-us/background-images/values/respect-background-1400.svg);
  }
  .values.openness {
    background-image: url(/assets/images/about-us/background-images/values/openness-background-1400.svg);
  }
  .values.growth {
    background-image: url(/assets/images/about-us/background-images/values/growth-background-1400.svg);
  }
  .values.agility {
    background-image: url(/assets/images/about-us/background-images/values/agility-background-1400.svg);
  }
}
@media (min-width: 1920px) {
  .values.respect {
    background-image: url(/assets/images/about-us/background-images/values/respect-background-1920.svg);
  }
  .values.openness {
    background-image: url(/assets/images/about-us/background-images/values/openness-background-1920.svg);
  }
  .values.growth {
    background-image: url(/assets/images/about-us/background-images/values/growth-background-1920.svg);
  }
  .values.agility {
    background-image: url(/assets/images/about-us/background-images/values/agility-background-1920.svg);
  }
}

/* --- 5.4 .values typography --- */
.values-section h3 {
  text-align: center;
}
.values,
.value {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.values h3 {
  margin-top: 1rem;
}
.value h4,
.value p {
  width: var(--container-325);
}
@media (min-width: 768px) {
  .value h4,
  .value p {
    width: 407px;
  }
  .value p {
    margin: 0 auto;
  }
  .value h4 {
    margin: 14px auto 20px auto;
  }
}
@media (min-width: 1200px) {
  .value h4,
  .value p {
    width: 390px;
  }
}
@media (min-width: 1920px) {
  .values {
    padding: 6.1158333333rem 2.16666666667rem;
  }
  .value h4,
  .value p {
    width: 778.125px;
  }
}
/* ==========================================================================
   6.0 - Members Component
   ========================================================================== */

/* --- 6.1 .members-section --- */
.members-section {
  display: flex;
  flex-direction: column;
  width: var(--container-325);
  max-width: var(--container-350);
  margin: 18rem auto 5rem auto;
}
.groups h3 {
  width: 102%;
  text-align: center;
}
#working-group h3 {
  width: 100%;
  text-align: center;
  /* margin-left: -1.125rem; */
  text-wrap: wrap;
}
#working-group p {
  width: 102%;
}
@media (min-width: 768px) {
  .members-section {
    width: 646px;
    max-width: 646px;
  }
  #working-group h3 {
    width: 70%;
    margin: 1em auto;
  }
  .groups p {
    width: 570px;
    margin: 0 auto;
  }
}
@media (min-width: 1200px) {
  .members-section {
    max-width: var(--container-1531);
    width: 1040px;
  }
  .groups p {
    width: 100%;
    margin-bottom: 10rem;
  }
}
@media (min-width: 1920px) {
  .members-section {
    max-width: 1717px;
    width: 1717px;
  }
  .groups p {
    width: 1520px;
  }
}

/* --- 6.3 .member-list --- */
.member-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  --columns: 1;
  /* Use a smaller base gap to ensure mobile doesn't overflow */
  gap: var(--space-40);
  margin-top: 4rem;
}

/* --- 6.4 .member (The Fix) --- */
.member {
  text-align: center;
  /* Use percentage for basis to FORCE columns to fit the container */
  flex: 1 1 calc((100% / var(--columns)) - var(--gap, 20px));
  max-width: 370px;
}

.member img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .member,
  .member img {
    max-width: 308px;
    width: 308px;
  }
}
@media (min-width: 1200px) {
  .member,
  .member img {
    max-width: 319px;
    width: 319px;
  }
}
/* Typography */
.member .name {
  font-weight: 600;
  line-height: normal;
  letter-spacing: 1.094px;
  margin: 1.5rem 0 0 0;
}
.member .title {
  font-family: var(--font-primary);
  font-size: var(--fs-h5);
  font-weight: 400;
  line-height: normal;
  letter-spacing: 1.094px;
  margin: 1.5rem 0 0 0;
}
.member-trigger {
  cursor: pointer;
  transition: transform 0.2s ease;
}

.member-trigger:hover {
  transform: translateY(-5px); /* Gives a nice subtle lift */
}
/* --- 6.5 Tablet (768px) --- */
@media (min-width: 768px) {
  .member-list {
    --columns: 2;
    --gap: 30px;
    gap: 80px var(--gap); /* 80px row-gap, 30px column-gap */
    min-width: 646px;
  }
  .member .name {
    min-height: 58px;
    line-height: 35px;
    letter-spacing: 1.406px;
  }
  .member .title {
    max-width: 308px;
    line-height: 35px;
    letter-spacing: 1.406px;
  }
  .groups h3 br {
    display: none;
  }
}

/* --- 6.6 Desktop (1200px) --- */
@media (min-width: 1200px) {
  .member-list {
    --columns: 3;
    --gap: 40px;
    gap: 80px var(--gap);
    max-width: 1040px;
    margin: 0 auto;
  }
  .member .name {
    min-height: 66px;
    width: 316px;
    line-height: 35px; /* 101.803% */
    letter-spacing: 1.719px;
  }
  .member .title {
    line-height: 35px; /* 101.803% */
    letter-spacing: 1.719px;
    max-width: 315px;
  }
}
/* --- 6.7 Large Desktop (1920px) --- */
@media (min-width: 1920px) {
  .member-list {
    --columns: 4;
    --gap: var(--space-80); /* 40px */
    gap: 80px var(--gap);
    max-width: 1717px;
  }
  #team > .member-list {
    --columns: 3;
    max-width: 1270px;
  }
  .member,
  .member img {
    max-width: 380px;
    width: 380px;
  }
  .member .name {
    width: 380px;
    line-height: 35px; /* 93.333% */
    letter-spacing: 1.875px;
  }
  .member .title {
    max-width: 380px;
    line-height: 35px; /* 93.333% */
    letter-spacing: 1.875px;
  }
}

/* --- 6.8 Divider --- */
.member-divider {
  border: none;
  height: 1px;
  background-color: var(--Navy-Blue-1000);
  margin: 3rem auto;
}

/* ==========================================================================
   7.0 - Decorative Waves Component
   ========================================================================== */

/* --- 7.1 .wave-container-section --- */
.wave-container-section {
  display: none;
  position: absolute;
  z-index: -1;
  overflow: hidden;
}
.wave-container-section img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 150%;
  height: auto;
  transform: translate(-50%, -50%) rotate(var(--rotation-angle));
  transition: transform 0.4s ease-in-out;
}
@media (min-width: 576px) {
  .wave-container-section img {
    width: 135%;
  }
}

/* --- 7.2 #wave-one-container, #wave-two-container --- */
#wave-one-container {
  top: 2059px;
  left: 0;
  width: 100%;
  height: 1228px;
}
#wave-two-container {
  top: 2928px;
  left: 0;
  width: 150%;
  height: 1310px;
}
@media (min-width: 576px) {
  #wave-one-container {
    top: 0;
    left: 0;
    width: 100%;
    height: 4325px;
  }
  #wave-two-container {
    display: none;
  }
}
@media (min-width: 768px) {
  #wave-one-container {
    top: 2030px;
    height: 2800px;
  }
}
@media (min-width: 992px) {
  #wave-one-container {
    top: 2070px;
    height: 2220px;
    width: clamp(100%, 150vw, 992px);
  }
}
@media (min-width: 1200px) {
  #wave-one-container {
    top: 1000px;
    height: 1490px;
    width: clamp(100%, 150vw, 1400px);
  }
}
@media (min-width: 1400px) {
  #wave-one-container {
    top: 1125px;
    height: 1425px;
    width: clamp(100%, 150vw, 1920px);
  }
}
@media (min-width: 1920px) {
  #wave-one-container {
    top: 1415px;
    height: 1800px;
  }
}

/* --- 7.3 #wave-one, #wave-two --- */
#wave-one {
  --rotation-angle: 33deg;
}
#wave-two {
  --rotation-angle: -211deg;
}
@media (min-width: 576px) {
  #wave-one {
    left: 50%;
    width: 150%;
    height: auto;
    transform: translateX(-50%) rotate(var(--rotation-angle));
  }
}
@media (min-width: 768px) {
  #wave-one {
    top: 34px;
    --rotation-angle: 37deg;
  }
}
@media (min-width: 992px) {
  #wave-one {
    top: 0;
    height: clamp(100%, 50%, 200%);
    --rotation-angle: 65deg;
  }
}
@media (min-width: 1200px) {
  #wave-one {
    top: 0;
    --rotation-angle: 78deg;
  }
}
@media (min-width: 1400px) {
  #wave-one {
    top: 0px;
    --rotation-angle: 90deg;
    height: clamp(135%, 50%, 200%);
  }
}
@media (min-width: 1920px) {
  #wave-one {
    top: 0;
  }
}
