/* ===========================================
   White Knight Steamer — Global Design System
   v1a "Elegant & Refined" — Divi 5.0
   =========================================== */

/* --- Divi Default Header/Footer — hide since we use custom --- */
#main-header { display: none !important; }
#main-footer { display: none !important; }
.et-l--header { display: none !important; }
/* Hide custom header in Visual Builder */
.et-fb #wks-header { display: none !important; }
body.et-fb .wks-header-fixed { display: none !important; }

/* --- Custom Header (injected via wp_body_open) --- */
.wks-header-fixed {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 99999;
  border-bottom: 1px solid rgba(201,169,110,.1);
  transition: background .3s ease, box-shadow .3s ease;
}
.wks-header-fixed.wks-header-scrolled {
  background: var(--wks-dark);
  box-shadow: 0 2px 20px rgba(0,0,0,.4);
}
.wks-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 40px;
}
.wks-header-logo img {
  height: 80px;
  width: auto;
  display: block;
}
.wks-header-nav {
  display: flex;
  align-items: center;
  gap: 40px;
}
.wks-header-nav > a,
.wks-nav-parent {
  color: #d1d5db;
  text-decoration: none;
  font-family: var(--wks-font-sans);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.02em;
  transition: color .2s ease;
}
.wks-header-nav > a:hover,
.wks-nav-parent:hover { color: #ffffff; }
.wks-header-cta {
  display: inline-block;
  background: var(--wks-gold);
  color: var(--wks-dark) !important;
  padding: 12px 28px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 4px;
  transition: background .2s ease;
  margin-left: 8px;
}
.wks-header-cta:hover { background: var(--wks-gold-hover); }
.wks-header-cta-wrap {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
}
.wks-header-cta-phone {
  color: #ffffff;
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
  text-align: center;
  letter-spacing: 0.02em;
  transition: color var(--wks-ease);
}
.wks-header-cta-phone:hover { color: var(--wks-gold); }

/* Dropdown */
.wks-nav-dropdown {
  position: relative;
}
.wks-nav-dropdown::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 12px;
}
.wks-dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 12px);
  left: -16px;
  background: var(--wks-dark);
  border: 1px solid rgba(201,169,110,.2);
  border-radius: 6px;
  padding: 8px 0;
  min-width: 210px;
  box-shadow: 0 12px 32px rgba(0,0,0,.4);
}
.wks-nav-dropdown:hover .wks-dropdown-menu,
.wks-nav-dropdown:focus-within .wks-dropdown-menu {
  display: block;
}

/* Mobile menu toggle */
.wks-menu-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
}
.wks-menu-toggle svg {
  width: 28px;
  height: 28px;
  stroke: var(--wks-white);
  stroke-width: 2;
  fill: none;
}
.wks-menu-toggle[aria-expanded="true"] .wks-icon-menu { display: none; }
.wks-menu-toggle[aria-expanded="false"] .wks-icon-close { display: none; }
.wks-menu-toggle[aria-expanded="true"] .wks-icon-close { display: block; }
.wks-dropdown-menu a {
  display: block;
  padding: 10px 20px;
  color: #d1d5db;
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  transition: all .15s ease;
}
.wks-dropdown-menu a:hover {
  color: #ffffff;
  background: rgba(201,169,110,.1);
}

/* --- Tokens --- */
:root {
  /* Color */
  --wks-gold: #c9a96e;
  --wks-gold-hover: #b8944f;
  --wks-gold-light: rgba(201,169,110,.1);
  --wks-dark: #0b1120;
  --wks-navy: #1a2b4b;
  --wks-blue: #2c5aa0;
  --wks-green: #16a34a;
  --wks-green-hover: #15803d;
  --wks-white: #ffffff;
  --wks-offwhite: #f5f3ef;
  --wks-gray-100: #f3f4f6;
  --wks-gray-200: #e5e7eb;
  --wks-gray-500: #6b7280;
  --wks-gray-600: #4b5563;
  --wks-gray-900: #111827;

  /* Typography */
  --wks-font-serif: 'Playfair Display', Georgia, serif;
  --wks-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Spacing (8pt grid) */
  --wks-sp-xs: 4px;
  --wks-sp-sm: 8px;
  --wks-sp-md: 16px;
  --wks-sp-lg: 24px;
  --wks-sp-xl: 32px;
  --wks-sp-2xl: 48px;
  --wks-sp-3xl: 64px;
  --wks-sp-4xl: 96px;
  --wks-sp-section: 120px;

  /* Radius */
  --wks-radius: 6px;
  --wks-radius-lg: 8px;

  /* Shadow */
  --wks-shadow-sm: 0 2px 8px rgba(0,0,0,.06);
  --wks-shadow-md: 0 4px 16px rgba(0,0,0,.1);
  --wks-shadow-lg: 0 10px 30px rgba(0,0,0,.12);
  --wks-shadow-gold: 0 6px 20px rgba(201,169,110,.25);

  /* Transition */
  --wks-ease: .2s ease;

  /* Layout */
  --wks-max-w: 1200px;
  --wks-max-w-narrow: 800px;
}

/* --- Base --- */
body {
  font-family: var(--wks-font-sans);
  color: var(--wks-gray-900);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* --- Typography --- */
.wks-serif { font-family: var(--wks-font-serif); }
.wks-pretitle {
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--wks-gold);
  margin-bottom: var(--wks-sp-md);
}
.wks-h1 { font-family: var(--wks-font-serif); font-size: clamp(36px,5vw,56px); font-weight: 700; line-height: 1.15; }
.wks-h2 { font-family: var(--wks-font-serif); font-size: clamp(30px,4vw,48px); font-weight: 700; line-height: 1.2; }
.wks-h3 { font-family: var(--wks-font-serif); font-size: clamp(22px,3vw,28px); font-weight: 600; line-height: 1.3; }
.wks-body-lg { font-size: 20px; line-height: 1.7; color: var(--wks-gray-600); }
.wks-body { font-size: 16px; line-height: 1.6; color: var(--wks-gray-600); }
.wks-small { font-size: 14px; color: var(--wks-gray-500); }

