/* =========================================================
   MINDSET — THE CONNECTION
   Customer Service → Analyst → Software Engineering
========================================================= */

#connection {
  position: relative;
  overflow: hidden;
  padding-top: clamp(5rem, 9vw, 8rem);
  padding-bottom: clamp(5rem, 9vw, 8rem);
}

/* ---------------------------------------------------------
   Section Heading
--------------------------------------------------------- */

#connection .section-heading {
  max-width: 900px;
  margin: 0 auto clamp(3rem, 6vw, 5rem);
  text-align: center;
}

#connection .section-heading h2 {
  max-width: 850px;
  margin-inline: auto;
  line-height: 1.08;
}

#connection .section-heading > p:last-child {
  max-width: 720px;
  margin: 1.5rem auto 0;
  line-height: 1.8;
}


/* ---------------------------------------------------------
   Connection Grid
--------------------------------------------------------- */

.mindset-connection-grid {
  position: relative;

  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));

  gap: 1.5rem;

  max-width: 1200px;
  margin-inline: auto;
}


/* ---------------------------------------------------------
   Connection Card
--------------------------------------------------------- */

.mindset-connection-card {
  position: relative;

  min-height: 310px;

  padding: 2rem;

  display: flex;
  flex-direction: column;

  border: 1px solid rgba(80, 90, 110, 0.14);
  border-radius: 24px;

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.88),
      rgba(247, 240, 227, 0.72)
    );

  box-shadow:
    0 18px 50px rgba(42, 48, 61, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);

  overflow: hidden;

  isolation: isolate;

  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    border-color 0.35s ease;
}


/* Soft atmospheric glow */

.mindset-connection-card::before {
  content: "";

  position: absolute;
  z-index: -1;

  width: 180px;
  height: 180px;

  top: -80px;
  right: -70px;

  border-radius: 50%;

  background: rgba(112, 154, 255, 0.14);

  filter: blur(10px);

  transition:
    transform 0.45s ease,
    opacity 0.45s ease;
}


/* Bottom accent */

.mindset-connection-card::after {
  content: "";

  position: absolute;

  left: 2rem;
  right: 2rem;
  bottom: 0;

  height: 3px;

  border-radius: 999px;

  background:
    linear-gradient(
      90deg,
      #6c8cff,
      #a56bff,
      #ef77b7
    );

  opacity: 0.45;

  transform: scaleX(0.35);
  transform-origin: left;

  transition:
    transform 0.4s ease,
    opacity 0.4s ease;
}


/* Hover */

.mindset-connection-card:hover {
  transform: translateY(-8px);

  border-color: rgba(108, 140, 255, 0.28);

  box-shadow:
    0 26px 65px rgba(42, 48, 61, 0.13),
    0 0 0 1px rgba(108, 140, 255, 0.05);
}

.mindset-connection-card:hover::before {
  transform: scale(1.4);
  opacity: 0.9;
}

.mindset-connection-card:hover::after {
  transform: scaleX(1);
  opacity: 0.9;
}


/* ---------------------------------------------------------
   Number
--------------------------------------------------------- */

.mindset-connection-card .principle-number {
  width: 48px;
  height: 48px;

  display: grid;
  place-items: center;

  margin-bottom: 1.5rem;

  border-radius: 14px;

  background:
    linear-gradient(
      135deg,
      rgba(108, 140, 255, 0.13),
      rgba(165, 107, 255, 0.10)
    );

  border: 1px solid rgba(108, 140, 255, 0.16);

  color: #6079d8;

  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;

  transition:
    transform 0.35s ease,
    background 0.35s ease;
}

.mindset-connection-card:hover .principle-number {
  transform: rotate(-4deg) scale(1.05);

  background:
    linear-gradient(
      135deg,
      rgba(108, 140, 255, 0.2),
      rgba(165, 107, 255, 0.16)
    );
}


/* ---------------------------------------------------------
   Eyebrow
--------------------------------------------------------- */

.mindset-connection-card .eyebrow {
  margin-bottom: 0.65rem;

  font-size: 0.7rem;
  letter-spacing: 0.12em;

  opacity: 0.72;
}


