/* =============================================================
 * AsEditorialPages — Editorial Landings styles
 * Scoped under .editorial-landing wrapper to avoid bleeding into
 * the theme. Tokens come from the project-wide --as-* palette
 * already declared by alterfilters / classic-child. Tokens that
 * are not yet declared globally are introduced here under the
 * scope wrapper to avoid leaks.
 * Covers both "Made in France" (.editorial-mif) and
 * "Politique de recyclage" (.editorial-recyclage).
 * ============================================================= */

.editorial-landing {
    /* Scoped fallbacks (no leak outside this wrapper) */
    --as-bg: #F3F1F5;
    --as-bg-2: #EDEAF0;
    --as-surface: #FFFFFF;
    --as-surface-muted: #F7F6F9;
    --as-hairline: #E5E3EA;
    --as-hairline-2: #D7D4DC;
    --as-fg-1: #111111;
    --as-fg-2: #555461;
    --as-fg-3: #8A8794;
    --as-fg-on-dark-1: #FFFFFF;
    --as-fg-on-dark-2: #B8B6BE;
    --as-fg-on-dark-3: #6E6C74;
    --as-ink: #111111;
    --as-ink-2: #1A1A1A;
    --as-ink-3: #2A2A2A;
    --as-red: #E91E47;
    --as-red-600: #D21942;
    --as-red-100: #FDEAEF;
    --as-radius-xs: 4px;
    --as-radius-sm: 6px;
    --as-radius-md: 10px;
    --as-radius-lg: 16px;
    --as-radius-pill: 999px;
    --as-shadow-sm: 0 1px 2px rgba(17, 17, 17, 0.04), 0 1px 1px rgba(17, 17, 17, 0.03);
    --as-shadow-md: 0 4px 12px rgba(17, 17, 17, 0.06), 0 1px 2px rgba(17, 17, 17, 0.04);
    --as-shadow-lg: 0 12px 32px rgba(17, 17, 17, 0.10), 0 2px 6px rgba(17, 17, 17, 0.04);
    --as-space-1: 4px; --as-space-2: 8px; --as-space-3: 12px;
    --as-space-4: 16px; --as-space-5: 20px; --as-space-6: 24px;
    --as-space-8: 32px; --as-space-10: 40px; --as-space-12: 48px;
    --as-space-16: 64px; --as-space-20: 80px;
    --as-text-xs: 12px; --as-text-sm: 13px; --as-text-base: 15px;
    --as-text-md: 16px; --as-text-lg: 18px; --as-text-xl: 20px;
    --as-text-2xl: 24px; --as-text-3xl: 28px; --as-text-4xl: 32px;
    --as-weight-regular: 400; --as-weight-medium: 500;
    --as-weight-semi: 600; --as-weight-bold: 700;
    --as-leading-tight: 1.15; --as-leading-snug: 1.3; --as-leading-normal: 1.5;
    --as-track-tight: -0.01em; --as-track-label: 0.08em; --as-track-wide: 0.14em;
    --as-ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
    --as-dur-fast: 120ms; --as-dur-med: 200ms; --as-dur-slow: 320ms;
    --as-container: 1240px; --as-gutter: 24px;
    --as-font-sans: 'DM Sans', 'Inter', ui-sans-serif, system-ui, sans-serif;
    --as-font-mono: ui-monospace, 'SF Mono', Menlo, monospace;

    /* Page-level greens (sober, lab-leaning) */
    --acc: #1F8A5B;
    --acc-soft: #E6F2EC;
    --acc-ink: #145B3D;

    background: var(--as-bg);
    color: var(--as-fg-1);
    font-family: var(--as-font-sans);
    font-size: var(--as-text-base);
    line-height: var(--as-leading-normal);
    -webkit-font-smoothing: antialiased;
}

.editorial-landing *,
.editorial-landing *::before,
.editorial-landing *::after { box-sizing: border-box; }
.editorial-landing img,
.editorial-landing svg { display: block; max-width: 100%; }
.editorial-landing a { color: inherit; text-decoration: none; }
.editorial-landing button { font: inherit; cursor: pointer; }

.editorial-landing .container {
    max-width: var(--as-container);
    margin: 0 auto;
    padding: 0 var(--as-gutter);
}

/* ============================================================
   HERO
   ============================================================ */
.editorial-landing .el-hero {
    padding: var(--as-space-10) 0 var(--as-space-12);
    position: relative;
}
.editorial-landing .el-hero-grid {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: var(--as-space-16);
    align-items: center;
}
.editorial-landing .el-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 6px 12px 6px 8px;
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-pill);
    font-size: var(--as-text-xs);
    font-weight: var(--as-weight-semi);
    letter-spacing: var(--as-track-label);
    text-transform: uppercase;
    color: var(--as-fg-2);
    margin-bottom: var(--as-space-6);
}
.editorial-landing .el-hero-eyebrow .flag {
    width: 18px; height: 12px;
    background: linear-gradient(to right, #0055A4 33.33%, #fff 33.33% 66.66%, #EF4135 66.66%);
    border-radius: 2px;
}
.editorial-recyclage .el-hero-eyebrow .flag {
    background: linear-gradient(135deg, #1F8A5B 0%, #145B3D 100%);
}
.editorial-landing .el-hero-eyebrow .ref {
    color: var(--as-fg-3);
    font-weight: var(--as-weight-medium);
    letter-spacing: 0;
    text-transform: none;
    margin-left: 4px;
}
.editorial-landing .el-h1 {
    font-size: clamp(34px, 4vw, 52px);
    font-weight: var(--as-weight-bold);
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: var(--as-fg-1);
    margin: 0 0 var(--as-space-6);
    text-wrap: balance;
}
.editorial-landing .el-h1 .underline {
    position: relative;
    white-space: nowrap;
}
.editorial-landing .el-h1 .underline::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: -2px;
    height: 6px;
    background: var(--as-red);
    opacity: 0.18;
    border-radius: 2px;
}
.editorial-landing .el-hero-lede {
    font-size: var(--as-text-lg);
    color: var(--as-fg-2);
    line-height: 1.55;
    max-width: 540px;
    margin: 0 0 var(--as-space-8);
    text-wrap: pretty;
}
.editorial-landing .el-hero-badges {
    display: flex; flex-wrap: wrap;
    gap: 8px;
    margin-bottom: var(--as-space-8);
}
.editorial-landing .el-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-pill);
    font-size: var(--as-text-sm);
    color: var(--as-fg-1);
    font-weight: var(--as-weight-medium);
}
.editorial-landing .el-badge .dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--acc);
}
.editorial-landing .el-badge.age .dot { background: var(--as-red); }
.editorial-landing .el-hero-cta {
    display: flex; flex-wrap: wrap; gap: 12px;
}
.editorial-landing .el-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    height: 48px;
    padding: 0 22px;
    border-radius: var(--as-radius-sm);
    font-weight: var(--as-weight-semi);
    font-size: 15px;
    border: 0;
    transition: transform var(--as-dur-fast) var(--as-ease-out),
                background var(--as-dur-fast) var(--as-ease-out);
    text-decoration: none;
}
.editorial-landing .el-btn:hover { transform: translateY(-1px); }
.editorial-landing .el-btn-primary { background: var(--as-red); color: #fff; }
.editorial-landing .el-btn-primary:hover { background: var(--as-red-600); color: #fff; }
.editorial-landing .el-btn-ghost {
    background: transparent;
    color: var(--as-fg-1);
    border: 1px solid var(--as-hairline-2);
}
.editorial-landing .el-btn-ghost:hover { border-color: var(--as-fg-1); color: var(--as-fg-1); }
.editorial-landing .el-btn .arrow { transition: transform var(--as-dur-fast) var(--as-ease-out); }
.editorial-landing .el-btn:hover .arrow { transform: translateX(3px); }

/* Hero visual (decorative flacon + lab cards) */
.editorial-landing .el-hero-visual {
    position: relative;
    aspect-ratio: 5/6;
    background: linear-gradient(180deg, #fff 0%, #F7F6F9 100%);
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-lg);
    overflow: hidden;
    box-shadow: var(--as-shadow-md);
}
.editorial-landing .el-hero-visual::before {
    content: "";
    position: absolute; inset: 0;
    background-image:
        linear-gradient(to right, rgba(17,17,17,0.035) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(17,17,17,0.035) 1px, transparent 1px);
    background-size: 24px 24px;
}
.editorial-landing .el-hero-flacon {
    position: absolute;
    left: 50%; top: 52%;
    transform: translate(-50%, -50%);
    width: 56%;
    filter: drop-shadow(0 30px 40px rgba(17,17,17,0.15));
}
.editorial-landing .el-lab-card {
    position: absolute;
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-md);
    box-shadow: var(--as-shadow-md);
    padding: 12px 14px;
    font-size: var(--as-text-xs);
    color: var(--as-fg-1);
    display: flex; align-items: center; gap: 10px;
    max-width: 220px;
}
.editorial-landing .el-lab-card .meta {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: var(--as-track-label);
    color: var(--as-fg-3);
    margin-bottom: 2px;
}
.editorial-landing .el-lab-card .val { font-weight: var(--as-weight-semi); }
.editorial-landing .el-lab-card.tl { top: 24px; left: 24px; }
.editorial-landing .el-lab-card.br { right: 24px; bottom: 24px; }
.editorial-landing .el-lab-card.mr { right: 18px; top: 35%; max-width: 180px; }
.editorial-landing .el-lab-card .swatch {
    width: 28px; height: 28px;
    border-radius: 6px;
    background: linear-gradient(135deg, #C9A570, #8E6A3A);
}
.editorial-landing .el-lab-card .badge-check {
    width: 24px; height: 24px;
    border-radius: 50%;
    background: var(--acc-soft);
    color: var(--acc);
    display: grid; place-items: center;
    font-weight: 700;
}

/* Recycling 2x2 tile grid (recyclage hero) */
.editorial-recyclage .el-tile-grid {
    position: absolute; inset: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 14px;
    padding: 14%;
}
.editorial-recyclage .el-tile {
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-md);
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 8px;
    position: relative;
    box-shadow: var(--as-shadow-sm);
}
.editorial-recyclage .el-tile-label {
    font-size: 11px; font-weight: 600;
    color: #111;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.editorial-recyclage .el-tile-pill {
    position: absolute; top: 10px; right: 10px;
    font-size: 9px;
    padding: 3px 7px;
    border-radius: 99px;
    font-weight: 700;
    letter-spacing: 0.5px;
}

/* ============================================================
   SECTION SCAFFOLD (bloc, sec-head)
   ============================================================ */
.editorial-landing .el-bloc {
    padding: var(--as-space-16) 0;
    border-top: 1px solid var(--as-hairline);
}
.editorial-landing .el-bloc.dark {
    background: var(--as-ink);
    color: var(--as-fg-on-dark-1);
    border-top: 0;
}
.editorial-landing .el-bloc.bg-2 { background: var(--as-bg-2); }
.editorial-landing .el-bloc.white { background: #fff; }

.editorial-landing .el-sec-head {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: var(--as-space-12);
    margin-bottom: var(--as-space-12);
}
.editorial-landing .el-sec-num {
    font-family: var(--as-font-mono);
    font-size: var(--as-text-sm);
    color: var(--as-red);
    letter-spacing: var(--as-track-label);
    font-weight: var(--as-weight-semi);
    text-transform: uppercase;
}
.editorial-landing .el-sec-num .slash { color: var(--as-fg-3); margin: 0 6px; }
.editorial-landing .el-sec-num .meta  { color: var(--as-fg-3); font-weight: var(--as-weight-medium); }
.editorial-landing .el-bloc.dark .el-sec-num .slash,
.editorial-landing .el-bloc.dark .el-sec-num .meta { color: var(--as-fg-on-dark-3); }
.editorial-landing .el-sec-title {
    font-size: clamp(28px, 3vw, 40px);
    font-weight: var(--as-weight-bold);
    line-height: 1.1;
    letter-spacing: -0.015em;
    margin: 12px 0 var(--as-space-4);
    text-wrap: balance;
}
.editorial-landing .el-bloc.dark .el-sec-title { color: #fff; }
.editorial-landing .el-sec-kicker {
    font-size: var(--as-text-lg);
    color: var(--as-fg-2);
    line-height: 1.55;
    max-width: 720px;
    text-wrap: pretty;
}
.editorial-landing .el-bloc.dark .el-sec-kicker { color: var(--as-fg-on-dark-2); }

/* ============================================================
   WHY / ENGAGEMENTS GRID (4 cards)
   ============================================================ */
.editorial-landing .el-why-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--as-space-5);
}
.editorial-landing .el-why-card {
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-md);
    padding: var(--as-space-6);
    min-height: 220px;
    display: flex; flex-direction: column;
    gap: var(--as-space-4);
}
.editorial-landing .el-why-icon {
    width: 44px; height: 44px;
    border-radius: var(--as-radius-sm);
    background: var(--as-surface-muted);
    color: var(--as-fg-1);
    display: grid; place-items: center;
}
.editorial-landing .el-why-card h3 {
    margin: 0;
    font-size: var(--as-text-lg);
    font-weight: var(--as-weight-semi);
    color: var(--as-fg-1);
}
.editorial-landing .el-why-card p {
    margin: 0;
    color: var(--as-fg-2);
    font-size: var(--as-text-sm);
    line-height: 1.55;
}

