/**
 * Theme Name: JeremyWebb.Dev
 * Description: JeremyWebb.Dev Websites and Graphics Theme
 * Author: JeremyWebb.Dev
 * Template: blocksy
 * Text Domain: blocksy
 */

/* Import parent theme styles */
@import url('../blocksy/style.css');

/* =========================================================
   Page Title Effects
   ========================================================= */

.page-title,
.ct-advanced-heading {
  position: relative;
}

.ct-advanced-heading:after,
.blog .page-title:after,
.page .page-title:after {
  content: attr(title) !important;
  position: absolute;
  z-index: -1;
  top: -7%;
  bottom: 0;
  width: 100%;
  height: 100%;
  white-space: nowrap;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(50px, 15vw, 200px);
  font-weight: 800;
  line-height: 1;
  color: var(--theme-palette-color-7);
  /* text-shadow: 0 0 2px rgba(255, 255, 255, 0.4); */
  text-shadow: -1px 0 rgba(255, 255, 255, 0.1), 0 1px rgba(255, 255, 255, 0.1), 
               1px 0 rgba(255, 255, 255, 0.1), 0 -1px rgba(255, 255, 255, 0.1);
}

.ct-advanced-heading:after {
  left: 0;
  font-size: clamp(70px, 10vw, 140px);
}

@media (min-width: 690px) {
  .ct-advanced-heading:after {
    justify-content: initial;
  }
}

/* Special Features Hover Effect */
.ct-special-features .stk-block-column:hover {
  transform: scale3d(1.05, 1.05, 1);
}

/* =========================================================
   Universal Blog Post Styling - Jeremy Webb Blog Theme System
   (Base styles + enhanced FAQ component)
   ========================================================= */

/* Container */
.jwblog-container {
  max-width: 800px;
  margin: 0 auto;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  line-height: 1.7;
  color: #ffffff;
  background: transparent;
  padding: 0;
}

/* Theme Color Variables for accent elements */
.jwblog-container {
  --monday-marketing: #8B5CF6;
  --tuesday-growth: #EC4899;
  --wednesday-tips: #06B6D4;
  --thursday-branding: #10B981;
  --friday-design: #F59E0B;
  --saturday-seo: #EF4444;
  --sunday-community: #F97316;
}

/* Content Styling with ADA Compliant Contrast */
.jwblog-content {
  padding: 30px 0px;
  background: transparent;
  color: #ffffff;
  font-size: 1.1rem;
  line-height: 1.8;
}

.jwblog-content h2 {
  font-size: 2rem;
  color: #ffffff;
  margin: 40px 0 20px 0;
  padding-left: 20px;
  border-left: 5px solid;
  position: relative;
  font-weight: 700;
}

/* Theme-specific h2 border colors */
.jwblog-marketing h2 { border-left-color: var(--monday-marketing); }
.jwblog-growth h2 { border-left-color: var(--tuesday-growth); }
.jwblog-tips h2 { border-left-color: var(--wednesday-tips); }
.jwblog-branding h2 { border-left-color: var(--thursday-branding); }
.jwblog-design h2 { border-left-color: var(--friday-design); }
.jwblog-seo h2 { border-left-color: var(--saturday-seo); }
.jwblog-community h2 { border-left-color: var(--sunday-community); }

.jwblog-content h3 {
  font-size: 1.5rem;
  color: #ffffff;
  margin: 30px 0 15px 0;
  font-weight: 600;
}

.jwblog-content p {
  margin: 20px 0;
  font-size: 1.1rem;
  color: #ffffff;
  line-height: 1.8;
}

.jwblog-content strong {
  color: #ffffff;
  font-weight: 600;
}

/* Local Business Highlight Boxes - High Contrast */
.jwblog-local-highlight {
  background: rgba(139, 92, 246, 0.15);
  border: 2px solid rgba(139, 92, 246, 0.4);
  border-left: 5px solid #8B5CF6;
  padding: 25px;
  margin: 30px 0;
  border-radius: 8px;
  backdrop-filter: blur(10px);
}

.jwblog-local-highlight h4 {
  color: #C4B5FD;
  margin: 0 0 15px 0;
  font-size: 1.3rem;
  font-weight: 600;
}

.jwblog-local-highlight p {
  color: #ffffff;
  margin: 0;
}

/* Tip Boxes - ADA Compliant */
.jwblog-tip {
  background: rgba(245, 158, 11, 0.15);
  border: 2px solid rgba(245, 158, 11, 0.4);
  border-left: 5px solid #F59E0B;
  padding: 20px;
  margin: 25px 0;
  border-radius: 8px;
  backdrop-filter: blur(10px);
}

.jwblog-tip strong {
  color: #FCD34D;
  font-weight: 600;
}

.jwblog-tip p {
  color: #ffffff;
  margin: 0;
}

/* Action Items - High Contrast Green */
.jwblog-action {
  background: rgba(16, 185, 129, 0.15);
  border: 2px solid rgba(16, 185, 129, 0.4);
  border-left: 5px solid #10B981;
  padding: 20px;
  margin: 25px 0;
  border-radius: 8px;
  backdrop-filter: blur(10px);
}

.jwblog-action h4 {
  color: #6EE7B7;
  margin: 0 0 10px 0;
  font-weight: 600;
}

.jwblog-action p {
  color: #ffffff;
  margin: 0;
}

/* Lists - Proper Contrast */
.jwblog-content ul,
.jwblog-content ol {
  padding-left: 30px;
  margin: 20px 0;
}

.jwblog-content li {
  margin: 10px 0;
  font-size: 1.1rem;
  color: #ffffff;
  line-height: 1.7;
}

/* Local Business Directory */
.jwblog-directory {
  background: rgba(255, 255, 255, 0.1);
  border: 2px solid rgba(255, 255, 255, 0.2);
  border-radius: 10px;
  padding: 25px;
  margin: 30px 0;
  backdrop-filter: blur(10px);
}

.jwblog-directory h4 {
  color: #ffffff;
  text-align: center;
  margin-bottom: 20px;
  font-weight: 600;
}

.jwblog-directory p {
  color: #ffffff;
  text-align: center;
}

/* CTA Sections - Brand Aligned */
.jwblog-cta {
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.8) 0%, rgba(124, 58, 237, 0.8) 100%);
  color: #ffffff;
  padding: 30px;
  border-radius: 15px;
  text-align: center;
  margin: 40px 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  border: 2px solid rgba(139, 92, 246, 0.4);
}

.jwblog-cta h3 {
  margin: 0 0 15px 0;
  color: #ffffff;
}

.jwblog-cta-button {
  display: inline-block;
  background: #ffffff;
  color: #021C40 !important;
  padding: 15px 30px;
  border-radius: 30px;
  text-decoration: none !important;
  font-weight: 700;
  margin-top: 15px;
  transition: all 0.3s ease;
  border: 2px solid #ffffff;
  font-size: 1rem;
}

.jwblog-cta-button:hover {
  background: #021C40;
  color: #ffffff !important;
  border-color: #ffffff;
  text-decoration: none !important;
  transform: translateY(-2px);
}

