/*
Theme Name:   LegalFlash Unified
Theme URI:    https://legal-flash.fr
Author:       LegalFlash — Groupe Solenium
Description:  LegalTech — Bleu nuit profond & Jaune éclair — GBP optimisé — Entièrement personnalisable
Version:      4.2.0
License:      GNU General Public License v2 or later
Text Domain:  legalflash
*/

/* ══════════════════════════════════════════════════════
   VARIABLES — toutes modifiables via le Customizer WP
══════════════════════════════════════════════════════ */
:root {
  /* Couleurs principales */
  --color-bg:       #020B18;
  --color-surface1: #061529;
  --color-surface2: #0A1F3D;
  --color-surface3: #0D2347;
  --color-surface4: #112B58;
  --color-accent:   #FFD600;
  --color-accent2:  #FFE033;
  --color-accent3:  #FFF0A0;
  --color-glow:     rgba(255,214,0,0.12);
  --color-glow2:    rgba(255,214,0,0.25);
  --color-white:    #FFFFFF;
  --color-text1:    #E8EEF8;
  --color-text2:    #8BA3C7;
  --color-text3:    #4A6490;
  --color-success:  #00E676;
  --color-danger:   #FF5252;
  --color-border:   rgba(255,214,0,0.12);
  --color-border2:  rgba(255,255,255,0.06);

  /* Aliases — utilisés dans tout le CSS */
  --navy-0:    var(--color-bg);
  --navy-1:    var(--color-surface1);
  --navy-2:    var(--color-surface2);
  --navy-3:    var(--color-surface3);
  --navy-4:    var(--color-surface4);
  --bolt:      var(--color-accent);
  --bolt-2:    var(--color-accent2);
  --bolt-3:    var(--color-accent3);
  --bolt-glow: var(--color-glow);
  --bolt-glow2:var(--color-glow2);
  --white:     var(--color-white);
  --text-1:    var(--color-text1);
  --text-2:    var(--color-text2);
  --text-3:    var(--color-text3);
  --success:   var(--color-success);
  --danger:    var(--color-danger);
  --border:    var(--color-border);
  --border-2:  var(--color-border2);

  /* Typographie */
  --font-main:    'Inter', sans-serif;
  --font-head:    'Inter', sans-serif;
  --font-body:    'Inter', sans-serif;
  --font-size-base: 16px;
  --font-weight-head: 700;

  /* Mise en page */
  --container-width: 1120px;
  --radius:     12px;
  --radius-lg:  20px;
  --section-py: 80px;

  /* Marque */
  --site-name:  'LegalFlash';
}

/* ══ RESET ══ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: var(--font-size-base); }

body {
  font-family: var(--font-body);
  background: var(--navy-0);
  color: var(--text-1);
  line-height: 1.65;
  min-height: 100vh;
  overflow-x: hidden;
}

/* Texture fond */
body::before {
  content: '';
  position: fixed; inset: 0;
  background:
    radial-gradient(ellipse 70% 50% at 85% 5%, rgba(255,214,0,.05) 0%, transparent 55%),
    radial-gradient(ellipse 50% 60% at 5% 90%, rgba(17,43,88,.8) 0%, transparent 65%);
  pointer-events: none; z-index: 0;
}
body::after {
  content: '';
  position: fixed; inset: 0;
  background-image:
    linear-gradient(rgba(255,214,0,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,214,0,.02) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none; z-index: 0;
}

a { color: var(--bolt); text-decoration: none; transition: opacity .2s; }
a:hover { opacity: .8; }
img { max-width: 100%; height: auto; display: block; }

/* ══ LAYOUT ══ */
.lf-container { max-width: var(--container-width); margin: 0 auto; padding: 0 24px; position: relative; z-index: 1; }
.lf-section { padding: var(--section-py) 0; }

/* ══ TYPOGRAPHIE ══ */
h1,h2,h3,h4 { font-family: var(--font-head); font-weight: var(--font-weight-head); line-height: 1.15; letter-spacing: -.012em; color: var(--white); }
h1 { font-size: clamp(1.9rem, 4.5vw, 3.2rem); }
h2 { font-size: clamp(1.4rem, 3vw, 2.2rem); }
h3 { font-size: 1.1rem; font-weight: 600; }

.lf-label { font-family: var(--font-head); font-size: .65rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--bolt); }
.lf-muted { color: var(--text-2); font-size: .92rem; line-height: 1.65; }

