/* ==========================================================================
   Insurance Bhaiya - Original Minimal Editorial Design System
   Typography: Inter (Body & Numbers) + Poppins (Display Headings)
   Palette: Clean Apple Minimalist Palette with Blue Spectrum
   ========================================================================== */

:root {
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-display: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  /* Clean Apple Minimal Palette */
  --color-background: #ffffff;
  --color-surface: #fbfbfd;
  --color-surface-hover: #f5f5f7;
  --color-surface-subtle: #f8fafc;
  --color-text: #1d1d1f;
  --color-secondary: #64748b;
  --color-tertiary: #94a3b8;
  --color-border: #e2e8f0;
  --color-border-light: #f1f5f9;

  /* Blue Accents & Gradients */
  --color-accent: #0066cc;
  --color-accent-hover: #0052a3;
  --color-accent-subtle: rgba(0, 102, 204, 0.08);
  --color-blue-primary: #0066cc;
  --color-blue-secondary: #2563eb;
  --color-blue-subtle: #f0f7ff;
  --color-blue-border: rgba(37, 99, 235, 0.16);

  --gradient-blue-button: linear-gradient(135deg, #0066cc 0%, #2563eb 100%);
  --gradient-blue-card: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
  --gradient-badge: linear-gradient(135deg, #eff6ff 0%, #e0f2fe 100%);

  --color-success: #10b981;
  --color-warning: #f59e0b;
  --color-danger: #ef4444;

  /* Apple Pastel Color Palette System */
  --pastel-blue-bg: #f0f7ff;
  --pastel-blue-border: #dbeafe;
  --pastel-blue-accent: #0066cc;

  --pastel-green-bg: #f0fdf4;
  --pastel-green-border: #dcfce7;
  --pastel-green-accent: #059669;

  --pastel-purple-bg: #f5f3ff;
  --pastel-purple-border: #ede9fe;
  --pastel-purple-accent: #7c3aed;

  --pastel-amber-bg: #fffbeb;
  --pastel-amber-border: #fef3c7;
  --pastel-amber-accent: #d97706;

  --pastel-rose-bg: #fff1f2;
  --pastel-rose-border: #ffe4e6;
  --pastel-rose-accent: #e11d48;

  --pastel-cyan-bg: #f0fdfa;
  --pastel-cyan-border: #ccfbf1;
  --pastel-cyan-accent: #0d9488;

  --pastel-slate-bg: #f8fafc;
  --pastel-slate-border: #e2e8f0;
  --pastel-slate-accent: #475569;

  /* Apple-inspired Generous Rounded Corners */
  --radius-xs: 10px;
  --radius-sm: 18px;
  --radius-md: 26px;
  --radius-lg: 32px;
  --radius-xl: 40px;
  --radius-full: 9999px;

  --container-width: 1200px;
  --container-reading: 780px;
  --header-height: 58px;

  --shadow-subtle: 0 1px 3px rgba(0, 0, 0, 0.04);
  --shadow-card: 0 4px 24px rgba(0, 0, 0, 0.03);
  --shadow-card-hover: 0 16px 40px -8px rgba(0, 0, 0, 0.08);
  --shadow-dropdown: 0 12px 32px rgba(0, 0, 0, 0.08);
  --shadow-modal: 0 20px 48px rgba(0, 0, 0, 0.12);
  --transition-smooth: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Base Reset */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  max-width: 100vw;
  width: 100%;
  overflow-x: hidden;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background-color: var(--color-background);
  color: var(--color-text);
  font-family: var(--font-body);
  line-height: 1.6;
  max-width: 100vw;
  width: 100%;
  overflow-x: hidden;
  position: relative;
}

.desktop-only {
  display: inline;
}

@media (max-width: 640px) {
  .desktop-only {
    display: none !important;
  }
}

main {
  flex: 1;
}

img, svg {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
  transition: var(--transition-smooth);
}

button {
  font-family: var(--font-body);
  border: none;
  background: none;
  cursor: pointer;
  padding: 0;
}

input, select, textarea {
  font-family: var(--font-body);
  font-size: 1rem;
}

*:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* Typography Hierarchy */
h1, h2, h3, .font-display {
  font-family: var(--font-display);
  letter-spacing: -0.025em;
  font-weight: 600;
  line-height: 1.15;
  color: var(--color-text);
}

h4, h5, h6 {
  font-family: var(--font-body);
  letter-spacing: -0.015em;
  font-weight: 600;
  line-height: 1.3;
}

/* Mandatory Inter Numerics */
.num, .stat-value, .price-value, .currency, .calc-result, .tabular-nums {
  font-family: var(--font-body) !important;
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.01em;
}

.text-hero {
  font-size: clamp(2.5rem, 5vw + 1rem, 4.25rem);
  line-height: 1.08;
  letter-spacing: -0.035em;
}

.text-title-1 {
  font-size: clamp(2rem, 3.5vw + 0.5rem, 2.75rem);
  line-height: 1.18;
  letter-spacing: -0.03em;
}

.text-title-2 {
  font-size: clamp(1.5rem, 2.5vw + 0.25rem, 2rem);
  line-height: 1.25;
  letter-spacing: -0.025em;
}

.text-title-3 {
  font-size: 1.25rem;
  line-height: 1.4;
  letter-spacing: -0.015em;
}

.text-lead {
  font-size: clamp(1.125rem, 1.25vw + 0.5rem, 1.35rem);
  line-height: 1.55;
  color: var(--color-secondary);
  font-weight: 400;
}

.text-body {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--color-text);
}

.text-subtext {
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--color-secondary);
}

.text-caption {
  font-size: 0.75rem;
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-tertiary);
  font-weight: 600;
}

/* Containers */
.container {
  width: 100%;
  max-width: var(--container-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

.container-reading {
  width: 100%;
  max-width: var(--container-reading);
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

.container-tool {
  width: 100%;
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

.container-compare {
  width: 100%;
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

/* Standard Main Page Content Padding */
main.container,
main.container-reading,
main.container-tool,
main.container-compare {
  padding-top: 40px;
  padding-bottom: 80px;
  box-sizing: border-box;
}

@media (max-width: 640px) {
  .container,
  .container-reading,
  .container-tool,
  .container-compare {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  main.container,
  main.container-reading,
  main.container-tool,
  main.container-compare {
    padding-top: 18px !important;
    padding-bottom: 48px !important;
  }
}

/* Sections */
.section {
  padding-top: 80px;
  padding-bottom: 80px;
}

.section-hero {
  padding-top: 88px;
  padding-bottom: 72px;
}

.section-tight {
  padding-top: 48px;
  padding-bottom: 48px;
}

.section-muted {
  background-color: var(--color-surface);
}

.section-border {
  border-bottom: 1px solid var(--color-border-light);
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 0.9375rem;
  font-weight: 500;
  padding: 10px 22px;
  border-radius: var(--radius-full);
  transition: var(--transition-smooth);
  white-space: nowrap;
  text-decoration: none !important;
}

.btn-primary {
  background-color: var(--color-text);
  color: #ffffff !important;
  text-decoration: none !important;
}

.btn-primary:hover {
  background-color: #000000;
  color: #ffffff !important;
  text-decoration: none !important;
  transform: translateY(-1px);
}

.btn-accent {
  background-color: var(--color-accent);
  color: #ffffff;
}

.btn-accent:hover {
  background-color: var(--color-accent-hover);
  transform: translateY(-1px);
}

.btn-secondary {
  background-color: var(--color-surface);
  color: var(--color-text);
  border: 1px solid var(--color-border);
}

.btn-secondary:hover {
  background-color: var(--color-surface-hover);
  border-color: var(--color-tertiary);
}

.btn-ghost {
  color: var(--color-secondary);
}

.btn-ghost:hover {
  color: var(--color-text);
}

.btn-link {
  color: var(--color-accent);
  padding: 0;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.btn-link:hover {
  text-decoration: underline;
}

/* SEO Card Title & Keyword Links */
.card-title-link {
  color: var(--color-text);
  text-decoration: none;
  transition: color 0.15s ease;
}

.card-title-link:hover,
.card-title-link:focus {
  color: var(--color-accent);
  text-decoration: none;
}

.card-keyword-link {
  color: var(--color-accent);
  text-decoration: none;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  flex-wrap: wrap;
  overflow-wrap: break-word;
  word-break: break-word;
  transition: gap 0.15s ease, opacity 0.15s ease;
}

.card-keyword-link span {
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
}

.card-keyword-link:hover,
.card-keyword-link:focus {
  opacity: 0.85;
  text-decoration: underline;
  gap: 8px;
}

.btn-sm {
  font-size: 0.8125rem;
  padding: 6px 14px;
}

.btn-lg {
  font-size: 1.0625rem;
  padding: 14px 28px;
}

/* Pills & Badges */
.pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
  font-weight: 500;
  padding: 4px 12px;
  border-radius: var(--radius-full);
  background-color: var(--color-surface-hover);
  color: var(--color-secondary);
  border: 1px solid var(--color-border-light);
  transition: var(--transition-smooth);
  max-width: 100%;
  box-sizing: border-box;
}

.pill-accent {
  background-color: var(--color-accent-subtle);
  color: var(--color-accent);
  border-color: rgba(0, 102, 204, 0.15);
}

/* Cards */
.card {
  background-color: var(--color-background);
  border: 1px solid rgba(0, 0, 0, 0.07);
  border-radius: var(--radius-md);
  padding: clamp(24px, 3vw, 36px);
  transition: var(--transition-smooth);
}

.card:hover {
  border-color: rgba(0, 0, 0, 0.12);
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-3px);
}

.card-static {
  background-color: var(--color-surface);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-md);
  padding: clamp(24px, 3vw, 36px);
}

/* Pastel Card Variants */
.card-pastel-blue {
  background-color: var(--pastel-blue-bg);
  border-color: var(--pastel-blue-border);
}
.card-pastel-green {
  background-color: var(--pastel-green-bg);
  border-color: var(--pastel-green-border);
}
.card-pastel-purple {
  background-color: var(--pastel-purple-bg);
  border-color: var(--pastel-purple-border);
}
.card-pastel-amber {
  background-color: var(--pastel-amber-bg);
  border-color: var(--pastel-amber-border);
}
.card-pastel-rose {
  background-color: var(--pastel-rose-bg);
  border-color: var(--pastel-rose-border);
}
.card-pastel-cyan {
  background-color: var(--pastel-cyan-bg);
  border-color: var(--pastel-cyan-border);
}
.card-pastel-slate {
  background-color: var(--pastel-slate-bg);
  border-color: var(--pastel-slate-border);
}

/* Card Media (Images) */
.card-media {
  border-radius: 18px;
  overflow: hidden;
  height: 160px;
  margin-bottom: 20px;
  position: relative;
  background-color: var(--color-surface-hover);
}
.card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  display: block;
}
.card:hover .card-media img {
  transform: scale(1.05);
}



/* Grid Utilities */
.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

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

@media (max-width: 640px) {
  .grid-4 { grid-template-columns: 1fr; }
  .grid-3 { grid-template-columns: 1fr; }
  .grid-2 { grid-template-columns: 1fr; }
  .section { padding-top: 56px; padding-bottom: 56px; }
  .section-hero { padding-top: 64px; padding-bottom: 56px; }
}

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  height: var(--header-height);
  background-color: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid var(--color-border-light);
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.header-inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.brand-logo {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 1.125rem;
  letter-spacing: -0.02em;
  color: var(--color-text);
}

.brand-logo svg {
  color: var(--color-accent);
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 24px;
  list-style: none;
}

.nav-link {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-secondary);
}

.nav-link:hover, .nav-link.active {
  color: var(--color-text);
}

.header-search-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--color-surface);
  border: 1px solid var(--color-border-light);
  padding: 6px 14px;
  border-radius: var(--radius-full);
  font-size: 0.8125rem;
  color: var(--color-secondary);
  cursor: pointer;
  transition: var(--transition-smooth);
}

.header-search-btn:hover {
  border-color: var(--color-border);
  color: var(--color-text);
  background: var(--color-surface-hover);
}

.header-search-kbd {
  font-size: 0.6875rem;
  padding: 1px 5px;
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  color: var(--color-tertiary);
}

/* Minimal Footer */
.site-footer {
  background-color: var(--color-surface);
  border-top: 1px solid var(--color-border-light);
  padding: 64px 0 36px;
  margin-top: auto;
  width: 100%;
  overflow-x: hidden;
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.2fr;
  gap: 40px;
  margin-bottom: 48px;
  width: 100%;
}

.footer-grid > div {
  min-width: 0;
}

.footer-col-title {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--color-text);
  margin-bottom: 16px;
}

.footer-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 0.875rem;
  color: var(--color-secondary);
}

.footer-links li a {
  word-break: break-word;
  overflow-wrap: break-word;
}

.footer-links a:hover {
  color: var(--color-accent);
}

.footer-bottom {
  padding-top: 24px;
  border-top: 1px solid var(--color-border-light);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.75rem;
  color: var(--color-tertiary);
  flex-wrap: wrap;
  gap: 14px;
  width: 100%;
}

/* Responsive Footer & Mobile Navbar System */
@media (max-width: 992px) {
  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 36px 28px;
  }
}

@media (max-width: 768px) {
  .site-header .brand-logo .brand-name,
  .site-header .brand-logo > span {
    display: none !important;
  }
  .site-header .brand-logo {
    gap: 0 !important;
  }
}

@media (max-width: 640px) {
  .site-footer {
    padding: 44px 0 28px;
  }
  .footer-grid {
    grid-template-columns: 1fr;
    gap: 32px;
    margin-bottom: 36px;
  }
  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
}

/* Responsive Top Header Actions & Button Symmetry */
.header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.header-search-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 7px 16px;
  border-radius: var(--radius-full);
  font-size: 0.8125rem;
  color: var(--color-secondary);
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  height: 38px;
  box-sizing: border-box;
}

.header-search-btn svg {
  color: var(--color-text);
  flex-shrink: 0;
  display: block;
}

.header-search-btn:hover {
  background: var(--color-surface-hover);
  border-color: var(--color-tertiary);
  color: var(--color-text);
  transform: scale(1.02);
}

/* ==========================================================================
   Apple-Inspired Mobile Drawer & Responsive Header System
   ========================================================================== */

.mobile-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: none;
  background: transparent;
  color: var(--color-text);
  cursor: pointer;
  padding: 0;
  box-sizing: border-box;
  outline: none;
  box-shadow: none;
  -webkit-tap-highlight-color: transparent;
}

.mobile-toggle svg {
  color: var(--color-text);
  display: block;
}

.mobile-toggle:hover,
.mobile-toggle:focus,
.mobile-toggle:focus-visible,
.mobile-toggle:active {
  background: transparent;
  border: none;
  box-shadow: none;
  outline: none;
  color: var(--color-text);
}

/* Safeguard for legacy mobile-drawer markup */
.mobile-drawer,
.drawer-backdrop {
  display: none !important;
}

.mobile-drawer-overlay {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  z-index: 9999;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: visibility 0.3s ease, opacity 0.25s ease;
}

.mobile-drawer-overlay.active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.mobile-drawer-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  opacity: 0;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.mobile-drawer-overlay.active .mobile-drawer-backdrop {
  opacity: 1;
}

.mobile-drawer-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  height: 100vh;
  height: 100dvh;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  box-shadow: -8px 0 36px rgba(0, 0, 0, 0.14);
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
  overflow: hidden;
  z-index: 2;
}

.mobile-drawer-overlay.active .mobile-drawer-panel {
  transform: translateX(0);
}

/* Drawer Header */
.drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--color-border-light);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  flex-shrink: 0;
}

.drawer-header .brand-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: 1.0625rem;
  color: var(--color-text);
  text-decoration: none;
}

.drawer-brand-name {
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--color-text);
}

.drawer-close-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text);
  cursor: pointer;
  transition: all 0.2s ease;
}

.drawer-close-btn:hover {
  background: var(--color-surface-hover);
  color: #000000;
  transform: scale(1.08);
}

.drawer-close-btn:active {
  transform: scale(0.94);
}

/* Drawer Search Bar Trigger */
.drawer-search-box {
  padding: 14px 20px 8px;
  flex-shrink: 0;
}

.drawer-search-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  background: var(--color-surface-hover);
  border: 1px solid var(--color-border);
  border-radius: 980px;
  font-size: 0.875rem;
  color: var(--color-secondary);
  cursor: pointer;
  transition: all 0.2s ease;
  text-align: left;
}

.drawer-search-trigger svg {
  color: var(--color-tertiary);
  flex-shrink: 0;
}

.drawer-search-trigger:hover {
  background: #ffffff;
  border-color: var(--color-accent);
  color: var(--color-text);
  box-shadow: 0 4px 12px rgba(0, 102, 204, 0.08);
}

.drawer-search-trigger:hover svg {
  color: var(--color-accent);
}

/* Drawer Scrollable Body */
.drawer-body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 12px 20px 36px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.drawer-body::-webkit-scrollbar {
  width: 4px;
}

.drawer-body::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.12);
  border-radius: 4px;
}

/* Sections */
.drawer-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.drawer-section-title {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-tertiary);
  padding: 0 4px;
}

/* Navigation List */
.drawer-nav-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.drawer-nav-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 12px;
  border-radius: 14px;
  text-decoration: none;
  color: var(--color-text);
  transition: background-color 0.18s ease, transform 0.18s ease;
}

.drawer-nav-item:hover {
  background-color: var(--color-surface-hover);
}

.drawer-nav-item.active {
  background-color: var(--pastel-blue-bg);
  border: 1px solid var(--pastel-blue-border);
}

.drawer-nav-item.active .drawer-nav-label {
  color: var(--color-accent);
}

.drawer-nav-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--color-surface);
  border: 1px solid var(--color-border-light);
  color: var(--color-secondary);
  flex-shrink: 0;
  transition: color 0.18s ease;
}

.drawer-nav-item:hover .drawer-nav-icon {
  color: var(--color-accent);
  background: #ffffff;
  border-color: var(--color-border);
}

.drawer-nav-icon.accent-icon {
  background: var(--pastel-blue-bg);
  border-color: var(--pastel-blue-border);
  color: var(--color-accent);
}

.drawer-nav-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.drawer-nav-label {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.25;
}

.drawer-nav-desc {
  font-size: 0.75rem;
  color: var(--color-secondary);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.drawer-nav-arrow {
  color: var(--color-tertiary);
  opacity: 0.45;
  transition: transform 0.2s ease, opacity 0.2s ease;
  display: flex;
  align-items: center;
}

.drawer-nav-item:hover .drawer-nav-arrow {
  transform: translateX(3px);
  opacity: 1;
  color: var(--color-accent);
}

/* Actuarial Quick Tools Grid (Small Cards in Grids) */
.drawer-cards-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.drawer-mini-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px;
  border-radius: 16px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  text-decoration: none;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.drawer-mini-card:hover {
  background: #ffffff;
  border-color: var(--color-accent);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.05);
}

.drawer-mini-card:active {
  transform: translateY(0);
}

.mini-card-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mini-card-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.2;
}

.mini-card-sub {
  font-size: 0.75rem;
  color: var(--color-secondary);
  line-height: 1.2;
}

/* Category Pills Row */
.drawer-pills-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.drawer-pill {
  padding: 6px 14px;
  border-radius: 980px;
  font-size: 0.8125rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--color-secondary);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  transition: all 0.18s ease;
}

.drawer-pill:hover {
  background: var(--pastel-blue-bg);
  border-color: var(--pastel-blue-border);
  color: var(--color-accent);
  transform: translateY(-1px);
}

/* Drawer Footer Info */
.drawer-footer-info {
  padding: 16px 8px 4px;
  border-top: 1px solid var(--color-border-light);
  font-size: 0.75rem;
  color: var(--color-tertiary);
  text-align: center;
  line-height: 1.5;
}

/* Breakpoint Logic */
@media (min-width: 821px) {
  .mobile-toggle {
    display: none !important;
  }
  .mobile-drawer-overlay {
    display: none !important;
  }
}

@media (max-width: 820px) {
  .desktop-nav {
    display: none !important;
  }
  .mobile-toggle,
  .header-search-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    color: var(--color-text) !important;
    flex-shrink: 0 !important;
    -webkit-tap-highlight-color: transparent !important;
    cursor: pointer;
  }
  .header-search-btn span,
  .header-search-kbd {
    display: none !important;
  }
  .header-search-btn:hover,
  .header-search-btn:focus,
  .header-search-btn:focus-visible,
  .header-search-btn:active,
  .mobile-toggle:hover,
  .mobile-toggle:focus,
  .mobile-toggle:focus-visible,
  .mobile-toggle:active {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    transform: none !important;
    color: var(--color-text) !important;
  }
  .header-search-btn svg,
  .mobile-toggle svg {
    width: 20px !important;
    height: 20px !important;
    stroke: currentColor !important;
    color: var(--color-text) !important;
    stroke-width: 2 !important;
    display: block !important;
  }
}

/* Tablet Device Width */
@media (min-width: 641px) and (max-width: 820px) {
  .mobile-drawer-panel {
    width: 440px;
    max-width: 440px;
    right: 0;
    left: auto;
    border-top-left-radius: 20px;
    border-bottom-left-radius: 20px;
  }
}