.jwblog-cta-button:visited { color: #021C40 !important; }
.jwblog-cta-button:hover:visited { color: #ffffff !important; }

/* Focus states for accessibility */
.jwblog-cta-button:focus {
  outline: 3px solid #FCD34D;
  outline-offset: 2px;
}

/* Accessibility improvements */
.jwblog-content a {
  color: #C4B5FD;
  text-decoration: underline;
}

.jwblog-content a:hover,
.jwblog-content a:focus {
  color: #DDD6FE;
  text-decoration: none;
}

.jwblog-content a:focus {
  outline: 2px solid #FCD34D;
  outline-offset: 2px;
}

/* Mobile Responsiveness */
@media (max-width: 768px) {
  .jwblog-content h2 { font-size: 1.6rem; }
  .jwblog-content { padding: 30px 0px; }
  .jwblog-container { margin: 0 10px; }

  .jwblog-local-highlight,
  .jwblog-tip,
  .jwblog-action,
  .jwblog-directory {
    padding: 20px 15px;
  }
}

/* Screen reader only content */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* =========================================================
   Simple Author Card Variant (alternative to full author box)
   ========================================================= */

.jwblog-container .jwblog-author {
  --author-accent: var(--friday-design, #F59E0B); /* you can override per post if needed */
  margin: 42px 0 10px;
  padding: 22px 20px;
  background: rgba(255,255,255,0.06);
  border: 2px solid rgba(255,255,255,0.18);
  border-left: 6px solid var(--author-accent);
  border-radius: 12px;
  backdrop-filter: blur(8px);
  box-shadow: 0 8px 18px rgba(0,0,0,0.25);
  color: #fff;
}

.jwblog-container .jwblog-author .jw-author-title {
  font-size: 1.15rem;
  font-weight: 800;
  margin: 0 0 6px 0;
  letter-spacing: .2px;
}

.jwblog-container .jwblog-author .jw-author-meta {
  margin: 0 0 10px 0;
  line-height: 1.85;
  opacity: .95;
}

.jwblog-container .jwblog-author .jw-author-list {
  margin: 10px 0 12px 20px;
  padding: 0;
}

.jwblog-container .jwblog-author .jw-author-list li {
  margin: 6px 0;
  line-height: 1.75;
}

.jwblog-container .jwblog-author .jw-author-cta {
  margin: 8px 0 0 0;
}

.jwblog-container .jwblog-author a {
  color: #C4B5FD;
  text-decoration: underline;
}

.jwblog-container .jwblog-author a:hover,
.jwblog-container .jwblog-author a:focus {
  color: #DDD6FE;
  text-decoration: none;
}

.jwblog-container .jwblog-author a:focus {
  outline: 2px solid #FCD34D;
  outline-offset: 2px;
}

/* Mobile tweaks for simple author card */
@media (max-width: 768px) {
  .jwblog-container .jwblog-author {
    padding: 18px 16px;
    border-radius: 10px;
  }
  .jwblog-container .jwblog-author .jw-author-list {
    margin-left: 18px;
  }
}

/* =========================================================
   FAQ Component (scoped to jwblog-container)
   ========================================================= */

.jwblog-container .jwblog-faq {
  margin: 50px 0 20px;
}

.jwblog-container .jwblog-faq .jwfaq-intro {
  margin-bottom: 18px;
  color: #ffffff;
  opacity: 0.9;
}

/* Card container */
.jwblog-container .jwblog-faq details.jwfaq-item {
  background: rgba(255, 255, 255, 0.06);
  border: 2px solid rgba(255, 255, 255, 0.18);
  border-left: 6px solid var(--faq-accent, var(--monday-marketing, #8B5CF6));
  border-radius: 12px;
  backdrop-filter: blur(8px);
  margin: 16px 0;
  padding: 0; /* padding handled on summary/content for better focus states */
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.25);
  overflow: hidden;
}

/* Summary (question) */
.jwblog-container .jwblog-faq details.jwfaq-item > summary {
  list-style: none;
  cursor: pointer;
  padding: 20px 22px;           /* extra padding so text doesn't butt edges */
  font-size: 1.1rem;
  font-weight: 700;
  color: #fff;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 14px;
  position: relative;
  outline: none;
}

/* Remove default marker (cross-browser) */
.jwblog-container .jwblog-faq details.jwfaq-item > summary::-webkit-details-marker {
  display: none;
}

/* Chevron */
.jwblog-container .jwblog-faq details.jwfaq-item > summary::after {
  content: "";
  width: 12px;
  height: 12px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
  transition: transform 0.25s ease;
  opacity: 0.9;
}

/* Open state chevron */
.jwblog-container .jwblog-faq details.jwfaq-item[open] > summary::after {
  transform: rotate(45deg);
}

/* Focus & hover */
.jwblog-container .jwblog-faq details.jwfaq-item > summary:hover,
.jwblog-container .jwblog-faq details.jwfaq-item > summary:focus-visible {
  background: rgba(255, 255, 255, 0.06);
}

.jwblog-container .jwblog-faq details.jwfaq-item > summary:focus-visible {
  box-shadow: 0 0 0 3px rgba(252, 211, 77, 0.7) inset; /* ADA focus */
  border-radius: 10px;
}

/* Answer wrapper (animated open/close) */
.jwblog-container .jwblog-faq .jwfaq-content {
  padding: 0 22px 20px 22px;    /* extra padding added per request */
  color: #ffffff;
  line-height: 1.8;
  font-size: 1.05rem;
  max-height: 0;
  opacity: 0;
  transform: translateY(-4px);
  transition: max-height 0.35s ease, opacity 0.25s ease, transform 0.25s ease;
}

/* Open state */
.jwblog-container .jwblog-faq details[open] .jwfaq-content {
  max-height: 1000px; /* large enough to fit most answers */
  opacity: 1;
  transform: translateY(0);
}

/* Links inside answers */
.jwblog-container .jwblog-faq .jwfaq-content a {
  color: #C4B5FD;
  text-decoration: underline;
}
.jwblog-container .jwblog-faq .jwfaq-content a:hover,
.jwblog-container .jwblog-faq .jwfaq-content a:focus {
  color: #DDD6FE;
  text-decoration: none;
}

/* Optional: subtle badge for city signals */
.jwblog-container .jwblog-faq .jwfaq-badge {
  display: inline-block;
  font-size: 0.75rem;
  letter-spacing: 0.02em;
  padding: 3px 8px;
  margin-left: 8px;
  border-radius: 999px;
  background: rgba(139, 92, 246, 0.2);
  border: 1px solid rgba(139, 92, 246, 0.45);
  color: #E9D5FF;
  vertical-align: middle;
}

/* Target highlight (when FAQ is deep-linked) */
.jwblog-container .jwblog-faq details:target {
  box-shadow: 0 0 0 3px rgba(252, 211, 77, 0.55) inset, 0 8px 18px rgba(0,0,0,0.35);
}

/* FAQ mobile tweaks */
@media (max-width: 768px) {
  .jwblog-container .jwblog-faq details.jwfaq-item > summary {
    padding: 18px 18px;
    font-size: 1.05rem;
  }
  .jwblog-container .jwblog-faq .jwfaq-content {
    padding: 0 18px 18px 18px;
  }
}

/* Print: show all answers */
@media print {
  .jwblog-container .jwblog-faq details.jwfaq-item[open] .jwfaq-content,
  .jwblog-container .jwblog-faq details.jwfaq-item .jwfaq-content {
    max-height: none;
    opacity: 1;
    transform: none;
  }
}

/* ===== Author Card (works globally, not just in blog container) ===== */
.jw-author,
.about-author,
.author-box,
.jwblog-container .jw-author,
.jwblog-container .about-author,
.jwblog-container .author-box {
  --author-accent: var(--sunday-community, #F97316);
  margin: 40px 0 0;
  padding: 22px;
  border: 2px solid rgba(255,255,255,0.18);
  border-left: 6px solid var(--author-accent);
  border-radius: 14px;
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(10px);
  box-shadow: 0 8px 18px rgba(0,0,0,0.25);
  color: #fff;
  overflow: hidden;
}

/* Layout */
.jw-author .jw-author-wrap,
.about-author .jw-author-wrap,
.author-box .jw-author-wrap,
.jwblog-container .jw-author .jw-author-wrap,
.jwblog-container .about-author .jw-author-wrap,
.jwblog-container .author-box .jw-author-wrap {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 18px 20px;
  align-items: start;
}

/* Avatar */
.jw-author .jw-author-avatar,
.about-author .jw-author-avatar,
.author-box .jw-author-avatar,
.jwblog-container .jw-author .jw-author-avatar,
.jwblog-container .about-author .jw-author-avatar,
.jwblog-container .author-box .jw-author-avatar {
  width: 96px; 
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid rgba(255,255,255,0.65);
  box-shadow: 0 6px 14px rgba(0,0,0,0.35);
}

/* Heading + name */
.jw-author h3,
.about-author h3,
.author-box h3,
.jwblog-container .jw-author h3,
.jwblog-container .about-author h3,
.jwblog-container .author-box h3 {
  margin: 0 0 6px 0;
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.3;
  color: #fff;
}

.jw-author .jw-author-role,
.about-author .jw-author-role,
.author-box .jw-author-role,
.jwblog-container .jw-author .jw-author-role,
.jwblog-container .about-author .jw-author-role,
.jwblog-container .author-box .jw-author-role {
  display: inline-block;
  font-size: .85rem;
  opacity: .9;
  margin-bottom: 8px;
}

/* Meta chips (service area, stacks, tools) */
.jw-author .jw-author-meta,
.about-author .jw-author-meta,
.author-box .jw-author-meta,
.jwblog-container .jw-author .jw-author-meta,
.jwblog-container .about-author .jw-author-meta,
.jwblog-container .author-box .jw-author-meta {
  display: flex; 
  flex-wrap: wrap; 
  gap: 8px;
  margin: 8px 0 10px;
}

.jw-author .jw-chip,
.about-author .jw-chip,
.author-box .jw-chip,
.jwblog-container .jw-author .jw-chip,
.jwblog-container .about-author .jw-chip,
.jwblog-container .author-box .jw-chip {
  display: inline-flex; 
  align-items: center; 
  gap: 6px;
  padding: 6px 10px;
  font-size: .85rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.22);
  color: #EDE9FE;
}

/* Body copy */
.jw-author p,
.jwblog-container .jw-author p {
  margin: 10px 0;
  color: #fff;
  opacity: .95;
  line-height: 1.8;
  font-size: 1.02rem;
}

/* Lists inside author */
.jw-author ul,
.jwblog-container .jw-author ul {
  padding-left: 22px;
  margin: 8px 0 0;
}

.jw-author li,
.jwblog-container .jw-author li {
  margin: 6px 0;
  line-height: 1.7;
  color: #fff;
}

/* Links */
.jw-author a,
.jwblog-container .jw-author a {
  color: #C4B5FD; 
  text-decoration: underline;
}

.jw-author a:hover,
.jw-author a:focus,
.jwblog-container .jw-author a:hover,
.jwblog-container .jw-author a:focus {
  color: #DDD6FE; 
  text-decoration: none;
  outline: none;
}

/* Social icons row */
.jw-author .jw-author-social,
.jwblog-container .jw-author .jw-author-social {
  display: flex; 
  gap: 10px; 
  flex-wrap: wrap;
  margin-top: 10px;
}

.jw-author .jw-icon,
.jwblog-container .jw-author .jw-icon {
  display: inline-flex; 
  align-items: center; 
  justify-content: center;
  width: 36px; 
  height: 36px; 
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,0.4);
  background: transparent;
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
  color: #fff;
  text-decoration: none;
}

.jw-author .jw-icon:hover,
.jwblog-container .jw-author .jw-icon:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,0.12);
  border-color: rgba(255,255,255,0.7);
}

.jw-author .jw-icon:focus-visible,
.jwblog-container .jw-author .jw-icon:focus-visible {
  outline: 3px solid #FCD34D; 
  outline-offset: 2px;
}

/* Divider inside card (optional) */
.jw-author hr,
.jwblog-container .jw-author hr {
  border: 0; 
  height: 1px;
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.28), rgba(255,255,255,0));
  margin: 12px 0;
}

/* Title row badge (optional) */
.jw-author .jw-badge,
.jwblog-container .jw-author .jw-badge {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  font-size: .72rem; 
  letter-spacing: .02em;
  color: #0B1020;
  background: var(--author-accent);
  border-radius: 999px;
}

