body {
  margin: 0;
}

.hero {
  padding-top: 100px;
}


.hero-text {
  font-size: 42px;
  text-align: center;
  margin-top: 0px;
  margin-bottom: 10px;
}

/* grid container. */
.reasons-grid {
  display: grid;
  padding: clamp(10px, 5vw, 40px) clamp(20px, 10vw, 120px);
  /*clamp top and bottom padding at 10px min, and 50px max, and scales with 5% view port*/
  /*clamp left and right at 20px min and 120px max with 10% vw scale*/
  gap: clamp(24px, 1vw, 30px);
  /*adjust gap between rows as screen resizes with 24 as min and 30 as max growing 3% of view port*/
  max-width: 1600px;
  /*clamed the wdith to make sure content isnt tiny and streched across in large screens*/
  margin: 0 auto;
  align-content: center;

  /* default: 1s column for small screens*/
  grid-template-columns: 1fr;
}

/* medium screens will have two columns*/
@media (min-width: 600px) {
  .reasons-grid {
    grid-template-columns: repeat(2, minmax(200px, 420px));
    justify-content: center;
  }
}

/* large screens will have 4 columns to get rid of white space*/
@media (min-width: 1600px) {
  .reasons-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* contanier for each reason*/
.reason-cell {
  padding: 15px 15px;
  /* stack elements vertically*/
  display: flex;
  flex-direction: column;
  /*horizontally center everything inside the card*/
  align-items: center;
}

/*Added image wrapper to control image size and svgs were of different sizes*/
.icon-row {
  width: clamp(160px, 20vw, 340px);
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.reason-icon {
  max-width: 100%;
  max-height: 100%;
  height: auto;
  width: auto;
}

.reason-caption {
  margin: 10px 0 5px;
}

.reason-description {
  max-width: 25ch;
  /*limit line length for readability*/
  text-align: center;
}


/**--- JOIN INSTRUCTION SECTION ---**/
.join {
  background-color: rgb(247, 247, 247);
  margin-top: 2rem;
  /* space above the section */
  margin-bottom: 2rem;
  /* space below the section */
  padding-top: 6rem;
  /* inner space at top */
  padding-bottom: 6rem;
  /* inner space at bottom */

  /* Left & right padding only */
  padding-left: 8rem;
  padding-right: 8rem;

  /* responsive scaling */
  padding-left: clamp(4rem, 10vw, 12rem);
  padding-right: clamp(4rem, 10vw, 12rem);

  margin-left: auto;
  margin-right: auto;
}

.join h2 {
  margin-bottom: 0.5rem;
}

.join h5 {
  margin-bottom: 1rem;
}

.join-grid {
  /*max width so the content doesn’t stretch too wide on huge screens */
  max-width: 1600px;
  display: grid;
  grid-template-columns: 1fr;
  /* default 1 column */
  gap: 4rem;
  /* space between columns if grid activates */
  align-items: center;
  /* vertically center items in their grid cells */
  justify-items: center;
  /* horizontally center items in their grid cells */
}

/* Two-column layout for wider screens */
@media (min-width: 1000px) {
  .join-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.instruction-list {
  list-style: none;
  /*using icons instead of default bullets*/
  padding: 0;
  margin-top: 2rem;
}

.instruction-list li {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 12px;
  line-height: 36px;
}

.list-icon {
  /*resize all icons to be uniform*/
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.join-button,
.price-join-button {
  display: inline-flex;
  /* icon + text in one row */
  align-items: center;
  /* vertical alignment */
  gap: 0.5rem;
  /* space between text and icon */
  margin-top: 1rem;
  border: 1px solid black;
  border-radius: 46px;
  padding: 15px;
  background-color: var(--purple-standard);
  font-weight: bold;
  color: black;
}

.join-button svg {
  width: 1.5em;
  height: 1.5em;
  flex-shrink: 0;
  /*lil smooth transition on hover*/
  transition: transform 0.2s ease;
}

.join-button:hover svg {
  /* lil right movement on hover */
  transform: translateX(2px);
}

.join-button:hover,
.price-join-button:hover {
  background-color: var(--purple-darkest);
  color: var(--text-secondary);
  cursor: pointer;
}

.join-image-border {
  position: relative;
  border: 1px solid black;
  border-radius: 10px;
  padding: 10px;
  background-color: var(--blue-light);
  height: fit-content;
  width: fit-content;
  display: flex;
  justify-content: center;
}

.join-image {
  width: 100%;
  height: auto;
  border-radius: 10px;
  border: 1px solid black;
}

/** Pricing Section **/

.price {
  margin-top: 1rem;
  /* space above the section */
  margin-bottom: 2rem;
  /* space below the section */

  /* Left & right padding only */
  padding-left: 8rem;
  padding-right: 8rem;

  padding-top: 3rem;
  /* inner space at top */
  padding-bottom: 4rem;
  /* inner space at bottom */

  /* responsive scaling */
  padding-left: clamp(4rem, 10vw, 12rem);
  padding-right: clamp(4rem, 10vw, 12rem);

  margin-left: auto;
  margin-right: auto;

}

.price h2 {
  text-align: center;
}

.pricing-box-border {
  margin: 0 auto;
  margin-top: 2rem;
  width: fit-content;
  border: 1px solid black;
  border-radius: 20px;
  background-color: var(--orange-light);
  padding: 11px;
}

.pricing-box {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  background-color: var(--purple-lightest);
  padding: 2rem 3rem 2rem 3rem;
  border: 1px solid black;
  width: fit-content;
  border-radius: 20px;
}

.MSAplus-mem,
.non-MSAplus-mem {
  text-align: center;
}

.MSAplus-mem h4,
.non-MSAplus-mem h4 {
  margin: 0;
  color: var(--purple-darkest);
}

.MSAplus-mem P,
.non-MSAplus-mem p {
  color: #EDA113;
}

.price-join-button svg {
  width: 1.5em;
  height: 1.5em;
  flex-shrink: 0;
  transition: transform 180ms cubic-bezier(.4, 0, .2, 1);
}

.price-join-button:hover svg {
  /* lil right movement on hover */
  transform: translateX(2px) scale(1.05);
}

.price-footnote {
  font-size: clamp(0.7rem, 1.8vw, 0.85rem);
  line-height: 1.4;
  color: #6b7280;
}

.credits {
  display: block;
  text-align: center;
  font-size: 0.7rem;
  color: #6b7280;
}