/* Mobile Device Width & Height: strictly 100vw and 100vh / 100dvh */
@media (max-width: 640px) {
  .mobile-drawer-panel {
    width: 100vw;
    max-width: 100vw;
    height: 100vh;
    height: 100dvh;
    inset: 0;
    left: 0;
    right: 0;
    border-radius: 0;
  }
  .drawer-cards-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Search Modal Universal Responsive System */
.modal-backdrop {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  z-index: 10000;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: 60px 16px 24px;
  box-sizing: border-box;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.modal-backdrop.active {
  display: flex;
}

.search-modal-box {
  background: #ffffff;
  border-radius: 20px;
  max-width: 580px;
  width: 100%;
  box-shadow: 0 24px 64px -12px rgba(0, 0, 0, 0.25);
  border: 1px solid var(--color-border);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: min(540px, calc(100vh - 80px));
  max-height: min(540px, calc(100dvh - 80px));
  box-sizing: border-box;
  animation: searchModalSlideIn 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes searchModalSlideIn {
  from {
    opacity: 0;
    transform: scale(0.97) translateY(-8px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.search-input-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--color-border-light);
  flex-shrink: 0;
  background: #ffffff;
}

.search-input-field {
  flex: 1;
  min-width: 0;
  border: none;
  outline: none;
  font-size: 0.9375rem;
  color: var(--color-text);
  font-family: inherit;
  background: transparent;
}

.search-close-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: var(--color-surface-hover);
  color: var(--color-secondary);
  font-size: 1.25rem;
  cursor: pointer;
  line-height: 1;
  flex-shrink: 0;
  transition: all 0.15s ease;
}

.search-close-btn:hover {
  background: #e2e8f0;
  color: #000000;
}

.search-results-list {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  max-height: 420px;
  padding: 8px 10px;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.18) transparent;
  box-sizing: border-box;
}

/* Mobile Specific Search Modal Optimization */
@media (max-width: 640px) {
  .modal-backdrop {
    padding: 12px 10px !important;
    align-items: flex-start !important;
  }
  .search-modal-box {
    max-height: calc(100vh - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
    border-radius: 18px !important;
    width: 100% !important;
    margin: 0 auto;
  }
  .search-input-wrap {
    padding: 12px 14px !important;
    gap: 10px !important;
  }
  .search-input-field {
    font-size: 16px !important;
  }
  .search-results-list {
    max-height: calc(100vh - 80px) !important;
    max-height: calc(100dvh - 80px) !important;
    padding: 6px 8px !important;
  }
  .search-result-item {
    padding: 8px !important;
    gap: 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .search-item-title {
    font-size: 0.84rem !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  .search-item-desc {
    display: none !important;
  }
  .search-item-arrow {
    display: none !important;
  }
  .pill-intent {
    font-size: 0.625rem !important;
    padding: 2px 6px !important;
    flex-shrink: 0 !important;
  }
}

/* (Search results list and items styled in Apple Universal Search System below) */


/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   Minimal Component System Extensions
   ========================================================================== */

/* Breadcrumbs */
.breadcrumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  list-style: none;
  font-size: 0.8125rem;
  color: var(--color-secondary);
  flex-wrap: wrap;
  margin-bottom: 28px;
}
.breadcrumbs a {
  color: var(--color-accent);
}
.breadcrumbs a:hover {
  text-decoration: underline;
}
.breadcrumbs .current {
  color: var(--color-text);
  font-weight: 500;
}

/* Article Cards & Grid */
.article-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  background: var(--color-background);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-md);
  padding: 28px;
  transition: var(--transition-smooth);
}
.article-card:hover {
  border-color: var(--color-border);
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-2px);
}
.article-meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  font-size: 0.75rem;
  color: var(--color-tertiary);
}
.article-badge {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-accent);
}
.article-title {
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.35;
  margin-bottom: 10px;
  color: var(--color-text);
}
.article-title a {
  color: inherit;
  transition: color 0.15s ease;
}
.article-title a:hover {
  color: var(--color-accent);
}
.article-excerpt {
  font-size: 0.875rem;
  color: var(--color-secondary);
  line-height: 1.55;
  margin-bottom: 20px;
}
.article-footer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 16px;
  border-top: 1px solid var(--color-border-light);
  font-size: 0.8125rem;
}
.article-read-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--color-text);
  font-weight: 500;
}
.article-read-link:hover {
  color: var(--color-accent);
}
.articles-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 24px;
}

/* Filter Pills */
.filter-pills-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 36px;
}
.filter-pill {
  cursor: pointer;
  padding: 6px 16px;
  border-radius: var(--radius-full);
  font-size: 0.8125rem;
  font-weight: 500;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  color: var(--color-secondary);
  transition: var(--transition-smooth);
}
.filter-pill:hover {
  background: var(--color-surface-hover);
  color: var(--color-text);
  border-color: var(--color-tertiary);
}
.filter-pill.active {
  background: var(--color-text);
  color: #ffffff;
  border-color: var(--color-text);
}

/* Callout Boxes */
.callout {
  border-radius: var(--radius-sm);
  padding: 20px 24px;
  margin: 28px 0;
  border: 1px solid var(--color-border-light);
}
.callout-success {
  background: #f0fdf4;
  border-color: #bbf7d0;
  color: #166534;
}
.callout-info {
  background: var(--color-blue-subtle);
  border-color: var(--color-blue-border);
  color: var(--color-accent);
}
.callout-warning {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}

/* Comparison Tables */
.table-wrap {
  width: 100%;
  overflow-x: auto;
  margin: 32px 0;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border-light);
  background: var(--color-background);
}
.comparison-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
  text-align: left;
}
.comparison-table th {
  background: var(--color-surface);
  padding: 16px 20px;
  font-weight: 600;
  color: var(--color-text);
  border-bottom: 1px solid var(--color-border);
}
.comparison-table td {
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-light);
  color: var(--color-secondary);
}
.comparison-table tr:last-child td {
  border-bottom: none;
}
.comparison-table tr:hover td {
  background: var(--color-surface);
}

/* (Interactive Calculator Cards styled in Apple Calculator System below) */

/* Policy Audit Checklist */
.checklist-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 32px 0;
}
.checklist-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 18px 20px;
  background: var(--color-background);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: var(--transition-smooth);
}
.checklist-item:hover {
  background: var(--color-surface-hover);
  border-color: var(--color-border);
}
.checklist-item.checked {
  background: rgba(16, 185, 129, 0.04);
  border-color: rgba(16, 185, 129, 0.3);
}
.checklist-checkbox {
  width: 20px;
  height: 20px;
  margin-top: 2px;
  accent-color: var(--color-success);
  cursor: pointer;
}
.score-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  border: 4px solid var(--color-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--color-text);
  margin: 0 auto 16px auto;
}

/* Responsive Navigation & Mobile/Tablet Drawer System */
@media (max-width: 820px) {
  .nav-menu { display: none !important; }
  .header-cta { display: none !important; }
  .mobile-toggle { display: inline-flex !important; }
  .articles-grid { grid-template-columns: 1fr; }
}

@media (min-width: 821px) {
  .nav-menu { display: flex !important; }
  .header-cta { display: inline-flex !important; }
  .mobile-toggle { display: none !important; }
  .mobile-drawer-overlay { display: none !important; }
}

/* ==========================================================================
   Apple Full-Height Mobile & Tablet Drawer
   Mobile (<= 640px): 100vw x 100vh full coverage
   Tablet (641px - 820px): 440px max width slide-over panel
   ========================================================================== */
.mobile-drawer-overlay {
  position: fixed;
  inset: 0;
  z-index: 2500;
  visibility: hidden;
  transition: visibility 0.3s ease;
}

.mobile-drawer-overlay.active {
  visibility: visible;
}

.mobile-drawer-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(29, 29, 31, 0.45);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.mobile-drawer-overlay.active .mobile-drawer-backdrop {
  opacity: 1;
}

.mobile-drawer-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  height: 100vh;
  height: 100dvh;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: -12px 0 40px rgba(0, 0, 0, 0.16);
  z-index: 2501;
  overflow: hidden;
  
  /* Tablet Default Max Width */
  width: 440px;
  max-width: 440px;
}

.mobile-drawer-overlay.active .mobile-drawer-panel {
  transform: translateX(0);
}

/* Mobile Devices: Cover FULL page height and width! */
@media (max-width: 640px) {
  .mobile-drawer-panel {
    width: 100vw;
    max-width: 100vw;
    height: 100vh;
    height: 100dvh;
    box-shadow: none;
  }
}

.drawer-header {
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--color-border-light);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  flex-shrink: 0;
}

.drawer-close-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.drawer-close-btn:hover {
  background: var(--color-surface-hover);
  transform: scale(1.05);
}

.drawer-body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 20px;
  display: flex;
  flex-direction: column;
}

.drawer-search-trigger {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 980px;
  padding: 10px 16px;
  font-size: 0.875rem;
  color: var(--color-secondary);
  width: 100%;
  text-align: left;
  margin-bottom: 20px;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.drawer-search-trigger:hover {
  border-color: var(--color-accent);
  background: #ffffff;
}

.drawer-section-label {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-tertiary);
  margin-bottom: 10px;
}

.drawer-nav-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.drawer-nav-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 12px;
  border-radius: 14px;
  color: var(--color-text);
  transition: background-color 0.15s ease;
  text-decoration: none;
}

.drawer-nav-item:hover, .drawer-nav-item:active {
  background-color: var(--color-surface-hover);
}

.drawer-nav-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.drawer-nav-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.drawer-nav-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-text);
}

.drawer-nav-sub {
  font-size: 0.75rem;
  color: var(--color-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.drawer-chevron {
  color: var(--color-tertiary);
  flex-shrink: 0;
}

/* Small Cards in Grids inside Hamburger Drawer */
.drawer-cards-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.drawer-mini-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border-light);
  border-radius: 14px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.drawer-mini-card:hover {
  background: #ffffff;
  border-color: rgba(0, 113, 227, 0.25);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
}

.drawer-mini-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
}

.drawer-mini-title {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.25;
}

.drawer-mini-desc {
  font-size: 0.6875rem;
  color: var(--color-secondary);
  margin-top: 2px;
}

.drawer-chips-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.drawer-foot {
  padding: 16px 20px;
  border-top: 1px solid var(--color-border-light);
  background: var(--color-surface);
  flex-shrink: 0;
}

/* ==========================================================================
   Apple Card Typologies & Bento Layout System
   ========================================================================== */

.bento-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 28px;
}
.bento-col-12 { grid-column: span 12; }
.bento-col-8 { grid-column: span 8; }
.bento-col-7 { grid-column: span 7; }
.bento-col-6 { grid-column: span 6; }
.bento-col-5 { grid-column: span 5; }
.bento-col-4 { grid-column: span 4; }
.bento-col-3 { grid-column: span 3; }

@media (max-width: 980px) {
  .bento-col-8, .bento-col-7, .bento-col-6, .bento-col-5, .bento-col-4, .bento-col-3 {
    grid-column: span 12;
  }
}

/* Base Apple Squircle Card */
.apple-card {
  background: #ffffff;
  border-radius: var(--radius-lg);
  border: 1px solid rgba(0, 0, 0, 0.07);
  box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.04);
  overflow: hidden;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease;
  display: flex;
  flex-direction: column;
  position: relative;
}
.apple-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 48px -12px rgba(0, 0, 0, 0.09);
  border-color: rgba(0, 113, 227, 0.22);
}

/* ==========================================================================
   Apple Bento Grid - Category Showcase
   ========================================================================== */
.category-bento-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

@media (max-width: 1080px) {
  .category-bento-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (max-width: 640px) {
  .category-bento-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

.apple-bento-card {
  background: #ffffff;
  border-radius: 24px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  overflow: hidden;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s ease;
  display: flex;
  flex-direction: column;
  position: relative;
}

.apple-bento-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.08);
  border-color: rgba(0, 0, 0, 0.14);
}

/* BIG Bento Card (2 columns) */
.bento-big {
  grid-column: span 2;
}

.bento-big .bento-inner {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  height: 100%;
  align-items: stretch;
}

.bento-big .bento-content {
  padding: clamp(24px, 3vw, 36px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
}

.bento-big .bento-media {
  position: relative;
  overflow: hidden;
  min-height: 220px;
  height: 100%;
  background: var(--color-surface-subtle);
}

.bento-big .bento-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.apple-bento-card:hover .bento-media img {
  transform: scale(1.05);
}

@media (max-width: 860px) {
  .bento-big .bento-inner {
    grid-template-columns: 1fr;
  }
  .bento-big .bento-media {
    height: 180px;
    min-height: 180px;
    order: -1;
  }
}

@media (max-width: 1080px) {
  .bento-big {
    grid-column: span 2;
  }
}

@media (max-width: 640px) {
  .bento-big {
    grid-column: span 1;
  }
}

/* SMALL Bento Card (1 column) */
.bento-small {
  grid-column: span 1;
}

.bento-small .bento-media {
  height: 160px;
  position: relative;
  overflow: hidden;
  background: var(--color-surface-subtle);
}

.bento-small .bento-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.bento-small .bento-content {
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
  gap: 14px;
}

/* Typography & Elements */
.bento-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}

.bento-title {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-text);
  margin-bottom: 6px;
}

.bento-small .bento-title {
  font-size: 1.15rem;
}

.bento-title a {
  color: inherit;
  transition: color 0.15s ease;
}

.bento-title a:hover {
  color: var(--color-accent);
}

.bento-desc {
  font-size: 0.9rem;
  color: var(--color-secondary);
  line-height: 1.55;
  margin: 0;
}

.bento-small .bento-desc {
  font-size: 0.85rem;
  line-height: 1.5;
}

.bento-feature-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}

.bento-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: #f5f5f7;
  border-radius: 9999px;
  font-size: 0.775rem;
  font-weight: 500;
  color: var(--color-text);
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.bento-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  font-size: 0.8125rem;
  gap: 12px;
  flex-wrap: wrap;
  row-gap: 8px;
}

.bento-foot > * {
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
}

.bento-floating-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(12px) saturate(180%);
  -webkit-backdrop-filter: blur(12px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 9999px;
  padding: 5px 12px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  z-index: 2;
}

/* 1. Category Card (Apple Product Tile Style) */
.apple-category-card {

  background: #ffffff;
}
.apple-category-media {
  position: relative;
  height: 190px;
  overflow: hidden;
  background: var(--color-surface-subtle);
}
.apple-category-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.apple-category-card:hover .apple-category-img {
  transform: scale(1.05);
}
.apple-category-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  backdrop-filter: blur(16px) saturate(180%);
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.4);
  padding: 5px 12px;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.apple-category-body {
  padding: 26px 26px 22px;
  display: flex;
  flex-direction: column;
  flex: 1;
  justify-content: space-between;
}
.apple-category-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 8px;
  line-height: 1.3;
}
.apple-category-title a {
  color: inherit;
}
.apple-category-desc {
  font-size: 0.9rem;
  color: var(--color-secondary);
  line-height: 1.55;
  margin-bottom: 18px;
}
.apple-category-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 16px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  font-size: 0.8125rem;
}

/* 2. Apple Editorial Article Card (Apple News Style) */
.apple-article-card {
  height: 100%;
}
.apple-article-media {
  height: 200px;
  position: relative;
  overflow: hidden;
  background: var(--color-surface-subtle);
}
.apple-article-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.apple-article-card:hover .apple-article-img {
  transform: scale(1.05);
}
.apple-article-body {
  padding: 28px;
  display: flex;
  flex-direction: column;
  flex: 1;
  justify-content: space-between;
}
.apple-article-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.apple-article-title {
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.35;
  margin-bottom: 12px;
}
.apple-article-title a {
  color: inherit;
}
.apple-article-title a:hover {
  color: var(--color-accent);
}
.apple-article-desc {
  font-size: 0.9375rem;
  color: var(--color-secondary);
  line-height: 1.6;
  margin-bottom: 22px;
}
.apple-article-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 16px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  font-size: 0.8125rem;
  color: var(--color-secondary);
}

/* 3. Apple Calculator Card (Interactive Widget Style) */
.apple-calc-card {
  padding: clamp(28px, 3.5vw, 36px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}
.apple-calc-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.apple-calc-icon-box {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-sm);
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-accent);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
  flex-shrink: 0;
}
.apple-calc-title {
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 8px;
}
.apple-calc-title a {
  color: inherit;
}
.apple-calc-desc {
  font-size: 0.925rem;
  color: var(--color-secondary);
  line-height: 1.55;
  margin-bottom: 16px;
}
.apple-calc-formula {
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: var(--radius-xs);
  padding: 10px 14px;
  font-size: 0.8125rem;
  color: var(--color-secondary);
  line-height: 1.45;
  margin-bottom: 22px;
}

/* 4. Apple Comparison Split Card */
.apple-compare-card {
  padding: 0;
}
.apple-compare-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  position: relative;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.apple-compare-half {
  padding: 28px 24px;
}
.apple-compare-half:first-child {
  border-right: 1px solid rgba(0, 0, 0, 0.06);
}
.apple-compare-vs {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.05em;
  z-index: 2;
}
.apple-compare-foot {
  padding: 20px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #ffffff;
}

/* 5. Apple Case Study Story Card */
.apple-story-card {
  padding: 32px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}
.apple-story-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}
.apple-story-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1rem;
  color: #ffffff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.apple-story-quote {
  font-size: 1.0625rem;
  font-weight: 500;
  font-style: italic;
  color: var(--color-text);
  line-height: 1.55;
  margin-bottom: 16px;
  position: relative;
  padding-left: 18px;
  border-left: 3px solid var(--color-accent);
}
.apple-story-desc {
  font-size: 0.9rem;
  color: var(--color-secondary);
  line-height: 1.55;
  margin-bottom: 20px;
}

/* 6. Apple Glossary Term Card */
.apple-glossary-card {
  padding: 28px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}
.apple-glossary-term {
  font-size: 1.3rem;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--color-text);
}
.apple-glossary-def {
  font-size: 0.925rem;
  color: var(--color-secondary);
  line-height: 1.6;
  margin-bottom: 18px;
}
.apple-glossary-uk {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-accent);
  background: var(--pastel-blue-bg);
  padding: 4px 10px;
  border-radius: var(--radius-full);
  margin-bottom: 14px;
}

/* Load More Pagination Button */
.load-more-wrap,
#loadMoreWrap {
  text-align: center;
  margin-top: 48px;
}
.btn-load-more,
.load-more-btn {
  background: var(--color-surface-hover);
  color: var(--color-text);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--radius-full);
  padding: 14px 32px;
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: var(--transition-smooth);
}
.btn-load-more:hover,
.load-more-btn:hover {
  background: #ffffff;
  border-color: rgba(0, 113, 227, 0.4);
  color: var(--color-accent);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
  transform: translateY(-2px);
}

/* Category Filter Pills Wrap without horizontal scrollbar */
.category-filter-pills-wrap {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px 10px !important;
  align-items: center;
  overflow: visible !important;
  overflow-x: visible !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
.category-filter-pills-wrap::-webkit-scrollbar {
  display: none !important;
}

/* ==========================================================================
   Minimal Split Editorial Hero Card (#featuredBlogHero)
   One side image covering full bleed, other side minimal clean info
   ========================================================================== */
.card-featured-hero {
  background: #ffffff;
  border-radius: 24px;
  border: 1px solid var(--color-border);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  overflow: hidden;
  padding: 0;
  margin-bottom: 48px;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              border-color 0.25s ease;
}

.card-featured-hero:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
  border-color: rgba(0, 113, 227, 0.25);
}

/* Full Bleed Image Side */
.card-featured-hero .card-featured-img-wrap {
  width: 100%;
  height: 100%;
  min-height: 400px;
  position: relative;
  overflow: hidden;
  background: #f2f4f7;
  border-radius: 0;
  border: none;
  box-shadow: none;
}

.card-featured-hero .card-featured-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.card-featured-hero:hover .card-featured-img {
  transform: scale(1.035);
}

.card-featured-hero .featured-img-pill {
  position: absolute;
  top: 20px;
  left: 20px;
  backdrop-filter: blur(16px) saturate(180%);
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.6);
  padding: 6px 14px;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-accent);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  letter-spacing: 0.02em;
}

/* Minimal Info Side */
.card-featured-body {
  padding: clamp(36px, 5vw, 60px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.featured-body-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.featured-body-meta .meta-dot {
  color: var(--color-border);
  font-size: 0.875rem;
}

.featured-body-title {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Inter', sans-serif;
  font-size: clamp(1.75rem, 2.6vw, 2.35rem);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.025em;
  margin: 0 0 16px 0;
  color: var(--color-text);
}

.featured-body-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.featured-body-title a:hover {
  color: var(--color-accent);
}

.featured-body-desc {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--color-secondary);
  margin: 0 0 32px 0;
  max-width: 520px;
}

.featured-body-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 24px;
  border-top: 1px solid var(--color-border-light);
  flex-wrap: wrap;
}

.featured-author-info {
  font-size: 0.8125rem;
  color: var(--color-secondary);
}

.featured-author-info .author-name {
  font-weight: 600;
  color: var(--color-text);
}

