/* ==========================================================================
   TABLE OF CONTENTS (REFACTORED)
   ========================================================================== */
/*
  0.0 - Design System Variables (:root)
  1.0 - Global Styles
      1.1 - body, main
  2.0 - Hero Component
      2.1 - .hero-section
      2.2 - .hero-section > .about-us-hero-title 
      2.3 - #about-us-vector
      2.4 - .about-black-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
*/

/* ==========================================================================
        0.0 - Design System Variables (:root)
==========================================================================  */
:root {
  /* Fonts */
  --font-heading: "Barlow", sans-serif; /* For titles, headings, etc. */
  --font-body: "Montserrat", sans-serif; /* For paragraphs, main text, etc. */

  /* Spacing Scale (for gaps, padding, margins) */
  --space-xs: 0.5rem; /* 8px */
  --space-sm: 1rem; /* 16px */
  --space-md: 2rem; /* 32px */
  --space-lg: 4rem; /* 64px */
  --space-xl: 8rem; /* 128px */

  /* Container Widths */
  --container-xs: 280px;
  --container-sm: var(--container-xs);
  --container-md: 46.5rem;
  --container-lg: var(--container-md);
  --container-xl: 87rem;
  --container-xxl: var(--container-xl);
  --container-xxxl: 147rem;
}

/* ==========================================================================
                1.0 - Global Styles (Body, Main)
   ========================================================================== */
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  margin: 0;
  background-color: var(
    --Neutral-Indigo-100
  ); /* Example of using a global variable */
}

main {
  flex-grow: 1;
}

/* ==========================================================================
                2.0 - Hero Component
   ========================================================================== */

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

/* --- 2.2 .hero-section > .about-us-hero-title  --- */
.hero-section > .about-us-hero-title {
  position: absolute;
  left: 50%;
  top: 45%;
  transform: translate(-50%, -50%);
  z-index: 4;
  width: 20rem;
  color: var(--Neutral-Indigo-100); /* Example */
  text-align: center;
  font-family: var(--font-heading);
  font-size: 4.3rem;
}
@media screen and (min-width: 576px) {
  .hero-section > .about-us-hero-title {
    font-size: 6.2rem;
    width: 26rem;
    top: 35%;
  }
}
@media screen and (min-width: 768px) {
  .hero-section > .about-us-hero-title {
    width: 30rem;
    font-size: 7.2rem;
  }
}
@media screen and (min-width: 1200px) {
  .hero-section > .about-us-hero-title {
    width: 35rem;
    font-size: 8.3rem;
  }
}
@media screen and (min-width: 1400px) {
  .hero-section > .about-us-hero-title {
    top: 37%;
  }
}
@media screen and (min-width: 1920px) {
  .hero-section > .about-us-hero-title {
    width: 45rem;
    font-size: 10.5rem;
  }
}

/* --- 2.3 #about-us-vector --- */
#about-us-vector {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  width: 100%;
  height: auto;
}
@media screen and (min-width: 576px) {
  #about-us-vector {
    bottom: -69px;
  }
}
@media screen and (min-width: 768px) {
  #about-us-vector {
    bottom: -95px;
  }
}

/* --- 2.4 .about-black-blur --- */
.about-black-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: #323752;
}

/* ==========================================================================
               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 screen and (min-width: 576px) {
  .background-wrapper {
    background-image: url(/assets/images/about-us/background-images/page/about-us-background-576.svg);
    margin-top: 33px;
  }
}
@media screen and (min-width: 768px) {
  .background-wrapper {
    background-image: url(/assets/images/about-us/background-images/page/about-us-background-768.svg);
    margin-top: 54px;
  }
}
@media screen and (min-width: 992px) {
  .background-wrapper {
    background-image: url(/assets/images/about-us/background-images/page/about-us-background-992.svg);
  }
}
@media screen and (min-width: 1200px) {
  .background-wrapper {
    background-image: url(/assets/images/about-us/background-images/page/about-us-background-1200.svg);
    margin-top: 6rem;
  }
}
@media screen and (min-width: 1400px) {
  .background-wrapper {
    background-image: url(/assets/images/about-us/background-images/page/about-us-background-1400.svg);
    margin-bottom: -2px;
  }
}
@media screen and (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: 90%;
  max-width: var(--container-xs); /* 280px */
  margin: 5rem auto;
}
@media screen and (min-width: 768px) {
  .about-us-section {
    max-width: var(--container-md); /* 46.5rem */
  }
}
@media screen and (min-width: 1200px) {
  .about-us-section {
    max-width: var(--container-xl); /* 87rem */
    gap: 6rem;
  }
}
@media screen and (min-width: 1920px) {
  .about-us-section {
    max-width: var(--container-xxxl); /* 147rem */
  }
}

/* --- 4.2 .about-us-card (Layout Rules) --- */
/* Base styles are implicitly set by the typography and image rules */
@media screen and (min-width: 1200px) {
  .about-us-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 14rem;
    width: 995px;
  }
  #vision .about-us-card-image {
    order: -1;
  }
}
@media screen and (min-width: 1400px) {
  .about-us-card.about-us-section {
    margin-bottom: 8rem;
  }
}
@media screen and (min-width: 1920px) {
  .about-us-card {
    width: 100%;
  }
}

