/* ============================================
   WEBSTEPPER BLOG — SHARED STYLES v1.1
   Enqueued via functions.php on all blog posts
   Location: /wp-content/themes/woodmart-child/webstepper-blog.css
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');

/* ----------------------------------------
   Base — Reset theme interference
   ---------------------------------------- */

.ws-blog {
  font-family: 'Poppins', sans-serif;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  color: #1F2937;
  line-height: 1.7;
  background: #FFFFFF;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
}

/* Prevent Woodmart theme from overriding our styles */
.ws-blog *,
.ws-blog *::before,
.ws-blog *::after {
  box-sizing: border-box;
}

/* Content container for readable width */
.ws-blog-content,
.ws-blog-toc {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

/* ----------------------------------------
   Table of Contents
   ---------------------------------------- */

.ws-blog-toc {
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 24px 28px;
  margin-bottom: 48px;
  margin-top: 48px;
}

.ws-blog-toc-title {
  font-size: 14px;
  font-weight: 600;
  color: #374151;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 16px 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.ws-blog-toc-title svg {
  width: 18px;
  height: 18px;
  color: #10B981;
}

.ws-blog-toc-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ws-blog-toc-list li {
  margin-bottom: 10px;
  padding: 0;
}

.ws-blog-toc-list li:last-child {
  margin-bottom: 0;
}

.ws-blog-toc-list li::before,
.ws-blog-toc-list li::marker {
  content: none;
  display: none;
}

.ws-blog-toc-list a {
  font-size: 15px;
  color: #4B5563;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: all 0.2s ease;
}

.ws-blog-toc-list a:hover {
  color: #10B981;
}

.ws-blog-toc-list a::before {
  content: '';
  width: 6px;
  height: 6px;
  min-width: 6px;
  background: #D1D5DB;
  border-radius: 50%;
  transition: all 0.2s ease;
}

.ws-blog-toc-list a:hover::before {
  background: #10B981;
}


/* ----------------------------------------
   Hero Intro Section
   ---------------------------------------- */

.ws-blog-hero {
  background: linear-gradient(135deg, #0A1F1A 0%, #1a3530 100%);
  width: 100vw;
  max-width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  padding: 80px 24px;
  margin-bottom: 64px;
  text-align: center;
}

.ws-blog-hero-inner {
  max-width: 700px;
  margin: 0 auto;
}

.ws-blog-hero-icon {
  font-size: 64px;
  margin-bottom: 24px;
  display: block;
  color: #FFFFFF;
  line-height: 1;
}

.ws-blog-hero-tagline {
  font-size: 14px;
  font-weight: 600;
  color: #10B981;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0 0 16px 0;
}

.ws-blog-hero-title {
  font-size: 36px;
  font-weight: 700;
  color: #FFFFFF;
  line-height: 1.2;
  margin: 0 0 20px 0;
  padding: 0;
  border: none;
}

.ws-blog-hero-subtitle {
  font-size: 18px;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.7;
  margin: 0;
}

/* ----------------------------------------
   Content Styles
   ---------------------------------------- */

.ws-blog-content h2 {
  font-size: 28px;
  font-weight: 700;
  color: #0A1F1A;
  margin: 64px 0 20px 0;
  padding: 24px 0 0 0;
  line-height: 1.3;
  letter-spacing: -0.01em;
  border-top: 1px solid #E5E7EB;
  border-bottom: none;
  border-left: none;
  border-right: none;
}

.ws-blog-content h2:first-of-type {
  border-top: none;
  padding-top: 0;
  margin-top: 0;
}

.ws-blog-content h3 {
  font-size: 22px;
  font-weight: 600;
  color: #1F2937;
  margin: 40px 0 16px 0;
  padding: 0;
  line-height: 1.4;
  border: none;
}

.ws-blog-content h4 {
  font-size: 18px;
  font-weight: 600;
  color: #374151;
  margin: 32px 0 12px 0;
  padding: 0;
  border: none;
}

.ws-blog-content p {
  font-size: 17px;
  color: #374151;
  margin: 0 0 20px 0;
  line-height: 1.8;
}

.ws-blog-content a {
  color: #10B981;
  text-decoration: underline;
  text-decoration-color: rgba(16, 185, 129, 0.3);
  text-underline-offset: 2px;
  transition: all 0.2s ease;
}

.ws-blog-content a:hover {
  color: #059669;
  text-decoration-color: #059669;
}

.ws-blog-content strong {
  font-weight: 600;
  color: #1F2937;
}

.ws-blog-content ul,
.ws-blog-content ol {
  margin: 0 0 24px 0;
  padding-left: 24px;
}

.ws-blog-content li {
  font-size: 17px;
  color: #374151;
  margin-bottom: 12px;
  line-height: 1.7;
  padding: 0;
}

/* Reset content p/li styles inside components —
   prevents .ws-blog-content p from bleeding margin/size
   into nested component elements */
.ws-blog-content .ws-blog-callout p,
.ws-blog-content .ws-blog-scenario p,
.ws-blog-content .ws-blog-signal-desc,
.ws-blog-content .ws-blog-threat-card p,
.ws-blog-content .ws-blog-ci-state-desc,
.ws-blog-content .ws-blog-score-desc,
.ws-blog-content .ws-blog-feature-desc,
.ws-blog-content .ws-blog-discount-type-desc,
.ws-blog-content .ws-blog-discount-type-example,
.ws-blog-content .ws-blog-trust-segment-desc,
.ws-blog-content .ws-blog-verdict-text,
.ws-blog-content .ws-blog-step-text,
.ws-blog-content .ws-blog-plugin-card-desc,
.ws-blog-content .ws-blog-threat-card-resolution,
.ws-blog-content .ws-blog-faq-answer {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}

.ws-blog-content .ws-blog-callout li,
.ws-blog-content .ws-blog-notification-list li,
.ws-blog-content .ws-blog-plugin-card-list li {
  margin-bottom: 0;
  font-size: inherit;
  line-height: inherit;
}

.ws-blog-content li::marker {
  color: #10B981;
}

/* ----------------------------------------
   Callout Boxes
   ---------------------------------------- */

.ws-blog-callout {
  border-radius: 12px;
  padding: 20px 24px;
  margin: 32px 0;
}

.ws-blog-callout h4,
.ws-blog-callout-title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
  gap: 10px;
  line-height: 1.4;
  border: none !important;
}

.ws-blog-callout-title svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.ws-blog-callout p {
  font-size: 15px;
  margin: 0;
  line-height: 1.6;
}

.ws-blog-callout--tip {
  background: linear-gradient(135deg, #ECFDF5 0%, #D1FAE5 100%);
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.ws-blog-callout--tip .ws-blog-callout-title {
  color: #047857;
}

.ws-blog-callout--tip .ws-blog-callout-title svg {
  color: #10B981;
}

.ws-blog-callout--warning {
  background: linear-gradient(135deg, #FFFBEB 0%, #FEF3C7 100%);
  border: 1px solid rgba(245, 158, 11, 0.2);
}

.ws-blog-callout--warning .ws-blog-callout-title {
  color: #92400E;
}

.ws-blog-callout--warning .ws-blog-callout-title svg {
  color: #F59E0B;
}

.ws-blog-callout--info {
  background: linear-gradient(135deg, #EFF6FF 0%, #DBEAFE 100%);
  border: 1px solid rgba(59, 130, 246, 0.2);
}

.ws-blog-callout--info .ws-blog-callout-title {
  color: #1E40AF;
}

.ws-blog-callout--info .ws-blog-callout-title svg {
  color: #3B82F6;
}

.ws-blog-callout--story {
  background: linear-gradient(135deg, #F9FAFB 0%, #F3F4F6 100%);
  border: 1px solid #E5E7EB;
  border-left: 4px solid #10B981;
}

.ws-blog-callout--story .ws-blog-callout-title {
  color: #374151;
}

/* ----------------------------------------
   Step-by-Step Instructions
   ---------------------------------------- */

.ws-blog-steps {
  margin: 32px 0;
  padding: 0;
  counter-reset: step-counter;
  list-style: none;
}

.ws-blog-step {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 32px;
  position: relative;
}

.ws-blog-step:last-child {
  margin-bottom: 0;
}

.ws-blog-step::before {
  counter-increment: step-counter;
  content: counter(step-counter);
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, #10B981 0%, #059669 100%);
  color: #FFFFFF;
  font-size: 16px;
  font-weight: 700;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
}

.ws-blog-step-content {
  flex: 1;
  min-width: 0;
  padding-top: 0;
}

.ws-blog-step-title {
  font-size: 18px;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 8px 0 !important;
  padding: 0 !important;
  line-height: 1.3;
  min-height: 40px;
  display: flex;
  align-items: center;
  border: none !important;
}

.ws-blog-step-text {
  font-size: 16px;
  color: #4B5563;
  margin: 0;
  line-height: 1.7;
}

/* ----------------------------------------
   Comparison Table
   ---------------------------------------- */

.ws-blog-table-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 32px 0;
  border-radius: 12px;
  border: 1px solid #E5E7EB;
}

/* Wide table — breaks out of 800px content column */
.ws-blog-table-wrapper--wide {
  width: 100vw;
  max-width: 1100px;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

.ws-blog-table {
  width: 100%;
  min-width: 600px;
  border-collapse: collapse;
  font-size: 15px;
}

.ws-blog-table th {
  background: #F9FAFB;
  padding: 14px 20px;
  text-align: left;
  font-weight: 600;
  color: #374151;
  border-bottom: 1px solid #E5E7EB;
  white-space: nowrap;
}

.ws-blog-table td {
  padding: 14px 20px;
  color: #4B5563;
  border-bottom: 1px solid #F3F4F6;
}

.ws-blog-table tr:last-child td {
  border-bottom: none;
}

.ws-blog-table tr:hover td {
  background: #F9FAFB;
}

.ws-blog-table .ws-check {
  color: #10B981;
  font-weight: 600;
}

.ws-blog-table .ws-cross {
  color: #EF4444;
}

.ws-blog-table .ws-partial {
  color: #F59E0B;
  font-weight: 500;
}

/* Sticky first column on wide tables */
.ws-blog-table td:first-child,
.ws-blog-table th:first-child {
  position: sticky;
  left: 0;
  background: #FFFFFF;
  z-index: 1;
}

.ws-blog-table th:first-child {
  background: #F9FAFB;
}

.ws-blog-table tr:hover td:first-child {
  background: #F9FAFB;
}

/* ----------------------------------------
   Code Blocks
   ---------------------------------------- */

.ws-blog-content code {
  font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
  font-size: 14px;
  background: #F3F4F6;
  padding: 3px 8px;
  border-radius: 6px;
  color: #1F2937;
}

.ws-blog-code-block {
  background: #1F2937;
  border-radius: 12px;
  padding: 24px;
  margin: 24px 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.ws-blog-code-block code {
  background: none;
  padding: 0;
  color: #E5E7EB;
  font-size: 14px;
  line-height: 1.6;
}

/* ----------------------------------------
   Blockquote
   ---------------------------------------- */

.ws-blog-content blockquote {
  margin: 32px 0;
  padding: 24px 28px;
  background: #F9FAFB;
  border-left: 4px solid #10B981;
  border-right: none;
  border-top: none;
  border-bottom: none;
  border-radius: 0 12px 12px 0;
}

.ws-blog-content blockquote p {
  font-size: 18px;
  font-style: italic;
  color: #374151;
  margin: 0;
}

.ws-blog-content blockquote cite {
  display: block;
  margin-top: 12px;
  font-size: 14px;
  font-style: normal;
  color: #6B7280;
}

/* ----------------------------------------
   Image with Caption
   ---------------------------------------- */

.ws-blog-content img {
  max-width: 100%;
  height: auto;
}

.ws-blog-image {
  margin: 32px 0;
}

.ws-blog-image img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.ws-blog-image figcaption {
  text-align: center;
  font-size: 14px;
  color: #6B7280;
  margin-top: 12px;
}

/* ----------------------------------------
   Plugin Card (Comparison posts)
   ---------------------------------------- */

.ws-blog-plugin-card {
  border: 1px solid #E5E7EB;
  border-radius: 16px;
  padding: 32px;
  margin: 32px 0;
  background: #FFFFFF;
  transition: box-shadow 0.2s ease;
}

.ws-blog-plugin-card:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

.ws-blog-plugin-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
  gap: 16px;
}

.ws-blog-plugin-card-name {
  font-size: 20px;
  font-weight: 700;
  color: #0A1F1A;
  margin: 0 0 4px 0;
  padding: 0;
  border: none;
}

.ws-blog-plugin-card-dev {
  font-size: 14px;
  color: #6B7280;
  margin: 0;
}

.ws-blog-plugin-card-badge {
  font-size: 12px;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 100px;
  white-space: nowrap;
  line-height: 1.4;
}

.ws-blog-plugin-card-badge--free {
  background: #ECFDF5;
  color: #047857;
}

.ws-blog-plugin-card-badge--freemium {
  background: #EFF6FF;
  color: #1E40AF;
}

.ws-blog-plugin-card-badge--paid {
  background: #FEF3C7;
  color: #92400E;
}

.ws-blog-plugin-card-desc {
  font-size: 16px;
  color: #4B5563;
  line-height: 1.7;
  margin: 0 0 20px 0;
}

.ws-blog-plugin-card-lists {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.ws-blog-plugin-card-list-title {
  font-size: 13px;
  font-weight: 600;
  color: #374151;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 10px 0;
  padding: 0;
  border: none;
}

.ws-blog-plugin-card-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ws-blog-plugin-card-list li {
  font-size: 14px;
  color: #4B5563;
  margin-bottom: 6px;
  padding-left: 20px;
  position: relative;
  line-height: 1.5;
}

.ws-blog-plugin-card-list li::before {
  position: absolute;
  left: 0;
  font-weight: 700;
}

.ws-blog-plugin-card-list li::marker {
  content: none;
  display: none;
}

.ws-blog-plugin-card-list--pros li::before {
  content: '+';
  color: #10B981;
}

.ws-blog-plugin-card-list--cons li::before {
  content: '\2013';
  color: #EF4444;
}

/* ----------------------------------------
   Verdict Box (Comparison posts)
   ---------------------------------------- */

.ws-blog-verdict {
  background: linear-gradient(135deg, #F9FAFB 0%, #F3F4F6 100%);
  border: 1px solid #E5E7EB;
  border-left: 4px solid #10B981;
  border-radius: 0 12px 12px 0;
  padding: 24px 28px;
  margin: 32px 0;
}

.ws-blog-verdict-label {
  font-size: 12px;
  font-weight: 600;
  color: #10B981;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 8px 0;
}

.ws-blog-verdict-text {
  font-size: 17px;
  color: #1F2937;
  font-weight: 500;
  margin: 0;
  line-height: 1.6;
}

/* ----------------------------------------
   Key Takeaways Box (Full Width)
   ---------------------------------------- */

.ws-blog-takeaways {
  background: linear-gradient(135deg, #0A1F1A 0%, #1a3530 100%);
  width: 100vw;
  max-width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  padding: 64px 24px;
  margin-top: 64px;
  margin-bottom: 64px;
  color: #FFFFFF;
  border-radius: 0;
}

.ws-blog-takeaways-inner {
  max-width: 800px;
  margin: 0 auto;
}

.ws-blog-takeaways-title {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 20px 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #FFFFFF;
  border: none;
}

.ws-blog-takeaways-title svg {
  width: 22px;
  height: 22px;
  color: #10B981;
}

.ws-blog-takeaways ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ws-blog-takeaways li {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 14px;
  padding-left: 28px;
  position: relative;
  line-height: 1.6;
}

.ws-blog-takeaways li:last-child {
  margin-bottom: 0;
}

.ws-blog-takeaways li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z' fill='%2310B981'/%3E%3C/svg%3E") no-repeat center;
  background-size: contain;
}

.ws-blog-takeaways li::marker {
  content: none;
  display: none;
}

/* ----------------------------------------
   CTA Box (Full Width)
   ---------------------------------------- */

.ws-blog-cta {
  background: linear-gradient(135deg, #ECFDF5 0%, #D1FAE5 100%);
  width: 100vw;
  max-width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  padding: 80px 24px;
  margin-top: 64px;
  margin-bottom: 64px;
  text-align: center;
  border: none;
  border-radius: 0;
}

.ws-blog-cta-inner {
  max-width: 600px;
  margin: 0 auto;
}

.ws-blog-cta-title {
  font-size: 24px;
  font-weight: 700;
  color: #0A1F1A;
  margin: 0 0 12px 0;
  padding: 0;
  border: none;
}

.ws-blog-cta-text {
  font-size: 16px;
  color: #4B5563;
  margin: 0 0 24px 0;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
}

.ws-blog-cta-buttons {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

.ws-blog-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  font-family: 'Poppins', sans-serif;
  font-size: 15px;
  font-weight: 600;
  border-radius: 10px;
  text-decoration: none !important;
  transition: all 0.25s ease;
  border: none;
  cursor: pointer;
}

.ws-blog-cta-btn--primary {
  background: linear-gradient(135deg, #0A1F1A 0%, #1a3530 100%);
  color: #FFFFFF;
}

.ws-blog-cta-btn--primary:hover {
  background: linear-gradient(135deg, #1a3530 0%, #2a4540 100%);
  color: #FFFFFF;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(10, 31, 26, 0.2);
}

.ws-blog-cta-btn--secondary {
  background: #FFFFFF;
  color: #0A1F1A;
  border: 1.5px solid #E5E7EB;
}

.ws-blog-cta-btn--secondary:hover {
  border-color: #D1D5DB;
  background: #F9FAFB;
  color: #0A1F1A;
}

.ws-blog-cta-btn svg {
  width: 18px;
  height: 18px;
}

/* ----------------------------------------
   Author Box (Full Width)
   ---------------------------------------- */

.ws-blog-author-section {
  background: #F9FAFB;
  width: 100vw;
  max-width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  padding: 64px 24px;
  border-radius: 0;
}

.ws-blog-author-box {
  display: flex;
  gap: 24px;
  max-width: 800px;
  margin: 0 auto;
  align-items: center;
}

.ws-blog-author-box-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: contain;
  flex-shrink: 0;
}

.ws-blog-author-box-content {
  flex: 1;
  min-width: 0;
}

.ws-blog-author-box-name {
  font-size: 18px;
  font-weight: 600;
  color: #0A1F1A;
  margin: 0 0 4px 0;
  padding: 0;
  border: none;
}

.ws-blog-author-box-role {
  font-size: 14px;
  color: #6B7280;
  margin: 0 0 12px 0;
}

.ws-blog-author-box-bio {
  font-size: 15px;
  color: #4B5563;
  margin: 0;
  line-height: 1.6;
}

/* ----------------------------------------
   Campaign Intelligence States Display
   (Used in Plugin Guides for SCD)
   ---------------------------------------- */

.ws-blog-ci-states {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid #E5E7EB;
  border-radius: 16px;
  overflow: hidden;
  margin: 32px 0;
}

.ws-blog-ci-state {
  padding: 20px 24px;
  border-bottom: 1px solid #F3F4F6;
  transition: background 0.15s ease;
}

.ws-blog-ci-state:last-child {
  border-bottom: none;
}

.ws-blog-ci-state:hover {
  background: #F9FAFB;
}

.ws-blog-ci-state-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 8px 0;
}

.ws-blog-ci-state-dot {
  width: 10px;
  height: 10px;
  min-width: 10px;
  border-radius: 50%;
}

.ws-blog-ci-state-desc {
  font-size: 15px;
  color: #4B5563;
  margin: 0;
  line-height: 1.65;
  padding-left: 20px;
}

/* State colour tokens */
.ws-blog-ci-state--blocked .ws-blog-ci-state-label {
  color: #991B1B;
}
.ws-blog-ci-state--blocked .ws-blog-ci-state-dot {
  background: #EF4444;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15);
}
.ws-blog-ci-state--blocked {
  background: #FFF8F8;
  border-left: 3px solid #EF4444;
}

.ws-blog-ci-state--risk .ws-blog-ci-state-label {
  color: #92400E;
}
.ws-blog-ci-state--risk .ws-blog-ci-state-dot {
  background: #F59E0B;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.15);
}
.ws-blog-ci-state--risk {
  border-left: 3px solid #F59E0B;
}

.ws-blog-ci-state--caution .ws-blog-ci-state-label {
  color: #92400E;
}
.ws-blog-ci-state--caution .ws-blog-ci-state-dot {
  background: #FCD34D;
  box-shadow: 0 0 0 3px rgba(252, 211, 77, 0.2);
}
.ws-blog-ci-state--caution {
  border-left: 3px solid #FCD34D;
}

.ws-blog-ci-state--good .ws-blog-ci-state-label {
  color: #1E40AF;
}
.ws-blog-ci-state--good .ws-blog-ci-state-dot {
  background: #3B82F6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}
.ws-blog-ci-state--good {
  border-left: 3px solid #3B82F6;
}

.ws-blog-ci-state--ready .ws-blog-ci-state-label {
  color: #047857;
}
.ws-blog-ci-state--ready .ws-blog-ci-state-dot {
  background: #10B981;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.15);
}
.ws-blog-ci-state--ready {
  border-left: 3px solid #10B981;
}

/* ----------------------------------------
   Score Grid
   (Used in Plugin Guides for CI engine explainer)
   ---------------------------------------- */

.ws-blog-score-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 28px 0;
}

.ws-blog-score-item {
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 20px;
}

.ws-blog-score-label {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #2271b1;
  background: rgba(34, 113, 177, 0.08);
  border: 1px solid rgba(34, 113, 177, 0.15);
  padding: 3px 10px;
  border-radius: 100px;
  margin-bottom: 10px;
}

.ws-blog-score-desc {
  font-size: 14px;
  color: #4B5563;
  margin: 0;
  line-height: 1.65;
}

/* Hero SCD variant — WP blue accent */
.ws-blog-hero--scd {
  background: linear-gradient(135deg, #091a2a 0%, #0e2640 100%);
}

.ws-blog-hero-tagline--scd {
  color: #72aee6;
}

/* ----------------------------------------
   FAQ Component
   ---------------------------------------- */

.ws-blog-faq {
  margin-top: 24px;
  margin-bottom: 40px;
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  overflow: hidden;
}

.ws-blog-faq-item {
  padding: 24px 28px;
  border-bottom: 1px solid #F3F4F6;
  transition: background 0.15s ease;
}

.ws-blog-faq-item:last-child {
  border-bottom: none;
}

.ws-blog-faq-item:hover {
  background: #F9FAFB;
}

.ws-blog-faq-question {
  font-size: 16px;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 10px 0;
  padding: 0;
  line-height: 1.45;
}

.ws-blog-faq-answer {
  font-size: 15px;
  color: #4B5563;
  margin: 0;
  line-height: 1.7;
}

/* ----------------------------------------
   Feature Grid — Plugin Guides
   (Icon + title + description grid layout)
   ---------------------------------------- */

.ws-blog-feature-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 32px 0;
}

.ws-blog-feature-card {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 24px;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.ws-blog-feature-card:hover {
  border-color: #D1D5DB;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

.ws-blog-feature-card--scd:hover {
  border-color: rgba(34, 113, 177, 0.3);
  box-shadow: 0 4px 16px rgba(34, 113, 177, 0.08);
}

.ws-blog-feature-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(34, 113, 177, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  font-size: 20px;
}

.ws-blog-feature-title {
  font-size: 16px;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 8px 0 !important;
  padding: 0 !important;
  border: none !important;
  line-height: 1.4;
}

.ws-blog-feature-desc {
  font-size: 14px;
  color: #4B5563;
  margin: 0;
  line-height: 1.65;
}

.ws-blog-feature-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 2px 8px;
  border-radius: 100px;
  margin-top: 10px;
}

.ws-blog-feature-tag--free {
  background: #ECFDF5;
  color: #047857;
}

.ws-blog-feature-tag--pro {
  background: rgba(34, 113, 177, 0.08);
  color: #1d4ed8;
}


/* ----------------------------------------
   Scenario Block — Real-world examples
   ---------------------------------------- */

.ws-blog-scenario {
  background: linear-gradient(135deg, #F0F7FF 0%, #E8F2FF 100%);
  border: 1px solid rgba(34, 113, 177, 0.15);
  border-left: 4px solid #2271b1;
  border-radius: 0 14px 14px 0;
  padding: 24px 28px;
  margin: 32px 0;
}

.ws-blog-scenario-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #2271b1;
  margin: 0 0 10px 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.ws-blog-scenario-title {
  font-size: 17px;
  font-weight: 600;
  color: #1E3A5F;
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
  border: none !important;
  line-height: 1.4;
}

.ws-blog-scenario p {
  font-size: 15px;
  color: #374151;
  margin: 0 0 10px 0;
  line-height: 1.7;
}

.ws-blog-scenario p:last-child {
  margin-bottom: 0;
}

/* ----------------------------------------
   Discount Type Showcase
   (Visual display of discount types)
   ---------------------------------------- */

.ws-blog-discount-types {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid #E5E7EB;
  border-radius: 16px;
  overflow: hidden;
  margin: 32px 0;
}

.ws-blog-discount-type {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 22px 24px;
  border-bottom: 1px solid #F3F4F6;
  transition: background 0.15s ease;
}

.ws-blog-discount-type:last-child {
  border-bottom: none;
}

.ws-blog-discount-type:hover {
  background: #F9FAFB;
}

.ws-blog-discount-type-badge {
  flex-shrink: 0;
  min-width: 60px;
  text-align: center;
}

.ws-blog-discount-type-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin: 0 auto 6px;
}

.ws-blog-discount-type-icon--pct  { background: #ECFDF5; }
.ws-blog-discount-type-icon--fixed { background: #EFF6FF; }
.ws-blog-discount-type-icon--bogo  { background: #FEF3C7; }
.ws-blog-discount-type-icon--tier  { background: #F5F3FF; }
.ws-blog-discount-type-icon--spend { background: #FFF1F2; }
.ws-blog-discount-type-icon--bundle { background: #F0FDF4; }

.ws-blog-discount-type-plan {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 2px 6px;
  border-radius: 100px;
}

.ws-blog-discount-type-plan--free {
  background: #ECFDF5;
  color: #047857;
}

.ws-blog-discount-type-plan--pro {
  background: rgba(34, 113, 177, 0.1);
  color: #1d4ed8;
}

.ws-blog-discount-type-body {
  flex: 1;
  min-width: 0;
}

.ws-blog-discount-type-name {
  font-size: 16px;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 4px 0 !important;
  padding: 0 !important;
  border: none !important;
  line-height: 1.35;
}

.ws-blog-discount-type-desc {
  font-size: 14px;
  color: #4B5563;
  margin: 0 0 6px 0;
  line-height: 1.6;
}

.ws-blog-discount-type-example {
  font-size: 13px;
  color: #6B7280;
  font-style: italic;
  margin: 0;
  line-height: 1.5;
}

/* ----------------------------------------
   Stats Strip — Key numbers
   ---------------------------------------- */

.ws-blog-stats-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  overflow: hidden;
  margin: 32px 0;
}

.ws-blog-stat-item {
  padding: 24px;
  text-align: center;
  border-right: 1px solid #E5E7EB;
}

.ws-blog-stat-item:last-child {
  border-right: none;
}

.ws-blog-stat-number {
  font-size: 32px;
  font-weight: 700;
  color: #2271b1;
  line-height: 1;
  margin-bottom: 6px;
}

.ws-blog-stat-label {
  font-size: 13px;
  color: #6B7280;
  line-height: 1.4;
}


/* ----------------------------------------
   Notification Types List
   (Free vs Pro notification breakdown)
   ---------------------------------------- */

.ws-blog-notification-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 32px 0;
}

.ws-blog-notification-group {
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  overflow: hidden;
}

.ws-blog-notification-group-header {
  padding: 14px 20px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  display: flex;
  align-items: center;
  gap: 8px;
}

.ws-blog-notification-group--free .ws-blog-notification-group-header {
  background: #ECFDF5;
  color: #047857;
  border-bottom: 1px solid #D1FAE5;
}

.ws-blog-notification-group--pro .ws-blog-notification-group-header {
  background: rgba(34, 113, 177, 0.07);
  color: #1d4ed8;
  border-bottom: 1px solid rgba(34, 113, 177, 0.12);
}

.ws-blog-notification-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ws-blog-notification-list li {
  font-size: 14px;
  color: #374151;
  padding: 10px 20px;
  border-bottom: 1px solid #F3F4F6;
  line-height: 1.5;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
}

.ws-blog-notification-list li:last-child {
  border-bottom: none;
}

.ws-blog-notification-list li::before {
  content: none !important;
}

.ws-blog-notification-list li::marker {
  content: none;
}

.ws-blog-notification-dot {
  width: 8px;
  height: 8px;
  min-width: 8px;
  border-radius: 50%;
  margin-top: 5px;
}

.ws-blog-notification-group--free .ws-blog-notification-dot {
  background: #10B981;
}

.ws-blog-notification-group--pro .ws-blog-notification-dot {
  background: #2271b1;
}


/* ----------------------------------------
   Hero variant — SCD full-width accent bar
   ---------------------------------------- */

.ws-blog-hero--scd-flagship {
  background: linear-gradient(135deg, #091a2a 0%, #0d2137 50%, #1a3550 100%);
  position: relative;
  overflow: hidden;
}

.ws-blog-hero--scd-flagship::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #2271b1 0%, #72aee6 50%, #2271b1 100%);
}

/* ----------------------------------------
   Hero variant — TrustLens (Cyan accent)
   ---------------------------------------- */

.ws-blog-hero--trustlens {
  background: linear-gradient(135deg, #061a22 0%, #0a2535 50%, #0e3347 100%);
  position: relative;
  overflow: hidden;
}

.ws-blog-hero--trustlens::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #0891B2 0%, #06B6D4 50%, #0891B2 100%);
}

.ws-blog-hero-tagline--trustlens {
  color: #22D3EE;
}


/* ----------------------------------------
   Trust Segment Showcase
   (Visual display of the 6 customer segments)
   ---------------------------------------- */

.ws-blog-trust-segments {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid #E5E7EB;
  border-radius: 16px;
  overflow: hidden;
  margin: 32px 0;
}

.ws-blog-trust-segment {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 20px 24px;
  border-bottom: 1px solid #F3F4F6;
  transition: background 0.15s ease;
}

.ws-blog-trust-segment:last-child {
  border-bottom: none;
}

.ws-blog-trust-segment:hover {
  background: #F9FAFB;
}

.ws-blog-trust-segment-badge {
  flex-shrink: 0;
  width: 52px;
  text-align: center;
}

.ws-blog-trust-segment-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  margin: 0 auto 6px;
}

.ws-blog-trust-segment-score {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.3;
}

.ws-blog-trust-segment-body {
  flex: 1;
  min-width: 0;
}

.ws-blog-trust-segment-name {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 4px 0;
  line-height: 1.3;
}

.ws-blog-trust-segment-desc {
  font-size: 14px;
  color: #4B5563;
  margin: 0;
  line-height: 1.6;
}

/* Segment colour tokens */
.ws-blog-trust-segment--vip .ws-blog-trust-segment-dot       { background: #06B6D4; box-shadow: 0 0 0 3px rgba(6,182,212,0.15); }
.ws-blog-trust-segment--vip .ws-blog-trust-segment-name      { color: #0E7490; }
.ws-blog-trust-segment--vip .ws-blog-trust-segment-score     { color: #0E7490; }
.ws-blog-trust-segment--vip                                   { border-left: 3px solid #06B6D4; background: #f0fdff; }

.ws-blog-trust-segment--trusted .ws-blog-trust-segment-dot   { background: #10B981; box-shadow: 0 0 0 3px rgba(16,185,129,0.15); }
.ws-blog-trust-segment--trusted .ws-blog-trust-segment-name  { color: #047857; }
.ws-blog-trust-segment--trusted .ws-blog-trust-segment-score { color: #047857; }
.ws-blog-trust-segment--trusted                               { border-left: 3px solid #10B981; }

.ws-blog-trust-segment--normal .ws-blog-trust-segment-dot    { background: #6B7280; box-shadow: 0 0 0 3px rgba(107,114,128,0.12); }
.ws-blog-trust-segment--normal .ws-blog-trust-segment-name   { color: #374151; }
.ws-blog-trust-segment--normal .ws-blog-trust-segment-score  { color: #6B7280; }
.ws-blog-trust-segment--normal                                { border-left: 3px solid #D1D5DB; }

.ws-blog-trust-segment--caution .ws-blog-trust-segment-dot   { background: #F59E0B; box-shadow: 0 0 0 3px rgba(245,158,11,0.15); }
.ws-blog-trust-segment--caution .ws-blog-trust-segment-name  { color: #92400E; }
.ws-blog-trust-segment--caution .ws-blog-trust-segment-score { color: #92400E; }
.ws-blog-trust-segment--caution                               { border-left: 3px solid #F59E0B; }

.ws-blog-trust-segment--risk .ws-blog-trust-segment-dot      { background: #F97316; box-shadow: 0 0 0 3px rgba(249,115,22,0.15); }
.ws-blog-trust-segment--risk .ws-blog-trust-segment-name     { color: #9A3412; }
.ws-blog-trust-segment--risk .ws-blog-trust-segment-score    { color: #9A3412; }
.ws-blog-trust-segment--risk                                  { border-left: 3px solid #F97316; }

.ws-blog-trust-segment--critical .ws-blog-trust-segment-dot  { background: #EF4444; box-shadow: 0 0 0 3px rgba(239,68,68,0.15); }
.ws-blog-trust-segment--critical .ws-blog-trust-segment-name { color: #991B1B; }
.ws-blog-trust-segment--critical .ws-blog-trust-segment-score{ color: #991B1B; }
.ws-blog-trust-segment--critical                              { border-left: 3px solid #EF4444; background: #FFF8F8; }


/* ----------------------------------------
   Threat Scenario Cards
   (For TrustLens "real abuse patterns" sections)
   ---------------------------------------- */

.ws-blog-threat-cards {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 32px 0;
}

.ws-blog-threat-card {
  border: 1px solid #FCA5A5;
  border-left: 4px solid #EF4444;
  border-radius: 0 14px 14px 0;
  padding: 20px 24px;
  background: linear-gradient(135deg, #FFF8F8 0%, #FEF2F2 100%);
  transition: box-shadow 0.2s ease;
}

.ws-blog-threat-card:hover {
  box-shadow: 0 4px 12px rgba(239, 68, 68, 0.08);
}

.ws-blog-threat-card-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #EF4444;
  margin: 0 0 8px 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.ws-blog-threat-card-title {
  font-size: 16px;
  font-weight: 600;
  color: #7F1D1D;
  margin: 0 0 8px 0;
  line-height: 1.4;
}

.ws-blog-threat-card p {
  font-size: 14px;
  color: #374151;
  margin: 0 0 8px 0;
  line-height: 1.7;
}

.ws-blog-threat-card p:last-child {
  margin-bottom: 0;
}

.ws-blog-threat-card-resolution {
  font-size: 13px;
  color: #047857;
  font-weight: 500;
  padding: 8px 12px;
  background: rgba(16, 185, 129, 0.08);
  border-radius: 8px;
  margin-top: 10px;
  display: flex;
  align-items: flex-start;
  gap: 6px;
  line-height: 1.5;
}


/* ----------------------------------------
   Score Signal Display
   (Shows positive / negative scoring signals)
   ---------------------------------------- */

.ws-blog-signals {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  overflow: hidden;
  margin: 28px 0;
}

.ws-blog-signal {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 20px;
  border-bottom: 1px solid #F3F4F6;
}

.ws-blog-signal:last-child {
  border-bottom: none;
}

.ws-blog-signal-value {
  font-size: 15px;
  font-weight: 700;
  min-width: 44px;
  text-align: center;
  flex-shrink: 0;
  padding: 4px 8px;
  border-radius: 8px;
  line-height: 1;
}

.ws-blog-signal-value--positive {
  color: #047857;
  background: #ECFDF5;
}

.ws-blog-signal-value--negative {
  color: #991B1B;
  background: #FEF2F2;
}

.ws-blog-signal-value--neutral {
  color: #374151;
  background: #F3F4F6;
}

.ws-blog-signal-desc {
  font-size: 14px;
  color: #374151;
  margin: 0;
  line-height: 1.5;
  flex: 1;
  min-width: 0;
}

.ws-blog-signal-module {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #9CA3AF;
  flex-shrink: 0;
}


/* ----------------------------------------
   Stats strip variant — TrustLens cyan
   ---------------------------------------- */

.ws-blog-stats-strip--trustlens .ws-blog-stat-number {
  color: #0891B2;
}

/* ----------------------------------------
   TrustLens scenario
   (Cyan accent instead of SCD blue)
   ---------------------------------------- */

.ws-blog-scenario--trustlens {
  background: linear-gradient(135deg, #ECFEFF 0%, #CFFAFE 100%);
  border: 1px solid rgba(8, 145, 178, 0.18);
  border-left: 4px solid #0891B2;
}

.ws-blog-scenario--trustlens .ws-blog-scenario-label {
  color: #0891B2;
}

.ws-blog-scenario--trustlens .ws-blog-scenario-title {
  color: #0C4A6E;
}

/* ========================================
   RESPONSIVE QUERIES
   All media queries below — base styles above.
   ======================================== */

/* ----------------------------------------
   Responsive — Score Grid + CI States
   ---------------------------------------- */

@media (max-width: 600px) {
  .ws-blog-score-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .ws-blog-feature-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .ws-blog-stats-strip {
    grid-template-columns: 1fr;
  }
  .ws-blog-stat-item {
    border-right: none;
    border-bottom: 1px solid #E5E7EB;
  }
  .ws-blog-stat-item:last-child {
    border-bottom: none;
  }
}

@media (max-width: 640px) {
  .ws-blog-notification-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .ws-blog-threat-cards {
    gap: 12px;
  }
  .ws-blog-trust-segment {
    gap: 14px;
  }
  .ws-blog-trust-segment-badge {
    width: 40px;
  }
}

/* ----------------------------------------
   Responsive — Tablet (768px)
   ---------------------------------------- */

@media (max-width: 768px) {

  /* Prevent long words/URLs/code from causing horizontal overflow */
  .ws-blog-content p,
  .ws-blog-content li,
  .ws-blog-content a,
  .ws-blog-content code {
    overflow-wrap: break-word;
    word-break: break-word;
  }

  /* Layout */
  .ws-blog-content,
  .ws-blog-toc {
    padding-left: 20px;
    padding-right: 20px;
  }

  /* Hero */
  .ws-blog-hero {
    padding: 60px 20px;
  }
  .ws-blog-hero-icon {
    font-size: 48px;
    margin-bottom: 20px;
  }
  .ws-blog-hero-tagline {
    font-size: 13px;
  }
  .ws-blog-hero-title {
    font-size: 28px;
  }
  .ws-blog-hero-subtitle {
    font-size: 16px;
  }

  /* Content headings & body */
  .ws-blog-content h2 {
    font-size: 24px;
    margin-top: 48px;
  }
  .ws-blog-content h3 {
    font-size: 20px;
    margin-top: 32px;
  }
  .ws-blog-content h4 {
    font-size: 17px;
  }
  .ws-blog-content p,
  .ws-blog-content li {
    font-size: 16px;
  }
  .ws-blog-content blockquote p {
    font-size: 17px;
  }

  /* TOC */
  .ws-blog-toc {
    padding: 20px 24px;
  }
  .ws-blog-toc-title {
    font-size: 13px;
  }
  .ws-blog-toc-list a {
    font-size: 14px;
  }

  /* Callouts */
  .ws-blog-callout h4,
  .ws-blog-callout-title {
    font-size: 14px;
  }
  .ws-blog-callout p {
    font-size: 14px;
  }

  /* Steps */
  .ws-blog-step {
    flex-direction: column;
    gap: 12px;
  }
  .ws-blog-step::before {
    width: 36px;
    height: 36px;
    font-size: 14px;
  }
  .ws-blog-step-title {
    font-size: 17px;
    min-height: auto;
  }
  .ws-blog-step-text {
    font-size: 15px;
  }

  /* Tables */
  .ws-blog-table {
    font-size: 14px;
  }
  .ws-blog-table th,
  .ws-blog-table td {
    padding: 12px 16px;
  }

  /* Disable wide table breakout on tablet/mobile */
  .ws-blog-table-wrapper--wide {
    width: 100%;
    max-width: 100%;
    left: 0;
    transform: none;
  }

  /* Disable sticky columns on mobile — causes rendering issues */
  .ws-blog-table td:first-child,
  .ws-blog-table th:first-child {
    position: static;
    z-index: auto;
  }

  /* Plugin cards */
  .ws-blog-plugin-card {
    padding: 24px 20px;
  }
  .ws-blog-plugin-card-header {
    flex-direction: column;
  }
  .ws-blog-plugin-card-lists {
    grid-template-columns: 1fr;
  }
  .ws-blog-plugin-card-name {
    font-size: 18px;
  }
  .ws-blog-plugin-card-desc {
    font-size: 15px;
  }

  /* Verdict */
  .ws-blog-verdict-text {
    font-size: 16px;
  }

  /* Takeaways */
  .ws-blog-takeaways,
  .ws-blog-cta,
  .ws-blog-author-section {
    padding: 48px 20px;
  }
  .ws-blog-takeaways-title {
    font-size: 17px;
  }
  .ws-blog-takeaways li {
    font-size: 14px;
  }

  /* CTA */
  .ws-blog-cta-title {
    font-size: 22px;
  }
  .ws-blog-cta-text {
    font-size: 15px;
  }
  .ws-blog-cta-btn {
    font-size: 14px;
    padding: 12px 24px;
    width: 100%;
    justify-content: center;
  }
  .ws-blog-cta-buttons {
    flex-direction: column;
  }

  /* Author */
  .ws-blog-author-box {
    flex-direction: column;
    text-align: center;
  }
  .ws-blog-author-box-name {
    font-size: 17px;
  }
  .ws-blog-author-box-bio {
    font-size: 14px;
  }

  /* FAQ */
  .ws-blog-faq-item {
    padding: 20px 24px;
  }
  .ws-blog-faq-question {
    font-size: 15px;
  }
  .ws-blog-faq-answer {
    font-size: 14px;
  }

  /* CI States */
  .ws-blog-ci-state {
    padding: 16px 20px;
  }
  .ws-blog-ci-state-label {
    font-size: 13px;
  }
  .ws-blog-ci-state-desc {
    font-size: 14px;
  }

  /* Score grid */
  .ws-blog-score-item {
    padding: 16px;
  }
  .ws-blog-score-label {
    font-size: 11px;
  }
  .ws-blog-score-desc {
    font-size: 13px;
  }

  /* Feature grid */
  .ws-blog-feature-card {
    padding: 20px;
  }
  .ws-blog-feature-title {
    font-size: 15px;
  }
  .ws-blog-feature-desc {
    font-size: 13px;
  }

  /* Scenario */
  .ws-blog-scenario {
    padding: 20px 24px;
  }
  .ws-blog-scenario-title {
    font-size: 16px;
  }
  .ws-blog-scenario p {
    font-size: 14px;
  }

  /* Discount types */
  .ws-blog-discount-type {
    padding: 18px 20px;
    gap: 16px;
  }
  .ws-blog-discount-type-icon {
    width: 40px;
    height: 40px;
    font-size: 20px;
  }
  .ws-blog-discount-type-name {
    font-size: 15px;
  }
  .ws-blog-discount-type-desc {
    font-size: 13px;
  }
  .ws-blog-discount-type-example {
    font-size: 12px;
  }

  /* Stats strip */
  .ws-blog-stat-number {
    font-size: 28px;
  }
  .ws-blog-stat-label {
    font-size: 12px;
  }
  .ws-blog-stat-item {
    padding: 20px;
  }

  /* Notification grid */
  .ws-blog-notification-group-header {
    font-size: 12px;
  }
  .ws-blog-notification-list li {
    font-size: 13px;
    padding: 8px 16px;
  }

  /* Trust segments */
  .ws-blog-trust-segment {
    padding: 16px 20px;
    gap: 16px;
  }
  .ws-blog-trust-segment-name {
    font-size: 15px;
  }
  .ws-blog-trust-segment-desc {
    font-size: 13px;
  }
  .ws-blog-trust-segment-score {
    font-size: 10px;
  }

  /* Threat cards */
  .ws-blog-threat-card {
    padding: 16px 20px;
  }
  .ws-blog-threat-card-title {
    font-size: 15px;
  }
  .ws-blog-threat-card p {
    font-size: 13px;
  }
  .ws-blog-threat-card-resolution {
    font-size: 12px;
  }

  /* Signals */
  .ws-blog-signal {
    padding: 12px 16px;
    gap: 12px;
  }
  .ws-blog-signal-value {
    font-size: 14px;

  }
  .ws-blog-signal-desc {
    font-size: 13px;
  }
  .ws-blog-signal-module {
    font-size: 10px;
  }
}

/* ----------------------------------------
   Responsive — Mobile (480px)
   ---------------------------------------- */

@media (max-width: 480px) {

  /* Hero */
  .ws-blog-hero {
    padding: 48px 16px;
  }
  .ws-blog-hero-icon {
    font-size: 40px;
    margin-bottom: 16px;
  }
  .ws-blog-hero-tagline {
    font-size: 12px;
    margin-bottom: 12px;
  }
  .ws-blog-hero-title {
    font-size: 22px;
  }
  .ws-blog-hero-subtitle {
    font-size: 15px;
    line-height: 1.6;
  }

  /* Content headings & body */
  .ws-blog-content h2 {
    font-size: 21px;
    margin-top: 40px;
  }
  .ws-blog-content h3 {
    font-size: 18px;
  }
  .ws-blog-content h4 {
    font-size: 16px;
  }
  .ws-blog-content p,
  .ws-blog-content li {
    font-size: 15px;
    line-height: 1.7;
  }
  .ws-blog-content blockquote {
    padding: 20px;
  }
  .ws-blog-content blockquote p {
    font-size: 16px;
  }
  .ws-blog-content blockquote cite {
    font-size: 13px;
  }

  /* TOC */
  .ws-blog-toc {
    padding: 16px 20px;
    margin-bottom: 36px;
    margin-top: 36px;
  }
  .ws-blog-toc-title {
    font-size: 12px;
    margin-bottom: 12px;
  }
  .ws-blog-toc-list a {
    font-size: 13px;
    gap: 8px;
  }
  .ws-blog-toc-list li {
    margin-bottom: 8px;
  }

  /* Callouts */
  .ws-blog-callout {
    padding: 16px 18px;
  }
  .ws-blog-callout h4,
  .ws-blog-callout-title {
    font-size: 13px;
    gap: 8px;
  }
  .ws-blog-callout-title svg {
    width: 18px;
    height: 18px;
  }
  .ws-blog-callout p {
    font-size: 13px;
  }

  /* Steps */
  .ws-blog-step-title {
    font-size: 16px;
  }
  .ws-blog-step-text {
    font-size: 14px;
  }

  /* Tables */
  .ws-blog-table th,
  .ws-blog-table td {
    padding: 10px 14px;
    font-size: 13px;
  }

  /* Code */
  .ws-blog-content code {
    font-size: 13px;
  }
  .ws-blog-code-block {
    padding: 20px 16px;
  }
  .ws-blog-code-block code {
    font-size: 13px;
  }

  /* Plugin cards */
  .ws-blog-plugin-card {
    padding: 20px 16px;
  }
  .ws-blog-plugin-card-name {
    font-size: 17px;
  }
  .ws-blog-plugin-card-desc {
    font-size: 14px;
  }
  .ws-blog-plugin-card-list li {
    font-size: 13px;
  }

  /* Verdict */
  .ws-blog-verdict {
    padding: 18px 20px;
  }
  .ws-blog-verdict-label {
    font-size: 11px;
  }
  .ws-blog-verdict-text {
    font-size: 15px;
  }

  /* Takeaways */
  .ws-blog-takeaways {
    padding: 40px 16px;
  }
  .ws-blog-takeaways-title {
    font-size: 16px;
  }
  .ws-blog-takeaways li {
    font-size: 13px;
    padding-left: 24px;
  }

  /* CTA */
  .ws-blog-cta {
    padding: 48px 16px;
  }
  .ws-blog-cta-title {
    font-size: 20px;
  }
  .ws-blog-cta-text {
    font-size: 14px;
  }
  .ws-blog-cta-btn {
    font-size: 14px;
    padding: 12px 20px;
  }

  /* Author */
  .ws-blog-author-section {
    padding: 40px 16px;
  }
  .ws-blog-author-box-avatar {
    width: 64px;
    height: 64px;
  }
  .ws-blog-author-box-name {
    font-size: 16px;
  }
  .ws-blog-author-box-role {
    font-size: 13px;
  }
  .ws-blog-author-box-bio {
    font-size: 13px;
  }

  /* FAQ */
  .ws-blog-faq-item {
    padding: 16px 20px;
  }
  .ws-blog-faq-question {
    font-size: 14px;
    margin-bottom: 8px;
  }
  .ws-blog-faq-answer {
    font-size: 13px;
  }

  /* CI States */
  .ws-blog-ci-state {
    padding: 14px 16px;
  }
  .ws-blog-ci-state-label {
    font-size: 12px;
    gap: 8px;
  }
  .ws-blog-ci-state-dot {
    width: 8px;
    height: 8px;
    min-width: 8px;
  }
  .ws-blog-ci-state-desc {
    font-size: 13px;
    padding-left: 16px;
  }

  /* Score grid */
  .ws-blog-score-item {
    padding: 14px;
  }
  .ws-blog-score-label {
    font-size: 10px;
    padding: 2px 8px;
  }
  .ws-blog-score-desc {
    font-size: 12px;
  }

  /* Feature grid */
  .ws-blog-feature-card {
    padding: 18px;
  }
  .ws-blog-feature-icon {
    width: 36px;
    height: 36px;
    font-size: 18px;
    margin-bottom: 12px;
  }
  .ws-blog-feature-title {
    font-size: 14px;
  }
  .ws-blog-feature-desc {
    font-size: 12px;
  }
  .ws-blog-feature-tag {
    font-size: 10px;
  }

  /* Scenario */
  .ws-blog-scenario {
    padding: 16px 20px;
  }
  .ws-blog-scenario-label {
    font-size: 10px;
  }
  .ws-blog-scenario-title {
    font-size: 15px;
  }
  .ws-blog-scenario p {
    font-size: 13px;
  }

  /* Discount types */
  .ws-blog-discount-type {
    padding: 14px 16px;
    gap: 12px;
  }
  .ws-blog-discount-type-icon {
    width: 36px;
    height: 36px;
    font-size: 18px;
    border-radius: 10px;
  }
  .ws-blog-discount-type-plan {
    font-size: 9px;
  }
  .ws-blog-discount-type-name {
    font-size: 14px;
  }
  .ws-blog-discount-type-desc {
    font-size: 12px;
  }
  .ws-blog-discount-type-example {
    font-size: 11px;
  }

  /* Stats strip */
  .ws-blog-stat-number {
    font-size: 24px;
  }
  .ws-blog-stat-label {
    font-size: 11px;
  }
  .ws-blog-stat-item {
    padding: 16px;
  }

  /* Notification grid */
  .ws-blog-notification-group-header {
    font-size: 11px;
    padding: 12px 16px;
  }
  .ws-blog-notification-list li {
    font-size: 12px;
    padding: 8px 16px;
  }

  /* Trust segments */
  .ws-blog-trust-segment {
    padding: 14px 16px;
    gap: 12px;
  }
  .ws-blog-trust-segment-badge {
    width: 36px;
  }
  .ws-blog-trust-segment-dot {
    width: 10px;
    height: 10px;
  }
  .ws-blog-trust-segment-score {
    font-size: 9px;
  }
  .ws-blog-trust-segment-name {
    font-size: 14px;
  }
  .ws-blog-trust-segment-desc {
    font-size: 12px;
  }

  /* Threat cards */
  .ws-blog-threat-card {
    padding: 14px 16px;
  }
  .ws-blog-threat-card-label {
    font-size: 10px;
  }
  .ws-blog-threat-card-title {
    font-size: 14px;
  }
  .ws-blog-threat-card p {
    font-size: 12px;
  }
  .ws-blog-threat-card-resolution {
    font-size: 11px;
    padding: 6px 10px;
  }

  /* Signals */
  .ws-blog-signal {
    padding: 10px 14px;
    gap: 10px;
  }
  .ws-blog-signal-value {
    font-size: 13px;
    min-width: 36px;
    padding: 3px 6px;
  }
  .ws-blog-signal-desc {
    font-size: 12px;
  }
  .ws-blog-signal-module {
    font-size: 9px;
    display: none;
  }
}