.featured-cta-btn {
  background: #0071e3;
  color: #ffffff;
  padding: 10px 22px;
  border-radius: var(--radius-full);
  font-weight: 600;
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  box-shadow: 0 2px 10px rgba(0, 113, 227, 0.2);
  transition: all 0.2s ease;
}

.featured-cta-btn:hover {
  background: #0077ed;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(0, 113, 227, 0.3);
  color: #ffffff;
}

.featured-cta-btn svg {
  transition: transform 0.2s ease;
}

.featured-cta-btn:hover svg {
  transform: translateX(3px);
}

/* Mobile Responsiveness */
@media (max-width: 860px) {
  .card-featured-hero {
    grid-template-columns: 1fr;
    border-radius: 20px;
  }
  .card-featured-hero .card-featured-img-wrap {
    height: 260px;
    min-height: 240px;
  }
  .card-featured-body {
    padding: 28px 22px;
  }
}



/* ==========================================================================
   Apple Calculator Component System & Input Controls
   ========================================================================== */

.calculator-card {
  background: var(--color-surface);
  border-radius: 28px;
  border: 1px solid var(--color-border);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.04);
  padding: clamp(24px, 3.5vw, 42px);
  margin-bottom: 36px;
  position: relative;
  overflow: hidden;
}

.calc-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(24px, 3vw, 40px);
  align-items: stretch;
}

@media (max-width: 860px) {
  .calc-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

/* Field Containers */
.calc-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 22px;
}

.calc-field-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.calc-field-label {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--color-text);
  line-height: 1.35;
}

/* Apple Dynamic Tabular Value Badge */
.calc-value-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 9999px;
  background: var(--pastel-blue-bg);
  border: 1px solid var(--pastel-blue-border);
  color: var(--color-accent);
  font-size: 0.875rem;
  font-weight: 600;
  font-family: var(--font-body);
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
}

/* Apple Custom Range Slider with Dynamic Blue Track Fill */
.calc-slider,
input[type="range"].calc-slider,
input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 8px;
  border-radius: 9999px;
  background: linear-gradient(to right, #0071e3 0%, #0071e3 var(--range-progress, 0%), #e5e5ea var(--range-progress, 0%), #e5e5ea 100%);
  outline: none;
  margin: 12px 0;
  cursor: pointer;
  border: none;
  transition: background 0.05s ease;
}

.calc-slider:focus-visible,
input[type="range"]:focus-visible {
  box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.25);
}

/* Webkit Slider Thumb (Chrome, Safari, Edge, Opera) */
.calc-slider::-webkit-slider-thumb,
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #ffffff;
  border: 2.5px solid #0071e3;
  box-shadow: 0 2px 8px rgba(0, 113, 227, 0.25), 0 1px 3px rgba(0, 0, 0, 0.15);
  cursor: grab;
  transition: transform 0.15s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.15s ease;
  margin-top: 0;
}

.calc-slider::-webkit-slider-thumb:hover,
input[type="range"]::-webkit-slider-thumb:hover {
  transform: scale(1.15);
  box-shadow: 0 4px 14px rgba(0, 113, 227, 0.38), 0 2px 4px rgba(0, 0, 0, 0.15);
}

.calc-slider::-webkit-slider-thumb:active,
input[type="range"]::-webkit-slider-thumb:active {
  cursor: grabbing;
  transform: scale(1.05);
}

/* Mozilla Firefox Slider Thumb & Track */
.calc-slider::-moz-range-track,
input[type="range"]::-moz-range-track {
  height: 8px;
  border-radius: 9999px;
  background: #e5e5ea;
  border: none;
}

.calc-slider::-moz-range-progress,
input[type="range"]::-moz-range-progress {
  height: 8px;
  border-radius: 9999px 0 0 9999px;
  background: #0071e3;
}

.calc-slider::-moz-range-thumb,
input[type="range"]::-moz-range-thumb {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #ffffff;
  border: 2.5px solid #0071e3;
  box-shadow: 0 2px 8px rgba(0, 113, 227, 0.25), 0 1px 3px rgba(0, 0, 0, 0.15);
  cursor: grab;
  transition: transform 0.15s cubic-bezier(0.16, 1, 0.3, 1);
}

.calc-slider::-moz-range-thumb:hover,
input[type="range"]::-moz-range-thumb:hover {
  transform: scale(1.15);
}

.calc-slider::-moz-range-thumb:active,
input[type="range"]::-moz-range-thumb:active {
  cursor: grabbing;
  transform: scale(1.05);
}

/* Apple Select Dropdowns */
.calc-field select,
.calc-select {
  width: 100%;
  height: 48px;
  padding: 0 42px 0 16px;
  border-radius: 14px;
  background-color: #f5f5f7;
  border: 1px solid rgba(0, 0, 0, 0.09);
  color: var(--color-text);
  font-size: 0.9375rem;
  font-weight: 500;
  outline: none;
  transition: var(--transition-smooth);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 16px;
  cursor: pointer;
}

.calc-field select:hover,
.calc-select:hover {
  background-color: #ededf0;
  border-color: rgba(0, 0, 0, 0.16);
}

.calc-field select:focus,
.calc-select:focus {
  background-color: #ffffff;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.18);
}

/* Apple iOS-Style Toggle Switch */
.apple-toggle-label {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  user-select: none;
}

.apple-toggle-label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.apple-toggle-track {
  width: 48px;
  height: 28px;
  background-color: #e5e5ea;
  border-radius: 9999px;
  position: relative;
  transition: background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  flex-shrink: 0;
}

.apple-toggle-knob {
  width: 24px;
  height: 24px;
  background-color: #ffffff;
  border-radius: 50%;
  position: absolute;
  top: 2px;
  left: 2px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18), 0 0 1px rgba(0, 0, 0, 0.1);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.apple-toggle-label input[type="checkbox"]:checked + .apple-toggle-track {
  background-color: #0071e3;
}

.apple-toggle-label input[type="checkbox"]:checked + .apple-toggle-track .apple-toggle-knob {
  transform: translateX(20px);
}

.apple-toggle-label input[type="checkbox"]:focus-visible + .apple-toggle-track {
  box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.25);
}

/* Apple Pro Calculation Result Widget */
.calc-result-box {
  background: linear-gradient(145deg, var(--pastel-blue-bg) 0%, var(--color-surface) 100%);
  border: 1px solid var(--pastel-blue-border);
  border-radius: 22px;
  padding: clamp(26px, 3vw, 36px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  position: relative;
  box-shadow: 0 8px 24px -6px rgba(0, 113, 227, 0.08);
}

.calc-result-caption {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  color: var(--color-accent);
}

.calc-result-number {
  font-size: clamp(2.25rem, 4.2vw, 3.25rem);
  font-weight: 700;
  color: #0071e3;
  line-height: 1.1;
  letter-spacing: -0.035em;
  margin: 10px 0 6px;
  font-variant-numeric: tabular-nums lining-nums;
  font-family: var(--font-body);
}

.calc-result-sub {
  font-size: 0.9375rem;
  color: var(--color-secondary);
  font-weight: 500;
  margin-bottom: 24px;
}

.calc-breakdown-list {
  width: 100%;
  border-top: 1px solid rgba(0, 113, 227, 0.14);
  padding-top: 18px;
  font-size: 0.875rem;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.calc-breakdown-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--color-secondary);
}

.calc-breakdown-val {
  font-weight: 600;
  color: var(--color-text);
  font-variant-numeric: tabular-nums;
  font-family: var(--font-body);
}

/* ==========================================================================
   Gambling Machine / Slot Machine Number Appearance Animation
   ========================================================================== */
.calc-result-number,
.calc-result-sub,
.calc-breakdown-val,
.calc-breakdown-row span:last-child {
  transition: color 0.15s ease;
}

/* Slot machine anticipation (during delay) */
.slot-anticipating-up {
  opacity: 0.82;
  transform: translateY(2px) scale(0.98);
  transition: transform 0.1s ease, opacity 0.1s ease;
}

.slot-anticipating-down {
  opacity: 0.82;
  transform: translateY(-2px) scale(0.98);
  transition: transform 0.1s ease, opacity 0.1s ease;
}

/* Rapid Spinning Reel: Numbers going UP */
.slot-spin-up {
  display: inline-block;
  color: #0071e3 !important;
  animation: slotRollUp 0.12s linear infinite;
  will-change: transform, filter;
}

@keyframes slotRollUp {
  0% {
    transform: translateY(4px);
    filter: blur(0.6px);
  }
  50% {
    transform: translateY(-4px);
    filter: blur(1.2px);
  }
  100% {
    transform: translateY(0px);
    filter: blur(0.4px);
  }
}

/* Rapid Spinning Reel: Numbers going DOWN */
.slot-spin-down {
  display: inline-block;
  color: #ea580c !important;
  animation: slotRollDown 0.12s linear infinite;
  will-change: transform, filter;
}

@keyframes slotRollDown {
  0% {
    transform: translateY(-4px);
    filter: blur(0.6px);
  }
  50% {
    transform: translateY(4px);
    filter: blur(1.2px);
  }
  100% {
    transform: translateY(0px);
    filter: blur(0.4px);
  }
}

/* Jackpot / Reel Lock-in Pop */
.slot-locked {
  display: inline-block;
  animation: slotLockIn 0.38s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes slotLockIn {
  0% {
    transform: scale(1.14);
    filter: drop-shadow(0 0 10px rgba(0, 113, 227, 0.45));
  }
  50% {
    transform: scale(0.98);
  }
  100% {
    transform: scale(1);
    filter: none;
  }
}


/* Article Detail Header & Media */
.article-header {
  margin-bottom: 24px;
}
.article-meta-top {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.article-header .article-title,
.article-header h1,
.article-hero-title {
  font-size: clamp(2.35rem, 4.2vw, 3.25rem);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.03em;
  margin-bottom: 16px;
  color: var(--color-text);
}
/* ==========================================================================
   Apple-Grade Minimalist Author Component System
   Supports: .article-author-bar & .article-author-row
   ========================================================================== */
.article-author-bar,
.article-author-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  padding: 14px 0;
  border-top: 1px solid var(--color-border-light);
  border-bottom: 1px solid var(--color-border-light);
  margin: 20px 0 28px;
}

.article-author-group {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.article-avatar {
  width: 42px;
  height: 42px;
  min-width: 42px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0066cc 0%, #2563eb 100%);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 0.875rem;
  letter-spacing: -0.01em;
  box-shadow: 0 2px 8px rgba(0, 102, 204, 0.2);
  flex-shrink: 0;
  overflow: hidden;
  user-select: none;
}

.article-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.article-author-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.author-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.author-name-row .author-name,
.article-author-info > div:first-child,
.article-author-row > div:not(.article-avatar) > div:first-child {
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--color-text);
  line-height: 1.3;
}

.author-badge-verified {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.6875rem;
  font-weight: 600;
  color: #059669;
  background: rgba(16, 185, 129, 0.08);
  border: 1px solid rgba(16, 185, 129, 0.2);
  border-radius: var(--radius-full);
  padding: 2px 8px;
  line-height: 1;
  letter-spacing: 0.01em;
}

.author-meta-row,
.article-author-info > div:last-child,
.article-author-row > div:not(.article-avatar) > div:last-child {
  font-size: 0.8125rem;
  color: var(--color-secondary);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  line-height: 1.4;
}

.author-meta-row .author-dot,
.article-author-row .author-dot,
.author-dot {
  color: var(--color-tertiary);
  font-size: 0.875rem;
  line-height: 1;
}

.author-trust-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-secondary);
  background: var(--color-surface-subtle);
  border: 1px solid var(--color-border-light);
  padding: 5px 12px;
  border-radius: var(--radius-full);
  letter-spacing: 0.01em;
  white-space: nowrap;
  transition: all 0.2s ease;
}

.author-trust-pill svg {
  color: var(--color-accent);
  flex-shrink: 0;
}

.author-trust-pill:hover {
  background: var(--color-surface);
  border-color: var(--color-border);
  color: var(--color-text);
}

@media (max-width: 640px) {
  .article-author-bar,
  .article-author-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .author-trust-pill {
    align-self: flex-start;
  }
}
.article-hero-media {
  margin: 28px 0 36px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  height: clamp(240px, 40vw, 440px);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.06);
  background: var(--color-surface-subtle);
}
.article-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Takeaways Box */
.takeaways-box {
  background: var(--pastel-blue-bg);
  border: 1px solid var(--pastel-blue-border);
  border-left: 4px solid var(--color-accent);
  border-radius: var(--radius-sm);
  padding: 24px 28px;
  margin: 36px 0;
}
.takeaways-box h2 {
  font-size: 1.0625rem;
  font-weight: 600;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--color-text);
}

/* Article Body Typography & Content */
.article-body {
  font-size: 1.0625rem;
  line-height: 1.8;
  color: var(--color-text);
}
.article-p {
  margin-bottom: 24px;
}
.article-h2 {
  font-size: clamp(1.4rem, 2.2vw, 1.75rem);
  font-weight: 600;
  margin: 44px 0 18px;
  line-height: 1.25;
  color: var(--color-text);
}
.article-h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 32px 0 14px;
  color: var(--color-text);
}
.article-link {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 500;
}
.article-link:hover {
  color: var(--color-accent-hover);
}

/* Apple Table & Callout */
.apple-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
  background: #ffffff;
}
.apple-table th {
  padding: 14px 18px;
  font-weight: 600;
  color: var(--color-text);
  background: var(--color-surface-hover);
  border-bottom: 1px solid var(--color-border);
  text-align: left;
}
.apple-table td {
  padding: 14px 18px;
  color: var(--color-secondary);
  border-bottom: 1px solid var(--color-border-light);
  line-height: 1.55;
}
.apple-table tbody tr:hover {
  background: var(--pastel-blue-bg);
}

.apple-callout {
  border-radius: var(--radius-sm);
  padding: 22px 26px;
  margin: 32px 0;
  border: 1px solid rgba(0, 0, 0, 0.08);
}
.apple-callout-info {
  background: var(--pastel-blue-bg);
  border-color: var(--pastel-blue-border);
  border-left: 4px solid var(--color-accent);
}
.apple-callout-warning {
  background: var(--pastel-amber-bg);
  border-color: var(--pastel-amber-border);
  border-left: 4px solid var(--pastel-amber-accent);
}

/* ==========================================================================
   Apple Compare Component System
   ========================================================================== */

.compare-verdict-box {
  background: var(--pastel-blue-bg);
  border: 1px solid var(--pastel-blue-border);
  border-left: 4px solid var(--color-accent);
  border-radius: var(--radius-md);
  padding: 28px 32px;
  margin-bottom: 36px;
}
.compare-verdict-title {
  font-size: 1.1875rem;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.compare-verdict-body {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--color-secondary);
}

.apple-compare-table-wrap {
  width: 100%;
  overflow-x: auto;
  margin: 32px 0;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--radius-md);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
  background: #ffffff;
}
.apple-compare-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
  text-align: left;
}
.apple-compare-table thead th {
  padding: 18px 20px;
  font-weight: 600;
  color: var(--color-text);
  border-bottom: 2px solid var(--color-border);
  background: var(--color-surface);
}
.apple-compare-table th.col-feature {
  width: 25%;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-secondary);
}
.apple-compare-table th.col-option-a {
  width: 37.5%;
  background: var(--pastel-blue-bg);
  color: var(--color-accent);
}
.apple-compare-table th.col-option-b {
  width: 37.5%;
  background: var(--pastel-green-bg);
  color: var(--pastel-green-accent);
}
.apple-compare-table tbody tr.row-data td {
  padding: 18px 20px;
  vertical-align: top;
  border-bottom: 1px solid var(--color-border-light);
  line-height: 1.6;
}
.apple-compare-table tbody tr.row-data td.cell-feature {
  font-weight: 600;
  color: var(--color-text);
}
.apple-compare-table tbody tr.row-data td.cell-option {
  color: var(--color-secondary);
}
.apple-compare-table tbody tr.row-why td {
  padding: 12px 20px 18px;
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
  font-size: 0.875rem;
  color: var(--color-secondary);
}
.apple-compare-table tbody tr.row-why .why-label {
  font-weight: 600;
  color: var(--color-accent);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: 6px;
}

/* ==========================================================================
   Apple Glossary Bento & Quiz System
   ========================================================================== */

.glossary-bento {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-bottom: 36px;
}
.glossary-card-item {
  background: #ffffff;
  border-radius: var(--radius-md);
  border: 1px solid rgba(0, 0, 0, 0.08);
  padding: 28px 32px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.03);
}
.glossary-card-item h2 {
  font-size: 1.1875rem;
  font-weight: 600;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.glossary-quiz-box {
  background: linear-gradient(135deg, #f8faff 0%, #f0fdf4 100%);
  border: 1px solid rgba(0, 113, 227, 0.16);
  border-radius: var(--radius-md);
  padding: 28px 32px;
  margin: 32px 0;
}
.glossary-quiz-q {
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 18px;
}
.glossary-quiz-options {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.quiz-option-card {
  padding: 14px 18px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 14px;
  font-size: 0.9375rem;
  color: var(--color-text);
  transition: var(--transition-smooth);
}
.quiz-option-card:hover {
  border-color: var(--color-accent);
  background: var(--pastel-blue-bg);
}
.quiz-option-card.is-correct {
  border-color: #34c759;
  background: #f0fdf4;
}

/* ==========================================================================
   Blog Big Card & Related Editorial Guides (1 Big + 2 Small)
   ========================================================================== */

/* Featured Big Card Takeaway Pills */
.featured-takeaways-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}
.featured-takeaway-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  background: rgba(0, 113, 227, 0.06);
  border-radius: var(--radius-full);
  font-size: 0.8125rem;
  color: var(--color-accent);
  font-weight: 500;
}

/* Floating Image Badge */
.featured-img-badge {
  position: absolute;
  bottom: 16px;
  left: 16px;
  backdrop-filter: blur(16px) saturate(180%);
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.4);
  padding: 6px 14px;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* Related Editorial Guides Layout */
.related-guides-wrap {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Big Related Card */
.related-big-card {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 28px;
  background: #ffffff;
  border-radius: 24px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
  overflow: hidden;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease;
}
.related-big-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 40px -8px rgba(0, 0, 0, 0.09);
  border-color: rgba(0, 113, 227, 0.25);
}
.related-big-media {
  position: relative;
  overflow: hidden;
  min-height: 220px;
  background: var(--color-surface-subtle);
}
.related-big-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.related-big-card:hover .related-big-img {
  transform: scale(1.04);
}
.related-big-body {
  padding: 28px 28px 28px 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.related-big-title {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 10px;
  color: var(--color-text);
}
.related-big-title a:hover {
  color: var(--color-accent);
}
.related-big-desc {
  font-size: 0.9375rem;
  color: var(--color-secondary);
  line-height: 1.55;
  margin-bottom: 18px;
}

@media (max-width: 768px) {
  .related-big-card {
    grid-template-columns: 1fr;
  }
  .related-big-body {
    padding: 24px;
  }
  .related-big-media {
    height: 200px;
    min-height: unset;
  }
}


/* ==========================================================================
   Home Search Input & Floating Suggestions Dropdown
   ========================================================================== */
.home-search-container {
  position: relative;
  width: 100%;
  max-width: 640px;
  margin: 28px auto 22px;
  text-align: left;
  box-sizing: border-box;
}

.home-search-input-wrap {
  display: flex;
  align-items: center;
  background: #ffffff;
  border: 1.5px solid rgba(0, 0, 0, 0.12);
  border-radius: var(--radius-full);
  padding: 14px 22px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  transition: all 0.25s ease;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
}

@media (max-width: 640px) {
  .home-search-input-wrap {
    padding: 12px 16px;
  }
}

.home-search-input-wrap:focus-within {
  border-color: var(--color-accent);
  box-shadow: 0 8px 30px rgba(0, 113, 227, 0.16);
  background: #ffffff;
}

.home-search-input-wrap svg {
  color: var(--color-secondary);
  flex-shrink: 0;
}

.home-search-input-wrap input {
  border: none;
  outline: none;
  background: transparent;
  font-size: 1rem;
  color: var(--color-text);
  width: 100%;
  min-width: 0;
  flex: 1;
  margin-left: 12px;
  font-family: inherit;
}

.home-search-input-wrap input::placeholder {
  color: var(--color-secondary);
  font-size: 0.9375rem;
}

/* ==========================================================================
   Minimal Apple Search Popups & Pill Scrollbar System
   ========================================================================== */

/* Universal Minimal Pill Scrollbar (Hidden background track bar) */
.search-results-list,
.search-suggestions-box {
  max-height: 440px;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.18) transparent;
  padding: 8px 10px;
}

.search-results-list::-webkit-scrollbar,
.search-suggestions-box::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}

.search-results-list::-webkit-scrollbar-track,
.search-suggestions-box::-webkit-scrollbar-track {
  background: transparent !important;
  border: none;
  margin: 6px 0;
}

.search-results-list::-webkit-scrollbar-thumb,
.search-suggestions-box::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.16);
  border-radius: 9999px;
  border: none;
  transition: background 0.2s ease;
}

