/* ══════════════════════════════════════════════════════
   RIF XALIMA — PREMIUM MODE SÉNÉGAL  v10.0.0
   Design moderne · Animations fluides · Startup/IA feel
   Mobile-first · Compatible dark mode
══════════════════════════════════════════════════════ */

/* ─── DESIGN TOKENS PREMIUM ─── */
:root {
  --rxp-primary:       #00853F;
  --rxp-primary-light: #00c853;
  --rxp-primary-glow:  rgba(0,133,63,0.38);
  --rxp-yellow:        #FDEF42;
  --rxp-yellow-glow:   rgba(253,239,66,0.28);
  --rxp-red:           #E31B23;
  --rxp-red-glow:      rgba(227,27,35,0.22);
  --rxp-dark:          #060d18;
  --rxp-dark-2:        #0d1a2e;
  --rxp-dark-3:        #061a0d;
  --rxp-glass:         rgba(255,255,255,0.07);
  --rxp-glass-border:  rgba(255,255,255,0.12);
  --rxp-shadow-sm:     0 2px 8px rgba(0,0,0,0.12);
  --rxp-shadow-md:     0 8px 32px rgba(0,0,0,0.18);
  --rxp-shadow-lg:     0 24px 64px rgba(0,0,0,0.28);
  --rxp-shadow-g:      0 8px 32px rgba(0,133,63,0.32);
  --rxp-spring:        cubic-bezier(0.34,1.56,0.64,1);
  --rxp-ease:          cubic-bezier(0.4,0,0.2,1);
  --rxp-ease-out:      cubic-bezier(0,0,0.2,1);
}

/* ══════════════════════════════════
   KEYFRAMES
══════════════════════════════════ */

@keyframes rxpFloat {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-12px); }
}

@keyframes rxpPulseGreen {
  0%,100% { box-shadow: 0 0 0 0 rgba(0,133,63,0.45); }
  60%     { box-shadow: 0 0 0 18px rgba(0,133,63,0); }
}

@keyframes rxpShimmer {
  0%   { background-position: -250% center; }
  100% { background-position: 250% center; }
}

@keyframes rxpSpin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

@keyframes rxpGlowPulse {
  0%,100% { opacity: 0.5; transform: scale(1); }
  50%     { opacity: 1;   transform: scale(1.06); }
}

@keyframes rxpOrb {
  0%,100% { transform: translate(0,0) scale(1);          opacity: 0.6; }
  33%     { transform: translate(45px,-35px) scale(1.18); opacity: 0.85; }
  66%     { transform: translate(-28px,22px) scale(0.88); opacity: 0.5; }
}

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

@keyframes rxpRevealScale {
  from { opacity: 0; transform: scale(0.88); }
  to   { opacity: 1; transform: scale(1); }
}

@keyframes rxpFlagSlide {
  0%   { background-position: 0% center; }
  100% { background-position: 200% center; }
}