/* --- Buttons --- */
.wks-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 16px 40px;
  border: none;
  border-radius: var(--wks-radius);
  font-family: var(--wks-font-sans);
  font-size: 16px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  text-decoration: none;
  cursor: pointer;
  transition: all var(--wks-ease);
}
.wks-btn-primary {
  background: var(--wks-green);
  color: var(--wks-white);
}
.wks-btn-primary:hover {
  background: var(--wks-green-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(22,163,74,.3);
}
.wks-btn-secondary {
  background: transparent;
  color: var(--wks-blue);
  border: 2px solid var(--wks-blue);
}
.wks-btn-secondary:hover {
  background: var(--wks-blue);
  color: var(--wks-white);
}
.wks-btn-gold {
  background: linear-gradient(135deg, var(--wks-gold), var(--wks-gold-hover));
  color: var(--wks-dark);
}
.wks-btn-gold:hover {
  transform: translateY(-2px);
  box-shadow: var(--wks-shadow-gold);
}
.wks-btn-white {
  background: var(--wks-white);
  color: var(--wks-gray-900);
}
.wks-btn-white:hover {
  transform: translateY(-1px);
  box-shadow: var(--wks-shadow-md);
}

/* --- Sections --- */
.wks-section { padding: var(--wks-sp-section) 0; }
.wks-section-sm { padding: var(--wks-sp-3xl) 0; }
.wks-bg-white { background: var(--wks-white); }
.wks-bg-offwhite { background: var(--wks-offwhite); }
.wks-bg-dark { background: var(--wks-dark); color: var(--wks-white); }
.wks-bg-navy { background: var(--wks-navy); color: var(--wks-white); }

/* --- Layout --- */
.wks-container { max-width: var(--wks-max-w); margin: 0 auto; padding: 0 var(--wks-sp-xl); }
.wks-narrow { max-width: var(--wks-max-w-narrow); margin: 0 auto; }
.wks-grid-2 { display: grid; grid-template-columns: repeat(2,1fr); gap: var(--wks-sp-2xl); align-items: center; }
.wks-grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--wks-sp-2xl); }
.wks-grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--wks-sp-lg); }
.wks-text-center { text-align: center; }

/* --- Hero --- */
.wks-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.wks-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(11,17,32,.92), rgba(44,90,160,.82));
  z-index: 1;
}
.wks-hero-content {
  position: relative;
  z-index: 2;
  text-align: center;
  color: var(--wks-white);
  max-width: var(--wks-max-w);
  padding: 0 var(--wks-sp-xl);
}
.wks-hero .wks-h1 { color: var(--wks-white); margin-bottom: var(--wks-sp-lg); }
.wks-hero .wks-body-lg { color: rgba(255,255,255,.9); max-width: 600px; margin: 0 auto var(--wks-sp-2xl); }

/* --- Decorative --- */
.wks-gold-rule {
  width: 60px;
  height: 3px;
  background: var(--wks-gold);
  border: none;
  margin: var(--wks-sp-md) auto;
}
.wks-gold-rule-left {
  width: 60px;
  height: 3px;
  background: var(--wks-gold);
  border: none;
  margin: var(--wks-sp-xl) 0;
}
.wks-gold-border-left {
  border-left: 3px solid var(--wks-gold);
  padding-left: var(--wks-sp-lg);
}

/* --- Cards --- */
.wks-card {
  background: var(--wks-white);
  border-radius: var(--wks-radius-lg);
  padding: var(--wks-sp-2xl);
  box-shadow: var(--wks-shadow-sm);
  transition: all var(--wks-ease);
}
.wks-card:hover {
  box-shadow: var(--wks-shadow-md);
  transform: translateY(-4px);
}
.wks-card-dark {
  background: var(--wks-navy);
  color: var(--wks-white);
}

/* --- Stats --- */
.wks-stat-number {
  font-family: var(--wks-font-serif);
  font-size: clamp(36px,4vw,48px);
  font-weight: 700;
  color: var(--wks-green);
  line-height: 1;
  margin-bottom: var(--wks-sp-sm);
}
.wks-stat-label {
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 1px;
  opacity: .8;
}

/* --- Testimonial --- */
.wks-testimonial {
  background: var(--wks-white);
  padding: var(--wks-sp-2xl);
  border-radius: var(--wks-radius-lg);
  box-shadow: var(--wks-shadow-lg);
  position: relative;
}
.wks-quote-mark {
  font-family: var(--wks-font-serif);
  font-size: 80px;
  color: var(--wks-green);
  line-height: 1;
  opacity: .3;
  position: absolute;
  top: 20px;
  left: var(--wks-sp-2xl);
}
.wks-testimonial-text {
  font-size: 20px;
  line-height: 1.6;
  font-style: italic;
  color: var(--wks-gray-900);
  margin-bottom: var(--wks-sp-lg);
}
.wks-star { fill: #fbbf24; stroke: #fbbf24; }

/* --- Problem List --- */
.wks-problem-item {
  display: flex;
  align-items: flex-start;
  gap: var(--wks-sp-md);
  margin-bottom: var(--wks-sp-lg);
  font-size: 18px;
  color: var(--wks-gray-600);
}
.wks-problem-icon { flex-shrink: 0; margin-top: 2px; stroke: #ef4444; }

/* --- Steps --- */
.wks-step { text-align: center; padding: var(--wks-sp-2xl) var(--wks-sp-lg); }
.wks-step-number {
  font-family: var(--wks-font-serif);
  font-size: 20px;
  font-weight: 700;
  color: var(--wks-blue);
  margin-bottom: var(--wks-sp-md);
}
.wks-step h3 { margin-bottom: var(--wks-sp-md); }

/* --- CTA Band --- */
.wks-cta-band {
  background: var(--wks-dark);
  color: var(--wks-white);
  padding: var(--wks-sp-3xl) 0;
  text-align: center;
}
.wks-cta-band .wks-body-lg { opacity: .9; margin-bottom: var(--wks-sp-2xl); }

/* --- Footer --- */
.wks-footer { background: var(--wks-dark); color: var(--wks-white); padding: var(--wks-sp-3xl) 0 var(--wks-sp-2xl); }
.wks-footer a { color: var(--wks-white); text-decoration: none; opacity: .8; transition: opacity var(--wks-ease); }
.wks-footer a:hover { opacity: 1; }
.wks-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: var(--wks-sp-2xl); text-align: center; opacity: .8; }

/* --- Utility --- */
.wks-mb-0 { margin-bottom: 0; }
.wks-mb-sm { margin-bottom: var(--wks-sp-sm); }
.wks-mb-md { margin-bottom: var(--wks-sp-md); }
.wks-mb-lg { margin-bottom: var(--wks-sp-lg); }
.wks-mb-xl { margin-bottom: var(--wks-sp-xl); }
.wks-mb-2xl { margin-bottom: var(--wks-sp-2xl); }
.wks-mt-2xl { margin-top: var(--wks-sp-2xl); }
.wks-opacity-90 { opacity: .9; }

/* --- Steps --- */
.wks-steps {
  display: flex;
  justify-content: space-between;
  max-width: 1000px;
  margin: 40px auto 0;
  position: relative;
}
.wks-steps::before {
  content: '';
  position: absolute;
  top: 36px;
  left: 20%;
  right: 20%;
  height: 1px;
  background: var(--wks-gold);
  opacity: .4;
}
.wks-step-item {
  flex: 1;
  text-align: center;
  position: relative;
  z-index: 1;
  padding: 0 16px;
}
.wks-step-num {
  font-family: var(--wks-font-serif);
  font-size: 64px;
  font-weight: 700;
  color: var(--wks-gold);
  line-height: 1;
  margin-bottom: 16px;
  display: inline-block;
  background: var(--wks-offwhite);
  padding: 0 16px;
}
.wks-step-title {
  font-family: var(--wks-font-serif);
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--wks-gray-900);
}
.wks-step-desc {
  color: var(--wks-gray-600);
  font-size: 15px;
  line-height: 1.7;
}

