/* ============================================================
   La Bohème Paris - Pages éditoriales (À propos / Sur mesure)
   Version BOLD alignée sur la page d'accueil Joy :
   couleurs PLEINES, cartes inclinées/décalées, ombres dures,
   décors fleurs & papillons. Scopé sous .lbp-editorial.
   ============================================================ */

.lbp-editorial {
    --ed-cream:   var(--joy-cream, #FBF3E2);
    --ed-ink:     var(--joy-ink, #2B1A12);
    --ed-ink-soft:var(--joy-ink-soft, #5a463b);
    --ed-pink:    var(--joy-pink, #EC0E8B);
    --ed-pink-deep: var(--joy-pink-deep, #B80A6C);
    --ed-pink-tint: var(--joy-pink-tint, #fbe6f1);
    --ed-cobalt:  var(--joy-cobalt, #2A35D0);
    --ed-yellow:  var(--joy-yellow, #FFCE1F);
    --ed-green:   var(--joy-green, #1FA64A);
    --ed-teal:    var(--joy-teal, #2bb6c9);
    --ed-marigold: var(--joy-marigold, #F47A20);
    --ed-coral:   var(--joy-coral, #f4604b);
    --ed-purple:  var(--joy-purple, #7a3cc4);
    --ed-card:    var(--joy-card, #ffffff);
    --ed-font-display: var(--joy-font-display, 'Abril Fatface', Georgia, serif);
    --ed-font-script:  var(--joy-font-script, 'Caveat', cursive);
    --ed-font-body:    var(--joy-font-body, 'DM Sans', system-ui, sans-serif);
    --ed-shadow:  8px 8px 0 0 var(--ed-ink);
    --ed-shadow-sm: 4px 4px 0 0 var(--ed-ink);
    font-family: var(--ed-font-body);
    color: var(--ed-ink);
    overflow-x: clip;
}

.lbp-editorial .ed-wrap { max-width: 1180px; margin: 0 auto; padding: 0 1.5rem; }
.lbp-editorial .ed-section { padding: 3.5rem 0; position: relative; }
.lbp-editorial .ed-section--tight { padding: 2.2rem 0; }
@media (min-width: 768px) { .lbp-editorial .ed-section { padding: 5rem 0; } }

.lbp-editorial .ed-eyebrow { font-family: var(--ed-font-script); color: var(--ed-cobalt); font-size: 2rem; line-height: 1; margin: 0 0 0.4rem; display: block; }
.lbp-editorial .ed-h2 { font-family: var(--ed-font-display); font-weight: 400; color: var(--ed-ink); font-size: clamp(2.2rem, 5.5vw, 3.6rem); line-height: 1.04; margin: 0 0 1.2rem; letter-spacing: -0.01em; }
.lbp-editorial .ed-h3 { font-family: var(--ed-font-display); font-weight: 400; font-size: 1.55rem; line-height: 1.12; margin: 0 0 0.6rem; color: var(--ed-ink); }
.lbp-editorial .ed-lead { font-size: 1.2rem; line-height: 1.7; color: var(--ed-ink-soft); max-width: 60ch; }
.lbp-editorial .ed-p { font-size: 1.06rem; line-height: 1.75; color: var(--ed-ink-soft); margin: 0 0 1rem; }
.lbp-editorial .ed-p strong { color: var(--ed-ink); font-weight: 700; }
.lbp-editorial .ed-center { text-align: center; }
.lbp-editorial .ed-center .ed-lead { margin-left: auto; margin-right: auto; }
.lbp-editorial .ed-em { color: var(--ed-pink); font-style: italic; }
.lbp-editorial .ed-prose-grid { display: grid; grid-template-columns: 1fr; gap: 1.2rem 2.6rem; margin: 1.8rem 0; }
@media (min-width: 760px) { .lbp-editorial .ed-prose-grid { grid-template-columns: 1fr 1fr; } }
.lbp-editorial .ed-prose-grid .ed-h3 { margin-top: 0; }

.lbp-editorial .ed-btn { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--ed-font-body); font-weight: 700; font-size: 1rem; padding: 0.95rem 1.7rem; border-radius: 9999px; text-decoration: none; border: 2.5px solid var(--ed-ink); cursor: pointer; line-height: 1.1; transition: transform 0.18s ease, box-shadow 0.18s ease; }
.lbp-editorial .ed-btn--primary { background: var(--ed-pink); color: #fff !important; box-shadow: var(--ed-shadow-sm); }
.lbp-editorial .ed-btn--ink { background: var(--ed-ink); color: var(--ed-cream) !important; box-shadow: var(--ed-shadow-sm); }
.lbp-editorial .ed-btn--ghost { background: var(--ed-cream); color: var(--ed-ink) !important; box-shadow: var(--ed-shadow-sm); }
.lbp-editorial .ed-btn:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 0 var(--ed-ink); }
.lbp-editorial .ed-btn svg { width: 1.1em; height: 1.1em; }
.lbp-editorial .ed-btn-row { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.lbp-editorial .ed-center .ed-btn-row { justify-content: center; }

.lbp-editorial .ed-split { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: center; }
@media (min-width: 900px) { .lbp-editorial .ed-split { grid-template-columns: 1.05fr 0.95fr; gap: 4rem; } .lbp-editorial .ed-split--rev .ed-split-media { order: 2; } }

.lbp-editorial .ed-figure { position: relative; transform: rotate(-2deg); transition: transform 0.25s ease; }
.lbp-editorial .ed-figure:hover { transform: rotate(0deg); }
.lbp-editorial .ed-figure-media { border: 4px solid var(--ed-ink); border-radius: 24px; overflow: hidden; box-shadow: var(--ed-shadow); background: var(--ed-cream); }
.lbp-editorial .ed-figure video, .lbp-editorial .ed-figure img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5; }
.lbp-editorial .ed-figure-block { aspect-ratio: 4 / 5; display: flex; align-items: center; justify-content: center; background: var(--ed-pink); padding: 2rem; text-align: center; }
.lbp-editorial .ed-figure-block span { font-family: var(--ed-font-script); font-size: 2.6rem; color: #fff; line-height: 1.1; }
.lbp-editorial .ed-sticker { position: absolute; bottom: -16px; right: -8px; z-index: 3; background: var(--ed-yellow); color: var(--ed-ink); border: 2.5px solid var(--ed-ink); border-radius: 9999px; padding: 0.6rem 1.1rem; font-weight: 700; font-size: 0.95rem; box-shadow: var(--ed-shadow-sm); transform: rotate(5deg); }

.lbp-editorial .ed-cards { display: grid; grid-template-columns: 1fr; gap: 1.8rem; margin-top: 2.8rem; }
@media (min-width: 640px) { .lbp-editorial .ed-cards--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 860px) { .lbp-editorial .ed-cards--3 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 760px) { .lbp-editorial .ed-cards--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .lbp-editorial .ed-cards--4 { grid-template-columns: repeat(4, 1fr); } }
.lbp-editorial .ed-card { background: var(--ed-card); border: 3.5px solid var(--ed-ink); border-radius: 26px; padding: 1.9rem 1.7rem; box-shadow: var(--ed-shadow); display: flex; flex-direction: column; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.lbp-editorial .ed-cards > .ed-card:nth-child(4n+1) { transform: rotate(-1.6deg); }
.lbp-editorial .ed-cards > .ed-card:nth-child(4n+2) { transform: rotate(1.3deg) translateY(14px); }
.lbp-editorial .ed-cards > .ed-card:nth-child(4n+3) { transform: rotate(-1deg) translateY(6px); }
.lbp-editorial .ed-cards > .ed-card:nth-child(4n)   { transform: rotate(1.8deg); }
.lbp-editorial .ed-cards > .ed-card:hover { transform: rotate(0deg) translateY(-6px); box-shadow: 12px 12px 0 0 var(--ed-ink); z-index: 2; }
.lbp-editorial .ed-card.bg-pink, .lbp-editorial .ed-card.solid-pink { background: var(--ed-pink); }
.lbp-editorial .ed-card.bg-cobalt, .lbp-editorial .ed-card.solid-cobalt { background: var(--ed-cobalt); }
.lbp-editorial .ed-card.bg-yellow, .lbp-editorial .ed-card.solid-yellow { background: var(--ed-yellow); }
.lbp-editorial .ed-card.bg-green, .lbp-editorial .ed-card.solid-green { background: var(--ed-green); }
.lbp-editorial .ed-card.bg-marigold, .lbp-editorial .ed-card.solid-marigold { background: var(--ed-marigold); }
.lbp-editorial .ed-card.bg-teal, .lbp-editorial .ed-card.solid-teal { background: var(--ed-teal); }
.lbp-editorial .ed-card.bg-coral, .lbp-editorial .ed-card.solid-coral { background: var(--ed-coral); }
.lbp-editorial .ed-card.bg-purple, .lbp-editorial .ed-card.solid-purple { background: var(--ed-purple); }
.lbp-editorial .ed-card.bg-pink, .lbp-editorial .ed-card.solid-pink, .lbp-editorial .ed-card.bg-cobalt, .lbp-editorial .ed-card.solid-cobalt, .lbp-editorial .ed-card.bg-green, .lbp-editorial .ed-card.solid-green, .lbp-editorial .ed-card.bg-marigold, .lbp-editorial .ed-card.solid-marigold, .lbp-editorial .ed-card.bg-coral, .lbp-editorial .ed-card.solid-coral, .lbp-editorial .ed-card.bg-purple, .lbp-editorial .ed-card.solid-purple { color: #fff; }
.lbp-editorial .ed-card.bg-pink .ed-h3, .lbp-editorial .ed-card.solid-pink .ed-h3, .lbp-editorial .ed-card.bg-pink p, .lbp-editorial .ed-card.solid-pink p, .lbp-editorial .ed-card.bg-pink li, .lbp-editorial .ed-card.solid-pink li, .lbp-editorial .ed-card.bg-cobalt .ed-h3, .lbp-editorial .ed-card.solid-cobalt .ed-h3, .lbp-editorial .ed-card.bg-cobalt p, .lbp-editorial .ed-card.solid-cobalt p, .lbp-editorial .ed-card.bg-cobalt li, .lbp-editorial .ed-card.solid-cobalt li, .lbp-editorial .ed-card.bg-green .ed-h3, .lbp-editorial .ed-card.solid-green .ed-h3, .lbp-editorial .ed-card.bg-green p, .lbp-editorial .ed-card.solid-green p, .lbp-editorial .ed-card.bg-green li, .lbp-editorial .ed-card.solid-green li, .lbp-editorial .ed-card.bg-marigold .ed-h3, .lbp-editorial .ed-card.solid-marigold .ed-h3, .lbp-editorial .ed-card.bg-marigold p, .lbp-editorial .ed-card.solid-marigold p, .lbp-editorial .ed-card.bg-marigold li, .lbp-editorial .ed-card.solid-marigold li, .lbp-editorial .ed-card.bg-coral .ed-h3, .lbp-editorial .ed-card.solid-coral .ed-h3, .lbp-editorial .ed-card.bg-coral p, .lbp-editorial .ed-card.solid-coral p, .lbp-editorial .ed-card.bg-coral li, .lbp-editorial .ed-card.solid-coral li, .lbp-editorial .ed-card.bg-purple .ed-h3, .lbp-editorial .ed-card.solid-purple .ed-h3, .lbp-editorial .ed-card.bg-purple p, .lbp-editorial .ed-card.solid-purple p, .lbp-editorial .ed-card.bg-purple li, .lbp-editorial .ed-card.solid-purple li { color: #fff; }
.lbp-editorial .ed-card.bg-pink li::before, .lbp-editorial .ed-card.solid-pink li::before, .lbp-editorial .ed-card.bg-cobalt li::before, .lbp-editorial .ed-card.solid-cobalt li::before, .lbp-editorial .ed-card.bg-green li::before, .lbp-editorial .ed-card.solid-green li::before, .lbp-editorial .ed-card.bg-marigold li::before, .lbp-editorial .ed-card.solid-marigold li::before, .lbp-editorial .ed-card.bg-coral li::before, .lbp-editorial .ed-card.solid-coral li::before, .lbp-editorial .ed-card.bg-purple li::before, .lbp-editorial .ed-card.solid-purple li::before { background: #fff; }
.lbp-editorial .ed-card.bg-yellow, .lbp-editorial .ed-card.solid-yellow, .lbp-editorial .ed-card.bg-teal, .lbp-editorial .ed-card.solid-teal, .lbp-editorial .ed-card.bg-yellow .ed-h3, .lbp-editorial .ed-card.solid-yellow .ed-h3, .lbp-editorial .ed-card.bg-yellow p, .lbp-editorial .ed-card.solid-yellow p, .lbp-editorial .ed-card.bg-yellow li, .lbp-editorial .ed-card.solid-yellow li { color: var(--ed-ink); }
.lbp-editorial .ed-card.bg-yellow li::before, .lbp-editorial .ed-card.solid-yellow li::before { background: var(--ed-ink); }
.lbp-editorial .ed-card p { line-height: 1.65; margin: 0 0 0.6rem; font-size: 1rem; }
.lbp-editorial .ed-card ul { list-style: none; margin: 0.4rem 0 0; padding: 0; }
.lbp-editorial .ed-card li { padding-left: 1.4rem; position: relative; margin-bottom: 0.45rem; font-size: 0.98rem; }
.lbp-editorial .ed-card li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.55rem; height: 0.55rem; border-radius: 9999px; background: var(--ed-pink); }
.lbp-editorial .ed-badge { width: 58px; height: 58px; border-radius: 9999px; display: flex; align-items: center; justify-content: center; border: 2.5px solid var(--ed-ink); margin-bottom: 1.1rem; box-shadow: var(--ed-shadow-sm); flex: none; background: #fff; color: var(--ed-ink); }
.lbp-editorial .ed-badge svg { width: 27px; height: 27px; }

.lbp-editorial .ed-steps { display: grid; grid-template-columns: 1fr; gap: 1.8rem; margin-top: 2.8rem; counter-reset: edstep; }
@media (min-width: 760px) { .lbp-editorial .ed-steps--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .lbp-editorial .ed-steps--4 { grid-template-columns: repeat(4, 1fr); } }
.lbp-editorial .ed-step { border: 3.5px solid var(--ed-ink); border-radius: 26px; padding: 1.8rem 1.6rem 1.6rem; box-shadow: var(--ed-shadow); position: relative; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.lbp-editorial .ed-steps > .ed-step:nth-child(4n+1) { background: var(--ed-pink); transform: rotate(-1.5deg); }
.lbp-editorial .ed-steps > .ed-step:nth-child(4n+2) { background: var(--ed-yellow); transform: rotate(1.2deg) translateY(12px); }
.lbp-editorial .ed-steps > .ed-step:nth-child(4n+3) { background: var(--ed-green); transform: rotate(-1deg) translateY(6px); }
.lbp-editorial .ed-steps > .ed-step:nth-child(4n) { background: var(--ed-cobalt); transform: rotate(1.6deg); }
.lbp-editorial .ed-steps > .ed-step:hover { transform: rotate(0deg) translateY(-6px); box-shadow: 12px 12px 0 0 var(--ed-ink); z-index: 2; }
.lbp-editorial .ed-step h3 { font-family: var(--ed-font-display); font-weight: 400; font-size: 1.25rem; margin: 0 0 0.4rem; color: #fff; }
.lbp-editorial .ed-step p { line-height: 1.6; margin: 0; font-size: 0.98rem; color: rgba(255,255,255,0.95); }
.lbp-editorial .ed-steps > .ed-step:nth-child(4n+2) h3, .lbp-editorial .ed-steps > .ed-step:nth-child(4n+2) p { color: var(--ed-ink); }
.lbp-editorial .ed-step-num { counter-increment: edstep; position: absolute; top: -16px; left: 16px; width: 32px; height: 32px; border-radius: 9999px; background: var(--ed-cream); color: var(--ed-ink); border: 2.5px solid var(--ed-ink); display: flex; align-items: center; justify-content: center; font-family: var(--ed-font-body); font-weight: 800; font-size: 0.92rem; line-height: 1; margin: 0; }
.lbp-editorial .ed-step-num::before { content: counter(edstep); }

.lbp-editorial .ed-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 2.5rem; background: var(--ed-ink); border-radius: 28px; padding: 2.7rem 1.5rem; box-shadow: var(--ed-shadow); transform: rotate(-0.8deg); }
.lbp-editorial .ed-stat { text-align: center; color: var(--ed-cream); padding: 0 1rem; position: relative; }
.lbp-editorial .ed-stat + .ed-stat::before { content: ""; position: absolute; left: 0; top: 14%; height: 72%; width: 2px; background: rgba(255,255,255,0.16); }
.lbp-editorial .ed-stat .n { font-family: var(--ed-font-display); font-weight: 400; font-size: clamp(2.7rem, 7vw, 4rem); line-height: 1; }
.lbp-editorial .ed-stat:nth-child(3n+1) .n { color: var(--ed-yellow); }
.lbp-editorial .ed-stat:nth-child(3n+2) .n { color: var(--ed-pink); }
.lbp-editorial .ed-stat:nth-child(3n+3) .n { color: var(--ed-green); }
.lbp-editorial .ed-stat .l { font-size: 0.95rem; margin-top: 0.6rem; opacity: 0.9; font-weight: 600; }

.lbp-editorial .ed-quote { background: var(--ed-pink); color: #fff; border: 3.5px solid var(--ed-ink); border-radius: 28px; padding: 2.6rem 2rem; box-shadow: var(--ed-shadow); max-width: 760px; margin: 0 auto; text-align: center; transform: rotate(-1deg); }
.lbp-editorial .ed-quote blockquote { font-family: var(--ed-font-display); font-weight: 400; font-size: clamp(1.4rem, 3.5vw, 2rem); line-height: 1.25; margin: 0 0 1rem; }
.lbp-editorial .ed-quote cite { font-family: var(--ed-font-script); font-size: 1.6rem; font-style: normal; opacity: 0.95; }

.lbp-editorial .ed-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.6rem; margin-top: 2.8rem; }
@media (min-width: 720px) { .lbp-editorial .ed-gallery { grid-template-columns: repeat(3, 1fr); } }
.lbp-editorial .ed-gallery a { display: block; border: 3.5px solid var(--ed-ink); border-radius: 24px; overflow: hidden; box-shadow: var(--ed-shadow-sm); transition: transform 0.18s ease, box-shadow 0.18s ease; }
.lbp-editorial .ed-gallery a:nth-child(3n+1) { transform: rotate(-1.6deg); }
.lbp-editorial .ed-gallery a:nth-child(3n+2) { transform: rotate(1.2deg); }
.lbp-editorial .ed-gallery a:nth-child(3n) { transform: rotate(-0.8deg) translateY(8px); }
.lbp-editorial .ed-gallery a:hover { transform: rotate(0deg) translate(-3px, -5px); box-shadow: 10px 10px 0 0 var(--ed-ink); z-index: 2; }
.lbp-editorial .ed-gallery .thumb { display: block; overflow: hidden; line-height: 0; }
.lbp-editorial .ed-gallery img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.lbp-editorial .ed-gallery .cap { display: block; padding: 0.7rem 0.8rem 0.95rem; font-weight: 700; font-size: 0.92rem; color: var(--ed-ink); text-align: center; }
.lbp-editorial .ed-gallery a[data-joy-bg="yellow"] { background: var(--ed-yellow); }
.lbp-editorial .ed-gallery a[data-joy-bg="pink"] { background: var(--ed-pink); }
.lbp-editorial .ed-gallery a[data-joy-bg="teal"] { background: var(--ed-teal); }
.lbp-editorial .ed-gallery a[data-joy-bg="cobalt"] { background: var(--ed-cobalt); }
.lbp-editorial .ed-gallery a[data-joy-bg="marigold"] { background: var(--ed-marigold); }
.lbp-editorial .ed-gallery a[data-joy-bg="green"] { background: var(--ed-green); }
.lbp-editorial .ed-gallery a[data-joy-bg="coral"] { background: var(--ed-coral); }
.lbp-editorial .ed-gallery a[data-joy-bg="purple"] { background: var(--ed-purple); }
.lbp-editorial .ed-gallery a[data-joy-bg="pink"] .cap, .lbp-editorial .ed-gallery a[data-joy-bg="cobalt"] .cap, .lbp-editorial .ed-gallery a[data-joy-bg="purple"] .cap, .lbp-editorial .ed-gallery a[data-joy-bg="coral"] .cap, .lbp-editorial .ed-gallery a[data-joy-bg="green"] .cap, .lbp-editorial .ed-gallery a[data-joy-bg="marigold"] .cap { color: #fff; }


.lbp-editorial .ed-cta { background: var(--ed-cobalt); color: #fff; border: 3.5px solid var(--ed-ink); border-radius: 34px; box-shadow: var(--ed-shadow); padding: 3.2rem 2rem; text-align: center; max-width: 1000px; margin: 0 auto; position: relative; transform: rotate(-0.8deg); }
.lbp-editorial .ed-cta--pink { background: var(--ed-pink); }
.lbp-editorial .ed-cta .ed-eyebrow { color: var(--ed-yellow); }
.lbp-editorial .ed-cta h2 { font-family: var(--ed-font-display); font-weight: 400; font-size: clamp(2rem, 5vw, 3.1rem); line-height: 1.04; margin: 0 0 0.8rem; color: #fff; }
.lbp-editorial .ed-cta p { color: rgba(255,255,255,0.94); font-size: 1.14rem; line-height: 1.6; max-width: 52ch; margin: 0 auto 1.8rem; }
.lbp-editorial .ed-cta .ed-btn-row { justify-content: center; }
.lbp-editorial .ed-cta .ed-btn--primary { background: var(--ed-yellow); color: var(--ed-ink) !important; }
.lbp-editorial .ed-cta .ed-btn--ghost { background: transparent; color: #fff !important; border-color: #fff; box-shadow: 4px 4px 0 0 rgba(0,0,0,0.35); }

.lbp-editorial .ed-reassure { display: flex; flex-wrap: wrap; gap: 1.2rem 2rem; justify-content: center; margin-top: 1.6rem; }
.lbp-editorial .ed-reassure span { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 700; color: var(--ed-ink); font-size: 0.98rem; }
.lbp-editorial .ed-reassure svg { width: 1.2em; height: 1.2em; color: var(--ed-green); }

.lbp-editorial .ed-marquee { margin-top: 2.4rem; display: flex; flex-direction: column; gap: 1rem; }
.lbp-editorial .ed-marquee-row { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.lbp-editorial .ed-marquee-track { display: flex; flex-wrap: nowrap; gap: 0.8rem; width: max-content; will-change: transform; }
.lbp-editorial .ed-marquee-track .ed-tag { flex: 0 0 auto; }
.lbp-editorial .ed-marquee-row[data-dir="right"] .ed-marquee-track { animation: ed-marq-right 60s linear infinite; }
.lbp-editorial .ed-marquee-row[data-dir="left"] .ed-marquee-track { animation: ed-marq-left 52s linear infinite; }
.lbp-editorial .ed-marquee-row.is-slow[data-dir="right"] .ed-marquee-track { animation-duration: 72s; }
.lbp-editorial .ed-marquee:hover .ed-marquee-track { animation-play-state: paused; }
@keyframes ed-marq-left { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes ed-marq-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }
.lbp-editorial .ed-tag { background: var(--ed-cream); border: 2.5px solid var(--ed-ink); border-radius: 9999px; padding: 0.55rem 1.15rem; font-weight: 700; font-size: 0.95rem; color: var(--ed-ink); box-shadow: var(--ed-shadow-sm); white-space: nowrap; }
.lbp-editorial .ed-tag:nth-child(5n+1) { background: var(--ed-pink); color: #fff; }
.lbp-editorial .ed-tag:nth-child(5n+2) { background: var(--ed-yellow); }
.lbp-editorial .ed-tag:nth-child(5n+3) { background: var(--ed-cobalt); color: #fff; }
.lbp-editorial .ed-tag:nth-child(5n+4) { background: var(--ed-green); color: #fff; }
.lbp-editorial .ed-tag:nth-child(5n+5) { background: var(--ed-marigold); color: #fff; }

.lbp-editorial .ed-deco { position: relative; }
.lbp-editorial .ed-deco::before, .lbp-editorial .ed-deco::after { content: ""; position: absolute; background-size: contain; background-repeat: no-repeat; pointer-events: none; z-index: -1; }
.lbp-editorial .ed-deco-bf-tr::after { width: 8rem; aspect-ratio: 1; top: -1rem; right: 0.5rem; background-image: url('../img/themes/joy/butterfly-vintage.png'); animation: ed-wiggle 3.5s ease-in-out infinite; }
.lbp-editorial .ed-deco-bf-orange::after { width: 7rem; aspect-ratio: 1; top: 1rem; right: 1rem; background-image: url('../img/themes/joy/butterfly-orange.png'); animation: ed-wiggle 4s ease-in-out infinite; }
.lbp-editorial .ed-deco-rose-tl::before { width: 9rem; aspect-ratio: 1; top: -2rem; left: -1.5rem; background-image: url('../img/themes/joy/rose-pink.png'); animation: ed-float 6s ease-in-out infinite; }
.lbp-editorial .ed-deco-marigold-br::after { width: 9rem; aspect-ratio: 1; bottom: -2rem; right: -1.5rem; background-image: url('../img/themes/joy/marigold-orange.png'); animation: ed-float 7s ease-in-out infinite; }
.lbp-editorial .ed-deco-anemone-bl::before { width: 8.5rem; aspect-ratio: 1; bottom: -1.5rem; left: -1rem; background-image: url('../img/themes/joy/anemone-purple.png'); animation: ed-float 6.5s ease-in-out infinite; }
.lbp-editorial .ed-deco-poppy-tr::after { width: 8rem; aspect-ratio: 1; top: -1.5rem; right: -1rem; background-image: url('../img/themes/joy/poppy-red.png'); animation: ed-float 6s ease-in-out infinite; }
@keyframes ed-float { 0%,100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-14px) rotate(4deg); } }
@keyframes ed-wiggle { 0%,100% { transform: rotate(-6deg); } 50% { transform: rotate(6deg); } }
@media (max-width: 900px) { .lbp-editorial .ed-deco::before, .lbp-editorial .ed-deco::after { display: none; } }
@media (prefers-reduced-motion: reduce) {
    .lbp-editorial .ed-deco::before, .lbp-editorial .ed-deco::after { animation: none !important; }
    .lbp-editorial .ed-marquee-track { animation: none !important; flex-wrap: wrap; width: auto; justify-content: center; }
    .lbp-editorial .ed-marquee-row { mask-image: none; -webkit-mask-image: none; }
    .lbp-editorial .ed-card, .lbp-editorial .ed-step, .lbp-editorial .ed-figure, .lbp-editorial .ed-quote, .lbp-editorial .ed-cta, .lbp-editorial .ed-stats, .lbp-editorial .ed-gallery a { transform: none !important; }
}

/* === Contraste garanti des titres sur fonds colorés ===
   Joy impose h2-h6 { color: ink !important } : on rétablit blanc sur fond foncé,
   encre sur fond clair, avec une spécificité supérieure + !important. */
body.lbp-themed .lbp-editorial .ed-cta h2,
body.lbp-themed .lbp-editorial .ed-quote blockquote,
body.lbp-themed .lbp-editorial .ed-quote cite,
body.lbp-themed .lbp-editorial .ed-card.bg-pink .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.solid-pink .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.bg-cobalt .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.solid-cobalt .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.bg-green .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.solid-green .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.bg-coral .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.solid-coral .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.bg-purple .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.solid-purple .ed-h3,
body.lbp-themed .lbp-editorial .ed-steps > .ed-step:nth-child(4n+1) h3,
body.lbp-themed .lbp-editorial .ed-steps > .ed-step:nth-child(4n+3) h3,
body.lbp-themed .lbp-editorial .ed-steps > .ed-step:nth-child(4n) h3 {
    color: #fff !important;
}
body.lbp-themed .lbp-editorial .ed-card.bg-yellow .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.solid-yellow .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.bg-teal .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.solid-teal .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.bg-marigold .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.solid-marigold .ed-h3,
body.lbp-themed .lbp-editorial .ed-card.bg-marigold p,
body.lbp-themed .lbp-editorial .ed-card.solid-marigold p,
body.lbp-themed .lbp-editorial .ed-card.bg-marigold li,
body.lbp-themed .lbp-editorial .ed-card.solid-marigold li,
body.lbp-themed .lbp-editorial .ed-steps > .ed-step:nth-child(4n+2) h3 {
    color: var(--ed-ink) !important;
}
body.lbp-themed .lbp-editorial .ed-card.bg-marigold li::before,
body.lbp-themed .lbp-editorial .ed-card.solid-marigold li::before {
    background: var(--ed-ink) !important;
}
/* Boutons : couleur de texte garantie (bat body.lbp-themed a + tout -webkit-text-fill-color) */
body.lbp-themed .lbp-editorial .ed-btn--primary,
body.lbp-themed .lbp-editorial a.ed-btn--primary {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
body.lbp-themed .lbp-editorial .ed-btn--ink,
body.lbp-themed .lbp-editorial a.ed-btn--ink {
    color: var(--ed-cream) !important;
    -webkit-text-fill-color: var(--ed-cream) !important;
}
body.lbp-themed .lbp-editorial .ed-btn--ghost,
body.lbp-themed .lbp-editorial a.ed-btn--ghost {
    color: var(--ed-ink) !important;
    -webkit-text-fill-color: var(--ed-ink) !important;
}
body.lbp-themed .lbp-editorial .ed-cta .ed-btn--primary {
    color: var(--ed-ink) !important;
    -webkit-text-fill-color: var(--ed-ink) !important;
}
body.lbp-themed .lbp-editorial .ed-cta .ed-btn--ghost {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

/* === Hero centré (comme faq.php) - spécificité maximale pour battre les règles .page-hero multiples de Joy.
   Joy met text-align:left + max-width:60rem/36rem + margin:0 sur h1/p -> boîte collée à gauche.
   On force center + margin:auto pour centrer la boîte sur la page. === */
html body.lbp-themed.lbp-themed.lbp-themed.page-sur-mesure .page-hero,
html body.lbp-themed.lbp-themed.lbp-themed.page-a-propos .page-hero {
    text-align: center !important;
}
html body.lbp-themed.lbp-themed.lbp-themed.page-sur-mesure .page-hero h1,
html body.lbp-themed.lbp-themed.lbp-themed.page-a-propos .page-hero h1,
html body.lbp-themed.lbp-themed.lbp-themed.page-sur-mesure .page-hero p,
html body.lbp-themed.lbp-themed.lbp-themed.page-a-propos .page-hero p {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
html body.lbp-themed.lbp-themed.lbp-themed.page-sur-mesure .page-hero .breadcrumb,
html body.lbp-themed.lbp-themed.lbp-themed.page-a-propos .page-hero .breadcrumb {
    justify-content: center !important;
    text-align: center !important;
}

.lbp-editorial .fade-in { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; }
.lbp-editorial .fade-in.visible { opacity: 1; transform: none; }

/* ============================================================
   "Bloom" facon bloc newsletter de l'accueil : deux fleurs en
   diagonale posees SUR la boite et DERRIERE le texte (z-index:-1
   dans le contexte d'empilement cree par le transform de la boite).
   Applique aux CTA et a la citation.
   ============================================================ */
@keyframes ed-spin-slow { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

.lbp-editorial .ed-quote { position: relative; }

.lbp-editorial .ed-cta--bloom::before,
.lbp-editorial .ed-quote--bloom::before {
    content: ""; position: absolute; z-index: 1; pointer-events: none;
    top: -2.6rem; left: -2.6rem; width: 9.5rem; aspect-ratio: 1;
    background: url('../img/themes/joy/marigold-orange.png') center / contain no-repeat;
    animation: ed-spin-slow 34s linear infinite;
}
.lbp-editorial .ed-cta--bloom::after,
.lbp-editorial .ed-quote--bloom::after {
    content: ""; position: absolute; z-index: 1; pointer-events: none;
    bottom: -2.8rem; right: -2.8rem; width: 10.5rem; aspect-ratio: 1;
    background: url('../img/themes/joy/anemone-purple.png') center / contain no-repeat;
    animation: ed-float 8s ease-in-out infinite;
}
/* La citation est plus petite : fleurs reduites */
.lbp-editorial .ed-quote--bloom::before { width: 7.5rem; top: -2rem; left: -2rem; }
.lbp-editorial .ed-quote--bloom::after  { width: 8rem;  bottom: -2.2rem; right: -2.2rem; }
/* Le contenu reste au-dessus des fleurs (facon newsletter : fleurs z1, contenu z2) */
.lbp-editorial .ed-cta--bloom > *, .lbp-editorial .ed-quote--bloom > * { position: relative; z-index: 2; }

/* Papillon pose sur la video (coin haut-gauche de la figure, au-dessus) */
.lbp-editorial .ed-figure--bf::after {
    content: ""; position: absolute; z-index: 3; pointer-events: none;
    top: -1.8rem; left: -1.6rem; width: 6.5rem; aspect-ratio: 1;
    background: url('../img/themes/joy/butterfly-vintage.png') center / contain no-repeat;
    animation: ed-wiggle 4.5s ease-in-out infinite;
}

@media (max-width: 900px) {
    .lbp-editorial .ed-cta--bloom::before, .lbp-editorial .ed-cta--bloom::after,
    .lbp-editorial .ed-quote--bloom::before, .lbp-editorial .ed-quote--bloom::after,
    .lbp-editorial .ed-figure--bf::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .lbp-editorial .ed-cta--bloom::before, .lbp-editorial .ed-cta--bloom::after,
    .lbp-editorial .ed-quote--bloom::before, .lbp-editorial .ed-quote--bloom::after,
    .lbp-editorial .ed-figure--bf::after { animation: none !important; }
}

/* ============================================================
   Texte riche editorial (.ed-rich) : champ unique multi-paragraphes,
   avec gras et liens (Histoire, etc.). Memes reglages que .ed-p.
   ============================================================ */
.lbp-editorial .ed-rich p { font-size: 1.06rem; line-height: 1.75; color: var(--ed-ink-soft); margin: 0 0 1rem; }
.lbp-editorial .ed-rich p:last-child { margin-bottom: 0; }
.lbp-editorial .ed-rich strong { color: var(--ed-ink); font-weight: 700; }
body.lbp-themed .lbp-editorial .ed-rich a {
    color: var(--ed-pink); -webkit-text-fill-color: var(--ed-pink);
    text-decoration: underline; text-underline-offset: 3px; font-weight: 600;
}
body.lbp-themed .lbp-editorial .ed-rich a:hover { color: var(--ed-ink); -webkit-text-fill-color: var(--ed-ink); }

/* ============================================================
   Decor de SECTION pilote par la mediatheque (image picker admin),
   meme principe que la page d'accueil : ::before (gauche, debord marge)
   et ::after (droite). Vide par defaut : var(--..., none) => aucune image
   tant qu'aucune n'est choisie dans l'admin. Override via render_css (:root).
   ============================================================ */
.lbp-editorial [class*="ed-sec-"] { position: relative; }
.lbp-editorial [class*="ed-sec-"]::before,
.lbp-editorial [class*="ed-sec-"]::after {
    content: ""; position: absolute; z-index: 1; pointer-events: none;
    width: clamp(108px, 14vw, 185px); aspect-ratio: 1;
    background-size: contain; background-repeat: no-repeat;
}
.lbp-editorial [class*="ed-sec-"]::before { top: 2rem; left: -1.5rem; animation: ed-float 7s ease-in-out infinite; }
.lbp-editorial [class*="ed-sec-"]::after  { bottom: 2rem; right: -1.5rem; animation: ed-float 8.5s ease-in-out infinite; }

.lbp-editorial .ed-sec-histoire::before    { background-image: var(--joy-bg-ap-histoire-before, none); }
.lbp-editorial .ed-sec-histoire::after     { background-image: var(--joy-bg-ap-histoire-after, none); }
.lbp-editorial .ed-sec-valeurs::before     { background-image: var(--joy-bg-ap-valeurs-before, none); }
.lbp-editorial .ed-sec-valeurs::after      { background-image: var(--joy-bg-ap-valeurs-after, none); }
.lbp-editorial .ed-sec-univers::before     { background-image: var(--joy-bg-ap-univers-before, none); }
.lbp-editorial .ed-sec-univers::after      { background-image: var(--joy-bg-ap-univers-after, none); }
.lbp-editorial .ed-sec-savoirfaire::before { background-image: var(--joy-bg-ap-savoirfaire-before, none); }
.lbp-editorial .ed-sec-savoirfaire::after  { background-image: var(--joy-bg-ap-savoirfaire-after, none); }
.lbp-editorial .ed-sec-parcours::before    { background-image: var(--joy-bg-ap-parcours-before, none); }
.lbp-editorial .ed-sec-parcours::after     { background-image: var(--joy-bg-ap-parcours-after, none); }

@media (max-width: 900px) {
    .lbp-editorial [class*="ed-sec-"]::before, .lbp-editorial [class*="ed-sec-"]::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .lbp-editorial [class*="ed-sec-"]::before, .lbp-editorial [class*="ed-sec-"]::after { animation: none !important; }
}

/* ============================================================
   Decor pilotable par la mediatheque pour le HERO (.page-hero, hors .lbp-editorial)
   et le BANDEAU FINAL (bloom). Scope page-a-propos pour ne pas toucher sur-mesure.
   Memes images par defaut que l'origine -> aucun changement visuel sans choix admin.
   ============================================================ */
body.lbp-themed.lbp-themed.page-a-propos .page-hero::before { background-image: var(--joy-bg-ap-hero-before, url('../img/themes/joy/butterfly-vintage.png')) !important; }
body.lbp-themed.lbp-themed.page-a-propos .page-hero::after  { background-image: var(--joy-bg-ap-hero-after, url('../img/themes/joy/anemone-purple-2.png')) !important; }

body.lbp-themed.page-a-propos .lbp-editorial .ed-cta--bloom::before { background-image: var(--joy-bg-ap-cta-before, url('../img/themes/joy/marigold-orange.png')) !important; }
body.lbp-themed.page-a-propos .lbp-editorial .ed-cta--bloom::after  { background-image: var(--joy-bg-ap-cta-after, url('../img/themes/joy/anemone-purple.png')) !important; }

/* ============================================================
   PAGE SUR MESURE - decorations pilotables par la mediatheque.
   Sections : ed-sec-* (memes regles de base que A propos).
   Hero + bloom CTA : scope page-sur-mesure (independant d'A propos).
   ============================================================ */
.lbp-editorial .ed-sec-creations::before    { background-image: var(--joy-bg-sm-creations-before, none); }
.lbp-editorial .ed-sec-creations::after     { background-image: var(--joy-bg-sm-creations-after, none); }
.lbp-editorial .ed-sec-etapes::before       { background-image: var(--joy-bg-sm-etapes-before, none); }
.lbp-editorial .ed-sec-etapes::after        { background-image: var(--joy-bg-sm-etapes-after, none); }
.lbp-editorial .ed-sec-realisations::before { background-image: var(--joy-bg-sm-realisations-before, none); }
.lbp-editorial .ed-sec-realisations::after  { background-image: var(--joy-bg-sm-realisations-after, none); }
.lbp-editorial .ed-sec-occasions::before    { background-image: var(--joy-bg-sm-occasions-before, none); }
.lbp-editorial .ed-sec-occasions::after     { background-image: var(--joy-bg-sm-occasions-after, none); }

/* Hero sur-mesure (memes images par defaut que l'origine) */
body.lbp-themed.lbp-themed.page-sur-mesure .page-hero::before { background-image: var(--joy-bg-sm-hero-before, url('../img/themes/joy/butterfly-vintage.png')) !important; }
body.lbp-themed.lbp-themed.page-sur-mesure .page-hero::after  { background-image: var(--joy-bg-sm-hero-after, url('../img/themes/joy/anemone-purple-2.png')) !important; }

/* Bloom du bandeau final sur-mesure (la citation garde son bloom fixe) */
body.lbp-themed.page-sur-mesure .lbp-editorial .ed-cta--bloom::before { background-image: var(--joy-bg-sm-cta-before, url('../img/themes/joy/marigold-orange.png')) !important; }
body.lbp-themed.page-sur-mesure .lbp-editorial .ed-cta--bloom::after  { background-image: var(--joy-bg-sm-cta-after, url('../img/themes/joy/anemone-purple.png')) !important; }

/* Bloom de la citation (témoignage) sur-mesure - pilotable par la médiathèque */
body.lbp-themed.page-sur-mesure .lbp-editorial .ed-quote--bloom::before { background-image: var(--joy-bg-sm-temoignage-before, url('../img/themes/joy/marigold-orange.png')) !important; }
body.lbp-themed.page-sur-mesure .lbp-editorial .ed-quote--bloom::after  { background-image: var(--joy-bg-sm-temoignage-after, url('../img/themes/joy/anemone-purple.png')) !important; }
