/* ─────────────────────────────────────────────────────────────────────────
   LMNP Malin — theme styles
   Reprend le design de l'app principale : Plus Jakarta Sans, palette
   bleu/violet, hero sombre #06080F avec aurora, cartes blanches arrondies.
   ───────────────────────────────────────────────────────────────────────── */

:root {
    /* Palette (alignée src/pages/Landing.tsx) */
    --lmnp-bg-dark:   #06080F;
    --lmnp-blue-700: #1d4ed8;
    --lmnp-blue-600: #2563eb;
    --lmnp-blue-800: #1e40af;
    --lmnp-violet-600: #7c3aed;
    --lmnp-violet-700: #6d28d9;
    --lmnp-violet-300: #a78bfa;
    --lmnp-blue-300:   #60a5fa;
    --lmnp-pink-700:   #be185d;
    --lmnp-emerald-500:#10b981;
    --lmnp-amber-500:  #f59e0b;

    /* Neutres */
    --lmnp-text:        #0f172a;
    --lmnp-text-soft:   #475569;
    --lmnp-text-mute:   #94a3b8;
    --lmnp-bg:          #ffffff;
    --lmnp-bg-soft:     #f8fafc;
    --lmnp-border:      #e2e8f0;
    --lmnp-border-soft: #f1f5f9;

    /* Layout */
    --lmnp-max:         72rem;   /* 1152px */
    --lmnp-narrow:      44rem;   /* ~704px — lecture confortable */
    --lmnp-wide:        80rem;
    --lmnp-radius:      1rem;
    --lmnp-radius-lg:   1.5rem;

    /* Shadows */
    --lmnp-shadow-sm: 0 1px 2px rgba(15,23,42,.04), 0 1px 1px rgba(15,23,42,.03);
    --lmnp-shadow:    0 8px 24px rgba(15,23,42,.06), 0 2px 6px rgba(15,23,42,.04);
    --lmnp-shadow-lg: 0 30px 60px rgba(15,23,42,.10), 0 8px 24px rgba(15,23,42,.05);
}

/* ─── Reset & base ────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: 'Plus Jakarta Sans', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    color: var(--lmnp-text);
    background: var(--lmnp-bg);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; height: auto; }
a { color: var(--lmnp-blue-600); text-decoration: none; }
a:hover { color: var(--lmnp-violet-600); }
hr { border: none; border-top: 1px solid var(--lmnp-border); margin: 2rem 0; }
button { font-family: inherit; }

.screen-reader-text {
    border: 0; clip: rect(1px,1px,1px,1px); -webkit-clip-path: inset(50%); clip-path: inset(50%);
    height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute;
}
.lmnp-skip-link {
    position: absolute; top: -100px; left: 1rem; background: #fff; padding: .5rem 1rem;
    border-radius: .5rem; box-shadow: var(--lmnp-shadow); z-index: 1000;
}
.lmnp-skip-link:focus { top: 1rem; }

/* ─── Containers ──────────────────────────────────────────────────────────── */
.lmnp-container         { max-width: var(--lmnp-max);    margin: 0 auto; padding: 0 1.25rem; }
.lmnp-container--narrow { max-width: var(--lmnp-narrow); margin: 0 auto; padding: 0 1.25rem; }
.lmnp-container--wide   { max-width: var(--lmnp-wide);   margin: 0 auto; padding: 0 1.25rem; }
@media (min-width: 768px) {
    .lmnp-container, .lmnp-container--narrow, .lmnp-container--wide { padding: 0 2rem; }
}

/* ─── Eyebrow / titres ───────────────────────────────────────────────────── */
.lmnp-eyebrow {
    color: var(--lmnp-violet-700);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    margin: 0 0 .75rem;
}
.lmnp-eyebrow--light { color: rgba(255,255,255,.6); }

