diff --git a/assets/pasted-20260325-103806-14dddaae.png b/assets/pasted-20260325-103806-14dddaae.png
new file mode 100644
index 0000000..2f6582f
Binary files /dev/null and b/assets/pasted-20260325-103806-14dddaae.png differ
diff --git a/wp-content/mu-plugins/coaching-mvp.php b/wp-content/mu-plugins/coaching-mvp.php
index a87fa2b..be0b332 100644
--- a/wp-content/mu-plugins/coaching-mvp.php
+++ b/wp-content/mu-plugins/coaching-mvp.php
@@ -1754,6 +1754,200 @@ body.coaching-mvp-active .coach-proof-band > .wp-block-group__inner-container {
font-size: .95rem;
margin-bottom: .7rem;
}
+.coach-social-proof-section {
+ position: relative;
+ width: 100%;
+ margin-top: clamp(1.4rem, 3vw, 2.4rem);
+ margin-bottom: clamp(1.2rem, 2.6vw, 2rem);
+ padding: clamp(3.1rem, 6vw, 5rem) 0;
+ background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,249,246,.98));
+ border-top: 1px solid rgba(17,27,51,.05);
+ border-bottom: 1px solid rgba(17,27,51,.05);
+}
+.coach-social-proof-section::before {
+ content: "";
+ position: absolute;
+ inset: 0;
+ background:
+ radial-gradient(circle at 12% 18%, rgba(95,45,255,.06), transparent 22%),
+ radial-gradient(circle at 88% 14%, rgba(0,184,169,.05), transparent 18%),
+ radial-gradient(circle at 82% 84%, rgba(255,159,28,.06), transparent 22%);
+ pointer-events: none;
+}
+.coach-social-proof-inner {
+ position: relative;
+ z-index: 1;
+ width: min(calc(100% - (var(--coach-page-gutter) * 2)), var(--coach-content-max));
+ max-width: var(--coach-content-max);
+ margin: 0 auto;
+}
+.coach-social-proof-header {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) auto;
+ gap: 1.2rem;
+ align-items: end;
+ margin-bottom: clamp(1.4rem, 3vw, 2rem);
+}
+.coach-social-proof-copy {
+ max-width: 42rem;
+}
+.coach-social-proof-copy .coach-eyebrow {
+ background: rgba(17,27,51,.04);
+ border-color: rgba(17,27,51,.08);
+ color: rgba(17,27,51,.76);
+}
+.coach-social-proof-copy h2 {
+ margin: .75rem 0 .7rem;
+ font-size: clamp(2.15rem, 4vw, 3.75rem);
+ line-height: .98;
+ letter-spacing: -.04em;
+ color: #14142b;
+}
+.coach-social-proof-copy p {
+ margin: 0;
+ max-width: 35rem;
+ font-size: 1rem;
+ line-height: 1.7;
+ color: rgba(32,45,68,.78);
+}
+.coach-social-proof-pill {
+ justify-self: end;
+ display: inline-flex;
+ align-items: center;
+ gap: .8rem;
+ padding: .9rem 1.05rem;
+ border-radius: 999px;
+ background: rgba(255,255,255,.9);
+ border: 1px solid rgba(17,27,51,.08);
+ box-shadow: 0 16px 36px rgba(9,18,40,.08);
+ color: #171d31;
+ white-space: nowrap;
+}
+.coach-social-proof-pill strong {
+ font-size: 1rem;
+ line-height: 1;
+}
+.coach-social-proof-pill span {
+ font-size: .84rem;
+ font-weight: 700;
+ letter-spacing: .04em;
+ text-transform: uppercase;
+ color: rgba(23,29,49,.62);
+}
+.coach-social-proof-grid {
+ display: grid;
+ gap: 1rem;
+ grid-template-columns: 1.22fr .78fr;
+ grid-template-areas:
+ "primary secondary"
+ "tertiary quaternary";
+ align-items: stretch;
+}
+.coach-social-proof-card {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ min-height: 100%;
+ padding: clamp(1.2rem, 2.2vw, 1.65rem);
+ border-radius: 30px;
+ background: linear-gradient(180deg, #f5f5f1 0%, #f1f1ed 100%);
+ border: 1px solid rgba(17,27,51,.06);
+ box-shadow: 0 18px 38px rgba(15,23,42,.05);
+ overflow: hidden;
+}
+.coach-social-proof-card::before {
+ content: "“";
+ position: absolute;
+ right: 1rem;
+ top: .45rem;
+ font-size: clamp(4rem, 8vw, 6rem);
+ line-height: 1;
+ color: rgba(17,27,51,.07);
+ font-family: Georgia, serif;
+}
+.coach-social-proof-card:nth-child(1) { grid-area: primary; min-height: 340px; }
+.coach-social-proof-card:nth-child(2) { grid-area: secondary; min-height: 250px; }
+.coach-social-proof-card:nth-child(3) { grid-area: tertiary; min-height: 220px; }
+.coach-social-proof-card:nth-child(4) { grid-area: quaternary; min-height: 220px; }
+.coach-social-proof-card .coach-rating {
+ margin-bottom: .95rem;
+ letter-spacing: .22em;
+}
+.coach-social-proof-quote {
+ margin: 0 0 1.3rem;
+ max-width: 42ch;
+ font-size: clamp(1rem, 1.35vw, 1.18rem);
+ line-height: 1.7;
+ color: rgba(17,27,51,.88);
+}
+.coach-social-proof-card:nth-child(1) .coach-social-proof-quote {
+ font-size: clamp(1.1rem, 1.5vw, 1.32rem);
+ line-height: 1.72;
+}
+.coach-social-proof-footer {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+ gap: .7rem 1rem;
+ margin-top: auto;
+}
+.coach-social-proof-person strong {
+ display: block;
+ font-size: 1rem;
+ color: #171d31;
+}
+.coach-social-proof-person span {
+ display: block;
+ margin-top: .2rem;
+ font-size: .88rem;
+ line-height: 1.45;
+ color: rgba(32,45,68,.68);
+}
+.coach-social-proof-tag {
+ display: inline-flex;
+ align-items: center;
+ padding: .42rem .72rem;
+ border-radius: 999px;
+ background: rgba(255,255,255,.74);
+ border: 1px solid rgba(17,27,51,.07);
+ color: rgba(17,27,51,.66);
+ font-size: .77rem;
+ font-weight: 800;
+ letter-spacing: .06em;
+ text-transform: uppercase;
+}
+@media (max-width: 900px) {
+ .coach-social-proof-header {
+ grid-template-columns: 1fr;
+ align-items: start;
+ }
+ .coach-social-proof-pill {
+ justify-self: start;
+ }
+ .coach-social-proof-grid {
+ grid-template-columns: 1fr;
+ grid-template-areas: "primary" "secondary" "tertiary" "quaternary";
+ }
+ .coach-social-proof-card:nth-child(1),
+ .coach-social-proof-card:nth-child(2),
+ .coach-social-proof-card:nth-child(3),
+ .coach-social-proof-card:nth-child(4) {
+ min-height: 0;
+ }
+}
+@media (max-width: 600px) {
+ .coach-social-proof-section {
+ padding: 2.5rem 0;
+ }
+ .coach-social-proof-card {
+ border-radius: 24px;
+ }
+ .coach-social-proof-pill {
+ white-space: normal;
+ }
+}
.coach-cta-band {
padding: 1.85rem;
background:
@@ -3094,6 +3288,26 @@ function coaching_mvp_home_content() {
+
+
+
+
+
+
+
+
+[coaching_featured_testimonials limit="4"]
+
+
+
+
@@ -3254,20 +3468,6 @@ function coaching_mvp_home_content() {
-
-
-
-
Client reflections
-
-
-
What clients often take away from this work
-
-
-[coaching_testimonials limit="3"]
-
-
-
-
@@ -3973,6 +4173,10 @@ function coaching_mvp_services_shortcode($atts = []) {
}
add_shortcode('coaching_services', 'coaching_mvp_services_shortcode');
+function coaching_mvp_public_testimonial_name($title) {
+ return trim((string) preg_replace('/\s+—\s+Sample$/u', '', (string) $title));
+}
+
function coaching_mvp_testimonials_shortcode($atts = []) {
$atts = shortcode_atts(['limit' => 6], $atts, 'coaching_testimonials');
$items = get_posts([
@@ -3992,7 +4196,7 @@ function coaching_mvp_testimonials_shortcode($atts = []) {
echo '
';
echo '★★★★★
';
echo '' . esc_html(wp_strip_all_tags($item->post_content)) . '
';
- echo '' . esc_html(get_the_title($item)) . '
';
+ echo '' . esc_html(coaching_mvp_public_testimonial_name(get_the_title($item))) . '
';
if ($role) {
echo '' . esc_html($role) . '
';
}
@@ -4003,6 +4207,54 @@ function coaching_mvp_testimonials_shortcode($atts = []) {
}
add_shortcode('coaching_testimonials', 'coaching_mvp_testimonials_shortcode');
+function coaching_mvp_featured_testimonials_shortcode($atts = []) {
+ $atts = shortcode_atts(['limit' => 4], $atts, 'coaching_featured_testimonials');
+ $items = get_posts([
+ 'post_type' => 'testimonial',
+ 'post_status' => 'publish',
+ 'numberposts' => (int) $atts['limit'],
+ 'orderby' => 'menu_order date',
+ 'order' => 'ASC',
+ ]);
+ if (!$items) {
+ return 'No testimonials yet.
';
+ }
+
+ ob_start();
+ echo '';
+ foreach ($items as $item) {
+ $role = trim((string) get_post_meta($item->ID, '_testimonial_role', true));
+ $name = coaching_mvp_public_testimonial_name(get_the_title($item));
+ $tag = '';
+ if ($role !== '') {
+ $parts = array_filter(array_map('trim', explode(',', $role)));
+ if ($parts) {
+ $tag = strtoupper($parts[0]);
+ }
+ }
+
+ echo '
';
+ echo '';
+ echo '
★★★★★
';
+ echo '
“' . esc_html(wp_strip_all_tags($item->post_content)) . '”
';
+ echo '
';
+ echo '';
+ echo '';
+ }
+ echo '
';
+ return ob_get_clean();
+}
+add_shortcode('coaching_featured_testimonials', 'coaching_mvp_featured_testimonials_shortcode');
+
function coaching_mvp_faq_shortcode($atts = []) {
$atts = shortcode_atts(['limit' => 6], $atts, 'coaching_faq');
$items = get_posts([