/* Responsive */
@media (max-width: 640px) {
  .jw-author .jw-author-wrap,
  .jwblog-container .jw-author .jw-author-wrap { 
    grid-template-columns: 64px 1fr; 
    gap: 14px; 
  }
  
  .jw-author .jw-author-avatar,
  .jwblog-container .jw-author .jw-author-avatar { 
    width: 64px; 
    height: 64px; 
  }
  
  .jw-author,
  .jwblog-container .jw-author { 
    padding: 18px; 
  }
  
  .jw-author h3,
  .jwblog-container .jw-author h3 { 
    font-size: 1.1rem; 
  }
}
























/**
 * Bullhead City Website Builders Page - Custom Styles
 * Unique selectors for enhanced visual design
 * Integrates with Jeremy Webb theme system
 */

/* =========================================================
   Color Variables & Theme Integration
   ========================================================= */
.jwdev-bullhead-page {
  /* Primary brand colors from theme */
  --jwdev-primary: #8B5CF6;
  --jwdev-primary-light: #A78BFA;
  --jwdev-primary-dark: #7C3AED;
  --jwdev-secondary: #EC4899;
  --jwdev-accent: #06B6D4;
  --jwdev-success: #10B981;
  --jwdev-warning: #F59E0B;
  
  /* Dark theme colors */
  --jwdev-bg-primary: #0B1220;
  --jwdev-bg-secondary: #0E1626;
  --jwdev-bg-tertiary: #1E293B;
  --jwdev-text-primary: #ffffff;
  --jwdev-text-secondary: #E5E7EB;
  --jwdev-text-muted: #9AA4B2;
  
  /* Glass effects */
  --jwdev-glass-bg: rgba(255, 255, 255, 0.06);
  --jwdev-glass-border: rgba(255, 255, 255, 0.18);
  --jwdev-glass-hover: rgba(255, 255, 255, 0.12);
  
  /* Shadows */
  --jwdev-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.25);
  --jwdev-shadow-md: 0 8px 24px rgba(0, 0, 0, 0.35);
  --jwdev-shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.45);
  
  /* Animation */
  --jwdev-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --jwdev-transition-fast: all 0.15s ease;
}

/* =========================================================
   Base Page Styles
   ========================================================= */
.jwdev-bullhead-page {
  background: var(--jwdev-bg-primary);
  color: var(--jwdev-text-primary);
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  line-height: 1.6;
  overflow-x: hidden;
}

.jwdev-section-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* =========================================================
   Enhanced Hero Section
   ========================================================= */
.jwdev-bullhead-hero {
  position: relative;
  padding: 4rem 0 5rem;
  background: 
    radial-gradient(1200px 600px at 80% -10%, rgba(139, 92, 246, 0.15), transparent 60%),
    linear-gradient(135deg, rgba(139, 92, 246, 0.08) 0%, rgba(236, 72, 153, 0.05) 100%);
  overflow: hidden;
}

.jwdev-bullhead-hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image:
    radial-gradient(2px 2px at 20% 30%, rgba(139, 92, 246, 0.3) 0, transparent 100%),
    radial-gradient(2px 2px at 40% 70%, rgba(236, 72, 153, 0.2) 0, transparent 100%),
    radial-gradient(1px 1px at 90% 40%, rgba(6, 182, 212, 0.3) 0, transparent 100%);
  pointer-events: none;
  z-index: 1;
}

.jwdev-hero-container {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}

@media (min-width: 1024px) {
  .jwdev-hero-container {
    grid-template-columns: 1.2fr 0.8fr;
    gap: 4rem;
  }
}

.jwdev-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.25rem;
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 2rem;
  backdrop-filter: blur(12px);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--jwdev-text-primary);
  margin-bottom: 1.5rem;
  box-shadow: var(--jwdev-shadow-sm);
}

.jwdev-badge-icon {
  font-size: 1.1rem;
}

.jwdev-hero-title {
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 800;
  line-height: 1.1;
  margin: 0 0 1.5rem 0;
  letter-spacing: -0.02em;
}

.jwdev-hero-accent {
  background: linear-gradient(135deg, var(--jwdev-primary) 0%, var(--jwdev-secondary) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.jwdev-hero-lead {
  font-size: 1.25rem;
  line-height: 1.7;
  color: var(--jwdev-text-secondary);
  margin: 0 0 2rem 0;
  max-width: 60ch;
}

.jwdev-hero-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.jwdev-hero-microcopy {
  margin: 0;
  color: var(--jwdev-text-muted);
  font-size: 0.95rem;
}

.jwdev-service-badge {
  display: inline-block;
  padding: 0.5rem 1rem;
  background: var(--jwdev-glass-bg);
  border: 1px solid var(--jwdev-glass-border);
  border-radius: 1.5rem;
  backdrop-filter: blur(8px);
}

/* Hero Visual Component */
.jwdev-hero-visual {
  display: flex;
  justify-content: center;
  align-items: center;
}

.jwdev-hero-card {
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 1rem;
  backdrop-filter: blur(16px);
  box-shadow: var(--jwdev-shadow-lg);
  overflow: hidden;
  max-width: 400px;
  width: 100%;
}

.jwdev-hero-card-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 1.25rem;
  background: rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid var(--jwdev-glass-border);
}

.jwdev-hero-card-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

.jwdev-dot-red { background: #EF4444; }
.jwdev-dot-yellow { background: #F59E0B; }
.jwdev-dot-green { background: #10B981; }

.jwdev-hero-card-content {
  padding: 1.5rem;
  font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
  font-size: 0.9rem;
  line-height: 1.8;
}

.jwdev-code-line {
  margin: 0.25rem 0;
}

.jwdev-code-indent {
  padding-left: 1.5rem;
}

.jwdev-code-tag { color: #93C5FD; }
.jwdev-code-attr { color: #A78BFA; }
.jwdev-code-equals { color: var(--jwdev-text-secondary); }
.jwdev-code-value { color: #6EE7B7; }

/* =========================================================
   Button System
   ========================================================= */
.jwdev-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.5rem;
  border-radius: 0.75rem;
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  transition: var(--jwdev-transition);
  border: 2px solid transparent;
  cursor: pointer;
  box-shadow: var(--jwdev-shadow-sm);
}

.jwdev-btn:hover {
  transform: translateY(-2px);
  box-shadow: var(--jwdev-shadow-md);
  text-decoration: none;
}

.jwdev-btn:active {
  transform: translateY(0);
}

.jwdev-btn-primary {
  background: linear-gradient(135deg, var(--jwdev-primary) 0%, var(--jwdev-primary-dark) 100%);
  color: white;
  border-color: var(--jwdev-primary);
}

.jwdev-btn-primary:hover {
  background: linear-gradient(135deg, var(--jwdev-primary-light) 0%, var(--jwdev-primary) 100%);
  border-color: var(--jwdev-primary-light);
  color: white;
}

.jwdev-btn-outline {
  background: var(--jwdev-glass-bg);
  color: var(--jwdev-primary-light);
  border-color: var(--jwdev-primary);
  backdrop-filter: blur(12px);
}

.jwdev-btn-outline:hover {
  background: var(--jwdev-glass-hover);
  border-color: var(--jwdev-primary-light);
  color: var(--jwdev-primary-light);
}

.jwdev-btn-link {
  background: transparent;
  color: var(--jwdev-primary-text);
  border: none;
  box-shadow: none;
  padding: 0.5rem 0;
  text-decoration: underline;
}

.jwdev-btn-link:hover {
  color: var(--jwdev-primary);
  transform: none;
  box-shadow: none;
  text-decoration: none;
}

.jwdev-btn-large {
  padding: 1.125rem 2rem;
  font-size: 1.125rem;
}

.jwdev-btn-icon {
  font-size: 1.1em;
}

/* Focus states for accessibility */
.jwdev-btn:focus-visible {
  outline: 3px solid rgba(252, 211, 77, 0.7);
  outline-offset: 2px;
}

/* =========================================================
   Section Headers
   ========================================================= */
.jwdev-section-header {
  text-align: center;
  margin-bottom: 3rem;
}

.jwdev-section-title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  line-height: 1.2;
  margin: 0 0 1rem 0;
  letter-spacing: -0.01em;
}

.jwdev-title-accent {
  background: linear-gradient(135deg, var(--jwdev-primary) 0%, var(--jwdev-secondary) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.jwdev-section-subtitle {
  font-size: 1.25rem;
  color: var(--jwdev-text-muted);
  margin: 0;
  max-width: 60ch;
  margin-left: auto;
  margin-right: auto;
}

/* =========================================================
   Benefits Section
   ========================================================= */
.jwdev-bullhead-benefits {
  padding: 5rem 0;
  background: var(--jwdev-bg-secondary);
}

.jwdev-benefits-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 3rem;
}

@media (min-width: 768px) {
  .jwdev-benefits-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}

@media (min-width: 1024px) {
  .jwdev-benefits-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.jwdev-benefit-card {
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 1.25rem;
  padding: 2rem;
  text-align: center;
  backdrop-filter: blur(12px);
  box-shadow: var(--jwdev-shadow-sm);
  transition: var(--jwdev-transition);
}

.jwdev-benefit-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--jwdev-shadow-md);
  background: var(--jwdev-glass-hover);
}

.jwdev-benefit-icon {
  font-size: 3rem;
  margin-bottom: 1rem;
  display: block;
}

.jwdev-benefit-title {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 1rem 0;
  color: var(--jwdev-text-primary);
}

.jwdev-benefit-text {
  color: var(--jwdev-text-secondary);
  line-height: 1.6;
  margin: 0;
}

/* =========================================================
   Services Section
   ========================================================= */
.jwdev-bullhead-services {
  padding: 5rem 0;
  position: relative;
}

.jwdev-services-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 3rem;
}

@media (min-width: 768px) {
  .jwdev-services-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}

@media (min-width: 1024px) {
  .jwdev-services-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.jwdev-service-card {
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 1.25rem;
  padding: 2rem;
  backdrop-filter: blur(12px);
  box-shadow: var(--jwdev-shadow-sm);
  transition: var(--jwdev-transition);
  position: relative;
  overflow: hidden;
}

.jwdev-service-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--jwdev-primary) 0%, var(--jwdev-secondary) 100%);
  opacity: 0;
  transition: var(--jwdev-transition);
}

.jwdev-service-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--jwdev-shadow-md);
  background: var(--jwdev-glass-hover);
}

