130 lines
4.9 KiB
Text
130 lines
4.9 KiB
Text
---
|
|
// Site-wide trust strip: ONLY signals we have legitimately earned.
|
|
// - Qualys SSL Labs A+ (verified 2026-06: live report links to ssllabs.com)
|
|
// - SecurityHeaders.com A (verified 2026-06)
|
|
// - Payments via Stripe (PCI DSS Level 1) - we process exclusively through Stripe
|
|
// - 256-bit TLS / HTTPS (Let's Encrypt, TLS 1.2/1.3, HSTS preload)
|
|
// - Hosted in a SOC 2 Type II compliant data center (infrastructure attestation)
|
|
//
|
|
// Deliberately NO government/regulator logos (CMS/NPPES/FCC/Medicare) and NO
|
|
// self-claimed certs we don't hold. Each badge is defensible and, where a public
|
|
// report exists, links to the live verification.
|
|
//
|
|
// Props let order/landing pages tighten or relax the wording without forking.
|
|
export interface Props {
|
|
variant?: "full" | "compact";
|
|
/** Show the live "Verify" links (default true). */
|
|
links?: boolean;
|
|
class?: string;
|
|
}
|
|
const { variant = "full", links = true, class: extraClass = "" } = Astro.props;
|
|
const compact = variant === "compact";
|
|
---
|
|
|
|
<section class={`pw-trust ${compact ? "pw-trust--compact" : ""} ${extraClass}`} aria-label="Security and trust">
|
|
<ul class="pw-trust__list" role="list">
|
|
<li class="pw-trust__item">
|
|
<svg class="pw-trust__icon" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M12 1 3 5v6c0 5 3.8 9.7 9 11 5.2-1.3 9-6 9-11V5l-9-4Zm0 10.9h7c-.5 3.9-3.1 7.4-7 8.5V12H5V6.3l7-3.1v8.7Z"/></svg>
|
|
<div class="pw-trust__txt">
|
|
<span class="pw-trust__h">SSL Labs <strong>A+</strong></span>
|
|
{links && <a class="pw-trust__v" href="https://www.ssllabs.com/ssltest/analyze.html?d=performancewest.net" target="_blank" rel="noopener nofollow">Verify</a>}
|
|
</div>
|
|
</li>
|
|
|
|
<li class="pw-trust__item">
|
|
<svg class="pw-trust__icon" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M12 1 3 5v6c0 5 3.8 9.7 9 11 5.2-1.3 9-6 9-11V5l-9-4Zm-1.2 14.4L7 11.6l1.4-1.4 2.4 2.4 4.8-4.8L17 9.2l-6.2 6.2Z"/></svg>
|
|
<div class="pw-trust__txt">
|
|
<span class="pw-trust__h">Security Headers <strong>A</strong></span>
|
|
{links && <a class="pw-trust__v" href="https://securityheaders.com/?q=performancewest.net" target="_blank" rel="noopener nofollow">Verify</a>}
|
|
</div>
|
|
</li>
|
|
|
|
<li class="pw-trust__item">
|
|
<svg class="pw-trust__icon" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M17 8V7a5 5 0 0 0-10 0v1H5v14h14V8h-2Zm-8 0V7a3 3 0 0 1 6 0v1H9Zm3 9a2 2 0 1 1 0-4 2 2 0 0 1 0 4Z"/></svg>
|
|
<div class="pw-trust__txt">
|
|
<span class="pw-trust__h">256-bit <strong>TLS</strong></span>
|
|
<span class="pw-trust__s">HSTS preloaded</span>
|
|
</div>
|
|
</li>
|
|
|
|
<li class="pw-trust__item">
|
|
<svg class="pw-trust__icon" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M4 5h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2Zm0 4v8h16V9H4Zm2 5h6v2H6v-2Z"/></svg>
|
|
<div class="pw-trust__txt">
|
|
<span class="pw-trust__h">Payments by <strong>Stripe</strong></span>
|
|
<span class="pw-trust__s">PCI DSS Level 1</span>
|
|
</div>
|
|
</li>
|
|
|
|
<li class="pw-trust__item">
|
|
<svg class="pw-trust__icon" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M12 2 3 7v6c0 5 3.8 9.4 9 11 5.2-1.6 9-6 9-11V7l-9-5Zm0 4.7L17 9v4c0 3.4-2.4 6.6-5 7.7-2.6-1.1-5-4.3-5-7.7V9l5-2.3Z"/></svg>
|
|
<div class="pw-trust__txt">
|
|
<span class="pw-trust__h"><strong>SOC 2</strong> Type II</span>
|
|
<span class="pw-trust__s">Compliant data center</span>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<style>
|
|
.pw-trust {
|
|
border-top: 1px solid #e5e7eb;
|
|
background: #f9fafb;
|
|
padding: 1rem 1.25rem;
|
|
}
|
|
.pw-trust--compact {
|
|
border: 1px solid #e5e7eb;
|
|
border-radius: 12px;
|
|
background: #fff;
|
|
padding: 0.65rem 0.9rem;
|
|
margin: 1rem 0;
|
|
}
|
|
.pw-trust__list {
|
|
list-style: none;
|
|
margin: 0 auto;
|
|
padding: 0;
|
|
max-width: 72rem;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 1.5rem 2rem;
|
|
}
|
|
.pw-trust--compact .pw-trust__list { gap: 0.75rem 1.25rem; }
|
|
.pw-trust__item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.55rem;
|
|
color: #374151;
|
|
}
|
|
.pw-trust__icon {
|
|
width: 1.5rem;
|
|
height: 1.5rem;
|
|
flex: 0 0 auto;
|
|
color: #15803d; /* trust green */
|
|
}
|
|
.pw-trust--compact .pw-trust__icon { width: 1.2rem; height: 1.2rem; }
|
|
.pw-trust__txt { display: flex; flex-direction: column; line-height: 1.15; }
|
|
.pw-trust__h {
|
|
font-size: 0.82rem;
|
|
font-weight: 600;
|
|
color: #111827;
|
|
white-space: nowrap;
|
|
}
|
|
.pw-trust__h strong { color: #15803d; font-weight: 800; }
|
|
.pw-trust__s {
|
|
font-size: 0.7rem;
|
|
color: #6b7280;
|
|
white-space: nowrap;
|
|
}
|
|
.pw-trust__v {
|
|
font-size: 0.68rem;
|
|
color: #2563eb;
|
|
text-decoration: none;
|
|
font-weight: 600;
|
|
}
|
|
.pw-trust__v:hover { text-decoration: underline; }
|
|
@media (max-width: 640px) {
|
|
.pw-trust__list { gap: 1rem 1.25rem; }
|
|
.pw-trust__s { display: none; }
|
|
}
|
|
</style>
|