.editorial-landing .el-nuance {
    margin-top: var(--as-space-10);
    padding: var(--as-space-6) var(--as-space-8);
    background: #fff;
    border-left: 3px solid var(--as-fg-3);
    border-radius: 0 var(--as-radius-md) var(--as-radius-md) 0;
    color: var(--as-fg-1);
    font-size: var(--as-text-lg);
    line-height: 1.5;
    max-width: 880px;
    font-style: italic;
}
.editorial-landing .el-nuance .label {
    display: block;
    font-style: normal;
    font-size: var(--as-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--as-track-label);
    color: var(--as-fg-3);
    font-weight: var(--as-weight-semi);
    margin-bottom: 8px;
}

/* ============================================================
   FAB / STATS (Fabrication MIF)
   ============================================================ */
.editorial-landing .el-fab {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--as-space-12);
    align-items: center;
}
.editorial-landing .el-fab-image {
    aspect-ratio: 4/3;
    background: linear-gradient(135deg, #1A1A1A 0%, #2A2A2A 100%);
    border-radius: var(--as-radius-lg);
    position: relative;
    overflow: hidden;
    color: var(--as-fg-on-dark-3);
}
.editorial-landing .el-fab-image::after {
    content: attr(data-alt);
    position: absolute;
    inset: 0;
    display: grid; place-items: center;
    font-size: var(--as-text-sm);
    letter-spacing: var(--as-track-label);
    text-transform: uppercase;
    opacity: 0.5;
}
.editorial-landing .el-fab-image::before {
    content: "";
    position: absolute; inset: 0;
    background:
        radial-gradient(circle at 25% 30%, rgba(255,255,255,0.06) 0%, transparent 35%),
        radial-gradient(circle at 80% 70%, rgba(233,30,71,0.10) 0%, transparent 40%);
}
.editorial-landing .el-fab-copy h3 {
    font-size: var(--as-text-3xl);
    font-weight: var(--as-weight-bold);
    margin: 0 0 var(--as-space-4);
    letter-spacing: -0.015em;
    line-height: 1.15;
    text-wrap: balance;
}
.editorial-landing .el-fab-copy p {
    color: var(--as-fg-2);
    font-size: var(--as-text-md);
    line-height: 1.6;
    margin: 0 0 var(--as-space-5);
}
.editorial-landing .el-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin-top: var(--as-space-8);
    border-top: 1px solid var(--as-hairline);
    border-bottom: 1px solid var(--as-hairline);
}
.editorial-landing .el-stat {
    padding: var(--as-space-5) 0;
    padding-right: var(--as-space-5);
}
.editorial-landing .el-stat + .el-stat {
    padding-left: var(--as-space-5);
    border-left: 1px solid var(--as-hairline);
}
.editorial-landing .el-stat .val {
    font-size: 36px;
    font-weight: var(--as-weight-bold);
    letter-spacing: -0.02em;
    color: var(--as-fg-1);
    line-height: 1;
    margin-bottom: 6px;
}
.editorial-landing .el-stat .val sup {
    font-size: 14px;
    color: var(--as-fg-3);
    font-weight: var(--as-weight-medium);
    margin-left: 2px;
    vertical-align: super;
}
.editorial-landing .el-stat .lab {
    font-size: var(--as-text-sm);
    color: var(--as-fg-2);
    line-height: 1.4;
}

/* ============================================================
   ORIGIN (table + map + quote — MIF only)
   ============================================================ */
.editorial-landing .el-origin {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: var(--as-space-12);
}
.editorial-landing .el-origin-table {
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-md);
    overflow: hidden;
}
.editorial-landing .el-origin-row {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: var(--as-space-4);
    padding: var(--as-space-5) var(--as-space-6);
    border-top: 1px solid var(--as-hairline);
}
.editorial-landing .el-origin-row:first-child { border-top: 0; }
.editorial-landing .el-origin-row .name { font-weight: var(--as-weight-semi); color: var(--as-fg-1); }
.editorial-landing .el-origin-row .sub  { font-size: var(--as-text-sm); color: var(--as-fg-3); margin-top: 2px; }
.editorial-landing .el-origin-pill {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 6px 12px;
    border-radius: var(--as-radius-pill);
    font-size: var(--as-text-sm);
    font-weight: var(--as-weight-semi);
}
.editorial-landing .el-origin-pill.fr { background: #F0EAF5; color: #4B2A6E; }
.editorial-landing .el-origin-pill.eu { background: var(--acc-soft); color: var(--acc-ink); }

.editorial-landing .el-map-card {
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-md);
    padding: var(--as-space-6);
    display: flex; flex-direction: column;
    gap: var(--as-space-5);
}
.editorial-landing .el-map-card h4 {
    margin: 0;
    font-size: var(--as-text-md);
    font-weight: var(--as-weight-semi);
}
.editorial-landing .el-map-card .kicker {
    font-size: var(--as-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--as-track-label);
    color: var(--as-red);
    font-weight: var(--as-weight-semi);
    margin-bottom: 4px;
}
.editorial-landing .el-map-card .sub { color: var(--as-fg-3); font-size: var(--as-text-sm); margin: 0; }
.editorial-landing .el-map-svg {
    flex: 1;
    min-height: 280px;
    display: grid; place-items: center;
}
.editorial-landing .el-map-svg svg { width: 100%; height: auto; max-width: 380px; }
.editorial-landing .el-map-legend {
    display: flex; gap: var(--as-space-5); font-size: var(--as-text-sm);
    color: var(--as-fg-2);
}
.editorial-landing .el-map-legend .l-sw {
    width: 10px; height: 10px; border-radius: 50%; margin-right: 6px;
    display: inline-block; vertical-align: middle;
}

.editorial-landing .el-quote-block {
    margin-top: var(--as-space-10);
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-lg);
    padding: var(--as-space-8);
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--as-space-6);
    align-items: center;
}
.editorial-landing .el-quote-block .qmark {
    font-family: serif;
    font-size: 88px;
    line-height: 0.7;
    color: var(--as-red);
    opacity: 0.6;
}
.editorial-landing .el-quote-block p {
    margin: 0;
    font-size: var(--as-text-xl);
    line-height: 1.4;
    color: var(--as-fg-1);
    font-weight: var(--as-weight-medium);
    letter-spacing: -0.005em;
    text-wrap: pretty;
}

/* ============================================================
   TIMELINE (Contrôles MIF)
   ============================================================ */
.editorial-landing .el-timeline {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    position: relative;
}
.editorial-landing .el-timeline::before {
    content: "";
    position: absolute;
    left: 5%; right: 5%;
    top: 28px;
    height: 1px;
    background: var(--as-hairline-2);
    z-index: 0;
}
.editorial-landing .el-step {
    text-align: left;
    padding: 0 var(--as-space-3);
    position: relative;
    z-index: 1;
}
.editorial-landing .el-step-num {
    width: 56px; height: 56px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--as-hairline);
    display: grid; place-items: center;
    font-weight: var(--as-weight-bold);
    font-size: var(--as-text-lg);
    color: var(--as-fg-1);
    margin-bottom: var(--as-space-5);
    box-shadow: var(--as-shadow-sm);
    position: relative;
}
.editorial-landing .el-step-num::after {
    content: "";
    position: absolute;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--acc);
    top: -4px; right: -4px;
    border: 2px solid var(--as-bg);
}
.editorial-landing .el-step h4 {
    margin: 0 0 8px;
    font-size: var(--as-text-md);
    font-weight: var(--as-weight-semi);
}
.editorial-landing .el-step p {
    margin: 0;
    font-size: var(--as-text-sm);
    color: var(--as-fg-2);
    line-height: 1.5;
}