.jwdev-service-card:hover::before {
  opacity: 1;
}

.jwdev-service-featured {
  border-color: var(--jwdev-primary);
}

.jwdev-service-featured::before {
  opacity: 1;
}

.jwdev-service-icon {
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
  display: block;
}

.jwdev-service-title {
  font-size: 1.375rem;
  font-weight: 700;
  margin: 0 0 1rem 0;
  color: var(--jwdev-text-primary);
}

.jwdev-service-description {
  color: var(--jwdev-text-secondary);
  line-height: 1.7;
  margin: 0 0 1.5rem 0;
}

.jwdev-service-features {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.jwdev-feature-tag {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  background: rgba(139, 92, 246, 0.2);
  border: 1px solid rgba(139, 92, 246, 0.4);
  border-radius: 1rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--jwdev-primary-light);
}

.jwdev-services-cta {
  text-align: center;
  margin-top: 3rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

@media (min-width: 768px) {
  .jwdev-services-cta {
    flex-direction: row;
    justify-content: center;
  }
}

/* =========================================================
   Proof Section
   ========================================================= */
.jwdev-bullhead-proof {
  padding: 4rem 0;
  background: var(--jwdev-bg-secondary);
}

.jwdev-proof-content {
  text-align: center;
}

.jwdev-proof-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin: 3rem 0;
}

@media (min-width: 768px) {
  .jwdev-proof-grid {
  }
}

.jwdev-proof-item {
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 1rem;
  padding: 2rem;
  backdrop-filter: blur(12px);
  transition: var(--jwdev-transition);
}

.jwdev-proof-item:hover {
  transform: translateY(-2px);
  background: var(--jwdev-glass-hover);
}

.jwdev-proof-icon {
  font-size: 2.5rem;
  margin-bottom: 1rem;
  display: block;
}

.jwdev-proof-item h3 {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 1rem 0;
  color: var(--jwdev-text-primary);
}

.jwdev-proof-item p {
  color: var(--jwdev-text-secondary);
  margin: 0;
  line-height: 1.6;
}

.jwdev-proof-disclaimer {
  background: rgba(245, 158, 11, 0.1);
  border: 2px solid rgba(245, 158, 11, 0.3);
  border-radius: 1rem;
  padding: 1.5rem;
  margin-top: 2rem;
  backdrop-filter: blur(8px);
}

.jwdev-proof-disclaimer p {
  margin: 0;
  color: var(--jwdev-text-secondary);
  font-size: 0.95rem;
}

/* =========================================================
   Process Section
   ========================================================= */
.jwdev-bullhead-process {
  padding: 5rem 0;
}

.jwdev-process-steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin: 3rem 0;
}

@media (min-width: 768px) {
  .jwdev-process-steps {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .jwdev-process-steps {
    grid-template-columns: repeat(5, 1fr);
  }
}

.jwdev-process-step {
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 1.25rem;
  padding: 2rem;
  backdrop-filter: blur(12px);
  box-shadow: var(--jwdev-shadow-sm);
  position: relative;
  transition: var(--jwdev-transition);
  text-align: center;
}

.jwdev-process-step:hover {
  transform: translateY(-4px);
  box-shadow: var(--jwdev-shadow-md);
  background: var(--jwdev-glass-hover);
}

.jwdev-step-number {
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, var(--jwdev-primary) 0%, var(--jwdev-accent) 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 1.125rem;
  color: white;
  box-shadow: var(--jwdev-shadow-sm);
}

.jwdev-step-title {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 1rem 0 0.75rem 0;
  color: var(--jwdev-text-primary);
}

.jwdev-step-description {
  color: var(--jwdev-text-secondary);
  line-height: 1.6;
  margin: 0;
  font-size: 0.95rem;
}

.jwdev-process-timeline {
  text-align: center;
  margin-top: 3rem;
}

.jwdev-timeline-text {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 2rem;
  padding: 1rem 1.5rem;
  backdrop-filter: blur(12px);
  font-size: 1.125rem;
  color: var(--jwdev-text-secondary);
  margin: 0;
}

.jwdev-timeline-icon {
  font-size: 1.375rem;
}

/* =========================================================
   Local Section
   ========================================================= */
.jwdev-bullhead-local {
  padding: 5rem 0;
  background: var(--jwdev-bg-secondary);
}

.jwdev-local-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  margin-top: 2rem;
}

@media (min-width: 1024px) {
  .jwdev-local-content {
    grid-template-columns: 1.1fr 0.9fr;
    align-items: start;
  }
}

.jwdev-local-description {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--jwdev-text-secondary);
  margin: 0 0 2rem 0;
}

.jwdev-areas-title {
  font-size: 1.375rem;
  font-weight: 700;
  margin: 0 0 1.5rem 0;
  color: var(--jwdev-text-primary);
}

.jwdev-areas-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 640px) {
  .jwdev-areas-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.jwdev-area-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem;
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 0.75rem;
  backdrop-filter: blur(8px);
  transition: var(--jwdev-transition);
}

.jwdev-area-item:hover {
  background: var(--jwdev-glass-hover);
  transform: translateY(-2px);
}

.jwdev-area-primary {
  border-color: var(--jwdev-primary);
  background: rgba(139, 92, 246, 0.1);
}

.jwdev-area-icon {
  font-size: 1.25rem;
  flex-shrink: 0;
}

.jwdev-area-name {
  flex: 1;
  font-weight: 600;
  color: var(--jwdev-text-primary);
}

.jwdev-area-badge {
  padding: 0.25rem 0.75rem;
  background: var(--jwdev-primary);
  color: white;
  border-radius: 1rem;
  font-size: 0.75rem;
  font-weight: 700;
}

.jwdev-map-container {
  position: relative;
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: var(--jwdev-shadow-md);
}

.jwdev-map-embed {
  width: 100%;
  height: 400px;
  border: 0;
  filter: grayscale(20%) contrast(1.1);
}

.jwdev-map-overlay {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  right: 1rem;
}

.jwdev-map-badge {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 0.75rem;
  backdrop-filter: blur(16px);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--jwdev-primary-dark);
  box-shadow: var(--jwdev-shadow-sm);
}

.jwdev-map-icon {
  font-size: 1.1rem;
}

/* =========================================================
   Packages Section
   ========================================================= */
.jwdev-bullhead-packages {
  padding: 5rem 0;
}

.jwdev-packages-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-top: 3rem;
}

@media (min-width: 768px) {
  .jwdev-packages-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .jwdev-packages-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.jwdev-package-card {
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 1.5rem;
  padding: 2rem;
  backdrop-filter: blur(12px);
  box-shadow: var(--jwdev-shadow-sm);
  transition: var(--jwdev-transition);
  position: relative;
  overflow: hidden;
}

.jwdev-package-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--jwdev-shadow-md);
  background: var(--jwdev-glass-hover);
}

.jwdev-package-popular {
  border-color: var(--jwdev-primary);
  box-shadow: 0 0 0 1px var(--jwdev-primary), var(--jwdev-shadow-md);
}

.jwdev-package-popular::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--jwdev-primary) 0%, var(--jwdev-secondary) 100%);
}

.jwdev-package-badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  padding: 0.5rem 1rem;
  background: var(--jwdev-primary);
  color: white;
  border-radius: 1.5rem;
  font-size: 0.8rem;
  font-weight: 700;
  box-shadow: var(--jwdev-shadow-sm);
}

.jwdev-package-header {
  text-align: center;
  margin-bottom: 1.5rem;
}

.jwdev-package-icon {
  font-size: 3rem;
  margin-bottom: 1rem;
  display: block;
}

.jwdev-package-title {
  font-size: 1.5rem;
  font-weight: 800;
  margin: 0 0 0.5rem 0;
  color: var(--jwdev-text-primary);
}

.jwdev-package-subtitle {
  color: var(--jwdev-text-muted);
  font-size: 0.95rem;
  margin: 0;
}

.jwdev-package-description {
  color: var(--jwdev-text-secondary);
  line-height: 1.6;
  margin: 0 0 1.5rem 0;
}

.jwdev-package-features {
  list-style: none;
  padding: 0;
  margin: 0;
}

.jwdev-package-features li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0;
  color: var(--jwdev-text-secondary);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.jwdev-package-features li:last-child {
  border-bottom: none;
}

.jwdev-feature-check {
  color: var(--jwdev-success);
  font-weight: 700;
  font-size: 1.1rem;
}

.jwdev-packages-disclaimer {
  background: rgba(245, 158, 11, 0.1);
  border: 2px solid rgba(245, 158, 11, 0.3);
  border-radius: 1rem;
  padding: 1.5rem;
  margin-top: 3rem;
  backdrop-filter: blur(8px);
  text-align: center;
}

.jwdev-packages-disclaimer p {
  margin: 0;
  color: var(--jwdev-text-secondary);
  font-size: 0.95rem;
}

/* =========================================================
   FAQ Section
   ========================================================= */
.jwdev-bullhead-faqs {
  padding: 5rem 0;
  background: var(--jwdev-bg-secondary);
}

.jwdev-faq-container {
  max-width: 800px;
  margin: 3rem auto 0;
}

.jwdev-faq-item {
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 1rem;
  margin-bottom: 1rem;
  backdrop-filter: blur(12px);
  box-shadow: var(--jwdev-shadow-sm);
  overflow: hidden;
  transition: var(--jwdev-transition);
}

