/* ════════════════════════════════════════════════════════════════════════════
   AARDVARK SHARED POLISH LAYER
   Cross-page premium polish used by /blog.html, /spring-cleanup.html, and any
   other subpage that imports this stylesheet. Mirrors the polish layer baked
   into index.html. Respects prefers-reduced-motion.
   ════════════════════════════════════════════════════════════════════════════ */

/* Scroll progress indicator */
.scroll-progress {
  position: fixed; top: 0; left: 0; height: 3px;
  width: 0%;
  background: linear-gradient(90deg, var(--amber, #c4953a) 0%, var(--sage, #6b8f5e) 100%);
  z-index: 1001;
  transition: width 60ms linear;
  box-shadow: 0 0 12px rgba(196,149,58,0.4);
  pointer-events: none;
}

/* Premium shadow tokens (used by cards / buttons) */
:root {
  --shadow-soft: 0 1px 2px rgba(26,46,26,.04), 0 4px 14px rgba(26,46,26,.04);
  --shadow-card: 0 2px 4px rgba(26,46,26,.03), 0 12px 36px rgba(26,46,26,.07), 0 24px 64px rgba(26,46,26,.05);
  --shadow-card-hover: 0 6px 12px rgba(26,46,26,.06), 0 24px 60px rgba(26,46,26,.12), 0 48px 100px rgba(42,74,42,.08);
}

/* Tighter, more premium headline letter-spacing */
h1, h2, h3 { letter-spacing: -0.02em; }
h1 { letter-spacing: -0.025em; }

/* Smoother global transitions */
a, button { transition: color .25s cubic-bezier(0.16,1,0.3,1), background .25s ease, transform .25s ease, box-shadow .25s ease; }

/* ── Premium button — gradient + inset highlights + multi-layer shadow ── */
.btn-primary,
.nav-call,
.btn.btn-primary {
  background: linear-gradient(180deg, #d4a94f 0%, #c4953a 50%, #b08229 100%) !important;
  color: var(--forest, #2a4a2a) !important;
  border: 1px solid rgba(176, 130, 41, .35) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.45),
    inset 0 -2px 0 rgba(0,0,0,.14),
    0 1px 2px rgba(196,149,58,.35),
    0 6px 14px rgba(196,149,58,.30),
    0 14px 28px rgba(196,149,58,.20) !important;
  position: relative;
  overflow: hidden;
  transform: translateZ(0);
}
.btn-primary:hover,
.nav-call:hover,
.btn.btn-primary:hover {
  transform: translateY(-2px) !important;
  background: linear-gradient(180deg, #dcb55a 0%, #ccab3d 50%, #b8892d 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.5),
    inset 0 -2px 0 rgba(0,0,0,.16),
    0 2px 4px rgba(196,149,58,.4),
    0 10px 22px rgba(196,149,58,.4),
    0 22px 44px rgba(196,149,58,.28) !important;
}
.btn-primary:active,
.nav-call:active {
  transform: translateY(0) !important;
}
.btn-primary::before,
.nav-call::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%);
  transform: translateX(-100%);
  transition: transform .8s cubic-bezier(.4,0,.2,1);
  pointer-events: none;
}
.btn-primary:hover::before,
.nav-call:hover::before {
  transform: translateX(100%);
}

/* ── Single floating "Call/Text Now" button (bottom-right) — forest green pill ── */
.floating-cta {
  position: fixed;
  right: 18px;
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  z-index: 950;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  border-radius: 100px;
  background: linear-gradient(180deg, #3a6535 0%, #2a4a2a 55%, #1c3520 100%);
  color: var(--cream, #f9f7f2);
  text-decoration: none;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  border: 1px solid rgba(28,53,32,.4);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -2px 0 rgba(0,0,0,.25),
    0 4px 14px rgba(42,74,42,.45),
    0 12px 32px rgba(42,74,42,.32);
  transition: transform .25s cubic-bezier(0.16,1,0.3,1), box-shadow .25s ease;
  animation: floatPulse 3.6s ease-in-out infinite;
}
.floating-cta:hover, .floating-cta:active {
  transform: translateY(-2px);
  background: linear-gradient(180deg, #4a7544 0%, #3a6535 55%, #224028 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    inset 0 -2px 0 rgba(0,0,0,.28),
    0 6px 18px rgba(42,74,42,.55),
    0 18px 40px rgba(42,74,42,.42);
}
.floating-cta svg {
  width: 18px; height: 18px;
  stroke: var(--cream, #f9f7f2);
  fill: none;
  flex-shrink: 0;
}
@keyframes floatPulse {
  0%,100% { box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -2px 0 rgba(0,0,0,.25),
    0 4px 14px rgba(42,74,42,.45),
    0 12px 32px rgba(42,74,42,.32),
    0 0 0 0 rgba(58,101,53,.45); }
  50%    { box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -2px 0 rgba(0,0,0,.25),
    0 4px 14px rgba(42,74,42,.45),
    0 12px 32px rgba(42,74,42,.32),
    0 0 0 16px rgba(58,101,53,0); }
}
@media (max-width: 480px) {
  .floating-cta {
    right: 14px;
    bottom: calc(14px + env(safe-area-inset-bottom, 0px));
    padding: 13px 20px;
    font-size: 0.9rem;
  }
}

/* ── Card refinements (post cards, package cards, etc.) ── */
.post-card, .price-card, .package-card, .blog-card {
  transition: transform .35s cubic-bezier(0.16,1,0.3,1), box-shadow .35s ease, border-color .35s ease;
}
.post-card:hover, .price-card:hover, .package-card:hover, .blog-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-card-hover);
}

/* ── Smooth reveal-up animation (for sections with .reveal class) ── */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .9s cubic-bezier(0.16, 1, 0.3, 1), transform .9s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ════════════════════════════════════════════════════════════════════════════
   PREMIUM NAV — matches the homepage nav design across all subpages
   Transparent at top, frosted white when scrolled, translucent pill behind
   menu options, amber Call CTA pill. Uses !important to win over page-local
   styles that were here before this layer.
   ════════════════════════════════════════════════════════════════════════════ */
.nav {
  position: fixed !important;
  top: 0 !important; left: 0 !important; right: 0 !important;
  z-index: 1000 !important;
  padding: 20px 0 !important;
  background: transparent !important;
  border-bottom: none !important;
  transition: background .3s ease, padding .3s ease, box-shadow .3s ease, backdrop-filter .3s ease !important;
}
.nav.scrolled {
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  padding: 12px 0 !important;
  box-shadow: 0 1px 20px rgba(42,74,42,0.06) !important;
}
.nav-inner, .nav-in {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
}
.nav-logo {
  font-family: 'Playfair Display', serif !important;
  font-size: 1.6rem !important;
  font-weight: 800 !important;
  color: var(--forest, #2a4a2a) !important;
  letter-spacing: -0.02em !important;
}
.nav-logo span {
  color: var(--amber, #c4953a) !important;
}

/* The pill that wraps the menu items (between logo and phone CTA) */
.nav-links {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
}
.nav-pill {
  display: flex !important;
  align-items: center !important;
  gap: 28px !important;
  padding: 11px 28px !important;
  background: rgba(255,255,255,.72) !important;
  backdrop-filter: blur(14px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.4) !important;
  border: 1px solid rgba(255,255,255,.55) !important;
  border-radius: 100px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.6),
    0 2px 6px rgba(26,46,26,.06),
    0 8px 24px rgba(26,46,26,.08) !important;
  transition: background .3s ease, box-shadow .3s ease, border-color .3s ease !important;
}
.nav-pill a {
  color: var(--text-body, #4a5a44) !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  font-family: 'DM Sans', sans-serif !important;
  position: relative !important;
  text-decoration: none !important;
  letter-spacing: 0 !important;
  transition: color .25s ease !important;
}
.nav-pill a::after {
  content: '' !important;
  position: absolute !important;
  bottom: -4px !important;
  left: 0 !important;
  width: 0 !important;
  height: 2px !important;
  background: var(--amber, #c4953a) !important;
  transition: width .3s ease !important;
  border-radius: 2px !important;
}
.nav-pill a:hover {
  color: var(--forest, #2a4a2a) !important;
}
.nav-pill a:hover::after {
  width: 100% !important;
}
.nav-pill a.active {
  color: var(--forest, #2a4a2a) !important;
}
.nav-pill a.active::after {
  width: 100% !important;
}

/* When nav scrolled past hero — fade the pill into the white nav bg */
.nav.scrolled .nav-pill {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 0 !important;
}

/* Amber Phone pill CTA — sits to the right of the menu pill */
.nav-phone, .nav-call {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: var(--amber, #c4953a) !important;
  color: var(--forest, #2a4a2a) !important;
  padding: 11px 22px !important;
  border-radius: 100px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  text-decoration: none !important;
  letter-spacing: -0.01em !important;
  transition: all .3s ease !important;
  box-shadow: 0 4px 14px rgba(196,149,58,0.25) !important;
}
.nav-phone:hover, .nav-call:hover {
  background: var(--amber-light, #d4a94f) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(196,149,58, 0.4) !important;
}
.nav-phone::after, .nav-call::after { display: none !important; }
.nav-phone svg, .nav-call svg {
  width: 16px !important;
  height: 16px !important;
  stroke: var(--forest, #2a4a2a) !important;
  fill: none !important;
}

/* Hamburger — frosted white square button */
.nav-hamburger {
  display: none !important;
  flex-direction: column !important;
  gap: 5px !important;
  background: none !important;
  padding: 8px !important;
  border: none !important;
  cursor: pointer !important;
}
.nav-hamburger span {
  display: block !important;
  width: 24px !important;
  height: 2px !important;
  background: var(--forest, #2a4a2a) !important;
  border-radius: 2px !important;
  transition: all 0.3s ease !important;
}

/* Push the page content down so it doesn't sit under the fixed nav.
   Pages without a hero that goes full-bleed to the top need this padding. */
body { padding-top: 0 !important; }
.blog-hero { padding-top: 200px !important; }
body > .hero { padding-top: 160px !important; }

/* INDIVIDUAL BLOG POST PAGES — opt out of the fixed transparent nav.
   Posts use a simple sticky nav with a "Back to Blog" link and a forest-green
   .post-hero immediately below it. If we left the nav transparent, the green
   logo would sit on the green hero and be invisible. Scope this override to
   navs that contain a .nav-back element — that's the blog-post signature. */
.nav:has(.nav-back) {
  position: sticky !important;
  top: 0 !important;
  background: var(--white, #fff) !important;
  border-bottom: 1px solid var(--cream-dark, #f0ede5) !important;
  padding: 16px 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.nav:has(.nav-back).scrolled {
  /* Don't apply the scrolled frosted state to blog post navs */
  background: var(--white, #fff) !important;
  padding: 16px 0 !important;
}
.nav:has(.nav-back) .nav-back {
  color: var(--sage, #6b8f5e) !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.nav:has(.nav-back) .nav-back:hover {
  color: var(--forest, #2a4a2a) !important;
}
.nav:has(.nav-back) .nav-in {
  max-width: 780px !important;
}
/* Restore the blog-post hero's top padding — it doesn't sit under a fixed nav */
.post-hero {
  padding-top: 64px !important;
}

@media (max-width: 768px) {
  .nav-links { display: none !important; }
  .nav-hamburger { display: flex !important; }
  .nav { padding: 14px 0 !important; }
  .nav.scrolled { padding: 10px 0 !important; }
}

/* ════════════════════════════════════════════════════════════════════════════
   BLOG PAGE — premium polish
   ════════════════════════════════════════════════════════════════════════════ */
.blog-hero {
  padding: 160px 0 80px !important;
  background: linear-gradient(160deg, var(--cream, #f9f7f2) 0%, var(--sage-bg, #eef3ea) 40%, #e4ecde 70%, var(--cream, #f9f7f2) 100%) !important;
}
.blog-hero h1 {
  font-size: clamp(2.8rem, 6vw, 4.2rem) !important;
  letter-spacing: -0.03em !important;
  line-height: 1.05 !important;
  color: var(--forest, #2a4a2a) !important;
}
.blog-hero h1::after {
  content: '';
  display: block;
  width: 60px; height: 3px;
  background: linear-gradient(90deg, var(--amber, #c4953a), var(--sage, #6b8f5e));
  margin: 18px auto 0;
  border-radius: 2px;
}
.blog-hero p {
  font-size: 1.18rem !important;
  color: var(--text-body, #4a5a44) !important;
  max-width: 580px !important;
}
@keyframes blobFloat {
  0%,100% { transform: translate(0,0) scale(1); }
  50% { transform: translate(30px, -20px) scale(1.06); }
}
.blog-hero-blob-1 { animation: blobFloat 18s ease-in-out infinite; }
.blog-hero-blob-2 { animation: blobFloat 22s ease-in-out infinite reverse; }

/* Category pills — premium feel */
.category-pill {
  font-weight: 600 !important;
  padding: 9px 22px !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.01em !important;
  transition: all .25s cubic-bezier(0.16,1,0.3,1) !important;
  border: 1.5px solid var(--cream-dark, #f0ede5) !important;
}
.category-pill:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(42,74,42,.10);
}
.category-pill.active {
  box-shadow: 0 4px 14px rgba(42,74,42,.25);
}

/* Blog cards — premium lift + refined hierarchy */
.blog-card {
  border-radius: 22px !important;
  border: 1px solid rgba(26,46,26,.05) !important;
  box-shadow: 0 2px 4px rgba(26,46,26,.03), 0 12px 36px rgba(26,46,26,.06) !important;
  transition: transform .4s cubic-bezier(0.16,1,0.3,1), box-shadow .4s ease, border-color .35s ease !important;
}
.blog-card:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 6px 12px rgba(26,46,26,.06), 0 24px 60px rgba(26,46,26,.14), 0 48px 100px rgba(42,74,42,.08) !important;
  border-color: rgba(196,149,58,.2) !important;
}
.blog-card-thumb {
  position: relative;
  overflow: hidden;
}
.blog-card-thumb::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 30% 30%, rgba(196,149,58,.12) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 70%, rgba(107,143,94,.18) 0%, transparent 60%);
  pointer-events: none;
}
.blog-card-thumb .tree-icon {
  position: relative;
  z-index: 1;
  font-size: 3.4rem !important;
  opacity: 0.4 !important;
  transition: transform .5s cubic-bezier(0.16,1,0.3,1), opacity .35s ease;
}
.blog-card:hover .blog-card-thumb .tree-icon {
  transform: scale(1.12) rotate(-4deg);
  opacity: .55 !important;
}
.blog-card-category {
  background: var(--amber, #c4953a) !important;
  color: var(--forest, #2a4a2a) !important;
  box-shadow: 0 4px 12px rgba(196,149,58,.35);
  font-weight: 700 !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   SPRING CLEANUP PAGE — premium polish
   ════════════════════════════════════════════════════════════════════════════ */
.spring-cleanup-page .hero,
body > .hero:has(.hero-tag) {
  background:
    linear-gradient(135deg, rgba(26,46,26,.78) 0%, rgba(42,74,42,.62) 50%, rgba(30,58,30,.85) 100%),
    url('/photos/spring-cleanup-hero.jpg') !important;
  background-size: cover, cover !important;
  background-position: center, center !important;
  background-repeat: no-repeat, no-repeat !important;
  padding: 160px 24px 100px !important;
  position: relative;
}
body > .hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 20% 30%, rgba(196,149,58,.20) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 70%, rgba(107,143,94,.18) 0%, transparent 50%);
  pointer-events: none;
}
body > .hero > * { position: relative; z-index: 1; }
body > .hero .hero-tag {
  display: inline-block;
  padding: 6px 16px;
  background: rgba(196,149,58,.15);
  border: 1px solid rgba(196,149,58,.3);
  border-radius: 100px;
  color: var(--amber, #c4953a) !important;
  margin-bottom: 24px !important;
}
body > .hero h1 {
  font-size: clamp(2.6rem, 6vw, 4rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.03em !important;
}
body > .hero h1 em {
  color: var(--amber, #c4953a) !important;
}
body > .hero .hero-sub {
  font-size: 1.1rem !important;
  color: rgba(255,255,255,.75) !important;
  max-width: 540px;
  margin: 16px auto 0;
}

/* Pricing table — premium gradient header + refined rows */
.price-table {
  border-radius: 22px !important;
  box-shadow: 0 2px 6px rgba(26,46,26,.04), 0 18px 48px rgba(26,46,26,.10) !important;
  border: 1px solid rgba(26,46,26,.05);
}
.price-head {
  background: linear-gradient(180deg, #2a4a2a 0%, #1e3a1e 100%) !important;
  padding: 18px 24px !important;
}
.price-th {
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
}
.price-row {
  padding: 22px 24px !important;
  transition: background .25s ease, transform .25s ease;
}
.price-row:hover {
  background: linear-gradient(90deg, var(--sage-bg, #eef3ea) 0%, var(--cream, #f9f7f2) 100%) !important;
}
.price-label {
  font-family: 'Playfair Display', serif !important;
  font-size: 1.1rem !important;
  letter-spacing: -0.01em;
}
.price-val {
  font-size: 1.4rem !important;
  font-weight: 700 !important;
}

/* Condition cards */
.cond-card {
  border-radius: 18px !important;
  padding: 22px 26px !important;
  border: 1px solid rgba(26,46,26,.04);
  transition: transform .35s cubic-bezier(0.16,1,0.3,1), box-shadow .35s ease, border-color .25s ease !important;
}
.cond-card:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(196,149,58,.2);
  box-shadow: 0 4px 10px rgba(26,46,26,.06), 0 18px 40px rgba(26,46,26,.10) !important;
}
.cond-chip {
  font-weight: 800 !important;
  padding: 6px 16px !important;
}
.chip-light { background: rgba(107,143,94,.15) !important; color: var(--forest, #2a4a2a) !important; }
.chip-moderate { background: rgba(196,149,58,.18) !important; color: #8a6420 !important; }
.chip-heavy { background: rgba(180,60,50,.15) !important; color: #9a3027 !important; }

/* Lookup CTA */
.lookup {
  border-radius: 18px !important;
  padding: 32px !important;
  background: linear-gradient(180deg, var(--white, #fff) 0%, var(--cream, #f9f7f2) 100%) !important;
  border: 1px solid rgba(26,46,26,.04);
  box-shadow: 0 2px 6px rgba(26,46,26,.04), 0 18px 40px rgba(26,46,26,.06) !important;
}
.lookup-btn {
  background: linear-gradient(180deg, var(--forest-light, #3a6535) 0%, var(--forest, #2a4a2a) 100%) !important;
  border-radius: 14px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 4px 14px rgba(42,74,42,.3) !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
}
.lookup-btn:hover {
  transform: translateY(-2px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 8px 22px rgba(42,74,42,.4) !important;
}

/* Bottom CTA card — premium gradient + hero photo accent */
.spring-cleanup-page .cta,
body .cta:has(.cta-phone) {
  background: linear-gradient(135deg, #1a2e1a 0%, #2a4a2a 50%, #1e3a1e 100%) !important;
  border-radius: 24px !important;
  padding: 56px 40px !important;
  position: relative;
  overflow: hidden;
}
body .cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 80% 30%, rgba(196,149,58,.15) 0%, transparent 50%),
    radial-gradient(ellipse at 20% 80%, rgba(107,143,94,.18) 0%, transparent 50%);
  pointer-events: none;
}
body .cta > * { position: relative; z-index: 1; }
body .cta h3 {
  font-size: clamp(1.8rem, 4vw, 2.4rem) !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 16px !important;
}
.cta-phone {
  font-size: clamp(2.2rem, 5vw, 3rem) !important;
  letter-spacing: -0.02em;
  transition: transform .25s ease;
}
.cta-phone:hover { transform: scale(1.03); }

.cta-btn {
  background: linear-gradient(180deg, #d4a94f 0%, #c4953a 50%, #b08229 100%) !important;
  color: var(--forest, #2a4a2a) !important;
  padding: 16px 36px !important;
  font-size: 1.05rem !important;
  border: 1px solid rgba(176,130,41,.4);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.45),
    inset 0 -2px 0 rgba(0,0,0,.14),
    0 6px 14px rgba(196,149,58,.3),
    0 14px 28px rgba(196,149,58,.2) !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
}
.cta-btn:hover {
  transform: translateY(-2px) !important;
  background: linear-gradient(180deg, #dcb55a 0%, #ccab3d 50%, #b8892d 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.5),
    inset 0 -2px 0 rgba(0,0,0,.16),
    0 10px 22px rgba(196,149,58,.4),
    0 22px 44px rgba(196,149,58,.28) !important;
}

/* Section titles — refined hierarchy */
.sec-title {
  font-size: clamp(2rem, 4vw, 2.6rem) !important;
  letter-spacing: -0.025em !important;
  line-height: 1.1;
  margin-bottom: 32px !important;
}
.sec-tag {
  color: var(--amber, #c4953a) !important;
  font-weight: 700 !important;
}

/* ── Respect reduced-motion preference ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .floating-cta { animation: none !important; }
  .blog-hero-blob-1, .blog-hero-blob-2 { animation: none !important; }
}