/* ---------------------------------------------------------
   Card Heading
--------------------------------------------------------- */

.mindset-connection-card h3 {
  margin: 0 0 1rem;

  font-size: clamp(1.25rem, 2vw, 1.55rem);

  line-height: 1.2;

  letter-spacing: -0.02em;

  transition: color 0.3s ease;
}

.mindset-connection-card:hover h3 {
  color: #5f73c9;
}


/* ---------------------------------------------------------
   Card Body
--------------------------------------------------------- */

.mindset-connection-card > p:last-child {
  margin-top: auto;

  max-width: 46ch;

  font-size: 0.96rem;

  line-height: 1.75;

  color: var(--text-muted, #687080);
}


/* =========================================================
   CONNECTION FLOW
   Adds a visual sense of progression between cards
========================================================= */

.mindset-connection-grid {
  counter-reset: connection-step;
}


/* Desktop connector */

@media (min-width: 901px) {

  .mindset-connection-grid::before {
    content: "";

    position: absolute;

    top: 50%;

    left: 8%;
    right: 8%;

    height: 1px;

    background:
      linear-gradient(
        90deg,
        transparent,
        rgba(108, 140, 255, 0.25),
        rgba(165, 107, 255, 0.25),
        rgba(239, 119, 183, 0.25),
        transparent
      );

    z-index: -1;
  }

}


/* =========================================================
   STEP COLOR LANGUAGE
========================================================= */

/* 01 — customer */

.mindset-connection-card:nth-child(1) {
  --connection-color: #e78b74;
}

.mindset-connection-card:nth-child(1) .principle-number {
  color: #c86f59;
  border-color: rgba(231, 139, 116, 0.25);
  background: rgba(231, 139, 116, 0.1);
}


/* 02 — investigation */

.mindset-connection-card:nth-child(2) {
  --connection-color: #7097e8;
}

.mindset-connection-card:nth-child(2) .principle-number {
  color: #587ac7;
  border-color: rgba(112, 151, 232, 0.25);
  background: rgba(112, 151, 232, 0.1);
}


/* 03 — systems */

.mindset-connection-card:nth-child(3) {
  --connection-color: #8c78dc;
}

.mindset-connection-card:nth-child(3) .principle-number {
  color: #715bc0;
  border-color: rgba(140, 120, 220, 0.25);
  background: rgba(140, 120, 220, 0.1);
}


/* 04 — resolution */

.mindset-connection-card:nth-child(4) {
  --connection-color: #62a8b5;
}

.mindset-connection-card:nth-child(4) .principle-number {
  color: #438b99;
  border-color: rgba(98, 168, 181, 0.25);
  background: rgba(98, 168, 181, 0.1);
}


/* 05 — pattern recognition */

.mindset-connection-card:nth-child(5) {
  --connection-color: #b27bd1;
}

.mindset-connection-card:nth-child(5) .principle-number {
  color: #925db4;
  border-color: rgba(178, 123, 209, 0.25);
  background: rgba(178, 123, 209, 0.1);
}


/* 06 — improvement / engineering */

.mindset-connection-card:nth-child(6) {
  --connection-color: #55a981;
}

.mindset-connection-card:nth-child(6) .principle-number {
  color: #3b8d68;
  border-color: rgba(85, 169, 129, 0.25);
  background: rgba(85, 169, 129, 0.1);
}


/* Individual accent line */

.mindset-connection-card::after {
  background:
    linear-gradient(
      90deg,
      var(--connection-color),
      rgba(255,255,255,0)
    );
}


/* Heading follows the card's color */

.mindset-connection-card:hover h3 {
  color: var(--connection-color);
}


/* =========================================================
   DARK MODE
========================================================= */

html[data-theme="dark"] .mindset-connection-card {

  background:
    linear-gradient(
      145deg,
      rgba(28, 31, 43, 0.88),
      rgba(22, 25, 35, 0.92)
    );

  border-color: rgba(255, 255, 255, 0.09);

  box-shadow:
    0 20px 60px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

html[data-theme="dark"] .mindset-connection-card:hover {

  border-color: rgba(140, 160, 255, 0.25);

  box-shadow:
    0 28px 70px rgba(0, 0, 0, 0.4),
    0 0 30px rgba(108, 140, 255, 0.05);
}

html[data-theme="dark"] .mindset-connection-card > p:last-child {
  color: rgba(235, 237, 244, 0.68);
}

html[data-theme="dark"] .mindset-connection-card h3 {
  color: rgba(255, 255, 255, 0.94);
}

html[data-theme="dark"] .mindset-connection-card:hover h3 {
  color: var(--connection-color);
}

html[data-theme="dark"] .mindset-connection-grid::before {
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(108, 140, 255, 0.18),
      rgba(165, 107, 255, 0.2),
      rgba(239, 119, 183, 0.18),
      transparent
    );
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1000px) {

  .mindset-connection-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mindset-connection-card {
    min-height: 290px;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

  #connection {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  #connection .section-heading {
    margin-bottom: 2.5rem;
  }

  #connection .section-heading h2 {
    font-size: clamp(1.8rem, 8vw, 2.5rem);
  }

  .mindset-connection-grid {
    grid-template-columns: 1fr;

    gap: 1rem;
  }

  .mindset-connection-card {
    min-height: auto;

    padding: 1.5rem;

    border-radius: 20px;
  }

  .mindset-connection-card .principle-number {
    width: 42px;
    height: 42px;

    margin-bottom: 1.25rem;
  }

  .mindset-connection-card h3 {
    font-size: 1.3rem;
  }

  .mindset-connection-card > p:last-child {
    margin-top: 0;

    font-size: 0.92rem;

    line-height: 1.7;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

  .mindset-connection-card,
  .mindset-connection-card::before,
  .mindset-connection-card::after,
  .mindset-connection-card .principle-number,
  .mindset-connection-card h3 {
    transition: none;
  }

  .mindset-connection-card:hover {
    transform: none;
  }

}


/* =========================================================
   MINDSET — REAL-WORLD CONNECTION / TRANSITION
   Customer Service → Analyst → Software Engineer
========================================================= */

.mindset-transition-section {
  position: relative;
  overflow: hidden;

  padding-top: clamp(5rem, 9vw, 8rem);
  padding-bottom: clamp(5rem, 9vw, 8rem);
}


/* =========================================================
   SECTION HEADING
========================================================= */

.mindset-transition-section .section-heading {
  max-width: 900px;
  margin: 0 auto clamp(3.5rem, 7vw, 5.5rem);

  text-align: center;
}

.mindset-transition-section .section-heading h2 {
  max-width: 850px;
  margin-inline: auto;

  line-height: 1.08;
  letter-spacing: -0.035em;
}

.mindset-transition-section .section-heading > p:last-child {
  max-width: 700px;
  margin: 1.5rem auto 0;

  line-height: 1.8;
}


/* =========================================================
   TRANSITION GRID
========================================================= */

.mindset-transition-grid {
  position: relative;

  max-width: 1200px;
  margin-inline: auto;

  display: grid;

  /*
     Card → Arrow → Card → Arrow → Card
  */

  grid-template-columns:
    minmax(0, 1fr)
    auto
    minmax(0, 1fr)
    auto
    minmax(0, 1fr);

  align-items: stretch;

  gap: clamp(1rem, 2vw, 2rem);
}


/* =========================================================
   TRANSITION CARDS
========================================================= */

.mindset-transition-card {
  --transition-color: #6c8cff;

  position: relative;

  min-height: 430px;

  padding: clamp(2rem, 4vw, 2.75rem);

  display: flex;
  flex-direction: column;

  border-radius: 28px;

  border: 1px solid rgba(80, 90, 110, 0.14);

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.9),
      rgba(247, 240, 227, 0.7)
    );

  box-shadow:
    0 20px 60px rgba(42, 48, 61, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);

  overflow: hidden;

  isolation: isolate;

  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease,
    border-color 0.4s ease;
}