.jwdev-faq-item:hover {
  background: var(--jwdev-glass-hover);
}

.jwdev-faq-item[open] {
  box-shadow: var(--jwdev-shadow-md);
}

.jwdev-faq-question {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem;
  cursor: pointer;
  list-style: none;
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--jwdev-text-primary);
  transition: var(--jwdev-transition);
  position: relative;
}

.jwdev-faq-question::-webkit-details-marker {
  display: none;
}

.jwdev-faq-question::after {
  content: "";
  position: absolute;
  right: 1.5rem;
  width: 12px;
  height: 12px;
  border-right: 2px solid var(--jwdev-primary-light);
  border-bottom: 2px solid var(--jwdev-primary-light);
  transform: rotate(-45deg);
  transition: var(--jwdev-transition);
}

.jwdev-faq-item[open] .jwdev-faq-question::after {
  transform: rotate(45deg);
}

.jwdev-faq-question:hover {
  color: var(--jwdev-primary-light);
}

.jwdev-faq-question:focus-visible {
  outline: 3px solid rgba(252, 211, 77, 0.7);
  outline-offset: -3px;
}

.jwdev-faq-icon {
  font-size: 1.375rem;
  color: var(--jwdev-primary-light);
}

.jwdev-faq-answer {
  padding: 0 1.5rem 1.5rem 4rem;
  color: var(--jwdev-text-secondary);
  line-height: 1.7;
  animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

.jwdev-faq-answer p {
  margin: 0;
}

/* =========================================================
   CTA Section
   ========================================================= */
.jwdev-bullhead-cta {
  padding: 5rem 0;
  background: 
    radial-gradient(1000px 500px at 50% 0%, rgba(139, 92, 246, 0.15), transparent 70%),
    linear-gradient(135deg, rgba(139, 92, 246, 0.05) 0%, rgba(236, 72, 153, 0.05) 100%);
  position: relative;
}

.jwdev-cta-content {
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
}

.jwdev-cta-icon {
  font-size: 4rem;
  margin-bottom: 1.5rem;
  display: block;
}

.jwdev-cta-title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  line-height: 1.2;
  margin: 0 0 1.5rem 0;
  letter-spacing: -0.01em;
}

.jwdev-cta-accent {
  background: linear-gradient(135deg, var(--jwdev-primary) 0%, var(--jwdev-secondary) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.jwdev-cta-description {
  font-size: 1.25rem;
  color: var(--jwdev-text-secondary);
  line-height: 1.6;
  margin: 0 0 2.5rem 0;
}

.jwdev-cta-buttons {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

.jwdev-cta-alternative {
  text-align: center;
}

.jwdev-cta-microcopy {
  margin: 0;
  color: var(--jwdev-text-muted);
  font-size: 0.95rem;
}

.jwdev-cta-link {
  color: var(--jwdev-primary-light);
  text-decoration: underline;
  transition: var(--jwdev-transition-fast);
}

.jwdev-cta-link:hover {
  color: var(--jwdev-primary);
  text-decoration: none;
}

/* =========================================================
   Related Links Section
   ========================================================= */
.jwdev-bullhead-related {
  padding: 3rem 0;
  background: var(--jwdev-bg-tertiary);
}

.jwdev-related-title {
  font-size: 1.375rem;
  font-weight: 700;
  margin: 0 0 1.5rem 0;
  color: var(--jwdev-text-primary);
  text-align: center;
}

.jwdev-related-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
}

.jwdev-related-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.25rem;
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 2rem;
  backdrop-filter: blur(8px);
  color: var(--jwdev-text-primary);
  text-decoration: none;
  font-weight: 600;
  transition: var(--jwdev-transition);
  font-size: 0.95rem;
}

.jwdev-related-link:hover {
  background: var(--jwdev-glass-hover);
  border-color: var(--jwdev-primary);
  color: var(--jwdev-primary-light);
  text-decoration: none;
  transform: translateY(-2px);
}

.jwdev-related-icon {
  font-size: 1.1rem;
}

/* =========================================================
   Responsive Design
   ========================================================= */
@media (max-width: 768px) {
  .jwdev-section-container {
    padding: 0 1rem;
  }
  
  .jwdev-bullhead-hero,
  .jwdev-bullhead-benefits,
  .jwdev-bullhead-services,
  .jwdev-bullhead-proof,
  .jwdev-bullhead-process,
  .jwdev-bullhead-local,
  .jwdev-bullhead-packages,
  .jwdev-bullhead-faqs,
  .jwdev-bullhead-cta {
    padding: 3rem 0;
  }
  
  .jwdev-hero-ctas {
    flex-direction: column;
    align-items: stretch;
  }
  
  .jwdev-btn {
    justify-content: center;
  }
  
  .jwdev-services-cta {
    flex-direction: column;
  }
  
  .jwdev-faq-answer {
    padding-left: 1.5rem;
  }
  
  .jwdev-related-links {
    flex-direction: column;
    align-items: center;
  }
  
  .jwdev-related-link {
    width: 100%;
    max-width: 300px;
    justify-content: center;
  }
}

/* =========================================================
   Print Styles
   ========================================================= */
@media print {
  .jwdev-bullhead-page {
    background: white !important;
    color: black !important;
  }
  
  .jwdev-hero-visual,
  .jwdev-map-container,
  .jwdev-cta-icon {
    display: none;
  }
  
  .jwdev-btn {
    border: 2px solid black !important;
    background: white !important;
    color: black !important;
  }
}

/* =========================================================
   Accessibility & Motion Preferences
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  
  .jwdev-benefit-card:hover,
  .jwdev-service-card:hover,
  .jwdev-proof-item:hover,
  .jwdev-process-step:hover,
  .jwdev-package-card:hover,
  .jwdev-btn:hover {
    transform: none;
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .jwdev-bullhead-page {
    --jwdev-glass-bg: rgba(255, 255, 255, 0.15);
    --jwdev-glass-border: rgba(255, 255, 255, 0.4);
    --jwdev-glass-hover: rgba(255, 255, 255, 0.25);
  }
  
  .jwdev-btn-outline,
  .jwdev-benefit-card,
  .jwdev-service-card,
  .jwdev-proof-item,
  .jwdev-process-step,
  .jwdev-package-card,
  .jwdev-faq-item {
    border-width: 3px;
  }
}
/* =========================================================
   Bullhead Brand Color Overrides (Blue + Orange)
   Drop this AFTER your existing stylesheet to retheme
   without breaking the layout or contrast.
   Brand: Dark Blue #021C40, Deep Orange #E65616
   ========================================================= */

/* === 1) Core tokens tuned to your brand === */
.jwdev-bullhead-page {
  /* Primary brand: dark blue */
  --jwdev-primary: #021C40;
  --jwdev-primary-light: #052B59; /* used for subtle borders/gradients */
  --jwdev-primary-dark: #01152D;

  /* Accent/CTA: deep orange */
  --jwdev-secondary: #E65616; /* keep secondary as orange for gradients that reference primary->secondary */
  --jwdev-accent: #E65616;     /* alias for clarity in component rules */
  --jwdev-accent-light: #FF7A3D; /* lighter stop for hover and text accents */
  --jwdev-accent-dark: #D44404;  /* darker stop for AA contrast on buttons */

  /* Prebaked rgba helpers for pills/tags */
  --jwdev-accent-10: rgba(230, 86, 22, 0.10);
  --jwdev-accent-18: rgba(230, 86, 22, 0.18);
  --jwdev-accent-35: rgba(230, 86, 22, 0.35);

  /* Dark theme surfaces now in blue family */
  --jwdev-bg-primary: #021C40;   /* page background */
  --jwdev-bg-secondary: #052B59; /* cards/sections */
  --jwdev-bg-tertiary: #0C325F;  /* tertiary bands */

  /* Text tones with cool bias for readability on blue */
  --jwdev-text-primary: #FFFFFF;
  --jwdev-text-secondary: #E5EAF1; /* slightly cooler than #E5E7EB */
  --jwdev-text-muted: #9FB3C8;     /* blue-gray */

  /* Glass/Shadows remain neutral; they sit well on deep blue */
  --jwdev-glass-bg: rgba(255, 255, 255, 0.06);
  --jwdev-glass-border: rgba(255, 255, 255, 0.18);
  --jwdev-glass-hover: rgba(255, 255, 255, 0.12);

  --jwdev-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.25);
  --jwdev-shadow-md: 0 8px 24px rgba(0, 0, 0, 0.35);
  --jwdev-shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.45);
}

/* === 2) Global page background stays brand blue === */
.jwdev-bullhead-page {
  background: var(--jwdev-bg-primary);
  color: var(--jwdev-text-primary);
}

/* === 3) Hero & headline accents (blue→orange glow) === */
.jwdev-bullhead-hero {
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(230, 86, 22, 0.12), transparent 60%),
    linear-gradient(135deg, rgba(2, 28, 64, 0.35) 0%, rgba(2, 28, 64, 0) 100%);
}