/* ══ COMPOSANTS ══ */
.lf-badge { display:inline-flex;align-items:center;gap:8px;background:var(--bolt);color:var(--navy-0);font-family:var(--font-head);font-weight:600;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;padding:5px 14px;border-radius:4px;margin-bottom:18px; }
.lf-pill  { display:inline-flex;align-items:center;gap:8px;background:var(--bolt-glow);border:1px solid var(--bolt);color:var(--bolt);font-family:var(--font-head);font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:7px 16px;border-radius:40px; }
.lf-pill .dot { width:7px;height:7px;background:var(--bolt);border-radius:50%;animation:pulse-dot 1.8s infinite; }

/* ══ CARDS ══ */
.lf-card { background:var(--navy-2);border:1px solid var(--border-2);border-radius:var(--radius);padding:28px;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s; }
.lf-card::before { content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--bolt),var(--bolt-2),transparent); }
.lf-card:hover { transform:translateY(-5px);border-color:var(--bolt-glow2);box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 40px rgba(255,214,0,.08); }

.badge-type { position:absolute;top:16px;right:14px;font-family:var(--font-head);font-size:.58rem;font-weight:700;letter-spacing:.06em;padding:3px 10px;border-radius:20px;text-transform:uppercase; }
.badge-priority { background:var(--bolt-glow);color:var(--bolt);border:1px solid rgba(255,214,0,.35); }
.badge-oppo     { background:rgba(0,180,255,.1);color:#60CFFF;border:1px solid rgba(0,180,255,.3); }
.badge-b2b      { background:rgba(0,230,118,.08);color:#00E676;border:1px solid rgba(0,230,118,.3); }

/* ══ GRILLES ══ */
.lf-grid-2 { display:grid;grid-template-columns:repeat(2,1fr);gap:20px; }
.lf-grid-3 { display:grid;grid-template-columns:repeat(3,1fr);gap:20px; }
.lf-grid-4 { display:grid;grid-template-columns:repeat(4,1fr);gap:20px; }

/* ══ TAGS ══ */
.kw-list { display:flex;flex-wrap:wrap;gap:7px;margin-top:12px; }
.kw-tag  { background:rgba(255,214,0,.07);border:1px solid rgba(255,214,0,.18);color:var(--bolt-3);font-size:.72rem;padding:4px 11px;border-radius:5px; }

/* ══ BOUTONS ══ */
.lf-btn { display:inline-flex;align-items:center;gap:10px;background:var(--bolt);color:var(--navy-0);font-family:var(--font-head);font-weight:700;font-size:.88rem;padding:13px 28px;border-radius:8px;border:none;cursor:pointer;transition:transform .2s,box-shadow .2s;text-decoration:none; }
.lf-btn:hover { transform:translateY(-2px);box-shadow:0 8px 30px rgba(255,214,0,.35);color:var(--navy-0);opacity:1; }

.lf-btn-outline { display:inline-flex;align-items:center;gap:10px;background:transparent;border:1.5px solid rgba(255,214,0,.4);color:var(--white);font-family:var(--font-head);font-weight:600;font-size:.88rem;padding:12px 26px;border-radius:8px;cursor:pointer;transition:all .2s;text-decoration:none; }
.lf-btn-outline:hover { border-color:var(--bolt);background:var(--bolt);color:var(--navy-0);opacity:1; }

.lf-btn-google { display:inline-flex;align-items:center;gap:10px;background:#fff;color:#3c4043;font-family:var(--font-head);font-weight:600;font-size:.88rem;padding:12px 24px;border-radius:8px;border:none;cursor:pointer;text-decoration:none;transition:all .2s;box-shadow:0 2px 12px rgba(0,0,0,.25); }
.lf-btn-google:hover { transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.35);color:#3c4043;opacity:1; }
.lf-btn-google svg { width:20px;height:20px;flex-shrink:0; }

/* ══ TABLE ══ */
.lf-table-wrap { background:var(--navy-1);border:1px solid var(--border-2);border-radius:var(--radius);overflow:hidden; }
.lf-table-wrap table { width:100%;border-collapse:collapse; }
.lf-table-wrap thead { background:linear-gradient(90deg,var(--navy-3),var(--navy-2));border-bottom:2px solid var(--bolt); }
.lf-table-wrap th { font-family:var(--font-head);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bolt);padding:16px 20px;text-align:left; }
.lf-table-wrap td { padding:14px 20px;font-size:.87rem;color:var(--text-2);border-bottom:1px solid var(--border-2); }
.lf-table-wrap td:first-child { font-family:var(--font-head);font-weight:600;color:var(--white); }
.lf-table-wrap tr:last-child td { border-bottom:none; }
.lf-table-wrap tr:hover td { background:rgba(255,255,255,.02); }
.lf-table-wrap code { background:var(--bolt-glow);color:var(--bolt-2);font-family:monospace;font-size:.78rem;padding:2px 9px;border-radius:4px; }

/* ══ TLDR ══ */
.lf-tldr { background:linear-gradient(135deg,var(--navy-2),var(--navy-3));border:1px solid var(--border-2);border-left:3px solid var(--bolt);border-radius:var(--radius);padding:22px 26px;display:flex;gap:18px;align-items:flex-start; }
.lf-tldr .icon { font-size:1.4rem;flex-shrink:0;margin-top:2px; }
.lf-tldr p { font-size:.92rem;color:var(--text-2);line-height:1.65; }
.lf-tldr strong { color:var(--white); }

/* ══ SECTION HEADER ══ */
.lf-section-header { display:flex;align-items:center;gap:14px;margin-bottom:36px; }
.lf-section-num { width:36px;height:36px;background:var(--bolt);color:var(--navy-0);border-radius:8px;font-family:var(--font-head);font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center;flex-shrink:0; }

/* ══ HERO ══ */
.lf-hero { padding:80px 0 60px;border-bottom:1px solid var(--border-2);margin-bottom:60px; }
.lf-breadcrumb { font-size:.78rem;color:var(--text-3);margin-bottom:18px; }
.lf-breadcrumb a { color:var(--text-3); }
.lf-breadcrumb span { color:var(--bolt); }

/* ══ STEP ══ */
.lf-step { display:flex;gap:20px;align-items:flex-start;background:var(--navy-2);border:1px solid var(--border-2);border-radius:var(--radius);padding:24px; }
.lf-step-num { width:44px;height:44px;border:2px solid var(--bolt);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-weight:700;font-size:1rem;color:var(--bolt);flex-shrink:0; }
.lf-step ul { list-style:none;margin-top:10px;display:flex;flex-direction:column;gap:6px; }
.lf-step ul li { font-size:.87rem;color:var(--text-2);padding-left:18px;position:relative; }
.lf-step ul li::before { content:'→';position:absolute;left:0;color:var(--bolt);font-weight:700; }

/* ══ QA CARDS ══ */
.lf-qa-card { border-radius:10px;padding:20px; }
.lf-qa-card.danger  { background:rgba(255,82,82,.06);border:1px solid rgba(255,82,82,.2); }
.lf-qa-card.success { background:rgba(0,230,118,.06);border:1px solid rgba(0,230,118,.2); }
.lf-qa-card .lf-label { display:block;margin-bottom:12px; }
.lf-qa-card.danger  .lf-label { color:#FF7070; }
.lf-qa-card.success .lf-label { color:#00E676; }
.lf-qa-card ul { list-style:none;display:flex;flex-direction:column;gap:8px; }
.lf-qa-card ul li { font-size:.86rem;color:var(--text-2);display:flex;gap:10px; }

/* ══ ANGLE CARD ══ */
.angle-card { background:var(--navy-2);border:1px solid var(--border-2);border-radius:10px;padding:22px 18px;text-align:center;transition:border-color .2s; }
.angle-card:hover { border-color:var(--bolt-glow2); }
.angle-card .niche { font-family:var(--font-head);font-weight:600;font-size:.9rem;margin-bottom:8px; }
.angle-card .val   { font-size:.8rem;color:var(--bolt);font-style:italic; }

/* ══ CTA ══ */
.lf-cta-section { background:linear-gradient(135deg,var(--navy-1) 0%,var(--navy-3) 100%);border:1px solid var(--border);border-radius:var(--radius-lg);padding:52px 44px;text-align:center;position:relative;overflow:hidden;margin:60px 0; }
.lf-cta-section::before { content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% -10%,rgba(255,214,0,.1) 0%,transparent 60%); }
.lf-cta-section > * { position:relative;z-index:1; }
.lf-cta-section h2  { margin-bottom:12px; }
.lf-cta-section p   { color:var(--text-2);margin-bottom:32px; }
.cta-btns { display:flex;gap:14px;justify-content:center;flex-wrap:wrap; }

/* ══ NICHE DETAIL ══ */
.lf-niche-detail-card { background:var(--navy-1);border:1px solid var(--border-2);border-radius:var(--radius);overflow:hidden; }
.nd-row { display:flex;flex-direction:column;gap:4px;padding:14px 20px;border-bottom:1px solid var(--border-2); }
.nd-row:last-child { border-bottom:none; }
.nd-label { font-family:var(--font-head);font-size:.6rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bolt); }
.nd-val   { font-size:.85rem;color:var(--text-2);line-height:1.5; }
.nd-row code { background:var(--bolt-glow);color:var(--bolt-2);font-family:monospace;font-size:.78rem;padding:3px 10px;border-radius:4px; }

/* ══ VIDEO ══ */
.lf-video-thumb { position:relative;width:100%;padding-bottom:56.25%;border-radius:var(--radius);overflow:hidden;cursor:pointer;background:var(--navy-2);border:1px solid var(--border); }
.lf-video-thumb img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s; }
.lf-video-thumb:hover img { transform:scale(1.04); }
.lf-video-thumb .play-btn { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(2,11,24,.4);transition:background .3s; }
.lf-video-thumb:hover .play-btn { background:rgba(2,11,24,.2); }
.lf-video-thumb .play-circle { width:68px;height:68px;background:var(--bolt);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 12px rgba(255,214,0,.15),0 0 40px rgba(255,214,0,.4);transition:transform .2s; }
.lf-video-thumb:hover .play-circle { transform:scale(1.1); }

/* ══ STATS ══ */
.lf-stat { background:var(--navy-2);border:1px solid var(--border-2);border-radius:var(--radius);padding:16px 20px;display:flex;align-items:center;gap:14px; }
.stat-num   { font-family:var(--font-head);font-weight:700;font-size:1.6rem;color:var(--bolt); }
.stat-label { font-size:.78rem;color:var(--text-2); }

/* ══ CHOICE BTN ══ */
.lf-choice-btn { display:flex;flex-direction:column;align-items:center;text-align:center;background:transparent;border:1.5px solid rgba(255,214,0,.2);color:var(--white);border-radius:10px;padding:18px 14px;cursor:pointer;transition:all .2s; }
.lf-choice-btn:hover { border-color:var(--bolt);background:var(--bolt-glow); }
.lf-choice-btn.is-selected { background:var(--bolt);border-color:var(--bolt);color:var(--navy-0); }
.choice-icon  { font-size:1.8rem;margin-bottom:8px; }
.choice-label { font-family:var(--font-head);font-weight:600;font-size:.9rem;margin-bottom:4px; }
.choice-sub   { font-size:.7rem;color:var(--text-2);line-height:1.4; }

/* ══ CAROUSEL (V6) ══ */
.lf-carousel-wrap { position:relative;overflow:hidden;padding-bottom:20px; }
.lf-carousel-track { display:flex;gap:20px;transition:transform .45s cubic-bezier(.4,0,.2,1);will-change:transform; }
.lf-service-card { flex:0 0 calc(33.333% - 14px);background:var(--navy-2);border:1px solid var(--border-2);border-radius:16px;overflow:hidden;position:relative;cursor:pointer;transition:transform .25s,box-shadow .25s,border-color .25s;text-decoration:none;display:flex;flex-direction:column; }
.lf-service-card:hover { transform:translateY(-6px);border-color:rgba(255,214,0,.35);box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 40px rgba(255,214,0,.08); }
.lf-promo-badge { position:absolute;top:14px;right:14px;background:var(--bolt);color:var(--navy-0);font-family:var(--font-head);font-weight:700;font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:20px;z-index:2; }
.lf-sc-img { height:180px;overflow:hidden;position:relative;background:var(--navy-1); }
.lf-sc-img img { width:100%;height:100%;object-fit:cover;transition:transform .4s; }
.lf-service-card:hover .lf-sc-img img { transform:scale(1.06); }
.lf-sc-img .overlay { position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(10,31,61,.85)); }
.lf-sc-icon { position:absolute;bottom:14px;left:16px;font-size:1.8rem;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5)); }
.lf-sc-body { padding:20px 22px 24px;flex:1;display:flex;flex-direction:column; }
.lf-sc-category { font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bolt);margin-bottom:8px; }
.lf-sc-title { font-family:var(--font-head);font-weight:700;font-size:1.05rem;color:var(--white);margin-bottom:10px;line-height:1.3; }
.lf-sc-desc { font-size:.84rem;color:var(--text-2);line-height:1.6;flex:1;margin-bottom:18px; }
.lf-sc-footer { display:flex;align-items:center;justify-content:space-between;padding-top:14px;border-top:1px solid var(--border-2); }
.lf-sc-price { display:flex;flex-direction:column; }
.lf-sc-price-old     { font-size:.72rem;color:var(--text-3);text-decoration:line-through; }
.lf-sc-price-current { font-family:var(--font-head);font-weight:700;font-size:1.1rem;color:var(--bolt); }
.lf-sc-cta { background:var(--bolt);color:var(--navy-0);font-family:var(--font-head);font-weight:600;font-size:.8rem;padding:8px 16px;border-radius:6px;text-decoration:none;transition:transform .2s,box-shadow .2s;white-space:nowrap; }
.lf-sc-cta:hover { transform:scale(1.04);box-shadow:0 4px 16px rgba(255,214,0,.3);color:var(--navy-0);opacity:1; }
.lf-carousel-nav { display:flex;align-items:center;justify-content:center;gap:16px;margin-top:28px; }
.lf-carousel-btn { width:44px;height:44px;border-radius:50%;background:var(--navy-2);border:1px solid var(--border-2);color:var(--white);font-size:1.1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s; }
.lf-carousel-btn:hover { background:var(--bolt);color:var(--navy-0);border-color:var(--bolt); }
.lf-carousel-btn:disabled { opacity:.3;cursor:not-allowed; }
.lf-carousel-dots { display:flex;gap:8px;align-items:center; }
.lf-dot { width:8px;height:8px;border-radius:50%;background:var(--text-3);cursor:pointer;transition:all .25s; }
.lf-dot.active { background:var(--bolt);width:24px;border-radius:4px; }

