/* === Echo Clone Child v5 — consolidated overrides === */

/* CRITICAL: do NOT use overflow-x:hidden on html/body — it breaks `position:sticky` for ALL descendants
   (creates a scroll container; sticky elements then stick to that container, not the viewport).
   Use `overflow-x:clip` instead — it clips the same but does NOT create a scroll container. */
html, body { overflow-x: clip; overflow-y: visible; max-width: 100vw; }
/* Belt-and-suspenders: ensure NO ancestor of the sticky nav has overflow that breaks it */
body, body > div, #page, main, .site, .site-content { overflow: visible !important; }
body > header.site-header, body > footer.site-footer { display: none !important; }

/* === 1. Container width 1472px === */
.container { width: 100%; max-width: 1472px !important; margin-left: auto; margin-right: auto; padding-left: 1.5rem; padding-right: 1.5rem; }
@media (min-width: 1280px) { .container { padding-left: 2rem; padding-right: 2rem; } }

/* === 2. Force Tailwind colors === */
.text-white { color: #fff !important; }
.text-black { color: #000 !important; }
.text-gray-600 { color: #4b5563 !important; }
.text-gray-500 { color: #6b7280 !important; }
.text-gray-400 { color: #9ca3af !important; }
.text-white\/90 { color: rgba(255,255,255,0.9) !important; }
.text-white\/80 { color: rgba(255,255,255,0.8) !important; }
.text-white\/70 { color: rgba(255,255,255,0.7) !important; }
.text-white\/60 { color: rgba(255,255,255,0.6) !important; }
.text-white\/40 { color: rgba(255,255,255,0.4) !important; }
.text-\[oklch\(0\.22_0\.08_262\)\] { color: oklch(0.22 0.08 262) !important; }
.text-\[oklch\(0\.48_0\.22_25\)\] { color: oklch(0.48 0.22 25) !important; }
.text-\[oklch\(0\.65_0\.18_25\)\] { color: oklch(0.65 0.18 25) !important; }
.text-\[\#25D366\] { color: #25D366 !important; }
.bg-\[oklch\(0\.22_0\.08_262\)\] { background-color: oklch(0.22 0.08 262) !important; }
.bg-\[oklch\(0\.48_0\.22_25\)\] { background-color: oklch(0.48 0.22 25) !important; }
.bg-\[oklch\(0\.985_0\.003_75\)\] { background-color: oklch(0.985 0.003 75) !important; }
.bg-\[oklch\(0\.97_0\.01_262\)\] { background-color: oklch(0.97 0.01 262) !important; }
.bg-white\/10 { background-color: rgba(255,255,255,0.1) !important; }
.border-\[oklch\(0\.65_0\.18_25\)\] { border-color: oklch(0.65 0.18 25) !important; }

/* === 3. Typography === */
body.echo-body { font-family: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: #1f2937; line-height: 1.65; }
.font-serif { font-family: "Playfair Display", Georgia, serif !important; }
.font-mono, .tabular-nums { font-family: "JetBrains Mono", ui-monospace, "SF Mono", monospace !important; }
h1, h2, h3 { font-family: "Playfair Display", Georgia, serif; }
h1:not([class*="text-"]) { color: oklch(0.22 0.08 262); }
h2:not([class*="text-"]) { color: oklch(0.22 0.08 262); }
h3:not([class*="text-"]) { color: oklch(0.22 0.08 262); }
p:not([class*="text-"]) { color: #4b5563; line-height: 1.7; }
section.min-h-\[90vh\] h1, main h1.font-serif { font-size: 3.75rem !important; line-height: 1.1 !important; }
@media (max-width: 768px) { section.min-h-\[90vh\] h1, main h1.font-serif { font-size: 2.5rem !important; } }

/* === 4. Sticky nav 64px + scroll shadow === */
nav.sticky, .echo-primary-nav {
  position: sticky !important; top: 0 !important; z-index: 50 !important;
  transition: box-shadow .3s ease, background-color .3s ease;
}
nav.sticky .h-16 { height: 64px !important; min-height: 64px; max-height: 64px; padding: 0 !important; }
nav.sticky .container { padding-top: 0 !important; padding-bottom: 0 !important; }
nav.sticky.is-scrolled, nav.sticky[data-scrolled="1"] {
  box-shadow: 0 4px 20px rgba(0,0,0,.08) !important;
  background-color: rgba(255,255,255,0.98) !important;
  backdrop-filter: blur(8px);
}

/* Nav chevron inline */
nav button svg, nav a svg { display: inline-block !important; vertical-align: middle !important; flex-shrink: 0; }
nav button.flex { display: inline-flex !important; align-items: center !important; gap: 0.25rem !important; }

/* === 5. Hide mobile menu toggle on desktop === */
@media (min-width: 1024px) {
  button[aria-label="Toggle mobile menu"], .echo-mobile-toggle, .lg\:hidden { display: none !important; }
  .hidden.lg\:flex { display: flex !important; }
}

/* === 6. Top utility bar email/phone === */
div[data-loc*="Navigation.tsx:168"] a, div[data-loc*="Navigation.tsx:158"] a { color: rgba(255,255,255,0.85) !important; }
div[data-loc*="Navigation.tsx:168"] a:hover, div[data-loc*="Navigation.tsx:158"] a:hover { color: #fff !important; }
div[data-loc*="Navigation.tsx"] a span.text-\[\#25D366\] { color: #25D366 !important; }

/* === 7. Main nav links/buttons reset === */
nav .lg\:flex.items-center.gap-1 a,
nav .lg\:flex.items-center.gap-1 button {
  color: oklch(0.22 0.08 262) !important;
  font-weight: 600;
  text-decoration: none;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}
nav .lg\:flex.items-center.gap-1 a.text-\[oklch\(0\.48_0\.22_25\)\],
nav .lg\:flex.items-center.gap-1 a:hover,
nav .lg\:flex.items-center.gap-1 button:hover { color: oklch(0.48 0.22 25) !important; background: transparent !important; }
nav .lg\:flex.items-center.gap-1 button:focus,
nav .lg\:flex.items-center.gap-1 button:focus-visible,
nav .lg\:flex.items-center.gap-1 button:active { outline: none !important; box-shadow: none !important; background: transparent !important; border: none !important; }

/* === 8. Mega menu — explicit grid layout === */
.echo-mega-menu {
  display: none;
  position: absolute !important; top: 100% !important; left: 50% !important;
  transform: translateX(-50%) !important;
  background: #fff !important; border: 1px solid #e5e7eb !important;
  border-radius: 0 0 0.75rem 0.75rem !important;
  box-shadow: 0 25px 50px rgba(0,0,0,0.15) !important; z-index: 50 !important; margin-top: 0 !important;
}
.relative.group:hover .echo-mega-menu, .echo-mega-menu:hover, .echo-mega-menu[data-open="1"] { display: block !important; }

.echo-mega-menu[data-mega="services"] { width: 1280px !important; max-width: 95vw !important; }
.echo-mega-menu[data-mega="services"] > .grid {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 2.5rem !important; padding: 2.5rem !important;
}
/* FOR YOUR PROFILE row — vertical single column */
.echo-mega-menu[data-mega="services"] .border-t.grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.5rem !important;
  padding: 1.5rem 2.5rem !important;
  border-top: 1px solid #e5e7eb !important;
  background-color: oklch(0.985 0.003 75) !important;
}
.echo-mega-menu[data-mega="services"] .border-t.grid > div.col-span-4 {
  grid-column: 1 !important; margin-bottom: 0.25rem !important;
}
.echo-mega-menu[data-mega="services"] .border-t.grid > div.col-span-4 h4 { margin-bottom: 0 !important; }
.echo-mega-menu[data-mega="services"] .border-t.grid > a { padding: 0.5rem 0 !important; display: block !important; }

/* Bottom status bar */
.echo-mega-menu[data-mega="services"] .border-t:not(.grid) {
  border-top: 1px solid #e5e7eb !important;
  padding: 1rem 2.5rem !important;
  background-color: oklch(0.985 0.003 75) !important;
  display: flex !important; align-items: center !important; justify-content: space-between !important;
  font-size: 0.75rem !important; color: #6b7280 !important;
}
.echo-mega-menu[data-mega="services"] .border-t:not(.grid) a {
  background-color: oklch(0.22 0.08 262) !important; color: #fff !important;
  padding: 0.5rem 1rem !important; border-radius: 0.375rem !important;
  font-weight: 600 !important; font-size: 0.875rem !important;
}

.echo-mega-menu[data-mega="resources"] { width: 720px !important; max-width: 95vw !important; }
.echo-mega-menu[data-mega="resources"] .grid {
  display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 1rem !important;
}

/* Mega menu typography */
.echo-mega-menu h4 { font-size: 0.7rem !important; font-weight: 700 !important; color: oklch(0.48 0.22 25) !important; text-transform: uppercase !important; letter-spacing: 0.08em !important; margin: 0 0 1rem 0 !important; }
.echo-mega-menu ul { list-style: none !important; padding: 0 !important; margin: 0 !important; display: block !important; }
.echo-mega-menu li { margin-bottom: 0.875rem !important; display: block !important; width: 100% !important; }
.echo-mega-menu a {
  display: block !important; text-decoration: none !important;
  color: oklch(0.22 0.08 262) !important; font-weight: 600 !important;
  font-size: 0.875rem !important; line-height: 1.35;
}
.echo-mega-menu a:hover { color: oklch(0.48 0.22 25) !important; }
.echo-mega-menu a > span { display: block !important; font-weight: 400 !important; font-size: 0.72rem !important; color: #6b7280 !important; margin-top: 0.125rem !important; line-height: 1.4; }

/* === 9. Section padding === */
section.py-20 { padding-top: 5rem; padding-bottom: 5rem; }
section.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
section.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }

/* === 10. Buttons === */
a.btn-primary, button.btn-primary, .btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  background-color: oklch(0.48 0.22 25) !important; color: #fff !important;
  padding: 0.875rem 1.75rem; border-radius: 0.375rem; font-weight: 600;
  text-decoration: none; transition: background-color .2s, transform .2s;
  border: 2px solid transparent;
}
a.btn-primary:hover, button.btn-primary:hover { background-color: oklch(0.42 0.22 25) !important; transform: translateY(-1px); }

a.btn-secondary, button.btn-secondary, .btn-secondary {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  background-color: transparent !important; color: oklch(0.22 0.08 262) !important;
  padding: 0.875rem 1.75rem; border-radius: 0.375rem; font-weight: 600;
  text-decoration: none; transition: all .2s; border: 2px solid oklch(0.22 0.08 262) !important;
}
a.btn-secondary:hover, button.btn-secondary:hover {
  background-color: oklch(0.22 0.08 262) !important; color: #fff !important; border-color: oklch(0.22 0.08 262) !important;
}

a.btn-white, button.btn-white {
  background-color: #fff !important; color: oklch(0.22 0.08 262) !important;
  border: 2px solid #fff !important; padding: 0.875rem 1.75rem !important;
  border-radius: 0.375rem !important; font-weight: 600 !important;
  text-decoration: none !important; display: inline-flex !important;
  align-items: center !important; gap: 0.5rem !important; transition: all .2s;
}
a.btn-white:hover, button.btn-white:hover { background: transparent !important; color: #fff !important; border-color: #fff !important; }

/* === 11. Panel buttons stay red (Explore Offshore / Explore China Entry) === */
[data-echo-panel] a.bg-\[oklch\(0\.48_0\.22_25\)\],
section.min-h-\[90vh\] a[href*="offshore"],
section.min-h-\[90vh\] a[href*="china-market-entry"],
section.min-h-\[90vh\] a.bg-\[oklch\(0\.48_0\.22_25\)\] {
  background-color: oklch(0.48 0.22 25) !important;
  color: #fff !important;
  border: 2px solid oklch(0.48 0.22 25) !important;
}
[data-echo-panel] a.bg-\[oklch\(0\.48_0\.22_25\)\]:hover,
section.min-h-\[90vh\] a.bg-\[oklch\(0\.48_0\.22_25\)\]:hover {
  background-color: oklch(0.42 0.22 25) !important; border-color: oklch(0.42 0.22 25) !important;
}

/* China Entry panel internal padding (match Offshore card) */
[data-echo-panel="china"] { padding: 1.5rem !important; }
[data-echo-panel="china"] .space-y-3 { display: flex; flex-direction: column; gap: 0.75rem; }
[data-echo-panel="china"] ul { list-style: none; padding: 0; }
[data-echo-panel="china"] ul li { line-height: 1.6; }

/* Hero secondary CTA — use .btn-white (handles itself) or fallback for btn-secondary */
section.min-h-\[90vh\] a.btn-secondary {
  background-color: transparent !important;
  color: #fff !important;
  border: 2px solid #fff !important;
}
section.min-h-\[90vh\] a.btn-secondary:hover { background-color: #fff !important; color: oklch(0.22 0.08 262) !important; }

/* === 12. Section tag chip === */
.section-tag {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background-color: oklch(0.48 0.22 25 / 0.1); color: oklch(0.48 0.22 25);
  padding: 0.5rem 1rem; border-radius: 9999px;
  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
}

/* === 13. Service grid card hover (group → red icon + white svg) === */
.card-service, main section .grid > div.group, main section .grid > a.group {
  transition: transform .3s ease, box-shadow .3s ease; cursor: pointer;
}
.card-service:hover, main section .grid > div.group:hover, main section .grid > a.group:hover {
  transform: translateY(-4px); box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}
.bg-\[oklch\(0\.97_0\.01_262\)\] { background-color: oklch(0.97 0.01 262); transition: background-color .25s ease; }
.text-\[oklch\(0\.28_0\.09_262\)\] { color: oklch(0.28 0.09 262); transition: color .25s ease; }
.group:hover .group-hover\:bg-\[oklch\(0\.48_0\.22_25\)\],
.group:hover [class*="group-hover\:bg-\[oklch"] { background-color: oklch(0.48 0.22 25) !important; }
.group:hover .group-hover\:text-white,
.group:hover [class*="group-hover\:text-white"] { color: #fff !important; }
.group:hover .bg-\[oklch\(0\.97_0\.01_262\)\] { background-color: oklch(0.48 0.22 25) !important; }
.group:hover .bg-\[oklch\(0\.97_0\.01_262\)\] svg,
.group:hover .text-\[oklch\(0\.28_0\.09_262\)\] { color: #fff !important; stroke: #fff !important; }

/* === 14. FAQ — remove ">" chevron, use +/− === */
details summary::-webkit-details-marker, details summary::marker { display: none !important; content: '' !important; }
details summary::after { content: '+' !important; font-size: 1.5rem; color: oklch(0.22 0.08 262); margin-left: auto; transition: transform .2s; font-weight: 300; }
details[open] summary::after { content: '−' !important; }
details summary { list-style: none !important; cursor: pointer; display: flex; align-items: center; justify-content: space-between; }
details summary > svg.lucide-chevron-right, details summary > svg.chevron, details summary > .chevron { display: none !important; }
details summary svg[viewBox*="24"] { display: none !important; }

/* === 15. Bottom CTA red strip: all anchors white bg navy text === */
section.bg-\[oklch\(0\.48_0\.22_25\)\] a, section[class*="bg-\\[oklch\\(0\\.48_0\\.22_25\\)\\]"] a {
  background-color: #fff !important; color: oklch(0.22 0.08 262) !important;
  border: 2px solid #fff !important; padding: 0.875rem 1.75rem !important;
  border-radius: 0.375rem !important; font-weight: 600 !important;
  text-decoration: none !important; display: inline-flex !important;
  align-items: center !important; gap: 0.5rem !important; transition: all .2s;
}
section.bg-\[oklch\(0\.48_0\.22_25\)\] a:hover,
section[class*="bg-\\[oklch\\(0\\.48_0\\.22_25\\)\\]"] a:hover {
  background-color: transparent !important; color: #fff !important; border-color: #fff !important;
}
section.bg-\[oklch\(0\.48_0\.22_25\)\] a:nth-of-type(2),
section[class*="bg-\\[oklch\\(0\\.48_0\\.22_25\\)\\]"] a:nth-of-type(2) {
  background-color: transparent !important; color: #fff !important; border: 2px solid #fff !important;
}
section.bg-\[oklch\(0\.48_0\.22_25\)\] a:nth-of-type(2):hover,
section[class*="bg-\\[oklch\\(0\\.48_0\\.22_25\\)\\]"] a:nth-of-type(2):hover {
  background-color: #fff !important; color: oklch(0.48 0.22 25) !important;
}

/* === 16. Footer — wider columns, no duplicate '›' chevrons === */
footer .grid { gap: 3rem !important; }
footer .grid > div { padding: 0 0.25rem; }
footer h4, footer .text-white.font-bold { margin-bottom: 1.25rem !important; font-size: 1.125rem !important; }
footer ul { padding: 0; list-style: none; }
footer ul li { margin-bottom: 0.875rem !important; line-height: 1.5; }
/* Source anchors already include the '›' chevron — don't double up */
.echo-site-footer h4 { color: #fff !important; }
.echo-site-footer a { color: rgba(255,255,255,0.75) !important; transition: color .2s; }
.echo-site-footer a:hover { color: #fff !important; }
footer a { color: rgba(255,255,255,0.75) !important; }
footer a:hover { color: #fff !important; }
footer a[href*="privacy"], footer a[href*="terms"], footer .border-t a { color: rgba(255,255,255,0.6) !important; }
footer a[href*="privacy"]:hover, footer a[href*="terms"]:hover { color: #fff !important; }

/* === 17. Scroll-triggered fade-in (only on scroll into view, no safety timeout) === */
.animate-on-scroll { opacity: 0; transform: translateY(40px); transition: opacity 1s ease, transform 1s ease; }
.animate-on-scroll.visible { opacity: 1 !important; transform: none !important; }
main section.echo-fade-section { opacity: 0 !important; transform: translateY(40px) !important; transition: opacity 1s cubic-bezier(.22,.61,.36,1), transform 1s cubic-bezier(.22,.61,.36,1); }
main section.echo-fade-section.echo-visible { opacity: 1 !important; transform: none !important; }
main section:not(.echo-fade-section) { opacity: 1; }

/* Sections with a colored background must NOT fade at section-level —
   the bg would fade through to body white. Let inner .animate-on-scroll
   children handle the motion instead (they're transparent, no reveal). */
main section.echo-fade-section[class*="bg-["],
main section.echo-fade-section[style*="background"] {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

html { scroll-behavior: smooth; }
.lucide { display: inline-block; vertical-align: middle; }

/* === 18. WhatsApp floating button — pulse halo + circle === */
button[aria-label="Chat on WhatsApp"], .echo-wa-fab {
  position: fixed !important; bottom: 1.5rem !important; right: 1.5rem !important;
  z-index: 40 !important; width: 56px !important; height: 56px !important;
  border-radius: 9999px !important; background-color: #25D366 !important;
  border: none !important; padding: 0 !important;
  display: flex !important; align-items: center; justify-content: center;
  box-shadow: 0 4px 16px rgba(37,211,102,0.4);
  transition: transform .2s, box-shadow .2s; cursor: pointer; outline: none !important;
}
button[aria-label="Chat on WhatsApp"]:hover, .echo-wa-fab:hover {
  transform: scale(1.1); box-shadow: 0 6px 20px rgba(37,211,102,0.55);
}
button[aria-label="Chat on WhatsApp"] svg {
  width: 28px !important; height: 28px !important;
  color: #fff !important; stroke: #fff !important; fill: currentColor;
}
button[aria-label="Chat on WhatsApp"]::before, button[aria-label="Chat on WhatsApp"]::after,
.echo-wa-fab::before, .echo-wa-fab::after {
  content: ''; position: absolute; inset: 0; border-radius: 9999px;
  background-color: rgba(37,211,102,0.6); z-index: -1;
  animation: echo-wa-pulse 2s ease-out infinite; pointer-events: none;
}
button[aria-label="Chat on WhatsApp"]::after, .echo-wa-fab::after { animation-delay: 1s; }
@keyframes echo-wa-pulse {
  0%   { transform: scale(1);   opacity: .6; }
  70%  { transform: scale(1.7); opacity: 0;  }
  100% { transform: scale(1.7); opacity: 0;  }
}
.fixed.bottom-24[class*="bg-white"][class*="rounded-2xl"],
div[data-loc*="WhatsAppButton.tsx:53"] { display: none !important; }
.echo-wa-tooltip {
  position: fixed; bottom: 5.5rem; right: 1.5rem; z-index: 41;
  background: #fff; color: #1f2937; padding: 0.875rem 1.125rem;
  border-radius: 0.5rem; box-shadow: 0 10px 30px rgba(0,0,0,.15);
  max-width: 260px; font-size: 0.875rem; line-height: 1.5;
  opacity: 0; pointer-events: none; transform: translateY(8px);
  transition: opacity .25s, transform .25s;
}
.echo-wa-tooltip.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.echo-wa-tooltip::after { content: ''; position: absolute; bottom: -8px; right: 28px; width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-top: 8px solid #fff; }
.echo-wa-tooltip button.close { position: absolute; top: 6px; right: 6px; background: rgba(0,0,0,.05); border: 0; width: 22px; height: 22px; border-radius: 9999px; cursor: pointer; line-height: 1; font-size: 14px; }

/* === 19. Service detail list spacing === */
.echo-service-body ul li, main article ul li, .prose ul li { margin-bottom: 0.75rem !important; line-height: 1.6 !important; }
.echo-service-body ul, main article ul, .prose ul { margin-bottom: 1.75rem !important; }

/* === v6 — 20. Blog category color chips === */
.echo-cat-chip {
  display: inline-block;
  font-size: 0.75rem; font-weight: 700;
  padding: 0.25rem 0.625rem;
  border-radius: 0.375rem;
  letter-spacing: 0.02em;
  white-space: nowrap;
  line-height: 1.3;
}
.echo-cat-chip.cat-blue   { background: #DBEAFE; color: #1E40AF; }
.echo-cat-chip.cat-purple { background: #EDE9FE; color: #6D28D9; }
.echo-cat-chip.cat-yellow { background: #FEF3C7; color: #92400E; }
.echo-cat-chip.cat-amber  { background: #FEF3C7; color: #92400E; }
.echo-cat-chip.cat-green  { background: #D1FAE5; color: #065F46; }
.echo-cat-chip.cat-orange { background: #FED7AA; color: #9A3412; }
.echo-cat-chip.cat-red    { background: oklch(0.48 0.22 25); color: #fff; }

/* Hero variant — slightly darker bg for visibility on dark blue hero */
.echo-blog-hero .echo-cat-chip { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.375rem 0.75rem; }

/* Inline chip in sidebar Related Articles (no bg pill, just colored text) */
.echo-cat-chip-inline { display: inline-block; font-size: 0.7rem; }
.echo-cat-chip-inline.cat-blue   { color: #1E40AF; }
.echo-cat-chip-inline.cat-purple { color: #6D28D9; }
.echo-cat-chip-inline.cat-yellow,
.echo-cat-chip-inline.cat-amber  { color: #92400E; }
.echo-cat-chip-inline.cat-green  { color: #065F46; }
.echo-cat-chip-inline.cat-orange { color: #9A3412; }
.echo-cat-chip-inline.cat-red    { color: oklch(0.48 0.22 25); }

/* === v6 — 21. Sticky blog sidebar === */
.echo-blog-body .grid { align-items: start; }
.echo-blog-sidebar {
  position: sticky;
  top: 88px;
  align-self: start;
}
@media (max-width: 1023px) { .echo-blog-sidebar { position: static; } }

/* === v6 — 22. Hide inline duplicate sidebar that came from imported content === */
.echo-blog-body article > aside,
.echo-blog-body article .lg\:col-span-1,
.echo-blog-body article > .grid,
.echo-blog-body article .sticky.top-24,
.prose > aside { display: none !important; }

/* === v6 — 23. Main nav hover effects === */
nav.echo-main-nav a:not(.btn-primary):not(.btn-secondary):not(.btn-white),
nav.echo-sticky-nav a:not(.btn-primary):not(.btn-secondary):not(.btn-white),
header nav a:not(.btn-primary):not(.btn-secondary):not(.btn-white) {
  position: relative;
  transition: color .18s ease;
}
nav.echo-main-nav a:not(.btn-primary):not(.btn-secondary):not(.btn-white):hover,
nav.echo-sticky-nav a:not(.btn-primary):not(.btn-secondary):not(.btn-white):hover,
header nav a:not(.btn-primary):not(.btn-secondary):not(.btn-white):hover {
  color: oklch(0.48 0.22 25);
}
/* Underline animation on top nav (desktop) — applies to top-level nav <a> with arrow */
header nav > div > a:not(.btn-primary):not(.btn-secondary):not(.btn-white)::after,
header nav button[aria-haspopup]::after,
.echo-top-nav-link::after {
  content: '';
  position: absolute;
  left: 50%; right: 50%; bottom: -6px;
  height: 2px;
  background: oklch(0.48 0.22 25);
  transition: left .22s ease, right .22s ease;
}
header nav > div > a:not(.btn-primary):not(.btn-secondary):not(.btn-white):hover::after,
header nav button[aria-haspopup]:hover::after,
.echo-top-nav-link:hover::after,
.echo-top-nav-link.is-active::after {
  left: 0; right: 0;
}

/* === v6 — 24. Breadcrumb: no truncation === */
.echo-breadcrumb .container { white-space: normal; }
.echo-crumb-current {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  max-width: none !important;
  display: inline !important;
}

/* === v6 — 25. Blog archive tab pills (visual only) === */
.echo-tab-pill {
  display: inline-flex; align-items: center; gap: 0.375rem;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  background: #fff;
  border: 1px solid oklch(0.92 0.005 75);
  font-size: 0.875rem;
  color: oklch(0.22 0.08 262);
  cursor: pointer;
  transition: all .18s ease;
}
.echo-tab-pill:hover { border-color: oklch(0.48 0.22 25); color: oklch(0.48 0.22 25); }
.echo-tab-pill.is-active {
  background: oklch(0.22 0.08 262);
  border-color: oklch(0.22 0.08 262);
  color: #fff;
}
.echo-tab-count { font-size: 0.75rem; color: inherit; opacity: 0.7; }
.echo-tab-pill.is-active .echo-tab-count { opacity: 0.85; }

/* === v6 — 26. Blog card polish === */
.echo-blog-card-featured h3 { font-size: 1.25rem !important; line-height: 1.3 !important; }
.echo-blog-card h3 { font-size: 0.875rem !important; line-height: 1.35 !important; transition: color .15s; }
.echo-blog-card:hover h3 { color: oklch(0.48 0.22 25); }
.echo-blog-card-featured:hover { transform: translateY(-2px); }
.echo-blog-card-featured, .echo-blog-card { transition: box-shadow .2s, transform .2s; }

/* === v6 — 27. Section tag (Featured Guides / All Resources label) === */
.section-tag {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.375rem 0.875rem 0.375rem 0.5rem;
  border-radius: 9999px;
  background: oklch(0.96 0.015 25);
  color: oklch(0.48 0.22 25);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.section-tag::before {
  content: '';
  width: 1.5rem; height: 2px;
  background: oklch(0.48 0.22 25);
  display: inline-block;
}

/* === v6 — 28. Blog body article width balance === */
.echo-blog-body .prose { font-size: 1rem; line-height: 1.7; color: oklch(0.3 0.02 262); }
.echo-blog-body .prose h2 { font-family: var(--font-serif, 'Playfair Display', Georgia, serif); font-size: 1.875rem; margin-top: 2.5rem; margin-bottom: 1rem; color: oklch(0.22 0.08 262); font-weight: 700; }
.echo-blog-body .prose h3 { font-family: var(--font-serif, 'Playfair Display', Georgia, serif); font-size: 1.375rem; margin-top: 2rem; margin-bottom: 0.75rem; color: oklch(0.22 0.08 262); font-weight: 700; }
.echo-blog-body .prose p { margin-bottom: 1.125rem; }
.echo-blog-body .prose ul { padding-left: 1.25rem; }
.echo-blog-body .prose strong { color: oklch(0.22 0.08 262); }
.echo-blog-body .prose a { color: oklch(0.48 0.22 25); }

/* v7 — REMOVED v6.1 grid-killer rules.
   single.php now renders the source-embedded layout (outer 4-col grid + article + 4 inline modules)
   and only swaps the source <aside> for our custom sidebar. Inner grids (2-col Related Services,
   3-col Continue Reading, etc.) must stay alive. */

/* === v7 — Blog sidebar cards (source-faithful) === */
.echo-sb-card {
  background: #fff;
  border-radius: 0.75rem;
  padding: 1.5rem;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  border: 1px solid oklch(0.94 0.005 75);
}

/* 1. Need Expert Help — light lavender/blue bg, dark text */
.echo-sb-help {
  background: oklch(0.97 0.015 262) !important;
  border-color: oklch(0.93 0.02 262) !important;
}
.echo-sb-help-title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.5rem; font-weight: 700;
  color: oklch(0.22 0.08 262);
  margin: 0 0 0.625rem;
  line-height: 1.2;
}
.echo-sb-help-desc {
  color: #4b5563;
  font-size: 0.9375rem;
  line-height: 1.55;
  margin: 0 0 1.25rem;
}
.echo-sb-help-btn {
  display: block; text-align: center;
  background: oklch(0.48 0.22 25);
  color: #fff !important;
  font-weight: 600;
  padding: 0.875rem 1rem;
  border-radius: 0.5rem;
  text-decoration: none !important;
  transition: background .15s;
  font-size: 0.9375rem;
}
.echo-sb-help-btn:hover { background: oklch(0.42 0.22 25); }
.echo-sb-help-divider {
  height: 1px;
  background: oklch(0.85 0.02 262);
  margin: 1rem 0 0.875rem;
}
.echo-sb-wa {
  display: flex; align-items: center; justify-content: center;
  gap: 0.5rem;
  color: #25D366 !important;
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none !important;
}
.echo-sb-wa svg { width: 1.125rem; height: 1.125rem; flex-shrink: 0; }

/* 2/3. Generic heading w/ icon */
.echo-sb-heading {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: oklch(0.22 0.08 262);
  margin: 0 0 1.125rem;
  display: flex; align-items: center;
  gap: 0.625rem;
  line-height: 1.2;
}
.echo-sb-icon {
  width: 1.25rem; height: 1.25rem;
  color: oklch(0.48 0.22 25);
  flex-shrink: 0;
}

/* Related Services list */
.echo-sb-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 0.875rem;
}
.echo-sb-list li a {
  display: flex; align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.9375rem;
  color: oklch(0.22 0.08 262);
  text-decoration: none !important;
  transition: color .15s;
  line-height: 1.4;
}
.echo-sb-list li a:hover { color: oklch(0.48 0.22 25); }
.echo-sb-chev {
  color: oklch(0.48 0.22 25);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.3;
}

/* Related Articles */
.echo-sb-articles {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 1.125rem;
}
.echo-sb-articles li a { display: block; text-decoration: none !important; }
.echo-sb-art-cat {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.25rem;
}
.echo-sb-art-cat.cat-blue   { color: #1E40AF; }
.echo-sb-art-cat.cat-purple { color: #6D28D9; }
.echo-sb-art-cat.cat-yellow,
.echo-sb-art-cat.cat-amber  { color: #92400E; }
.echo-sb-art-cat.cat-green  { color: #065F46; }
.echo-sb-art-cat.cat-orange { color: #9A3412; }
.echo-sb-art-cat.cat-red    { color: oklch(0.48 0.22 25); }
.echo-sb-art-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: oklch(0.22 0.08 262);
  line-height: 1.35;
  transition: color .15s;
}
.echo-sb-articles li a:hover .echo-sb-art-title { color: oklch(0.48 0.22 25); }

/* 4. TCSP Licensed (dark navy card centered) */
.echo-sb-tcsp {
  background: oklch(0.22 0.08 262) !important;
  border-color: oklch(0.22 0.08 262) !important;
  text-align: center;
  padding: 1.75rem 1.5rem;
}
.echo-sb-tcsp-icon {
  width: 3rem; height: 3rem;
  background: oklch(0.48 0.22 25);
  border-radius: 9999px;
  display: inline-flex; align-items: center; justify-content: center;
  margin: 0 auto 0.875rem;
}
.echo-sb-tcsp-icon svg { width: 1.375rem; height: 1.375rem; color: #fff; }
.echo-sb-tcsp-title {
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  margin-bottom: 0.25rem;
}
.echo-sb-tcsp-no {
  color: rgba(255,255,255,0.7);
  font-size: 0.8125rem;
  margin-bottom: 0.75rem;
}
.echo-sb-tcsp-link {
  color: oklch(0.7 0.18 25) !important;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none !important;
}
.echo-sb-tcsp-link:hover { color: oklch(0.65 0.18 25) !important; }

/* 5. Transparent Pricing */
.echo-sb-pricing { text-align: center; }
.echo-sb-pricing-title {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 700;
  font-size: 1.0625rem;
  color: oklch(0.22 0.08 262);
  margin-bottom: 0.375rem;
}
.echo-sb-pricing-desc {
  font-size: 0.8125rem;
  color: #6b7280;
  margin-bottom: 0.75rem;
}
.echo-sb-pricing-link {
  color: oklch(0.48 0.22 25) !important;
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none !important;
}

/* === v7 — China Entry panel checklist: match source Offshore Company (lucide-circle-check-big, tight) === */
.echo-china-checks {
  list-style: none; padding: 0; margin: 1rem 0 1.5rem;
  display: flex; flex-direction: column; gap: 0.375rem;
}
.echo-china-checks li {
  display: flex; align-items: center; gap: 0.5rem;
  color: rgba(255,255,255,0.95);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.35;
}
.echo-china-checks li::before {
  content: '';
  width: 0.875rem; height: 0.875rem;
  flex-shrink: 0;
  background-color: #22c55e;  /* lucide text-green-500 */
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M21.801 10A10 10 0 1 1 17 3.335'/><path d='m9 11 3 3L22 4'/></svg>") no-repeat center / contain;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M21.801 10A10 10 0 1 1 17 3.335'/><path d='m9 11 3 3L22 4'/></svg>") no-repeat center / contain;
  display: inline-block;
}

/* === v7 — Article footer modules === */
.echo-blog-body article > section { margin-top: 2.5rem; }
.echo-blog-body article .not-prose * { max-width: none !important; }

/* A. Official Sources & References */
.echo-art-sources {
  background: oklch(0.97 0.015 262);
  border-radius: 0.75rem;
  padding: 1.5rem 1.75rem;
}
.echo-art-sources-title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: oklch(0.22 0.08 262);
  margin: 0 0 1rem;
  display: flex; align-items: center; gap: 0.625rem;
}
.echo-art-sources-title svg { width: 1.125rem; height: 1.125rem; color: oklch(0.48 0.22 25); }
.echo-art-sources-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 0.75rem;
}
.echo-art-sources-list li {
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #6b7280;
  position: relative;
  padding-left: 1.25rem;
}
.echo-art-sources-list li::before {
  content: '›';
  position: absolute; left: 0; top: -2px;
  color: oklch(0.48 0.22 25);
  font-weight: 700;
  font-size: 1.125rem;
}
.echo-art-sources-list a {
  color: oklch(0.48 0.22 25) !important;
  font-weight: 600;
  text-decoration: none !important;
}
.echo-art-sources-list a:hover { text-decoration: underline !important; }

/* B. Complete Guide Series (dark navy 2x2) */
.echo-art-series {
  background: oklch(0.22 0.08 262);
  border-radius: 0.75rem;
  padding: 1.75rem;
  color: #fff;
}
.echo-art-series-tag {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.7);
  margin-bottom: 0.625rem;
}
.echo-art-series-tag svg { width: 1rem; height: 1rem; color: oklch(0.65 0.18 25); }
.echo-art-series-title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.375rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 1.25rem;
}
.echo-art-series-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
@media (max-width: 640px) { .echo-art-series-grid { grid-template-columns: 1fr; } }
.echo-art-series-card {
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 0.5rem;
  padding: 0.875rem 1rem;
  color: rgba(255,255,255,0.9) !important;
  text-decoration: none !important;
  font-size: 0.9375rem;
  font-weight: 500;
  transition: background .15s, border-color .15s;
}
.echo-art-series-card:hover {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.2);
}
.echo-art-series-card.is-now {
  background: oklch(0.48 0.22 25);
  border-color: oklch(0.48 0.22 25);
  color: #fff !important;
}
.echo-art-series-now {
  background: oklch(0.22 0.08 262);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 0.125rem 0.5rem;
  border-radius: 0.25rem;
  letter-spacing: 0.05em;
}

/* C. Our Related Services */
.echo-art-rs-title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: oklch(0.22 0.08 262);
  margin: 0 0 1.125rem;
  display: flex; align-items: center; gap: 0.625rem;
}
.echo-art-rs-title svg { width: 1.375rem; height: 1.375rem; color: oklch(0.48 0.22 25); }
.echo-art-rs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (max-width: 640px) { .echo-art-rs-grid { grid-template-columns: 1fr; } }
.echo-art-rs-card {
  display: flex; align-items: center; gap: 0.875rem;
  background: #fff;
  border: 1px solid oklch(0.94 0.005 75);
  border-radius: 0.75rem;
  padding: 1.125rem;
  text-decoration: none !important;
  transition: box-shadow .2s, transform .15s, border-color .2s;
}
.echo-art-rs-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,.06);
  border-color: oklch(0.48 0.22 25);
  transform: translateY(-1px);
}
.echo-art-rs-icon {
  width: 2.5rem; height: 2.5rem;
  background: oklch(0.96 0.015 25);
  border-radius: 0.5rem;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.echo-art-rs-icon svg { width: 1.125rem; height: 1.125rem; color: oklch(0.48 0.22 25); }
.echo-art-rs-body { display: flex; flex-direction: column; gap: 0.125rem; flex: 1; min-width: 0; }
.echo-art-rs-name {
  font-weight: 700;
  font-size: 0.9375rem;
  color: oklch(0.22 0.08 262);
  line-height: 1.3;
}
.echo-art-rs-desc {
  font-size: 0.8125rem;
  color: #6b7280;
  line-height: 1.4;
}
.echo-art-rs-arrow {
  color: oklch(0.7 0.04 262);
  font-size: 1.125rem;
  font-weight: 400;
  flex-shrink: 0;
  margin-left: 0.5rem;
}
.echo-art-rs-card:hover .echo-art-rs-arrow { color: oklch(0.48 0.22 25); }

/* D. Continue Reading */
.echo-art-continue-title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: oklch(0.22 0.08 262);
  margin: 0 0 1.125rem;
  display: flex; align-items: center; gap: 0.625rem;
}
.echo-art-continue-title svg { width: 1.375rem; height: 1.375rem; color: oklch(0.48 0.22 25); }
.echo-art-continue-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
@media (max-width: 900px) { .echo-art-continue-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .echo-art-continue-grid { grid-template-columns: 1fr; } }
.echo-art-continue-card {
  display: flex; flex-direction: column; gap: 0.5rem;
  background: #fff;
  border-radius: 0.75rem;
  padding: 1.125rem;
  border: 1px solid oklch(0.94 0.005 75);
  text-decoration: none !important;
  transition: box-shadow .2s, transform .15s;
}
.echo-art-continue-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,.06);
  transform: translateY(-1px);
}
.echo-art-cc-cat {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.echo-art-cc-cat.cat-blue   { color: #1E40AF; }
.echo-art-cc-cat.cat-purple { color: #6D28D9; }
.echo-art-cc-cat.cat-yellow,
.echo-art-cc-cat.cat-amber  { color: #92400E; }
.echo-art-cc-cat.cat-green  { color: #065F46; }
.echo-art-cc-cat.cat-orange { color: #9A3412; }
.echo-art-cc-cat.cat-red    { color: oklch(0.48 0.22 25); }
.echo-art-cc-title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: oklch(0.22 0.08 262);
  line-height: 1.3;
  margin: 0;
}
.echo-art-cc-excerpt {
  font-size: 0.8125rem;
  color: #6b7280;
  line-height: 1.5;
  margin: 0;
}
.echo-art-cc-more {
  color: oklch(0.48 0.22 25);
  font-weight: 600;
  font-size: 0.8125rem;
  margin-top: 0.25rem;
}

/* === v7 — Newsletter subscribe (blog footer) === */
.echo-newsletter {
  background: oklch(0.97 0.015 262);
  padding: 4rem 0;
}
.echo-newsletter .container { text-align: center; }
.echo-newsletter-title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.875rem;
  font-weight: 700;
  color: oklch(0.22 0.08 262);
  margin: 0 0 0.75rem;
  line-height: 1.2;
}
@media (max-width: 640px) { .echo-newsletter-title { font-size: 1.5rem; } }
.echo-newsletter-desc {
  font-size: 1rem;
  color: #4b5563;
  line-height: 1.6;
  max-width: 42rem;
  margin: 0 auto 1.75rem;
}
.echo-newsletter-form {
  display: flex;
  gap: 0.5rem;
  max-width: 32rem;
  margin: 0 auto;
}
@media (max-width: 540px) { .echo-newsletter-form { flex-direction: column; } }
.echo-newsletter-input {
  flex: 1;
  padding: 0.75rem 1rem;
  border: 1px solid oklch(0.88 0.02 262);
  border-radius: 0.5rem;
  background: #fff;
  font-size: 0.9375rem;
  color: oklch(0.22 0.08 262);
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.echo-newsletter-input::placeholder { color: #9ca3af; }
.echo-newsletter-input:focus {
  border-color: oklch(0.48 0.22 25);
  box-shadow: 0 0 0 3px oklch(0.48 0.22 25 / 0.12);
}
.echo-newsletter-btn {
  background: oklch(0.48 0.22 25);
  color: #fff;
  font-weight: 600;
  padding: 0.75rem 1.5rem;
  border: 0;
  border-radius: 0.5rem;
  font-size: 0.9375rem;
  cursor: pointer;
  transition: background .15s;
  white-space: nowrap;
}
.echo-newsletter-btn:hover { background: oklch(0.42 0.22 25); }

/* === v7 — Pricing page: disclaimer gap from cards === */
p[data-loc="client/src/pages/Pricing.tsx:247"],
section p.text-center.text-gray-500.text-xs.mt-6 {
  margin-top: 4rem !important;
}
