/* ============================================
   about.css — ABOUT + TESTIMONIALS PAGES
   (about.html and testimonials.html, both body.about)
   Load after style.css
============================================ */

/* ============================================
   INTRO LINE ("About me,")
============================================ */
.semi {
  text-align: left;
  font-size: 1.6rem;
  font-weight: 500;
  margin-bottom: 0;
  padding-left: 2rem;
  font-family: "Brush Script MT", "Segoe Script", cursive;
}

.semi p {
  margin-bottom: 0;
}

@media (max-width: 700px) {
  .semi {
    padding-left: 1rem;
  }
}

/* ============================================
   TRAINER BIO
============================================ */
.trainer {
  text-align: left;
  font-size: 1.2rem;
  padding: 0 3rem;
  display: block;
}

@media (max-width: 700px) {
  .trainer {
    padding-left: 1rem;
    padding-right: 1rem;
    margin-top: 0;
  }
}

.signature p {
  text-align: right;
  font-size: 1.6rem;
  font-weight: 500;
  padding-right: 1rem;
  font-family: "Brush Script MT", "Segoe Script", cursive;
}

/* ============================================
   TRAINER PHOTO
============================================ */
.trainer-photos {
  width: 400px;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  margin-left: auto;
  padding-right: 3rem;
  padding-bottom: 3rem;
  border-radius: 16px;
}

.trainer-photos img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 16px;
}

@media (max-width: 700px) {
  .trainer-photos {
    width: calc(100% - 2rem);  /* fits the screen with a little side room */
    max-width: 400px;
    margin: 0 auto 2rem;       /* auto left/right centers it */
    padding: 0;                /* remove the lopsided right padding */
  }
}

/* ============================================
   TESTIMONIALS
============================================ */
.testimonials {
  padding: 1rem 1.5rem;
  background: #f2ede4;
  text-align: center;
}

.testimonials h2 {
  font-size: 30px;
  margin-bottom: 1rem;
  color: #222;
  font-weight: 600;
}

.testimonials p {
  font-weight: 400;
}

.testimonial-card {
  max-width: 300px;
  margin: 2rem auto 0;
  padding: 2rem;
  background: #fafafa;
  border-radius: 1rem;
  text-align: left;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

/* Testimonial text size (applies to mobile and desktop) */
.testimonial-card p {
  font-size: 1rem;        /* smaller = lower number, bigger = higher */
}

.testimonial-card span {
  display: block;
  margin-top: 1rem;
  font-size: 0.85rem;
  color: #777;
}

/* Desktop: let the card stretch across the screen */
@media (min-width: 701px) {
  .testimonials {
    padding: 1rem 2.5rem;
  }

  .testimonial-grid {
    display: grid;
    /* min column = 45 characters of text + card padding; never more than 4 columns */
    grid-template-columns: repeat(auto-fill, minmax(max(calc(45ch + 4rem), calc((100% - 4.5rem) / 4)), 1fr));
    gap: 1.5rem;
    margin-top: 2rem;
  }

  .testimonial-grid .testimonial-card {
    max-width: none;
    margin: 0;
  }
}


/* "Share your story" form (testimonials page) — same look as the hub's inputs/buttons,
   kept here so this public page doesn't need hub-css/base.css */
.tf-input {
  width: 100%;
  padding: 0.75rem 1rem;
  margin-bottom: 0.9rem;
  border: 1px solid #ddd2eb;
  border-radius: 10px;
  font-size: 0.95rem;
  font-family: inherit;
  background: #fff;
  color: #222;
}
.tf-input:focus {
  outline: none;
  border-color: #c6b7e2;
}
textarea.tf-input {
  resize: vertical;
  font-family: inherit;
}

.tf-btn {
  width: 100%;
  padding: 0.8rem 1rem;
  border: none;
  border-radius: 999px;
  background-color: #c6b7e2;
  color: #3f3550;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.03em;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.2s ease;
}
.tf-btn:hover {
  background-color: #ddd2eb;
  transform: translateY(-1px);
}

.tf-error {
  color: #b3441f;
  font-size: 0.85rem;
  margin-top: 0.8rem;
  min-height: 1.2rem;
}

/* "Share your story" textarea */
#testimonial-message {
  min-height: 110px;
  max-height: 400px;
  resize: none;            /* phones and tablets: auto-grow instead */
}

@media (hover: hover) and (pointer: fine) {
  #testimonial-message {
    resize: vertical;      /* desktop: native corner grip */
  }
}

/* Testimonials — mobile */
@media (max-width: 700px) {
  .testimonials {
    padding: 2.5rem 1rem;      /* was 4rem 1.5rem */
  }

  .testimonial-card {
    padding: 1.25rem;          /* was 2rem */
    max-width: none;           /* uses the full width instead of 300px */
  }

  .testimonials .testimonial-card p {
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.5;
  }
}

/* ============================================
   SOCIAL MEDIA SECTION
============================================ */
.social-section {
  background-color: #fff;
  padding: 30px;
  text-align: center;
}

.social-section h2 {
  font-size: 30px;
  margin-bottom: 20px;
  color: #4b3f5c;
}

.button-group {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 15px;
}

.btn {
  padding: 14px 26px;
  text-decoration: none;
  color: white;
  border-radius: 6px;
  font-weight: bold;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.btn:hover {
  transform: translateY(-2px);
  opacity: 0.9;
}

.instagram {
  background: radial-gradient(
    circle at 30% 107%,
    #fdf497 0%,
    #fdf497 5%,
    #fd5949 45%,
    #d6249f 60%,
    #285aeb 90%
  );
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
}

.facebook {
  background-color: #1877f2;
}