/* Large atmospheric glow */

.mindset-transition-card::before {
  content: "";

  position: absolute;
  z-index: -1;

  width: 260px;
  height: 260px;

  top: -130px;
  right: -110px;

  border-radius: 50%;

  background: var(--transition-color);

  opacity: 0.08;

  filter: blur(15px);

  transition:
    transform 0.5s ease,
    opacity 0.5s ease;
}


/* Bottom gradient accent */

.mindset-transition-card::after {
  content: "";

  position: absolute;

  left: 2rem;
  right: 2rem;
  bottom: 0;

  height: 4px;

  border-radius: 999px;

  background:
    linear-gradient(
      90deg,
      var(--transition-color),
      rgba(255, 255, 255, 0)
    );

  opacity: 0.55;

  transform: scaleX(0.35);

  transform-origin: left;

  transition:
    transform 0.4s ease,
    opacity 0.4s ease;
}


/* Hover */

.mindset-transition-card:hover {
  transform: translateY(-10px);

  border-color: color-mix(
    in srgb,
    var(--transition-color) 35%,
    transparent
  );

  box-shadow:
    0 30px 75px rgba(42, 48, 61, 0.14),
    0 0 35px color-mix(
      in srgb,
      var(--transition-color) 7%,
      transparent
    );
}