.jwdev-hero-accent,
.jwdev-title-accent,
.jwdev-cta-accent {
  background: linear-gradient(135deg, var(--jwdev-accent-light) 0%, var(--jwdev-accent-dark) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* === 4) Buttons === */
.jwdev-btn-primary {
  background: linear-gradient(135deg, var(--jwdev-accent) 0%, var(--jwdev-accent-dark) 100%);
  color: #fff;
  border-color: var(--jwdev-accent-dark);
}
.jwdev-btn-primary:hover {
  background: linear-gradient(135deg, var(--jwdev-accent-light) 0%, var(--jwdev-accent) 100%);
  border-color: var(--jwdev-accent-light);
  color: #fff;
}

.jwdev-btn-outline {
  background: var(--jwdev-glass-bg);
  color: var(--jwdev-accent-light);
  border-color: var(--jwdev-accent);
  backdrop-filter: blur(12px);
}
.jwdev-btn-outline:hover {
  background: var(--jwdev-glass-hover);
  border-color: var(--jwdev-accent-light);
  color: var(--jwdev-accent-light);
}

/* === 5) Service & package accents === */
.jwdev-service-card::before,
.jwdev-package-popular::before {
  background: linear-gradient(90deg, var(--jwdev-primary) 0%, var(--jwdev-accent) 100%);
}
.jwdev-service-featured { border-color: var(--jwdev-accent); }

.jwdev-feature-tag {
  background: var(--jwdev-accent-18);
  border: 1px solid var(--jwdev-accent-35);
  color: var(--jwdev-accent-light);
}

.jwdev-area-primary {
  border-color: var(--jwdev-accent);
  background: var(--jwdev-accent-10);
}

.jwdev-package-popular {
  border-color: var(--jwdev-accent);
  box-shadow: 0 0 0 1px var(--jwdev-accent), var(--jwdev-shadow-md);
}
.jwdev-package-badge { background: var(--jwdev-accent); }

/* === 6) Links & related items === */
.jwdev-cta-link { color: var(--jwdev-accent-light); }
.jwdev-cta-link:hover { color: var(--jwdev-accent); }

.jwdev-related-link:hover {
  border-color: var(--jwdev-accent);
  color: var(--jwdev-accent-light);
}

/* === 7) Section bands swap to the blue surfaces === */
.jwdev-bullhead-benefits,
.jwdev-bullhead-proof,
.jwdev-bullhead-faqs {
  background: var(--jwdev-bg-secondary);
}
.jwdev-bullhead-related { background: var(--jwdev-bg-tertiary); }

/* === 8) Optional: code sample hues toward blue/orange (subtle) === */
.jwdev-code-tag { color: #8AB4FF; }
.jwdev-code-attr { color: var(--jwdev-accent-light); }
.jwdev-code-value { color: #7EE0A0; }

/* === 9) High contrast mode tweaks stay intact; inherit tokens above === */
@media (prefers-contrast: high) {
  .jwdev-bullhead-page {
    --jwdev-glass-bg: rgba(255, 255, 255, 0.15);
    --jwdev-glass-border: rgba(255, 255, 255, 0.40);
    --jwdev-glass-hover: rgba(255, 255, 255, 0.25);
  }
}
/* === Bullhead v2 tuning (blue + orange) === */
.jwdev-bullhead-page{
  /* stronger surface separation */
  --jwdev-bg-secondary: #0A2F5A;  /* slightly lighter than page bg */
  --jwdev-bg-tertiary: #133B67;   /* lighter band for related/footer */

  /* clearer copy on deep blue */
  --jwdev-text-secondary: #DCE6F2;
  --jwdev-text-muted: #A9BED4;

  /* glass contrast boost on dark blue */
  --jwdev-glass-bg: rgba(255,255,255,0.08);
  --jwdev-glass-border: rgba(255,255,255,0.24);
  --jwdev-glass-hover: rgba(255,255,255,0.14);
}

/* cards: a hair more definition without heaviness */
.jwdev-benefit-card,
.jwdev-service-card,
.jwdev-proof-item,
.jwdev-process-step,
.jwdev-package-card,
.jwdev-faq-item {
  border-color: rgba(255,255,255,0.22);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    var(--jwdev-shadow-sm);
}

/* section titles: subtle orange underline for scannability */
.jwdev-section-title {
  position: relative;
}
.jwdev-section-title::after {
  content: "";
  display: block;
  width: 64px; height: 3px; border-radius: 3px;
  margin-top: .6rem;
  background: linear-gradient(90deg, var(--jwdev-accent-light), var(--jwdev-accent));
}

/* buttons: keep the nice motion, improve focus visibility */
.jwdev-btn:focus-visible {
  outline: 3px solid rgba(230,86,22,.55); /* orange focus ring */
  outline-offset: 2px;
}

/* tags/badges: slightly richer contrast on blue */
.jwdev-feature-tag {
  background: rgba(230,86,22,.18);
  border-color: rgba(230,86,22,.45);
  color: var(--jwdev-accent-light);
}

/* hero backdrop: nudge orange glow, keep depth */
.jwdev-bullhead-hero{
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(230,86,22,.12), transparent 60%),
    linear-gradient(135deg, rgba(2,28,64,.35) 0%, rgba(2,28,64,0) 100%);
}

/* related links hover = brandy but still accessible */
.jwdev-related-link:hover {
  border-color: var(--jwdev-accent);
  color: var(--jwdev-accent-light);
}

/* popular package frame = orange ring + better lift on blue */
.jwdev-package-popular {
  border-color: var(--jwdev-accent);
  box-shadow: 0 0 0 1px var(--jwdev-accent), var(--jwdev-shadow-md);
}
.jwdev-bullhead-contact { padding: 5rem 0; background: var(--jwdev-bg-secondary); }
.jwdev-contact-card {
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 1rem;
  padding: 2rem;
  backdrop-filter: blur(12px);
  box-shadow: var(--jwdev-shadow-sm);
}
.jwdev-cta-schedule .ql-scheduling-button, .jwdev-cta-schedule .gb-scheduling-button { /* google’s injected button */
  border-radius: .75rem !important;
  font-weight: 700 !important;
}
/* Make Google’s injected button feel native */
.jwdev-cta-schedule .ql-scheduling-button,
.jwdev-cta-schedule .gb-scheduling-button{
  border-radius:.75rem !important;
  font-weight:700 !important;
  padding:.875rem 1.25rem !important;
}
/* Contact grid */
.jwdev-contact-grid{display:grid;gap:1.5rem}
@media (min-width:1024px){
  .jwdev-contact-grid{grid-template-columns:1.1fr .9fr;align-items:start;gap:2rem}
}

/* Cards */
.jwdev-contact-card,
.jwdev-contact-aside{
  background:var(--jwdev-glass-bg);
  border:2px solid var(--jwdev-glass-border);
  border-radius:1rem;
  box-shadow:var(--jwdev-shadow-sm);
  backdrop-filter:blur(12px);
}
.jwdev-contact-card{padding:1.25rem}
.jwdev-privacy-note{margin:.75rem 0 0;color:var(--jwdev-text-muted);font-size:.9rem}

/* Image card */
.jwdev-contact-aside{padding:1rem}
.jwdev-contact-figure{margin:0;border-radius:.875rem;overflow:hidden;border:1px solid rgba(230,86,22,.35)}
.jwdev-contact-figure img{display:block;width:100%;height:auto}
.jwdev-contact-figcaption{padding:.5rem .75rem .25rem;color:var(--jwdev-text-muted);font-size:.85rem}

/* Alt CTA (uses your button skin for the injected Google button) */
.jwdev-contact-alt{display:flex;align-items:center;gap:.75rem;margin-top:1rem;flex-wrap:wrap}
.jwdev-contact-alt-label{color:var(--jwdev-text-muted);font-size:.95rem}

/* Make Google’s injected scheduler button match your outline style */
.jwdev-contact-alt .ql-scheduling-button,
.jwdev-contact-alt .gb-scheduling-button{
  display:inline-flex!important;align-items:center;justify-content:center;
  padding:.8rem 1.2rem!important;border-radius:.75rem!important;
  font-weight:700!important;border:2px solid var(--jwdev-primary)!important;
  background:var(--jwdev-glass-bg)!important;color:var(--jwdev-primary-light)!important;
  box-shadow:var(--jwdev-shadow-sm)!important;text-decoration:none!important;
  transition:var(--jwdev-transition)!important;cursor:pointer!important
}
.jwdev-contact-alt .ql-scheduling-button:hover,
.jwdev-contact-alt .gb-scheduling-button:hover{
  background:var(--jwdev-glass-hover)!important;border-color:var(--jwdev-primary-light)!important;
  transform:translateY(-2px);box-shadow:var(--jwdev-shadow-md)!important
}
/* ===== Flow + rhythm utilities ===== */
.jwdev-flow > * + * { margin-top: var(--gap, 1rem); }
.jwdev-flow-lg { --gap: 1.25rem; }

/* Normalize section paddings */
.jwdev-bullhead-hero,
.jwdev-bullhead-benefits,
.jwdev-bullhead-services,
.jwdev-bullhead-proof,
.jwdev-bullhead-process,
.jwdev-bullhead-local,
.jwdev-bullhead-packages,
.jwdev-bullhead-faqs,
.jwdev-bullhead-cta,
.jwdev-bullhead-contact,
.jwdev-bullhead-related {
  padding-block: clamp(2.75rem, 4vw, 4rem);
}

/* Slightly narrower reading measure */
.jwdev-section-container { max-width: 1080px; }

/* Section headers breathe but don’t float */
.jwdev-section-header { margin-bottom: 1.75rem; }
.jwdev-section-title { margin-bottom: .5rem; }
.jwdev-section-subtitle { margin-top: .25rem; }

/* Hero: balanced grid gap */
.jwdev-hero-container { gap: 1.5rem; }
@media (min-width: 1024px){ .jwdev-hero-container { gap: 2.25rem; } }
.jwdev-hero-lead { max-width: 65ch; }

/* Grids: consistent gaps */
.jwdev-benefits-grid,
.jwdev-services-grid,
.jwdev-proof-grid,
.jwdev-process-steps,
.jwdev-packages-grid { gap: 1.1rem; }
@media (min-width: 960px){
  .jwdev-services-grid,
  .jwdev-packages-grid { gap: 1.25rem; }
}

/* Process cards feel lighter */
.jwdev-process-step { padding: 1.25rem; }
.jwdev-step-title { margin-top: .5rem; }

/* FAQs: larger tap targets, calmer spacing */
.jwdev-faq-item { margin-bottom: .75rem; }
.jwdev-faq-question { padding: 1.2rem 1.25rem; }
.jwdev-faq-answer { padding: 0 1.25rem 1.25rem 3.25rem; }

/* Contact grid: even spacing */
.jwdev-contact-grid { gap: 1.25rem; }
@media (min-width: 1024px){ .jwdev-contact-grid { gap: 1.75rem; } }

/* Anchor offset for sticky header (adjust if header height differs) */
#contact, #services, #faqs { scroll-margin-top: 90px; }

/* Subtle separators between sections on dark bg */
.jwdev-bullhead-services,
.jwdev-bullhead-process,
.jwdev-bullhead-packages {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.jwdev-showcase { padding-block: clamp(2.75rem, 4vw, 4rem); background: var(--jwdev-bg-secondary); }
.jwdev-showcase-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 720px){ .jwdev-showcase-grid { grid-template-columns: repeat(3,1fr); } }
.jwdev-figure, .jwdev-figure-wide {
  border-radius: 12px; overflow: hidden;
  border: 1px solid var(--jwdev-glass-border); box-shadow: var(--jwdev-shadow-sm);
}
.jwdev-figure img { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; display: block; }
.jwdev-figure-wide img { width: 100%; height: auto; object-fit: cover; }
/* Areas We Serve – equalize city card thumbs */
.jwdev-city-card .jwdev-contact-figure{
  position: relative;
  border-radius: .875rem;
  overflow: hidden;
  margin: 0 0 1rem 0;
  height: 220px;                    /* fallback for older browsers */
}
@supports (aspect-ratio: 4 / 3){
  .jwdev-city-card .jwdev-contact-figure{
    height: auto;
    aspect-ratio: 4 / 3;            /* consistent look across all tiles */
  }
}
.jwdev-city-card .jwdev-contact-figure img{
  width: 100%;
  height: 100%;
  object-fit: cover;                 /* crop nicely, no stretching */
  display: block;
}
/* =========================
   Portfolio v2 improvements
   ========================= */

/* Softer primary button for cards (less orange) */
.jwdev-btn-soft {
  background: linear-gradient(135deg, #052B59 0%, #021C40 100%);
  border: 2px solid var(--jwdev-accent);
  color: #fff;
  box-shadow: var(--jwdev-shadow-sm);
}
.jwdev-btn-soft:hover {
  background: linear-gradient(135deg, #083767 0%, #052B59 100%);
  border-color: var(--jwdev-accent-light);
  text-decoration: none;
  transform: translateY(-2px);
}

/* Keep the outline CTA calm */
.jwdev-service-card .jwdev-btn-outline {
  color: var(--jwdev-accent-light);
}

/* Uniform portfolio cards (stable rows even with missing data) */
.jwdev-service-card {
  display: grid;
  grid-template-rows: auto auto 1fr auto; /* media, title, desc, buttons */
}

/* Fixed media area — same height for all cards */
.jwdev-card-media {
  border-radius: .75rem;
  overflow: hidden;
  border: 1px solid var(--jwdev-glass-border);
  margin-bottom: 1rem;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
}
.jwdev-card-media img { width:100%; height:100%; object-fit:cover; display:block; }

/* Clamp descriptions so rows line up */
.jwdev-service-description {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  min-height: 3.6em; /* ~3 lines to keep heights uniform */
}

/* Infinite scroll sentinel + spinner */
#jw-infinite-sentinel { position: relative; height: 28px; margin: 12px 0; }
#jw-infinite-sentinel.loading::after {
  content:"";
  position:absolute; bottom:0;
  left: calc(50% - 14px);
  width:28px; height:28px; border-radius:50%;
  border:3px solid rgba(255,255,255,.25);
  border-top-color: var(--jwdev-accent);
  animation: jw-spin .8s linear infinite;
}
@keyframes jw-spin { to { transform: rotate(360deg); } }
/**
 * Reviews Component Styles
 * Integrates with Jeremy Webb Dev theme system
 * Add this to your theme's CSS or create reviews.css
 */

/* =========================================================
   Reviews Base Styles (inherit theme tokens)
   ========================================================= */
.jwdev-reviews-container {
  --review-accent: var(--jwdev-accent, #E65616);
  --review-accent-light: var(--jwdev-accent-light, #FF7A3D);
  --review-accent-10: var(--jwdev-accent-10, rgba(230, 86, 22, 0.10));
  --review-accent-18: var(--jwdev-accent-18, rgba(230, 86, 22, 0.18));
  
  margin: 2rem 0;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

/* =========================================================
   Grid Layouts
   ========================================================= */
.jwdev-reviews-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 1fr;
}

.jwdev-reviews-cols-2 {
  grid-template-columns: repeat(2, 1fr);
}

.jwdev-reviews-cols-3 {
  grid-template-columns: repeat(3, 1fr);
}

.jwdev-reviews-cols-4 {
  grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 1024px) {
  .jwdev-reviews-cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }
  .jwdev-reviews-cols-3 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .jwdev-reviews-cols-2,
  .jwdev-reviews-cols-3,
  .jwdev-reviews-cols-4 {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   List Layout
   ========================================================= */
.jwdev-reviews-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.jwdev-review-list-item {
  border-left: 4px solid var(--review-accent) !important;
}

.jwdev-review-list-item .jwdev-reviewer-info {
  flex-direction: row;
  align-items: center;
}

.jwdev-review-list-item .jwdev-reviewer-avatar-wrapper {
  margin-right: 1rem;
}

/* =========================================================
   Review Cards (matches theme system)
   ========================================================= */
.jwdev-review-card {
  background: var(--jwdev-glass-bg, rgba(255, 255, 255, 0.08));
  border: 2px solid var(--jwdev-glass-border, rgba(255, 255, 255, 0.24));
  border-radius: 1.25rem;
  padding: 1.5rem;
  backdrop-filter: blur(12px);
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.05),
    var(--jwdev-shadow-sm, 0 2px 8px rgba(0, 0, 0, 0.25));
  transition: var(--jwdev-transition, all 0.3s cubic-bezier(0.4, 0, 0.2, 1));
  position: relative;
  overflow: hidden;
}

.jwdev-review-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--jwdev-shadow-md, 0 8px 24px rgba(0, 0, 0, 0.35));
  background: var(--jwdev-glass-hover, rgba(255, 255, 255, 0.14));
}

/* Featured review styling */
.jwdev-review-featured {
  border-color: var(--review-accent);
  box-shadow: 
    0 0 0 1px var(--review-accent),
    inset 0 1px 0 rgba(255, 255, 255, 0.05),
    var(--jwdev-shadow-md, 0 8px 24px rgba(0, 0, 0, 0.35));
}

.jwdev-review-featured::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--review-accent) 0%, var(--review-accent-light) 100%);
}