.lmnp-grad-text {
    background: linear-gradient(135deg, var(--lmnp-blue-300) 0%, var(--lmnp-violet-300) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* ─── Boutons ─────────────────────────────────────────────────────────────── */
.lmnp-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: .5rem;
    padding: .75rem 1.25rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: .9375rem;
    line-height: 1;
    border: 1px solid transparent;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
    white-space: nowrap;
}
.lmnp-btn:hover { transform: translateY(-1px); }
.lmnp-btn--sm { padding: .55rem 1rem; font-size: .8125rem; }
.lmnp-btn--block { width: 100%; }

.lmnp-btn--gradient {
    color: #fff;
    background: linear-gradient(135deg, var(--lmnp-blue-600) 0%, var(--lmnp-violet-600) 100%);
    box-shadow: 0 0 30px rgba(37,99,235,.30);
}
.lmnp-btn--gradient:hover { color: #fff; box-shadow: 0 0 40px rgba(37,99,235,.45); }

.lmnp-btn--aurora {
    color: #fff;
    background: linear-gradient(270deg, var(--lmnp-blue-700), var(--lmnp-violet-700), var(--lmnp-pink-700), var(--lmnp-violet-700), var(--lmnp-blue-700));
    background-size: 400% 400%;
    animation: lmnp-aurora 4s ease infinite;
    box-shadow: 0 0 22px rgba(109,40,217,.45), inset 0 1px 0 rgba(255,255,255,.18);
}
.lmnp-btn--aurora:hover { color: #fff; }
@keyframes lmnp-aurora {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.lmnp-btn--ghost {
    color: rgba(255,255,255,.7);
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.12);
}
.lmnp-btn--ghost:hover { color: #fff; background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.22); }

.lmnp-btn--outline {
    color: var(--lmnp-text);
    background: #fff;
    border-color: var(--lmnp-border);
}
.lmnp-btn--outline:hover { border-color: var(--lmnp-blue-600); color: var(--lmnp-blue-600); }

.lmnp-btn--lg { padding: 1rem 1.75rem; font-size: 1.0625rem; }

/* ─── CTA shortcodes (boutons + cartes intégrables dans les articles) ────── */
.lmnp-cta-inline { margin: 1.5rem 0; }
.lmnp-cta-inline--align-left   { text-align: left; }
.lmnp-cta-inline--align-center { text-align: center; }
.lmnp-cta-inline--align-right  { text-align: right; }

.lmnp-cta-card {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin: 2.25rem 0;
    padding: 2rem 1.75rem;
    background: linear-gradient(135deg, rgba(37,99,235,.06) 0%, rgba(124,58,237,.08) 100%);
    border: 1px solid rgba(124,58,237,.18);
    border-radius: var(--lmnp-radius-lg);
    box-shadow: var(--lmnp-shadow-sm);
}
.lmnp-cta-card__logo {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 6px 18px rgba(37,99,235,.12);
}
.lmnp-cta-card__logo img {
    width: 60px;
    height: 60px;
    object-fit: contain;
}
.lmnp-cta-card__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .75rem;
}
.lmnp-cta-card--align-left   .lmnp-cta-card__body { text-align: left;   align-items: flex-start; }
.lmnp-cta-card--align-right  .lmnp-cta-card__body { text-align: right;  align-items: flex-end; }

/* align="center" : on stack le logo AU-DESSUS du contenu pour que le texte
   et le bouton soient réellement centrés par rapport à la largeur de la carte
   (sinon "centré" = centré dans la zone droite, donc visuellement décalé). */
.lmnp-cta-card--align-center {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2.25rem 1.75rem;
    gap: 1rem;
}
.lmnp-cta-card--align-center .lmnp-cta-card__body {
    align-items: center;
    text-align: center;
    width: 100%;
}

/* On force la spécificité (2 classes) pour battre `.lmnp-prose h3` et
   `.lmnp-prose p` définis plus bas dans la feuille — sinon le margin-top:2em
   du h3 de la prose pousse le titre vers le bas et casse le centrage vertical. */
.lmnp-cta-card .lmnp-cta-card__title {
    margin: 0;
    padding: 0;
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--lmnp-text);
    line-height: 1.3;
}
.lmnp-cta-card .lmnp-cta-card__subtitle {
    margin: 0;
    padding: 0;
    color: var(--lmnp-text-soft);
    font-size: .9375rem;
    line-height: 1.6;
    max-width: 42rem;
}
.lmnp-cta-card .lmnp-cta-card__action { margin: 0; padding: 0; }

/* Sur mobile : tous les variants passent en stack pour respiration */
@media (max-width: 559px) {
    .lmnp-cta-card { flex-direction: column; align-items: center; text-align: center; padding: 1.75rem 1.25rem; }
    .lmnp-cta-card__body { align-items: center !important; text-align: center !important; }
}
@media (min-width: 640px) {
    .lmnp-cta-card { padding: 2.25rem 2.25rem; gap: 1.75rem; }
    .lmnp-cta-card--align-center { padding: 2.5rem 2rem; gap: 1.25rem; }
    .lmnp-cta-card__logo { width: 96px; height: 96px; }
    .lmnp-cta-card__logo img { width: 68px; height: 68px; }
    .lmnp-cta-card__title { font-size: 1.4375rem; }
    .lmnp-cta-card__subtitle { font-size: 1rem; }
}

/* ─── ToC (table des matières auto en début d'article) ──────────────────── */
.lmnp-prose .lmnp-toc {
    margin: 1.5rem 0 2rem;
    padding: 1.25rem 1.5rem;
    background: linear-gradient(135deg, rgba(37,99,235,.04) 0%, rgba(124,58,237,.05) 100%);
    border: 1px solid var(--lmnp-border-soft);
    border-radius: var(--lmnp-radius);
    font-size: .9375rem;
}
.lmnp-prose .lmnp-toc__title {
    margin: 0 0 .75rem;
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--lmnp-violet-700);
}
.lmnp-prose .lmnp-toc__list {
    margin: 0;
    padding-left: 1.25rem;
    list-style: decimal;
}
.lmnp-prose .lmnp-toc__list li { margin: .35em 0; }
.lmnp-prose .lmnp-toc__list li::marker { color: var(--lmnp-text-mute); font-weight: 600; }
.lmnp-prose .lmnp-toc__list a {
    color: var(--lmnp-text);
    text-decoration: none;
    border-bottom: 1px dashed transparent;
    transition: color .15s, border-color .15s;
}
.lmnp-prose .lmnp-toc__list a:hover {
    color: var(--lmnp-blue-700);
    border-bottom-color: rgba(37,99,235,.4);
}
/* Cibles des ancres : éviter qu'elles soient collées sous le header */
.lmnp-prose h2[id] { scroll-margin-top: 5rem; }

/* ─── FAQ (shortcode [lmnp_faq]) ─────────────────────────────────────────── */
.lmnp-prose .lmnp-faq {
    margin: 2.5rem 0;
}
.lmnp-prose .lmnp-faq__title {
    margin: 0 0 1rem;
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--lmnp-text);
}
.lmnp-prose .lmnp-faq__list {
    display: flex;
    flex-direction: column;
    gap: .625rem;
}
.lmnp-prose .lmnp-faq__item {
    background: #fff;
    border: 1px solid var(--lmnp-border);
    border-radius: var(--lmnp-radius);
    box-shadow: var(--lmnp-shadow-sm);
    transition: border-color .15s, box-shadow .15s;
}
.lmnp-prose .lmnp-faq__item[open] {
    border-color: rgba(124,58,237,.3);
    box-shadow: 0 6px 20px rgba(37,99,235,.06);
}
.lmnp-prose .lmnp-faq__question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    list-style: none;
    cursor: pointer;
    font-weight: 700;
    color: var(--lmnp-text);
    font-size: 1rem;
    line-height: 1.4;
}
.lmnp-prose .lmnp-faq__question::-webkit-details-marker { display: none; }
.lmnp-prose .lmnp-faq__question::marker { content: ''; }
.lmnp-prose .lmnp-faq__chevron {
    flex-shrink: 0;
    color: var(--lmnp-violet-600);
    transition: transform .2s ease;
}
.lmnp-prose .lmnp-faq__item[open] .lmnp-faq__chevron { transform: rotate(180deg); }
.lmnp-prose .lmnp-faq__answer {
    padding: 0 1.25rem 1.25rem;
    color: var(--lmnp-text-soft);
    font-size: .9375rem;
    line-height: 1.6;
    border-top: 1px solid var(--lmnp-border-soft);
}
.lmnp-prose .lmnp-faq__answer > div > p:first-child { margin-top: 1rem; }
.lmnp-prose .lmnp-faq__answer p { margin: 0 0 .5em; }
.lmnp-prose .lmnp-faq__answer a {
    color: var(--lmnp-blue-700);
    text-decoration: underline;
    text-decoration-color: rgba(124,58,237,.35);
}