/* ── Carousel homogène selon nb de cartes ── */
/* 1 carte : pleine largeur, centrée */
.lf-carousel-wrap[data-count="1"] .lf-carousel-track { justify-content:center; }
.lf-carousel-wrap[data-count="1"] .lf-service-card { flex:0 0 min(420px, 100%); }
/* 2 cartes : demi-largeur, centrées */
.lf-carousel-wrap[data-count="2"] .lf-carousel-track { justify-content:center; }
.lf-carousel-wrap[data-count="2"] .lf-service-card { flex:0 0 calc(50% - 10px); }
/* 3 cartes exactement : remplissent toute la ligne sans scroll */
.lf-carousel-wrap[data-count="3"] .lf-carousel-track { justify-content:center; }
.lf-carousel-wrap[data-count="3"] .lf-service-card { flex:0 0 calc(33.333% - 14px); }
/* Masquer les boutons nav si tout tient en vue (≤ 3 cartes sur desktop) */
.lf-carousel-wrap[data-count="1"] .lf-carousel-nav,
.lf-carousel-wrap[data-count="2"] .lf-carousel-nav,
.lf-carousel-wrap[data-count="3"] .lf-carousel-nav { display:none; }
/* 4-6 cartes : 3 par rangée, scroll actif — comportement normal */
/* 7+ cartes : idem, scroll actif */