.search-results-list::-webkit-scrollbar-thumb:hover,
.search-suggestions-box::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.32);
}

.search-results-list::-webkit-scrollbar-corner,
.search-suggestions-box::-webkit-scrollbar-corner {
  background: transparent;
}

/* Home Search Dropdown Box */
.search-suggestions-box {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  right: 0;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 20px;
  box-shadow: 0 16px 44px rgba(0, 0, 0, 0.12);
  z-index: 1000;
}

/* Section Group Headers */
.search-section-header {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-secondary);
  padding: 10px 10px 4px;
}

/* ==========================================================================
   Apple Spotlight-Inspired Minimal Search Result Cards
   ========================================================================== */
.search-result-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 10px;
  border-radius: 12px;
  text-decoration: none;
  color: var(--color-text);
  background: transparent;
  transition: background 0.15s ease, transform 0.12s ease;
  cursor: pointer;
}

.search-result-item:hover,
.search-result-item:focus-visible {
  background: #f5f5f7;
  outline: none;
}

/* Category Squircle Icon Box */
.search-item-icon {
  width: 32px;
  height: 32px;
  min-width: 32px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.15s ease;
}

.search-result-item:hover .search-item-icon {
  transform: scale(1.06);
}

.search-icon-calc {
  background: rgba(0, 113, 227, 0.08);
  color: #0071e3;
}

.search-icon-guide {
  background: rgba(52, 199, 89, 0.1);
  color: #248a3d;
}

.search-icon-compare {
  background: rgba(175, 82, 222, 0.1);
  color: #8944ab;
}

.search-icon-glossary {
  background: rgba(255, 149, 0, 0.1);
  color: #b25000;
}

.search-icon-scenario {
  background: rgba(255, 45, 85, 0.1);
  color: #d61b47;
}

.search-icon-qa {
  background: rgba(0, 102, 204, 0.1);
  color: #0066cc;
}

/* Item Text Content */
.search-item-content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.search-item-title {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--color-text);
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.search-item-desc {
  font-size: 0.775rem;
  color: var(--color-secondary);
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Item Meta: Intent Pill & Arrow */
.search-item-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.pill-intent {
  display: inline-flex;
  align-items: center;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 3px 8px;
  border-radius: var(--radius-full);
  line-height: 1;
  flex-shrink: 0;
}

.pill-intent-calc {
  background: rgba(0, 113, 227, 0.08);
  color: #0071e3;
}

.pill-intent-guide {
  background: rgba(52, 199, 89, 0.1);
  color: #248a3d;
}

.pill-intent-compare {
  background: rgba(175, 82, 222, 0.1);
  color: #8944ab;
}

.pill-intent-glossary {
  background: rgba(255, 149, 0, 0.1);
  color: #b25000;
}

.pill-intent-scenario {
  background: rgba(255, 45, 85, 0.1);
  color: #d61b47;
}

.pill-intent-qa {
  background: rgba(0, 102, 204, 0.1);
  color: #0066cc;
}

.search-item-arrow {
  color: #a1a1a6;
  opacity: 0.6;
  transition: transform 0.15s ease, opacity 0.15s ease, color 0.15s ease;
}

.search-result-item:hover .search-item-arrow {
  opacity: 1;
  color: var(--color-accent);
  transform: translateX(2px);
}

@media (max-width: 520px) {
  .search-item-desc {
    display: none;
  }
  .search-item-arrow {
    display: none;
  }
}


/* ==========================================================================
   Redesigned Tools Hub: Diverse Apple Card Components
   ========================================================================== */
.tools-spotlight-hero {
  background: linear-gradient(135deg, #f5f9ff 0%, #ffffff 100%);
  border: 1px solid rgba(0, 113, 227, 0.15);
  border-radius: 28px;
  padding: clamp(32px, 4vw, 56px);
  margin-bottom: 56px;
  display: grid;
  grid-template-columns: 1.25fr 0.95fr;
  gap: 40px;
  align-items: center;
  box-shadow: 0 8px 32px rgba(0, 113, 227, 0.04);
  position: relative;
  overflow: hidden;
}

.tools-spotlight-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #ffffff;
  border: 1px solid rgba(0, 113, 227, 0.2);
  color: var(--color-accent);
  padding: 6px 14px;
  border-radius: var(--radius-full);
  font-size: 0.8125rem;
  font-weight: 600;
  margin-bottom: 16px;
}

.tools-spotlight-title {
  font-size: clamp(1.85rem, 2.5vw, 2.4rem);
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 14px;
  color: var(--color-text);
}

.tools-spotlight-desc {
  font-size: 1.0625rem;
  color: var(--color-secondary);
  line-height: 1.6;
  margin-bottom: 24px;
  max-width: 560px;
}

.tools-feature-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 28px;
}

.tools-feature-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  padding: 6px 12px;
  border-radius: var(--radius-full);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-text);
}

.tools-preview-card {
  background: #ffffff;
  border-radius: 24px;
  border: 1px solid rgba(0, 113, 227, 0.16);
  box-shadow: 0 12px 36px rgba(0, 113, 227, 0.06);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.tools-preview-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--color-border-light);
}

.tools-preview-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-accent);
}

.tools-preview-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #059669;
  background: #ecfdf5;
  padding: 4px 10px;
  border-radius: var(--radius-full);
}

.status-pulse-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #10b981;
  box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.2);
}

.tools-formula-box {
  background: var(--color-surface);
  border-radius: 14px;
  padding: 16px;
  border: 1px solid var(--color-border-light);
}

.tools-formula-label {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-tertiary);
  margin-bottom: 6px;
}

.tools-formula-desc {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--color-secondary);
  margin: 0;
}

.tools-preview-specs {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tools-spec-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8125rem;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--color-border-light);
}

.tools-spec-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.tools-spec-row .spec-label {
  color: var(--color-tertiary);
  font-weight: 500;
}

.tools-spec-row .spec-value {
  color: var(--color-text);
  font-weight: 600;
  text-transform: capitalize;
}

.tools-section-heading {
  margin-bottom: 28px;
}
.tools-section-heading h2 {
  font-size: 1.65rem;
  font-weight: 600;
  margin-bottom: 8px;
}
.tools-section-heading p {
  font-size: 1rem;
  color: var(--color-secondary);
}

.tools-core-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  margin-bottom: 56px;
}

.tool-core-card {
  background: #ffffff;
  border-radius: 24px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  padding: 32px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s ease;
}

.tool-core-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.08);
  border-color: rgba(0, 113, 227, 0.3);
}

.tool-core-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.tool-core-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tool-core-title {
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 10px;
}

.tool-core-title a {
  color: inherit;
  text-decoration: none;
}
.tool-core-title a:hover {
  color: var(--color-accent);
}

.tool-core-desc {
  font-size: 0.9375rem;
  color: var(--color-secondary);
  line-height: 1.6;
  margin-bottom: 24px;
}

.tools-shelf-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 40px;
}

.tool-shelf-card {
  background: #ffffff;
  border-radius: 20px;
  border: 1px solid rgba(0, 0, 0, 0.07);
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.02);
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: var(--transition-smooth);
}

.tool-shelf-card:hover {
  transform: translateY(-2px);
  border-color: rgba(0, 113, 227, 0.25);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.06);
}

.tool-shelf-title {
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 8px;
}

.tool-shelf-title a {
  color: inherit;
  text-decoration: none;
}
.tool-shelf-title a:hover {
  color: var(--color-accent);
}

.tool-shelf-desc {
  font-size: 0.875rem;
  color: var(--color-secondary);
  line-height: 1.5;
  margin-bottom: 20px;
}

@media (max-width: 900px) {
  .tools-spotlight-hero {
    grid-template-columns: 1fr;
    padding: 32px 24px;
  }
  .tools-core-grid {
    grid-template-columns: 1fr;
  }
  .tools-shelf-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Redesigned Scenarios Hub & Detail Pages
   ========================================================================== */
.scenario-profile-card {
  background: #ffffff;
  border-radius: 24px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  padding: 32px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.2s ease;
}

.scenario-profile-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.08);
  border-color: rgba(0, 113, 227, 0.3);
}

.scenario-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.scenario-avatar-wrap {
  display: flex;
  align-items: center;
  gap: 14px;
}

.scenario-avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.125rem;
  color: #0071e3;
  background: var(--pastel-blue-bg);
}

.scenario-name {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 2px;
}

.scenario-meta {
  font-size: 0.8125rem;
  color: var(--color-secondary);
}

.scenario-dilemma-quote {
  background: linear-gradient(135deg, #f8faff 0%, #f0f7ff 100%);
  border: 1px solid rgba(0, 113, 227, 0.12);
  border-left: 4px solid var(--color-accent);
  border-radius: 14px;
  padding: 16px 20px;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--color-text);
  font-style: italic;
  line-height: 1.55;
  margin-bottom: 18px;
}

.scenario-situation-text {
  font-size: 0.9375rem;
  color: var(--color-secondary);
  line-height: 1.6;
  margin-bottom: 24px;
}

.scenario-budget-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--pastel-green-bg);
  border: 1px solid var(--pastel-green-border);
  color: var(--pastel-green-accent);
  padding: 5px 12px;
  border-radius: var(--radius-full);
  font-size: 0.8125rem;
  font-weight: 600;
  margin-bottom: 20px;
}

/* Scenario Detail Page */
.scenario-detail-banner {
  background: linear-gradient(135deg, #f0f7ff 0%, #ffffff 100%);
  border: 1px solid rgba(0, 113, 227, 0.14);
  border-radius: 24px;
  padding: clamp(28px, 4vw, 44px);
  margin-bottom: 40px;
}

.scenario-quote-box {
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 600;
  line-height: 1.35;
  color: var(--color-text);
  margin-bottom: 18px;
  font-style: italic;
}

.scenario-scout-take {
  background: #ffffff;
  border: 1px solid rgba(0, 113, 227, 0.18);
  border-radius: 16px;
  padding: 20px 24px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.scenario-take-label {
  font-weight: 700;
  color: var(--color-accent);
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}

.scenario-take-body {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--color-text);
  margin: 0;
}

.scenario-risk-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 44px;
}

.scenario-risk-card {
  background: #fff8f8;
  border: 1px solid #fed7d7;
  border-radius: 18px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.scenario-risk-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #991b1b;
  display: flex;
  align-items: center;
  gap: 8px;
}

.scenario-risk-desc {
  font-size: 0.875rem;
  line-height: 1.55;
  color: #7f1d1d;
  margin: 0;
}

.scenario-strategy-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 44px;
}

.scenario-strategy-card {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 18px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.scenario-strategy-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #166534;
  display: flex;
  align-items: center;
  gap: 8px;
}

.scenario-strategy-desc {
  font-size: 0.875rem;
  line-height: 1.55;
  color: #14532d;
  margin: 0;
}

.scenario-action-box {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 24px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.04);
  padding: 32px 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

@media (max-width: 860px) {
  .scenario-risk-grid,
  .scenario-strategy-grid {
    grid-template-columns: 1fr;
  }
  .scenario-action-box {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ==========================================================================
   Apple 50/50 Split Category Hero Showcase
   One side minimal well-arranged content, other half full-bleed image
   ========================================================================== */
.category-hero-card {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: 28px;
  padding: 0;
  margin-bottom: 48px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.04);
  display: grid;
  grid-template-columns: 1.08fr 1fr;
  align-items: stretch;
  overflow: hidden;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              border-color 0.25s ease;
}

.category-hero-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.07);
  border-color: rgba(0, 113, 227, 0.2);
}

/* Minimal Content Side */
.category-hero-content {
  padding: clamp(36px, 5vw, 56px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.category-hero-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
}

.category-hero-title {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Inter', sans-serif;
  font-size: clamp(2rem, 3.2vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.15;
  margin: 0 0 14px 0;
  color: var(--color-text);
}

.category-hero-desc {
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--color-secondary);
  margin: 0 0 28px 0;
  max-width: 520px;
}

/* Apple Well-Arranged Specifications Strip */
.category-specs-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  padding: 16px 20px;
  background: var(--color-surface);
  border: 1px solid var(--color-border-light);
  border-radius: 16px;
  margin-bottom: 28px;
}

.category-spec-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.category-spec-label {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-tertiary);
}

.category-spec-val {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.35;
}

.category-spec-val.highlight {
  color: var(--color-accent);
}

/* Action Buttons */
.category-hero-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.category-hero-actions .btn-primary {
  background: #0071e3;
  color: #ffffff;
  border-radius: 980px;
  padding: 11px 24px;
  font-weight: 500;
  font-size: 0.9375rem;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.category-hero-actions .btn-primary:hover {
  background: #0077ed;
  transform: translateY(-1px);
}

.category-hero-actions .btn-secondary {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: 980px;
  padding: 11px 22px;
  font-weight: 500;
  font-size: 0.9375rem;
  color: var(--color-text);
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.category-hero-actions .btn-secondary:hover {
  background: var(--color-surface-hover);
  border-color: var(--color-border);
}

/* Full Bleed Image Half */
.category-hero-media {
  width: 100%;
  height: 100%;
  min-height: 440px;
  position: relative;
  overflow: hidden;
  background: #f2f4f7;
  border-radius: 0;
  border: none;
  box-shadow: none;
}

.category-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.category-hero-card:hover .category-hero-media img {
  transform: scale(1.035);
}

.category-hero-badge {
  position: absolute;
  top: 20px;
  right: 20px;
  backdrop-filter: blur(16px) saturate(180%);
  -webkit-backdrop-filter: blur(16px) saturate(180%);
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.6);
  padding: 7px 14px;
  border-radius: 980px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  letter-spacing: 0.02em;
}

@media (max-width: 960px) {
  .category-hero-card {
    grid-template-columns: 1fr;
  }
  .category-hero-media {
    min-height: 300px;
    height: 300px;
    order: -1;
  }
  .category-hero-content {
    padding: 32px 24px;
  }
  .category-specs-row {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

/* ==========================================================================
   Editorial Blog Pages Mobile Optimization System
   ========================================================================== */

.article-header {
  margin-bottom: 28px;
}

.article-meta-top {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.article-header .article-title,
.article-header h1,
.article-hero-title {
  font-size: clamp(2.35rem, 4.2vw, 3.25rem);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.025em;
  margin: 14px 0 16px;
  color: var(--color-text);
  word-break: break-word;
}

.article-hero-media {
  margin: 28px 0 36px;
  border-radius: 24px;
  overflow: hidden;
  height: clamp(240px, 35vw, 420px);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.06);
  background: var(--color-surface-subtle);
}

/* Article Tool CTA Card & Button */
.article-cta-card {
  margin: 40px 0;
  padding: 28px;
  border-radius: var(--radius-md);
  box-sizing: border-box;
  overflow: hidden;
}

.article-cta-btn {
  background: #0071e3 !important;
  color: #ffffff !important;
  max-width: 100%;
  white-space: normal;
  text-align: center;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  line-height: 1.35;
}

/* Related Editorial Guides Header (Eyebrow above Title) */
.related-section-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 20px;
}

.related-section-header .pill {
  margin: 0;
}

.related-section-header h3 {
  font-size: 1.35rem;
  font-weight: 600;
  margin: 0;
  color: var(--color-text);
}

/* Mobile Responsive Overrides for Blog & Reading Pages */
@media (max-width: 640px) {
  .article-header {
    margin-bottom: 20px !important;
  }
  .article-header .article-title,
  .article-header h1,
  .article-hero-title {
    font-size: clamp(1.75rem, 6.5vw, 2.25rem) !important;
    line-height: 1.2 !important;
    margin: 10px 0 14px !important;
  }
  .breadcrumbs {
    margin-bottom: 14px !important;
    font-size: 0.75rem !important;
  }
  .article-hero-media {
    margin: 18px 0 24px !important;
    border-radius: 16px !important;
    height: 200px !important;
  }
  .takeaways-box {
    margin: 24px 0 !important;
    padding: 20px 16px !important;
    border-radius: var(--radius-sm) !important;
  }
  .takeaways-box h2 {
    font-size: 0.9375rem !important;
  }
  .takeaways-box ul {
    font-size: 0.875rem !important;
    padding-left: 18px !important;
  }
  .article-p {
    font-size: 0.98rem !important;
    line-height: 1.65 !important;
    margin-bottom: 16px !important;
  }
  .article-h2 {
    font-size: 1.25rem !important;
    margin: 28px 0 12px !important;
  }
  .article-h3 {
    font-size: 1.1rem !important;
    margin: 22px 0 10px !important;
  }
  .article-cta-card {
    padding: 20px 16px !important;
    margin: 28px 0 !important;
    border-radius: var(--radius-sm) !important;
  }
  .article-cta-card h3 {
    font-size: 1.0625rem !important;
  }
  .article-cta-card p {
    font-size: 0.875rem !important;
    margin-bottom: 16px !important;
  }
  .article-cta-btn {
    width: 100% !important;
    padding: 12px 16px !important;
    font-size: 0.875rem !important;
    justify-content: center !important;
    border-radius: 980px !important;
  }
  .related-section-header h3 {
    font-size: 1.2rem !important;
  }
  .related-big-body {
    padding: 18px 16px !important;
  }
  .related-big-title {
    font-size: 1.125rem !important;
  }
}

/* ==========================================================================
   Apple-Grade Accessible FAQ Accordion & Knowledge Base
   ========================================================================== */
.faq-wrap {
  margin: 48px 0 36px;
  box-sizing: border-box;
}

.faq-header {
  margin-bottom: 24px;
}

.faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.faq-item {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
  overflow: hidden;
}

.faq-item:hover {
  border-color: rgba(0, 113, 227, 0.35);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.03);
}

.faq-item[open] {
  border-color: var(--color-accent);
  box-shadow: 0 6px 20px rgba(0, 113, 227, 0.07);
}

.faq-question {
  padding: 18px 22px;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--color-text);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  list-style: none;
  user-select: none;
  line-height: 1.4;
}

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

.faq-question-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--color-secondary);
  transition: transform 0.25s ease, color 0.25s ease;
}

.faq-item[open] .faq-question-icon {
  transform: rotate(180deg);
  color: var(--color-accent);
}

.faq-answer {
  padding: 0 22px 20px;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--color-secondary);
  border-top: 1px solid var(--color-border-light);
  padding-top: 16px;
}

.faq-answer p {
  margin: 0 0 12px;
}

.faq-answer p:last-child {
  margin-bottom: 0;
}

.faq-answer a {
  color: var(--color-accent);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--transition-fast);
}

.faq-answer a:hover {
  color: #0056b3;
}

@media (max-width: 640px) {
  .faq-wrap {
    margin: 36px 0 24px;
  }
  .faq-question {
    padding: 16px 18px;
    font-size: 0.95rem;
  }
  .faq-answer {
    padding: 0 18px 16px;
    padding-top: 14px;
    font-size: 0.875rem;
  }
}

/* ==========================================================================
   Apple-Grade Head-to-Head Comparison Design System
   ========================================================================== */

/* 1. Side-by-Side Dual Header Banner */
.compare-dual-banner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  margin: 32px 0 36px;
  position: relative;
}

@media (max-width: 768px) {
  .compare-dual-banner {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

.compare-card-a,
.compare-card-b {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: clamp(24px, 3.5vw, 32px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
}

.compare-card-a {
  border-top: 4px solid #0071e3;
}

.compare-card-b {
  border-top: 4px solid #7c3aed;
}

.compare-card-a:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(0, 113, 227, 0.08);
  border-color: rgba(0, 113, 227, 0.35);
}

.compare-card-b:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(124, 58, 237, 0.08);
  border-color: rgba(124, 58, 237, 0.35);
}

.compare-opt-tag {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: var(--radius-full);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 14px;
  width: fit-content;
}

.compare-card-a .compare-opt-tag {
  background: rgba(0, 113, 227, 0.08);
  color: #0071e3;
  border: 1px solid rgba(0, 113, 227, 0.2);
}

.compare-card-b .compare-opt-tag {
  background: rgba(124, 58, 237, 0.08);
  color: #7c3aed;
  border: 1px solid rgba(124, 58, 237, 0.2);
}

.compare-opt-name {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: clamp(1.3rem, 2.5vw, 1.65rem);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 10px;
  line-height: 1.3;
  letter-spacing: -0.015em;
}

.compare-opt-summary {
  font-size: 0.9375rem;
  color: var(--color-secondary);
  line-height: 1.6;
  margin: 0;
}

.compare-vs-badge {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #ffffff;
  border: 2px solid var(--color-border);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Poppins', sans-serif;
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--color-secondary);
  z-index: 2;
  margin: 0 auto;
  flex-shrink: 0;
}

/* 2. Actuarial Decision Recommendation Callout */
.compare-recommendation-box {
  margin: 32px 0;
  padding: 24px 28px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(0, 113, 227, 0.18);
  border-left: 4px solid var(--color-accent);
  background: #f8faff;
  box-shadow: 0 2px 12px rgba(0, 113, 227, 0.03);
}

.compare-recommendation-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-text);
  margin-bottom: 10px;
}

.compare-recommendation-title svg {
  color: var(--color-accent);
}

.compare-recommendation-text {
  margin: 0;
  line-height: 1.65;
  color: var(--color-text);
  font-size: 0.95rem;
}