/* "Mis à jour le" — discret à côté de la date de publi */
.lmnp-author__updated { color: rgba(255,255,255,.55); font-size: .8125rem; }

/* ─── Tags ────────────────────────────────────────────────────────────────── */
.lmnp-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; }
.lmnp-tag {
    display: inline-flex;
    align-items: center;
    padding: .25rem .65rem;
    background: rgba(124,58,237,.08);
    color: var(--lmnp-violet-700);
    border: 1px solid rgba(124,58,237,.18);
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
    text-decoration: none;
    transition: background .2s ease, border-color .2s ease;
}
.lmnp-tag:hover { background: rgba(124,58,237,.14); border-color: rgba(124,58,237,.32); color: var(--lmnp-violet-700); }

/* ─── Lien fléché ─────────────────────────────────────────────────────────── */
.lmnp-link {
    display: inline-flex; align-items: center; gap: .35rem;
    color: var(--lmnp-blue-700);
    font-weight: 700;
    font-size: .9375rem;
    text-decoration: none;
    transition: gap .2s ease, color .2s ease;
}
.lmnp-link:hover { color: var(--lmnp-violet-700); gap: .55rem; }

/* ═══ NAVBAR ═══════════════════════════════════════════════════════════════ */
.lmnp-nav {
    position: sticky; top: 0; z-index: 50;
    background: rgba(6,8,15,.93);
    backdrop-filter: saturate(180%) blur(12px);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    border-bottom: 1px solid rgba(109,40,217,.18);
}
.lmnp-nav__inner {
    max-width: var(--lmnp-max);
    margin: 0 auto;
    padding: 0 1.25rem;
    height: 64px;
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
@media (min-width: 768px) { .lmnp-nav__inner { padding: 0 2rem; } }

.lmnp-brand { display: flex; align-items: center; gap: .75rem; color: #fff; text-decoration: none; }
.lmnp-brand:hover { color: #fff; }
.lmnp-brand__logo {
    width: 36px; height: 36px; object-fit: contain;
    filter: drop-shadow(0 0 8px rgba(109,40,217,.55));
}
.lmnp-brand__text { display: flex; flex-direction: column; line-height: 1; }
.lmnp-brand__name { font-weight: 800; letter-spacing: -.01em; font-size: .9375rem; }
.lmnp-brand__tagline { color: rgba(255,255,255,.4); font-size: .6875rem; margin-top: 2px; display: none; }
@media (min-width: 480px) { .lmnp-brand__tagline { display: inline; } }

.lmnp-nav__menu { flex: 1; display: none; }
@media (min-width: 900px) { .lmnp-nav__menu { display: block; } }
.lmnp-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: .25rem; align-items: center; }
.lmnp-menu li a {
    display: inline-block;
    padding: .5rem .9rem;
    color: rgba(255,255,255,.7);
    border-radius: 999px;
    font-size: .875rem;
    font-weight: 500;
    transition: color .2s ease, background .2s ease;
}
.lmnp-menu li a:hover, .lmnp-menu li.current-menu-item > a { color: #fff; background: rgba(255,255,255,.08); }

.lmnp-nav__actions { margin-left: auto; display: flex; align-items: center; gap: .5rem; }
@media (max-width: 640px) { .lmnp-nav__actions .lmnp-btn--ghost { display: none; } }

.lmnp-burger {
    display: inline-flex; flex-direction: column; gap: 4px;
    width: 40px; height: 40px;
    align-items: center; justify-content: center;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
    cursor: pointer;
    padding: 0;
}
.lmnp-burger span {
    display: block; width: 18px; height: 2px;
    background: #fff; border-radius: 2px;
    transition: transform .2s ease, opacity .2s ease;
}
.lmnp-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.lmnp-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.lmnp-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
@media (min-width: 900px) { .lmnp-burger { display: none; } }

.lmnp-mobile { background: var(--lmnp-bg-dark); padding: 1rem 1.25rem 1.5rem; border-top: 1px solid rgba(255,255,255,.06); }
.lmnp-mobile__menu { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-direction: column; }
.lmnp-mobile__menu li a {
    display: block; padding: .85rem 1rem;
    color: rgba(255,255,255,.85);
    border-radius: 12px;
    font-weight: 600;
}
.lmnp-mobile__menu li a:hover { background: rgba(255,255,255,.08); color: #fff; }
.lmnp-mobile__cta { padding-top: .75rem; border-top: 1px solid rgba(255,255,255,.08); }

/* ═══ MAIN ════════════════════════════════════════════════════════════════ */
.lmnp-main { background: #fff; min-height: 60vh; }

/* ═══ HERO ════════════════════════════════════════════════════════════════ */
.lmnp-hero {
    position: relative; overflow: hidden;
    background: var(--lmnp-bg-dark);
    color: #fff;
    padding: 2.5rem 1.25rem 0;
}
@media (min-width: 768px) { .lmnp-hero { padding: 3rem 2rem 0; } }
.lmnp-hero--compact { padding-top: 2rem; }
.lmnp-hero__inner {
    position: relative; z-index: 2;
    max-width: 42rem;
    margin: 0 auto;
    padding-bottom: 2.5rem;
    text-align: center;
}
.lmnp-hero__title {
    font-size: clamp(1.625rem, 4vw, 2.5rem);
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.15;
    margin: 0 0 .85rem;
    color: #fff;
}
.lmnp-hero__title--sm { font-size: clamp(1.5rem, 3vw, 2rem); }
.lmnp-hero__lead {
    font-size: 1rem;
    color: rgba(255,255,255,.65);
    margin: 0 auto 1.5rem;
    max-width: 34rem;
    line-height: 1.6;
}
.lmnp-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; margin-bottom: 1.5rem; }

.lmnp-hero__glow {
    position: absolute; pointer-events: none; border-radius: 50%; filter: blur(0); z-index: 1;
}
.lmnp-hero__glow--a {
    top: -120px; right: 10%;
    width: 480px; height: 480px;
    background: radial-gradient(circle, rgba(29,78,216,.18) 0%, transparent 65%);
}
.lmnp-hero__glow--b {
    bottom: -120px; left: 5%;
    width: 360px; height: 360px;
    background: radial-gradient(circle, rgba(124,58,237,.15) 0%, transparent 65%);
}
.lmnp-hero__dots {
    position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background-image: radial-gradient(rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 24px 24px;
}
/* La wave doit toucher les bords : on compense le padding horizontal du parent */
.lmnp-hero__wave {
    position: relative;
    line-height: 0;
    margin: -1px -1.25rem 0;
}
@media (min-width: 768px) { .lmnp-hero__wave { margin: -1px -2rem 0; } }
.lmnp-hero__wave svg { width: 100%; height: 40px; display: block; }
@media (min-width: 768px) { .lmnp-hero__wave svg { height: 52px; } }

/* Search dans le hero */
.lmnp-search {
    display: flex; align-items: center; gap: .5rem;
    max-width: 36rem;
    margin: 0 auto;
    padding: .35rem .35rem .35rem 1rem;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    backdrop-filter: blur(8px);
    transition: border-color .2s ease, background .2s ease;
}
.lmnp-search:focus-within { border-color: rgba(167,139,250,.5); background: rgba(255,255,255,.10); }
.lmnp-search__icon { color: rgba(255,255,255,.5); flex-shrink: 0; }
.lmnp-search input[type="search"] {
    flex: 1; min-width: 0;
    background: transparent;
    border: none; outline: none;
    color: #fff;
    font: inherit;
    font-size: .9375rem;
    padding: .65rem 0;
}
.lmnp-search input[type="search"]::placeholder { color: rgba(255,255,255,.4); }
.lmnp-search--compact { background: rgba(255,255,255,.04); }

/* ═══ SECTIONS ════════════════════════════════════════════════════════════ */
.lmnp-section { padding: 4rem 0; background: #fff; }
.lmnp-section--tight { padding: 2.5rem 0 1rem; }
.lmnp-section--soft  { background: var(--lmnp-bg-soft); border-top: 1px solid var(--lmnp-border-soft); }
.lmnp-section__head { max-width: 36rem; margin: 0 auto 2.5rem; text-align: center; }
.lmnp-section__title {
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 800;
    letter-spacing: -.01em;
    color: var(--lmnp-text);
    margin: 0 0 .65rem;
    line-height: 1.2;
}
.lmnp-section__lead { color: var(--lmnp-text-soft); margin: 0; line-height: 1.6; }
.lmnp-empty {
    text-align: center;
    color: var(--lmnp-text-mute);
    padding: 4rem 1rem;
    background: var(--lmnp-bg-soft);
    border-radius: var(--lmnp-radius-lg);
    border: 1px dashed var(--lmnp-border);
}

/* ═══ FEATURE CARD (à la une) ═════════════════════════════════════════════ */
.lmnp-feature {
    display: grid; gap: 1.5rem;
    grid-template-columns: 1fr;
    background: #fff;
    border: 1px solid var(--lmnp-border);
    border-radius: var(--lmnp-radius-lg);
    overflow: hidden;
    box-shadow: var(--lmnp-shadow);
    transition: transform .25s ease, box-shadow .25s ease;
}
.lmnp-feature:hover { transform: translateY(-2px); box-shadow: var(--lmnp-shadow-lg); }
@media (min-width: 768px) { .lmnp-feature { grid-template-columns: 1.2fr 1fr; gap: 0; } }
.lmnp-feature__media { display: block; position: relative; aspect-ratio: 16/10; overflow: hidden; }
.lmnp-feature__img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.lmnp-feature__media:hover .lmnp-feature__img { transform: scale(1.04); }
.lmnp-feature__img--placeholder {
    background:
        radial-gradient(circle at 30% 30%, rgba(124,58,237,.20) 0%, transparent 50%),
        radial-gradient(circle at 70% 70%, rgba(37,99,235,.20) 0%, transparent 55%),
        linear-gradient(135deg, #1e1b4b, #06080F);
}
.lmnp-feature__body {
    padding: 2rem; display: flex; flex-direction: column; gap: .9rem; justify-content: center;
}
.lmnp-feature__title {
    font-size: clamp(1.25rem, 2.5vw, 1.75rem);
    font-weight: 800;
    line-height: 1.25;
    margin: 0;
}
.lmnp-feature__title a { color: var(--lmnp-text); }
.lmnp-feature__title a:hover { color: var(--lmnp-violet-700); }
.lmnp-feature__excerpt { color: var(--lmnp-text-soft); margin: 0; line-height: 1.65; }
.lmnp-feature__meta { color: var(--lmnp-text-mute); font-size: .875rem; display: flex; gap: .5rem; align-items: center; }

/* ═══ GRID DE CARTES ══════════════════════════════════════════════════════ */
.lmnp-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
}

.lmnp-card {
    background: #fff;
    border: 1px solid var(--lmnp-border);
    border-radius: var(--lmnp-radius-lg);
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.lmnp-card:hover { transform: translateY(-3px); box-shadow: var(--lmnp-shadow); border-color: rgba(124,58,237,.2); }
.lmnp-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.lmnp-card__link:hover { color: inherit; }
.lmnp-card__media { aspect-ratio: 16/10; overflow: hidden; background: var(--lmnp-bg-soft); }
.lmnp-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.lmnp-card:hover .lmnp-card__img { transform: scale(1.04); }
.lmnp-card__img--placeholder {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    color: rgba(124,58,237,.35);
    background:
        radial-gradient(circle at 25% 25%, rgba(124,58,237,.10) 0%, transparent 55%),
        radial-gradient(circle at 75% 75%, rgba(37,99,235,.10) 0%, transparent 55%),
        var(--lmnp-bg-soft);
}
.lmnp-card__body { padding: 1.25rem 1.4rem 1.5rem; display: flex; flex-direction: column; gap: .55rem; flex: 1; }
.lmnp-card__cat {
    align-self: flex-start;
    font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: var(--lmnp-violet-700);
}
.lmnp-card__title {
    font-size: 1.125rem;
    font-weight: 800;
    line-height: 1.3;
    margin: 0;
    color: var(--lmnp-text);
}
.lmnp-card:hover .lmnp-card__title { color: var(--lmnp-violet-700); }
.lmnp-card__excerpt { color: var(--lmnp-text-soft); margin: 0; font-size: .9375rem; line-height: 1.55; flex: 1; }
.lmnp-card__meta {
    color: var(--lmnp-text-mute);
    font-size: .8125rem;
    display: flex; gap: .4rem; align-items: center;
    margin-top: .25rem;
}

/* ═══ PAGINATION ══════════════════════════════════════════════════════════ */
.lmnp-pagination { margin-top: 3rem; display: flex; justify-content: center; }
.lmnp-pagination .nav-links,
.lmnp-pagination > * { display: flex; flex-wrap: wrap; gap: .375rem; }
.lmnp-pagination a, .lmnp-pagination span {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 40px; height: 40px;
    padding: 0 .75rem;
    border-radius: 12px;
    font-weight: 600;
    color: var(--lmnp-text-soft);
    background: #fff;
    border: 1px solid var(--lmnp-border);
    text-decoration: none;
    transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.lmnp-pagination a:hover { color: var(--lmnp-blue-700); border-color: var(--lmnp-blue-600); }
.lmnp-pagination .current {
    background: linear-gradient(135deg, var(--lmnp-blue-600), var(--lmnp-violet-600));
    color: #fff; border-color: transparent;
}

/* ═══ ARTICLE (single) ════════════════════════════════════════════════════ */
.lmnp-article__head {
    position: relative; overflow: hidden;
    background: var(--lmnp-bg-dark);
    color: #fff;
    padding: 2.5rem 1.25rem 0;
}
@media (min-width: 768px) { .lmnp-article__head { padding: 3rem 2rem 0; } }
.lmnp-article__head-glow {
    position: absolute; pointer-events: none; border-radius: 50%; z-index: 1;
}
.lmnp-article__head-glow--a {
    top: -150px; right: 10%;
    width: 420px; height: 420px;
    background: radial-gradient(circle, rgba(29,78,216,.20) 0%, transparent 65%);
}
.lmnp-article__head-glow--b {
    bottom: -120px; left: 0;
    width: 320px; height: 320px;
    background: radial-gradient(circle, rgba(124,58,237,.15) 0%, transparent 65%);
}
.lmnp-article__head .lmnp-container--narrow {
    position: relative; z-index: 2;
    padding-bottom: 2.25rem;
}

.lmnp-breadcrumb {
    display: flex; gap: .5rem; align-items: center;
    color: rgba(255,255,255,.45);
    font-size: .8125rem;
    margin: 0 0 1rem;
}
.lmnp-breadcrumb a { color: rgba(255,255,255,.65); }
.lmnp-breadcrumb a:hover { color: #fff; }

.lmnp-article__head .lmnp-tags { justify-content: flex-start; margin: 0 0 .85rem; }
.lmnp-article__head .lmnp-tag {
    background: rgba(167,139,250,.15);
    color: #fff;
    border-color: rgba(167,139,250,.3);
}
.lmnp-article__title {
    font-size: clamp(1.625rem, 3.5vw, 2.25rem);
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: -.015em;
    margin: 0 0 .75rem;
    color: #fff;
}
.lmnp-article__lead {
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(255,255,255,.7);
    margin: 0 0 1.25rem;
}
.lmnp-article__meta { color: rgba(255,255,255,.5); font-size: .8125rem; }
.lmnp-author { display: flex; align-items: center; gap: .65rem; }
.lmnp-author__avatar { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; }
.lmnp-author__name { display: block; color: #fff; font-weight: 600; font-size: .875rem; }
.lmnp-author__date { display: block; color: rgba(255,255,255,.5); font-size: .75rem; margin-top: 1px; }

.lmnp-article__cover { background: #fff; padding: 1.25rem 0 0; }
.lmnp-article__cover-img {
    width: 100%; max-height: 420px; object-fit: cover;
    border-radius: var(--lmnp-radius-lg);
    box-shadow: var(--lmnp-shadow);
    margin-top: 0;
}

/* ═══ PROSE (contenu d'article) ═══════════════════════════════════════════ */
.lmnp-prose {
    padding: 2rem 0 1.5rem;
    color: var(--lmnp-text);
    font-size: 1.0625rem;
    line-height: 1.75;
}
.lmnp-prose > * + * { margin-top: 1.25em; }
.lmnp-prose h2 {
    font-size: 1.625rem;
    font-weight: 800;
    line-height: 1.25;
    margin-top: 2.5em;
    margin-bottom: .75em;
    letter-spacing: -.01em;
    color: var(--lmnp-text);
}
.lmnp-prose h3 {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
    margin-top: 2em;
    margin-bottom: .5em;
    color: var(--lmnp-text);
}
.lmnp-prose h4 { font-size: 1.0625rem; font-weight: 700; margin-top: 1.5em; margin-bottom: .35em; }
.lmnp-prose p { margin: 0; }
.lmnp-prose a {
    color: var(--lmnp-blue-700);
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
    text-decoration-color: rgba(124,58,237,.35);
}
.lmnp-prose a:hover { color: var(--lmnp-violet-700); text-decoration-color: currentColor; }

/* Les boutons CTA gardent leur propre style même à l'intérieur du contenu
   d'article (.lmnp-prose) — pas de soulignement, pas de couleur de texte
   bleue forcée par l'héritage. */
.lmnp-prose .lmnp-btn,
.lmnp-prose .lmnp-cta-inline a,
.lmnp-prose .lmnp-cta-card a {
    text-decoration: none;
}
.lmnp-prose .lmnp-btn--gradient,
.lmnp-prose .lmnp-btn--aurora { color: #fff; }
.lmnp-prose .lmnp-btn--gradient:hover,
.lmnp-prose .lmnp-btn--aurora:hover { color: #fff; text-decoration: none; }
.lmnp-prose .lmnp-btn--outline { color: var(--lmnp-text); }
.lmnp-prose .lmnp-btn--outline:hover { color: var(--lmnp-blue-600); text-decoration: none; }
.lmnp-prose strong { font-weight: 700; color: var(--lmnp-text); }
.lmnp-prose em { font-style: italic; }
.lmnp-prose ul, .lmnp-prose ol { padding-left: 1.4rem; margin: 1.25em 0; }
.lmnp-prose li { margin: .5em 0; }
.lmnp-prose ul li::marker { color: var(--lmnp-violet-600); }
.lmnp-prose ol li::marker { color: var(--lmnp-violet-700); font-weight: 700; }
.lmnp-prose blockquote {
    margin: 2em 0;
    padding: 1.25rem 1.5rem;
    border-left: 4px solid var(--lmnp-violet-600);
    background: linear-gradient(135deg, rgba(124,58,237,.06), rgba(37,99,235,.06));
    border-radius: 0 var(--lmnp-radius) var(--lmnp-radius) 0;
    color: var(--lmnp-text);
    font-style: italic;
}
.lmnp-prose blockquote p { margin: 0; }
.lmnp-prose code {
    background: var(--lmnp-bg-soft);
    border: 1px solid var(--lmnp-border);
    border-radius: 6px;
    padding: .15em .4em;
    font-size: .9em;
    font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}
.lmnp-prose pre {
    background: var(--lmnp-bg-dark);
    color: #e2e8f0;
    padding: 1.25rem 1.5rem;
    border-radius: var(--lmnp-radius);
    overflow-x: auto;
    line-height: 1.55;
    font-size: .9375rem;
}
.lmnp-prose pre code { background: transparent; border: 0; padding: 0; color: inherit; }
.lmnp-prose img, .lmnp-prose figure {
    margin: 1.75em 0;
    border-radius: var(--lmnp-radius);
    overflow: hidden;
}
.lmnp-prose figure img { margin: 0; border-radius: 0; }
.lmnp-prose figcaption { color: var(--lmnp-text-mute); font-size: .8125rem; text-align: center; padding: .65rem 1rem; }
.lmnp-prose hr { margin: 3em 0; border-top: 1px solid var(--lmnp-border); }
.lmnp-prose table {
    width: 100%; border-collapse: collapse; margin: 1.75em 0;
    font-size: .9375rem;
}
.lmnp-prose th, .lmnp-prose td { padding: .75rem 1rem; border-bottom: 1px solid var(--lmnp-border); text-align: left; }
.lmnp-prose th { font-weight: 700; background: var(--lmnp-bg-soft); }

.lmnp-article__tags {
    display: flex; flex-wrap: wrap; gap: .5rem; align-items: center;
    margin: 2rem 0;
    padding: 1.25rem 0;
    border-top: 1px solid var(--lmnp-border-soft);
    border-bottom: 1px solid var(--lmnp-border-soft);
}
.lmnp-article__tags-label {
    color: var(--lmnp-text-mute);
    font-size: .8125rem; font-weight: 600;
    margin-right: .25rem;
}

/* ─── Pager (article précédent / suivant) ─────────────────────────────── */
.lmnp-pager {
    display: grid; gap: 1rem;
    grid-template-columns: 1fr;
    margin: 2.5rem 0;
}
@media (min-width: 640px) { .lmnp-pager { grid-template-columns: 1fr 1fr; } }
.lmnp-pager__link {
    display: flex; flex-direction: column; gap: .25rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--lmnp-border);
    border-radius: var(--lmnp-radius);
    background: #fff;
    color: var(--lmnp-text);
    text-decoration: none;
    transition: border-color .2s ease, transform .2s ease;
    min-height: 84px; justify-content: center;
}
.lmnp-pager__link:hover { border-color: var(--lmnp-violet-600); transform: translateY(-1px); color: var(--lmnp-text); }
.lmnp-pager__link--next { text-align: right; }
.lmnp-pager__dir { color: var(--lmnp-violet-700); font-weight: 600; font-size: .8125rem; letter-spacing: .04em; text-transform: uppercase; }
.lmnp-pager__title { font-weight: 700; line-height: 1.3; }

/* ═══ COMMENTAIRES (basique mais propre) ═════════════════════════════════ */
.lmnp-comments { margin: 2.5rem 0; padding-top: 1.5rem; border-top: 1px solid var(--lmnp-border); }
.lmnp-comments .comments-title { font-size: 1.25rem; font-weight: 800; margin: 0 0 1rem; }
.lmnp-comments ol.comment-list { list-style: none; padding: 0; margin: 0; }
.lmnp-comments .comment { padding: 1.25rem; border: 1px solid var(--lmnp-border); border-radius: var(--lmnp-radius); margin: 1rem 0; }
.lmnp-comments .comment-meta { color: var(--lmnp-text-mute); font-size: .8125rem; margin-bottom: .5rem; }
.lmnp-comments .comment-form input,
.lmnp-comments .comment-form textarea {
    width: 100%; padding: .75rem 1rem;
    border: 1px solid var(--lmnp-border);
    border-radius: 12px;
    font: inherit;
    margin-bottom: .75rem;
}
.lmnp-comments .comment-form input:focus,
.lmnp-comments .comment-form textarea:focus {
    outline: none;
    border-color: var(--lmnp-violet-600);
    box-shadow: 0 0 0 3px rgba(124,58,237,.15);
}
.lmnp-comments .comment-form .submit {
    display: inline-flex; align-items: center; justify-content: center;
    padding: .75rem 1.5rem;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--lmnp-blue-600), var(--lmnp-violet-600));
    color: #fff; border: none; cursor: pointer; font-weight: 700;
}

/* ═══ FOOTER ══════════════════════════════════════════════════════════════ */
.lmnp-footer { background: var(--lmnp-bg-dark); color: rgba(255,255,255,.4); }

.lmnp-footer__cta {
    position: relative; overflow: hidden;
    padding: 4rem 1.25rem;
    border-top: 1px solid rgba(255,255,255,.06);
}
@media (min-width: 768px) { .lmnp-footer__cta { padding: 5rem 2rem; } }
.lmnp-footer__cta-inner { position: relative; z-index: 2; max-width: 36rem; margin: 0 auto; text-align: center; }
.lmnp-footer__cta-glow { position: absolute; pointer-events: none; border-radius: 50%; z-index: 1; }
.lmnp-footer__cta-glow--a {
    top: -100px; right: 10%;
    width: 460px; height: 460px;
    background: radial-gradient(circle, rgba(29,78,216,.18) 0%, transparent 65%);
}
.lmnp-footer__cta-glow--b {
    bottom: -100px; left: 5%;
    width: 380px; height: 380px;
    background: radial-gradient(circle, rgba(124,58,237,.15) 0%, transparent 65%);
}
.lmnp-footer__cta-title {
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: #fff;
    margin: 0 0 .85rem;
}
.lmnp-footer__cta-desc {
    color: rgba(255,255,255,.6);
    margin: 0 auto 1.75rem;
    line-height: 1.6;
}
.lmnp-footer__cta-buttons {
    display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
    gap: .85rem 1.25rem;
}
.lmnp-footer__cta-note { color: rgba(255,255,255,.4); font-size: .8125rem; }

.lmnp-footer__inner {
    border-top: 1px solid rgba(255,255,255,.06);
    padding: 2rem 1.25rem;
    text-align: center;
    display: flex; flex-direction: column; gap: 1rem; align-items: center;
}
@media (min-width: 768px) { .lmnp-footer__inner { padding: 2rem; } }
.lmnp-footer__brand { display: flex; align-items: center; gap: .5rem; color: rgba(255,255,255,.5); font-weight: 700; font-size: .875rem; }
.lmnp-footer__brand img { opacity: .6; }
.lmnp-footer__nav { width: 100%; }
.lmnp-footer__links {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-wrap: wrap; justify-content: center;
    gap: .5rem 1.25rem;
}
.lmnp-footer__links a {
    color: rgba(255,255,255,.5);
    font-size: .8125rem;
    text-decoration: none;
    transition: color .2s ease;
}
.lmnp-footer__links a:hover { color: rgba(255,255,255,.85); }
.lmnp-footer__copy { color: rgba(255,255,255,.35); font-size: .8125rem; margin: 0; }
.lmnp-footer__copy a { color: rgba(255,255,255,.5); }
.lmnp-footer__copy a:hover { color: rgba(255,255,255,.85); }

/* ═══ Widgets footer ══════════════════════════════════════════════════════ */
.lmnp-footer-widget { color: rgba(255,255,255,.55); }
.lmnp-footer-widget__title { color: #fff; font-size: .875rem; text-transform: uppercase; letter-spacing: .12em; margin: 0 0 .75rem; }
.lmnp-footer-widget a { color: rgba(255,255,255,.65); }
.lmnp-footer-widget a:hover { color: #fff; }

/* ═══ Utilitaires WP standard ═════════════════════════════════════════════ */
.alignleft  { float: left;  margin: .5em 1.5em .5em 0; }
.alignright { float: right; margin: .5em 0 .5em 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignwide  { width: 100%; max-width: var(--lmnp-wide); margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.alignfull  { width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: none; }
.wp-caption { max-width: 100%; }
.wp-caption img { display: block; }
.wp-caption-text { color: var(--lmnp-text-mute); font-size: .8125rem; padding: .5rem 0; text-align: center; }
.sticky { /* WP standard class — pas de style spécial ici */ }