/* ══ REVIEWS (V6) ══ */
.lf-reviews-hero { background:linear-gradient(135deg,var(--navy-1) 0%,var(--navy-3) 100%);border:1px solid var(--border);border-radius:20px;padding:40px;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;position:relative;overflow:hidden;margin-bottom:48px; }
.lf-reviews-hero::before { content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 90% 50%,rgba(255,214,0,.07) 0%,transparent 60%); }
.lf-reviews-hero > * { position:relative;z-index:1; }
.lf-gbp-score { display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--navy-0);border:1px solid var(--border);border-radius:16px;padding:28px 32px;min-width:180px; }
.gbp-logo { width:44px;margin-bottom:12px; }
.gbp-score-num { font-family:var(--font-head);font-weight:800;font-size:3rem;color:var(--bolt);line-height:1;margin-bottom:6px; }
.gbp-stars { display:flex;gap:3px;margin-bottom:8px; }
.gbp-star  { color:#FFD600;font-size:1.2rem; }
.gbp-count { font-size:.78rem;color:var(--text-2); }
.lf-review-card { background:var(--navy-2);border:1px solid var(--border-2);border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:14px;transition:border-color .2s; }
.lf-review-card:hover { border-color:rgba(255,214,0,.25); }
.lf-review-header { display:flex;align-items:center;gap:12px; }
.lf-review-avatar { width:44px;height:44px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-weight:700;font-size:1rem; }
.lf-review-meta { flex:1; }
.lf-review-name    { font-family:var(--font-head);font-weight:600;font-size:.9rem;color:var(--white); }
.lf-review-service { font-size:.74rem;color:var(--text-3);margin-top:2px; }
.lf-review-stars   { display:flex;gap:2px; }
.lf-review-stars span { color:#FFD600;font-size:.9rem; }
.lf-review-body    { font-size:.87rem;color:var(--text-2);line-height:1.65;font-style:italic; }
.lf-review-footer  { display:flex;align-items:center;gap:8px;padding-top:12px;border-top:1px solid var(--border-2); }
.lf-review-source  { display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--text-3); }
.lf-review-date    { font-size:.72rem;color:var(--text-3);margin-left:auto; }
.lf-verified { display:inline-flex;align-items:center;gap:4px;background:rgba(0,230,118,.08);border:1px solid rgba(0,230,118,.25);color:#00E676;font-size:.65rem;font-weight:600;padding:2px 8px;border-radius:20px; }
.lf-trust-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:16px; }
.lf-trust-card { background:var(--navy-2);border:1px solid var(--border-2);border-radius:12px;padding:22px 18px;text-align:center;transition:border-color .2s; }
.lf-trust-card:hover { border-color:rgba(255,214,0,.3); }
.lf-trust-num   { font-family:var(--font-head);font-weight:700;font-size:1.8rem;color:var(--bolt);display:block;margin-bottom:4px; }
.lf-trust-label { font-size:.8rem;color:var(--text-2);line-height:1.4; }
.lf-nap-block   { background:var(--navy-1);border:1px solid var(--border-2);border-radius:12px;padding:20px 24px;display:flex;flex-wrap:wrap;gap:24px;align-items:center; }
.lf-nap-item    { display:flex;align-items:center;gap:10px;font-size:.87rem;color:var(--text-2); }
.lf-nap-item strong { color:var(--white); }
.lf-nap-icon { font-size:1.1rem;flex-shrink:0; }
.lf-post-purchase { background:linear-gradient(135deg,rgba(255,214,0,.06),rgba(255,214,0,.02));border:1px solid rgba(255,214,0,.2);border-radius:14px;padding:28px 32px;display:flex;align-items:center;gap:24px; }
.lf-post-purchase .icon { font-size:2.5rem;flex-shrink:0; }

/* ══ WA FLOAT ══ */
.lf-wa-float { position:fixed;bottom:28px;right:28px;z-index:9999; }
.lf-wa-btn { display:flex;align-items:center;gap:10px;background:#25D366;color:#fff;text-decoration:none;padding:14px 22px;border-radius:50px;font-family:var(--font-head);font-weight:700;font-size:.87rem;box-shadow:0 6px 30px rgba(37,211,102,.4);transition:transform .2s,box-shadow .2s;animation:floatIn .6s cubic-bezier(.34,1.56,.64,1) .8s both; }
.lf-wa-btn:hover { transform:scale(1.05) translateY(-2px);box-shadow:0 12px 40px rgba(37,211,102,.5);color:#fff;opacity:1; }
.lf-wa-btn svg  { width:22px;height:22px;flex-shrink:0; }
.lf-wa-badge { position:absolute;top:-6px;right:-6px;width:20px;height:20px;background:var(--bolt);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;color:var(--navy-0);animation:pulse-dot 1.8s infinite; }

/* ══ LOGO ══ */
.lf-logo-text { display:flex;align-items:center;gap:8px;font-family:var(--font-head);font-weight:700;font-size:1.05rem;color:var(--white);text-decoration:none; }
.logo-icon { color:var(--bolt);filter:drop-shadow(0 0 8px rgba(255,214,0,.6));animation:bolt-glow 2.5s infinite; }

/* ══ FOOTER ══ */
.lf-footer-wrap { position:relative;z-index:1; }
.lf-footer-cta  { background:linear-gradient(135deg,var(--navy-3),var(--navy-4));border-top:1px solid var(--border);padding:40px 0; }
.lf-footer-cta-inner { display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap; }
.lf-footer-cta-title { font-family:var(--font-head);font-size:clamp(1.1rem,2.5vw,1.5rem);font-weight:700;color:var(--white); }
.lf-footer-cta-btns { display:flex;gap:12px;flex-wrap:wrap;align-items:center; }
.lf-footer-wa-btn { display:inline-flex;align-items:center;gap:8px;background:#25D366;color:#fff;font-family:var(--font-head);font-weight:600;font-size:.87rem;padding:13px 22px;border-radius:8px;text-decoration:none;transition:transform .2s,box-shadow .2s; }
.lf-footer-wa-btn:hover { transform:translateY(-2px);box-shadow:0 8px 24px rgba(37,211,102,.35);color:#fff;opacity:1; }
.lf-footer-body { background:var(--navy-0);padding:60px 0 44px;border-top:1px solid var(--border-2); }
.lf-footer-grid { display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:44px; }
.lf-footer-desc { font-size:.86rem;color:var(--text-2);line-height:1.7;margin-bottom:18px; }
.lf-footer-desc strong { color:var(--white); }
.lf-footer-promise { display:flex;flex-direction:column;gap:6px; }
.lf-footer-promise span { font-size:.78rem;color:var(--text-3);font-family:var(--font-head); }
.lf-footer-promise span:last-child { color:var(--success); }
.lf-footer-col-title { display:block;font-family:var(--font-head);font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bolt);margin-bottom:18px; }
.lf-footer-col ul { list-style:none;display:flex;flex-direction:column;gap:10px; }
.lf-footer-col ul li a { font-size:.83rem;color:var(--text-3);text-decoration:none;transition:color .2s; }
.lf-footer-col ul li a:hover { color:var(--white);opacity:1; }
.lf-footer-tagline { margin-top:44px;padding-top:28px;border-top:1px solid var(--border-2); }
.lf-footer-tagline-pills { display:flex;gap:10px;flex-wrap:wrap;justify-content:center; }
.lf-footer-tagline-pills span { font-family:var(--font-head);font-size:.73rem;font-weight:600;letter-spacing:.05em;background:var(--bolt-glow);border:1px solid var(--border);color:var(--bolt);padding:6px 16px;border-radius:40px; }
.lf-footer-contact-bar { background:var(--navy-1);border-top:1px solid var(--border-2);padding:20px 0; }
.lf-footer-contact-inner { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px; }
.lf-footer-nap-item { display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--text-2); }
.lf-footer-nap-item strong { color:var(--white); }
.lf-footer-nap-item .icon { font-size:1rem;color:var(--bolt); }
.lf-footer-bottom { background:var(--navy-0);border-top:1px solid rgba(255,255,255,.04);padding:16px 0; }
.lf-footer-bottom-inner { display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap; }
.lf-footer-bottom p { font-size:.77rem;color:var(--text-3); }
.lf-footer-bottom strong { color:var(--text-2); }
.lf-footer-legal { font-style:italic; }
.lf-contact-niche { display:flex;align-items:center;gap:12px;background:var(--navy-2);border:1px solid var(--border-2);border-radius:8px;padding:13px 16px;text-decoration:none;color:var(--white);transition:all .2s; }
.lf-contact-niche:hover { border-color:var(--bolt-glow2);background:var(--navy-3);color:var(--white);opacity:1; }
.lf-axis-pill { display:flex;align-items:center;gap:8px;background:var(--navy-2);border:1px solid var(--border-2);border-radius:10px;padding:10px 14px;text-decoration:none;color:var(--white);transition:all .2s;min-width:130px; }
.lf-axis-pill:hover { border-color:var(--bolt-glow2);background:var(--navy-3);color:var(--white);opacity:1; }
.lf-axis-pill div { display:flex;flex-direction:column; }
.lf-axis-pill strong { font-family:var(--font-head);font-weight:600;font-size:.88rem;display:block; }
.lf-axis-pill span:last-child { font-size:.7rem;color:var(--text-2); }

/* ══ ANIMATIONS ══ */
@keyframes pulse-dot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.7)} }
@keyframes floatIn   { from{opacity:0;transform:scale(.6) translateY(20px)} to{opacity:1;transform:scale(1) translateY(0)} }
@keyframes revealUp  { to{opacity:1;transform:translateY(0)} }
@keyframes bolt-glow { 0%,100%{filter:drop-shadow(0 0 8px rgba(255,214,0,.6))} 50%{filter:drop-shadow(0 0 16px rgba(255,214,0,1))} }