/* =========================================================
   Review Header
   ========================================================= */
.jwdev-review-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.jwdev-featured-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.375rem 0.75rem;
  background: var(--review-accent);
  color: white;
  border-radius: 1rem;
  font-size: 0.75rem;
  font-weight: 700;
  box-shadow: var(--jwdev-shadow-sm);
}

/* =========================================================
   Star Ratings
   ========================================================= */
.jwdev-rating {
  display: flex;
  align-items: center;
  gap: 0.125rem;
  margin-bottom: 0.5rem;
}

.jwdev-star {
  font-size: 1.125rem;
  line-height: 1;
  transition: var(--jwdev-transition-fast, all 0.15s ease);
}

.jwdev-star-filled {
  color: var(--review-accent);
  text-shadow: 0 0 4px rgba(230, 86, 22, 0.3);
}

.jwdev-star-empty {
  color: rgba(255, 255, 255, 0.3);
}

/* Summary rating styles */
.jwdev-summary-stars .jwdev-star {
  font-size: 1.375rem;
}

/* =========================================================
   Review Content
   ========================================================= */
.jwdev-review-content {
  margin-bottom: 1.25rem;
}

.jwdev-review-content blockquote {
  margin: 0;
  padding: 0;
  border: none;
  background: none;
}

.jwdev-review-content p {
  color: var(--jwdev-text-primary, #ffffff);
  line-height: 1.7;
  margin: 0;
  font-size: 1rem;
  font-style: italic;
}

/* =========================================================
   Reviewer Information
   ========================================================= */
.jwdev-review-meta {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.jwdev-reviewer-info {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
}

.jwdev-reviewer-avatar-wrapper {
  flex-shrink: 0;
}

.jwdev-reviewer-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid rgba(255, 255, 255, 0.2);
  box-shadow: var(--jwdev-shadow-sm);
}

.jwdev-avatar-initials {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--review-accent) 0%, var(--review-accent-light) 100%);
  border: 2px solid rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.9rem;
  color: white;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  box-shadow: var(--jwdev-shadow-sm);
}

.jwdev-reviewer-details {
  flex: 1;
  min-width: 0;
}