/* --- Image Section --- */
.wks-image-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.wks-image-content h3 {
  font-family: var(--wks-font-serif);
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 20px;
  color: var(--wks-gray-900);
}
.wks-image-content p {
  color: var(--wks-gray-600);
  line-height: 1.7;
  margin-bottom: 16px;
  font-size: 15px;
}
.wks-feature-list {
  list-style: none;
  padding: 0;
  margin: 16px 0 24px;
}
.wks-feature-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  color: var(--wks-gray-600);
  font-size: 15px;
}
.wks-feature-list svg {
  width: 24px;
  height: 24px;
  stroke: var(--wks-gold);
  fill: none;
  stroke-width: 2;
  flex-shrink: 0;
}
.wks-content-image {
  width: 100%;
  height: 480px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid rgba(201,169,110,.3);
}
.wks-content-image--portrait {
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}
.wks-content-image--portrait-compact {
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  max-width: 380px;
  margin: 0 auto;
}
.wks-content-image--anchor-right { object-position: right center; }
.wks-content-image--anchor-left  { object-position: left center; }

/* --- Success Items --- */
.wks-success-list { max-width: 700px; margin: 40px auto 0; }
.wks-success-item {
  display: flex;
  gap: 20px;
  align-items: start;
  padding: 24px 0;
}
.wks-success-item + .wks-success-item {
  border-top: 1px solid rgba(0,0,0,.06);
}
.wks-success-icon {
  width: 32px;
  height: 32px;
  stroke: var(--wks-gold);
  fill: none;
  stroke-width: 2;
  flex-shrink: 0;
  margin-top: 4px;
}
.wks-success-title {
  font-family: var(--wks-font-serif);
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 6px;
  color: var(--wks-gray-900);
}
.wks-success-desc {
  color: var(--wks-gray-600);
  line-height: 1.7;
  font-size: 15px;
}

/* --- CTA Band --- */
.wks-cta-band-inner {
  text-align: center;
}
.wks-cta-band-inner h3 {
  font-family: var(--wks-font-serif);
  font-size: clamp(28px,3.5vw,36px);
  font-weight: 700;
  color: var(--wks-gray-900);
  margin-bottom: 16px;
}
.wks-reassurance {
  color: var(--wks-gray-600);
  font-size: 14px;
  margin-top: 16px;
}

/* --- Footer (in-page version) --- */
.wks-footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
}
.wks-footer-brand h3 {
  font-family: var(--wks-font-serif);
  color: var(--wks-white);
  font-size: 24px;
  margin-bottom: 12px;
}
.wks-footer-brand p {
  line-height: 1.6;
  margin-bottom: 16px;
  color: #d1d5db;
  font-size: 14px;
}
.wks-footer-section h4 {
  color: var(--wks-gold);
  font-weight: 600;
  margin-bottom: 16px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}
.wks-footer-links {
  list-style: none;
  padding: 0;
}
.wks-footer-links li { margin-bottom: 10px; }
.wks-footer-links a {
  color: #d1d5db;
  text-decoration: none;
  font-size: 14px;
  transition: color var(--wks-ease);
}
.wks-footer-links a:hover { color: var(--wks-white); }
.wks-contact-item {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  color: #d1d5db;
  font-size: 14px;
}
.wks-contact-item svg {
  width: 20px;
  height: 20px;
  stroke: var(--wks-gold);
  fill: none;
  stroke-width: 2;
  flex-shrink: 0;
}
.wks-footer-bottom-bar {
  border-top: 1px solid rgba(201,169,110,.15);
  margin-top: 40px;
  padding-top: 24px;
  text-align: center;
  font-size: 13px;
  color: #d1d5db;
}
.wks-footer-bottom-bar a {
  color: #d1d5db;
  text-decoration: none;
}
.wks-footer-bottom-bar a:hover { color: var(--wks-white); }

/* --- Guide Section --- */
.wks-guide-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
  margin-top: 40px;
}
.wks-guide-video {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 6px;
  border: 1px solid rgba(201,169,110,.5);
  background: #000;
}
.wks-guide-video iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  border: none;
}
.wks-guide-text h3 {
  font-family: var(--wks-font-serif);
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 20px;
  color: var(--wks-gray-900);
}
.wks-guide-text p {
  color: var(--wks-gray-600);
  line-height: 1.7;
  margin-bottom: 16px;
  font-size: 15px;
}

/* --- Trust Badges --- */
.wks-trust-badges {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid rgba(0,0,0,.08);
}
.wks-badge { text-align: center; }
.wks-badge-number {
  font-family: var(--wks-font-serif);
  font-size: 32px;
  font-weight: 700;
  color: var(--wks-gold);
  display: block;
}
.wks-badge-label {
  color: var(--wks-gray-600);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

/* --- Testimonial --- */
.wks-testimonial-card {
  position: relative;
  padding: 32px 28px 28px;
  border-left: 2px solid var(--wks-gold);
  background: var(--wks-white);
  border-radius: 6px;
  margin-top: 48px;
}
.wks-quote-mark {
  font-family: var(--wks-font-serif);
  font-size: 120px;
  color: var(--wks-gold);
  position: absolute;
  top: -20px;
  left: 24px;
  opacity: .2;
  line-height: 1;
}
.wks-testimonial-text {
  font-family: var(--wks-font-serif);
  font-size: 18px;
  line-height: 1.8;
  color: var(--wks-gray-900);
  margin-bottom: 20px;
  font-style: italic;
  position: relative;
  z-index: 1;
}
.wks-testimonial-author {
  display: flex;
  align-items: center;
  gap: 16px;
}
.wks-author-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
}
.wks-author-name {
  font-weight: 600;
  color: var(--wks-gray-900);
  font-size: 15px;
}
.wks-author-title {
  font-size: 13px;
  color: var(--wks-gray-600);
}
.wks-stars { display: inline-flex; gap: 2px; }
.wks-stars svg { fill: #fbbf24; width: 16px; height: 16px; }

/* --- Value Props --- */
.wks-value-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 48px;
  margin-top: 40px;
}
.wks-value-grid.wks-value-grid-4 {
  grid-template-columns: repeat(4,1fr);
  gap: 32px;
}
.wks-value-card {
  text-align: center;
  padding: 24px 20px;
  transition: all var(--wks-ease);
}
.wks-value-card:hover { background: var(--wks-white); }
.wks-value-icon {
  width: 48px;
  height: 48px;
  stroke: var(--wks-gold);
  stroke-width: 1.5;
  fill: none;
  margin: 0 auto 20px;
  display: block;
}
.wks-value-title {
  font-family: var(--wks-font-serif);
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 12px;
  color: var(--wks-gray-900);
}
.wks-value-rule {
  width: 40px;
  height: 1px;
  background: var(--wks-gold);
  border: none;
  margin: 0 auto 12px;
}
.wks-value-desc {
  color: var(--wks-gray-600);
  font-size: 15px;
  line-height: 1.7;
}