.reveal { opacity:0;transform:translateY(18px);animation:revealUp .55s cubic-bezier(.22,1,.36,1) forwards; }
.d1{animation-delay:.05s}.d2{animation-delay:.12s}.d3{animation-delay:.2s}.d4{animation-delay:.28s}.d5{animation-delay:.36s}
.scroll-reveal { opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s ease; }
.scroll-reveal.revealed { opacity:1;transform:translateY(0); }

/* ══ RESPONSIVE ══ */
@media(max-width:1024px) {
  .lf-service-card { flex:0 0 calc(50% - 10px); }
  .lf-trust-grid   { grid-template-columns:repeat(2,1fr); }
  .lf-reviews-hero { grid-template-columns:1fr; }
  .lf-gbp-score    { flex-direction:row;gap:20px;min-width:auto;text-align:left; }
  .lf-footer-grid  { grid-template-columns:1fr 1fr;gap:28px; }
  .lf-footer-brand { grid-column:1 / -1; }
}
@media(max-width:768px) {
  .lf-grid-2,.lf-grid-3,.lf-grid-4 { grid-template-columns:1fr; }
  .lf-hero    { padding:52px 0 36px; }
  .lf-section { padding:52px 0; }
  .lf-cta-section { padding:32px 20px; }
  .cta-btns   { flex-direction:column;align-items:center; }
}
@media(max-width:640px) {
  .lf-service-card { flex:0 0 100%; }
  .lf-trust-grid   { grid-template-columns:repeat(2,1fr); }
  .lf-post-purchase { flex-direction:column;text-align:center; }
  .lf-gbp-score    { flex-direction:column; }
  .lf-wa-btn span  { display:none; }
  .lf-wa-btn       { padding:14px;border-radius:50%; }
  .lf-footer-grid  { grid-template-columns:1fr; }
  .lf-footer-cta-inner { flex-direction:column;align-items:flex-start; }
  .lf-footer-bottom-inner { flex-direction:column;text-align:center; }
  .lf-footer-contact-inner { flex-direction:column; }
}

