/* Compte gratuit : offre avec compte à rebours, compteurs du mois, paywall, vidéos verrouillées. Clair / sombre, RTL / LTR, mobile. */
.fm-top{ display:grid; gap:14px; margin:0 0 22px; }

/* Offre */
.fm-offer{ position:relative; display:flex; gap:18px; align-items:flex-start; padding:22px 24px; border-radius:var(--radius);
  background:linear-gradient(135deg,#fff7e6 0%,#f6e7c8 55%,#ecdcb4 100%); color:#2e261d; border:1px solid rgba(176,137,79,.35);
  box-shadow:var(--shadow-sm); overflow:hidden; }
.fm-offer::before{ content:''; position:absolute; inset:-40% -10% auto auto; width:260px; height:260px; border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.75),rgba(255,255,255,0) 70%); pointer-events:none; }
.fm-offer.fm-day7{ background:linear-gradient(135deg,#f3e9ff 0%,#efe0d0 50%,#e6d3a6 100%); }
[data-theme="dark"] .fm-offer{ background:linear-gradient(135deg,#2a2416 0%,#21301f 60%,#1a2619 100%); color:#efe8da; border-color:rgba(201,168,106,.35); }
[data-theme="dark"] .fm-offer.fm-day7{ background:linear-gradient(135deg,#2b2133 0%,#2a2416 55%,#1a2619 100%); }
.fm-badge{ flex:none; display:grid; place-items:center; width:84px; height:84px; border-radius:50%; font:700 24px/1 var(--serif);
  background:radial-gradient(circle at 30% 25%,#e4c88d,#b0894f 70%); color:#fff; box-shadow:0 10px 24px -10px rgba(140,102,49,.8); }
.fm-offer-body{ position:relative; flex:1; min-width:0; }
.fm-offer .kicker{ display:inline-flex; gap:6px; align-items:center; color:var(--gold-text); font-weight:700; font-size:13px; letter-spacing:.04em; }
.fm-offer .kicker svg{ width:15px; height:15px; }
.fm-offer h2{ margin:6px 0 6px; font:600 clamp(20px,2.6vw,26px)/1.25 var(--serif); color:inherit; }
.fm-offer p{ margin:0 0 14px; color:inherit; opacity:.85; line-height:1.6; }
.fm-x{ position:absolute; top:10px; inset-inline-end:12px; width:32px; height:32px; border:0; border-radius:50%; background:rgba(0,0,0,.06);
  color:inherit; font-size:20px; line-height:1; cursor:pointer; z-index:2; }
[data-theme="dark"] .fm-x{ background:rgba(255,255,255,.08); }
.fm-code-row{ display:flex; flex-wrap:wrap; gap:10px; align-items:stretch; margin-bottom:14px; }
.fm-code{ display:inline-flex; align-items:center; gap:10px; padding:10px 16px; border:2px dashed #b0894f; border-radius:14px;
  background:rgba(255,255,255,.7); color:#3f5a3a; cursor:pointer; font:inherit; }
[data-theme="dark"] .fm-code{ background:rgba(0,0,0,.25); color:#eadbbb; }
.fm-code small{ opacity:.7; font-size:12px; }
.fm-code b{ font:700 18px/1 Menlo,Consolas,monospace; letter-spacing:.08em; }
.fm-copy-ic svg{ width:16px; height:16px; opacity:.6; }
.fm-cd{ display:inline-flex; flex-direction:column; justify-content:center; padding:6px 14px; border-radius:14px; background:rgba(63,90,58,.1); }
[data-theme="dark"] .fm-cd{ background:rgba(234,219,187,.1); }
.fm-cd small{ font-size:11px; opacity:.75; }
.fm-cd b{ font:700 20px/1.1 Menlo,Consolas,monospace; font-variant-numeric:tabular-nums; }
.fm-offer-go{ display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; }
.fm-offer-go small, .fm-pw-wait{ font-size:13px; opacity:.75; }
@media (max-width:560px){
  .fm-offer{ flex-direction:column; padding:20px 18px; }
  .fm-badge{ width:64px; height:64px; font-size:19px; }
  .fm-offer-go .btn{ width:100%; justify-content:center; }
}

/* Rappel compact (offre fermée ou autre écran) */
#fm-mini-wrap{ position:fixed; z-index:35; inset-inline-end:18px; bottom:calc(22px + env(safe-area-inset-bottom)); }
@media (max-width:760px){ #fm-mini-wrap{ bottom:calc(var(--tabbar) + 22px + env(safe-area-inset-bottom)); inset-inline-end:14px; } }
.fm-mini{ display:inline-flex; gap:8px; align-items:center; padding:9px 14px; border:1px solid rgba(176,137,79,.45); border-radius:999px;
  background:linear-gradient(135deg,#fff3da,#ecd9ad); color:#2e261d; font:600 13px/1 var(--sans); box-shadow:var(--shadow-sm); cursor:pointer; }
[data-theme="dark"] .fm-mini{ background:linear-gradient(135deg,#2a2416,#21301f); color:#efe8da; }
.fm-mini b{ color:var(--gold-text); font-size:14px; }
.fm-mini span{ font-family:Menlo,Consolas,monospace; letter-spacing:.05em; }
.fm-mini i{ font-style:normal; font-variant-numeric:tabular-nums; opacity:.8; }

/* Compteurs */
.fm-meter{ padding:16px 20px; border-radius:var(--radius); background:var(--glass); border:1px solid var(--glass-brd); box-shadow:var(--shadow-sm); }
.fm-meter-head{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px; margin-bottom:10px; }
.fm-meter-head b{ color:var(--heading); }
.fm-meter-head small{ color:var(--muted); }
.fm-meter ul{ list-style:none; margin:0 0 10px; padding:0; display:grid; gap:10px; }
.fm-meter li{ display:grid; grid-template-columns:20px 1fr minmax(90px,38%); gap:10px; align-items:center; font-size:14px; }
.fm-meter li svg{ width:18px; height:18px; color:var(--gold-text); }
.fm-bar{ display:block; height:8px; border-radius:8px; background:var(--soft-2); overflow:hidden; }
.fm-bar i{ display:block; height:100%; border-radius:8px; background:linear-gradient(90deg,var(--sage),var(--gold-2)); }
.fm-meter li.fm-full .fm-bar i{ background:linear-gradient(90deg,var(--gold),#c46a42); }
.fm-up{ font-weight:600; font-size:14px; }
.pill.fm-pill{ background:rgba(176,137,79,.16); color:var(--gold-text); }
.pill.fm-pill svg{ width:14px; height:14px; }

/* Paywall */
.fm-modal{ position:fixed; inset:0; z-index:70; display:grid; place-items:center; padding:20px; background:rgba(20,16,10,.55); backdrop-filter:blur(4px);
  animation:fm-in .25s var(--ease); }
@keyframes fm-in{ from{ opacity:0; } to{ opacity:1; } }
.fm-modal-card{ position:relative; width:min(480px,100%); max-height:calc(100vh - 40px); overflow:auto; padding:30px 26px 22px; border-radius:24px;
  background:var(--glass-strong); border:1px solid var(--glass-brd); box-shadow:var(--shadow-lg); text-align:center; color:var(--text); }
.fm-modal-card .fm-offer{ margin:-6px -8px 0; text-align:start; }
.fm-pw-inline{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:100%; padding:28px 22px; text-align:center;
  background:var(--hero-bg); color:var(--text); }
.player.fm-pw-box{ aspect-ratio:auto; min-height:220px; background:var(--hero-solid); }
.fm-pw-mark{ display:inline-grid; place-items:center; width:58px; height:58px; margin:0 auto 6px; border-radius:50%; background:var(--soft-2); color:var(--gold-text); }
.fm-pw-mark svg{ width:30px; height:30px; }
.fm-modal-card h2, .fm-pw-inline h2{ margin:4px 0 8px; font:600 clamp(19px,2.4vw,24px)/1.3 var(--serif); color:var(--heading); }
.fm-modal-card p, .fm-pw-inline p{ margin:0 0 12px; color:var(--muted); line-height:1.6; }
.fm-perks{ list-style:none; margin:0 auto 16px; padding:0; display:grid; gap:8px; text-align:start; max-width:340px; }
.fm-perks li{ display:flex; gap:10px; align-items:center; }
.fm-perks svg{ flex:none; width:18px; height:18px; color:var(--sage); }
.fm-pw-offer{ margin:0 auto 14px; padding:12px 14px; border-radius:16px; background:rgba(176,137,79,.12); max-width:380px; }
.fm-pw-offer b{ display:block; margin-bottom:8px; color:var(--gold-text); }
.fm-pw-offer .fm-code-row{ justify-content:center; margin:0; }
.fm-pw-inline .btn, .fm-modal-card .btn-block{ max-width:360px; margin:0 auto; }
.fm-later{ display:block; margin:12px auto 4px; }
.fm-pw-wait{ display:block; margin-top:10px; }

/* Vidéos au-delà du quota : miniatures verrouillées (le catalogue reste visible) */
.fm-lock .thumb::after{ content:''; position:absolute; inset:0; z-index:2; border-radius:inherit; background:rgba(25,20,12,.32)
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='5' y='11' width='14' height='9' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center/34px no-repeat; }
.fm-lock .thumb .play{ display:none; }
@media (prefers-reduced-motion:reduce){ .fm-modal{ animation:none; } }