/* 3. The Comparison Matrix Table */
.compare-scroll-hint {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-secondary);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 8px 14px;
  margin-bottom: 12px;
}

@media (max-width: 680px) {
  .compare-scroll-hint {
    display: flex;
  }
}

.compare-table-container {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  margin: 28px 0 40px;
  position: relative;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.compare-matrix-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  text-align: left;
  font-size: 0.9375rem;
  line-height: 1.6;
}

.compare-matrix-table thead th {
  background: #f8fafc;
  border-bottom: 2px solid var(--color-border);
  padding: 16px 20px;
  box-sizing: border-box;
}

.compare-matrix-table th.col-feature {
  width: 28%;
  min-width: 160px;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-secondary);
}

.compare-matrix-table th.col-option-a {
  width: 36%;
  min-width: 220px;
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: #0071e3;
  border-left: 1px solid var(--color-border-light);
}

.compare-matrix-table th.col-option-b {
  width: 36%;
  min-width: 220px;
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: #7c3aed;
  border-left: 1px solid var(--color-border-light);
}

.compare-matrix-table tr.row-data {
  transition: background 0.15s ease;
}

.compare-matrix-table tr.row-data:hover {
  background: rgba(0, 113, 227, 0.02);
}

.compare-matrix-table td.cell-feature {
  padding: 16px 20px;
  font-weight: 600;
  color: var(--color-text);
  vertical-align: top;
  border-bottom: 1px solid var(--color-border-light);
  background: #fbfbfd;
  font-size: 0.9rem;
}

.compare-matrix-table td.cell-option {
  padding: 16px 20px;
  color: #334155;
  vertical-align: top;
  border-bottom: 1px solid var(--color-border-light);
  border-left: 1px solid var(--color-border-light);
  font-size: 0.9rem;
  line-height: 1.6;
}

.compare-matrix-table tr.row-why {
  background: linear-gradient(135deg, rgba(0, 113, 227, 0.03) 0%, rgba(240, 247, 255, 0.02) 100%);
}

.compare-matrix-table tr.row-why td {
  padding: 12px 20px 14px;
  border-bottom: 2px solid var(--color-border);
  color: #475569;
  font-size: 0.84375rem;
  line-height: 1.55;
}

.compare-matrix-table .why-label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.71875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-accent);
  margin-right: 6px;
}

.compare-matrix-table .why-label svg {
  color: var(--color-accent);
  flex-shrink: 0;
}

/* 4. Compare Callout Banner & Action Card */
.compare-cta-card {
  padding: 32px;
  margin-top: 40px;
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}

.compare-cta-card h3 {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 6px;
}

.compare-cta-card p {
  font-size: 0.9375rem;
  color: var(--color-secondary);
  margin: 0;
}

/* 5. Compare Hub Grid Cards */
#compareCardsGrid .apple-card {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 28px;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
  box-sizing: border-box;
}

#compareCardsGrid .apple-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px -8px rgba(0, 0, 0, 0.08);
  border-color: rgba(0, 113, 227, 0.35);
}

/* 6. Dark theme accessibility overrides for Compare & QA if explicitly enabled */
[data-theme="dark"] .compare-card-a,
[data-theme="dark"] .compare-card-b {
  background: #1c1c1e;
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .compare-vs-badge {
  background: #2c2c2e;
  border-color: rgba(255, 255, 255, 0.15);
  color: #f5f5f7;
}

[data-theme="dark"] .compare-opt-name {
  color: #f5f5f7;
}

[data-theme="dark"] .compare-opt-summary {
  color: #94a3b8;
}

[data-theme="dark"] .compare-table-container {
  background: #1c1c1e;
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .compare-matrix-table thead th {
  background: rgba(28, 28, 30, 0.96);
  border-bottom-color: rgba(255, 255, 255, 0.12);
}

[data-theme="dark"] .compare-matrix-table td.cell-feature {
  background: #18181a;
  color: #f5f5f7;
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

[data-theme="dark"] .compare-matrix-table td.cell-option {
  color: #cbd5e1;
  border-bottom-color: rgba(255, 255, 255, 0.08);
  border-left-color: rgba(255, 255, 255, 0.08);
}

[data-theme="dark"] .compare-matrix-table tr.row-why {
  background: rgba(0, 113, 227, 0.1);
}

[data-theme="dark"] .compare-matrix-table tr.row-why td {
  border-bottom-color: rgba(255, 255, 255, 0.1);
  color: #94a3b8;
}

[data-theme="dark"] .compare-recommendation-box {
  background: rgba(0, 113, 227, 0.08);
  border-color: rgba(0, 113, 227, 0.25);
}

[data-theme="dark"] .compare-recommendation-title,
[data-theme="dark"] .compare-recommendation-text {
  color: #f5f5f7;
}

[data-theme="dark"] .compare-cta-card {
  background: #1c1c1e;
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .compare-cta-card h3 {
  color: #f5f5f7;
}

[data-theme="dark"] .qa-direct-answer-box {
  background: #1c1c1e;
  border-color: rgba(41, 151, 255, 0.3);
}

[data-theme="dark"] .qa-direct-answer-text {
  color: #f5f5f7;
}

[data-theme="dark"] .qa-sidebar-tool-card {
  background: #1c1c1e;
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .qa-sidebar-tool-card h4 {
  color: #f5f5f7;
}

[data-theme="dark"] .article-author-bar,
[data-theme="dark"] .article-author-row {
  border-top-color: rgba(255, 255, 255, 0.08);
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

[data-theme="dark"] .author-trust-pill {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: #94a3b8;
}

[data-theme="dark"] .author-trust-pill:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.16);
  color: #f5f5f7;
}

[data-theme="dark"] .author-badge-verified {
  background: rgba(16, 185, 129, 0.15);
  border-color: rgba(16, 185, 129, 0.3);
  color: #34d399;
}






/* ==========================================================================
   Interactive Learning Tools - Global Learning Experience System
   Flow: Intro -> Stepper Inputs -> Scenarios -> Side-by-Side Results ->
         Takeaway -> How Calculated -> Assumptions -> Review -> Related
   ========================================================================== */

/* 1. Educational Intro Hero */
.tool-intro-hero {
  margin-bottom: 32px;
  padding: 32px;
  background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.tool-intro-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--pastel-blue-bg);
  border: 1px solid var(--pastel-blue-border);
  color: var(--color-accent);
  padding: 6px 14px;
  border-radius: var(--radius-full);
  font-size: 0.8125rem;
  font-weight: 600;
  margin-bottom: 16px;
}

.tool-intro-title,
.tool-intro-lead,
.tool-intro-badge {
  display: none !important;
}

.tool-concept-cards-strip {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}

.tool-concept-card {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 18px 20px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
}

.concept-card-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.concept-icon-premium {
  background: var(--pastel-blue-bg);
  color: var(--color-accent);
}

.concept-icon-deductible {
  background: var(--pastel-amber-bg);
  color: var(--pastel-amber-accent);
}

.concept-card-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 4px;
}

.concept-card-desc {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--color-secondary);
  margin: 0;
}

.concept-card-separator {
  font-size: 1.25rem;
  color: var(--color-tertiary);
  font-weight: 700;
  text-align: center;
}

.tool-intro-note {
  font-size: 0.8125rem;
  color: var(--color-secondary);
  background: rgba(0, 102, 204, 0.04);
  border: 1px solid rgba(0, 102, 204, 0.12);
  padding: 12px 18px;
  border-radius: var(--radius-sm);
  line-height: 1.5;
}

/* 2. Interactive Stepper Navigation */
.calc-stepper-container {
  margin-bottom: 28px;
}

.calc-stepper-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  padding: 6px 12px;
  gap: 8px;
}

.stepper-step {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 18px;
  border: none;
  background: transparent;
  border-radius: var(--radius-full);
  cursor: pointer;
  transition: var(--transition-smooth);
  font-family: inherit;
  color: var(--color-secondary);
}

.stepper-step:hover {
  background: var(--color-surface-hover);
  color: var(--color-text);
}

.stepper-step.is-active {
  background: #ffffff;
  color: var(--color-accent);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}

.stepper-step.is-completed .step-num {
  background: var(--color-success);
  color: #ffffff;
}

.step-num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--color-border);
  color: var(--color-secondary);
  font-size: 0.8125rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition-smooth);
}

.stepper-step.is-active .step-num {
  background: var(--color-accent);
  color: #ffffff;
}

.step-text {
  text-align: left;
  display: flex;
  flex-direction: column;
}

.step-label {
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
}

.step-name {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text);
}

.stepper-track-line {
  flex: 1;
  height: 2px;
  background: var(--color-border);
  border-radius: 2px;
}

/* 3. Step Panels & Interactive Inputs */
.calc-step-panel {
  display: none;
  animation: fadeInStep 0.25s ease;
}

.calc-step-panel.is-active {
  display: block;
}

@keyframes fadeInStep {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.panel-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 32px;
  box-shadow: var(--shadow-card);
  margin-bottom: 24px;
}

.panel-card-header {
  margin-bottom: 24px;
}

.panel-step-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-accent);
  margin-bottom: 6px;
}

.panel-card-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 6px;
}

.panel-card-subtitle {
  font-size: 0.9375rem;
  color: var(--color-secondary);
  line-height: 1.5;
}

/* Insurance Type Selection Grid */
.insurance-types-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 28px;
}

.type-select-card {
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 18px 14px;
  text-align: center;
  cursor: pointer;
  background: var(--color-surface);
  transition: var(--transition-smooth);
  user-select: none;
}

.type-select-card:hover {
  border-color: var(--color-accent);
  background: #ffffff;
  transform: translateY(-2px);
}

.type-select-card.is-selected {
  border-color: var(--color-accent);
  background: var(--pastel-blue-bg);
  box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.12);
}

.type-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  margin: 0 auto 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  color: var(--color-accent);
  box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}

.type-name {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 4px;
}

.type-benchmark {
  font-size: 0.75rem;
  color: var(--color-secondary);
}

/* Preset Pills and Toggles */
.preset-pills-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.preset-pill-btn {
  padding: 6px 14px;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition-smooth);
}

.preset-pill-btn:hover {
  background: var(--color-surface-hover);
  border-color: var(--color-secondary);
}

.preset-pill-btn.is-active {
  background: var(--color-accent);
  color: #ffffff;
  border-color: var(--color-accent);
}

/* Deductible Comparison Grid */
.deductible-tiers-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 28px;
}

.tier-config-card {
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 24px;
  background: var(--color-surface);
  position: relative;
}

.tier-config-card.tier-scenario-a {
  border-top: 4px solid var(--color-accent);
}

.tier-config-card.tier-scenario-b {
  border-top: 4px solid var(--pastel-green-accent);
}

.tier-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  margin-bottom: 12px;
}

.tier-badge-a {
  background: var(--pastel-blue-bg);
  color: var(--color-accent);
}

.tier-badge-b {
  background: var(--pastel-green-bg);
  color: var(--pastel-green-accent);
}

/* Claim Scenario Simulation Box */
.claim-sim-box {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 24px;
  margin-bottom: 24px;
}

.claim-presets-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}

.claim-preset-btn {
  padding: 12px 10px;
  border-radius: var(--radius-sm);
  border: 1.5px solid var(--color-border);
  background: #ffffff;
  text-align: center;
  cursor: pointer;
  transition: var(--transition-smooth);
}

.claim-preset-btn:hover {
  border-color: var(--color-accent);
  background: var(--pastel-blue-bg);
}

.claim-preset-btn.is-active {
  border-color: var(--color-accent);
  background: var(--pastel-blue-bg);
  box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.15);
}

.claim-preset-amount {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 2px;
}

.claim-preset-label {
  font-size: 0.75rem;
  color: var(--color-secondary);
}

/* Action Buttons Bar */
.stepper-actions-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--color-border);
  flex-wrap: wrap;
}

/* 4. Results Section: Side-by-Side Comparison */
.tool-results-dashboard {
  margin-top: 36px;
}

.results-header-banner {
  margin-bottom: 28px;
  text-align: center;
}

.results-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--color-accent);
  background: var(--pastel-blue-bg);
  padding: 5px 14px;
  border-radius: var(--radius-full);
  margin-bottom: 10px;
}

.results-title {
  font-size: clamp(1.5rem, 2.5vw, 2.1rem);
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}

.results-subtitle {
  font-size: 0.95rem;
  color: var(--color-secondary);
  max-width: 640px;
  margin: 0 auto;
}

.results-comparison-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 32px;
}

.scenario-result-card {
  background: #ffffff;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 28px;
  box-shadow: var(--shadow-card);
  position: relative;
  transition: var(--transition-smooth);
}

.scenario-result-card.is-winner {
  border-color: var(--color-success);
  box-shadow: 0 8px 32px rgba(16, 185, 129, 0.12);
}

.scenario-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--color-border);
}

.scenario-tag {
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.scenario-deductible-headline {
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 18px;
}

.metric-rows-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 24px;
}

.metric-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9375rem;
  padding-bottom: 8px;
  border-bottom: 1px dashed rgba(0, 0, 0, 0.06);
}

.metric-row-label {
  color: var(--color-secondary);
}

.metric-row-val {
  font-weight: 600;
  color: var(--color-text);
}

.scenario-total-box {
  background: var(--color-surface);
  border-radius: var(--radius-md);
  padding: 18px 20px;
  text-align: center;
  border: 1px solid var(--color-border);
}

.total-box-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  color: var(--color-secondary);
  margin-bottom: 4px;
}

.total-box-num {
  font-size: 1.85rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 4px;
}

.total-box-caption {
  font-size: 0.8125rem;
  color: var(--color-secondary);
}

/* Breakeven Horizon Banner */
.breakeven-banner-card {
  background: linear-gradient(135deg, #f0f7ff 0%, #e0f2fe 100%);
  border: 1.5px solid var(--pastel-blue-border);
  border-radius: var(--radius-lg);
  padding: 28px 32px;
  margin-bottom: 32px;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  align-items: center;
  gap: 24px;
}

.breakeven-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 8px;
}

.breakeven-desc {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #334155;
  margin: 0;
}

.breakeven-stat-box {
  background: #ffffff;
  border-radius: var(--radius-md);
  padding: 20px;
  text-align: center;
  box-shadow: 0 4px 16px rgba(0, 102, 204, 0.08);
}

.breakeven-stat-num {
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--color-accent);
  line-height: 1.1;
  margin-bottom: 4px;
}

.breakeven-stat-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-secondary);
}

/* Educational Sections: Meaning, Math, Assumptions, Review */
.educational-breakdown-card {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 32px;
  margin-bottom: 28px;
  box-shadow: var(--shadow-card);
}

.section-h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.math-steps-list {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 20px 24px;
  margin: 16px 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.math-step-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 0.9375rem;
  line-height: 1.5;
}

.math-step-badge {
  background: var(--color-accent);
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 700;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}

.assumptions-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 16px;
}

.assumption-item {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 16px;
}

.assumption-item strong {
  display: block;
  font-size: 0.875rem;
  color: var(--color-text);
  margin-bottom: 4px;
}

.assumption-item p {
  font-size: 0.8125rem;
  color: var(--color-secondary);
  line-height: 1.5;
  margin: 0;
}

/* Checklist items */
.review-checklist-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 16px;
}

.checklist-card-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 16px 20px;
}

.checklist-checkbox-styled {
  width: 20px;
  height: 20px;
  accent-color: var(--color-accent);
  margin-top: 3px;
  cursor: pointer;
}

.checklist-text-title {
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--color-text);
  margin-bottom: 4px;
}

.checklist-text-desc {
  font-size: 0.8125rem;
  color: var(--color-secondary);
  line-height: 1.5;
  margin: 0;
}

/* Related Concepts Pills */
.concepts-pills-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.concept-nav-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  padding: 8px 18px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text);
  text-decoration: none;
  transition: var(--transition-smooth);
}

.concept-nav-pill:hover {
  background: var(--pastel-blue-bg);
  border-color: var(--color-accent);
  color: var(--color-accent);
  transform: translateY(-1px);
}

/* Next Step CTA Card */
.next-step-cta-card {
  background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
  border-radius: var(--radius-lg);
  padding: 32px;
  color: #ffffff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 32px;
}

.next-step-cta-card .next-step-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 6px;
}

.next-step-cta-card .next-step-desc {
  font-size: 0.9375rem;
  color: #cbd5e1;
  max-width: 540px;
  margin: 0;
}

/* Light Next-Step Cards (Recommended Reading, Related Guides, Next Tools & Next Quiz) */
.next-step-card .next-step-title {
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--color-text, #1d1d1f) !important;
  margin-bottom: 6px;
  line-height: 1.35;
}

.next-step-card .next-step-desc {
  font-size: 0.875rem;
  color: var(--color-secondary, #64748b) !important;
  line-height: 1.5;
  margin: 0;
}

/* Mobile Responsive Overrides */
@media (max-width: 768px) {
  .tool-concept-cards-strip {
    grid-template-columns: 1fr;
  }
  .concept-card-separator {
    display: none;
  }
  .insurance-types-grid {
    grid-template-columns: 1fr 1fr;
  }
  .deductible-tiers-grid {
    grid-template-columns: 1fr;
  }
  .claim-presets-grid {
    grid-template-columns: 1fr 1fr;
  }
  .results-comparison-grid {
    grid-template-columns: 1fr;
  }
  .breakeven-banner-card {
    grid-template-columns: 1fr;
  }
  .assumptions-grid {
    grid-template-columns: 1fr;
  }
  .stepper-step .step-text {
    display: none;
  }
  .stepper-step {
    padding: 6px 12px;
  }
}


/* ==========================================================================
   Tools 2, 3, and 4 UI Styles: Out-of-Pocket, Car Coverage, Car Deductible
   ========================================================================== */

/* Visual Bill Allocation Bar */
.visual-bill-bar-card {
  margin: 24px 0 32px 0;
  padding: 24px;
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.visual-bar-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
  gap: 16px;
}

.visual-bill-bar {
  display: flex;
  width: 100%;
  height: 28px;
  border-radius: var(--radius-full);
  overflow: hidden;
  background: #e2e8f0;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.06);
  margin-bottom: 18px;
}

.bill-bar-segment {
  height: 100%;
  transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
}

.segment-deductible {
  background: #f59e0b;
}

.segment-copay {
  background: #8b5cf6;
}

.segment-coinsurance {
  background: #0284c7;
}

.segment-insurer {
  background: #10b981;
}

.segment-uncovered {
  background: #ef4444;
}

.bill-bar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  font-size: 0.8125rem;
  color: var(--color-secondary);
}

.legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}

.dot-deductible { background: #f59e0b; }
.dot-copay { background: #8b5cf6; }
.dot-coinsurance { background: #0284c7; }
.dot-insurer { background: #10b981; }
.dot-uncovered { background: #ef4444; }

/* Pill Button Groups */
.pill-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.pill-btn {
  padding: 8px 16px;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: #ffffff;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}

.pill-btn:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
  background: var(--pastel-blue-bg);
}

.pill-btn.is-active,
.pill-btn.is-selected {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: #ffffff;
  font-weight: 600;
  box-shadow: 0 2px 6px rgba(0, 113, 227, 0.25);
}

/* Coverage Checklist Styles */
.coverage-checklist-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-bottom: 32px;
}

.coverage-checklist-card {
  padding: 24px;
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.coverage-checklist-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

.checklist-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 16px;
}

.checklist-title {
  font-size: 1.1875rem;
  font-weight: 700;
  color: var(--color-text);
  margin: 6px 0 0 0;
}

.checklist-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: var(--pastel-blue-bg);
  color: var(--color-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.checklist-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.badge-essential {
  background: #fee2e2;
  color: #b91c1c;
}

.badge-mandated {
  background: #fef3c7;
  color: #92400e;
}

.badge-advisory {
  background: var(--pastel-blue-bg);
  color: var(--color-accent);
}

.badge-discretionary {
  background: #f1f5f9;
  color: #475569;
}

.checklist-section {
  margin-bottom: 14px;
}

.checklist-section-label {
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--color-secondary);
  margin-bottom: 4px;
}

.checklist-why {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-text);
  margin: 0;
}

.checklist-profile-note {
  padding: 10px 14px;
  background: #f8fafc;
  border-left: 3px solid var(--color-accent);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--color-text);
}

.checklist-questions {
  margin: 0;
  padding-left: 18px;
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--color-secondary);
}

.checklist-questions li {
  margin-bottom: 4px;
}

.checklist-questions a {
  color: var(--color-accent);
  text-decoration: underline;
}

/* Car Deductible Scenario Cards Grid */
.car-deductible-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-bottom: 32px;
}

.car-deductible-card {
  padding: 24px;
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  position: relative;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.car-deductible-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

.car-deductible-card.is-baseline {
  border-color: #0071e3;
  background: linear-gradient(180deg, #f0f7ff 0%, #ffffff 40%);
}

.car-deductible-card-badge {
  display: inline-block;
  align-self: flex-start;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 700;
  margin-bottom: 12px;
}

.car-deductible-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 6px 0;
}

.car-deductible-prem-wrap {
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--color-border);
}

.car-deductible-prem-num {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--color-text);
}