/* --- Service Cards --- */
.wks-service-grid {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 24px;
  margin-top: 40px;
}
.wks-service-card {
  background: var(--wks-dark);
  text-align: center;
  padding: 28px 16px;
  border-radius: 4px;
  border-bottom: 2px solid var(--wks-gold);
  transition: transform var(--wks-ease), box-shadow var(--wks-ease);
}
.wks-service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(201,169,110,.15);
}
.wks-service-icon-wrap {
  width: 56px;
  height: 56px;
  border: 1px solid var(--wks-gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
}
.wks-service-icon-wrap svg {
  width: 28px;
  height: 28px;
  stroke: var(--wks-gold);
  stroke-width: 1.5;
  fill: none;
}
.wks-service-title {
  font-family: var(--wks-font-serif);
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 10px;
  color: var(--wks-white);
}
.wks-service-desc {
  font-size: 13px;
  color: #d1d5db;
  line-height: 1.7;
}

/* --- Pain Points Section --- */
.wks-pain-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  max-width: 960px;
  margin: 0 auto;
}
.wks-pain-item {
  display: flex;
  gap: 20px;
  padding: 24px;
  border-left: 2px solid var(--wks-gold);
  background: var(--wks-offwhite);
  border-radius: 4px;
}
.wks-pain-icon {
  width: 28px;
  height: 28px;
  stroke: var(--wks-gold);
  fill: none;
  stroke-width: 2;
  flex-shrink: 0;
  margin-top: 2px;
}
.wks-pain-title {
  font-family: var(--wks-font-serif);
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 4px;
  color: var(--wks-gray-900);
}
.wks-pain-desc {
  color: var(--wks-gray-600);
  font-size: 14px;
  line-height: 1.7;
}

/* --- Hero Promo Banner --- */
.wks-hero-promo {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--wks-radius-lg);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: var(--wks-sp-2xl) var(--wks-sp-2xl) var(--wks-sp-xl);
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}
.wks-hero-promo-title {
  font-family: var(--wks-font-serif);
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--wks-white);
  margin-bottom: var(--wks-sp-sm);
}
.wks-hero-promo-sub {
  font-size: 16px;
  color: var(--wks-gold);
  margin-bottom: var(--wks-sp-lg);
}
.wks-pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--wks-sp-md);
  margin-bottom: var(--wks-sp-lg);
}
.wks-pricing-card {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--wks-radius);
  padding: var(--wks-sp-lg) var(--wks-sp-md);
  text-align: center;
  transition: all var(--wks-ease);
}
.wks-pricing-card:hover {
  background: rgba(255,255,255,.1);
  border-color: var(--wks-gold);
}
.wks-pricing-label {
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: rgba(255,255,255,.7);
  margin-bottom: var(--wks-sp-sm);
}
.wks-pricing-amount {
  font-family: var(--wks-font-serif);
  font-size: 36px;
  font-weight: 700;
  color: var(--wks-gold);
  line-height: 1;
  margin-bottom: var(--wks-sp-xs);
}
.wks-pricing-reg {
  font-size: 13px;
  color: rgba(255,255,255,.4);
  text-decoration: line-through;
}
.wks-hero-phone {
  font-size: 15px;
  color: rgba(255,255,255,.7);
  margin-top: var(--wks-sp-md);
}
.wks-hero-phone a {
  color: var(--wks-white);
  font-weight: 600;
  text-decoration: none;
}
.wks-hero-phone a:hover { color: var(--wks-gold); }

/* --- Review Badge --- */
.wks-review-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 16px;
  color: rgba(255,255,255,.85);
}
.wks-review-badge-score {
  font-weight: 700;
  font-size: 18px;
  color: var(--wks-white);
}
.wks-review-stars { color: #fbbf24; font-size: 16px; letter-spacing: 2px; }
.wks-review-count { color: rgba(255,255,255,.6); }

/* --- Responsive: Tablet (1024px) --- */
@media (max-width: 1024px) {
  .wks-service-grid { grid-template-columns: repeat(3,1fr); }
  .wks-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .wks-header { padding: 12px 24px; }
  .wks-header-nav { gap: 24px; }
  .wks-value-grid.wks-value-grid-4 { grid-template-columns: repeat(2,1fr); gap: 32px; }
}

/* --- Responsive: Mobile (768px) --- */
@media (max-width: 768px) {
  :root {
    --wks-sp-section: 64px;
  }
  /* Mobile menu */
  .wks-menu-toggle { display: block; }
  .wks-header-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--wks-dark);
    flex-direction: column;
    padding: 16px 24px 24px;
    gap: 0;
    border-top: 1px solid rgba(201,169,110,.15);
    box-shadow: 0 12px 32px rgba(0,0,0,.4);
  }
  .wks-header-nav.wks-nav-open { display: flex; }
  .wks-header-nav > a,
  .wks-nav-parent {
    padding: 12px 0;
    font-size: 15px;
    border-bottom: 1px solid rgba(255,255,255,.06);
    width: 100%;
  }
  .wks-nav-dropdown { width: 100%; }
  .wks-dropdown-menu {
    position: static;
    box-shadow: none;
    border: none;
    border-radius: 0;
    padding: 0 0 0 16px;
    min-width: auto;
    display: block;
  }
  .wks-dropdown-menu a {
    padding: 8px 0;
    font-size: 14px;
    border-bottom: 1px solid rgba(255,255,255,.04);
  }
  .wks-nav-dropdown::after { display: none; }
  .wks-header-cta {
    margin: 16px 0 0 0;
    text-align: center;
    width: 100%;
    display: block;
  }
  /* Layout */
  .wks-grid-2,
  .wks-grid-3,
  .wks-grid-4 { grid-template-columns: 1fr; }
  .wks-steps { flex-direction: column; gap: 32px; }
  .wks-steps::before { display: none; }
  .wks-step-num { font-size: 48px; }
  .wks-image-grid { grid-template-columns: 1fr; }
  .wks-footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .wks-guide-grid { grid-template-columns: 1fr; gap: 32px; }
  .wks-trust-badges { flex-wrap: wrap; justify-content: center; gap: 16px; }
  .wks-badge { min-width: 80px; }
  .wks-badge-number { font-size: 24px; }
  .wks-value-grid { grid-template-columns: 1fr; gap: 24px; }
  .wks-service-grid { grid-template-columns: repeat(2,1fr); }
  .wks-pain-grid { grid-template-columns: 1fr; }
  .wks-hero { min-height: 85vh; }
  .wks-btn { padding: 14px 32px; font-size: 15px; }
  .wks-card { padding: var(--wks-sp-lg); }
  .wks-pricing-grid { grid-template-columns: 1fr; max-width: 280px; margin: 0 auto var(--wks-sp-lg); }
  .wks-pricing-amount { font-size: 28px; }
  .wks-hero-promo { padding: var(--wks-sp-lg); }
}