/* ============================================================
   FLACON ANNOTATED (MIF + Recyclage)
   ============================================================ */
.editorial-landing .el-flacon-section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--as-space-12);
    align-items: stretch;
}
.editorial-landing .el-flacon-canvas {
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-lg);
    padding: var(--as-space-8);
    position: relative;
    min-height: 540px;
    display: grid;
    place-items: center;
}
.editorial-landing .el-flacon-canvas::before {
    content: "";
    position: absolute; inset: 24px;
    border: 1px dashed var(--as-hairline);
    border-radius: var(--as-radius-md);
    pointer-events: none;
}
.editorial-landing .el-flacon-svg { width: 200px; height: auto; position: relative; z-index: 1; }
.editorial-landing .el-anno {
    position: absolute;
    display: flex; align-items: center; gap: 10px;
    font-size: var(--as-text-sm);
    color: var(--as-fg-1);
    font-weight: var(--as-weight-medium);
}
.editorial-landing .el-anno .line {
    width: 60px; height: 1px;
    background: var(--as-fg-3);
    position: relative;
}
.editorial-landing .el-anno .line::before,
.editorial-landing .el-anno .line::after {
    content: ""; position: absolute;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--as-fg-1);
    top: -2.5px;
}
.editorial-landing .el-anno .line::before { left: -3px; }
.editorial-landing .el-anno .line::after  { right: -3px; background: var(--as-fg-3); }
.editorial-landing .el-anno.left  { right: 50%; margin-right: 90px; }
.editorial-landing .el-anno.left .line { order: 2; }
.editorial-landing .el-anno.right { left: 50%; margin-left: 90px; }
.editorial-landing .el-anno-a { top: 14%; }
.editorial-landing .el-anno-b { top: 28%; }
.editorial-landing .el-anno-c { top: 50%; }
.editorial-landing .el-anno-d { top: 68%; }

.editorial-landing .el-flacon-list {
    display: flex; flex-direction: column;
    gap: var(--as-space-4);
    align-self: center;
}
.editorial-landing .el-flac-item {
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: var(--as-space-4);
    padding: var(--as-space-4) 0;
    border-bottom: 1px solid var(--as-hairline);
}
.editorial-landing .el-flac-item:last-child { border-bottom: 0; }
.editorial-landing .el-flac-num {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: var(--as-ink);
    color: #fff;
    display: grid; place-items: center;
    font-size: var(--as-text-sm);
    font-weight: var(--as-weight-bold);
}
.editorial-landing .el-flac-item h4 {
    margin: 4px 0 4px;
    font-size: var(--as-text-md);
    font-weight: var(--as-weight-semi);
}
.editorial-landing .el-flac-item p {
    margin: 0;
    font-size: var(--as-text-sm);
    color: var(--as-fg-2);
    line-height: 1.55;
}

/* ============================================================
   RESPONSIBILITÉ (dark — MIF)
   ============================================================ */
.editorial-landing .el-resp {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--as-space-16);
    align-items: center;
}
.editorial-landing .el-resp-mark {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--as-space-6);
}
.editorial-landing .el-age-mark {
    width: 140px; height: 140px;
    border-radius: 50%;
    border: 3px solid #fff;
    display: grid; place-items: center;
    font-weight: var(--as-weight-bold);
    font-size: 56px;
    color: #fff;
    letter-spacing: -0.04em;
    line-height: 1;
}
.editorial-landing .el-age-mark sup { font-size: 22px; vertical-align: super; margin-left: -4px; }
.editorial-landing .el-resp h3 {
    font-size: var(--as-text-3xl);
    font-weight: var(--as-weight-bold);
    color: #fff;
    margin: 0 0 var(--as-space-4);
    line-height: 1.15;
    letter-spacing: -0.015em;
}
.editorial-landing .el-resp p {
    color: var(--as-fg-on-dark-2);
    font-size: var(--as-text-md);
    line-height: 1.6;
    margin: 0 0 var(--as-space-4);
}
.editorial-landing .el-resp ul {
    list-style: none;
    padding: 0; margin: var(--as-space-5) 0 0;
    display: flex; flex-direction: column; gap: 10px;
}
.editorial-landing .el-resp ul li {
    color: var(--as-fg-on-dark-1);
    font-size: var(--as-text-md);
    display: flex; align-items: flex-start; gap: 12px;
    padding: 10px 0;
    border-top: 1px solid var(--as-ink-3);
}
.editorial-landing .el-resp ul li:first-child { border-top: 0; }
.editorial-landing .el-resp ul li svg {
    flex-shrink: 0;
    color: var(--as-red);
    margin-top: 3px;
}

/* ============================================================
   GAMMES (MIF)
   ============================================================ */