.car-deductible-prem-cycle {
  font-size: 0.8125rem;
  color: var(--color-secondary);
}

.car-deductible-stat-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.875rem;
  margin-bottom: 8px;
}

.car-deductible-stat-label {
  color: var(--color-secondary);
}

.car-deductible-stat-val {
  font-weight: 600;
  color: var(--color-text);
}

.car-deductible-delta-box {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px dashed var(--color-border);
  font-size: 0.8125rem;
  color: var(--color-secondary);
}

.car-deductible-delta-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 4px;
}

/* Deductible Multi-Selector Buttons */
.deductible-multi-selector {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.tier-toggle-pill {
  padding: 8px 16px;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: #ffffff;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-secondary);
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}

.tier-toggle-pill:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
}

.tier-toggle-pill.is-selected,
.tier-toggle-pill.is-active {
  background: var(--pastel-blue-bg);
  border-color: var(--color-accent);
  color: var(--color-accent);
  box-shadow: 0 1px 4px rgba(0, 113, 227, 0.15);
}


/* ==========================================================================
   Interactive Learning Tools: Batch 2 & Common Framework Extensions
   Tools 5-10: Home Coverage, Rebuild Cost, Renters, Travel, Disability, Business
   ========================================================================== */

/* Outer Interactive Lab System */
.tool-interactive-lab {
  width: 100%;
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
}

.tool-lab-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
  gap: 36px;
  align-items: start;
  margin-top: 24px;
}

@media (max-width: 1024px) {
  .tool-lab-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

.tool-lab-inputs-col {
  min-width: 0;
  width: 100%;
}

.tool-lab-results-col {
  position: sticky;
  top: 96px;
  min-width: 0;
  width: 100%;
}

@media (max-width: 1024px) {
  .tool-lab-results-col {
    position: static;
    top: auto;
  }
}

.tool-lab-results-col .tool-results-section {
  margin-top: 0;
}

.concept-card-content {
  flex: 1;
  min-width: 0;
}

.calc-field-group {
  margin-bottom: 24px;
}

.calc-field-help {
  font-size: 0.8125rem;
  color: var(--color-secondary);
  margin-top: 6px;
  line-height: 1.5;
}

.calc-fields-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}

.panel-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--color-border);
  flex-wrap: wrap;
  gap: 12px;
}

.panel-hint-text {
  font-size: 0.8125rem;
  color: var(--color-tertiary);
}

/* Results Master Section */
.tool-results-section {
  margin-top: 36px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: clamp(24px, 4vw, 36px);
  box-shadow: var(--shadow-card);
}

.results-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  flex-wrap: wrap;
  gap: 12px;
}

.results-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: var(--radius-full);
  font-size: 0.8125rem;
  font-weight: 600;
  background: var(--pastel-blue-bg);
  color: var(--color-accent);
  border: 1px solid var(--pastel-blue-border);
}

.status-indicator-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
}

/* Assumptions & Review Framework */
.assumption-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 4px;
}

.assumption-desc {
  font-size: 0.8125rem;
  color: var(--color-secondary);
  line-height: 1.5;
}

.review-checklist-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.review-check-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 18px 20px;
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.review-check-num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--pastel-blue-bg);
  color: var(--color-accent);
  font-weight: 700;
  font-size: 0.8125rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.concepts-tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.concept-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text);
  text-decoration: none;
  transition: all 0.2s ease;
}

.concept-tag:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
  background: var(--pastel-blue-bg);
  transform: translateY(-1px);
}

.tool-next-steps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.next-step-card {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 22px;
  text-decoration: none;
  color: var(--color-text);
  display: flex;
  flex-direction: column;
  transition: all 0.25s ease;
}

.next-step-card:hover {
  transform: translateY(-2px);
  border-color: var(--color-accent);
  box-shadow: 0 6px 20px rgba(0, 113, 227, 0.08);
}

.next-step-badge {
  display: inline-block;
  align-self: flex-start;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 3px 8px;
  border-radius: var(--radius-full);
  background: var(--pastel-blue-bg);
  color: var(--color-accent);
  margin-bottom: 10px;
}

/* Renters Inventory Item Cards */
.renters-item {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 18px 20px;
  margin-bottom: 16px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.renters-item:hover {
  border-color: rgba(0, 113, 227, 0.4);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.renters-item-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.renters-item-title {
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--color-text);
}

.renters-item-val {
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--color-accent);
}

.renters-sublimit-alert {
  background: var(--pastel-amber-bg);
  border: 1px solid var(--pastel-amber-border);
  border-radius: var(--radius-md);
  padding: 16px 20px;
  margin-top: 20px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

/* Home Rebuild Range Display */
.rebuild-range-box {
  background: linear-gradient(135deg, #f8fafc 0%, #edf2f7 100%);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 28px;
  text-align: center;
  margin-bottom: 24px;
}

.rebuild-range-label {
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-secondary);
  margin-bottom: 8px;
}

.rebuild-range-val {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--color-text);
  line-height: 1.1;
  margin-bottom: 12px;
}

/* Disability Income Protection Cards */
.dis-status-urgent {
  background: #fef2f2 !important;
  color: #dc2626 !important;
  border-color: #fecaca !important;
}

.dis-status-safe {
  background: #ecfdf5 !important;
  color: #059669 !important;
  border-color: #a7f3d0 !important;
}

.dis-gap-badge {
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

/* Dynamic Checklist Module Cards (Travel & Business) */
.checklist-card {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 20px;
  display: flex;
  flex-direction: column;
  transition: all 0.2s ease;
}

.checklist-card:hover {
  border-color: rgba(0, 113, 227, 0.4);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.checklist-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
  gap: 10px;
}

.checklist-card-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text);
}

.checklist-priority-badge {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  white-space: nowrap;
}

.checklist-badge-high {
  background: #fef2f2;
  color: #dc2626;
  border: 1px solid #fecaca;
}

.checklist-badge-medium {
  background: var(--pastel-amber-bg);
  color: var(--pastel-amber-accent);
  border: 1px solid var(--pastel-amber-border);
}

.checklist-badge-standard {
  background: var(--pastel-blue-bg);
  color: var(--color-accent);
  border: 1px solid var(--pastel-blue-border);
}

.checklist-badge-overlap {
  background: #ecfdf5;
  color: #059669;
  border: 1px solid #a7f3d0;
}

.checklist-card-section {
  margin-top: 12px;
  font-size: 0.8125rem;
  line-height: 1.55;
}

.checklist-card-label {
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 2px;
  display: block;
}


/* ==========================================================================
   Tools Batch 3: ToolEngine, Quizzes, Character & Gamification System
   ========================================================================== */

/* 1. Insurance Bhaiya Character Guide Card */
.bhaiya-mentor-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: linear-gradient(135deg, #ffffff 0%, #f0f7ff 100%);
  border: 1px solid rgba(0, 113, 227, 0.2);
  border-radius: var(--radius-md);
  padding: 18px 22px;
  margin-top: 20px;
  box-shadow: 0 4px 16px rgba(0, 113, 227, 0.05);
  position: relative;
}

.bhaiya-avatar-wrap {
  position: relative;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #ffffff;
  border: 2px solid var(--color-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0, 113, 227, 0.15);
}

.bhaiya-avatar-img {
  width: 28px;
  height: auto;
}

.bhaiya-status-dot {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #10b981;
  border: 2px solid #ffffff;
}

.bhaiya-speech-bubble {
  flex: 1;
}

.bhaiya-speaker-name {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--color-accent);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}

.bhaiya-speech-text {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--color-text);
  margin: 0;
}

/* 2. Unified Minimal Navbar: Country Select & XP Indicator */
.header-market-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.market-select {
  height: 34px;
  display: inline-flex;
  align-items: center;
  background-color: var(--color-surface, #fbfbfd);
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-full, 9999px);
  padding: 0 28px 0 12px;
  font-family: var(--font-body);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-text, #1d1d1f);
  cursor: pointer;
  outline: none;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 11px;
  box-sizing: border-box;
}

.market-select:hover {
  background-color: var(--color-surface-hover, #f5f5f7);
  border-color: var(--color-tertiary, #94a3b8);
  color: #000000;
}

.market-select:focus-visible {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 2px var(--color-accent-subtle);
}

.header-xp-pill {
  height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background-color: var(--color-surface, #fbfbfd);
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-full, 9999px);
  padding: 0 12px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text, #1d1d1f);
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  user-select: none;
  box-sizing: border-box;
}

.header-xp-pill:hover {
  background-color: var(--color-surface-hover, #f5f5f7);
  border-color: var(--color-tertiary, #94a3b8);
  transform: translateY(-1px);
}

.header-xp-pill .xp-icon {
  font-size: 0.875rem;
  color: #f59e0b;
  display: inline-block;
  line-height: 1;
}

.header-xp-pill .xp-val {
  font-family: var(--font-body);
  font-variant-numeric: tabular-nums lining-nums;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text, #1d1d1f);
}

/* Stepper Panel Cards */
.calc-panel-card {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: clamp(20px, 3.5vw, 32px);
  box-shadow: var(--shadow-card);
  margin-bottom: 24px;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
}

/* Topics to Revisit Cards */
.revisit-list-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 14px;
  width: 100%;
}

.revisit-item-card {
  background: var(--color-surface, #f8fafc);
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-sm, 14px);
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  transition: all 0.2s ease;
}

.revisit-item-card:hover {
  background: #ffffff;
  border-color: rgba(0, 102, 204, 0.3);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
}

.revisit-item-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
}

.revisit-item-title {
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--color-text, #1d1d1f);
}

.revisit-item-explanation {
  font-size: 0.875rem;
  color: var(--color-secondary, #475569);
  line-height: 1.55;
  margin: 0;
  width: 100%;
}

/* Compact Quiz Restart Action Row */
.quiz-restart-row {
  margin-top: 18px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.quiz-restart-row .btn {
  width: auto;
}

/* 3. XP Celebration Toast */
.xp-toast-notification {
  position: fixed;
  bottom: 24px;
  right: 24px;
  background: #ffffff;
  border: 1px solid #fde68a;
  border-radius: var(--radius-md);
  padding: 16px 20px;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.15);
  display: flex;
  flex-direction: column;
  gap: 8px;
  z-index: 9999;
  transform: translateY(120%);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  max-width: 320px;
}

.xp-toast-notification.is-visible {
  transform: translateY(0);
}

.xp-toast-content {
  display: flex;
  align-items: center;
  gap: 12px;
}

.xp-toast-icon {
  font-size: 1.5rem;
  background: #fef3c7;
  padding: 8px;
  border-radius: 50%;
  color: #b45309;
}

.xp-toast-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-text);
}

.xp-toast-desc {
  font-size: 0.8125rem;
  color: var(--color-secondary);
}

.xp-toast-levelup {
  padding-top: 8px;
  border-top: 1px dashed #fde68a;
  font-size: 0.8125rem;
  color: #b45309;
}

/* 4. Quiz Components (Tools 14 & 15) */
.quiz-card-box {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: clamp(20px, 4vw, 32px);
  box-shadow: var(--shadow-card);
}

.quiz-scenario-callout {
  background: #f8fafc;
  border-left: 4px solid var(--color-accent);
  padding: 14px 18px;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-text);
  margin-bottom: 20px;
}

.quiz-question-heading {
  font-size: 1.1875rem;
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.4;
  margin-bottom: 20px;
}

.quiz-options-stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 24px;
}

.quiz-option-button {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--color-text);
  text-align: left;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
  width: 100%;
}

.quiz-option-button:hover:not(:disabled) {
  border-color: var(--color-accent);
  background: #ffffff;
  transform: translateX(4px);
}

.quiz-option-letter {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #ffffff;
  border: 1px solid var(--color-border);
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--color-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.quiz-option-button.is-correct {
  background: #ecfdf5 !important;
  border-color: #10b981 !important;
  color: #065f46 !important;
}

.quiz-option-button.is-correct .quiz-option-letter {
  background: #10b981;
  color: #ffffff;
  border-color: #10b981;
}

.quiz-option-button.is-wrong {
  background: #fef2f2 !important;
  border-color: #ef4444 !important;
  color: #991b1b !important;
}

.quiz-option-button.is-wrong .quiz-option-letter {
  background: #ef4444;
  color: #ffffff;
  border-color: #ef4444;
}

.quiz-feedback-box {
  border-radius: var(--radius-md);
  padding: 18px 22px;
  margin-top: 20px;
  animation: fadeIn 0.3s ease;
}

.quiz-feedback-box.feedback-correct {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
}

.quiz-feedback-box.feedback-wrong {
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
}

.quiz-feedback-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 1rem;
  margin-bottom: 6px;
}

.quiz-feedback-text {
  font-size: 0.9375rem;
  line-height: 1.55;
  margin: 0 0 12px 0;
}

/* 5. 10-Point Policy Audit Rows (Tool 13) */
.policy-audit-row {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 16px 20px;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  transition: all 0.2s ease;
}

.policy-audit-row:hover {
  border-color: rgba(0, 113, 227, 0.4);
}

.policy-audit-info {
  flex: 1;
  min-width: 240px;
}

.policy-audit-clause-title {
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--color-text);
  margin-bottom: 2px;
}

.policy-audit-clause-desc {
  font-size: 0.8125rem;
  color: var(--color-secondary);
}

.policy-audit-triage-group {
  display: flex;
  gap: 8px;
}

.triage-btn {
  padding: 6px 14px;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-secondary);
  cursor: pointer;
  transition: all 0.15s ease;
  font-family: inherit;
}

.triage-btn.is-understand.is-active {
  background: #ecfdf5;
  border-color: #10b981;
  color: #065f46;
}

.triage-btn.is-check.is-active {
  background: #fffbeb;
  border-color: #f59e0b;
  color: #b45309;
}

.triage-btn.is-na.is-active {
  background: #f1f5f9;
  border-color: #94a3b8;
  color: #475569;
}

/* ==========================================================================
   Comprehensive Mobile & Tablet Responsiveness & Anti-Zoom System
   ========================================================================== */

/* Universal Anti-Zoom for Mobile Devices (iOS Safari, Android Chrome) */
@media screen and (max-width: 768px) {
  input,
  select,
  textarea,
  .calc-field select,
  .calc-select,
  .search-input-field,
  .market-select,
  .home-search-input-wrap input {
    font-size: 16px !important; /* Prevents viewport auto-zoom in mobile Safari */
  }

  /* Prevent horizontal overflowing across the entire site including homepage */
  .tool-interactive-lab,
  .tool-results-section,
  .calc-panel-card,
  .panel-card,
  .apple-card,
  .apple-calc-card,
  .apple-bento-card,
  .category-bento-grid,
  .home-search-container,
  .grid-2,
  .grid-3,
  .grid-4,
  .container {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Compact and comfortable padding on mobile */
  .calc-panel-card,
  .panel-card,
  .apple-card,
  .apple-calc-card,
  .bento-big .bento-content,
  .bento-small .bento-content {
    padding: 20px 16px !important;
    border-radius: var(--radius-md) !important;
    box-sizing: border-box !important;
  }

  .tool-results-section {
    padding: 20px 16px !important;
    margin-top: 24px !important;
  }

  .panel-card-title {
    font-size: 1.1875rem !important;
    line-height: 1.35 !important;
  }

  .panel-card-subtitle {
    font-size: 0.875rem !important;
  }

  /* Single-column grids on small screens to prevent lateral squeezing */
  .calc-fields-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .review-checklist-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .tool-next-steps-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  /* Multi-selector pills wrapping & touch target */
  .deductible-multi-selector {
    gap: 8px !important;
  }

  .tier-toggle-pill {
    padding: 8px 12px !important;
    font-size: 0.8125rem !important;
    white-space: normal !important;
    text-align: center;
    line-height: 1.3;
  }

  /* Stepper Navigation: Horizontal Scroll with no scrollbars */
  .calc-stepper-bar {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 4px !important;
    padding: 4px 6px !important;
  }

  .calc-stepper-bar::-webkit-scrollbar {
    display: none;
  }

  .stepper-step {
    flex-shrink: 0;
    padding: 6px 10px !important;
    font-size: 0.8125rem !important;
  }

  /* Policy Audit Rows Responsive Triage */
  .policy-audit-row {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
    padding: 14px 16px !important;
  }

  .policy-audit-info {
    min-width: 0 !important;
    width: 100% !important;
  }

  .policy-audit-triage-group {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6px !important;
  }

  .triage-btn {
    padding: 7px 6px !important;
    font-size: 0.75rem !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
  }

  /* Header action symmetry on small screens */
  /* Minimal Header action buttons on small screens */
  .header-actions {
    gap: 8px !important;
  }

  .header-search-btn span {
    display: none !important;
  }

  .header-search-btn,
  .mobile-toggle {
    padding: 0 !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    justify-content: center !important;
    align-items: center !important;
    display: inline-flex !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    border-radius: 0 !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  .header-search-btn:hover,
  .header-search-btn:focus,
  .header-search-btn:focus-visible,
  .header-search-btn:active,
  .mobile-toggle:hover,
  .mobile-toggle:focus,
  .mobile-toggle:focus-visible,
  .mobile-toggle:active {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    transform: none !important;
  }
}

@media screen and (max-width: 520px) {
  /* Prevent buttons spilling outside card footers */
  .panel-card-footer {
    flex-direction: column-reverse !important;
    align-items: stretch !important;
    gap: 10px !important;
    margin-top: 20px !important;
    padding-top: 16px !important;
  }

  .panel-card-footer .btn {
    width: 100% !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }

  .panel-hint-text {
    text-align: center;
    width: 100%;
    margin-top: 4px;
  }

  .bhaiya-mentor-card {
    flex-direction: column !important;
    gap: 12px !important;
    padding: 16px 14px !important;
  }
}

/* ==========================================================================
   Insurance Q&A Knowledge Base - Apple-Grade Component System
   ========================================================================== */

.qa-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 1024px) {
  .qa-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (max-width: 640px) {
  .qa-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

.qa-card {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  padding: clamp(22px, 3vw, 28px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s ease;
  position: relative;
  overflow: hidden;
  max-width: 100%;
  box-sizing: border-box;
}

.qa-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.08);
  border-color: var(--color-accent);
}

.qa-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.qa-card-title {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.4;
  margin-bottom: 12px;
  color: var(--color-text);
}

.qa-card-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.15s ease;
}

.qa-card-title a:hover {
  color: var(--color-accent);
}

.qa-card-summary {
  font-size: 0.9rem;
  color: var(--color-secondary);
  line-height: 1.6;
  margin-bottom: 20px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.qa-card-footer {
  padding-top: 14px;
  border-top: 1px solid var(--color-border-light);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: auto;
}

/* Featured Spotlight Q&A Banner */
.qa-spotlight-banner {
  background: linear-gradient(135deg, var(--pastel-blue-bg) 0%, var(--color-surface) 100%);
  border: 1px solid var(--pastel-blue-border);
  border-radius: var(--radius-xl);
  padding: clamp(28px, 4vw, 44px);
  margin-bottom: 40px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: relative;
  overflow: hidden;
  max-width: 100%;
  box-sizing: border-box;
}

.qa-spotlight-title {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: clamp(1.4rem, 2.8vw, 1.85rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-text);
  letter-spacing: -0.02em;
}

.qa-spotlight-answer {
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--color-secondary);
  max-width: 820px;
}

/* ==========================================================================
   Apple-Grade Two-Column Q&A Detail Layout & Sticky Navigation Sidebar
   ========================================================================== */
.qa-article-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 48px;
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
  align-items: start;
}

@media (max-width: 1024px) {
  .qa-article-layout {
    grid-template-columns: 1fr;
    gap: 36px;
  }
}

.qa-main-col {
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}

.qa-sidebar {
  position: sticky;
  top: 96px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  box-sizing: border-box;
}

@media (max-width: 1024px) {
  .qa-sidebar {
    position: static;
    top: auto;
    margin-top: 24px;
  }
}

.qa-sidebar-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 24px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
  box-sizing: border-box;
  width: 100%;
}

.qa-sidebar-title {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text);
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.qa-sidebar-title svg {
  color: var(--color-accent);
}

.qa-toc-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qa-toc-link {
  font-size: 0.875rem;
  color: var(--color-secondary);
  text-decoration: none;
  line-height: 1.45;
  transition: var(--transition-fast);
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 8px;
  border-radius: var(--radius-sm);
}

.qa-toc-link:hover,
.qa-toc-link.active {
  color: var(--color-accent);
  background: var(--color-accent-subtle);
  font-weight: 600;
}

.qa-sidebar-tool-card {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 24px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.qa-sidebar-tool-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.06);
}

.qa-sidebar-tool-card .pill-accent {
  background: var(--color-accent-subtle);
  color: var(--color-accent);
  border: 1px solid rgba(0, 113, 227, 0.2);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 12px;
}

.qa-sidebar-tool-card h4 {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 8px 0;
  line-height: 1.35;
}

.qa-sidebar-tool-card p {
  font-size: 0.875rem;
  color: var(--color-secondary);
  line-height: 1.55;
  margin: 0 0 18px 0;
}