/* --- Sanitizer Strip --- */
.wks-sanitizer-strip {
  background: linear-gradient(90deg, rgba(201,169,110,0.05), rgba(201,169,110,0.16), rgba(201,169,110,0.05));
  border-top: 1px solid rgba(201,169,110,0.45);
  border-bottom: 1px solid rgba(201,169,110,0.45);
  padding: 18px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  flex-wrap: wrap;
  text-align: center;
}
.wks-sanitizer-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--wks-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.4);
}
.wks-sanitizer-icon svg {
  width: 22px;
  height: 22px;
  stroke: var(--wks-gold);
  fill: none;
  stroke-width: 1.6;
}
.wks-sanitizer-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}
.wks-sanitizer-headline {
  font-family: var(--wks-font-serif);
  font-size: 20px;
  font-weight: 700;
  color: #111827;
  line-height: 1.2;
  letter-spacing: -0.005em;
}
.wks-sanitizer-headline em {
  font-style: normal;
  font-weight: 800;
  color: var(--wks-gold);
  letter-spacing: 0.05em;
  margin-right: 4px;
}
.wks-sanitizer-sub {
  font-size: 13px;
  color: #4b5563;
  margin-top: 3px;
}
@media (max-width: 600px) {
  .wks-sanitizer-strip { padding: 16px 20px; gap: 12px; }
  .wks-sanitizer-text { align-items: center; text-align: center; }
  .wks-sanitizer-headline { font-size: 17px; }
}

/* --- Guarantee Block --- */
.wks-guarantee-block {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 56px;
  align-items: center;
  max-width: 900px;
  margin: 0 auto;
}
.wks-guarantee-badge { display: flex; justify-content: center; }
.wks-guarantee-badge svg {
  width: 100%;
  max-width: 220px;
  height: auto;
  filter: drop-shadow(0 6px 20px rgba(11,17,32,0.12));
}
.wks-guarantee-content .wks-guarantee-eyebrow {
  display: block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--wks-gold);
  margin-bottom: 12px;
}
.wks-guarantee-content h2 {
  font-family: var(--wks-font-serif);
  font-size: clamp(28px, 3.2vw, 36px);
  font-weight: 700;
  color: #111827;
  line-height: 1.2;
  margin: 0 0 16px;
  letter-spacing: -0.01em;
}
.wks-guarantee-content .wks-guarantee-rule {
  width: 40px;
  height: 1px;
  background: var(--wks-gold);
  border: none;
  margin: 0 0 16px;
}
.wks-guarantee-content p {
  font-size: 17px;
  line-height: 1.7;
  color: #4b5563;
  margin: 0;
}
@media (max-width: 768px) {
  .wks-guarantee-block {
    grid-template-columns: 1fr;
    gap: 32px;
    text-align: center;
  }
  .wks-guarantee-content .wks-guarantee-rule { margin-left: auto; margin-right: auto; }
}

/* --- Responsive: Small Mobile (480px) --- */
@media (max-width: 480px) {
  .wks-service-grid { grid-template-columns: 1fr; }
  .wks-header { padding: 10px 16px; }
  .wks-header-logo img { height: 40px; }
}

/* --- MP Reviews widget (live Google reviews via MP Manager v1.11+) --- */
.wks-review-badge .mp-reviews-badge { display: inline-flex; align-items: center; gap: 8px; }
.wks-review-badge .mp-reviews-badge__rating { font-weight: 700; font-size: 18px; color: var(--wks-white); }
.wks-review-badge .mp-reviews-badge__stars { color: #fbbf24; font-size: 16px; letter-spacing: 2px; }
.wks-review-badge .mp-reviews-badge__count { color: rgba(255,255,255,.6); }

.mp-reviews__list { list-style: none; margin: 48px 0 0; padding: 0; display: grid; gap: 24px; }
.mp-reviews__item { position: relative; padding: 32px 28px 28px; border-left: 2px solid var(--wks-gold); background: var(--wks-white); border-radius: 6px; }
.mp-reviews__item-stars { color: #fbbf24; font-size: 16px; letter-spacing: 2px; margin-bottom: 12px; }
.mp-reviews__text { font-family: var(--wks-font-serif); font-size: 18px; line-height: 1.8; color: var(--wks-gray-900); margin: 0 0 20px; font-style: italic; }
.mp-reviews__author { font-weight: 600; color: var(--wks-gray-900); font-size: 15px; margin: 0; }

/* --- MP Reviews v1.12 refinements: kill list bullets, meta row, tighter cards --- */
.mp-reviews__list, .mp-reviews__list li { list-style: none !important; margin-left: 0; padding-left: 0; }
.mp-reviews__item { padding: 24px 24px 20px; }
.mp-reviews__text { font-size: 16px; line-height: 1.7; }
.mp-reviews__meta { display: flex; align-items: center; gap: 14px; font-size: 13px; color: var(--wks-gray-600); margin: 10px 0 0; }
.mp-reviews__link { color: var(--wks-gold); font-weight: 600; text-decoration: none; }
.mp-reviews__link:hover { text-decoration: underline; }

/* ====== MP Reviews v2 — "Charlotte keeps calling us back" carousel ====== */
.wks-reviews-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; flex-wrap: wrap; margin-bottom: 36px; }
.wks-reviews-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--wks-gold-hover); margin-bottom: 12px; }
.wks-reviews-eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--wks-gold); }
.wks-reviews-title { font-family: var(--wks-font-serif); font-size: clamp(28px, 3.5vw, 42px); font-weight: 700; line-height: 1.15; color: var(--wks-dark); white-space: nowrap; margin: 0; }
@media (max-width: 700px) { .wks-reviews-title { white-space: normal; } }
.wks-reviews-proof { text-align: right; }
.wks-reviews-proof-score { display: inline-flex; align-items: baseline; gap: 12px; font-family: var(--wks-font-serif); font-weight: 700; font-size: 42px; color: var(--wks-dark); line-height: 1; }
.wks-reviews-proof-stars { color: var(--wks-gold); font-size: 18px; letter-spacing: 4px; }
.wks-reviews-proof-sub { display: block; margin-top: 8px; font-size: 13.5px; color: var(--wks-gray-600); }
.wks-reviews-proof-sub a { color: var(--wks-gold-hover); font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(201,169,110,.45); }
.wks-reviews-proof-sub a:hover { color: var(--wks-dark); border-color: var(--wks-dark); }