.mindset-transition-card:hover::before {
  transform: scale(1.45);

  opacity: 0.13;
}

.mindset-transition-card:hover::after {
  transform: scaleX(1);

  opacity: 0.95;
}


/* =========================================================
   CARD COLOR THEMES
========================================================= */

/* CURRENT — warm / people */

.mindset-transition-card:nth-child(1) {
  --transition-color: #df8a72;
}


/* NEXT — analytical / blue-purple */

.mindset-transition-card:nth-child(3) {
  --transition-color: #778ce5;
}


/* LONG TERM — engineering / green */

.mindset-transition-card:nth-child(5) {
  --transition-color: #5aa989;
}


/* =========================================================
   EYEBROW
========================================================= */

.mindset-transition-card .eyebrow {
  margin-bottom: 0.8rem;

  font-size: 0.7rem;
  font-weight: 700;

  letter-spacing: 0.14em;
  text-transform: uppercase;

  color: var(--transition-color);

  opacity: 0.9;
}


/* =========================================================
   CARD HEADING
========================================================= */

.mindset-transition-card h3 {
  margin: 0 0 2rem;

  max-width: 18ch;

  font-size: clamp(1.5rem, 2.4vw, 2rem);

  line-height: 1.15;

  letter-spacing: -0.025em;

  color: var(--text-color, #252936);

  transition: color 0.3s ease;
}

.mindset-transition-card:hover h3 {
  color: var(--transition-color);
}


/* =========================================================
   CARD LIST
========================================================= */

.mindset-transition-card ul {
  list-style: none;

  padding: 0;
  margin: auto 0 0;

  display: flex;
  flex-direction: column;

  gap: 0.95rem;
}


/* List item */

.mindset-transition-card li {
  position: relative;

  padding-left: 1.65rem;

  font-size: 0.94rem;

  line-height: 1.55;

  color: var(--text-muted, #687080);
}


/* Custom check / node */

.mindset-transition-card li::before {
  content: "";

  position: absolute;

  left: 0;
  top: 0.55em;

  width: 7px;
  height: 7px;

  border-radius: 50%;

  background: var(--transition-color);

  box-shadow:
    0 0 0 4px color-mix(
      in srgb,
      var(--transition-color) 10%,
      transparent
    );
}


/* Small connecting line */

.mindset-transition-card li:not(:last-child)::after {
  content: "";

  position: absolute;

  left: 3px;
  top: calc(0.55em + 11px);

  width: 1px;
  height: calc(100% + 0.25rem);

  background:
    color-mix(
      in srgb,
      var(--transition-color) 18%,
      transparent
    );
}


/* =========================================================
   ARROWS
========================================================= */

.transition-arrow {
  align-self: center;

  width: 46px;
  height: 46px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  border: 1px solid rgba(108, 140, 255, 0.16);

  background:
    rgba(255, 255, 255, 0.65);

  color: #7184d9;

  font-size: 1.4rem;
  font-weight: 400;

  box-shadow:
    0 10px 30px rgba(42, 48, 61, 0.07);

  transition:
    transform 0.35s ease,
    background 0.35s ease,
    box-shadow 0.35s ease;
}


/* Arrow hover when nearby cards are hovered */

.mindset-transition-grid:has(
  .mindset-transition-card:hover
) .transition-arrow {
  transform: translateX(3px);

  background:
    rgba(108, 140, 255, 0.08);

  box-shadow:
    0 12px 35px rgba(108, 140, 255, 0.1);
}


/* =========================================================
   VISUAL STAGE INDICATOR
========================================================= */

.mindset-transition-card:nth-child(1)::before {
  background: #df8a72;
}

.mindset-transition-card:nth-child(3)::before {
  background: #778ce5;
}

.mindset-transition-card:nth-child(5)::before {
  background: #5aa989;
}


/* =========================================================
   DARK MODE
========================================================= */

html[data-theme="dark"] .mindset-transition-card {
  background:
    linear-gradient(
      145deg,
      rgba(29, 32, 44, 0.92),
      rgba(21, 24, 34, 0.95)
    );

  border-color: rgba(255, 255, 255, 0.08);

  box-shadow:
    0 24px 70px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

html[data-theme="dark"] .mindset-transition-card:hover {
  border-color: color-mix(
    in srgb,
    var(--transition-color) 30%,
    transparent
  );

  box-shadow:
    0 32px 80px rgba(0, 0, 0, 0.42),
    0 0 35px color-mix(
      in srgb,
      var(--transition-color) 8%,
      transparent
    );
}

html[data-theme="dark"] .mindset-transition-card h3 {
  color: rgba(255, 255, 255, 0.94);
}

html[data-theme="dark"] .mindset-transition-card:hover h3 {
  color: var(--transition-color);
}

html[data-theme="dark"] .mindset-transition-card li {
  color: rgba(235, 237, 244, 0.68);
}

html[data-theme="dark"] .transition-arrow {
  background:
    rgba(35, 39, 53, 0.8);

  border-color:
    rgba(140, 160, 255, 0.16);

  color: #91a2f2;

  box-shadow:
    0 12px 35px rgba(0, 0, 0, 0.2);
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1000px) {

  .mindset-transition-grid {
    grid-template-columns: 1fr 1fr;

    gap: 1.5rem;
  }

  /*
     Turn arrows into visual connectors
     between rows.
  */

  .transition-arrow {
    justify-self: center;

    transform: rotate(90deg);
  }

  .mindset-transition-grid:has(
    .mindset-transition-card:hover
  ) .transition-arrow {
    transform: rotate(90deg) translateX(3px);
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

  .mindset-transition-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .mindset-transition-section .section-heading {
    margin-bottom: 2.75rem;
  }

  .mindset-transition-section .section-heading h2 {
    font-size: clamp(1.8rem, 8vw, 2.5rem);
  }


  .mindset-transition-grid {
    display: flex;
    flex-direction: column;

    gap: 0.75rem;
  }


  .mindset-transition-card {
    min-height: auto;

    padding: 1.75rem;

    border-radius: 22px;
  }


  .mindset-transition-card h3 {
    max-width: none;

    margin-bottom: 1.75rem;

    font-size: 1.45rem;
  }


  .mindset-transition-card ul {
    gap: 0.8rem;
  }


  .mindset-transition-card li {
    font-size: 0.9rem;
  }


  .transition-arrow {
    width: 40px;
    height: 40px;

    margin: 0.25rem auto;

    font-size: 1.2rem;

    transform: rotate(90deg);
  }


  .mindset-transition-grid:has(
    .mindset-transition-card:hover
  ) .transition-arrow {
    transform: rotate(90deg) translateX(3px);
  }

}


/* =========================================================
   VERY SMALL SCREENS
========================================================= */

@media (max-width: 400px) {

  .mindset-transition-card {
    padding: 1.4rem;

    border-radius: 19px;
  }

  .mindset-transition-card h3 {
    font-size: 1.3rem;
  }

  .mindset-transition-card li {
    font-size: 0.86rem;
  }

}


/* =========================================================
   ACCESSIBILITY — REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

  .mindset-transition-card,
  .mindset-transition-card::before,
  .mindset-transition-card::after,
  .transition-arrow,
  .mindset-transition-card h3 {
    transition: none;
  }

  .mindset-transition-card:hover {
    transform: none;
  }

}