.qa-sidebar-tool-card .btn-primary {
  width: 100%;
  justify-content: center;
  background: #0071e3;
  color: #ffffff !important;
  font-weight: 600;
  border-radius: var(--radius-full);
  padding: 10px 18px;
  font-size: 0.875rem;
  box-shadow: 0 2px 8px rgba(0, 113, 227, 0.25);
  transition: all var(--transition-fast);
}

.qa-sidebar-tool-card .btn-primary:hover {
  background: #0077ed;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 113, 227, 0.35);
}

.qa-sidebar-reviewer-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 20px 22px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  box-sizing: border-box;
}

.qa-sidebar-reviewer-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--color-accent-subtle);
  color: var(--color-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.qa-sidebar-reviewer-info {
  flex: 1;
  min-width: 0;
}

.qa-sidebar-reviewer-name {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 3px;
}

.qa-sidebar-reviewer-cred {
  font-size: 0.75rem;
  color: var(--color-secondary);
  line-height: 1.4;
}

.qa-sidebar-related-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.qa-sidebar-related-item a {
  font-size: 0.875rem;
  color: var(--color-text);
  text-decoration: none;
  line-height: 1.45;
  font-weight: 500;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  transition: color 0.15s ease;
}

.qa-sidebar-related-item a:hover {
  color: var(--color-accent);
}

.qa-sidebar-related-item svg {
  color: var(--color-accent);
  flex-shrink: 0;
  margin-top: 3px;
}

/* Individual Q&A Answer Container */
.qa-answer-container {
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}

.qa-direct-answer-box {
  background: #ffffff;
  border: 1px solid rgba(0, 113, 227, 0.18);
  border-left: 4px solid var(--color-accent);
  border-radius: var(--radius-md);
  padding: clamp(22px, 3.5vw, 30px);
  margin: 28px 0 36px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03), 0 1px 3px rgba(0, 0, 0, 0.02);
  box-sizing: border-box;
  max-width: 100%;
  position: relative;
}

.qa-direct-answer-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-accent);
  margin-bottom: 12px;
}

.qa-direct-answer-header svg {
  color: var(--color-accent);
  flex-shrink: 0;
}

.qa-direct-answer-text {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--color-text);
  font-weight: 500;
  margin: 0;
}

.qa-takeaways-box {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: clamp(20px, 3vw, 28px);
  margin: 32px 0;
  box-sizing: border-box;
  max-width: 100%;
}

.qa-takeaways-title {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--color-text);
}

.qa-takeaways-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.qa-takeaways-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--color-text);
}

.qa-takeaways-list li svg {
  color: var(--color-success);
  flex-shrink: 0;
  margin-top: 3px;
}

.qa-section {
  margin: 36px 0;
  max-width: 100%;
  box-sizing: border-box;
  scroll-margin-top: 100px;
}

.qa-section-title {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: clamp(1.25rem, 2.2vw, 1.5rem);
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 16px;
  letter-spacing: -0.015em;
}

.qa-section-content {
  font-size: 1.05rem;
  line-height: 1.75;
  color: var(--color-text);
}

.qa-case-study-box {
  background: var(--color-surface);
  border: 1px solid var(--pastel-blue-border);
  border-radius: var(--radius-md);
  padding: clamp(22px, 3vw, 30px);
  margin: 32px 0;
  box-sizing: border-box;
  max-width: 100%;
  position: relative;
  overflow: hidden;
  scroll-margin-top: 100px;
}

.qa-case-study-box::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--color-accent);
}

.qa-action-checklist {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 20px 0;
  max-width: 100%;
  box-sizing: border-box;
}

.qa-action-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 18px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--color-text);
  box-sizing: border-box;
  max-width: 100%;
}

.qa-action-item svg {
  color: var(--color-accent);
  flex-shrink: 0;
  margin-top: 3px;
}

.qa-helpful-widget {
  padding: 24px;
  border-radius: var(--radius-md);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  text-align: center;
  margin: 48px 0 32px;
  box-sizing: border-box;
  max-width: 100%;
}

.qa-filter-wrap {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin: 20px 0 32px;
}

.qa-filter-pill {
  cursor: pointer;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  padding: 6px 14px;
  border-radius: var(--radius-full);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-secondary);
  transition: var(--transition-smooth);
}

.qa-filter-pill:hover,
.qa-filter-pill.active {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: #ffffff;
}

/* ==========================================================================
   Insurance Q&A: Similar Questions Component & Rotating Footer Widget
   ========================================================================== */

.qa-similar-box {
  margin-top: 56px;
  padding-top: 36px;
  border-top: 1px solid var(--color-border);
  box-sizing: border-box;
  max-width: 100%;
}

.qa-similar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  flex-wrap: wrap;
  gap: 12px;
}

.qa-paa-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

@media (max-width: 768px) {
  .qa-paa-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

.qa-paa-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
  box-sizing: border-box;
  max-width: 100%;
}

.qa-paa-card:hover {
  transform: translateY(-2px);
  border-color: var(--color-accent);
  box-shadow: var(--shadow-sm);
}

.qa-paa-title {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.4;
  margin: 0 0 10px;
  color: var(--color-text);
}

.qa-paa-desc {
  font-size: 0.875rem;
  color: var(--color-secondary);
  line-height: 1.55;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.qa-paa-footer {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--color-border-light);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Footer Dynamic Rotating Q&A Section */
.footer-qa-container {
  margin: 40px 0 24px;
  padding: 24px 28px;
  background: rgba(0, 113, 227, 0.04);
  border: 1px solid rgba(0, 113, 227, 0.16);
  border-radius: var(--radius-md);
  box-sizing: border-box;
  max-width: 100%;
  transition: border-color var(--transition-smooth);
}

.footer-qa-container:hover {
  border-color: rgba(0, 113, 227, 0.35);
}

.footer-qa-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  flex-wrap: wrap;
  gap: 8px;
}

.footer-qa-badge {
  font-size: 0.75rem;
  color: var(--color-secondary);
  font-weight: 500;
}

.footer-qa-hub-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-accent);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.footer-qa-hub-link:hover {
  color: var(--color-accent-hover);
  text-decoration: underline;
}

.footer-qa-title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.35;
  margin: 0 0 8px;
}

.footer-qa-title a {
  color: var(--color-text);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.footer-qa-title a:hover {
  color: var(--color-accent);
}

.footer-qa-snippet {
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--color-secondary);
  margin: 0 0 14px;
  max-width: 860px;
}

.footer-qa-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}

/* Pre-Footer Insurance Questions Navigation Band */
.pre-footer-qa-band {
  background: var(--color-surface-sunken);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding: 56px 0 48px;
  width: 100%;
  box-sizing: border-box;
}

.pre-footer-qa-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 32px;
}

.pre-footer-qa-heading {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  font-size: clamp(1.4rem, 2.5vw, 1.875rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--color-text);
  margin: 8px 0 6px;
  line-height: 1.25;
}

.pre-footer-qa-subtext {
  font-size: 0.9375rem;
  color: var(--color-secondary);
  line-height: 1.6;
  margin: 0;
  max-width: 680px;
}

.pre-footer-all-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-accent);
  background: rgba(0, 113, 227, 0.08);
  padding: 8px 16px;
  border-radius: var(--radius-full);
  text-decoration: none;
  transition: all var(--transition-fast);
  white-space: nowrap;
}

.pre-footer-all-link:hover {
  background: var(--color-accent);
  color: #ffffff;
}

.pre-footer-qa-columns {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 32px;
}

.pre-footer-qa-col {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 22px;
  display: flex;
  flex-direction: column;
  transition: border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
}

.pre-footer-qa-col:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
}

.pre-footer-cat-auto:hover {
  border-color: rgba(0, 113, 227, 0.35);
}

.pre-footer-cat-legal:hover {
  border-color: rgba(79, 70, 229, 0.35);
}

.pre-footer-cat-health:hover {
  border-color: rgba(5, 150, 105, 0.35);
}

.pre-footer-cat-life:hover {
  border-color: rgba(225, 29, 72, 0.35);
}

.pre-footer-col-title {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  margin: 0 0 14px;
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.pre-footer-col-headlink {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  color: var(--color-text);
  text-decoration: none;
  transition: color var(--transition-fast);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
}

.pre-footer-col-headlink span {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  font-weight: 600;
}

.pre-footer-col-headlink:hover {
  color: var(--color-accent);
}

.pre-footer-col-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  line-height: 1;
  flex-shrink: 0;
  transition: transform var(--transition-fast), background-color var(--transition-fast);
}

.pre-footer-cat-auto .pre-footer-col-icon {
  background: rgba(0, 113, 227, 0.1);
  color: #0071e3 !important;
}

.pre-footer-cat-legal .pre-footer-col-icon {
  background: rgba(79, 70, 229, 0.1);
  color: #4f46e5 !important;
}

.pre-footer-cat-health .pre-footer-col-icon {
  background: rgba(5, 150, 105, 0.1);
  color: #059669 !important;
}

.pre-footer-cat-life .pre-footer-col-icon {
  background: rgba(225, 29, 72, 0.1);
  color: #e11d48 !important;
}

.pre-footer-qa-col:hover .pre-footer-col-icon {
  transform: scale(1.08);
}

[data-theme="dark"] .pre-footer-cat-auto .pre-footer-col-icon {
  background: rgba(0, 113, 227, 0.22);
  color: #2997ff !important;
}

[data-theme="dark"] .pre-footer-cat-legal .pre-footer-col-icon {
  background: rgba(99, 102, 241, 0.22);
  color: #818cf8 !important;
}

[data-theme="dark"] .pre-footer-cat-health .pre-footer-col-icon {
  background: rgba(16, 185, 129, 0.22);
  color: #34d399 !important;
}

[data-theme="dark"] .pre-footer-cat-life .pre-footer-col-icon {
  background: rgba(244, 63, 94, 0.22);
  color: #fb7185 !important;
}

.pre-footer-qa-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pre-footer-qa-list li a {
  font-size: 0.8125rem;
  color: var(--color-secondary);
  line-height: 1.45;
  text-decoration: none;
  display: block;
  transition: color var(--transition-fast);
}

.pre-footer-qa-list li a:hover {
  color: var(--color-accent);
  text-decoration: underline;
}

.footer-qa-next-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 5px 10px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-secondary);
  cursor: pointer;
  transition: all var(--transition-fast);
}

.footer-qa-next-btn:hover {
  color: var(--color-accent);
  border-color: var(--color-accent);
}

.footer-qa-next-btn.rotating svg {
  animation: spin 0.6s linear;
}

@keyframes spin {
  100% { transform: rotate(360deg); }
}

.qa-precedent-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(0, 113, 227, 0.08);
  border: 1px solid rgba(0, 113, 227, 0.18);
  border-radius: var(--radius-full);
  padding: 4px 10px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-accent);
  max-width: 100%;
}

.qa-case-scenario-link {
  font-size: 0.875rem;
}

@media (max-width: 1024px) {
  .pre-footer-qa-columns {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .pre-footer-qa-band {
    padding: 36px 0 28px;
  }
  .pre-footer-qa-columns {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .pre-footer-qa-header {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ==========================================================================
   Distinct Category Pill Color System
   ========================================================================== */
.pill-cat-auto {
  background-color: rgba(0, 113, 227, 0.08) !important;
  color: #0071e3 !important;
  border-color: rgba(0, 113, 227, 0.22) !important;
}

.pill-cat-legal {
  background-color: rgba(79, 70, 229, 0.08) !important;
  color: #4f46e5 !important;
  border-color: rgba(79, 70, 229, 0.22) !important;
}

.pill-cat-health {
  background-color: rgba(5, 150, 105, 0.08) !important;
  color: #059669 !important;
  border-color: rgba(5, 150, 105, 0.22) !important;
}

.pill-cat-life {
  background-color: rgba(225, 29, 72, 0.08) !important;
  color: #e11d48 !important;
  border-color: rgba(225, 29, 72, 0.22) !important;
}

.pill-cat-home {
  background-color: rgba(217, 119, 6, 0.08) !important;
  color: #d97706 !important;
  border-color: rgba(217, 119, 6, 0.22) !important;
}

.pill-cat-renters {
  background-color: rgba(234, 88, 12, 0.08) !important;
  color: #ea580c !important;
  border-color: rgba(234, 88, 12, 0.22) !important;
}

.pill-cat-disability {
  background-color: rgba(124, 58, 237, 0.08) !important;
  color: #7c3aed !important;
  border-color: rgba(124, 58, 237, 0.22) !important;
}

.pill-cat-general {
  background-color: rgba(2, 132, 199, 0.08) !important;
  color: #0284c7 !important;
  border-color: rgba(2, 132, 199, 0.22) !important;
}

/* Dark mode pill overrides */
[data-theme="dark"] .pill-cat-auto {
  background-color: rgba(41, 151, 255, 0.15) !important;
  color: #2997ff !important;
  border-color: rgba(41, 151, 255, 0.3) !important;
}
[data-theme="dark"] .pill-cat-legal {
  background-color: rgba(129, 140, 248, 0.15) !important;
  color: #818cf8 !important;
  border-color: rgba(129, 140, 248, 0.3) !important;
}
[data-theme="dark"] .pill-cat-health {
  background-color: rgba(52, 211, 153, 0.15) !important;
  color: #34d399 !important;
  border-color: rgba(52, 211, 153, 0.3) !important;
}
[data-theme="dark"] .pill-cat-life {
  background-color: rgba(251, 113, 133, 0.15) !important;
  color: #fb7185 !important;
  border-color: rgba(251, 113, 133, 0.3) !important;
}
[data-theme="dark"] .pill-cat-home {
  background-color: rgba(251, 191, 36, 0.15) !important;
  color: #fbbf24 !important;
  border-color: rgba(251, 191, 36, 0.3) !important;
}
[data-theme="dark"] .pill-cat-renters {
  background-color: rgba(251, 146, 60, 0.15) !important;
  color: #fb923c !important;
  border-color: rgba(251, 146, 60, 0.3) !important;
}
[data-theme="dark"] .pill-cat-disability {
  background-color: rgba(167, 139, 250, 0.15) !important;
  color: #a78bfa !important;
  border-color: rgba(167, 139, 250, 0.3) !important;
}
[data-theme="dark"] .pill-cat-general {
  background-color: rgba(56, 189, 248, 0.15) !important;
  color: #38bdf8 !important;
  border-color: rgba(56, 189, 248, 0.3) !important;
}

/* ==========================================================================
   Dynamic Page Theming by Category (Light & Dark)
   ========================================================================== */
body[data-theme-category="auto"] {
  --color-accent: #0071e3;
  --color-accent-hover: #0077ed;
  --color-accent-subtle: rgba(0, 113, 227, 0.08);
  --pastel-blue-bg: #f5f9ff;
  --pastel-blue-border: rgba(0, 113, 227, 0.2);
}

body[data-theme-category="legal"] {
  --color-accent: #4f46e5;
  --color-accent-hover: #4338ca;
  --color-accent-subtle: rgba(79, 70, 229, 0.08);
  --pastel-blue-bg: #f6f6fe;
  --pastel-blue-border: rgba(79, 70, 229, 0.2);
}

body[data-theme-category="health"] {
  --color-accent: #059669;
  --color-accent-hover: #047857;
  --color-accent-subtle: rgba(5, 150, 105, 0.08);
  --pastel-blue-bg: #f0fdf4;
  --pastel-blue-border: rgba(5, 150, 105, 0.2);
}

body[data-theme-category="life"] {
  --color-accent: #e11d48;
  --color-accent-hover: #be123c;
  --color-accent-subtle: rgba(225, 29, 72, 0.08);
  --pastel-blue-bg: #fff1f2;
  --pastel-blue-border: rgba(225, 29, 72, 0.2);
}

body[data-theme-category="home"] {
  --color-accent: #d97706;
  --color-accent-hover: #b45309;
  --color-accent-subtle: rgba(217, 119, 6, 0.08);
  --pastel-blue-bg: #fffbeb;
  --pastel-blue-border: rgba(217, 119, 6, 0.2);
}

body[data-theme-category="renters"] {
  --color-accent: #ea580c;
  --color-accent-hover: #c2410c;
  --color-accent-subtle: rgba(234, 88, 12, 0.08);
  --pastel-blue-bg: #fff7ed;
  --pastel-blue-border: rgba(234, 88, 12, 0.2);
}

body[data-theme-category="disability"] {
  --color-accent: #7c3aed;
  --color-accent-hover: #6d28d9;
  --color-accent-subtle: rgba(124, 58, 237, 0.08);
  --pastel-blue-bg: #f5f3ff;
  --pastel-blue-border: rgba(124, 58, 237, 0.2);
}

body[data-theme-category="general"] {
  --color-accent: #0284c7;
  --color-accent-hover: #0369a1;
  --color-accent-subtle: rgba(2, 132, 199, 0.08);
  --pastel-blue-bg: #f0f9ff;
  --pastel-blue-border: rgba(2, 132, 199, 0.2);
}

/* Dark mode category theming */
[data-theme="dark"] body[data-theme-category="auto"] {
  --color-accent: #2997ff;
  --color-accent-hover: #47a3ff;
  --color-accent-subtle: rgba(41, 151, 255, 0.15);
  --pastel-blue-bg: rgba(41, 151, 255, 0.12);
  --pastel-blue-border: rgba(41, 151, 255, 0.25);
}
[data-theme="dark"] body[data-theme-category="legal"] {
  --color-accent: #818cf8;
  --color-accent-hover: #a5b4fc;
  --color-accent-subtle: rgba(129, 140, 248, 0.15);
  --pastel-blue-bg: rgba(129, 140, 248, 0.12);
  --pastel-blue-border: rgba(129, 140, 248, 0.25);
}
[data-theme="dark"] body[data-theme-category="health"] {
  --color-accent: #34d399;
  --color-accent-hover: #6ee7b7;
  --color-accent-subtle: rgba(52, 211, 153, 0.15);
  --pastel-blue-bg: rgba(52, 211, 153, 0.12);
  --pastel-blue-border: rgba(52, 211, 153, 0.25);
}
[data-theme="dark"] body[data-theme-category="life"] {
  --color-accent: #fb7185;
  --color-accent-hover: #fda4af;
  --color-accent-subtle: rgba(251, 113, 133, 0.15);
  --pastel-blue-bg: rgba(251, 113, 133, 0.12);
  --pastel-blue-border: rgba(251, 113, 133, 0.25);
}
[data-theme="dark"] body[data-theme-category="home"] {
  --color-accent: #fbbf24;
  --color-accent-hover: #fcd34d;
  --color-accent-subtle: rgba(251, 191, 36, 0.15);
  --pastel-blue-bg: rgba(251, 191, 36, 0.12);
  --pastel-blue-border: rgba(251, 191, 36, 0.25);
}
[data-theme="dark"] body[data-theme-category="renters"] {
  --color-accent: #fb923c;
  --color-accent-hover: #fdba74;
  --color-accent-subtle: rgba(251, 146, 60, 0.15);
  --pastel-blue-bg: rgba(251, 146, 60, 0.12);
  --pastel-blue-border: rgba(251, 146, 60, 0.25);
}
[data-theme="dark"] body[data-theme-category="disability"] {
  --color-accent: #a78bfa;
  --color-accent-hover: #c4b5fd;
  --color-accent-subtle: rgba(167, 139, 250, 0.15);
  --pastel-blue-bg: rgba(167, 139, 250, 0.12);
  --pastel-blue-border: rgba(167, 139, 250, 0.25);
}
[data-theme="dark"] body[data-theme-category="general"] {
  --color-accent: #38bdf8;
  --color-accent-hover: #7dd3fc;
  --color-accent-subtle: rgba(56, 189, 248, 0.15);
  --pastel-blue-bg: rgba(56, 189, 248, 0.12);
  --pastel-blue-border: rgba(56, 189, 248, 0.25);
}



/* ==========================================================================
   Minimal Suspense Scenario Cards
   ========================================================================== */
.scenario-minimal-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
  box-sizing: border-box;
}

.scenario-minimal-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
  border-color: var(--color-accent);
}

.scenario-minimal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.scenario-minimal-profile {
  display: flex;
  align-items: center;
  gap: 12px;
}

.scenario-minimal-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--color-accent);
  background: var(--pastel-blue-bg);
  border: 1px solid var(--pastel-blue-border);
  flex-shrink: 0;
}

.scenario-minimal-name {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--color-text);
  margin: 0;
  line-height: 1.25;
}

.scenario-minimal-meta {
  font-size: 0.75rem;
  color: var(--color-secondary);
}

.scenario-suspense-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  background: rgba(225, 29, 72, 0.08);
  color: #e11d48;
  border: 1px solid rgba(225, 29, 72, 0.2);
}

.scenario-minimal-body {
  margin-bottom: 20px;
}

.scenario-minimal-dilemma {
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--color-text);
  margin: 0 0 10px;
}

.scenario-minimal-situation {
  font-size: 0.875rem;
  color: var(--color-secondary);
  line-height: 1.6;
  margin: 0;
}

.scenario-minimal-footer {
  padding-top: 16px;
  border-top: 1px solid var(--color-border-light);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}

.scenario-reveal-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-accent);
  text-decoration: none;
  transition: gap var(--transition-fast), color var(--transition-fast);
}

.scenario-reveal-link:hover {
  color: var(--color-accent-hover);
  gap: 10px;
}