.mp-reviews__list { list-style: none !important; display: flex !important; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0; padding: 4px 4px 20px; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%); }
.mp-reviews__list::-webkit-scrollbar { display: none; }
.mp-reviews__item { flex: 0 0 calc((100% - 48px) / 2.5); scroll-snap-align: start; display: flex; flex-direction: column; position: relative; background: var(--wks-white); border: 1px solid var(--wks-gray-200); border-radius: 10px; padding: 30px 28px 22px; box-shadow: 0 1px 2px rgba(11,17,32,.04), 0 12px 32px -16px rgba(11,17,32,.12); overflow: hidden; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.mp-reviews__item::before { content: ""; position: absolute; top: 0; left: 0; height: 3px; width: 48px; background: linear-gradient(90deg, var(--wks-gold), var(--wks-gold-hover)); transition: width .35s ease; }
.mp-reviews__item:hover { transform: translateY(-4px); border-color: rgba(201,169,110,.55); box-shadow: 0 2px 4px rgba(11,17,32,.05), 0 24px 48px -20px rgba(11,17,32,.22); }
.mp-reviews__item:hover::before { width: 100%; }
.mp-reviews__item::after { content: "“"; position: absolute; top: 6px; right: 18px; font-family: var(--wks-font-serif); font-size: 110px; line-height: 1; color: var(--wks-gold-light); pointer-events: none; }
.mp-reviews__item-stars { color: var(--wks-gold); font-size: 15px; letter-spacing: 3.5px; margin-bottom: 14px; }
.mp-reviews__text { font-family: var(--wks-font-serif); font-style: normal !important; font-weight: 500; font-size: 17.5px; line-height: 1.65; color: var(--wks-gray-900); margin: 0 0 18px; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.mp-reviews__text--short { font-size: 23px; line-height: 1.5; }
.mp-reviews__byline { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--wks-gray-200); }
.mp-reviews__avatar { flex: 0 0 38px; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--wks-navy); color: var(--wks-gold); font-family: var(--wks-font-serif); font-weight: 700; font-size: 15px; }
.mp-reviews__byline-text { display: flex; flex-direction: column; }
.mp-reviews__author { font-weight: 600; font-size: 14.5px; color: var(--wks-gray-900); }
.mp-reviews__meta { display: block; font-size: 12.5px; color: var(--wks-gray-500); margin-top: 3px; }
.mp-reviews__link { color: var(--wks-gold-hover); font-weight: 600; text-decoration: none; margin-left: 6px; }
.mp-reviews__link:hover { text-decoration: underline; }

.mp-rev-controls { display: flex; align-items: center; gap: 16px; margin-top: 6px; justify-content: flex-end; }
.mp-rev-btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--wks-gray-200); background: var(--wks-white); color: var(--wks-dark); display: grid; place-items: center; cursor: pointer; font-size: 17px; transition: all .2s ease; }
.mp-rev-btn:hover { background: var(--wks-dark); color: var(--wks-gold); border-color: var(--wks-dark); }
.mp-rev-dots { display: flex; gap: 7px; margin-right: auto; }
.mp-rev-dot { width: 7px; height: 7px; border-radius: 4px; background: var(--wks-gray-200); transition: all .25s ease; }
.mp-rev-dot.on { width: 22px; background: var(--wks-gold); }
@media (max-width: 960px) { .mp-reviews__item { flex-basis: 86%; } }

/* --- MP Reviews v2.1: no edge fades, condensed type, uniform quote size --- */
.mp-reviews__list { -webkit-mask-image: none; mask-image: none; padding-left: 0; padding-right: 0; }
.wks-reviews-title { font-size: clamp(26px, 3vw, 38px); }
.mp-reviews__text, .mp-reviews__text--short { font-size: 15px; line-height: 1.6; font-weight: 500; margin: 0 0 14px; }
.mp-reviews__item { padding: 22px 22px 16px; }
.mp-reviews__item-stars { font-size: 13px; letter-spacing: 3px; margin-bottom: 10px; }
.mp-reviews__item::after { font-size: 80px; top: 2px; right: 14px; }
.mp-reviews__byline { padding-top: 12px; gap: 10px; }
.mp-reviews__avatar { flex: 0 0 32px; width: 32px; height: 32px; font-size: 13px; }
.mp-reviews__author { font-size: 13.5px; }
.mp-reviews__meta { font-size: 12px; }