@keyframes rxpCountUp {
  from { opacity: 0; transform: scale(0.7) translateY(10px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes rxpGradMove {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes rxpBounce {
  0%,100% { transform: translateY(0); }
  30%     { transform: translateY(-8px); }
  55%     { transform: translateY(-4px); }
}

/* ══════════════════════════════════
   SCROLL REVEAL SYSTEM
══════════════════════════════════ */

[data-rx-reveal] {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.72s var(--rxp-ease-out),
              transform 0.72s var(--rxp-ease-out);
}
[data-rx-reveal].rx-revealed   { opacity: 1; transform: none !important; }
[data-rx-reveal="left"]        { transform: translateX(-32px); }
[data-rx-reveal="right"]       { transform: translateX(32px); }
[data-rx-reveal="scale"]       { transform: scale(0.88); }
[data-rx-reveal="fade"]        { transform: none; }
[data-rx-reveal].rx-revealed:nth-child(2) { transition-delay: 0.1s; }
[data-rx-reveal].rx-revealed:nth-child(3) { transition-delay: 0.18s; }
[data-rx-reveal].rx-revealed:nth-child(4) { transition-delay: 0.25s; }

/* ══════════════════════════════════
   HEADER GLASSMORPHISM + ANIMATIONS
══════════════════════════════════ */

.rx-header {
  background: rgba(255,255,255,0.88) !important;
  backdrop-filter: blur(24px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(160%) !important;
  border-bottom: 1px solid rgba(0,133,63,0.1) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,0.8),
              0 4px 32px rgba(0,0,0,0.05) !important;
  transition: background 0.4s var(--rxp-ease),
              box-shadow 0.4s var(--rxp-ease) !important;
}

.rx-header.rx-scrolled {
  background: rgba(255,255,255,0.97) !important;
  box-shadow: 0 2px 40px rgba(0,0,0,0.1),
              0 1px 0 rgba(0,133,63,0.08) !important;
}

/* Animated tricolor flag stripe */
.rx-flag-stripe {
  height: 3px !important;
  background: linear-gradient(90deg,
    #00853F 0%, #00d95f 18%,
    #FDEF42 34%, #ffe000 50%,
    #FDEF42 65%,
    #E31B23 82%, #ff4d53 100%) !important;
  background-size: 200% 100% !important;
  animation: rxpFlagSlide 4s linear infinite !important;
}

/* Logo SVG ring pulse */
.rx-logo__ring {
  animation: rxpGlowPulse 3.5s ease-in-out infinite;
}

/* Logo petals spin on hover */
.rx-logo:hover .rx-logo__petals {
  animation: rxpSpin 4s linear infinite;
}

/* Nav links */
.rx-nav a:hover {
  transform: translateY(-2px) scale(1.05) !important;
}
.rx-nav a.current-menu-item {
  background: linear-gradient(135deg,#ecfdf5,#d1fae5) !important;
  color: #00853F !important;
  box-shadow: 0 2px 12px rgba(0,133,63,0.12) !important;
}

/* Burger bars smooth */
.rx-burger span {
  transition: all 0.35s var(--rxp-spring) !important;
}
.rx-burger.rx-open span:nth-child(1) {
  transform: translateY(8px) rotate(45deg) !important;
}
.rx-burger.rx-open span:nth-child(2) {
  opacity: 0 !important; transform: scaleX(0) !important;
}
.rx-burger.rx-open span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg) !important;
}

/* ══════════════════════════════════
   MOBILE MENU PREMIUM
══════════════════════════════════ */

.rx-mobile-menu {
  background: linear-gradient(160deg,
    #060d18 0%, #0d1a2e 45%, #061a0d 100%) !important;
  transition: transform 0.45s var(--rxp-spring),
              opacity 0.4s var(--rxp-ease) !important;
}

.rx-mm__item {
  border: 1px solid rgba(255,255,255,0.06) !important;
  background: rgba(255,255,255,0.03) !important;
  border-radius: 14px !important;
  margin-bottom: 6px !important;
  transition: all 0.3s var(--rxp-spring) !important;
  backdrop-filter: blur(8px) !important;
}

.rx-mm__item:hover,
.rx-mm__item[data-active="1"] {
  background: rgba(0,133,63,0.16) !important;
  border-color: rgba(0,133,63,0.38) !important;
  transform: translateX(10px) !important;
  box-shadow: 0 4px 20px rgba(0,133,63,0.16) !important;
}

.rx-mm__icon {
  font-size: 1.3rem !important;
  animation: rxpBounce 3s ease-in-out infinite !important;
}
.rx-mm__item:nth-child(2) .rx-mm__icon { animation-delay: 0.1s !important; }
.rx-mm__item:nth-child(3) .rx-mm__icon { animation-delay: 0.2s !important; }
.rx-mm__item:nth-child(4) .rx-mm__icon { animation-delay: 0.3s !important; }
.rx-mm__item:nth-child(5) .rx-mm__icon { animation-delay: 0.4s !important; }
.rx-mm__item:nth-child(6) .rx-mm__icon { animation-delay: 0.5s !important; }

.rx-mm__cta {
  background: linear-gradient(135deg, #00853F, #00a651) !important;
  box-shadow: 0 6px 24px rgba(0,133,63,0.38) !important;
  transition: all 0.3s var(--rxp-spring) !important;
  animation: rxpPulseGreen 2.8s ease-in-out infinite !important;
}
.rx-mm__cta:hover {
  animation: none !important;
  transform: translateY(-3px) scale(1.03) !important;
  box-shadow: 0 12px 36px rgba(0,133,63,0.5) !important;
}

/* ══════════════════════════════════
   HERO SECTIONS — DARK PREMIUM (tous les plugins)
══════════════════════════════════ */

/* Dark gradient base for all plugin heroes */
.esn-hero,
.rsn-hero,
.ann-hero,
.gco-hero,
.asn-hero,
.cpsn-hero {
  background: linear-gradient(135deg,
    var(--rxp-dark) 0%,
    var(--rxp-dark-2) 50%,
    var(--rxp-dark-3) 100%) !important;
  color: #fff !important;
  position: relative !important;
  overflow: hidden !important;
  border-bottom: none !important;
}

/* Ambient orb 1 (green) */
.esn-hero::before, .rsn-hero::before, .ann-hero::before,
.gco-hero::before, .asn-hero::before, .cpsn-hero::before {
  content: "" !important;
  position: absolute !important;
  width: 520px !important; height: 520px !important;
  border-radius: 50% !important;
  background: radial-gradient(circle, rgba(0,133,63,0.24), transparent 70%) !important;
  top: -180px !important; left: -120px !important;
  pointer-events: none !important;
  animation: rxpOrb 11s ease-in-out infinite !important;
  z-index: 0 !important;
}

/* Ambient orb 2 (yellow/red) */
.esn-hero::after, .rsn-hero::after, .ann-hero::after,
.gco-hero::after, .asn-hero::after, .cpsn-hero::after {
  content: "" !important;
  position: absolute !important;
  width: 400px !important; height: 400px !important;
  border-radius: 50% !important;
  background: radial-gradient(circle, rgba(253,239,66,0.13), transparent 70%) !important;
  bottom: -130px !important; right: -90px !important;
  pointer-events: none !important;
  animation: rxpOrb 14s ease-in-out infinite reverse !important;
  z-index: 0 !important;
}

/* Hero content above orbs */
.esn-hero > *,
.rsn-hero > div,
.ann-hero > *,
.gco-hero > *,
.asn-hero > *,
.cpsn-hero > * {
  position: relative !important;
  z-index: 1 !important;
}

/* Gradient text on hero titles */
.esn-hero h1 {
  background: linear-gradient(135deg, #fff 20%, #00d95f 65%, #FDEF42 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  text-shadow: none !important;
}
.ann-hero h1 {
  background: linear-gradient(135deg, #fff 20%, #FDEF42 65%, #00d95f 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.gco-hero h1 {
  background: linear-gradient(135deg, #fff 20%, #60a5fa 65%, #00d95f 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.asn-hero h1 {
  background: linear-gradient(135deg, #fff 20%, #FDEF42 60%, #E31B23 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.cpsn-hero__title {
  background: linear-gradient(135deg, #fff 15%, #00d95f 55%, #FDEF42 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

/* Hero subtitles */
.esn-hero p,
.ann-hero p,
.gco-hero p {
  color: rgba(255,255,255,0.72) !important;
}

/* ══════════════════════════════════
   SEARCH BARS PREMIUM
══════════════════════════════════ */

.esn-search,
.gco-searchbox,
.ann-searchbox {
  background: rgba(255,255,255,0.1) !important;
  border: 1.5px solid rgba(255,255,255,0.18) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-radius: 16px !important;
  transition: all 0.35s var(--rxp-ease) !important;
}

.esn-search:focus-within,
.gco-searchbox:focus-within,
.ann-searchbox:focus-within {
  background: rgba(255,255,255,0.16) !important;
  border-color: rgba(0,200,100,0.55) !important;
  box-shadow: 0 0 0 3px rgba(0,133,63,0.22),
              0 10px 36px rgba(0,133,63,0.18) !important;
  transform: translateY(-2px) !important;
}

.esn-search input,
.gco-searchbox input,
.ann-searchbox input {
  color: #fff !important;
}

.esn-search input::placeholder,
.gco-searchbox input::placeholder,
.ann-searchbox input::placeholder {
  color: rgba(255,255,255,0.48) !important;
}

/* Chip filters on dark hero */
.gco-chip, .ann-chip {
  background: rgba(255,255,255,0.08) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  color: rgba(255,255,255,0.82) !important;
  transition: all 0.28s var(--rxp-spring) !important;
}

.gco-chip:hover, .gco-chip.active,
.ann-chip:hover, .ann-chip.active {
  background: var(--rxp-primary) !important;
  border-color: var(--rxp-primary) !important;
  color: #fff !important;
  transform: translateY(-3px) scale(1.06) !important;
  box-shadow: 0 5px 18px rgba(0,133,63,0.4) !important;
}

/* ══════════════════════════════════
   CARDS — HOVER LIFT + GLOW
══════════════════════════════════ */

.esn-card, .rsn-card, .ann-card, .gco-card, .asn-card, .cpsn-card {
  transition:
    transform 0.38s var(--rxp-spring),
    box-shadow 0.38s var(--rxp-ease),
    border-color 0.3s !important;
  will-change: transform !important;
}

.esn-card:hover, .rsn-card:hover, .ann-card:hover,
.gco-card:hover, .asn-card:hover, .cpsn-card:hover {
  transform: translateY(-10px) !important;
  box-shadow:
    0 24px 64px rgba(0,0,0,0.14),
    0 4px 16px rgba(0,133,63,0.14) !important;
  border-color: rgba(0,133,63,0.38) !important;
}

/* Card entry stagger */
.esn-card  { animation: rxpRevealUp 0.5s var(--rxp-ease-out) both; }
.gco-card  { animation: rxpRevealUp 0.5s var(--rxp-ease-out) both; }
.ann-card  { animation: rxpRevealUp 0.5s var(--rxp-ease-out) both; }
.esn-card:nth-child(1), .gco-card:nth-child(1), .ann-card:nth-child(1) { animation-delay:.05s }
.esn-card:nth-child(2), .gco-card:nth-child(2), .ann-card:nth-child(2) { animation-delay:.1s }
.esn-card:nth-child(3), .gco-card:nth-child(3), .ann-card:nth-child(3) { animation-delay:.15s }
.esn-card:nth-child(4), .gco-card:nth-child(4), .ann-card:nth-child(4) { animation-delay:.2s }
.esn-card:nth-child(5), .gco-card:nth-child(5), .ann-card:nth-child(5) { animation-delay:.25s }
.esn-card:nth-child(6), .gco-card:nth-child(6), .ann-card:nth-child(6) { animation-delay:.3s }
.esn-card:nth-child(n+7), .gco-card:nth-child(n+7) { animation-delay:.35s }

/* ══════════════════════════════════
   BUTTONS SHIMMER + SPRING
══════════════════════════════════ */

.esn-btn-postuler, .rsn-card__btn, .gco-cta,
.asn-card__btn--whats, .asn-card__btn--call,
.cpsn-card__see, .rx-publish-btn,
.asn-modal__btn, .esn-search button {
  position: relative !important;
  overflow: hidden !important;
  transition: all 0.32s var(--rxp-spring) !important;
}

/* Shimmer sweep */
.esn-btn-postuler::before,
.gco-cta::before,
.cpsn-card__see::before,
.esn-search button::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(105deg,
    transparent 35%,
    rgba(255,255,255,0.32) 50%,
    transparent 65%) !important;
  background-size: 200% 100% !important;
  background-position: -200% 0 !important;
  transition: background-position 0.58s ease !important;
  pointer-events: none !important;
}

.esn-btn-postuler:hover::before,
.gco-cta:hover::before,
.cpsn-card__see:hover::before,
.esn-search button:hover::before {
  background-position: 200% 0 !important;
}

.esn-btn-postuler:hover,
.gco-cta:hover,
.cpsn-card__see:hover,
.esn-search button:hover {
  transform: translateY(-3px) scale(1.03) !important;
  box-shadow: var(--rxp-shadow-g) !important;
}

/* WhatsApp btn pulse */
.asn-modal__btn--whats,
.esn-btn-whatsapp,
.asn-card__btn--whats {
  animation: rxpPulseGreen 3s ease-in-out infinite !important;
}
.asn-modal__btn--whats:hover,
.esn-btn-whatsapp:hover {
  animation: none !important;
  transform: translateY(-3px) scale(1.04) !important;
}

/* ══════════════════════════════════
   FILTER BARS PREMIUM
══════════════════════════════════ */

.esn-filters, .cpsn-filters, .asn-filters {
  background: #fff !important;
  border: 1px solid rgba(0,133,63,0.1) !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.06),
              0 1px 0 rgba(0,133,63,0.04) !important;
  border-radius: 16px !important;
  transition: box-shadow 0.32s !important;
}

.esn-filters:focus-within,
.cpsn-filters:focus-within,
.asn-filters:focus-within {
  box-shadow: 0 8px 40px rgba(0,133,63,0.12),
              0 2px 0 rgba(0,133,63,0.06) !important;
}

/* ══════════════════════════════════
   COUNT BARS ANIMATED
══════════════════════════════════ */

.esn-resbar strong, .gco-stat strong,
.ann-stat strong, .rsn-stat strong,
.cpsn-count-bar__chip, .asn-count-bar__chip {
  animation: rxpCountUp 0.65s var(--rxp-spring) both !important;
  display: inline-block !important;
}

.esn-resbar, .rsn-resbar, .ann-resbar,
.cpsn-count-bar, .asn-count-bar {
  animation: rxpRevealUp 0.5s var(--rxp-ease-out) 0.3s both !important;
}

/* ══════════════════════════════════
   SCROLL-TO-TOP FLOAT
══════════════════════════════════ */

.rx-scrolltop {
  animation: rxpFloat 3.6s ease-in-out infinite !important;
  transition: box-shadow 0.3s !important;
}

.rx-scrolltop:hover {
  animation: none !important;
  transform: translateY(-6px) scale(1.14) !important;
  box-shadow: 0 12px 36px rgba(0,133,63,0.48) !important;
}

/* ══════════════════════════════════
   FOOTER DARK PREMIUM
══════════════════════════════════ */

.rx-footer {
  background: linear-gradient(160deg,
    #060d18 0%, #0d1a2e 55%, #061a0d 100%) !important;
  position: relative !important;
  overflow: hidden !important;
}

.rx-footer::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    radial-gradient(ellipse at 8% 20%,  rgba(0,133,63,0.2)  0%, transparent 45%),
    radial-gradient(ellipse at 92% 80%, rgba(227,27,35,0.13) 0%, transparent 45%),
    radial-gradient(ellipse at 50% 0%,  rgba(253,239,66,0.06) 0%, transparent 50%) !important;
  pointer-events: none !important;
  animation: rxpGlowPulse 7s ease-in-out infinite !important;
}

.rx-footer__logo-rif {
  background: linear-gradient(135deg, #00853F, #00e564) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  font-size: 1.9rem !important;
  font-weight: 900 !important;
}

.rx-footer__logo-xalima {
  background: linear-gradient(135deg, #FDEF42, #f59e0b) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  font-size: 1.9rem !important;
  font-weight: 900 !important;
}

.rx-footer__links a {
  transition: all 0.26s var(--rxp-spring) !important;
}

.rx-footer__links a:hover {
  color: #00e564 !important;
  transform: translateX(8px) !important;
  text-shadow: 0 0 14px rgba(0,229,100,0.4) !important;
}

.rx-footer__social {
  transition: all 0.3s var(--rxp-spring) !important;
}

.rx-footer__social:hover {
  transform: translateY(-5px) scale(1.18) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,0.35) !important;
}

/* ══════════════════════════════════
   NEWSLETTER DARK PREMIUM
══════════════════════════════════ */

.rx-newsletter {
  background: linear-gradient(135deg,
    #060d18 0%, #0d1a2e 60%, #061a0d 100%) !important;
  position: relative !important;
  overflow: hidden !important;
}

.rx-newsletter::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    radial-gradient(circle at 20% 50%, rgba(0,133,63,0.22) 0%, transparent 50%),
    radial-gradient(circle at 80% 50%, rgba(253,239,66,0.08) 0%, transparent 50%) !important;
  pointer-events: none !important;
}

.rx-newsletter h2  { color: #fff !important; }
.rx-newsletter p   { color: rgba(255,255,255,0.7) !important; }

.rx-newsletter__form button {
  position: relative !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, #00853F, #00a651) !important;
  transition: all 0.32s var(--rxp-spring) !important;
  animation: rxpPulseGreen 2.8s ease-in-out infinite !important;
}

.rx-newsletter__form button:hover {
  animation: none !important;
  transform: translateY(-3px) scale(1.04) !important;
  box-shadow: var(--rxp-shadow-g) !important;
}

/* ══════════════════════════════════
   MODALS UPGRADE
══════════════════════════════════ */

.asn-modal, .cpsn-modal {
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

.asn-modal__box, .cpsn-modal__box {
  animation: rxpRevealScale 0.42s var(--rxp-spring) !important;
  box-shadow: 0 32px 80px rgba(0,0,0,0.42) !important;
}

.asn-modal__close, .cpsn-modal__close {
  transition: all 0.28s var(--rxp-spring) !important;
}

.asn-modal__close:hover, .cpsn-modal__close:hover {
  transform: rotate(90deg) scale(1.18) !important;
  background: var(--rxp-red) !important;
  color: #fff !important;
}

/* ══════════════════════════════════
   BLOG / POST CARDS
══════════════════════════════════ */

.rx-post-card, .rx-card, .hentry.rx-singular {
  transition:
    transform 0.38s var(--rxp-spring),
    box-shadow 0.38s var(--rxp-ease) !important;
}

.rx-post-card:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 20px 56px rgba(0,0,0,0.13) !important;
}

/* ══════════════════════════════════
   READING PROGRESS BAR
══════════════════════════════════ */

.rx-reading-bar, #rxReadProgress {
  background: linear-gradient(90deg, #00853F, #FDEF42, #E31B23) !important;
  background-size: 200% 100% !important;
  animation: rxpFlagSlide 4s linear infinite !important;
  height: 3px !important;
  box-shadow: 0 0 8px rgba(0,133,63,0.4) !important;
}

/* ══════════════════════════════════
   COMPARATEUR HERO ORB (red accent)
══════════════════════════════════ */

.cpsn-hero::after {
  background: radial-gradient(circle, rgba(253,239,66,0.14), transparent 70%) !important;
}

/* ══════════════════════════════════
   ANNONCES HERO (red accent orb)
══════════════════════════════════ */

.asn-hero::before {
  background: radial-gradient(circle, rgba(227,27,35,0.2), transparent 70%) !important;
}

/* Count chip pulse dot */
.asn-count-bar__chip span,
.cpsn-count-bar__chip span {
  animation: rxpPulseGreen 2s ease-in-out infinite !important;
  background: var(--rxp-red) !important;
}

/* ══════════════════════════════════
   MOBILE OPTIMIZATIONS
══════════════════════════════════ */

@media (max-width: 640px) {
  /* Use scale instead of translateY on small screens */
  .esn-card:hover, .rsn-card:hover, .ann-card:hover,
  .gco-card:hover, .asn-card:hover, .cpsn-card:hover {
    transform: none !important;
  }
  .esn-card:active, .rsn-card:active, .ann-card:active,
  .gco-card:active, .asn-card:active, .cpsn-card:active {
    transform: scale(0.97) !important;
    transition: transform 0.15s !important;
  }

  /* Larger touch targets */
  .esn-btn-postuler, .gco-cta, .asn-card__btn,
  .cpsn-card__see, .rsn-card__btn {
    min-height: 48px !important;
  }

  /* Hero padding reduced on mobile */
  .esn-hero, .rsn-hero, .ann-hero,
  .gco-hero, .asn-hero {
    padding: 38px 16px 28px !important;
  }
}

/* ══════════════════════════════════
   DARK MODE COMPATIBILITY
══════════════════════════════════ */

body.rx-dark .esn-card,
body.rx-dark .rsn-card,
body.rx-dark .ann-card,
body.rx-dark .gco-card,
body.rx-dark .asn-card,
body.rx-dark .cpsn-card {
  background: rgba(22,36,58,0.85) !important;
  border-color: rgba(255,255,255,0.07) !important;
  backdrop-filter: blur(8px) !important;
}

body.rx-dark .esn-filters,
body.rx-dark .cpsn-filters,
body.rx-dark .asn-filters,
body.rx-dark .rsn-search {
  background: rgba(22,36,58,0.9) !important;
  border-color: rgba(255,255,255,0.07) !important;
}

body.rx-dark .rx-header {
  background: rgba(10,18,32,0.92) !important;
  border-bottom-color: rgba(255,255,255,0.06) !important;
}

/* ══════════════════════════════════
   MISC POLISH
══════════════════════════════════ */

/* Smooth image zoom on card hover */
.asn-card__img img, .rsn-card__img img,
.cpsn-card__img img, .ann-card img {
  transition: transform 0.5s var(--rxp-ease) !important;
}
.asn-card:hover .asn-card__img img,
.rsn-card:hover .rsn-card__img img,
.cpsn-card:hover .cpsn-card__img img {
  transform: scale(1.07) !important;
}

/* Price badges spring */
.asn-card__price, .cpsn-card__best-price {
  transition: transform 0.3s var(--rxp-spring) !important;
}
.asn-card:hover .asn-card__price,
.cpsn-card:hover .cpsn-card__best-price {
  transform: scale(1.05) !important;
}

/* Section titles gradient */
.rx-section h2, .rx-h2-sn {
  background: linear-gradient(135deg, #0f172a 0%, #00853F 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
}

/* Organic divider between hero and content */
.esn-hero + .esn-content,
.gco-hero + div,
.ann-hero + .ann-stats,
.rsn-hero + div {
  position: relative;
}

/* Global focus-visible upgrade */
*:focus-visible {
  outline: 2.5px solid #00853F !important;
  outline-offset: 3px !important;
  border-radius: 4px !important;
}

/* ═══════════════════════════════════════════════════
   rx-premium v2.1 — Phase 3 correctifs
   ─────────────────────────────────────────────────── */

/* Boutons "Voir l'annonce" / "Comparer les prix" désormais en <a> */
.asn-card__see,
.cpsn-card__see {
  text-decoration: none !important;
  box-sizing: border-box !important;
}

/* Résultat de la recherche hero comparateur : lien CTA */
.cpsn-hero__result-cta {
  display: inline-block !important;
  text-decoration: none !important;
  background: linear-gradient(135deg, #00853F, #00a651) !important;
  color: #fff !important;
  padding: 12px 24px !important;
  border-radius: 10px !important;
  font-weight: 800 !important;
  font-size: .95rem !important;
  margin-top: 12px !important;
  transition: all .25s !important;
}
.cpsn-hero__result-cta:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 24px rgba(0,133,63,.4) !important;
}

/* Cards annonces + comparateur : modern glassmorphism hover */
.asn-card, .cpsn-card {
  cursor: pointer !important;
}

