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() { + +
+ +
+
+
+

03 / Social proof

+

Voices of Impact.

+

Real client reflections, arranged as a stronger design-led proof section instead of a simple list — keeping the homepage feeling premium and calm.

+
+
5.0 ★★★★★Trusted client feedback
+
+
+ + +[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([