/* ====== WKS review seal: gold sunburst medallion, hero ====== */
.wks-seal-link { display: inline-block; text-decoration: none; margin: 10px 0 22px; }
.wks-seal { position: relative; display: inline-block; width: 200px; height: 200px; filter: drop-shadow(0 14px 28px rgba(11,17,32,.4)); transition: transform .25s ease; }
.wks-seal-link:hover .wks-seal { transform: scale(1.04) rotate(-2deg); }
.wks-seal-burst { position: absolute; inset: 0; border-radius: 50%; background: repeating-conic-gradient(#e0c690 0deg 6deg, #b8944f 6deg 12deg); box-shadow: inset 0 0 0 2px rgba(255,255,255,.25), inset 0 -6px 14px rgba(11,17,32,.35); }
.wks-seal-ring { position: absolute; inset: 13px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #24375d, #0b1120 70%); box-shadow: inset 0 0 0 2px rgba(201,169,110,.7), 0 0 0 3px rgba(11,17,32,.35); }
.wks-seal-arc { position: absolute; inset: 0; width: 100%; height: 100%; }
.wks-seal-arc-text { font-family: var(--wks-font-sans); font-weight: 700; font-size: 15px; letter-spacing: 3.5px; fill: #e0c690; }
.wks-seal-core { position: absolute; inset: 38px; border-radius: 50%; background: radial-gradient(circle at 35% 28%, #ecd9ae, #c9a96e 75%); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; box-shadow: inset 0 2px 6px rgba(255,255,255,.5), inset 0 -8px 16px rgba(11,17,32,.25), 0 0 0 2px rgba(11,17,32,.5); }
.wks-seal-score { font-family: var(--wks-font-serif); font-weight: 700; font-size: 52px; line-height: 1; color: #0b1120; }
.wks-seal-stars { color: #0b1120; font-size: 14px; letter-spacing: 2px; }
.wks-seal-ribbon { position: absolute; left: 50%; bottom: -10px; transform: translateX(-50%); white-space: nowrap; background: linear-gradient(180deg, #24375d, #0b1120); color: #e0c690; font-family: var(--wks-font-sans); font-weight: 700; font-size: 13px; letter-spacing: 2px; padding: 9px 18px; z-index: 1; box-shadow: 0 6px 14px rgba(11,17,32,.35); }
.wks-seal-ribbon::before, .wks-seal-ribbon::after { content: ""; position: absolute; top: 5px; height: 100%; width: 22px; background: #0b1120; z-index: -1; }
.wks-seal-ribbon::before { left: -13px; transform: skewY(10deg); }
.wks-seal-ribbon::after { right: -13px; transform: skewY(-10deg); }
@media (max-width: 700px) {
  .wks-seal { width: 160px; height: 160px; }
  .wks-seal-ring { inset: 11px; }
  .wks-seal-core { inset: 31px; }
  .wks-seal-score { font-size: 40px; }
  .wks-seal-arc-text { font-size: 17px; letter-spacing: 3px; }
  .wks-seal-ribbon { font-size: 11px; padding: 7px 14px; }
}

/* --- MP Reviews v2.2: 3 full cards, enforced card padding, list breathing room --- */
.mp-reviews__item, ul.mp-reviews__list li.mp-reviews__item { flex: 0 0 calc((100% - 48px) / 3); padding: 24px 26px 18px !important; }
.mp-reviews__list { padding-left: 4px; padding-right: 4px; }
@media (max-width: 960px) { .mp-reviews__item, ul.mp-reviews__list li.mp-reviews__item { flex-basis: 86%; } }

/* ====== Guarantee medallion variant + dark reviews band ====== */
.wks-guarantee-badge .wks-seal { width: 220px; height: 220px; }
.wks-guarantee-badge svg.wks-seal-arc, .wks-seal svg.wks-seal-arc { width: 100% !important; height: 100% !important; max-width: none !important; filter: none !important; }
.wks-seal svg.wks-shield-icon { width: 58px !important; height: 58px !important; max-width: none !important; filter: none !important; }
.wks-seal--guarantee .wks-seal-core { background: radial-gradient(circle at 35% 30%, #24375d, #0b1120 72%); box-shadow: inset 0 2px 6px rgba(255,255,255,.12), inset 0 -8px 16px rgba(0,0,0,.45), 0 0 0 2px rgba(201,169,110,.6); }
.wks-seal--guarantee .wks-seal-arc-text { font-size: 12px; letter-spacing: 1.5px; }
.wks-seal--guarantee .wks-seal-ribbon { background: linear-gradient(180deg, #d9bb84, #b8944f); color: #0b1120; }
.wks-seal--guarantee .wks-seal-ribbon::before, .wks-seal--guarantee .wks-seal-ribbon::after { background: #8f7340; }

/* dark band behind the reviews block only (self-contained full-bleed wrapper;
   the old .et_pb_section:has() approach darkened neighboring content) */
.wks-reviews-band { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); background: linear-gradient(180deg, #0b1120 0%, #16233f 100%); padding: 72px 0; }
.wks-reviews-band-inner { max-width: 1080px; margin: 0 auto; padding: 0 32px; }
.wks-reviews-band .wks-reviews-title { color: var(--wks-white); }
.wks-reviews-band .wks-reviews-eyebrow { color: var(--wks-gold); }
.wks-reviews-band .mp-rev-dot { background: rgba(255,255,255,.18); }
.wks-reviews-band .mp-rev-dot.on { background: var(--wks-gold); }
.wks-reviews-band .mp-rev-btn { background: transparent; border-color: rgba(255,255,255,.28); color: #e0c690; }
.wks-reviews-band .mp-rev-btn:hover { background: var(--wks-gold); color: #0b1120; border-color: var(--wks-gold); }
.wks-reviews-band .mp-reviews__item { border-color: rgba(255,255,255,.08); }

/* --- Seal ribbon: drop the fold tails, clean straight banner --- */
.wks-seal-ribbon::before, .wks-seal-ribbon::after { display: none; }

/* --- Location page map embed (gold-framed, matches wks-content-image) --- */
.wks-content-map { width: 100%; height: 480px; border-radius: 6px; overflow: hidden; border: 1px solid rgba(201,169,110,.3); }
.wks-content-map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* --- Location map callout: service-area note + phone CTA --- */
.wks-map-callout { margin-top: 16px; padding: 18px 20px; background: var(--wks-white); border: 1px solid var(--wks-gray-200); border-left: 3px solid var(--wks-gold); border-radius: 6px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.wks-map-callout-text { margin: 0; font-size: 15px; color: var(--wks-gray-900); line-height: 1.5; }
.wks-map-callout-cta { display: inline-block; background: var(--wks-gold); color: #0b1120; font-weight: 700; font-size: 14px; letter-spacing: .04em; padding: 12px 20px; border-radius: 4px; text-decoration: none; white-space: nowrap; }
.wks-map-callout-cta:hover { background: var(--wks-gold-hover); color: #0b1120; }

/* --- Image caption (Waxhaw HQ address under the van photo) --- */
.wks-image-caption { margin: 10px 0 0; font-size: 14px; text-align: center; color: var(--wks-gray-600); }
.wks-image-caption a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(201,169,110,.5); }
.wks-image-caption a:hover { color: var(--wks-gold-hover); border-color: var(--wks-gold-hover); }

/* --- Region service-area map (Leaflet) --- */
.wks-region-map { position: relative; z-index: 1; }
.wks-region-map .leaflet-tooltip { font-family: var(--wks-font-sans); font-weight: 600; font-size: 12.5px; color: var(--wks-dark); border: 1px solid var(--wks-gold); }
.wks-region-map .leaflet-container { font-family: var(--wks-font-sans); }

/* --- Rug drop-off savings panel (below the 3 steps) --- */
.wks-dropoff-panel { margin: 44px auto 0; max-width: 700px; background: var(--wks-white); border: 1px solid var(--wks-gray-200); border-left: 3px solid var(--wks-gold); border-radius: 8px; padding: 30px 32px; text-align: center; box-shadow: 0 12px 32px -16px rgba(11,17,32,.12); }
.wks-dropoff-title { font-family: var(--wks-font-serif); font-size: 24px; font-weight: 700; color: var(--wks-dark); margin: 0 0 12px; }
.wks-dropoff-text { font-size: 15px; line-height: 1.7; color: var(--wks-gray-600); margin: 0 0 14px; }
.wks-dropoff-panel .wks-map-callout-cta { margin-top: 6px; }

/* --- Map stack: keep map + footnote + callout together as one grid child --- */
.wks-map-stack { display: flex; flex-direction: column; }
.wks-map-footnote { margin: 12px 0 0; text-align: center; font-family: var(--wks-font-sans); font-size: 15px; font-weight: 400; color: var(--wks-gray-900); line-height: 1.5; }
.wks-map-stack .wks-map-callout { margin-top: 16px; }

/* --- Trust badges on dark hero: readable labels (light pages keep gray) --- */
.wks-trust-badges--dark .wks-badge-label { color: var(--wks-gray-600); } /* section reverted to cream after band fix */

/* --- Pricing cards: navy glass so gold prices actually read (was white-glass
       roulette over the hero video) --- */
.wks-pricing-card { background: rgba(11,17,32,.55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(201,169,110,.35); }
.wks-pricing-card:hover { background: rgba(11,17,32,.72); border-color: var(--wks-gold); }
.wks-pricing-label { color: rgba(255,255,255,.85); }
.wks-pricing-reg { color: rgba(255,255,255,.55); }

/* --- Sanitizer strip: FREE as a navy-on-gold chip (gold text fails contrast
       on the cream band; navy-on-gold passes AAA and matches CTA language) --- */
.wks-sanitizer-headline em { font-style: normal; display: inline-block; background: var(--wks-gold); color: #0b1120; font-weight: 700; font-size: .7em; letter-spacing: .1em; padding: 4px 13px; border-radius: 999px; vertical-align: middle; margin-right: 8px; transform: translateY(-1px); }

/* --- Sanitizer strip: icon removed, both text lines centered --- */
.wks-sanitizer-icon { display: none; }
.wks-sanitizer-text { text-align: center; }
.wks-sanitizer-headline, .wks-sanitizer-sub { display: block; text-align: center; }

/* --- Pricing cards: glass to 80% so contrast passes AA on the WORST video
       frame, not the average one (gold 4.7:1, labels 8:1 over pure white) --- */
.wks-pricing-card { background: rgba(11,17,32,.8); }
.wks-pricing-card:hover { background: rgba(11,17,32,.88); }
.wks-pricing-reg { color: rgba(255,255,255,.65); }

/* --- Mobile: slightly larger header logo; tile page image crops to the tool --- */
@media (max-width: 768px) {
  .wks-content-image--anchor-right-mobile { object-position: right center; }
}
@media (max-width: 480px) {
  .wks-header-logo img { height: 50px; }
}

/* --- Pricing amount: a smidge lighter than brand bronze (medallion light tone) --- */
.wks-pricing-amount { color: #d9bb84; }

/* --- Mobile CTA bar (replaces vcita widget on phones; desktop keeps vcita) --- */
.wks-mobile-cta { display: none; position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 99999; gap: 12px; align-items: center; padding-bottom: env(safe-area-inset-bottom); }
.wks-mobile-cta-phone { flex: 0 0 56px; width: 56px; height: 56px; border-radius: 50%; background: var(--wks-gold); display: grid; place-items: center; box-shadow: 0 8px 24px rgba(11,17,32,.35); }
.wks-mobile-cta-phone svg { width: 24px; height: 24px; stroke: #0b1120; fill: none; stroke-width: 2; }
.wks-mobile-cta-btn { flex: 1; background: var(--wks-gold); color: #0b1120; text-align: center; font-family: var(--wks-font-sans); font-weight: 700; font-size: 17px; padding: 16px 20px; border-radius: 999px; text-decoration: none; box-shadow: 0 8px 24px rgba(11,17,32,.35); }
.wks-mobile-cta-btn:active { background: var(--wks-gold-hover); }
@media (max-width: 768px) {
  /* redundant menu CTA out (persistent bar covers it) */
  .wks-header .wks-header-cta-wrap, .wks-header-nav .wks-header-cta-wrap { display: none !important; }
  /* vcita widget out, our bar in */
  [id*="livesite"], [class*="livesite"], [class*="vcita"], iframe[src*="vcita"] { display: none !important; }
  .wks-mobile-cta { display: flex; }
}

/* --- Mobile: 4-up value grid stacks single column (tablet keeps 2x2;
       the double-class tablet rule was out-ranking the phone 1fr rule) --- */
@media (max-width: 768px) {
  .wks-value-grid.wks-value-grid-4 { grid-template-columns: 1fr; gap: 28px; }
}

/* --- Service-page matched-review sections --- */
.wks-match-reviews-title { font-family: var(--wks-font-serif); font-size: clamp(26px, 3vw, 36px); font-weight: 700; color: var(--wks-dark); text-align: center; margin: 0 0 32px; }

/* --- Mobile menu: full-screen overlay; header (logo + X) floats above it,
       persistent phone + Request A Quote bar stays on top of everything --- */
@media (max-width: 768px) {
  .wks-header { position: relative; z-index: 9500; }
  .wks-header-nav.wks-nav-open { position: fixed; top: 0; left: 0; right: 0; bottom: 0; padding: 96px 24px 150px; overflow-y: auto; z-index: 9000; border-top: none; }
  body.wks-menu-open { overflow: hidden; }
}

/* --- Mobile menu: logo + close button float above the full-screen overlay
       (the nav is a CHILD of the header, so the header z-index alone loses) --- */
@media (max-width: 768px) {
  .wks-header-logo, .wks-menu-toggle { position: relative; z-index: 9600; }
}

/* --- Mobile: footer clearance for the fixed CTA bar. The bar floats over
       the last ~90px of every page, hiding the Terms/Privacy bottom bar.
       Mobile only — desktop has no fixed bar. --- */
@media (max-width: 768px) {
  .wks-footer-bottom-bar { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
}