/* ══ STRIPE CTA BUTTONS ══ */
.lf-sc-cta-stripe {
  background: linear-gradient(135deg, #635BFF, #4F46E5);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.lf-sc-cta-stripe::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.08), transparent);
}
.lf-sc-cta-stripe:hover {
  transform: scale(1.04);
  box-shadow: 0 4px 20px rgba(99,91,255,.45);
  color: #fff;
  opacity: 1;
}
.lf-sc-cta-secondary {
  font-size: .78rem;
  padding: 7px 14px;
}

/* Badge Stripe sur la card */
.lf-stripe-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: linear-gradient(135deg, #635BFF, #4F46E5);
  color: #fff;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: .58rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 20px;
  z-index: 3;
}

/* Section Stripe info dans Customizer — style visuel côté front */
.lf-stripe-secure {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .72rem;
  color: var(--text-3);
  margin-top: 6px;
}
.lf-stripe-secure svg { width: 12px; height: 12px; opacity: .6; }

/* ══ VIDEO BLOCKS ══ */
.lf-yt-block { cursor: pointer; }

/* Vidéo auto-hébergée : contrôles natifs, pas de curseur "cliquable"
   factice ; le border-radius/overflow sont déjà gérés par .lf-video-thumb
   (parent), ces règles sont une sécurité explicite. */
.lf-selfhosted-block { cursor: default; }
.lf-selfhosted-block video { border-radius: inherit; background: #000; }

/* Repère visible uniquement par les admins (current_user_can('edit_theme_options'))
   quand un emplacement vidéo n'a pas encore de réglage Customizer — voir
   lf_render_media_video() dans functions.php. Jamais visible des visiteurs. */
.lf-video-admin-hint {
  font-size: .72rem;
  color: var(--text-3);
  padding: 10px 12px;
  border: 1px dashed rgba(255,214,0,.3);
  border-radius: var(--radius);
  background: rgba(255,214,0,.04);
}

/* Caption overlay sur la vidéo */
.lf-video-caption {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(2,11,24,.85));
  padding: 32px 16px 14px;
  z-index: 2;
}
.lf-video-label {
  font-size: .58rem;
  display: block;
  margin-bottom: 4px;
  opacity: .85;
}
.lf-video-title {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: .9rem;
  color: var(--white);
  line-height: 1.3;
}

/* Placeholder quand aucune vidéo n'est configurée */
.lf-video-placeholder {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  border-radius: var(--radius);
  background: var(--navy-2);
  border: 1px dashed var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.lf-video-placeholder-inner {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--text-3);
  font-size: .82rem;
  text-align: center;
  padding: 20px;
}
.lf-video-placeholder-inner svg {
  width: 40px; height: 40px;
  opacity: .3;
}

/* ============================================================
   OPEN-SEO 2026 — Accessibilité (skip-link)
   ============================================================ */
.lf-sr-only {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: 10000;
}
.lf-sr-only:focus {
  position: fixed;
  left: 12px;
  top: 12px;
  width: auto;
  height: auto;
  padding: 12px 20px;
  background: var(--color-surface1, #061529);
  color: #fff;
  border-radius: 6px;
  font-weight: 700;
  text-decoration: none;
}