.editorial-landing .el-gammes {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--as-space-5);
}
.editorial-landing .el-gamme-card {
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-md);
    overflow: hidden;
    display: flex; flex-direction: column;
    transition: transform var(--as-dur-med) var(--as-ease-out),
                box-shadow var(--as-dur-med) var(--as-ease-out),
                border-color var(--as-dur-med) var(--as-ease-out);
}
.editorial-landing .el-gamme-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--as-shadow-lg);
    border-color: var(--as-hairline-2);
}
.editorial-landing .el-gamme-img {
    aspect-ratio: 4/3;
    position: relative;
    overflow: hidden;
}
.editorial-landing .el-gamme-img.tabac  { background: linear-gradient(135deg, #6B4F2C, #2F2117); }
.editorial-landing .el-gamme-img.menthe { background: linear-gradient(135deg, #0E7C5C, #053D2C); }
.editorial-landing .el-gamme-img.fruite { background: linear-gradient(135deg, #D63E5E, #6B1726); }
.editorial-landing .el-gamme-img.zero   { background: linear-gradient(135deg, #4A5160, #1F242E); }
.editorial-landing .el-gamme-img::after {
    content: attr(data-emoji);
    position: absolute;
    inset: 0;
    display: grid; place-items: center;
    font-size: 64px;
    opacity: 0.85;
    filter: grayscale(0.2) drop-shadow(0 8px 20px rgba(0,0,0,0.3));
}
.editorial-landing .el-gamme-body {
    padding: var(--as-space-5);
    display: flex; flex-direction: column; gap: 6px;
    flex: 1;
}
.editorial-landing .el-gamme-body .kicker {
    font-size: var(--as-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--as-track-label);
    color: var(--as-fg-3);
    font-weight: var(--as-weight-semi);
}
.editorial-landing .el-gamme-body h4 {
    margin: 2px 0 4px;
    font-size: var(--as-text-lg);
    font-weight: var(--as-weight-semi);
}
.editorial-landing .el-gamme-body p {
    margin: 0 0 var(--as-space-4);
    font-size: var(--as-text-sm);
    color: var(--as-fg-2);
    flex: 1;
}
.editorial-landing .el-gamme-link {
    font-size: var(--as-text-sm);
    color: var(--as-red);
    font-weight: var(--as-weight-semi);
    display: inline-flex; align-items: center; gap: 6px;
}

/* ============================================================
   FAQ (MIF + Recyclage)
   ============================================================ */
.editorial-landing .el-faq-grid {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--as-space-12);
}
.editorial-landing .el-faq-aside h3 {
    font-size: var(--as-text-2xl);
    font-weight: var(--as-weight-bold);
    margin: 12px 0 var(--as-space-4);
    line-height: 1.15;
}
.editorial-landing .el-faq-aside p {
    color: var(--as-fg-2);
    font-size: var(--as-text-sm);
    margin: 0 0 var(--as-space-5);
}
.editorial-landing .el-help-card {
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-md);
    padding: var(--as-space-5);
    margin-top: var(--as-space-6);
}
.editorial-landing .el-help-card .kicker {
    font-size: var(--as-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--as-track-label);
    color: var(--as-fg-3);
    font-weight: var(--as-weight-semi);
    margin-bottom: 6px;
}
.editorial-landing .el-help-card h4 {
    font-size: var(--as-text-md); margin: 0 0 6px;
}
.editorial-landing .el-help-card .help-text {
    margin: 6px 0 12px;
    font-size: var(--as-text-sm);
    color: var(--as-fg-2);
}
.editorial-landing .el-help-card a {
    color: var(--as-red); font-weight: var(--as-weight-semi);
    font-size: var(--as-text-sm);
}

.editorial-landing .el-faq-list { display: flex; flex-direction: column; gap: 0; }
.editorial-landing .el-faq {
    border-top: 1px solid var(--as-hairline);
    padding: 0;
}
.editorial-landing .el-faq:last-child { border-bottom: 1px solid var(--as-hairline); }
.editorial-landing .el-faq summary {
    list-style: none;
    cursor: pointer;
    padding: var(--as-space-5) 0;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: var(--as-space-4);
    align-items: center;
    font-size: var(--as-text-lg);
    font-weight: var(--as-weight-semi);
    color: var(--as-fg-1);
}
.editorial-landing .el-faq summary::-webkit-details-marker { display: none; }
.editorial-landing .el-faq summary .q-num {
    font-family: var(--as-font-mono);
    font-size: var(--as-text-sm);
    color: var(--as-fg-3);
    font-weight: var(--as-weight-medium);
    width: 32px;
}
.editorial-landing .el-faq summary .chev {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--as-surface-muted);
    display: grid; place-items: center;
    color: var(--as-fg-1);
    transition: transform var(--as-dur-fast) var(--as-ease-out),
                background var(--as-dur-fast) var(--as-ease-out);
}
.editorial-landing .el-faq[open] summary .chev {
    transform: rotate(45deg);
    background: var(--as-ink);
    color: #fff;
}
.editorial-landing .el-faq .answer {
    padding: 0 0 var(--as-space-6) calc(32px + var(--as-space-4));
    color: var(--as-fg-2);
    font-size: var(--as-text-md);
    line-height: 1.65;
    max-width: 760px;
}
.editorial-landing .el-faq .answer p { margin: 0 0 12px; }
.editorial-landing .el-faq .answer p:last-child { margin-bottom: 0; }
.editorial-landing .el-faq .answer strong { color: var(--as-fg-1); }

/* ============================================================
   PREFOOTER (MIF + Recyclage)
   ============================================================ */
.editorial-landing .el-prefooter {
    background: var(--as-bg);
    padding: var(--as-space-12) 0 var(--as-space-10);
    border-top: 1px solid var(--as-hairline);
}
.editorial-landing .el-pf-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--as-space-8);
}
.editorial-landing .el-pf-item h4 {
    margin: var(--as-space-3) 0 8px;
    font-size: var(--as-text-md);
    font-weight: var(--as-weight-semi);
}
.editorial-landing .el-pf-item p {
    margin: 0;
    font-size: var(--as-text-sm);
    color: var(--as-fg-2);
    line-height: 1.55;
}
.editorial-landing .el-pf-icon { color: var(--as-red); }

/* ============================================================
   TRI TABLE (Recyclage — Où jeter quoi)
   ============================================================ */
.editorial-landing .el-tri-table {
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-lg);
    overflow: hidden;
    box-shadow: var(--as-shadow-sm);
}
.editorial-landing .el-tri-head,
.editorial-landing .el-tri-row {
    display: grid;
    grid-template-columns: 1.4fr 1.6fr 1.4fr;
    gap: var(--as-space-5);
    padding: var(--as-space-5) var(--as-space-6);
    align-items: start;
}
.editorial-landing .el-tri-head {
    background: var(--as-ink);
    color: var(--as-fg-on-dark-2);
    font-size: var(--as-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--as-track-label);
    font-weight: var(--as-weight-semi);
    padding-top: var(--as-space-4);
    padding-bottom: var(--as-space-4);
}
.editorial-landing .el-tri-head .col-1 { color: #fff; }
.editorial-landing .el-tri-row {
    border-top: 1px solid var(--as-hairline);
    transition: background var(--as-dur-fast) var(--as-ease-out);
}
.editorial-landing .el-tri-row:hover { background: var(--as-bg-2); }
.editorial-landing .el-tri-row .product {
    display: flex; align-items: flex-start; gap: 14px;
}
.editorial-landing .el-tri-row .product-ico {
    width: 40px; height: 40px;
    border-radius: var(--as-radius-sm);
    background: var(--as-surface-muted);
    flex-shrink: 0;
    display: grid; place-items: center;
    color: var(--as-fg-1);
}
.editorial-landing .el-tri-row .product-name {
    font-weight: var(--as-weight-semi);
    color: var(--as-fg-1);
    font-size: var(--as-text-md);
    line-height: 1.3;
    margin-bottom: 4px;
}
.editorial-landing .el-tri-row .product-meta {
    font-size: var(--as-text-xs);
    color: var(--as-fg-3);
    text-transform: uppercase;
    letter-spacing: var(--as-track-label);
    font-weight: var(--as-weight-semi);
}
.editorial-landing .el-tri-row .geste {
    font-size: var(--as-text-sm);
    color: var(--as-fg-1);
    line-height: 1.55;
}
.editorial-landing .el-tri-row .geste strong { font-weight: var(--as-weight-semi); }
.editorial-landing .el-tri-row .warn {
    font-size: var(--as-text-sm);
    color: var(--as-fg-2);
    line-height: 1.5;
    padding-left: 18px;
    position: relative;
}
.editorial-landing .el-tri-row .warn::before {
    content: "!";
    position: absolute; left: 0; top: 1px;
    width: 14px; height: 14px;
    border-radius: 50%;
    background: var(--as-red);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    display: grid; place-items: center;
    line-height: 1;
}

.editorial-landing .el-filiere-tag {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 3px 8px 3px 6px;
    border-radius: var(--as-radius-pill);
    font-size: 11px;
    font-weight: var(--as-weight-semi);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 6px;
}
.editorial-landing .el-filiere-tag .ico {
    width: 14px; height: 14px;
    border-radius: 50%;
    display: grid; place-items: center;
    font-size: 9px;
}
.editorial-landing .filiere-tri     { background: #F0EAF5; color: #4B2A6E; }
.editorial-landing .filiere-tri    .ico { background: #9176B5; color: #fff; }
.editorial-landing .filiere-papier  { background: #FFF4E0; color: #8A5A18; }
.editorial-landing .filiere-papier .ico { background: #C28A2F; color: #fff; }
.editorial-landing .filiere-piles   { background: #FEE7E9; color: #9B1C2A; }
.editorial-landing .filiere-piles  .ico { background: var(--as-red); color: #fff; }
.editorial-landing .filiere-deee    { background: var(--acc-soft); color: var(--acc-ink); }
.editorial-landing .filiere-deee   .ico { background: var(--acc); color: #fff; }
.editorial-landing .filiere-special { background: var(--as-surface-muted); color: var(--as-fg-1); }
.editorial-landing .filiere-special .ico { background: var(--as-ink); color: #fff; }

.editorial-landing .el-tri-sources {
    margin-top: var(--as-space-6);
    font-size: var(--as-text-sm);
    color: var(--as-fg-3);
    max-width: 720px;
}

/* ============================================================
   DEEE FLOW (Recyclage)
   ============================================================ */
.editorial-landing .el-deee-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--as-space-12);
    align-items: stretch;
}
.editorial-landing .el-deee-card {
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-lg);
    padding: var(--as-space-8);
    display: flex;
    flex-direction: column;
    gap: var(--as-space-5);
}
.editorial-landing .el-deee-card .head {
    display: flex; align-items: center; gap: 14px;
}
.editorial-landing .el-deee-card .ico-circle {
    width: 48px; height: 48px;
    border-radius: var(--as-radius-md);
    background: var(--acc-soft);
    color: var(--acc-ink);
    display: grid; place-items: center;
}
.editorial-landing .el-deee-card.battery .ico-circle {
    background: #fff;
    color: var(--as-red);
    border: 1px solid #F4B5BB;
}
.editorial-landing .el-deee-card .kicker {
    font-size: var(--as-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--as-track-label);
    color: var(--acc-ink);
    font-weight: var(--as-weight-semi);
    margin-bottom: 2px;
}
.editorial-landing .el-deee-card.battery .kicker { color: var(--as-red); }
.editorial-landing .el-deee-card h3 {
    margin: 0;
    font-size: var(--as-text-2xl);
    font-weight: var(--as-weight-bold);
    letter-spacing: -0.01em;
    line-height: 1.15;
}
.editorial-landing .el-deee-card > p {
    margin: 0;
    color: var(--as-fg-2);
    font-size: var(--as-text-md);
    line-height: 1.6;
}
.editorial-landing .el-deee-options {
    display: flex; flex-direction: column;
    gap: var(--as-space-3);
    margin-top: var(--as-space-3);
}
.editorial-landing .el-deee-option {
    display: flex; align-items: center; gap: var(--as-space-4);
    padding: var(--as-space-4) var(--as-space-5);
    background: var(--as-bg-2);
    border-radius: var(--as-radius-md);
    border: 1px solid var(--as-hairline);
}
.editorial-landing .el-deee-card.battery .el-deee-option { background: #fff; }
.editorial-landing .el-deee-option .num {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: var(--acc);
    color: #fff;
    display: grid; place-items: center;
    font-size: var(--as-text-sm);
    font-weight: var(--as-weight-bold);
    flex-shrink: 0;
}
.editorial-landing .el-deee-card.battery .el-deee-option .num { background: var(--as-red); }
.editorial-landing .el-deee-option .txt {
    font-size: var(--as-text-sm);
    color: var(--as-fg-1);
    font-weight: var(--as-weight-medium);
    line-height: 1.4;
}
.editorial-landing .el-deee-source {
    font-size: var(--as-text-xs);
    color: var(--as-fg-3);
    margin: 0;
    padding-top: var(--as-space-4);
    border-top: 1px solid var(--as-hairline);
}
.editorial-landing .el-deee-card.battery {
    background: linear-gradient(180deg, #FEE7E9 0%, #FCDADD 100%);
    border: 1px solid #F4B5BB;
}

/* ============================================================
   REFLEX CARDS (Bons réflexes — Recyclage)
   ============================================================ */
.editorial-landing .el-reflex-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--as-space-5);
}
.editorial-landing .el-reflex-card {
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-md);
    padding: var(--as-space-6);
    display: flex; flex-direction: column;
    gap: var(--as-space-4);
    position: relative;
    min-height: 220px;
}
.editorial-landing .el-reflex-card .step {
    font-family: var(--as-font-mono);
    font-size: var(--as-text-xs);
    color: var(--acc);
    font-weight: var(--as-weight-semi);
    text-transform: uppercase;
    letter-spacing: var(--as-track-label);
}
.editorial-landing .el-reflex-card .ico {
    width: 48px; height: 48px;
    border-radius: var(--as-radius-md);
    background: var(--acc-soft);
    color: var(--acc-ink);
    display: grid; place-items: center;
}
.editorial-landing .el-reflex-card h4 {
    margin: 0;
    font-size: var(--as-text-lg);
    font-weight: var(--as-weight-semi);
    color: var(--as-fg-1);
    line-height: 1.2;
}
.editorial-landing .el-reflex-card p {
    margin: 0;
    color: var(--as-fg-2);
    font-size: var(--as-text-sm);
    line-height: 1.55;
}

/* ============================================================
   DONT-DO LIST (Erreurs à éviter — Recyclage, dark)
   ============================================================ */
.editorial-landing .el-dont-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--as-ink-3);
    border-radius: var(--as-radius-lg);
    overflow: hidden;
}
.editorial-landing .el-dont-item {
    display: flex; align-items: flex-start; gap: 14px;
    padding: var(--as-space-5) var(--as-space-6);
    border-bottom: 1px solid var(--as-ink-3);
    border-right: 1px solid var(--as-ink-3);
    color: var(--as-fg-on-dark-1);
    font-size: var(--as-text-md);
    line-height: 1.5;
}
.editorial-landing .el-dont-item:nth-child(2n) { border-right: 0; }
.editorial-landing .el-dont-item:nth-last-child(-n+2) { border-bottom: 0; }
.editorial-landing .el-dont-item .cross {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: var(--as-red);
    color: #fff;
    flex-shrink: 0;
    display: grid; place-items: center;
    font-weight: var(--as-weight-bold);
    font-size: 16px;
    margin-top: -2px;
}
.editorial-landing .el-dont-footnote {
    margin-top: var(--as-space-8);
    font-size: var(--as-text-sm);
    color: var(--as-fg-on-dark-3);
    max-width: 720px;
}

/* ============================================================
   COLLECTE (Points de collecte — Recyclage)
   ============================================================ */
.editorial-landing .el-collecte-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--as-space-5);
}
.editorial-landing .el-collecte-card {
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-md);
    padding: var(--as-space-6);
    display: flex; flex-direction: column;
    gap: var(--as-space-4);
    transition: transform var(--as-dur-med) var(--as-ease-out),
                box-shadow var(--as-dur-med) var(--as-ease-out);
}
.editorial-landing .el-collecte-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--as-shadow-md);
}
.editorial-landing .el-collecte-card .top-row {
    display: flex; justify-content: space-between; align-items: flex-start;
}
.editorial-landing .el-collecte-card .pin {
    width: 44px; height: 44px;
    border-radius: var(--as-radius-md);
    background: var(--as-surface-muted);
    color: var(--as-fg-1);
    display: grid; place-items: center;
}
.editorial-landing .el-collecte-card .num {
    font-family: var(--as-font-mono);
    font-size: var(--as-text-sm);
    color: var(--as-fg-3);
    font-weight: var(--as-weight-medium);
}
.editorial-landing .el-collecte-card h4 {
    margin: 0;
    font-size: var(--as-text-lg);
    font-weight: var(--as-weight-semi);
    line-height: 1.2;
}
.editorial-landing .el-collecte-card p {
    margin: 0;
    font-size: var(--as-text-sm);
    color: var(--as-fg-2);
    line-height: 1.5;
}
.editorial-landing .el-collecte-card .link {
    color: var(--as-red);
    font-size: var(--as-text-sm);
    font-weight: var(--as-weight-semi);
    display: inline-flex; align-items: center; gap: 6px;
    margin-top: auto;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
    .editorial-landing .el-hero-grid { grid-template-columns: 1fr; gap: var(--as-space-10); }
    .editorial-landing .el-sec-head  { grid-template-columns: 1fr; gap: var(--as-space-4); margin-bottom: var(--as-space-8); }
    .editorial-landing .el-why-grid  { grid-template-columns: repeat(2, 1fr); }
    .editorial-landing .el-fab,
    .editorial-landing .el-origin,
    .editorial-landing .el-flacon-section,
    .editorial-landing .el-resp,
    .editorial-landing .el-faq-grid,
    .editorial-landing .el-deee-grid { grid-template-columns: 1fr; gap: var(--as-space-8); }
    .editorial-landing .el-timeline  { grid-template-columns: 1fr; }
    .editorial-landing .el-timeline::before { display: none; }
    .editorial-landing .el-step      { padding: var(--as-space-4) 0; border-left: 2px solid var(--as-hairline); padding-left: var(--as-space-5); }
    .editorial-landing .el-gammes,
    .editorial-landing .el-reflex-grid,
    .editorial-landing .el-collecte-grid,
    .editorial-landing .el-pf-grid   { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 880px) {
    .editorial-landing .el-tri-head  { display: none; }
    .editorial-landing .el-tri-row   { grid-template-columns: 1fr; gap: var(--as-space-3); padding: var(--as-space-5); }
    .editorial-landing .el-tri-row .geste,
    .editorial-landing .el-tri-row .warn { padding-left: 56px; }
    .editorial-landing .el-tri-row .warn { padding-left: 18px; }
}
@media (max-width: 640px) {
    .editorial-landing .el-why-grid,
    .editorial-landing .el-gammes,
    .editorial-landing .el-reflex-grid,
    .editorial-landing .el-collecte-grid,
    .editorial-landing .el-pf-grid,
    .editorial-landing .el-dont-list { grid-template-columns: 1fr; }
    .editorial-landing .el-hero      { padding: var(--as-space-8) 0; }
    .editorial-landing .el-bloc      { padding: var(--as-space-12) 0; }
    .editorial-landing .el-anno      { display: none; }
}

/* ============================================================
   SHARED HELPERS (franchise + landing services — CMS Lot M)
   ============================================================ */
.editorial-landing .accent { color: var(--as-red); }
.editorial-landing .el-badge.dated { color: var(--as-fg-2); }
.editorial-landing .el-badge.dated .dot { background: var(--as-fg-3); }
.editorial-landing .el-badge.dated em { font-style: normal; color: var(--as-fg-3); }
.editorial-landing .el-btn-ghost.on-dark { color: #fff; border-color: rgba(255,255,255,0.4); }
.editorial-landing .el-btn-ghost.on-dark:hover { background: #fff; color: var(--as-ink); border-color: #fff; }

/* ============================================================
   FRANCHISE — hero dossier card
   ============================================================ */
.editorial-franchise .el-fr-pin {
    display: inline-grid; place-items: center;
    min-width: 30px; height: 20px; padding: 0 6px;
    background: var(--as-ink); color: #fff;
    border-radius: var(--as-radius-xs);
    font-size: 10px; font-weight: var(--as-weight-bold);
    letter-spacing: 0.06em;
}
.editorial-franchise .el-fr-dossier {
    background: #fff;
    border: 1px solid var(--as-hairline);
    border-radius: var(--as-radius-lg);
    box-shadow: var(--as-shadow-lg);
    padding: var(--as-space-6);
    max-width: 380px; margin-left: auto;
    position: relative;
}
.editorial-franchise .el-fr-dossier-head {
    display: flex; justify-content: space-between; align-items: flex-start;
    padding-bottom: var(--as-space-4);
    border-bottom: 1px solid var(--as-hairline);
}
.editorial-franchise .el-fr-dossier-head .sub { font-size: var(--as-text-xs); color: var(--as-fg-3); text-transform: uppercase; letter-spacing: var(--as-track-label); }
.editorial-franchise .el-fr-dossier-head .word { font-weight: var(--as-weight-bold); font-size: 13px; letter-spacing: 0.16em; color: var(--as-fg-1); margin-top: 4px; }
.editorial-franchise .el-fr-dossier-head .stamp {
    border: 1.5px solid var(--as-red); color: var(--as-red);
    font-size: 10px; font-weight: var(--as-weight-bold); text-transform: uppercase;
    letter-spacing: 0.08em; padding: 3px 8px; border-radius: var(--as-radius-xs);
    transform: rotate(-4deg);
}
.editorial-franchise .el-fr-dossier-title { font-size: var(--as-text-2xl); font-weight: var(--as-weight-bold); line-height: 1.1; margin: var(--as-space-4) 0 var(--as-space-3); }
.editorial-franchise .el-fr-dossier-title .ed { color: var(--as-red); }
.editorial-franchise .el-fr-dossier-intro { font-size: var(--as-text-xs); color: var(--as-fg-2); line-height: 1.5; margin: 0 0 var(--as-space-4); }
.editorial-franchise .el-fr-dossier-lines { display: flex; flex-direction: column; gap: 6px; margin-bottom: var(--as-space-4); }
.editorial-franchise .el-fr-dossier-lines .line { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--as-fg-2); }
.editorial-franchise .el-fr-dossier-lines .n { width: 14px; height: 14px; border-radius: 3px; display: inline-grid; place-items: center; color: #fff; font-weight: var(--as-weight-bold); font-size: 9px; }
.editorial-franchise .el-fr-dossier-lines .n.red { background: var(--as-red); }
.editorial-franchise .el-fr-dossier-lines .n.ink { background: var(--as-ink); }
.editorial-franchise .el-fr-dossier-meta { display: grid; grid-template-columns: 1fr 1fr; gap: var(--as-space-4); padding-top: var(--as-space-4); border-top: 1px solid var(--as-hairline); }
.editorial-franchise .el-fr-dossier-meta .k { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: var(--as-track-label); color: var(--as-fg-3); margin-bottom: 2px; }
.editorial-franchise .el-fr-dossier-meta .v { font-size: var(--as-text-sm); color: var(--as-fg-1); font-weight: var(--as-weight-medium); }

/* FRANCHISE — concept grid */
.editorial-franchise .el-fr-concept-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--as-space-5); }
.editorial-franchise .el-fr-concept-card {
    background: #fff; border: 1px solid var(--as-hairline); border-radius: var(--as-radius-md);
    padding: var(--as-space-6); position: relative; display: flex; flex-direction: column; gap: var(--as-space-3);
}
.editorial-franchise .el-fr-concept-card .marker { position: absolute; top: var(--as-space-4); right: var(--as-space-4); font-family: var(--as-font-mono); font-size: 11px; color: var(--as-fg-3); }
.editorial-franchise .el-fr-concept-card .ico { width: 44px; height: 44px; border-radius: var(--as-radius-sm); background: var(--as-surface-muted); display: grid; place-items: center; color: var(--as-fg-1); }
.editorial-franchise .el-fr-concept-card h3 { margin: 0; font-size: var(--as-text-lg); font-weight: var(--as-weight-semi); }
.editorial-franchise .el-fr-concept-card p { margin: 0; color: var(--as-fg-2); font-size: var(--as-text-sm); line-height: 1.55; }
.editorial-franchise .el-fr-concept-card .partners { margin-top: auto; font-size: var(--as-text-xs); color: var(--as-fg-3); border-top: 1px dashed var(--as-hairline); padding-top: var(--as-space-3); }

/* FRANCHISE — atouts */
.editorial-franchise .el-fr-atouts { display: grid; grid-template-columns: 1fr 1fr; gap: var(--as-space-10); align-items: start; }
.editorial-franchise .el-fr-atouts-panel { background: #fff; border: 1px solid var(--as-hairline); border-radius: var(--as-radius-lg); overflow: hidden; }
.editorial-franchise .el-fr-atouts-img { position: relative; aspect-ratio: 5 / 4; background: linear-gradient(180deg,#1a1a1a,#0e0e0e); display: grid; place-items: center; }
.editorial-franchise .el-fr-atouts-img .placeholder-tag { color: var(--as-fg-on-dark-2); font-size: var(--as-text-sm); border: 1px dashed var(--as-fg-on-dark-3); padding: 6px 12px; border-radius: var(--as-radius-pill); }
.editorial-franchise .el-fr-atouts-img .img-caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 8px 12px; background: rgba(0,0,0,0.55); color: var(--as-fg-on-dark-2); font-size: 11px; }
.editorial-franchise .el-fr-atouts-panel-body { padding: var(--as-space-6); }
.editorial-franchise .el-fr-atouts-panel-body h3 { margin: 0 0 8px; font-size: var(--as-text-xl); }
.editorial-franchise .el-fr-atouts-panel-body p { margin: 0; color: var(--as-fg-2); line-height: 1.55; }
.editorial-franchise .el-fr-atouts-list { display: flex; flex-direction: column; gap: var(--as-space-4); }
.editorial-franchise .el-fr-atout-item { display: grid; grid-template-columns: 120px 1fr; gap: var(--as-space-4); padding-bottom: var(--as-space-4); border-bottom: 1px solid var(--as-hairline); }
.editorial-franchise .el-fr-atout-item .key { font-family: var(--as-font-mono); font-size: var(--as-text-xs); color: var(--as-red); text-transform: uppercase; letter-spacing: var(--as-track-label); }
.editorial-franchise .el-fr-atout-item h4 { margin: 0 0 4px; font-size: var(--as-text-md); }
.editorial-franchise .el-fr-atout-item p { margin: 0; color: var(--as-fg-2); font-size: var(--as-text-sm); line-height: 1.55; }

/* FRANCHISE — timeline strip */
.editorial-franchise .el-fr-tl { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--as-space-5); }
.editorial-franchise .el-fr-tl-step { border-top: 2px solid var(--as-ink); padding-top: var(--as-space-4); position: relative; }
.editorial-franchise .el-fr-tl-step.muted { border-top-color: var(--as-hairline-2); }
.editorial-franchise .el-fr-tl-step .dot { position: absolute; top: -6px; left: 0; width: 10px; height: 10px; border-radius: 50%; background: var(--as-ink); }
.editorial-franchise .el-fr-tl-step.muted .dot { background: var(--as-hairline-2); }
.editorial-franchise .el-fr-tl-step .yr { font-family: var(--as-font-mono); font-weight: var(--as-weight-bold); color: var(--as-red); font-size: var(--as-text-md); }
.editorial-franchise .el-fr-tl-step h5 { margin: 6px 0 4px; font-size: var(--as-text-sm); }
.editorial-franchise .el-fr-tl-step p { margin: 0 0 8px; font-size: var(--as-text-xs); color: var(--as-fg-2); line-height: 1.5; }
.editorial-franchise .el-fr-tl-step .src { font-size: 10px; color: var(--as-fg-3); text-transform: uppercase; letter-spacing: 0.06em; }
.editorial-franchise .el-fr-tl-note { display: flex; gap: var(--as-space-4); margin-top: var(--as-space-8); padding: var(--as-space-5) var(--as-space-6); background: var(--as-surface-muted); border-radius: var(--as-radius-md); color: var(--as-fg-2); font-size: var(--as-text-sm); line-height: 1.6; }
.editorial-franchise .el-fr-tl-note svg { flex: 0 0 auto; color: var(--as-red); margin-top: 2px; }

/* FRANCHISE — profil candidat */
.editorial-franchise .el-fr-profil { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--as-space-5); }
.editorial-franchise .el-fr-profil-card { background: #fff; border: 1px solid var(--as-hairline); border-radius: var(--as-radius-md); padding: var(--as-space-6); }
.editorial-franchise .el-fr-profil-card .label { display: inline-flex; align-items: center; gap: 8px; font-size: var(--as-text-xs); text-transform: uppercase; letter-spacing: var(--as-track-label); color: var(--as-fg-3); font-weight: var(--as-weight-semi); }
.editorial-franchise .el-fr-profil-card .label .num { background: var(--as-red); color: #fff; border-radius: var(--as-radius-xs); padding: 1px 6px; font-size: 10px; }
.editorial-franchise .el-fr-profil-card h4 { margin: var(--as-space-3) 0 8px; font-size: var(--as-text-lg); }
.editorial-franchise .el-fr-profil-card p { margin: 0 0 var(--as-space-3); color: var(--as-fg-2); font-size: var(--as-text-sm); line-height: 1.55; }
.editorial-franchise .el-fr-profil-card ul { margin: 0; padding-left: 18px; color: var(--as-fg-2); font-size: var(--as-text-sm); line-height: 1.7; }

/* FRANCHISE — parcours */
.editorial-franchise .el-fr-parcours { display: grid; grid-template-columns: 1fr 320px; gap: var(--as-space-10); align-items: start; }
.editorial-franchise .el-fr-parcours-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: var(--as-space-4); }
.editorial-franchise .el-fr-parcours-steps li { background: #fff; border: 1px solid var(--as-hairline); border-radius: var(--as-radius-md); padding: var(--as-space-5); position: relative; }
.editorial-franchise .el-fr-parcours-steps li.legal { border-color: var(--as-red); }
.editorial-franchise .el-fr-parcours-steps .step-num { font-family: var(--as-font-mono); font-size: var(--as-text-xs); color: var(--as-fg-3); }
.editorial-franchise .el-fr-parcours-steps h4 { margin: 6px 0 4px; font-size: var(--as-text-md); }
.editorial-franchise .el-fr-parcours-steps p { margin: 0; color: var(--as-fg-2); font-size: var(--as-text-sm); line-height: 1.5; }
.editorial-franchise .el-fr-parcours-steps .legal-tag { display: inline-block; margin-top: 8px; font-size: 11px; font-weight: var(--as-weight-semi); color: var(--as-red); background: var(--as-red-100); padding: 3px 8px; border-radius: var(--as-radius-pill); }
.editorial-franchise .el-fr-parcours-aside { background: var(--as-ink); color: var(--as-fg-on-dark-1); border-radius: var(--as-radius-lg); padding: var(--as-space-6); position: sticky; top: var(--as-space-6); }
.editorial-franchise .el-fr-parcours-aside .kicker { font-size: var(--as-text-xs); text-transform: uppercase; letter-spacing: var(--as-track-label); color: var(--as-red); font-weight: var(--as-weight-semi); }
.editorial-franchise .el-fr-parcours-aside h4 { margin: 8px 0; font-size: var(--as-text-lg); color: #fff; }
.editorial-franchise .el-fr-parcours-aside p { margin: 0 0 var(--as-space-4); color: var(--as-fg-on-dark-2); font-size: var(--as-text-sm); line-height: 1.55; }
.editorial-franchise .el-fr-parcours-aside .docs { list-style: none; margin: 0 0 var(--as-space-5); padding: 0; display: flex; flex-direction: column; gap: 8px; }
.editorial-franchise .el-fr-parcours-aside .docs li { display: flex; align-items: center; gap: 10px; font-size: var(--as-text-sm); color: var(--as-fg-on-dark-2); }
.editorial-franchise .el-fr-parcours-aside .docs svg { color: var(--as-red); flex: 0 0 auto; }

/* FRANCHISE — transparence (dark) */
.editorial-franchise .el-fr-transp { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--as-space-10); }
.editorial-franchise .el-fr-transp-promise h3 { margin: 0 0 var(--as-space-4); font-size: var(--as-text-xl); color: #fff; line-height: 1.3; }
.editorial-franchise .el-fr-transp-promise p { color: var(--as-fg-on-dark-2); line-height: 1.6; }
.editorial-franchise .el-fr-transp-promise .factors { list-style: none; margin: var(--as-space-5) 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.editorial-franchise .el-fr-transp-promise .factors li { font-size: var(--as-text-sm); color: var(--as-fg-on-dark-2); padding-left: 18px; position: relative; }
.editorial-franchise .el-fr-transp-promise .factors li::before { content: '—'; position: absolute; left: 0; color: var(--as-red); }
.editorial-franchise .el-fr-transp-aside { display: flex; flex-direction: column; gap: var(--as-space-4); }
.editorial-franchise .el-fr-pill-card { background: var(--as-ink-2); border: 1px solid var(--as-ink-3); border-radius: var(--as-radius-md); padding: var(--as-space-5); }
.editorial-franchise .el-fr-pill-card .kicker { font-size: var(--as-text-xs); text-transform: uppercase; letter-spacing: var(--as-track-label); color: var(--as-red); font-weight: var(--as-weight-semi); }
.editorial-franchise .el-fr-pill-card h4 { margin: 6px 0; font-size: var(--as-text-md); color: #fff; }
.editorial-franchise .el-fr-pill-card p { margin: 0; font-size: var(--as-text-sm); color: var(--as-fg-on-dark-2); line-height: 1.55; }
.editorial-franchise .el-fr-pill-card .on-dark { color: #fff; }

/* FRANCHISE — DIP accordions + identity card */
.editorial-franchise .el-fr-dip-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--as-space-10); align-items: start; }
.editorial-franchise .el-fr-dip-list { display: flex; flex-direction: column; gap: var(--as-space-3); }
.editorial-franchise .el-fr-dip { background: #fff; border: 1px solid var(--as-hairline); border-radius: var(--as-radius-md); }
.editorial-franchise .el-fr-dip summary { display: flex; align-items: center; gap: var(--as-space-3); padding: var(--as-space-4) var(--as-space-5); cursor: pointer; list-style: none; font-weight: var(--as-weight-semi); }
.editorial-franchise .el-fr-dip summary::-webkit-details-marker { display: none; }
.editorial-franchise .el-fr-dip .dip-num { font-family: var(--as-font-mono); font-size: var(--as-text-xs); color: var(--as-red); }
.editorial-franchise .el-fr-dip .chev { margin-left: auto; color: var(--as-fg-3); transition: transform var(--as-dur-fast) var(--as-ease-out); }
.editorial-franchise .el-fr-dip[open] .chev { transform: rotate(45deg); }
.editorial-franchise .el-fr-dip .ans { padding: 0 var(--as-space-5) var(--as-space-5); }
.editorial-franchise .el-fr-dip .ans p { margin: 0; color: var(--as-fg-2); font-size: var(--as-text-sm); line-height: 1.6; }
.editorial-franchise .el-fr-idcard { background: var(--as-surface-muted); border: 1px solid var(--as-hairline); border-radius: var(--as-radius-lg); padding: var(--as-space-6); }
.editorial-franchise .el-fr-idcard h4 { margin: 0 0 var(--as-space-4); font-size: var(--as-text-lg); }
.editorial-franchise .el-fr-idcard dl { display: grid; grid-template-columns: 120px 1fr; gap: 8px var(--as-space-4); margin: 0 0 var(--as-space-5); }
.editorial-franchise .el-fr-idcard dt { font-size: var(--as-text-xs); text-transform: uppercase; letter-spacing: 0.06em; color: var(--as-fg-3); }
.editorial-franchise .el-fr-idcard dd { margin: 0; font-size: var(--as-text-sm); color: var(--as-fg-1); font-weight: var(--as-weight-medium); }
.editorial-franchise .el-fr-idcard .law { font-size: var(--as-text-xs); color: var(--as-fg-2); line-height: 1.6; border-top: 1px solid var(--as-hairline); padding-top: var(--as-space-4); }
.editorial-franchise .el-fr-idcard .law-link a { color: var(--as-red); font-weight: var(--as-weight-semi); }

/* FRANCHISE — lead form */
.editorial-franchise .el-fr-alert { border-radius: var(--as-radius-md); padding: var(--as-space-5); margin-bottom: var(--as-space-6); font-size: var(--as-text-sm); line-height: 1.5; }
.editorial-franchise .el-fr-alert strong { display: block; margin-bottom: 4px; }
.editorial-franchise .el-fr-alert.success { background: var(--acc-soft); border: 1px solid var(--acc); color: var(--acc-ink); }
.editorial-franchise .el-fr-alert.error { background: var(--as-red-100); border: 1px solid var(--as-red); color: var(--as-red-600); }
.editorial-franchise .el-fr-alert.error ul { margin: 6px 0 0; padding-left: 18px; }
.editorial-franchise .el-fr-form-grid { display: grid; grid-template-columns: 360px 1fr; gap: var(--as-space-10); align-items: start; }
.editorial-franchise .el-fr-form-intro ul { list-style: none; margin: 0 0 var(--as-space-6); padding: 0; display: flex; flex-direction: column; gap: var(--as-space-4); }
.editorial-franchise .el-fr-form-intro li { display: grid; grid-template-columns: 24px 1fr; gap: var(--as-space-3); font-size: var(--as-text-sm); color: var(--as-fg-2); line-height: 1.5; }
.editorial-franchise .el-fr-form-intro li svg { color: var(--acc); margin-top: 2px; }
.editorial-franchise .el-fr-form-intro li strong { color: var(--as-fg-1); }
.editorial-franchise .el-fr-contact-box { background: var(--as-ink); color: #fff; border-radius: var(--as-radius-md); padding: var(--as-space-5); }
.editorial-franchise .el-fr-contact-box h5 { margin: 0 0 6px; font-size: var(--as-text-xs); text-transform: uppercase; letter-spacing: var(--as-track-label); color: var(--as-red); }
.editorial-franchise .el-fr-contact-box a { color: #fff; font-weight: var(--as-weight-semi); }
.editorial-franchise .el-fr-contact-box .addr { font-size: var(--as-text-sm); color: var(--as-fg-on-dark-2); margin-top: 8px; }
.editorial-franchise .el-fr-form { background: #fff; border: 1px solid var(--as-hairline); border-radius: var(--as-radius-lg); padding: var(--as-space-6); display: grid; grid-template-columns: 1fr 1fr; gap: var(--as-space-4); }
.editorial-franchise .el-fr-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.editorial-franchise .el-fr-form .field { display: flex; flex-direction: column; gap: 6px; }
.editorial-franchise .el-fr-form .field.full { grid-column: 1 / -1; }
.editorial-franchise .el-fr-form label { font-size: var(--as-text-sm); font-weight: var(--as-weight-semi); color: var(--as-fg-1); }
.editorial-franchise .el-fr-form .req { color: var(--as-red); }
.editorial-franchise .el-fr-form input,
.editorial-franchise .el-fr-form select,
.editorial-franchise .el-fr-form textarea {
    font-family: inherit; font-size: var(--as-text-sm); color: var(--as-fg-1);
    padding: 11px 12px; border: 1px solid var(--as-hairline-2); border-radius: var(--as-radius-sm);
    background: #fff; width: 100%;
}
.editorial-franchise .el-fr-form textarea { min-height: 120px; resize: vertical; }
.editorial-franchise .el-fr-form input:focus,
.editorial-franchise .el-fr-form select:focus,
.editorial-franchise .el-fr-form textarea:focus { outline: 2px solid var(--as-red); outline-offset: 1px; border-color: var(--as-red); }
.editorial-franchise .el-fr-form-legal { grid-column: 1 / -1; font-size: var(--as-text-xs); color: var(--as-fg-3); line-height: 1.5; }
.editorial-franchise .el-fr-submit-row { grid-column: 1 / -1; display: flex; flex-direction: column; gap: var(--as-space-4); }
.editorial-franchise .el-fr-submit-row .check { display: grid; grid-template-columns: 20px 1fr; gap: var(--as-space-3); font-size: var(--as-text-xs); color: var(--as-fg-2); line-height: 1.5; cursor: pointer; }
.editorial-franchise .el-fr-submit-row .check input { width: 16px; height: 16px; margin-top: 2px; }
.editorial-franchise .el-fr-submit-row .el-btn { align-self: flex-start; }

/* FRANCHISE — CTA band */
.editorial-franchise .el-fr-ctaband { background: var(--as-red); color: #fff; padding: var(--as-space-12) 0; }
.editorial-franchise .el-fr-ctaband .row { display: flex; justify-content: space-between; align-items: center; gap: var(--as-space-6); flex-wrap: wrap; }
.editorial-franchise .el-fr-ctaband .lhs { display: flex; align-items: center; gap: var(--as-space-5); }
.editorial-franchise .el-fr-ctaband .ico { width: 48px; height: 48px; border-radius: var(--as-radius-md); background: rgba(255,255,255,0.15); display: grid; place-items: center; flex: 0 0 auto; }
.editorial-franchise .el-fr-ctaband h4 { margin: 0 0 4px; font-size: var(--as-text-xl); color: #fff; }
.editorial-franchise .el-fr-ctaband p { margin: 0; color: rgba(255,255,255,0.85); font-size: var(--as-text-sm); }
.editorial-franchise .el-fr-ctaband .rhs { display: flex; gap: var(--as-space-3); flex-wrap: wrap; }
.editorial-franchise .el-fr-ctaband .el-btn-primary { background: #fff; color: var(--as-red); }
.editorial-franchise .el-fr-ctaband .el-btn-primary:hover { background: var(--as-ink); color: #fff; }

/* ============================================================
   LANDING SERVICES
   ============================================================ */
.editorial-ls .el-ls-hero { padding: var(--as-space-16) 0 var(--as-space-12); }
.editorial-ls .el-ls-hero-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--as-space-12); align-items: center; }
.editorial-ls .el-ls-hero-eyebrow { display: inline-flex; align-items: center; gap: 10px; padding: 6px 12px; background: #fff; border: 1px solid var(--as-hairline); border-radius: var(--as-radius-pill); font-size: var(--as-text-xs); font-weight: var(--as-weight-semi); letter-spacing: var(--as-track-label); text-transform: uppercase; color: var(--as-fg-2); margin-bottom: var(--as-space-6); }
.editorial-ls .el-ls-hero-eyebrow .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--as-red); }
.editorial-ls .el-ls-h1 { font-size: clamp(30px, 4vw, 50px); font-weight: var(--as-weight-bold); line-height: 1.08; letter-spacing: -0.02em; margin: 0 0 var(--as-space-5); text-wrap: balance; }
.editorial-ls .el-ls-h1 em { font-style: normal; color: var(--as-red); }
.editorial-ls .el-ls-lede { font-size: var(--as-text-lg); color: var(--as-fg-2); line-height: 1.55; max-width: 540px; margin: 0 0 var(--as-space-8); }
.editorial-ls .el-ls-stats { display: flex; gap: var(--as-space-8); flex-wrap: wrap; }
.editorial-ls .el-ls-stat .n { font-size: var(--as-text-3xl); font-weight: var(--as-weight-bold); color: var(--as-red); line-height: 1; }
.editorial-ls .el-ls-stat .l { font-size: var(--as-text-xs); color: var(--as-fg-2); margin-top: 6px; line-height: 1.4; }
.editorial-ls .el-ls-hero-visual { position: relative; }
.editorial-ls .el-ls-scene { aspect-ratio: 4 / 3; border-radius: var(--as-radius-lg); background: linear-gradient(180deg,#2a2a2a,#1a1a1a); overflow: hidden; position: relative; box-shadow: var(--as-shadow-lg); }
.editorial-ls .el-ls-scene .wall { position: absolute; inset: 0 0 35% 0; background: linear-gradient(90deg,#2a2a2a,#3a3a3a,#2a2a2a); }
.editorial-ls .el-ls-scene .floor { position: absolute; inset: 65% 0 0 0; background: linear-gradient(180deg,#222,#161616); }
.editorial-ls .el-ls-scene .sign { position: absolute; top: 14%; left: 0; right: 0; text-align: center; color: #fff; font-weight: var(--as-weight-bold); letter-spacing: 0.3em; font-size: clamp(14px,2vw,22px); opacity: 0.92; }
.editorial-ls .el-ls-scene .shelves { position: absolute; left: 8%; right: 8%; top: 42%; display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; }
.editorial-ls .el-ls-scene .shelves .b { height: 26px; border-radius: 2px; background: var(--as-red); }
.editorial-ls .el-ls-scene .shelves .b:nth-child(3n) { background: #C9A570; }
.editorial-ls .el-ls-scene .shelves .b:nth-child(3n+1) { background: #1F8A5B; }
.editorial-ls .el-ls-scene .shelves .b:nth-child(4n) { background: #fff; }
.editorial-ls .el-ls-floater { position: absolute; display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--as-hairline); border-radius: var(--as-radius-md); padding: 10px 12px; box-shadow: var(--as-shadow-md); }
.editorial-ls .el-ls-floater.f1 { top: 8%; left: -6%; }
.editorial-ls .el-ls-floater.f2 { top: 44%; right: -8%; }
.editorial-ls .el-ls-floater.f3 { bottom: 6%; left: -4%; }
.editorial-ls .el-ls-floater .ico { width: 32px; height: 32px; border-radius: var(--as-radius-sm); background: var(--as-surface-muted); color: var(--as-fg-1); display: grid; place-items: center; flex: 0 0 auto; }
.editorial-ls .el-ls-floater .ico.green { background: var(--acc-soft); color: var(--acc-ink); }
.editorial-ls .el-ls-floater .ico.ink { background: var(--as-ink); color: #fff; }
.editorial-ls .el-ls-floater .ttl { font-size: var(--as-text-sm); font-weight: var(--as-weight-semi); }
.editorial-ls .el-ls-floater .sub { font-size: 11px; color: var(--as-fg-3); }

/* LANDING — services head + 3 cards */
.editorial-ls .el-ls-services-head { text-align: center; max-width: 720px; margin: 0 auto var(--as-space-10); }
.editorial-ls .el-ls-services-head .eyebrow { font-size: var(--as-text-xs); text-transform: uppercase; letter-spacing: var(--as-track-label); color: var(--as-red); font-weight: var(--as-weight-semi); margin-bottom: 10px; }
.editorial-ls .el-ls-services-head .el-sec-kicker { margin: 8px auto 0; }
.editorial-ls .el-ls-svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--as-space-5); align-items: start; }
.editorial-ls .el-ls-svc-card { background: #fff; border: 1px solid var(--as-hairline); border-radius: var(--as-radius-lg); padding: var(--as-space-6); position: relative; display: flex; flex-direction: column; gap: var(--as-space-3); }
.editorial-ls .el-ls-svc-card.featured { border-color: var(--as-red); box-shadow: var(--as-shadow-md); }
.editorial-ls .el-ls-svc-card .badge { position: absolute; top: -12px; left: var(--as-space-6); background: var(--as-red); color: #fff; font-size: 11px; font-weight: var(--as-weight-semi); padding: 4px 10px; border-radius: var(--as-radius-pill); }
.editorial-ls .el-ls-svc-card .num { font-family: var(--as-font-mono); font-size: 11px; color: var(--as-fg-3); text-transform: uppercase; letter-spacing: 0.06em; }
.editorial-ls .el-ls-svc-card h3 { margin: 0; font-size: var(--as-text-xl); line-height: 1.15; }
.editorial-ls .el-ls-svc-card .tagline { margin: 0; color: var(--as-fg-2); font-size: var(--as-text-sm); line-height: 1.55; }
.editorial-ls .el-ls-svc-card .svc-feat { list-style: none; margin: var(--as-space-3) 0; padding: 0; display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--as-hairline); padding-top: var(--as-space-4); }
.editorial-ls .el-ls-svc-card .svc-feat li { display: grid; grid-template-columns: 20px 1fr; gap: 8px; font-size: var(--as-text-sm); color: var(--as-fg-2); line-height: 1.45; }
.editorial-ls .el-ls-svc-card .svc-feat .check { color: var(--acc); font-weight: var(--as-weight-bold); }
.editorial-ls .el-ls-svc-card .svc-feat strong { color: var(--as-fg-1); }
.editorial-ls .el-ls-svc-card .svc-foot { margin-top: auto; display: flex; justify-content: space-between; align-items: flex-end; border-top: 1px solid var(--as-hairline); padding-top: var(--as-space-4); }
.editorial-ls .el-ls-svc-card .price-meta { font-size: var(--as-text-xs); color: var(--as-fg-3); display: flex; flex-direction: column; gap: 2px; }
.editorial-ls .el-ls-svc-card .price-meta strong { color: var(--as-fg-1); font-size: var(--as-text-md); }
.editorial-ls .el-ls-svc-card .btn-icon { width: 40px; height: 40px; border-radius: 50%; background: var(--as-ink); color: #fff; display: grid; place-items: center; transition: background var(--as-dur-med) var(--as-ease-out); }
.editorial-ls .el-ls-svc-card .btn-icon:hover { background: var(--as-red); }

/* LANDING — comparison table */
.editorial-ls .el-ls-compare { border: 1px solid var(--as-hairline); border-radius: var(--as-radius-lg); overflow: hidden; background: #fff; margin-top: var(--as-space-8); }
.editorial-ls .el-ls-compare .row { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; border-bottom: 1px solid var(--as-hairline); }
.editorial-ls .el-ls-compare .row:last-child { border-bottom: 0; }
.editorial-ls .el-ls-compare .row.head { background: var(--as-ink); color: #fff; }
.editorial-ls .el-ls-compare .row.head .col-1,
.editorial-ls .el-ls-compare .row.head .cell { font-weight: var(--as-weight-semi); font-size: var(--as-text-sm); color: #fff; }
.editorial-ls .el-ls-compare .col-1,
.editorial-ls .el-ls-compare .cell { padding: var(--as-space-4) var(--as-space-5); font-size: var(--as-text-sm); color: var(--as-fg-2); }
.editorial-ls .el-ls-compare .col-1 { color: var(--as-fg-1); font-weight: var(--as-weight-medium); border-right: 1px solid var(--as-hairline); }
.editorial-ls .el-ls-compare .col-1 .sub { display: block; font-weight: var(--as-weight-regular); font-size: var(--as-text-xs); color: var(--as-fg-3); }
.editorial-ls .el-ls-compare .cell strong { color: var(--as-fg-1); }
.editorial-ls .el-ls-compare .yes { color: var(--acc-ink); font-weight: var(--as-weight-semi); display: inline-flex; align-items: center; gap: 6px; }
.editorial-ls .el-ls-compare .no { color: var(--as-fg-3); display: inline-flex; align-items: center; gap: 6px; }
.editorial-ls .el-ls-compare .ok { color: var(--acc-ink); font-weight: var(--as-weight-semi); }
.editorial-ls .el-ls-compare .glyph { font-weight: var(--as-weight-bold); }
.editorial-ls .el-ls-compare-note { margin: var(--as-space-4) 0 0; font-size: var(--as-text-xs); color: var(--as-fg-3); font-style: italic; }

/* LANDING — how it works (dark) */
.editorial-ls .el-ls-how-head { margin-bottom: var(--as-space-10); }
.editorial-ls .el-ls-how-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--as-space-5); }
.editorial-ls .el-ls-how-step { border-top: 2px solid var(--as-red); padding-top: var(--as-space-4); }
.editorial-ls .el-ls-how-step .n { width: 32px; height: 32px; border-radius: 50%; background: var(--as-red); color: #fff; display: grid; place-items: center; font-weight: var(--as-weight-bold); margin-bottom: var(--as-space-3); }
.editorial-ls .el-ls-how-step h4 { margin: 0 0 6px; font-size: var(--as-text-md); color: #fff; }
.editorial-ls .el-ls-how-step p { margin: 0; color: var(--as-fg-on-dark-2); font-size: var(--as-text-sm); line-height: 1.55; }

/* LANDING — team */
.editorial-ls .el-ls-team-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: var(--as-space-10); align-items: center; }
.editorial-ls .el-ls-team-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--as-space-4); }
.editorial-ls .el-ls-team-card { background: #fff; border: 1px solid var(--as-hairline); border-radius: var(--as-radius-md); padding: var(--as-space-5); }
.editorial-ls .el-ls-team-card .tag { display: inline-block; font-size: 11px; font-weight: var(--as-weight-semi); text-transform: uppercase; letter-spacing: 0.06em; color: var(--as-red); background: var(--as-red-100); padding: 3px 8px; border-radius: var(--as-radius-pill); margin-bottom: var(--as-space-3); }
.editorial-ls .el-ls-team-card h4 { margin: 0 0 6px; font-size: var(--as-text-md); }
.editorial-ls .el-ls-team-card p { margin: 0; color: var(--as-fg-2); font-size: var(--as-text-sm); line-height: 1.55; }

/* ============================================================
   RESPONSIVE — Lot M (franchise + landing)
   ============================================================ */
@media (max-width: 1024px) {
    .editorial-franchise .el-fr-concept-grid { grid-template-columns: repeat(2, 1fr); }
    .editorial-franchise .el-fr-atouts,
    .editorial-franchise .el-fr-parcours,
    .editorial-franchise .el-fr-transp,
    .editorial-franchise .el-fr-dip-grid,
    .editorial-franchise .el-fr-form-grid { grid-template-columns: 1fr; gap: var(--as-space-8); }
    .editorial-franchise .el-fr-parcours-aside { position: static; }
    .editorial-franchise .el-fr-tl { grid-template-columns: repeat(2, 1fr); }
    .editorial-franchise .el-fr-profil { grid-template-columns: 1fr; }
    .editorial-ls .el-ls-hero-grid,
    .editorial-ls .el-ls-team-grid { grid-template-columns: 1fr; gap: var(--as-space-8); }
    .editorial-ls .el-ls-svc-grid,
    .editorial-ls .el-ls-how-grid { grid-template-columns: repeat(2, 1fr); }
    .editorial-ls .el-ls-team-cards { grid-template-columns: repeat(3, 1fr); }
    .editorial-ls .el-ls-floater { position: static; margin-top: var(--as-space-3); }
}
@media (max-width: 640px) {
    .editorial-franchise .el-fr-concept-grid,
    .editorial-franchise .el-fr-tl,
    .editorial-franchise .el-fr-parcours-steps,
    .editorial-franchise .el-fr-transp-promise .factors,
    .editorial-franchise .el-fr-form { grid-template-columns: 1fr; }
    .editorial-franchise .el-fr-atout-item { grid-template-columns: 1fr; gap: 4px; }
    .editorial-franchise .el-fr-idcard dl { grid-template-columns: 1fr; gap: 2px var(--as-space-4); }
    .editorial-franchise .el-fr-ctaband .row { flex-direction: column; align-items: flex-start; }
    .editorial-ls .el-ls-svc-grid,
    .editorial-ls .el-ls-how-grid,
    .editorial-ls .el-ls-team-cards { grid-template-columns: 1fr; }
    .editorial-ls .el-ls-compare .row { grid-template-columns: 1fr; }
    .editorial-ls .el-ls-compare .col-1 { border-right: 0; background: var(--as-surface-muted); }
    .editorial-ls .el-ls-compare .row.head { display: none; }
}