/* --- 4.3 .about-us-card typography (h2, h3, p) --- */
.about-us-card h2 {
  font-family: var(--font-heading);
  font-size: 2.1rem;
  font-weight: 700;
  text-align: center;
  margin: 1.5rem auto;
}
.about-us-card h3 {
  font-family: var(--font-body);
  font-size: 1.42rem;
  font-weight: 600;
  text-align: center;
}
.about-us-card p {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 500;
  text-align: center;
  margin: 1.5rem auto 0 auto;
}
@media screen and (min-width: 768px) {
  .about-us-card h2 {
    font-size: 2.5rem;
  }
  .about-us-card h3 {
    font-size: 1.65rem;
  }
  .about-us-card p {
    font-size: 1.2rem;
  }
}
@media screen and (min-width: 1200px) {
  .about-us-card h2,
  .about-us-card h3,
  .about-us-card p {
    text-align: left;
    margin-left: 0;
    margin-right: 0;
  }
  .about-us-card h2 {
    font-size: 2.8rem;
  }
  .about-us-card h3 {
    font-size: 1.85rem;
  }
  .about-us-card p {
    font-size: 1.35rem;
  }
}
@media screen and (min-width: 1920px) {
  .about-us-card h2 {
    font-size: 3.5rem;
  }
  .about-us-card h3 {
    font-size: 2.3rem;
  }
  .about-us-card p {
    font-size: 1.7rem;
  }
}

/* --- 4.4 .about-us-card-text & .about-us-card-image --- */
.about-us-card-image {
  width: 100%;
  margin: 2rem auto 0 auto;
}
.about-us-card-image img {
  display: block;
  width: 100%;
}
@media screen and (min-width: 1200px) {
  .about-us-card-text {
    width: 500px;
    margin: 0;
  }
  .about-us-card-image {
    width: 500px;
    margin: 0;
  }
}
@media screen and (min-width: 1920px) {
  .about-us-card-text,
  .about-us-card-image {
    width: 45%;
  }
}

/* --- 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 screen and (min-width: 768px) {
  .color-bar .blue,
  .color-bar .green,
  .color-bar .purple,
  .color-bar .yellow {
    height: 1rem;
  }
}
@media screen and (min-width: 1200px) {
  .about-us-card .color-bar {
    width: 280px;
  }
}
@media screen and (min-width: 1920px) {
  .about-us-card .color-bar {
    width: 358.592px;
  }
}

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

/* --- 5.1 .values-section --- */
.values-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 90%;
  max-width: var(--container-xs);
  margin: 18rem auto 0 auto;
}
@media screen and (min-width: 768px) {
  .values-section {
    max-width: var(--container-md);
  }
}
@media screen and (min-width: 1200px) {
  .values-section {
    max-width: 1045px; /* Custom width for this section */
  }
  .values-section .color-bar {
    width: 778px;
  }
}
@media screen and (min-width: 1920px) {
  .values-section {
    max-width: var(--container-xxxl);
  }
}

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