.jwdev-reviewer-name {
  font-weight: 700;
  font-size: 1rem;
  color: var(--jwdev-text-primary, #ffffff);
  margin-bottom: 0.25rem;
  line-height: 1.3;
}

.jwdev-reviewer-title {
  font-size: 0.875rem;
  color: var(--jwdev-text-muted, #A9BED4);
  line-height: 1.4;
}

/* =========================================================
   Badges and Tags
   ========================================================= */
.jwdev-review-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.jwdev-service-badge,
.jwdev-platform-badge,
.jwdev-review-date {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  border-radius: 1rem;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.2;
}

.jwdev-service-badge {
  background: var(--review-accent-18);
  border: 1px solid rgba(230, 86, 22, 0.35);
  color: var(--review-accent-light);
}

.jwdev-platform-badge {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--jwdev-text-secondary, #DCE6F2);
}

.jwdev-review-date {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: var(--jwdev-text-muted, #A9BED4);
  font-weight: 500;
}

/* =========================================================
   Reviews Summary Component
   ========================================================= */
.jwdev-reviews-summary {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1.5rem;
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 1rem;
  backdrop-filter: blur(12px);
  box-shadow: var(--jwdev-shadow-sm);
  text-align: center;
  margin: 2rem 0;
}

.jwdev-summary-rating {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.jwdev-rating-number {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--jwdev-text-primary);
  margin-left: 0.5rem;
}

.jwdev-summary-count {
  color: var(--jwdev-text-secondary);
  font-size: 0.95rem;
}

.jwdev-summary-count strong {
  color: var(--jwdev-text-primary);
  font-weight: 700;
}

/* =========================================================
   Featured Review Component
   ========================================================= */
.jwdev-featured-review {
  margin: 2rem 0;
}

.jwdev-featured-review .jwdev-review-card {
  border-color: var(--review-accent);
  background: linear-gradient(135deg, 
    rgba(230, 86, 22, 0.08) 0%, 
    var(--jwdev-glass-bg) 100%);
}

.jwdev-featured-review .jwdev-reviewer-avatar,
.jwdev-featured-review .jwdev-avatar-initials {
  width: 64px;
  height: 64px;
  border-width: 3px;
}

.jwdev-featured-review .jwdev-avatar-initials {
  font-size: 1.125rem;
}

.jwdev-featured-review .jwdev-reviewer-name {
  font-size: 1.125rem;
}

.jwdev-featured-review .jwdev-review-content p {
  font-size: 1.125rem;
  line-height: 1.6;
}

/* =========================================================
   Slider Layout
   ========================================================= */
.jwdev-reviews-slider-wrapper {
  position: relative;
  overflow: hidden;
  border-radius: 1rem;
}

.jwdev-reviews-slider {
  display: flex;
  gap: 1.25rem;
  transition: transform 0.3s ease;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.jwdev-reviews-slider::-webkit-scrollbar {
  display: none;
}

.jwdev-reviews-slider .jwdev-review-card {
  flex: 0 0 300px;
  scroll-snap-align: start;
}

@media (min-width: 768px) {
  .jwdev-reviews-slider .jwdev-review-card {
    flex: 0 0 350px;
  }
}

.jwdev-slider-nav {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-top: 1.5rem;
}

.jwdev-slider-prev,
.jwdev-slider-next {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 2px solid var(--jwdev-glass-border);
  background: var(--jwdev-glass-bg);
  backdrop-filter: blur(8px);
  color: var(--jwdev-text-primary);
  font-size: 1.5rem;
  font-weight: 300;
  cursor: pointer;
  transition: var(--jwdev-transition);
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.jwdev-slider-prev:hover,
.jwdev-slider-next:hover {
  background: var(--jwdev-glass-hover);
  border-color: var(--review-accent);
  color: var(--review-accent-light);
  transform: translateY(-1px);
}

.jwdev-slider-prev:focus-visible,
.jwdev-slider-next:focus-visible {
  outline: 3px solid rgba(230, 86, 22, 0.5);
  outline-offset: 2px;
}

.jwdev-slider-dots {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1rem;
}

.jwdev-slider-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  cursor: pointer;
  transition: var(--jwdev-transition-fast);
}

.jwdev-slider-dot.active,
.jwdev-slider-dot:hover {
  background: var(--review-accent);
  transform: scale(1.2);
}

/* =========================================================
   Empty State
   ========================================================= */
.jwdev-reviews-empty {
  text-align: center;
  padding: 2rem;
  color: var(--jwdev-text-muted);
  font-style: italic;
  background: var(--jwdev-glass-bg);
  border: 2px solid var(--jwdev-glass-border);
  border-radius: 1rem;
  backdrop-filter: blur(8px);
}

/* =========================================================
   Responsive Design
   ========================================================= */
@media (max-width: 768px) {
  .jwdev-review-card {
    padding: 1.25rem;
  }
  
  .jwdev-reviewer-info {
    gap: 0.75rem;
  }
  
  .jwdev-reviewer-avatar,
  .jwdev-avatar-initials {
    width: 40px;
    height: 40px;
  }
  
  .jwdev-avatar-initials {
    font-size: 0.8rem;
  }
  
  .jwdev-reviewer-name {
    font-size: 0.95rem;
  }
  
  .jwdev-reviewer-title {
    font-size: 0.8rem;
  }
  
  .jwdev-review-content p {
    font-size: 0.95rem;
  }
  
  .jwdev-review-badges {
    gap: 0.375rem;
  }
  
  .jwdev-service-badge,
  .jwdev-platform-badge,
  .jwdev-review-date {
    font-size: 0.75rem;
    padding: 0.2rem 0.6rem;
  }
  
  .jwdev-reviews-summary {
    padding: 1.25rem;
  }
  
  .jwdev-slider-prev,
  .jwdev-slider-next {
    width: 40px;
    height: 40px;
    font-size: 1.25rem;
  }
}

/* =========================================================
   Print Styles
   ========================================================= */
@media print {
  .jwdev-reviews-container {
    background: white !important;
    color: black !important;
  }
  
  .jwdev-review-card {
    background: white !important;
    border: 2px solid #ddd !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    break-inside: avoid;
    margin-bottom: 1rem;
  }
  
  .jwdev-star-filled {
    color: #333 !important;
  }
  
  .jwdev-slider-nav,
  .jwdev-slider-dots {
    display: none;
  }
}

/* =========================================================
   Accessibility & Reduced Motion
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
  .jwdev-review-card,
  .jwdev-slider-prev,
  .jwdev-slider-next,
  .jwdev-slider-dot,
  .jwdev-reviews-slider {
    transition: none !important;
  }
  
  .jwdev-review-card:hover {
    transform: none;
  }
  
  .jwdev-slider-prev:hover,
  .jwdev-slider-next:hover {
    transform: none;
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .jwdev-review-card {
    border-width: 3px;
    background: rgba(255, 255, 255, 0.15);
  }
  
  .jwdev-star-empty {
    color: rgba(255, 255, 255, 0.5);
  }
  
  .jwdev-service-badge,
  .jwdev-platform-badge,
  .jwdev-review-date {
    border-width: 2px;
  }
}
/* Scope to your blog container so nothing leaks sitewide */
  .jwblog-container .jwblog-tip pre,
  .jwblog-container .jwblog-action pre,
  .jwblog-container .jwblog-directory pre {
    /* visual */
    background: rgba(2, 28, 64, 0.55);
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: 10px;
    box-shadow: 0 6px 14px rgba(0,0,0,0.25);
    margin: 12px 0 0;
    padding: 14px 16px 16px;
    /* fix horizontal scrolling */
    white-space: pre-wrap;        /* wrap long lines */
    word-break: break-word;       /* break long tokens */
    overflow-wrap: anywhere;      /* modern browsers */
  }
  .jwblog-container pre code {
    display: block;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono","Courier New", monospace;
    font-size: .95rem;
    line-height: 1.6;
    color: #EDEFF6;
  }

  /* Wrap each pre in a positioned container so we can place the button */
  .jwblog-container .jw-pre-wrap {
    position: relative;
  }

  /* Copy button */
  .jwblog-container .jw-copy {
    position: absolute;
    top: 8px;
    right: 8px;
    padding: 6px 10px;
    font-size: .8rem;
    font-weight: 700;
    line-height: 1;
    border-radius: 8px;
    border: 1px solid rgba(255,255,255,0.35);
    background: rgba(255,255,255,0.08);
    color: #fff;
    cursor: pointer;
    transition: transform .15s ease, background .15s ease, border-color .15s ease;
  }
  .jwblog-container .jw-copy:hover {
    transform: translateY(-1px);
    background: rgba(255,255,255,0.14);
    border-color: rgba(255,255,255,0.65);
  }
  .jwblog-container .jw-copy:focus-visible {
    outline: 3px solid #FCD34D;
    outline-offset: 2px;
  }

  /* Ensure buttons look good on lighter (tip) cards too */
  .jwblog-container .jwblog-tip .jw-copy { background: rgba(0,0,0,0.18); }



  /* Scope to your blog container so nothing leaks sitewide */
  .jwblog-container .jwblog-tip pre,
  .jwblog-container .jwblog-action pre,
  .jwblog-container .jwblog-directory pre {
    /* visual */
    background: rgba(2, 28, 64, 0.55);
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: 10px;
    box-shadow: 0 6px 14px rgba(0,0,0,0.25);
    margin: 12px 0 0;
    padding: 40px 16px 16px;
    /* fix horizontal scrolling */
    white-space: pre-wrap;        /* wrap long lines */
    word-break: break-word;       /* break long tokens */
    overflow-wrap: anywhere;      /* modern browsers */
  }
  .jwblog-container pre code {
    display: block;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono","Courier New", monospace;
    font-size: .95rem;
    line-height: 1.6;
    color: #EDEFF6;
  }

  /* Wrap each pre in a positioned container so we can place the button */
  .jwblog-container .jw-pre-wrap {
    position: relative;
  }

  /* Copy button */
  .jwblog-container .jw-copy {
    position: absolute;
    top: 8px;
    right: 8px;
    padding: 6px 10px;
    font-size: .8rem;
    font-weight: 700;
    line-height: 1;
    border-radius: 8px;
    border: 1px solid rgba(255,255,255,0.35);
    background: rgba(255,255,255,0.08);
    color: #fff;
    cursor: pointer;
    transition: transform .15s ease, background .15s ease, border-color .15s ease;
  }
  .jwblog-container .jw-copy:hover {
    transform: translateY(-1px);
    background: rgba(255,255,255,0.14);
    border-color: rgba(255,255,255,0.65);
  }
  .jwblog-container .jw-copy:focus-visible {
    outline: 3px solid #FCD34D;
    outline-offset: 2px;
  }

  /* Ensure buttons look good on lighter (tip) cards too */
  .jwblog-container .jwblog-tip .jw-copy { background: rgba(0,0,0,0.18); }
}