/* ============================================================ TESTIMONIALS COMPONENT 3-column card grid with quote, avatar, name, role ============================================================ */ .testimonials { padding: 6rem 0; background-color: var(--color-bg); transition: background-color 0.4s ease; } .testimonials-header { text-align: center; margin-bottom: 4rem; } .testimonials-header .section-subtitle { margin: 0 auto; } /* ── Grid ──────────────────────────────────────────────── */ .testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; align-items: start; } /* ── Card ──────────────────────────────────────────────── */ .testimonial-card { background-color: var(--card-bg); border: 1px solid var(--card-border); border-radius: var(--radius-lg); padding: 2rem; display: flex; flex-direction: column; gap: 1.25rem; position: relative; transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; } .testimonial-card:hover { border-color: var(--card-hover-border); transform: translateY(-3px); box-shadow: var(--color-card-shadow); } /* Offset second card slightly for visual interest */ .testimonials-grid .testimonial-card:nth-child(2) { margin-top: 1.5rem; } /* ── Stars ─────────────────────────────────────────────── */ .testimonial-stars { display: flex; gap: 3px; } .testimonial-stars span { color: var(--color-accent); font-size: 0.9rem; } /* ── Quote mark ────────────────────────────────────────── */ .testimonial-quote-mark { font-family: var(--font-heading); font-size: 4rem; line-height: 0.5; color: var(--color-primary); opacity: 0.3; user-select: none; } /* ── Text ──────────────────────────────────────────────── */ .testimonial-text { font-size: 0.93rem; color: var(--color-text); line-height: 1.8; flex: 1; } /* ── Divider ───────────────────────────────────────────── */ .testimonial-divider { height: 1px; background-color: var(--color-border); transition: background-color 0.3s ease; } /* ── Author ────────────────────────────────────────────── */ .testimonial-author { display: flex; align-items: center; gap: 0.85rem; } .testimonial-avatar { width: 42px; height: 42px; border-radius: 50%; background-color: var(--color-primary-soft); border: 2px solid var(--color-primary); display: flex; align-items: center; justify-content: center; font-size: 0.78rem; font-weight: 800; color: var(--color-primary); flex-shrink: 0; transition: all 0.3s ease; } .testimonial-card:hover .testimonial-avatar { background-color: var(--color-primary); color: var(--color-btn-text); } .testimonial-name { font-size: 0.9rem; font-weight: 700; color: var(--color-heading); margin-bottom: 0.15rem; } .testimonial-role { font-size: 0.78rem; color: var(--color-text-muted); } /* ── Featured card (middle) ────────────────────────────── */ .testimonial-card.is-featured { border-color: var(--color-primary); background: linear-gradient(160deg, var(--color-primary-soft) 0%, var(--card-bg) 50%); } .testimonial-card.is-featured::before { content: 'Featured'; position: absolute; top: -1px; right: 1.5rem; background-color: var(--color-primary); color: var(--color-btn-text); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.25rem 0.7rem; border-radius: 0 0 var(--radius-sm) var(--radius-sm); } /* ── Responsive ─────────────────────────────────────────── */ @media (max-width: 900px) { .testimonials-grid { grid-template-columns: 1fr; } .testimonials-grid .testimonial-card:nth-child(2) { margin-top: 0; } }