/* --- 5.3 .values (card) & backgrounds --- */
.values {
  padding: 1rem;
  height: 18.375rem;
  background-repeat: no-repeat;
  background-size: 100%;
}
.values.respect {
  background-image: url(/assets/images/about-us/background-images/values/respect-background-320.svg);
}
.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 screen and (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 screen and (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 screen and (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 screen and (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 screen and (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 screen and (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 h2 {
  font-family: var(--font-heading);
  font-size: 2.1rem;
  font-weight: 700;
  text-align: center;
  margin: 1.5rem auto;
}
.values h3 {
  font-family: var(--font-heading);
  font-size: 1.75rem;
  font-weight: 600;
  letter-spacing: 0.06563rem;
  margin-top: 1rem;
}
.values p {
  font-family: var(--font-body);
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.05313rem;
}
@media screen and (min-width: 768px) {
  .values-section h2 {
    font-size: 2.5rem;
  }
  .values h3 {
    font-size: 2rem;
  }
  .values p {
    font-size: 1.65rem;
  }
}
@media screen and (min-width: 1200px) {
  .values-section h2 {
    font-size: 2.8rem;
  }
  .values h3 {
    font-size: 2.3rem;
  }
  .values p {
    font-size: 1.85rem;
  }
}
@media screen and (min-width: 1920px) {
  .values-section h2 {
    font-size: 3.5rem;
  }
  .values h3 {
    font-size: 2.85rem;
  }
  .values p {
    font-size: 2.3rem;
  }
}

/* ==========================================================================
   6.0 - Members Component
   ========================================================================== */

/* --- 6.1 .members-section (container) --- */
.members-section {
  display: flex;
  flex-direction: column;
  width: 90%;
  max-width: var(--container-xs);
  margin: 18rem auto 5rem auto;
}
.groups {
  /* This container holds the title and the member-list */
  margin-bottom: 14rem;
}
@media screen and (min-width: 768px) {
  .members-section {
    max-width: var(--container-md);
  }
}
@media screen and (min-width: 1200px) {
  .members-section {
    max-width: var(--container-xl);
  }
  .groups .color-bar {
    width: 778px;
    margin: 0 auto;
  }
}
@media screen and (min-width: 1920px) {
  .members-section {
    max-width: var(--container-xxxl);
  }
  .groups {
    width: 100%;
  }
}

/* --- 6.2 .groups typography (h2, p) --- */
.groups > h2 {
  font-family: var(--font-heading);
  font-size: 2.1rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 1.25px;
  margin: 0.65rem 0;
}
.groups > p {
  font-family: var(--font-body);
  font-size: 1.45rem;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.85px;
  margin-bottom: 5rem;
}
@media screen and (min-width: 768px) {
  .groups > h2 {
    font-size: 2.5rem;
  }
  .groups > p {
    font-size: 1.65rem;
  }
}
@media screen and (min-width: 1200px) {
  .groups > h2 {
    font-size: 2.8rem;
  }
  .groups > p {
    font-size: 1.85rem;
  }
}
@media screen and (min-width: 1920px) {
  .groups > h2 {
    font-size: 3.5rem;
  }
  .groups > p {
    font-size: 2.35rem;
  }
}

/* --- 6.3 .member-list (THE NEW FLEXBOX SYSTEM) --- */
/*
  This is the new, unified system. It replaces the inconsistent grid/flex
  switching and removes the need for brittle nth-child centering rules.
  To change the number of columns, just update the --columns variable
  at the desired breakpoint.
*/
.member-list {
  --columns: 1; /* Mobile default: 1 column */
  --gap: var(--space-md);
  display: flex;
  flex-wrap: wrap;
  justify-content: center; /* This centers the last row automatically */
  gap: var(--gap);
}
@media screen and (min-width: 768px) {
  .member-list {
    --columns: 2;
    --gap: var(--space-lg);
  }
}
@media screen and (min-width: 1200px) {
  .member-list {
    --columns: 3;
  }
}
@media screen and (min-width: 1920px) {
  .member-list {
    --columns: 4;
    --gap: var(--space-xl);
  }
  #board > .member-list {
    /* Specific override for board member row gap */
    row-gap: var(--space-xl);
  }
}

/* --- 6.4 .member (card) & typography --- */
.member {
  text-align: center;
  /* Let flexbox handle the width. max-width prevents it from becoming too large. */
  flex: 0 1 calc((100% / var(--columns)) - var(--gap));
  max-width: 370px;
}
.member img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}
.member .name {
  font-family: var(--font-heading); /* A name is a title, so use heading font */
  font-size: 1.75rem;
  font-weight: 700;
  margin: 1.5rem 0 0 0;
}
.member .title {
  font-family: var(--font-body);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.85px;
  margin: 1.5rem 0 0 0;
}
@media screen and (min-width: 768px) {
  .member .name {
    font-size: 2rem;
    min-height: 58px;
  }
  .member .title {
    font-size: 1.65rem;
  }
}
@media screen and (min-width: 1200px) {
  .member .name {
    font-size: 2.25rem;
    min-height: 66px;
  }
}
/* --- 6.5 .member-divider --- */
.member-divider {
  border: none;
  height: 1px;
  background-color: var(
    --Navy-Blue-1000
  ); /* Using a variable from your color system */
  margin: var(--space-lg) 0; /* Using your spacing scale */
}

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

/* --- 7.1 .wave-container-section --- */
.wave-container-section {
  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 screen and (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 screen and (min-width: 576px) {
  #wave-one-container {
    top: 0;
    left: 0;
    width: 100%;
    height: 4325px;
  }
  #wave-two-container {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  #wave-one-container {
    top: 2030px;
    height: 2800px;
  }
}
@media screen and (min-width: 992px) {
  #wave-one-container {
    top: 2070px;
    height: 2220px;
    width: clamp(100%, 150vw, 992px);
  }
}
@media screen and (min-width: 1200px) {
  #wave-one-container {
    top: 1000px;
    height: 1490px;
    width: clamp(100%, 150vw, 1400px);
  }
}
@media screen and (min-width: 1400px) {
  #wave-one-container {
    top: 1125px;
    height: 1425px;
    width: clamp(100%, 150vw, 1920px);
  }
}
@media screen and (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 screen and (min-width: 576px) {
  #wave-one {
    left: 50%;
    width: 150%;
    height: auto;
    transform: translateX(-50%) rotate(var(--rotation-angle));
  }
}
@media screen and (min-width: 768px) {
  #wave-one {
    top: 34px;
    --rotation-angle: 37deg;
  }
}
@media screen and (min-width: 992px) {
  #wave-one {
    top: 0;
    height: clamp(100%, 50%, 200%);
    --rotation-angle: 65deg;
  }
}
@media screen and (min-width: 1200px) {
  #wave-one {
    top: 0;
    --rotation-angle: 78deg;
  }
}
@media screen and (min-width: 1400px) {
  #wave-one {
    top: 0px;
    --rotation-angle: 90deg;
    height: clamp(135%, 50%, 200%);
  }
}
@media screen and (min-width: 1920px) {
  #wave-one {
    top: 0;
  }
}