/* ==========================================================================
   Comprehensive Full-Page Error Suite & Animated Shader System
   ========================================================================== */

.error-hero-wrapper {
  position: relative;
  overflow: hidden;
  min-height: calc(100vh - 140px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 80px 24px 96px;
  box-sizing: border-box;
  width: 100%;
  background: var(--color-bg);
  transition: background var(--transition-base);
}

.error-canvas-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.error-svg-graphic {
  width: 100%;
  height: 100%;
  max-width: 1400px;
  opacity: 0.85;
}

.error-hero-inner {
  position: relative;
  z-index: 2;
  max-width: 840px;
  width: 100%;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.error-eyebrow-wrap {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}

.error-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 6px 14px;
  border-radius: var(--radius-full);
  line-height: 1;
}

.error-criticality-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.6875rem;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: var(--radius-full);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  color: var(--color-secondary);
}

.error-code-display {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  font-size: clamp(5.5rem, 16vw, 10.5rem);
  font-weight: 800;
  line-height: 0.92;
  letter-spacing: -0.05em;
  margin: 0 0 20px;
  user-select: none;
  position: relative;
  display: inline-block;
}

.error-headline {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  font-size: clamp(1.6rem, 3.2vw, 2.375rem);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: var(--color-text);
  margin: 0 0 16px;
  max-width: 740px;
}

.error-story {
  font-size: clamp(1rem, 1.8vw, 1.125rem);
  line-height: 1.7;
  color: var(--color-secondary);
  margin: 0 0 24px;
  max-width: 660px;
}

.error-tech-box {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 14px 20px;
  margin-bottom: 32px;
  max-width: 640px;
  width: 100%;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 0.875rem;
  text-align: left;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}

.error-tech-icon {
  flex-shrink: 0;
  margin-top: 2px;
}

.error-tech-text strong {
  color: var(--color-text);
  display: block;
  margin-bottom: 2px;
}

.error-tech-text span {
  color: var(--color-secondary);
  line-height: 1.5;
  font-size: 0.8125rem;
}

.error-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 48px;
  width: 100%;
}

.error-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: var(--radius-full);
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  transition: all var(--transition-fast);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
}

.error-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.16);
}

.error-btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: var(--radius-full);
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  color: var(--color-text);
  transition: all var(--transition-fast);
}

.error-btn-secondary:hover {
  background: var(--color-surface-hover);
  border-color: var(--color-border-hover);
  transform: translateY(-2px);
}

.error-quick-discovery {
  margin-top: 12px;
  width: 100%;
  border-top: 1px solid var(--color-border-light);
  padding-top: 32px;
}

.error-quick-title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-tertiary);
  margin-bottom: 16px;
}

.error-quick-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  width: 100%;
  max-width: 780px;
  margin: 0 auto;
}

.error-quick-item {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--color-text);
  font-size: 0.8125rem;
  font-weight: 500;
  transition: all var(--transition-fast);
  text-align: left;
}

.error-quick-item:hover {
  border-color: var(--error-accent);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.04);
  color: var(--error-accent);
}

/* ==========================================================================
   Themes by Criticality & Codes
   ========================================================================== */

/* 1. Theme: Lost (404 - Low Criticality) */
body[data-error-theme="lost"] {
  --error-accent: #0071e3;
  --error-accent-light: rgba(0, 113, 227, 0.08);
  --error-accent-border: rgba(0, 113, 227, 0.25);
}
body[data-error-theme="lost"] .error-code-display {
  background: linear-gradient(135deg, #0071e3 0%, #6366f1 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 12px 28px rgba(0, 113, 227, 0.2));
}
body[data-error-theme="lost"] .error-badge {
  background: var(--error-accent-light);
  color: var(--error-accent);
  border: 1px solid var(--error-accent-border);
}
body[data-error-theme="lost"] .error-btn-primary {
  background: #0071e3;
  color: #ffffff;
}
body[data-error-theme="lost"] .error-btn-primary:hover {
  background: #0077ed;
}

/* 2. Theme: Vault (403 - Medium/High Security) */
body[data-error-theme="vault"] {
  --error-accent: #d97706;
  --error-accent-light: rgba(217, 119, 6, 0.08);
  --error-accent-border: rgba(217, 119, 6, 0.25);
}
body[data-error-theme="vault"] .error-code-display {
  background: linear-gradient(135deg, #d97706 0%, #b45309 50%, #f59e0b 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 12px 28px rgba(217, 119, 6, 0.25));
}
body[data-error-theme="vault"] .error-badge {
  background: var(--error-accent-light);
  color: var(--error-accent);
  border: 1px solid var(--error-accent-border);
}
body[data-error-theme="vault"] .error-btn-primary {
  background: #d97706;
  color: #ffffff;
}
body[data-error-theme="vault"] .error-btn-primary:hover {
  background: #b45309;
}

/* 3. Theme: Meltdown (500 - Critical Disaster) */
body[data-error-theme="meltdown"] {
  --error-accent: #e11d48;
  --error-accent-light: rgba(225, 29, 72, 0.08);
  --error-accent-border: rgba(225, 29, 72, 0.28);
}
body[data-error-theme="meltdown"] .error-code-display {
  background: linear-gradient(135deg, #e11d48 0%, #ef4444 50%, #b91c1c 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 12px 32px rgba(225, 29, 72, 0.3));
}
body[data-error-theme="meltdown"] .error-badge {
  background: var(--error-accent-light);
  color: var(--error-accent);
  border: 1px solid var(--error-accent-border);
}
body[data-error-theme="meltdown"] .error-btn-primary {
  background: #e11d48;
  color: #ffffff;
}
body[data-error-theme="meltdown"] .error-btn-primary:hover {
  background: #be123c;
}

/* 4. Theme: Relay (502 - Infrastructure Dropout) */
body[data-error-theme="relay"] {
  --error-accent: #7c3aed;
  --error-accent-light: rgba(124, 58, 237, 0.08);
  --error-accent-border: rgba(124, 58, 237, 0.25);
}
body[data-error-theme="relay"] .error-code-display {
  background: linear-gradient(135deg, #7c3aed 0%, #06b6d4 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 12px 28px rgba(124, 58, 237, 0.25));
}
body[data-error-theme="relay"] .error-badge {
  background: var(--error-accent-light);
  color: var(--error-accent);
  border: 1px solid var(--error-accent-border);
}
body[data-error-theme="relay"] .error-btn-primary {
  background: #7c3aed;
  color: #ffffff;
}
body[data-error-theme="relay"] .error-btn-primary:hover {
  background: #6d28d9;
}

/* 5. Theme: Maintenance (503 - Zen Workshop) */
body[data-error-theme="maintenance"] {
  --error-accent: #059669;
  --error-accent-light: rgba(5, 150, 105, 0.08);
  --error-accent-border: rgba(5, 150, 105, 0.25);
}
body[data-error-theme="maintenance"] .error-code-display {
  background: linear-gradient(135deg, #059669 0%, #10b981 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 12px 28px rgba(5, 150, 105, 0.2));
}
body[data-error-theme="maintenance"] .error-badge {
  background: var(--error-accent-light);
  color: var(--error-accent);
  border: 1px solid var(--error-accent-border);
}
body[data-error-theme="maintenance"] .error-btn-primary {
  background: #059669;
  color: #ffffff;
}
body[data-error-theme="maintenance"] .error-btn-primary:hover {
  background: #047857;
}

/* 6. Theme: Speeding (429 - High Speed Throttle) */
body[data-error-theme="speeding"] {
  --error-accent: #ea580c;
  --error-accent-light: rgba(234, 88, 12, 0.08);
  --error-accent-border: rgba(234, 88, 12, 0.25);
}
body[data-error-theme="speeding"] .error-code-display {
  background: linear-gradient(135deg, #ea580c 0%, #f97316 50%, #c2410c 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 12px 28px rgba(234, 88, 12, 0.25));
}
body[data-error-theme="speeding"] .error-badge {
  background: var(--error-accent-light);
  color: var(--error-accent);
  border: 1px solid var(--error-accent-border);
}
body[data-error-theme="speeding"] .error-btn-primary {
  background: #ea580c;
  color: #ffffff;
}
body[data-error-theme="speeding"] .error-btn-primary:hover {
  background: #c2410c;
}

/* ==========================================================================
   SVG Shader Keyframe Animations
   ========================================================================== */

/* Lost Theme Animations */
@keyframes errorSpinSlow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes errorFloatPaper {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-24px) rotate(5deg); }
}
@keyframes errorCompassPulse {
  0%, 100% { transform: scale(1); opacity: 0.35; }
  50% { transform: scale(1.08); opacity: 0.75; }
}

.anim-spin-slow {
  animation: errorSpinSlow 40s linear infinite;
  transform-origin: center;
}
.anim-float-paper-1 {
  animation: errorFloatPaper 6s ease-in-out infinite;
  transform-origin: center;
}
.anim-float-paper-2 {
  animation: errorFloatPaper 8s ease-in-out infinite 1.5s;
  transform-origin: center;
}
.anim-float-paper-3 {
  animation: errorFloatPaper 7s ease-in-out infinite 3s;
  transform-origin: center;
}
.anim-compass-pulse {
  animation: errorCompassPulse 4s ease-in-out infinite;
  transform-origin: center;
}

/* Vault Theme Animations */
@keyframes errorLaserSweep {
  0% { transform: translateY(-160px); opacity: 0.15; }
  50% { transform: translateY(220px); opacity: 0.85; }
  100% { transform: translateY(-160px); opacity: 0.15; }
}
@keyframes errorGearClockwise {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes errorGearCounter {
  from { transform: rotate(0deg); }
  to { transform: rotate(-360deg); }
}
@keyframes errorSecurityBlink {
  0%, 100% { opacity: 0.25; }
  50% { opacity: 0.95; }
}

.anim-laser-sweep {
  animation: errorLaserSweep 3.5s ease-in-out infinite;
}
.anim-gear-cw {
  animation: errorGearClockwise 25s linear infinite;
  transform-origin: center;
}
.anim-gear-ccw {
  animation: errorGearCounter 20s linear infinite;
  transform-origin: center;
}
.anim-security-blink {
  animation: errorSecurityBlink 2s ease-in-out infinite;
}

/* Meltdown Theme Animations */
@keyframes errorBlastPulse {
  0% { r: 80; opacity: 0.85; }
  100% { r: 420; opacity: 0; }
}
@keyframes errorSeismicSpike {
  0% { stroke-dashoffset: 0; opacity: 0.4; }
  50% { stroke-dashoffset: 140; opacity: 0.9; }
  100% { stroke-dashoffset: 280; opacity: 0.4; }
}
@keyframes errorEmberFlicker {
  0%, 100% { opacity: 0.2; transform: scale(0.96); }
  50% { opacity: 0.8; transform: scale(1.04); }
}

.anim-blast-1 {
  animation: errorBlastPulse 3s cubic-bezier(0.2, 0.8, 0.2, 1) infinite;
}
.anim-blast-2 {
  animation: errorBlastPulse 3s cubic-bezier(0.2, 0.8, 0.2, 1) infinite 1s;
}
.anim-blast-3 {
  animation: errorBlastPulse 3s cubic-bezier(0.2, 0.8, 0.2, 1) infinite 2s;
}
.anim-seismic {
  stroke-dasharray: 20 10;
  animation: errorSeismicSpike 2.5s linear infinite;
}
.anim-ember-flicker {
  animation: errorEmberFlicker 1.8s ease-in-out infinite;
  transform-origin: center;
}

/* Relay Theme Animations */
@keyframes errorArcSpark {
  0%, 100% { opacity: 0.15; transform: scale(0.95); }
  35%, 65% { opacity: 0.9; transform: scale(1.05); }
}
@keyframes errorBroadcastRing {
  0% { transform: scale(0.3); opacity: 0.85; }
  100% { transform: scale(1.5); opacity: 0; }
}
@keyframes errorPacketDrift {
  0% { transform: translate(0, 0); opacity: 0.3; }
  50% { transform: translate(-36px, 24px); opacity: 0.85; }
  100% { transform: translate(0, 0); opacity: 0.3; }
}

.anim-arc-spark {
  animation: errorArcSpark 2s ease-in-out infinite;
  transform-origin: center;
}
.anim-broadcast-1 {
  animation: errorBroadcastRing 2.6s ease-out infinite;
  transform-origin: center;
}
.anim-broadcast-2 {
  animation: errorBroadcastRing 2.6s ease-out infinite 1.3s;
  transform-origin: center;
}
.anim-packet-drift {
  animation: errorPacketDrift 4.5s ease-in-out infinite;
}

/* Maintenance Theme Animations */
@keyframes errorMaintGears {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes errorBreathingOrbit {
  0%, 100% { transform: scale(0.94); opacity: 0.4; }
  50% { transform: scale(1.06); opacity: 0.85; }
}

.anim-maint-gear-1 {
  animation: errorMaintGears 18s linear infinite;
  transform-origin: center;
}
.anim-maint-gear-2 {
  animation: errorGearCounter 14s linear infinite;
  transform-origin: center;
}
.anim-breathing-orbit {
  animation: errorBreathingOrbit 5s ease-in-out infinite;
  transform-origin: center;
}

/* Speeding Theme Animations */
@keyframes errorTachometerTwitch {
  0%, 100% { transform: rotate(68deg); }
  20% { transform: rotate(88deg); }
  45% { transform: rotate(74deg); }
  70% { transform: rotate(94deg); }
  85% { transform: rotate(80deg); }
}
@keyframes errorRadarSweep {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes errorSpeedStreak {
  0% { stroke-dashoffset: 280; opacity: 0; }
  50% { opacity: 0.85; }
  100% { stroke-dashoffset: -280; opacity: 0; }
}

.anim-tacho-needle {
  animation: errorTachometerTwitch 1.6s ease-in-out infinite;
  transform-origin: 300px 300px;
}
.anim-radar-sweep {
  animation: errorRadarSweep 4s linear infinite;
  transform-origin: 300px 300px;
}
.anim-speed-streak {
  stroke-dasharray: 60 140;
  animation: errorSpeedStreak 1.8s linear infinite;
}

/* Dark Mode Overrides for Error Pages */
[data-theme="dark"] .error-hero-wrapper {
  background: #090d16;
}
[data-theme="dark"] .error-tech-box {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}
[data-theme="dark"] .error-criticality-pill {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
  color: #94a3b8;
}
[data-theme="dark"] .error-quick-item {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: #f1f5f9;
}
[data-theme="dark"] .error-quick-item:hover {
  background: rgba(255, 255, 255, 0.08);
}
[data-theme="dark"] .error-btn-secondary {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.14);
  color: #ffffff;
}

/* Responsive Mobile Layout for Error Pages */
@media (max-width: 640px) {
  .error-hero-wrapper {
    padding: 48px 16px 64px;
    min-height: auto;
  }
  .error-code-display {
    font-size: 5rem;
    margin-bottom: 12px;
  }
  .error-headline {
    font-size: 1.5rem;
  }
  .error-story {
    font-size: 0.9375rem;
  }
  .error-tech-box {
    flex-direction: column;
    gap: 8px;
    padding: 12px 16px;
  }
  .error-actions {
    flex-direction: column;
    gap: 10px;
    width: 100%;
  }
  .error-btn-primary,
  .error-btn-secondary {
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
  }
  .error-quick-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}
/* ==========================================================================
   Content Keyword Links & Inline Anchors (Apple-grade Typography)
   ========================================================================== */
.article-body a:not(.btn):not(.decision-tool-btn):not(.card-keyword-link):not(.card-title-link):not(.pill):not(.apple-card-link),
.article-p a:not(.btn):not(.decision-tool-btn),
.article-list a:not(.btn):not(.decision-tool-btn),
.apple-callout a:not(.btn):not(.decision-tool-btn),
.qa-section a:not(.btn):not(.decision-tool-btn):not(.card-keyword-link):not(.card-title-link),
.qa-direct-answer-text a:not(.btn):not(.decision-tool-btn),
.qa-takeaways-list a:not(.btn):not(.decision-tool-btn),
.qa-case-study-box a:not(.btn):not(.decision-tool-btn):not(.card-keyword-link),
.qa-action-checklist a:not(.btn):not(.decision-tool-btn),
.faq-answer a:not(.btn):not(.decision-tool-btn) {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1.5px;
  font-weight: 500;
  transition: opacity var(--transition-fast), color var(--transition-fast);
}

.article-body a:not(.btn):not(.decision-tool-btn):not(.card-keyword-link):not(.card-title-link):not(.pill):not(.apple-card-link):hover,
.article-p a:not(.btn):not(.decision-tool-btn):hover,
.article-list a:not(.btn):not(.decision-tool-btn):hover,
.apple-callout a:not(.btn):not(.decision-tool-btn):hover,
.qa-section a:not(.btn):not(.decision-tool-btn):not(.card-keyword-link):not(.card-title-link):hover,
.qa-direct-answer-text a:not(.btn):not(.decision-tool-btn):hover,
.qa-takeaways-list a:not(.btn):not(.decision-tool-btn):hover,
.qa-case-study-box a:not(.btn):not(.decision-tool-btn):not(.card-keyword-link):hover,
.qa-action-checklist a:not(.btn):not(.decision-tool-btn):hover,
.faq-answer a:not(.btn):not(.decision-tool-btn):hover {
  opacity: 0.8;
  color: var(--color-accent-hover, #0056b3);
}

/* ==========================================================================
   Modern Apple-Grade Interactive Decision Tool Component
   ========================================================================== */
.decision-tool-card {
  position: relative;
  margin: 44px 0;
  padding: 28px 32px;
  background: linear-gradient(135deg, rgba(240, 247, 255, 0.95) 0%, rgba(255, 255, 255, 0.98) 50%, rgba(244, 248, 255, 0.92) 100%);
  border: 1px solid rgba(0, 113, 227, 0.2);
  border-radius: var(--radius-lg, 20px);
  box-shadow: 0 4px 20px -2px rgba(0, 113, 227, 0.08), 0 1px 3px rgba(0, 0, 0, 0.03);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.28s ease;
  overflow: hidden;
}

.decision-tool-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: linear-gradient(180deg, #0071e3 0%, #0056b3 100%);
  border-radius: 4px 0 0 4px;
}

.decision-tool-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px -4px rgba(0, 113, 227, 0.16), 0 2px 6px rgba(0, 0, 0, 0.04);
  border-color: rgba(0, 113, 227, 0.38);
}

.decision-tool-left {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  flex: 1 1 360px;
}

.decision-tool-icon-wrap {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: linear-gradient(135deg, #0071e3 0%, #0056b3 100%);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(0, 113, 227, 0.32);
  margin-top: 2px;
}

.decision-tool-svg-icon {
  width: 24px;
  height: 24px;
}

.decision-tool-body {
  flex: 1;
}

.decision-tool-pill-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}

.decision-tool-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  background: rgba(0, 113, 227, 0.08);
  border: 1px solid rgba(0, 113, 227, 0.22);
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #0071e3;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.decision-tool-pulse {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #0071e3;
  box-shadow: 0 0 0 0 rgba(0, 113, 227, 0.7);
  animation: decisionToolPulse 2s infinite;
}

@keyframes decisionToolPulse {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(0, 113, 227, 0.7);
  }
  70% {
    transform: scale(1);
    box-shadow: 0 0 0 6px rgba(0, 113, 227, 0);
  }
  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(0, 113, 227, 0);
  }
}

.decision-tool-tag {
  font-size: 0.75rem;
  color: var(--color-secondary);
  font-weight: 500;
}

.decision-tool-title {
  font-size: 1.1875rem;
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 6px 0;
  line-height: 1.35;
  letter-spacing: -0.01em;
}

.decision-tool-desc {
  font-size: 0.875rem;
  color: var(--color-secondary);
  line-height: 1.55;
  margin: 0;
  max-width: 520px;
}

.decision-tool-action {
  display: flex;
  align-items: center;
}

.decision-tool-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 12px 24px !important;
  background: linear-gradient(135deg, #0071e3 0%, #0056b3 100%) !important;
  color: #ffffff !important;
  text-decoration: none !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  border-radius: 9999px !important;
  white-space: nowrap !important;
  box-shadow: 0 4px 14px rgba(0, 113, 227, 0.32) !important;
  transition: all 0.22s ease !important;
  border: none !important;
  cursor: pointer !important;
}

.decision-tool-btn:hover {
  background: linear-gradient(135deg, #0077ed 0%, #0060c7 100%) !important;
  color: #ffffff !important;
  text-decoration: none !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 22px rgba(0, 113, 227, 0.42) !important;
  opacity: 1 !important;
}

.decision-tool-btn:hover .decision-tool-arrow {
  transform: translateX(3px);
}

.decision-tool-arrow {
  transition: transform 0.2s ease;
}

@media (max-width: 640px) {
  .decision-tool-card {
    padding: 22px 20px;
    margin: 32px 0;
  }
  .decision-tool-left {
    gap: 14px;
  }
  .decision-tool-icon-wrap {
    width: 42px;
    height: 42px;
  }
  .decision-tool-action {
    width: 100%;
  }
  .decision-tool-btn {
    width: 100% !important;
  }
}


