.tm-testimonials { display: block; }

.tm-testimonials--grid {
  display: grid;
  gap: 16px;
}

/* Default (3 columns) */
.tm-testimonials--grid.tm-columns-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* 2 columns */
.tm-testimonials--grid.tm-columns-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* 1 column */
.tm-testimonials--grid.tm-columns-1 {
  grid-template-columns: 1fr;
}

/* Responsive safety */
@media (max-width: 900px) {
  .tm-testimonials--grid.tm-columns-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .tm-testimonials--grid {
    grid-template-columns: 1fr;
  }
}


@media (max-width: 900px) {
  .tm-testimonials--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .tm-testimonials--grid { grid-template-columns: 1fr; }
}

.tm-card {
  border: 1px solid rgba(0,0,0,.08);
  padding: 16px;
  border-radius: 10px;
  }

.tm-card--featured {
  border-width: 2px;
}

.tm-quote p:last-child { margin-bottom: 0; }

.tm-meta {
  margin-top: 12px;
  display: flex;
  gap: 12px;
  align-items: center;
}

.tm-thumb img { border-radius: 999px; display: block; }

.tm-name { font-weight: 600; }
.tm-role, .tm-company { opacity: .8; font-size: .95em; }

.tm-testimonials--list .tm-row {
  padding: 16px 0;
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.tm-rating { margin-top: 10px; }

.tm-headline {
  margin: 0 0 10px;
  font-size: 1.05em;
}

.tm-rating-wrap {
    margin: 0 0 1rem;
}

.tm-rating-label {
    display: block;
    margin-bottom: 0.35rem;
    font-weight: 600;
}

.tm-stars {
    display: inline-flex;
    gap: 0.25rem;
    align-items: center;
}

.tm-star {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;

    font-size: 1.8rem;
    line-height: 1;

    color: #d1d5db; /* grey */
    transition: color 0.15s ease;
}

.tm-star.is-active {
    color: #ffb400; /* gold */
}

/* Remove ugly click outline but keep keyboard accessibility */
.tm-star:focus { outline: none; }
.tm-star:focus-visible {
    outline: 2px solid #ffb400;
    outline-offset: 3px;
    border-radius: 2px;
}

/* --- Testimonial submission form --- */

.tm-testimonial-form {
    max-width: 760px;        /* wider on desktop */
    width: 100%;
    margin: 1.5rem auto;     /* centred */
    padding: 1.25rem;        /* breathing room */
    font-size: 1.05rem;      /* slightly larger text */
    line-height: 1.5;
}

/* Make paragraphs act like field blocks */
.tm-testimonial-form p {
    margin: 0 0 1.1rem;
}

.tm-testimonial-form label {
    display: inline-block;
    margin-bottom: 0.4rem;
    font-weight: 600;
}

/* Inputs, selects, textareas */
.tm-testimonial-form input[type="text"],
.tm-testimonial-form input[type="url"],
.tm-testimonial-form input[type="email"],
.tm-testimonial-form select,
.tm-testimonial-form textarea {
    width: 100%;
    box-sizing: border-box;

    padding: 0.85rem 0.9rem; /* larger field box */
    font-size: 1.05rem;      /* larger input text */

    border: 1px solid rgba(0,0,0,0.18);
    border-radius: 10px;

    background: #fff;
}

/* Make textarea feel nicer */
.tm-testimonial-form textarea {
    min-height: 160px;
    resize: vertical;
}

/* Focus state */
.tm-testimonial-form input:focus,
.tm-testimonial-form select:focus,
.tm-testimonial-form textarea:focus {
    outline: none;
    border-color: rgba(0,0,0,0.45);
    box-shadow: 0 0 0 3px rgba(0,0,0,0.08);
}

/* Consent line */
.tm-testimonial-form input[type="checkbox"] {
    transform: scale(1.15);
    margin-right: 0.5rem;
}

.tm-testimonial-form p label input[type="checkbox"] {
    vertical-align: middle;
}

/* Submit button */
.tm-testimonial-form button[type="submit"] {
    display: inline-block;
    width: auto;                 /* not full width */
    min-width: 220px;            /* nice presence without being huge */
    padding: 0.9rem 1.4rem;

    font-size: 1.1rem;
    font-weight: 700;

    border: 0;
    border-radius: 12px;

    cursor: pointer;

    background: rgba(0,0,0,0.9);
    color: #fff;
    
    transition: background-color 0.15s ease, color 0.15s ease;

}

.tm-testimonial-form p:last-of-type {
    text-align: center;
}


.tm-testimonial-form button[type="submit"]:hover {
    background: rgba(0,0,0,0.8);
}

.tm-testimonial-form button[type="submit"]:active {
    transform: translateY(1px);
}

/* Success message */
.tm-form-success {
    max-width: 760px;
    margin: 1rem auto;
    padding: 0.9rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(0,0,0,0.12);
    background: rgba(0,0,0,0.04);
    font-size: 1.05rem;
}

/* Rating layout */
.tm-rating-wrap {
    margin: 0 0 1.1rem;
}

/* Rating layout */
.tm-rating-text {
    margin: 0 0 0 1.1rem;
}

/* Mobile tweaks */
@media (max-width: 640px) {
    .tm-testimonial-form {
        padding: 0.9rem;
        font-size: 1rem;
    }

    .tm-testimonial-form input[type="text"],
    .tm-testimonial-form input[type="url"],
    .tm-testimonial-form input[type="email"],
    .tm-testimonial-form select,
    .tm-testimonial-form textarea {
        padding: 0.8rem 0.85rem;
        border-radius: 10px;
    }
}

.tm-consent {
    font-size: 0.95rem;
    line-height: 1.45;
}

.tm-consent a {
    text-decoration: underline;
}
